/* ************************************************ */
/**** 共通タグ設定 ****/
/* ************************************************ */
* {
-webkit-box-sizing:border-box;
        box-sizing:border-box;
vertical-align:top;
}

html {
overflow: auto;
height: 100%;
font-size: 62.5%;
}

body {
font-family: "MFW-PAotoGothicStdN-Light";
letter-spacing:.1em;
padding: 0px;
margin: 0px;
font-size:1.6rem;
line-height:1.5;
color:#000;
background:#fff;
text-align:justify;
height:100%;
word-wrap: break-word;
-webkit-text-size-adjust: 100%;
}

section {
text-align:center;
padding: 0;
}

p {
padding: 0;
margin:0 0 1.5em 0;
}

img{
max-width: 100%;
height: auto;
width :auto;
vertical-align:top;
}

h1,h2,h3,h4,h5,h6 {
padding:0;
margin:0;
font-weight: inherit;
}

a {
color:#0068b7;
text-decoration:underline;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
a:hover {
color:#0068b7;
text-decoration:none;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}

ul {
padding:0;
margin:0 0 1.5em 0;
list-style: none;
list-style-type: disc;
}
ul li {
padding: 0;
margin:0;
list-style: none;
}

ol {
padding:0;
margin:0 0 1.5em 0;
list-style: decimal outside;
}

ol li {
padding:0;
margin:0 0 0 1.5em;
}

dl {
padding: 0;
margin:0 0 1.5em 0;
}
dt {
margin:0;
padding:0;
}
dd {
margin:0;
padding:0;
}

b ,
strong {
font-family: "MFW-PAotoGothicStdN-Bold";
}

label {
margin:0 .5em;
}
input {
font-size: 1.6rem;
font-family: "MFW-PAotoGothicStdN-Light";
vertical-align: baseline;
}
::-webkit-input-placeholder {
color:#ababab;
}
::-moz-placeholder {
color:#ababab;
}
:-ms-input-placeholder {
color:#ababab;
}
::-ms-input-placeholder {
color:#ababab;
}
::placeholder {
color:#ababab;
}
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="date"],
input[type="number"],
input[type="password"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

margin:0 ;
padding:.25em .75em;
border:0;
width: 100%;
-webkit-box-sizing:border-box;
        box-sizing:border-box;
background:#fff;
color:#000;
border-radius:5px;
}
input[type="file"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
input[type="checkbox"] ,
input[type="radio"] {
margin:0 .5em 0 0;
cursor: pointer;
}
textarea {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

font-size: 1.6rem;
font-family: "MFW-PAotoGothicStdN-Light";
vertical-align: baseline;

margin:0 ;
padding:.25em .75em;
border:0;
width: 100%;
height: 160px;
-webkit-box-sizing:border-box;
        box-sizing:border-box;
background:#fff;
color:#000;
border-radius:5px;
}

.select {
width:100%;
max-width:425px;
position:relative;
display:inline-block;
border:0;
}
.select:after {
font-family: "Font Awesome 5 Free";
content: "\f078";
font-weight: 900;
font-size: 1.2rem;
color:#000;
position:absolute;
right:.75em;
top: 50%;
-webkit-transform: translateY(-50%);
        transform: translateY(-50%);
z-index:1;
pointer-events: none
}
.select select::-ms-expand {
display: none;
}
.select select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

font-size: 1.6rem;
font-family: "MFW-PAotoGothicStdN-Light";
vertical-align: baseline;

margin:0 ;
padding:.25em 2.5em .25em .75em;
border:0;
width: 100%;
-webkit-box-sizing:border-box;
        box-sizing:border-box;
background:#fff;
color:#000;
border-radius:5px;

cursor:pointer;
white-space: nowrap;
z-index:1;
}
.select select option {
font-size: 1.6rem;
font-family: "MFW-PAotoGothicStdN-Light";
vertical-align: baseline;
}

/*input[type="submit"],
input[type="button"]{
}*/
button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

color:#fff;
font-family: "MFW-PAotoGothicStdN-Bold";
background:#e60012;
text-align:center;
text-decoration:none;
width:-webkit-fit-content;
width:-moz-fit-content;
width:fit-content;
margin: 0 25px;
text-align: left;
line-height: 1.2;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
border:2px solid #e60012;
border-radius:80px;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;

font-size:2.4rem;
padding:25px 50px ;
cursor:pointer;
}
button i {
font-size:2.4rem;
display:block;
margin-right:10px;
}
button .note {
display:block;
width:100%;
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.2rem;
text-align: center;
margin-top: .5em;
}
button:hover {
color:#e60012;
background:#fff;
text-decoration:none;
opacity:1;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}

button:disabled,
button:disabled:hover {
color:#fff;
background:#d2d7da;
border:2px solid #d2d7da;
cursor: not-allowed;
}



/* ************************************************ */
/**** 共通クラス定義 ****/
/* ************************************************ */

/***** clearfix *****/
.clearfix:after { 
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}

/***** inner *****/
.inner {
width:1080px;
max-width:100%;
padding:0 40px;
margin:auto;
position:relative;
text-align:center;
}

/***** PCのみ/SPのみ *****/
.pc_only {
display:inline-block!important;
}
.sp_only {
display:none!important;
}

/***** textalign *****/
.al_left {
text-align:justify;
}
.al_right {
text-align:right;
}
.al_center {
text-align:center;
}

/***** 改行無し *****/
.nobr {
display:inline-block;
/*white-space: nowrap;*/
}

/***** フォントカラー *****/
.f_red {
color:#e60012;
}
.f_blue {
color:#0068b7;
}

/***** リスト *****/
ul.dotlist {
}
ul.dotlist li {
position:relative;
padding:0 0 0 1.5em;
position:relative;
margin:0 auto .5em auto;
}
ul.dotlist li:before {
content:"・";
font-family: "MFW-PAotoGothicStdN-ExBold";
position:absolute;
left:0;
color:#e60012;
}



/* ****************************************************************************** */
/**** wrapper ****/
/* ****************************************************************************** */
.wrapper{
width:100%;
min-width:100%;
max-width:100%;
position:relative;
overflow: hidden;
background:#fff;
padding: 0;
}

/* ******************************************************************** */
/**** header ****/
/* ******************************************************************** */
.header {
background:#fff;
border-bottom: 4px solid #0068b7;
width:100%;
height:auto;
position:fixed;
top:0;
bottom:auto;
left:0;
right:0;
margin:auto;
z-index:10;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.header:after {
content:"";
position: absolute;
bottom: -4px;
width: 50%;
height: 4px;
background: #e60012;
}

.header .inner {
position:relative;
width:1080px;
max-width:100%;
height:100px;
padding: 0 40px 0 20px;
display: flex;
justify-content: space-between;
align-items: center;
}

/*** logo ***/
.header .logo {
display:block;
padding:0 ;
margin:0 0 ;
text-align:center;
width:266px;
}
.header .logo img {
width:266px;
height:100px;
display:block;
}

/*** グロナビ ***/
.header .globalnavi {
flex:1;
}
.header .globalnavi #navToggle {
display:none;
}

.header .globalnavi nav.navigation {
display: flex;
align-items: center;
}
/* gmenu */
.header .globalnavi .gmenu {
font-size:1.4rem;
margin-right:2%;
flex: 1;
}
.header .globalnavi .gmenu ul {
display: flex;
flex-wrap:wrap;
justify-content: flex-end;
margin:0;
}
.header .globalnavi .gmenu ul li {
margin:.25em 1em;
}
.header .gmenu ul li a {
text-decoration:none;
color:#000;
}
.header .gmenu ul li a:hover {
color:#0068b7;
}

/* language */
.header .globalnavi .language {
position:relative;
font-size:1.4rem;
}
.header .globalnavi .language .flag {
width:30px;
height:20px;
margin-right:10px;
border:1px solid #eaeff2;
}
.header .globalnavi .language .current {
background:#eaeff2;
padding:8px 35px 8px 15px;
cursor:pointer;
border-radius:5px;
display:flex;
align-items:center;
position:relative;
}
.header .globalnavi .language.open .current {
border-radius:5px 5px 0 0;
}
.header .globalnavi .language .current:after {
font-family: "Font Awesome 5 Free";
content: "\f078";
font-weight: 900;
font-size:1rem;
position:absolute;
right:15px;
}
.header .globalnavi .language ul {
display:none;

position:absolute;
width:-webkit-max-content;
width:-moz-max-content;
width:max-content;
min-width: 100%;
background:#fff;
border:1px solid #eaeff2;
text-align: left;
}
.header .globalnavi .language.open ul {
display:block;
}
.header .globalnavi .language ul li {
display:flex;
align-items:center;
border-bottom:1px dotted #eaeff2;
}
.header .globalnavi .language ul li:last-child {
border-bottom:0;
}
.header .globalnavi .language ul li a {
display:block;
text-decoration:none;
color:#000;
background:#fff;
padding:8px 15px;
width:100%;
}
.header .globalnavi .language ul li a:hover {
background:#eaeff2;
color:#000;
}

/* ******************************************************************** */
/**** container ****/
/* ******************************************************************** */

/* ************************************************ */
/**** main ****/
/* ************************************************ */
main {
position:relative;
padding-top:100px;
}

/**************************************** 共通パーツ ****************************************/

/********** パンくず **********/
.breadcrumb {
}
.breadcrumb  .inner {
padding:17px 40px;
}
.breadcrumb ul {
/*display:flex;
flex-wrap:warp;*/
display:block;
text-align:justify;
margin:0;
}
.breadcrumb ul li {
/*display:inline-block;*/
display:inline;
font-size:1.4rem;
}
.breadcrumb ul li:after {
content:">";
margin:0 1em;
}
.breadcrumb ul li:last-child:after {
display:none;
}
.breadcrumb ul li a {
color:#000;
}
.breadcrumb ul li a:hover {
}

/********** section_header **********/
.section_header {
margin:0 auto 75px auto;
}

/********** section_title **********/
.section_title {
font-size:4.8rem;
line-height:1.4;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:50px;
display:block;
}
.section_title small {
font-size:3rem;
}
/********** section_subtitle *********
.section_subtitle {
font-size:3.6rem;
line-height:1.4;
color:#000;
padding-bottom:10px;
margin:0 auto 50px auto;
display:block;
width:fit-content;
border-bottom:3px double #dc2626;
}
.section_subtitle strong {
color:#dc2626;
}*/
/********** section_lead **********/
.section_lead {
font-size:1.8rem;
line-height:1.5;
color:#000;
}


/********** ボタン **********/
.btn {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
}

.btn a {
color:#fff;
font-family: "MFW-PAotoGothicStdN-Bold";
background:#e60012;
text-align:center;
text-decoration:none;
width:-webkit-fit-content;
width:-moz-fit-content;
width:fit-content;
margin: 5px 25px;
text-align: left;
line-height: 1.2;
display: flex;
justify-content: center;
align-items: center;
flex-wrap:wrap;
border:2px solid #e60012;
border-radius:80px;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.btn a .note {
display:block;
width:100%;
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.2rem;
text-align: center;
margin-top: .5em;
}
.btn a:hover {
color:#e60012;
background:#fff;
text-decoration:none;
opacity:1;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}

/* Sサイズ */
.btn a.btnS {
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.6rem;
padding:.5em 1em;
border:1px solid #e60012;
}
.btn a.btnS i {
font-size:1.6rem;
display:block;
margin-right:.5em;
}
/* Mサイズ */
.btn a.btnM {
font-size:2rem;
padding:15px 25px;
}
.btn a.btnM i {
font-size:2rem;
display:block;
margin-right:10px;
}

/* Lサイズ */
.btn a.btnL {
font-size:2.4rem;
padding:25px 50px;
}
.btn a.btnL i {
font-size:2.4rem;
display:block;
margin-right:10px;
}

/********** good_button **********/
.good_button {
position:relative;
display:block;
width:20px;
height:20px;
}
.good_button input {
display:none;
}
.good_button input + label {
display:block;
position:absolute;
margin:0;
top:0;
left:0;
}
.good_button input + label::before {
font-family: "Font Awesome 5 Free";
content: "\f004";
font-weight: 500;
font-size:1.8rem;
cursor:pointer;
display:block;
color:#e60012;
}
.good_button input:checked + label::before {
font-weight: 900;
}

/********** モーダルウインドウ **********/
.modalstage {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100vw;
height: 100%;
-ms-scroll-chaining: none;
    overscroll-behavior: contain;
overflow-y: scroll;
margin: 0;
padding: 0;
-webkit-box-sizing: border-box;
        box-sizing: border-box;
z-index: 9998;
background: rgba(0,0,0,.5);
display: block;
backdrop-filter: blur(5px);
visibility: hidden;
opacity: 0;
-webkit-transition: 500ms;
transition: 500ms;
}
.modalstage:after {
content:"";
display:block;
height:calc(100vh + 1px) ;
width: 1px;
}
.modalstage.modalopen {
visibility: visible;
opacity: 1;
}
.modalinnr {
background:#fff;
width:500px;
height:-webkit-fit-content;
height:-moz-fit-content;
height:fit-content;
max-width:100%;
max-height: calc(100% - 100px);
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
padding:50px;
border-radius:20px;
-webkit-box-sizing: border-box;
        box-sizing: border-box;
overflow: auto;

display:flex;
flex-wrap:wrap;
}
.modal_close {
position:fixed;
top:0;
right:0;
}
.modal_close a {
text-decoration:none;
font-size:3rem;
line-height:60px;
color:#fff;
width: 60px;
height: 60px;
background:none;
display: flex !important;
justify-content: center;
align-items: center;
}

/********** BOX *********
.box {
background:#fff;
border:2px solid #fdd4d4;
border-radius:20px;
padding:50px;
}*/



/********** スクロールテーブル *********
.scrolltable {
}
*/


/********** ピックアップギャラリー一覧 **********/
.pickup_gallery_list {
margin:0 auto 50px auto;
}
.pickup_gallery_list ul {
display:flex;
justify-content: center;
flex-wrap:wrap;
}
.pickup_gallery_list ul li {
width:16%;
margin:0 2% 2% 2%;
display:flex;
align-items:center;
}

/********** ギャラリー一覧 **********/
.gallery_list {
margin:0 auto 50px auto;
}
/*gallery_list_header*/
.gallery_list .gallery_list_header {
border-top:1px solid #d2d7da;
border-bottom:1px solid #d2d7da;
display:flex;
justify-content: space-between;
align-items: center;
padding:10px ;
margin: 0 auto 40px auto;
}
.gallery_list .gallery_list_header .gallery_list_sort {
display:flex;
justify-content: space-between;
align-items: center;
}
.gallery_list .gallery_list_header .gallery_list_sort dl {
display:flex;
justify-content: space-between;
align-items: center;
margin:0 2em 0 0;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dt {
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd {
margin:0 5px;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd a {
background:#eaeff2;
color:#000;
border:1px solid #eaeff2;
font-size:1.4rem;
border-radius:5px;
padding:.5em 1em;
display:block;
text-decoration:none;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd a:hover {
background:#fff;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd a.current ,
.gallery_list .gallery_list_header .gallery_list_sort dl dd a.current:hover {
background:#0068b7;
border:1px solid #0068b7;
color:#fff;
}

.gallery_list .gallery_list_header .gallery_list_sort .refine {
font-size:1.4rem;
letter-spacing:0;
}
.gallery_list .gallery_list_header .gallery_list_sort .refine label {
margin:0;
cursor:pointer;
}

.gallery_list .gallery_list_header .pager {
flex:1;
text-align: right;
margin-left: 1em;
}

/*gallery_list_content*/
.gallery_list .gallery_list_content {
margin: 0 auto;
padding-bottom:40px;
border-bottom:1px solid #d2d7da;
}
.gallery_list .gallery_list_content > ul {
display:flex;
justify-content: flex-start;
flex-wrap:wrap;
}
.gallery_list .gallery_list_content > ul > li {
/*width:14%;*/
width:16%;
/*margin:0 3% 3% 3%;*/
margin:0 2% 3% 2%;
}
.gallery_list .gallery_list_content > ul > li > a {
text-decoration:none;
display:block;
color:#000;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_img {
display: flex;
position:relative;
margin-bottom:1em;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_img img {
-o-object-fit: contain;
   object-fit: contain;
aspect-ratio: 1 / 1;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_img .good_button {
position:absolute;
right: -7.5%;
bottom: -5%;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_txt {
font-family: "MFW-PAotoGothicStdN-Bold";
font-size:1.4rem;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_txt small {
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.2rem;
}

/*gallery_list_footer*/
.gallery_list .gallery_list_footer {
margin-bottom:100px;
}
.pagination {
margin:50px auto;
}
.pagination ul {
display:flex;
justify-content: center;
align-items: center;
}
.pagination ul li {
margin:0 .25em;
}
.pagination ul li a {
background:#eaeff2;
border:1px solid #eaeff2;
color:#000;
border-radius:5px;
padding:.5em;
display:block;
text-decoration:none;
min-width:2.5em;
letter-spacing:0;
}
.pagination ul li a:hover {
background:#fff;
}
.pagination ul li a.current ,
.pagination ul li a.current:hover {
background:#0068b7;
border:1px solid #0068b7;
color:#fff;
}


/********** スタンプ詳細 **********/
.stamp_detail {
width:100%;
}
.stamp_detail .stamp_detail_img {
width:200px;
max-width:100%;
margin:25px auto;
display:flex;
}
.stamp_detail .stamp_detail_img img {
-o-object-fit: contain;
   object-fit: contain;
aspect-ratio: 1 / 1;
}

.stamp_detail .stamp_detail_font {
font-family: "MFW-PAotoGothicStdN-Bold";
margin-bottom:20px;
padding-bottom:20px;
border-bottom:1px solid #d2d7da;
}
.stamp_detail .stamp_detail_font small {
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.4rem;
}
.stamp_detail .stamp_detail_data {
display:flex;
justify-content: space-between;
align-items: center;
margin-bottom:20px;
}
.stamp_detail .stamp_detail_data .stamp_detail_date {
text-align:justify;
}
.stamp_detail .stamp_detail_data .stamp_detail_date:before {
font-family: "Font Awesome 5 Free";
content: "\f073";
font-weight: 900;
margin-right:.5em;
}
.stamp_detail .stamp_detail_data .stamp_detail_good {
}
.stamp_detail .stamp_detail_data .stamp_detail_good .good_button {
width:auto;
height:auto;
}
.stamp_detail .stamp_detail_data .stamp_detail_good .good_button label {
display:flex;
align-items: center;
border:1px solid #d2d7da;
border-radius:5px;
padding:.25em 1em;
background:#fff;
cursor:pointer;
position:relative;
}
.stamp_detail .stamp_detail_data .stamp_detail_good .good_button label:before {
margin-right: .5em;
}
.stamp_detail .btn {
margin-bottom:20px;
}
.stamp_detail .btn a.btnM {
width:100%;
margin:0;
}
.stamp_detail .optout_setting {
display:flex;
justify-content: space-between;
align-items: center;
flex-wrap:wrap;
margin:20px auto;
}
.stamp_detail .optout_setting .btn {
margin:0;
}
.stamp_detail .optout_setting .btn a.btnS {
margin:0;
}
.stamp_detail .optout_setting .optout_setting_caution {
width:100%;
font-size:1.2rem;
text-align:justify;
margin-top:20px;
}
/*.stamp_detail .stamp_detail_setting {
display:flex;
justify-content: space-between;
align-items: center;
flex-wrap:wrap;
margin-bottom:20px;
}
.stamp_detail .stamp_detail_setting .public_button {
}
.stamp_detail .stamp_detail_setting .public_button label {
border:1px solid #d2d7da;
border-radius:5px;
padding:.5em 1em;
background:#fff;
cursor:pointer;
margin:0;
display:block;
}*/
/*.stamp_detail .stamp_detail_setting .btn {
margin:0;
}
.stamp_detail .stamp_detail_setting .btn a.btnS {
margin:0;
}*/
/*.stamp_detail .stamp_detail_setting .stamp_detail_setting_caution {
width:100%;
font-size:1.2rem;
text-align:justify;
margin-top:20px;
}*/
.stamp_detail .share {
margin:0 auto 20px auto;
padding:25px;
width:100%;
}
.stamp_detail .share .share_title {
font-size:1.6rem;
margin-bottom:0;
}
.stamp_detail .share  ul li {
width: 40px;
margin-bottom:20px;
}

/********** あなたのマイページURL **********/
.mypage_url {
background:#eaeff2;
border-radius:20px;
padding:50px 75px;
margin:0 auto 100px auto;
}
.mypage_url .mypage_url_title {
font-size:3rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:.5em;
}
.mypage_url .mypage_url_url {
background:#fff;
border-radius:5px;
padding:.75em 1em;
display:block;
margin-bottom:1em;
font-size:2rem;
color:#0068b7;
font-family: "MFW-PAotoGothicStdN-Bold";
}
.mypage_url .mypage_url_description {
font-size:1.6rem;
}
.mypage_url .mypage_url_description > *:last-child {
margin-bottom:0;
}

/********** シェア **********/
.share {
background:#fff;
border:1px solid #d2d7da;
border-radius:10px;
padding:30px 50px;
margin:0 auto 100px auto;
display: inline-block;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
}
.share .share_title {
font-size:1.8rem;
font-family: "MFW-PAotoGothicStdN-Bold";
margin-bottom:1em;
}
.share ul {
display:flex;
justify-content: center;
align-items: center;
margin:0 auto;
}
.share ul li {
width:60px;
margin:0 10px;
}

.share ul li button.share_link {
background: none;
border: 0;
padding: 0;
/*width: 60px;
height: 60px;*/
margin: 0;
}
.share ul li .success-msg {
display: none;
position: fixed;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
background-color: rgba(0,0,0,.5);
color: #fff;
bottom: 40px;
left: 50%;
margin: auto;
padding:1em;
text-align: center;
border-radius:10px;
-webkit-transform: translate(-50% , -50%);
        transform: translate(-50% , -50%);
}

/********** スタンプ選択（ラジオボタン形式） **********/
.form_stamp_select {
margin:auto;
}
.form_stamp_select ul {
display:flex;
justify-content: center;
flex-wrap:wrap;
}
.form_stamp_select ul li {
width:calc(100% / 4 - 4%);
max-width: 200px;
margin:2%;
text-align:center;
}
.form_stamp_select ul li label {
display: block;
margin:0;
}
.form_stamp_select ul li label .form_stamp_select_img {
background:#fff;
border-radius:10px;
display: flex;
align-items: center;
justify-content: center;
padding:20px;
border: 3px solid #fff;
cursor:pointer;
}
.form_stamp_select ul li label:hover .form_stamp_select_img {
border: 3px solid #d2d7da;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.form_stamp_select ul li label .form_stamp_select_img img {
-o-object-fit: contain;
   object-fit: contain;
aspect-ratio: 1 / 1;
}
.form_stamp_select ul li input[type=radio]:checked+label .form_stamp_select_img {
border: 3px solid #e60012;
}
.form_stamp_select ul li input[type=radio] {
display: none;
}
.form_stamp_select ul li label .form_stamp_select_txt {
font-family: "MFW-PAotoGothicStdN-Bold";
margin-top:.5em;
font-size:1.4rem;
}
.form_stamp_select ul li label .form_stamp_select_txt small {
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.2rem;
}

/* スタンプ未作成時 */
.form_stamp_select .nostamp {
color:#666;
text-align:center;
background:#fff;
border-radius:10px;
padding:30px;
}



/********** ギャラリーに公開 **********/
.optout_setting {
margin:50px auto;
}
.optout_setting .public_button {
}
.optout_setting .public_button label {
border:1px solid #d2d7da;
border-radius:5px;
padding:.5em 1em;
background:#fff;
cursor:pointer;
margin:0 auto;
display:block;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
}
.optout_setting .optout_setting_caution {
font-size:1.2rem;
text-align:justify;
margin:20px auto 0 auto;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
}



/******************** ページヘッダー ********************/
.page_header {
width:100%;
position:relative;
margin:0 0 0 0;
padding: 0 0 calc(80/1440 * 100%) 0 ;
z-index:1;
background:#0068b7 url(../images/page_header_bg.png) no-repeat bottom center;
background-size:contain;
}

.page_header .inner {
width:1080px;
max-width:100%;
padding:100px 40px 50px 40px;
position:relative;
text-align:center;
}

.campaign_page_header {
width:100%;
position:relative;
margin:0 0 0 0;
padding: 0 0 calc(80/1440 * 100%) 0 ;
z-index:1;
background:#ff9e01 url(../images/page_header_bg.png) no-repeat bottom center;
background-size:contain;
}

.campaign_page_header .inner {
width:1080px;
max-width:100%;
padding:100px 40px 50px 40px;
position:relative;
text-align:center;
}

/***** page_title *****/
.page_title {
font-family: "MFW-PAotoGothicStdN-ExBold";
color:#fff;
font-size:6rem;
}
.page_title small {
font-size:3rem;
}



/**************************************** 総合TOP ****************************************/

/******************** メインビジュアル ********************/
.mainvisual {
width:100%;
position:relative;
margin: 0;
background:url(../images/mv_bg.png) no-repeat top center;
background-size:1920px 710px;
}

.mainvisual .inner {
width:1080px;
max-width:100%;
padding:75px 40px;
position:relative;
text-align:center;
}

/***** site_title *****/
.mainvisual .site_title {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom:50px;
}
.mainvisual .site_title .mv_img {
width:40%;
margin-right:2%;
}
.mainvisual .site_title .mv_txt {
width:58%;
font-family: "MFW-PAotoGothicStdN-ExBold";
text-align:justify;
}
.mainvisual .site_title .mv_txt h1 small {
font-size: min(4vw, 3.9rem);
line-height:1.5;
display:block;
margin-bottom: .5em;
}
.mainvisual .site_title .mv_txt h1 big {
font-size: min(7vw, 7.5rem);
line-height:1.15;
display:block;
margin-bottom: .3em;
}
.mainvisual .site_title .mv_txt p {
font-family: "MFW-PAotoGothicStdN-Bold";
font-size: min(1.7vw, 1.95rem);
line-height:1.5;
margin-bottom: 0;
}

/***** mv_bnr *****/
.mainvisual .mv_bnr {
}
.mainvisual .mv_bnr ul {
display:flex;
justify-content: space-between;
}
.mainvisual .mv_bnr ul li {
width: 47.5%;
}
.mainvisual .mv_bnr ul li a:hover {
opacity:.75;
}


/******************** サイト主旨 ********************/
.outline {
margin:auto;
position:relative;
padding:0 75px;
}

.outline .outline_border {
border-bottom: 4px solid #0068b7;
width:100%;
height:auto;
margin:auto;
position:relative;
z-index: 1;
}
.outline .outline_border:after {
content:"";
position: absolute;
bottom: -4px;
left: 0;
width: 50%;
height: 4px;
background: #e60012;
}

.outline .inner {
width:1390px;
max-width:100%;
overflow:visible;
background:#fff;
padding:0;
margin: auto;
}
.outline .inner:before {
content:"";
position:absolute;
bottom:-75px;
left:-75px;
width: 275px;
height: 200px;
background:url(../images/outline_bg_l.png) no-repeat center center;
background-size:275px 200px;
visibility: visible;
z-index: 0;
}
.outline .inner:after {
content:"";
position:absolute;
top:-75px;
right:-75px;
width: 275px;
height: 200px;
background:url(../images/outline_bg_r.png) no-repeat center center;
background-size:275px 200px;
visibility: visible;
z-index: 0;
}

.outline .outline_flex {
display: flex;
justify-content: center;
align-items: center;
padding:35px;
z-index: 1;
background: #fff;
position: relative;
}
.outline .outline_img_l {
width:180px;
}
.outline .outline_img_r {
width:180px;
}
.outline .outline_txt {
max-width:500px;
font-size: min(2vw, 2.4rem);
font-family: "MFW-PAotoGothicStdN-ExBold";
/*width:calc(100% - 350px - 150px);*/
margin:0 5%;
}


/******************** フォントを選んで作れる！「フォント de スタンプ」 ********************/
.fds_outline {
padding:120px 0 ;
position:relative;
z-index:1;
}
.fds_outline .inner {
}

.fds_feature {
margin-bottom:100px;
}
.fds_feature ul {
display:flex;
justify-content: space-between;
flex-wrap: wrap;
width:900px;
max-width:100%;
margin: auto;
}
.fds_feature ul li {
text-align:center;
width:calc(100% / 3 - 4%);
margin: 2%;
}

.fds_feature ul li .fds_feature_img {
background:#f2f4f4;
border-radius:50%;
width:200px;
height:200px;
display:block;
margin: 0 auto 25px auto;
}

.fds_feature ul li .fds_feature_txt {
font-family: "MFW-PAotoGothicStdN-ExBold";
font-size:1.8rem;
}
.fds_feature ul li .fds_feature_txt small {
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.4rem;
}


/******************** さらに ********************/
.events {
padding:0 0 120px 0 ;
position:relative;
z-index:1;
}
.events .inner {
width:100%;
padding:0;
}

.events .inner .events_title {
margin:0 auto 50px auto;
}

.events .events_bnrs {
background:#e8ebec url(../images/events_bg_top.png) no-repeat top center;
background-size:contain;
position:relative;
}
.events .events_bnrs:after {
content:"";
background:url(../images/events_bg_bottom.png) no-repeat bottom center;
background-size:contain;
position:absolute;
bottom:0;
left:0;
width: 100%;
height: 0;
padding-top: calc(230/1440 * 100%);
}
.events .events_bnrs ul {
width:1260px;
max-width:100%;
padding:0 40px;
margin: auto;
position: relative;
z-index: 1;
}
.events .events_bnrs ul li {
margin-bottom:50px;
background:#fff;
}
.events .events_bnrs ul li:last-child {
margin-bottom:0;
}
.events .events_bnrs ul li a:hover {
opacity:.75;
}


/******************** モリサワ ********************/
.morisawa {
padding: calc(200/1440 * 100%) 0  calc(160/1440 * 100%) 0 ;
position:relative;
z-index:1;
background:#0068b7 url(../images/morisawa_bg_top.png) no-repeat top center;
background-size:contain;
position:relative;
}
.morisawa:after {
content:"";
background:url(../images/morisawa_bg_bottom.png) no-repeat bottom center;
background-size:contain;
position:absolute;
bottom:0;
left:0;
width: 100%;
height: 0;
padding-top: calc(160/1440 * 100%);
}
.morisawa .inner {
padding:120px 40px;
position:relative;
z-index:1;
}

.morisawa .morisawa_flex {
display:flex;
align-items:center;
}
.morisawa .morisawa_flex .morisawa_img {
width:44%;
margin-right:6%;
}
.morisawa .morisawa_flex .morisawa_txt {
width:50%;
text-align:justify;
color:#fff;
font-size:1.8rem;
}
.morisawa .morisawa_flex .morisawa_txt > *:last-child {
margin-bottom:0;
}
.morisawa .morisawa_flex .morisawa_txt .morisawa_title {
font-family: "MFW-PAotoGothicStdN-ExBold";
font-size:3.6rem;
margin-bottom:1.5em;
}

.morisawa .morisawa_flex .morisawa_txt a.morisawa_btn {
border:1px solid #fff;
padding:.5em 1em;
margin:0 .5em .5em 0;
display:inline-block;
font-size:1.6rem;
color:#fff;
text-decoration:none;
}
.morisawa .morisawa_flex .morisawa_txt a.morisawa_btn:hover {
color:#0068b7;
background:#fff;
}


/******************** フォントを選んで、未来を描く ********************/
.future {
padding:75px 0 120px 0;
position:relative;
}
.future .inner {
padding:0 40px;
position:relative;
z-index:1;
}

.future .future_flex {
display:flex;
align-items:center;
}
.future .future_flex .future_img {
width:30%;
margin-left:5%;
}
.future .future_flex .future_txt {
width:65%;
text-align:justify;
font-size:1.8rem;
}
.future .future_flex .future_txt > *:last-child {
margin-bottom:0;
}
.future .future_flex .future_txt .future_title {
font-family: "MFW-PAotoGothicStdN-ExBold";
font-size:3.6rem;
margin-bottom:1.5em;
}

/**************************************** キャンペーンTOP ****************************************/

/******************** キャンペーンメインビジュアル ********************/
.campaign_mv {
width:100%;
position:relative;
margin: 0;
background:url(../images/campaign_mv_bg.png) no-repeat center center;
background-size:cover;
}

.campaign_mv .inner {
width:1080px;
max-width:100%;
padding:75px 40px;
position:relative;
text-align:center;
}

/***** campaign_mv_flex *****/
.campaign_mv .campaign_mv_flex {
display: flex;
justify-content: space-between;
align-items: center;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt {
width:57%;
text-align:left;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt .campaign_mv_title {
margin-bottom:15px;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul {
margin-bottom:25px;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul li {
font-size:1.7rem;
font-family: "MFW-PAotoGothicStdN-Bold";
letter-spacing:.025em;
display:flex;
margin: .5em 0;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul li img {
width:24px;
height:24px;
display:block;
margin-right:.5em;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt .btn {
justify-content: left;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt .btn a {
margin:0;
}

.campaign_mv .campaign_mv_flex .campaign_mv_img {
width:43%;
margin:0 -3% 0 0;
}
.campaign_mv .campaign_mv_flex .campaign_mv_img img {
-webkit-transform: scale(125%);
        transform: scale(125%);
}



/******************** キャンペーン詳細 ********************/
.campaign_overview {
width:100%;
position:relative;
margin: 0;
background:url(../images/campaign_overview_bg.png ) no-repeat top center;
background-size:1920px 1160px;
}

.campaign_overview .inner {
width:1080px;
max-width:100%;
padding:120px 40px 100px 40px;
position:relative;
text-align:center;
}

.campaign_overview .campaign_overview_flex {
display:flex;
justify-content: space-between;
flex-wrap:wrap;
}

/*** campaign_overview_sentence ***/
.campaign_overview .campaign_overview_sentence {
width:100%;
margin:0 0 50px 0;
text-align:justify;
font-size:1.8rem;
}
.campaign_overview .campaign_overview_sentence.half_width {
width:45%;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex {
display:flex;
justify-content: space-between;
align-items:center;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex .campaign_overview_sentence_img {
width:34%;
}
.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex .campaign_overview_sentence_txt {
width:56%;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_title {
font-size:3rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
border-bottom:2px solid #d3d9dc;
position:relative;
padding-bottom:.25em;
margin-bottom:1em;
}
.campaign_overview .campaign_overview_sentence .campaign_overview_title:before {
content:"";
width:200px;
height:2px;
background:#0068b7;
display:block;
position:absolute;
bottom:-2px;
}
.campaign_overview .campaign_overview_sentence .campaign_overview_title:after {
content:"";
width:100px;
height:2px;
background:#e60012;
display:block;
position:absolute;
bottom:-2px;
}


/******************** 応募から当選までの流れ ********************/
.campaign_flow {
width:100%;
position:relative;
margin: 0;
padding: calc(130/1440 * 100%) 0  calc(160/1440 * 100%) 0 ;
z-index:1;
background:#e8ebec url(../images/campaign_flow_bg_top.png) no-repeat top center;
background-size:contain;
}
.campaign_flow:after {
content:"";
background:url(../images/campaign_flow_bg_bottom.png) no-repeat bottom center;
background-size:contain;
position:absolute;
bottom:0;
left:0;
width: 100%;
height: 0;
padding-top: calc(130/1440 * 100%);
}

.campaign_flow .inner {
width:1080px;
max-width:100%;
padding:100px 40px 100px 40px;
position:relative;
text-align:center;
}
.campaign_flow .inner:before {
content:"";
background:url(../images/campaign_flow_sy03-elements.png) no-repeat top center;
background-size:225px 237px;
width:225px;
height:237px;
display:block;
position:absolute;
top:-170px;
left: 50%;
-webkit-transform: translateX(400px);
        transform: translateX(400px);
}
.campaign_flow .inner:after {
content:"";
background:url(../images/campaign_flow_sy01-elements.png) no-repeat top center;
background-size:268px 154px;
width:268px;
height:154px;
display:block;
position:absolute;
bottom:-150px;
right: 50%;
-webkit-transform: translateX(-350px);
        transform: translateX(-350px);
z-index: 1;
visibility: visible;
}

/*** campaign_flow_content ***/
.campaign_flow .campaign_flow_content {
}
.campaign_flow .campaign_flow_content ol {
list-style:none;
}
.campaign_flow .campaign_flow_content ol li {
margin:0;
padding:50px 0;
border-bottom:1px solid #d3d9dc;
display:flex;
justify-content: space-between;
}
.campaign_flow .campaign_flow_content ol li:last-child {
border:0;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_step {
border:2px solid #0068b7;
color:#0068b7;
width:100px;
height:100px;
display:flex;
justify-content: center;
align-items:center;
flex-wrap:wrap;
border-radius:50%;
background:#fff;
position:relative;
font-size:6rem;
line-height:1;
font-family: "MFW-PAotoGothicStdN-Bold";
font-style: italic;
padding:.15em .15em 0 0;
}
.campaign_flow .campaign_flow_content ol li:nth-child(even) .campaign_flow_step {
border:2px solid #e60012;
color:#e60012;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_step:before {
content:"STEP";
width:100%;
font-size:1.2rem;
margin: 0 0 -1em .5em;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_txt {
width:calc(100% - 300px);
text-align:justify;
font-size:1.8rem;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_txt > *:last-child {
margin-bottom:0;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_txt .campaign_flow_title {
font-size:3rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:.75em;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_txt small {
font-size:1.4rem;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_img {
width:100px;
}



/******************** 「フォント de スタンプ」ギャラリー（キャンペーンページ） ********************/
.campaign_gallery {
width:100%;
position:relative;
margin: 0;
}

.campaign_gallery .inner {
width:1080px;
max-width:100%;
padding:75px 40px 100px 40px;
position:relative;
text-align:center;
}

.campaign_gallery .section_header {
margin-bottom:50px;
}



/******************** よくある質問 ********************/
.campaign_faq {
width:100%;
position:relative;
margin: 0;
padding: calc(120/1440 * 100%) 0 0 0 ;
z-index:1;
background:#0068b7 url(../images/campaign_faq_bg_top.png) no-repeat top center;
background-size:contain;
}

.campaign_faq .inner {
width:1080px;
max-width:100%;
padding:100px 40px 120px 40px;
position:relative;
text-align:center;
}
.campaign_faq .section_title {
color:#fff;
}

.campaign_faq .campaign_faq_sentence {
background:#fff;
padding:50px;
margin:0 auto 50px auto;
border-radius:10px;
text-align:justify;
}
.campaign_faq .campaign_faq_sentence .campaign_faq_title {
font-size:2.4rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin:0 auto 1em auto;
text-align:center;
}
.campaign_faq .campaign_faq_sentence dl {
margin:0;
}
.campaign_faq .campaign_faq_sentence dl > *:last-child {
margin-bottom:0;
}
.campaign_faq .campaign_faq_sentence dl dt {
position:relative;
margin-bottom: .75em;
font-size:1.8rem;
font-family: "MFW-PAotoGothicStdN-Bold";
color:#e60012;
padding: 0 0 0 4rem;
}
.campaign_faq .campaign_faq_sentence dl dt:before {
content:"Q";
font-size:3rem;
line-height: 1;
font-family: "MFW-PAotoGothicStdN-Bold";
margin-right: .5em;
position:absolute;
top: -3px;
left:0;
}

.campaign_faq .campaign_faq_sentence dl dd {
position:relative;
margin-bottom: 1.5em;
font-size:1.6rem;
padding: 0 0 0 4rem;
}
.campaign_faq .campaign_faq_sentence dl dd:before {
content:"A";
font-size:3rem;
line-height: 1;
font-family: "MFW-PAotoGothicStdN-Bold";
color:#0068b7;
margin-right: .5em;
position:absolute;
top: -3px;
left:0;
}



/******************** キャンペーン規約 ********************/
.campaign_precaution {
width:100%;
position:relative;
margin: 0;
padding: 0 ;
z-index:1;
background:#d2d7da;
}

.campaign_precaution .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
}

.campaign_precaution .campaign_precaution_content {
}
.campaign_precaution .campaign_precaution_content dl {
display:flex;
flex-wrap:wrap;
text-align:justify;
margin:0;
}
.campaign_precaution .campaign_precaution_content dl dt {
width:40%;
font-size:1.8rem;
font-family: "MFW-PAotoGothicStdN-Bold";
padding:0 5% 0 0;
}
.campaign_precaution .campaign_precaution_content dl dd {
width:60%;
font-size:1.6rem;
border-left:1px solid #9da1a3;
padding:0 0 0 5%;
margin-bottom:75px;
}
.campaign_precaution .campaign_precaution_content dl > *:last-child {
margin-bottom:0;
}
.campaign_precaution .campaign_precaution_content dl dd > *:last-child {
margin-bottom:0;
}



/**************************************** キャンペーン応募フォーム ****************************************/

/******************** キャンペーン応募フォーム ********************/
.campaign_form {
width:100%;
position:relative;
margin: 0;
padding: 0 ;
z-index:1;
}

.campaign_form .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
}

.campaign_form .section_lead {
text-align:justify;
}


.campaign_form .campaign_form_content {
background:#eaeff2;
border-radius:20px;
padding:75px 50px;
text-align:justify;
}
.campaign_form .campaign_form_content dl {
margin-bottom: 50px;
text-align:justify;
}
.campaign_form .campaign_form_content dl > *:last-child {
margin-bottom:0;
}
.campaign_form .campaign_form_content dl dt {
position:relative;
margin-bottom: .75em;
font-size:1.8rem;
font-family: "MFW-PAotoGothicStdN-Bold";
color:#0068b7;
}
.campaign_form .campaign_form_content dl dd {
position:relative;
margin-bottom: 2.5em;
font-size:1.6rem;
}
.campaign_form .campaign_form_content dl dd > *:last-child {
margin-bottom:0;
}
.campaign_form .campaign_form_content dl dd p {
margin-bottom:1em;
}
.campaign_form .campaign_form_content dl dd p small {
font-size:1.4rem;
}
.campaign_form .campaign_form_content dl dd label {
display:inline-block;
}
.campaign_form .campaign_form_content dl dd input {
margin:0 .5em 1em 0;
}
.campaign_form .campaign_form_content dl dd input.half {
width:50%;
}
.campaign_form .campaign_form_content dl dd .file {
display:flex;
align-items:center;
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
}
.campaign_form .campaign_form_content dl dd .file input[type="file"] {
margin-bottom:0;
font-size:1.4rem;
}
.campaign_form .campaign_form_content dl dd .file input[type="file"]::-webkit-file-upload-button  {
display:none;
}
.campaign_form .campaign_form_content dl dd .file input[type="file"]::file-selector-button  {
display:none;
}
.campaign_form .campaign_form_content dl dd .file label {
cursor:pointer;
background:#e60012;
color:#fff;
border-radius:5px;
font-family: "MFW-PAotoGothicStdN-Light";
font-size:1.4rem;
padding:.5em 1em;
margin:0 1em 0 0;
border:1px solid #e60012;
display:flex;
align-items: center;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.campaign_form .campaign_form_content dl dd .file label:hover {
background:#fff;
color:#e60012;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.campaign_form .campaign_form_content dl dd .file label i {
font-size:1.4rem;
margin-right:.5em;
}
.campaign_form .campaign_form_content dl dd .source {
display:flex;
align-items: center;
flex-wrap:wrap;
}
.campaign_form .campaign_form_content dl dd .source span {
display:inline-block;
margin:0 1em 1em 0;
}
.campaign_form .campaign_form_content dl dd .source label {
display:flex;
align-items: center;
}
.campaign_form .campaign_form_content dl dd .source label input[type=checkbox] {
margin-bottom:0;
}
.campaign_form .campaign_form_content dl dd .source label input[type=text] {
flex:1;
margin-left:1em;
margin-bottom:0;
display:none;
}
.campaign_form .campaign_form_content dl dd .source label input[type=text].show {
display:block;
}

.campaign_form .campaign_form_content .agree {
text-align:center;
margin-bottom:50px;
}



/**************************************** キャンペーン応募完了 ****************************************/

/******************** ご応募ありがとうございました ********************/
.campaign_thanks {
width:100%;
position:relative;
margin: 0;
padding: 0 ;
z-index:1;
}

.campaign_thanks .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
}

.campaign_thanks .campaign_thanks_content {
padding:50px 0 100px 0;
}


/**************************************** キャンペーン応募規約 ****************************************/

/******************** 応募規約 ********************/
.campaign_terms {
width:100%;
position:relative;
margin: 0;
padding: 0 ;
z-index:1;
}

.campaign_terms .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
}

.campaign_terms .terms {
text-align:justify;
}
.campaign_terms .terms .terms_subtitle {
font-size:1.6rem;
font-family: "MFW-PAotoGothicStdN-Bold";
margin-bottom:.5em;
}



/**************************************** 「フォント de スタンプ」TOP ****************************************/

/******************** "あなたの言葉"がデジタルスタンプになって届く！ ********************/
.fds {
padding:120px 0 ;
position:relative;
z-index:1;
}
.fds .inner {
}

.fds .fds_feature {
margin-bottom:0;
}

.fds .btn {
margin-top:75px;
}


/******************** 「フォント de スタンプ」ギャラリー ********************/
.stamp_gallery {
width:100%;
position:relative;
margin: 0;
}

.stamp_gallery .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}

.stamp_gallery .section_header {
margin-bottom:50px;
}



/******************** 質問に答えてデジタルスタンプを作ろう ********************/
.enquete {
width:100%;
position:relative;
margin: 0;
background:#eaeff2;
}

.enquete .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}

.enquete .section_lead {
text-align:justify;
}

.enquete .enquete_content {
background:rgba(255,255,255,.6);
border-radius:20px;
padding:75px;
text-align:justify;
}
.enquete .enquete_content dl {
margin-bottom: 1.5em;
}
.enquete .enquete_content dl > *:last-child {
margin-bottom:0;
}
.enquete .enquete_content dl dt {
position:relative;
margin-bottom: .75em;
font-size:1.8rem;
font-family: "MFW-PAotoGothicStdN-Bold";
color:#0068b7;
}
.enquete .enquete_content dl dd {
position:relative;
margin-bottom: 2.5em;
font-size:1.6rem;
}

.enquete .enquete_content .terms {
margin-bottom:1.5em;
}
.enquete .enquete_content .terms .scroll_inner {
width:100%;
height:300px;
display:block;
background:#fff;
color:#333;
font-size:1.4rem;
overflow:auto;
border-radius:5px;
border:1px solid #d2d7da;
padding:30px;
margin-bottom:1.5em;
}

.enquete .enquete_content .terms .scroll_inner .terms_title {
font-size:1.4rem;
font-family: "MFW-PAotoGothicStdN-Bold";
text-align:center;
margin-bottom:1.5em;
}
.enquete .enquete_content .terms .scroll_inner .terms_subtitle {
font-size:1.4rem;
font-family: "MFW-PAotoGothicStdN-Bold";
margin-bottom:.5em;
}
.enquete .enquete_content .terms .scroll_inner .terms_date {
text-align:right;
}
.enquete .enquete_content .terms .scroll_inner ol.lv2 {
margin-bottom:0;
}
.enquete .enquete_content .terms .scroll_inner ol.lv2 > li {
list-style-type: none;
counter-increment: cnt;
position:relative;
}
.enquete .enquete_content .terms .scroll_inner ol.lv2 > li:before {
content: counter(cnt) ") ";
position:absolute;
left: -1.5em;
}
.enquete .enquete_content .terms .scroll_inner ol.lv3 {
list-style:katakana-iroha;
margin-bottom:0;
}
.enquete .enquete_content .terms .scroll_inner ol.lv3 > li {
margin: 0 0 0 2.5em;
}

.enquete .enquete_content .terms .agree {
text-align:center;
}



/**************************************** 「フォント de スタンプ」スタンプ作成 ****************************************/

/******************** スタンプ作成はかんたん3ステップ ********************/
.stamp_steps {
width:100%;
position:relative;
margin: 0;
}

.stamp_steps .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}

.stamp_steps .stamp_steps_content {
}
.stamp_steps .stamp_steps_content ul {
display:flex;
justify-content: space-between;
margin:0;
}
.stamp_steps .stamp_steps_content ul li {
width:calc(100% / 3 - 4%);
margin:2%;
padding:55px 2% 4% 2%;
border:1px solid #d2d7da;
border-radius:20px;
position:relative;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_number {
width:60px;
height:60px;
display:flex;
align-items:center;
justify-content: center;
background:#d2d7da;
color:#fff;
border-radius:50%;
font-size:3rem;
line-height:1;
font-family: "MFW-PAotoGothicStdN-Bold";
letter-spacing:0em;
position:absolute;
top:-30px;
left:0;
right:0;
margin:auto;
padding-top: .25em;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_img {
width:100px;
max-width:100%;
margin:0 auto 25px auto;
}

.stamp_steps .stamp_steps_content ul li .stamp_steps_txt {
font-size:1.6rem;
}

.stamp_steps .stamp_steps_content ul li .stamp_steps_txt .stamp_steps_title {
font-size:2rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:.5em;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_txt > *:last-child {
margin-bottom:0;
}

/******************** スタンプ作成フォーム ********************/
.stamp_form {
width:100%;
position:relative;
margin: 0;
}

.stamp_form .inner {
width:1080px;
max-width:100%;
padding:0 40px 120px 40px;
position:relative;
text-align:center;
}

.stamp_form .stamp_form_content {
background:#eaeff2;
border-radius:20px;
}

.stamp_form .stamp_form_content .stamp_form01 {
position:relative;
padding:75px 50px 100px 50px;
border-bottom:2px solid #fff;
}

.stamp_form .stamp_form_content .stamp_form02 {
position:relative;
padding:75px 50px 100px 50px;
border-bottom:2px solid #fff;
}

.stamp_form .stamp_form_content .stamp_form03 {
position:relative;
padding:75px 50px 100px 50px;
border-bottom:2px solid #fff;
}

.stamp_form .stamp_form_content .stamp_form_number {
width:80px;
height:80px;
display:flex;
align-items:center;
justify-content: center;
background:#0068b7;
color:#fff;
border-radius:50%;
font-size:4.2rem;
line-height:1;
font-family: "MFW-PAotoGothicStdN-Bold";
letter-spacing:0em;
position:absolute;
top:-40px;
left:0;
right:0;
margin:auto;
padding-top: .25em;
}

.stamp_form .stamp_form_content .stamp_form_title {
font-size:3rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:.5em;
}
.stamp_form .stamp_form_content .stamp_form_description {
margin-bottom:3em;
}

/* 01 */
.stamp_form .stamp_form_content .stamp_form01 .form_stamp_select {
max-width:720px;
}
.stamp_form .stamp_form_content .stamp_form01 .form_stamp_select ul li {
width:calc(100% / 3 - 6%);
margin:3%;
}

/* 02 */
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text {
max-width: 850px;
margin: auto;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label {
background:#fff;
border-radius:5px;
padding:15px 20px;
margin-bottom:20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label input[type="text"] {
flex:1;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label input[type="text"]:focus {
outline:0;
}

.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label .limiter {
padding:0 20px;
}

.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text .error {
color:#e60012;
text-align: left;
display: block;
padding: 0 1em;
margin: -10px 0 20px 0;
font-size: 1.2rem;
}

.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text ul.caution {
display:inline-block;
margin:25px auto 50px auto;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text ul.caution li {
position:relative;
padding-left:2em;
text-align: left;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text ul.caution li:before {
content:"※";
position:absolute;
left:0;
}

/* 03 */
.stamp_form .stamp_form_content .form_stamp_select .no_select {
margin:10em auto;
}



/**************************************** 「フォント de スタンプ」スタンプDL完了 ****************************************/

/******************** ダウンロードありがとうございました ********************/
.stamp_thanks {
width:100%;
position:relative;
margin: 0;
}

.stamp_thanks .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}

/* stamp_thanks_content */
.stamp_thanks .stamp_thanks_content {
margin-bottom:100px;
}
.stamp_thanks .stamp_thanks_content .stamp_thanks_img {
width:200px;
max-width:100%;
margin:50px auto;
}
.stamp_thanks .stamp_thanks_content .stamp_thanks_txt {
font-size:1.8rem;
}


/* ダウンロードしたデータで応募しよう */
.stamp_thanks .entry_campaign {
margin:0 auto 100px auto;
}

.stamp_thanks .entry_campaign .entry_campaign_title {
font-size:3.6rem;
font-family: "MFW-PAotoGothicStdN-ExBold";
margin-bottom:1em;
color:#e60012;
position:relative;
padding:0 55px;
display: inline-block;
}
.stamp_thanks .entry_campaign .entry_campaign_title:before {
content:"";
background:url(../images/title_decoration_left.png) no-repeat center center;
background-size:35px 50px;
width:35px;
height:50px;
display: inline-block;
position:absolute;
left:0;
top: 50%;
-webkit-transform: translateY(-50%);
        transform: translateY(-50%);
}
.stamp_thanks .entry_campaign .entry_campaign_title:after {
content:"";
background:url(../images/title_decoration_right.png) no-repeat center center;
background-size:35px 50px;
width:35px;
height:50px;
display: inline-block;
position:absolute;
right:0;
top: 50%;
-webkit-transform: translateY(-50%);
        transform: translateY(-50%);
}
.stamp_thanks .entry_campaign .entry_campaign_bnr {
margin:0 auto 100px auto;
}


/**************************************** マイページ ****************************************/

/******************** マイページ ********************/
.mypage {
width:100%;
position:relative;
margin: 0;
}

.mypage .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}

.mypage .mypage_url {
margin:120px auto 0 auto;
}


/**************************************** みんなのスタンプギャラリー ****************************************/

/******************** みんなのスタンプギャラリー ********************/
.gallery {
width:100%;
position:relative;
margin: 0;
}

.gallery .inner {
width:1080px;
max-width:100%;
padding:120px 40px;
position:relative;
text-align:center;
}



/******************** バナーエリア ********************/
.bnr_area {
width:100%;
position:relative;
margin:0 0 0 0;
padding: 0 ;
z-index:1;
background:#eaeff2 url(../images/bnr_area_bg_top.png) no-repeat top center;
background-size:contain;
}
.bnr_area:after {
content:"";
background:url(../images/bnr_area_bg_bottom.png) no-repeat bottom center;
background-size:contain;
position:absolute;
bottom:0;
left:0;
width: 100%;
height: 0;
padding-bottom: calc(150/1440 * 100%);
}

.bnr_area .inner {
width:1080px;
max-width:100%;
padding:75px 40px;
position:relative;
text-align:center;
}

/* bnr */
.bnr_area .bnr {
position:relative;
z-index:1;
}
.bnr_area .bnr ul {
margin-bottom:0;
display:flex;
justify-content: space-between;
}
.bnr_area .bnr ul li {
width: 47.5%;
}
.bnr_area .bnr ul li a:hover {
opacity:.75;
}


/* ******************************************************************** */
/**** footer ****/
/* ******************************************************************** */
.footer {
border-top:1px solid #d2d7da;
position:relative;
}
.footer .inner {
width:1080px;
padding: 50px 40px ;
}

/***** pagetop *****/
.pagetop {
margin: auto;
position:absolute;
right:30px;
bottom:calc(100% - 30px);
z-index:5;
}
.pagetop.floating {
position: fixed;
bottom: 30px;
}
.pagetop a {
width:60px;
height: 60px;
display:block;
text-align:center;
margin:0px auto 0px auto;
font-size:2.6rem;
padding:0;
color:#fff;
background:#0068b7;
border:1px solid #fff;
position:relative;
border-radius:50%;
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.pagetop a:hover {
color:#0068b7;
background:#fff;
opacity:1;
}
.pagetop a i {
position:absolute;
top:50%;
left:0;
right:0;
-webkit-transform: translateY(-50%);
        transform: translateY(-50%);
}


/***** 上段 *****/
.footer .footer_upper {
display:flex;
justify-content:space-between;
align-items:center;
margin: 0 0 50px 0;
}
.footer .footer_upper .footer_logo {
width:266px;
height:100px;
display:block;
}
.footer .footer_upper .footer_bnr {
}
.footer .footer_upper .footer_bnr a:hover {
opacity:.75;
}

/***** 下段 *****/
.footer .footer_lower {
display:flex;
justify-content:space-between;
align-items:center;
}
.footer .footer_lower ul.footer_menu {
display:flex;
margin:0;
}
.footer .footer_lower ul.footer_menu li {
margin-right:20px;
}
.footer .footer_lower ul.footer_menu li a {
font-size:1.4rem;
text-decoration:none;
color:#000;
}
.footer .footer_lower ul.footer_menu li a:hover {
color:#0068b7;
}

.footer .footer_lower .copyright {
display:block;
font-size:1.2rem;
text-align:right;
}
.footer .footer_lower .copyright ul {
display:flex;
flex-wrap:wrap;
margin:0;
}
.footer .footer_lower .copyright ul li {
margin-left:2em;
}



/************************************************ 768px以下 ************************************************/
@media screen and (max-width: 768px){

/* ************************************************ */
/**** 共通タグ設定 ****/
/* ************************************************ */

input {
font-size: 1.4rem;
}
/*input[type="file"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;

margin:0;
padding:10px 10px;
border:0;
width: 100%;
height: auto;
box-sizing:border-box;
background:#f1f0e8;
color:#000;
border-radius:0;
line-height:1;
vertical-align:top;
}*/
textarea {
font-size: 1.4rem;
}

.select {
}
.select select {
font-size: 1.4rem;
}
.select select option {
font-size: 1.4rem;
}

/*input[type="submit"],
input[type="button"] {
}*/
button {
font-size:1.6rem;
padding:20px 15px ;
margin: 10px;
min-width: 220px;
}
button i {
font-size:1.6rem;
margin-right:5px;
}
button .note {
font-size:1rem;
}


/* ************************************************ */
/**** 共通クラス定義 ****/
/* ************************************************ */

/***** inner *****/
.inner {
padding:0 20px;
}

/***** PCのみ/SPのみ *****/
.pc_only {
display:none!important;
}
.sp_only {
display:inline-block!important;
}

/* ****************************************************************************** */
/**** wrapper ****/
/* ****************************************************************************** */

/* ******************************************************************** */
/**** header ****/
/* ******************************************************************** */
.header {
}

.header .inner {
height:75px;
padding: 0 20px 0 10px;
}
/*** logo ***/
.header .logo {
width:200px;
}
.header .logo img {
width:200px;
height:75px;
}

.header.openNav {
background:#fff;
}
/*** グロナビ ***/
.header .globalnavi {
display:none;

margin:0;
padding: 0;
position:fixed;
width: 100%;
height:100%;
top:79px;
left: 0;
right:0;
-webkit-transform: none;
        transform: none;
background: rgba(0,0,0,.5);
backdrop-filter: blur(5px);
}
.header.openNav .globalnavi {
display:block;
overflow-y: auto;
height: calc(100% - 79px );
}
.header #navToggle {
display:block;
text-align:center;
width:40px;
height:40px;
cursor:pointer;
margin: 0 ;
padding: 5px;
z-index:10;
color:#1e1e1e;
position: absolute;
right: 20px;
top: 50%;
-webkit-transform: translateY(-50%);
        transform: translateY(-50%);
-webkit-transition: all 0.5s ease;
transition: all 0.5s ease;
}
.header #navToggle:after {
content:"";
width:30px;
height:30px;
display:block;
font-size:2rem;
line-height:30px;
font-family: "Font Awesome 5 Free";
content: "\f0c9";
font-weight:900;
vertical-align:middle;
}
.header.openNav #navToggle:after {
content:"";
width:30px;
height:30px;
display:block;
font-size:2rem;
line-height:30px;
font-family: "Font Awesome 5 Free";
content: "\f00d";
font-weight:900;
vertical-align:middle;
}

.header .globalnavi nav.navigation {
display: block;
padding:20px 40px;
background: #fff;
}
/* gmenu */
.header .globalnavi .gmenu {
font-size:1.4rem;
margin:0 auto 25px auto;
}
.header .globalnavi .gmenu ul {
display: block;
margin:0;
text-align:justify;
}
.header .globalnavi .gmenu ul li {
margin:0;
}
.header .gmenu ul li a {
text-decoration:none;
display:block;
padding:1em 0;
}

/* language */
.header .globalnavi .language {
margin-bottom: 25px;
}

/* ******************************************************************** */
/**** container ****/
/* ******************************************************************** */

/* ************************************************ */
/**** main ****/
/* ************************************************ */
main {
padding-top:79px;
}

/**************************************** 共通パーツ ****************************************/

/********** パンくず **********/
.breadcrumb {
}
.breadcrumb  .inner {
padding:10px 15px;
}
.breadcrumb ul {
display:block;
text-align: left;
}
.breadcrumb ul li {
font-size:1rem;
letter-spacing:.05em;
display:inline;
vertical-align: middle;
}
.breadcrumb ul li:after {
content:">";
margin:0 .5em;
}
.breadcrumb ul li a {
vertical-align: middle;
}

/********** section_header **********/
.section_header {
margin:0 auto 35px auto;
}

/********** section_title **********/
.section_title {
font-size:2.6rem;
margin-bottom:35px;
}
.section_title small {
font-size:2rem;
}
/********** section_subtitle *********
.section_subtitle {
font-size:2rem;
margin-bottom:30px;
}*/
/********** section_lead **********/
.section_lead {
font-size:1.5rem;
text-align:justify;
}

/********** ボタン **********/
.btn {
}
.btn a {
margin:10px ;
}
.btn a .note {
font-size:1rem;
}

/* Sサイズ */
.btn a.btnS {
font-size:1.4rem;
}
.btn a.btnS i {
font-size:1.4rem;
}
/* Mサイズ */
.btn a.btnM {
font-size:1.4rem;
padding:15px 25px;
}
.btn a.btnM i {
font-size:1.4rem;
margin-right:10px;
}
/* Lサイズ */
.btn a.btnL {
font-size:1.6rem;
padding:20px 25px;
}
.btn a.btnL i {
font-size:1.6rem;
margin-right:10px;
}

/********** モーダルウインドウ **********/
.modalstage {
}
.modalinnr {
width:500px;
max-width:calc(100% - 40px);
max-height: calc(100% - 100px);
padding:20px;
}
.modal_close a {
font-size:2.4rem;
line-height:50px;
width: 50px;
height: 50px;
}




/********** BOX *********
.box {
}
*/


/********** スクロールテーブル *********
.scrolltable {
overflow-x: auto;
margin: 0 auto;
position:relative;
}
.scrolltable table {
max-width: 100%;
}
.scrolltable table th,
.scrolltable table td{
white-space: nowrap;
}
.scrolltable:after {
font-family: "Font Awesome 5 Free";
content: "\f07e　スクロールできます";
font-weight:900;
font-size: 1.2rem;
vertical-align:middle;
display:block;
text-align: center;
color:#ccc;
margin:1em auto;
position: sticky;
width:100%;
bottom:0;
left:0;
}*/


/********** ピックアップギャラリー一覧 **********/
.pickup_gallery_list {
margin:0 auto 25px auto;
}
.pickup_gallery_list ul {
}
.pickup_gallery_list ul li {
width:46%;
max-width:160px;
margin:0 2% 2% 2%;
}



/********** ギャラリー一覧 **********/
.gallery_list {
margin:0 auto 25px auto;
}
/*gallery_list_header*/
.gallery_list .gallery_list_header {
flex-wrap:wrap;
margin: 0 auto 25px auto;
}
.gallery_list .gallery_list_header .gallery_list_sort {
justify-content: space-between;
flex-wrap:wrap;
margin: 0;
}
.gallery_list .gallery_list_header .gallery_list_sort dl {
margin:0 1em 0 0;
font-size:1.4rem;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dt {
display:none;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd {
margin:0 .5em 0 0;
}
.gallery_list .gallery_list_header .gallery_list_sort dl dd a {
font-size:1.2rem;
}

.gallery_list .gallery_list_header .gallery_list_sort .refine {
font-size:1.4rem;
}

.gallery_list .gallery_list_header .pager {
font-size:1.4rem;
margin: 0;
}

@media screen and (max-width: 600px){
.gallery_list .gallery_list_header {
border-bottom:0;
}
.gallery_list .gallery_list_header .gallery_list_sort {
width:100%;
margin-bottom:10px;
}
.gallery_list .gallery_list_header .pager {
width:100%;
text-align:right;
border-top: 1px solid #d2d7da;
padding-top:10px;
}
}


/*gallery_list_content*/
.gallery_list .gallery_list_content {
padding-bottom:25px;
}
.gallery_list .gallery_list_content > ul > li {
width:40%;
margin:0 5% 5% 5%;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_txt {
font-size:1.2rem;
}
.gallery_list .gallery_list_content > ul > li .gallery_list_txt small {
font-size:1rem;
}

/*gallery_list_footer*/
.gallery_list .gallery_list_footer {
margin-bottom:50px;
}
.pagination {
margin:25px auto;
}
.pagination ul {
}
.pagination ul li {
margin:0 .25em;
}
.pagination ul li a {
font-size:1.4rem;
padding:.5em ;
min-width:2em;
}



/********** スタンプ詳細 **********/
.stamp_detail {
}
.stamp_detail .stamp_detail_img {
margin:0 auto 15px auto;
}
.stamp_detail .stamp_detail_font {
font-size:1.4rem;
margin-bottom: 15px;
padding-bottom: 15px;
}
.stamp_detail .stamp_detail_font small {
font-size:1.2rem;
}
.stamp_detail .stamp_detail_data {
margin-bottom: 15px;
}
.stamp_detail .stamp_detail_data .stamp_detail_date {
font-size:1.4rem
}
.stamp_detail .stamp_detail_data .stamp_detail_good .good_button label {
font-size:1.4rem
}
.stamp_detail .btn {
margin-bottom: 15px;
}
.stamp_detail .optout_setting {
margin:20px auto 15px auto;
}
/*.stamp_detail .stamp_detail_setting .public_button label {
font-size:1.4rem
}*/
.stamp_detail .share {
padding:20px;
}
.stamp_detail .share .share_title {
font-size:1.4rem;
}

/********** あなたのマイページURL **********/
.mypage_url {
padding:25px 25px;
margin:0 auto 50px auto;
}
.mypage_url .mypage_url_title {
font-size:2rem;
}
.mypage_url .mypage_url_url {
font-size:1.6rem;
}
.mypage_url .mypage_url_description {
font-size:1.4rem;
text-align:justify;
}

/********** シェア **********/
.share {
padding:20px 20px;
margin:0 auto 50px auto;
}
.share .share_title {
font-size:1.6rem;
}
.share ul li {
width:auto;
max-width: 40px;
margin:0 7px;
}
.share ul li button {
min-width: auto;
}

/********** スタンプ選択（ラジオボタン形式） **********/
.form_stamp_select ul li {
width:calc(100% / 2 - 4%);
margin:2%;
}

.form_stamp_select ul li label .form_stamp_select_img {
padding:10px;
border: 2px solid #fff;
}
.form_stamp_select ul li input[type=radio]:checked+label .form_stamp_select_img {
border: 2px solid #e60012;
}
.form_stamp_select ul li input[type=radio] {
display: none;
}

.form_stamp_select ul li label .form_stamp_select_txt {
font-size:1.2rem;
}
.form_stamp_select ul li label .form_stamp_select_txt small {
font-size:1rem;
}

/* スタンプ未作成時 */
.form_stamp_select .nostamp {
padding:20px 10px;
}

/********** ギャラリーに公開 **********/
.optout_setting {
margin:25px auto;
}
.optout_setting .public_button label {
font-size:1.4rem;
}


/******************** ページヘッダー ********************/
.page_header {
}
.page_header .inner {
padding:50px 20px 25px 20px;
}

.campaign_page_header {
}
.campaign_page_header .inner {
padding:50px 20px 25px 20px;
}

/***** page_title *****/
.page_title {
font-size:2.6rem;
}
.page_title small {
font-size:1.4rem;
}

/**************************************** 総合TOP ****************************************/

/******************** メインビジュアル ********************/
.mainvisual {
margin: 0;
background:url(../images/mv_bg_sp.png) no-repeat top center;
background-size:100%;
}

.mainvisual .inner {
padding:25px 20px 25px 20px;
}

/***** site_title *****/
.mainvisual .site_title {
display: block;
margin-bottom:25px;
}
.mainvisual .site_title .mv_img {
width:66%;
max-width:300px;
margin:0 auto 15px auto;
}
.mainvisual .site_title .mv_txt {
width:100%;
text-align:center;
}
.mainvisual .site_title .mv_txt h1 small {
font-size: min(5.5vw, 3rem);
}
.mainvisual .site_title .mv_txt h1 big {
font-size: min(12.5vw, 5rem);
line-height:1.2;
}
.mainvisual .site_title .mv_txt p {
font-size: min(4.2vw, 1.8rem);
}

/***** mv_bnr *****/
.mainvisual .mv_bnr {
}
.mainvisual .mv_bnr ul {
flex-wrap:wrap;
justify-content: center;
}
.mainvisual .mv_bnr ul li {
width: 100%;
padding: 10px 0;
max-width: 400px;
}


/******************** サイト主旨 ********************/
.outline {
padding:0 20px;
height:auto;
}

.outline .inner {
width:100%;
height:auto;
position:relative;
}
.outline .inner:before {
bottom:-35px;
left:-35px;
width: 137px;
height: 100px;
background-size:137px 100px;
}
.outline .inner:after {
top:-35px;
right:-35px;
width: 137px;
height: 100px;
background-size:137px 100px;
}

.outline .outline_flex {
flex-wrap:wrap;
padding:30px 20px;
}
.outline .outline_img_l {
width:100px;
margin:0 10px 20px 10px;
order:0;
}
.outline .outline_img_r {
width:100px;
margin:0 10px 20px 10px;
order:1;
}
.outline .outline_txt {
width:100%;
font-size:1.6rem;
margin:0 auto;
order:2;
}


/******************** フォントを選んで作れる！「フォント de スタンプ」 ********************/
.fds_outline {
padding:75px 0 ;
}
.fds_outline .inner {
}

.fds_feature {
margin-bottom:50px;
}
.fds_feature ul {
flex-wrap:wrap;
justify-content: center;
}
.fds_feature ul li {
width:calc(100% / 2 - 4%);
max-width: 220px;
padding:10px;
}

.fds_feature ul li .fds_feature_img {
width:100%;
max-width: 200px;
height:auto;
margin: 0 auto 10px auto;
}

.fds_feature ul li .fds_feature_txt {
font-size:1.4rem;
}
.fds_feature ul li .fds_feature_txt small {
font-size:1.1rem;
}


/******************** さらに ********************/
.events {
padding:0 0 50px 0 ;
}
.events .inner {
}

.events .inner .events_title {
margin:0 auto 25px auto;
padding:0 20px;
}

.events .events_bnrs ul {
padding:0 20px;
}
.events .events_bnrs ul li {
margin-bottom:20px;
}


/******************** モリサワ ********************/
.morisawa {
}
.morisawa .inner {
padding:50px 20px;
}

.morisawa .morisawa_flex {
display:block;
}
.morisawa .morisawa_flex .morisawa_img {
width:100%;
margin:0 auto 50px auto;
}
.morisawa .morisawa_flex .morisawa_txt {
width:100%;
font-size:1.5rem;
}
.morisawa .morisawa_flex .morisawa_txt .morisawa_title {
font-size:2.4rem;
text-align:center;
}
.morisawa .morisawa_flex .morisawa_txt a.morisawa_btn {
font-size:1.2rem;
}


/******************** フォントを選んで、未来を描く ********************/
.future {
padding:50px 0 50px 0;
}
.future .inner {
padding:0 20px;
}

.future .future_flex {
display:block;
}
.future .future_flex .future_txt {
width:100%;
font-size:1.5rem;
margin:0 auto 25px auto;
}
.future .future_flex .future_txt .future_title {
font-size:2.4rem;
text-align:center;
}

.future .future_flex .future_img {
width:240px;
margin:0 auto;
}


/**************************************** キャンペーンTOP ****************************************/

/******************** キャンペーンメインビジュアル ********************/
.campaign_mv {
}

.campaign_mv .inner {
padding:25px 20px;
}

/***** campaign_mv_flex *****/
.campaign_mv .campaign_mv_flex {
display: block;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt {
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
max-width: 100%;
margin: auto;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt .campaign_mv_title {
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul {
margin-bottom:0;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul li {
font-size:1.5rem;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt ul li img {
width:20px;
height:20px;
}
.campaign_mv .campaign_mv_flex .campaign_mv_txt .btn {
justify-content: center;
}

.campaign_mv .campaign_mv_flex .campaign_mv_img {
width:100%;
margin:0 auto 25px auto;
}
.campaign_mv .campaign_mv_flex .campaign_mv_img img {
-webkit-transform: scale(100%);
        transform: scale(100%);
}



/******************** キャンペーン詳細 ********************/
.campaign_overview {
background:none;
}

.campaign_overview .inner {
padding:50px 20px;
}
.campaign_overview .campaign_overview_flex {
display:block;
}

/*** campaign_overview_sentence ***/
.campaign_overview .campaign_overview_sentence {
margin:0 0 25px 0;
font-size:1.6rem;
}
.campaign_overview .campaign_overview_sentence.half_width {
width:100%;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex {
flex-wrap:wrap;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex .campaign_overview_sentence_img {
width:100%;
max-width:240px;
margin:auto;
order:1;
}
.campaign_overview .campaign_overview_sentence .campaign_overview_sentence_flex .campaign_overview_sentence_txt {
width:100%;
order:0;
}

.campaign_overview .campaign_overview_sentence .campaign_overview_title {
font-size:2rem;
}



/******************** 応募から当選までの流れ ********************/
.campaign_flow {
}
.campaign_flow .inner {
padding:50px 20px;
}

/*** campaign_flow_content ***/
.campaign_flow .campaign_flow_content {
}
.campaign_flow .campaign_flow_content ol li {
padding:25px 0;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_step {
width:60px;
height:60px;
font-size:3rem;
padding:.15em .15em 0 0;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_step:before {
font-size:1rem;
margin: 0 0 -1em .5em;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_txt {
width:calc(100% - 80px);
font-size:1.6rem;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_txt .campaign_flow_title {
font-size:2rem;
}
.campaign_flow .campaign_flow_content ol li .campaign_flow_txt small {
font-size:1.2rem;
}

.campaign_flow .campaign_flow_content ol li .campaign_flow_img {
display:none;
}



/******************** 「フォント de スタンプ」ギャラリー（キャンペーンページ） ********************/
.campaign_gallery {
}

.campaign_gallery .inner {
padding: 50px 20px;
}

.campaign_gallery .section_header {
margin-bottom:25px;
}



/******************** よくある質問 ********************/
.campaign_faq {
}

.campaign_faq .inner {
padding:50px 20px;
}

.campaign_faq .campaign_faq_sentence {
padding:25px;
margin:0 auto 25px auto;
}
.campaign_faq .campaign_faq_sentence .campaign_faq_title {
font-size:2rem;
}
.campaign_faq .campaign_faq_sentence dl dt {
font-size:1.6rem;
padding: 0 0 0 3rem;
}
.campaign_faq .campaign_faq_sentence dl dt:before {
font-size:2rem;
top: 2px;
}

.campaign_faq .campaign_faq_sentence dl dd {
font-size:1.4rem;
padding: 0 0 0 3rem;
}
.campaign_faq .campaign_faq_sentence dl dd:before {
font-size:2rem;
top: 2px;
}



/******************** キャンペーン規約 ********************/
.campaign_precaution {
}

.campaign_precaution .inner {
padding:50px 20px;
}

.campaign_precaution .campaign_precaution_content {
}
.campaign_precaution .campaign_precaution_content dl {
display:flex;
flex-wrap:wrap;
text-align:justify;
margin:0;
}
.campaign_precaution .campaign_precaution_content dl dt {
width:100%;
font-size:1.6rem;
padding:0 ;
margin-bottom:.5em;
}
.campaign_precaution .campaign_precaution_content dl dd {
width:100%;
font-size:1.4rem;
border:0;
padding:0 ;
margin-bottom:50px;
}



/**************************************** キャンペーン応募フォーム ****************************************/

/******************** キャンペーン応募フォーム ********************/
.campaign_form {
}
.campaign_form .inner {
padding:50px 20px ;
}

.campaign_form .campaign_form_content {
padding:25px;
}
.campaign_form .campaign_form_content dl {
margin-bottom: 25px;
}
.campaign_form .campaign_form_content dl dt {
font-size:1.6rem;
}
.campaign_form .campaign_form_content dl dd {
font-size:1.4rem;
}
.campaign_form .campaign_form_content dl dd input.half {
width:100%;
}
.campaign_form .campaign_form_content dl dd .file {
flex-wrap:wrap;
}
.campaign_form .campaign_form_content dl dd .file label {
margin:.5em 1em .5em 0 ;
}

.campaign_form .campaign_form_content .agree {
margin-bottom:25px;
}


/**************************************** キャンペーン応募完了 ****************************************/

/******************** ご応募ありがとうございました ********************/
.campaign_thanks {
}
.campaign_thanks .inner {
padding:50px 20px ;
}

.campaign_thanks .campaign_thanks_content {
padding:25px 0 50px 0;
}


/**************************************** キャンペーン応募規約 ****************************************/

/******************** 応募規約 ********************/
.campaign_terms {
}
.campaign_terms .inner {
padding:50px 20px;
}
.campaign_terms .terms .terms_subtitle {
font-size:1.6rem;
}



/**************************************** 「フォント de スタンプ」TOP ****************************************/

/******************** "あなたの言葉"がデジタルスタンプになって届く！ ********************/
.fds {
padding:50px 0 ;
}
.fds .inner {
}



/******************** 「フォント de スタンプ」ギャラリー ********************/
.stamp_gallery {
}
.stamp_gallery .inner {
padding: 50px 20px;
}

.stamp_gallery .section_header {
margin-bottom:25px;
}



/******************** 質問に答えてデジタルスタンプを作ろう ********************/
.enquete {
}
.enquete .inner {
padding: 50px 20px;
}

.enquete .enquete_content {
padding:25px;
}
.enquete .enquete_content dl dt {
font-size:1.6rem;
}
.enquete .enquete_content dl dd {
font-size:1.4rem;
}

.enquete .enquete_content .terms .scroll_inner {
height:300px;
font-size:1.2rem;
padding:20px;
}

.enquete .enquete_content .terms .scroll_inner .terms_title {
font-size:1.2rem;
}
.enquete .enquete_content .terms .scroll_inner .terms_subtitle {
font-size:1.2rem;
}
.enquete .enquete_content .terms .scroll_inner .terms_date {
font-size:1rem;
}



/**************************************** 「フォント de スタンプ」スタンプ作成 ****************************************/

/******************** スタンプ作成はかんたん3ステップ ********************/
.stamp_steps {
}
.stamp_steps .inner {
padding: 50px 20px;
}

.stamp_steps .stamp_steps_content ul {
display:block;
width:400px;
max-width:100%;
margin:auto;
}
.stamp_steps .stamp_steps_content ul li {
width:100%;
margin:0 auto 35px auto;
padding:40px 25px 25px 25px;

display:flex;
justify-content: center;
align-items: center;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_number {
width:50px;
height:50px;
font-size:2rem;
top: -25px;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_img {
width:70px;
margin:0 25px 0 0;
}

.stamp_steps .stamp_steps_content ul li .stamp_steps_txt {
font-size:1.4rem;
text-align:justify;
}
.stamp_steps .stamp_steps_content ul li .stamp_steps_txt .stamp_steps_title {
font-size:1.8rem;
}



/******************** スタンプ作成フォーム ********************/
.stamp_form {
}
.stamp_form .inner {
padding:0 20px 50px 20px;
}

.stamp_form .stamp_form_content .stamp_form01 {
padding:50px 20px;
}

.stamp_form .stamp_form_content .stamp_form02 {
padding:50px 20px;
}

.stamp_form .stamp_form_content .stamp_form03 {
padding:50px 20px;
}

.stamp_form .stamp_form_content .stamp_form_number {
width:60px;
height:60px;
font-size:3rem;
top:-30px;
}

.stamp_form .stamp_form_content .stamp_form_title {
font-size:2rem;
}
.stamp_form .stamp_form_content .stamp_form_description {
margin-bottom:2em;
text-align:justify;
}

/* 01 */
.stamp_form .stamp_form_content .stamp_form01 .form_stamp_select ul li {
width:calc(100% / 2 - 4%);
margin:2%;
}

/* 02 */
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text {
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label {
padding:10px 15px;
margin:0 0 20px 0;
display:block;
text-align:justify;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label input[type="text"] {
padding:.25em 0 ;
margin-bottom:.5em;
}
.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text label .limiter {
font-size:1.2rem;
padding:0 ;
}

.stamp_form .stamp_form_content .stamp_form02 .stamp_form_text ul.caution {
font-size:1.4rem;
margin:10px auto 25px auto;
}

/* 03 */
.stamp_form .stamp_form_content .form_stamp_select .no_select {
margin:5em auto;
}



/**************************************** 「フォント de スタンプ」スタンプDL完了 ****************************************/

/******************** ダウンロードありがとうございました ********************/
.stamp_thanks {
}
.stamp_thanks .inner {
padding:50px 20px;
}

.stamp_thanks .stamp_thanks_content {
margin-bottom:50px;
}
.stamp_thanks .stamp_thanks_content .stamp_thanks_img {
margin:25px auto;
}
.stamp_thanks .stamp_thanks_content .stamp_thanks_txt {
font-size:1.6rem;
text-align:justify;
}


/* ダウンロードしたデータで応募しよう */
.stamp_thanks .entry_campaign {
margin:0 auto 50px auto;
}

.stamp_thanks .entry_campaign .entry_campaign_title {
font-size:2rem;
padding:0 31px;
}
.stamp_thanks .entry_campaign .entry_campaign_title:before {
background-size:21px 30px;
width:21px;
height:30px;
}
.stamp_thanks .entry_campaign .entry_campaign_title:after {
background-size:21px 30px;
width:21px;
height:30px;
}
.stamp_thanks .entry_campaign .entry_campaign_bnr {
margin:0 auto 50px auto;
}



/**************************************** マイページ ****************************************/

/******************** マイページ ********************/
.mypage {
}
.mypage .inner {
padding:50px 20px;
}

.mypage .mypage_url {
margin:50px auto 0 auto;
}


/**************************************** みんなのスタンプギャラリー ****************************************/

/******************** みんなのスタンプギャラリー ********************/
.gallery {
}
.gallery .inner {
padding:50px 20px;
}




/******************** バナーエリア ********************/
.bnr_area {
}

.bnr_area .inner {
padding:25px 20px;
}

/* bnr */
.bnr_area .bnr {
position:relative;
z-index:1;
}
.bnr_area .bnr ul {
flex-wrap:wrap;
justify-content: center;
}
.bnr_area .bnr ul li {
width: 100%;
padding: 10px 0;
max-width: 400px;
}


/* ******************************************************************** */
/**** footer ****/
/* ******************************************************************** */
.footer {
}
.footer .inner {
padding:30px 20px ;
}

/***** pagetop *****/
.pagetop {
margin: auto;
right:20px;
bottom: 20px;
position:fixed;
}
.pagetop.floating {
bottom: 20px;
}
.pagetop a {
width:40px;
height: 40px;
font-size:2rem;
}

/***** 上段 *****/
.footer .footer_upper {
display:block;
margin: 0 0 30px 0;
}
.footer .footer_upper .footer_logo {
width:200px;
height:75px;
margin:0 auto 20px auto;
}
.footer .footer_upper .footer_bnr {
}
.footer .footer_upper .footer_bnr .btn {
}

/***** 下段 *****/
.footer .footer_lower {
display:block;
}
.footer .footer_lower ul.footer_menu {
justify-content: center;
flex-wrap: wrap;
margin:0 auto 20px auto;
}
.footer .footer_lower ul.footer_menu li {
margin:0 10px;
}
.footer .footer_lower ul.footer_menu li a {
}
.footer .footer_lower ul.footer_menu li a:hover {
}

.footer .footer_lower .copyright {
display:block;
text-align:center;
}
.footer .footer_lower .copyright ul {
display:block;
}
.footer .footer_lower .copyright ul li {
margin:0 10px;
}



}

/* キャンペーンエントリーページのラジオボタン表示 */
.campaign_form .form_stamp_select ul li input[type=radio] {
display: inline-block;
margin-right: 8px;
}

/* スマートフォン用 */
@media screen and (max-width: 768px) {
.campaign_form .form_stamp_select ul li input[type=radio] {
display: inline-block;
margin-right: 8px;
}
}