/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v8.4.14,
* Autoprefixer: v10.4.7
* Browsers: last 4 version
*/

/* base style ------------------------------ */
.jp{
    font-family:serif;
}

html {
    overflow-y: scroll;
    overflow-x: hidden;
    font-size: 62.5%;
}

body * {
    margin: 0;
    padding: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    letter-spacing: -0.02em;
}

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote {
    margin: 0;
    padding: 0;
}

th,td {
    margin: 0;
    padding: 0;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

fieldset,img {
    border: 0;
}

address,caption,cite,code,dfn,em,strong,th,var {
    font-style: normal;
    font-weight: normal;
}

ol,ul {
    list-style: none;
}

caption,th {
    text-align: left;
}

h1,h2,h3,h4,h5,h6 {
    font-size: 100%;
    font-weight: normal;
}

p {
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

q:before,q:after {
    content: '';
}

abbr,acronym {
    border: 0;
}

img {
    vertical-align: top;
}
img {
    max-width: 100%;
    height: auto;
    border: 0;
    image-rendering: -webkit-optimize-contrast;
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0);
}

#wrapper {
    width: 100%;
    margin: 0;
}

section {
    position: relative;
}

body {
    width: 100%;
    font-family: Noto Sans JP, Meiryo, メイリオ, "MS PGothic", Osaka, arial, sans-serif;
    padding: 0px;
    margin: 0px;
    color: #212121;
    font-size: 16px;
    line-height: 1.8;
    -webkit-text-size-adjust: 100%;
    font-weight:
        normal;
    -webkit-font-smoothing: none;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    -webkit-font-smoothing: subpixel-antialiased;
    position: relative;
    line-height: 1.4;
    background-color: #FFF;
}

.clear { clear: both;}

.yellow { color: #ffdd3d;}
.red { color: #e60012;}
.green { color: #54730c !important;}
.pink { color: #ff0078;}
.blue { color: #0079b0;}
.skyblue { color: #00a0e9;}
.medium { font-size: medium;}
.smaller { font-size: smaller;}
.small { font-size: small;}
.x-small { font-size: x-small;}
.txt-medium { font-size: 1.8rem;}
.point-medium { font-size: 2.1rem; margin-bottom: 46px;}
.alignleft { float: left;}
.alignright { float: right;}
.aligncenter { text-align: center;}
.text-right { text-align: right;}
.ellipsis-multi {}

img.alignleft {
    float: left;
    margin: 0 30px 30px 0;
}

img.alignright {
    float: right;
    margin: 0 0 30px 30px;
}

a {
    text-decoration: none;
    cursor: pointer;
    -webkit-transition: 0.5s ease;
    -o-transition: 0.5s ease;
    transition: 0.5s ease;
}

a:hover {
    opacity: .7;
    text-decoration: none;
}

a[href^="tel:"] {
    pointer-events: none;
}

.hover {
    cursor: pointer;
}

section {
    position: relative;
}

@media screen and (min-width: 768px) {
    html,
    body {
        -webkit-overflow-scrolling: touch !important;
    }
}

@media screen and (max-width: 767px) {
.pc {
    display: none !important;
}
}

@media screen and (min-width:768px) {
    .sp { display: none !important; }
}
@media screen and (min-width:1025px) {
    .md { display: none !important; }
}

.clear {
    clear: both;
}

.clearfix {
    zoom: 1;
    clear: both;
}

.clearfix:after {
    content: "";
    display: block;
    clear: both;
}





/* -------------------------------------------------------------------
ICON
------------------------------------------------------------------- */
[class*=" icon-"]:after,
[class*=" icon-"]:before,
[class^=icon-]:after,
[class^=icon-]:before {
    font-family: FontAwesome;
    speak: none;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}





/* -------------------------------------------------------------------
Layout
------------------------------------------------------------------- */
body * {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

body.no_scroll {
    overflow: hidden;
}





/* -------------------------------------------------------------------
Pagetitle
------------------------------------------------------------------- */
.sectionTitle {
    margin: 0 auto 50px;
    text-align: center;
    position:relative;
}
.sectionTitle-inner{
    margin:0 auto;
    display: inline-block;
    position:relative;
}
.sectionTitle h2,
.sectionTitle h1 {
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
}
.sectionTitle p{
    font-size: 2.6rem;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0;
    display: block;
}

.sectionTitle h2 span {
    font-size: 4rem;
    color: #b81b60;
    font-weight: 600;
    letter-spacing: 0.05em;
    vertical-align:bottom;
    display: inline-block;
}

.sectionTitle h2 span.underline-02 {
    padding: 0 0 12px;
    background: url(/campaign/images/cameramatsuri/dotted.svg) 6px bottom no-repeat;
}

.sectionTitle h2 span.large {
    margin: 0 0 -6px;
    font-size: 7rem;
    padding: 0 .05em;
}

.sectionTitle.vertical {
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
}

.sectionTitle.vertical h2 span:nth-of-type(1) {
    height: 100%;
    margin: 0 0 0 15px;
    left: 0;
    display: block;
}

@-webkit-keyframes fade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}


/* -------------------------------------------------------------------
Layout(Common)
------------------------------------------------------------------- */
section{
    width: 100%;
    margin: auto;
}

.maxwidth-container {
    width: 100%;
    margin: auto;
}

/*768PX*/
@media screen and (min-width: 768px) {
.maxwidth-container {
    max-width: 1120px;
}
}

/* --------------------------------------------- SP end */

/*767PX*/
@media screen and (max-width: 767px) {
.maxwidth-container {
    width: calc(100% - 40px);
}
}
/* --------------------------------------------- SP end */
.container-fluid {
    position: relative;
}

.container-fluid p {
    margin: 0;
    font-size: 1.4rem;
    line-height: 2;
    font-weight: 100;
    letter-spacing: 0;
}


section .inner {
    width: 100%;
    margin: auto;
}

.h2 {
    font-size: 4.3rem;
    text-align: center;
}

.h3 {
    font-size: 2.2rem;
}

.h4 {
    font-size: 2rem;
}

#ContentsWrap {
    margin: 0 auto;
    position: relative;
}



/* -------------------------------------------------------------------
.container
------------------------------------------------------------------- */
.container {
    width: 100%;
    max-width: 1088px;
    margin: 64px auto 0;
    overflow: hidden;
}

.flexContainer {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: flex-start;
    -ms-flex-pack: flex-start;
    justify-content: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}



/* -------------------------------------------------------------------
Button
------------------------------------------------------------------- */
.baseBtnStyle {
    -webkit-transition: .3s;
    -o-transition: .3s;
    transition: .3s;
    position: relative;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-radius: 0;
    position: relative;
}

.baseBtnStyle.btn-ellipse{
    width: 525px;
    height: 73px;
    margin: auto;
    color:#fff;
    text-align: center;
    font-size: 2.4rem;
    font-weight:600;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-line-pack: center;
    align-content: center;
    border-radius: 37px;
    background: linear-gradient(180deg, #FF850B 50%, #8E4C01 136.99%);
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.15);
    position: relative;
}
.baseBtnStyle.btn-ellipse a{
    color:#fff;
}
.baseBtnStyle.btn-ellipse a:before {
    content: "";
    height: 16px;
    width: 16px;
    margin: auto 0;
    display: block;
    position: absolute;
    top: 0;
    right: 30px;
    bottom: 0;
    background: #fff;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    z-index:10;
}
.baseBtnStyle.btn-ellipse:hover {
    opacity:.7;
}

.baseBtnStyle.btn-square {
    width: 539px;
    height: 87px;
    margin: auto;
    position: relative;
    display:block;
}

.baseBtnStyle.btn-square:after {
    content: "";
    width: 526px;
    height: 74px;
    margin: auto;
    position:absolute;
    right:0;
    bottom:0;
    display: block;
    border-right:solid 2px #db8daf;
    border-bottom:solid 2px #db8daf;
}
.baseBtnStyle.btn-square a {
    width: 526px;
    height: 74px;
    margin: 0;
    text-align: center;
    line-height: 1;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background: #b81b60;
    color: #fff;
    text-align: center;
    font-size:2rem;
    font-weight:600;
    position: relative;
}
.baseBtnStyle.btn-square a:before {
    content: "";
    height: 12px;
    width: 14px;
    margin: auto 0;
    display: block;
    position: absolute;
    top: 0;
    right: 35px;
    bottom: 0;
    background: #fff;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.baseBtnStyle.btn-square:hover {
    opacity:.7;
}

input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover,
button[type=submit]:hover,
input[type=button]:focus,
input[type=reset]:focus,
input[type=submit]:focus,
button[type=submit]:focus {
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#12121200000', endColorstr='#1a000000', GradientType=0);
    background-image: -o-linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.10));
    background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(40%, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.10))) !important;
    background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.10)) !important;
}

button[type=submit] i {
    padding-right: 12px;
}

i.angle-bottom {
    height: 12px;
    width: 14px;
    position: relative;
    display: block;
    background: #1a1a1c;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    transform: rotate(180deg);
}

.baseBtnStyle i.angle-left,
.baseBtnStyle i.angle-right {
    height: calc(18px / 2 * tan(60deg));
    width: 18px;
    position: relative;
    display: inline-block;
    background: #e60012;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}

.baseBtnStyle i.angle-left {
    margin-right: 37px;
}

.baseBtnStyle i.angle-right {
    right: 20px;
}

/*767PX*/
@media screen and (max-width: 767px) {

.baseBtnStyle.btn-ellipse{
    width: 321px;
    height: 44px;
    font-size: 1.6rem;
    border-radius: 21px;
}

.baseBtnStyle.btn-ellipse a:before {
    content: "";
    height:8px;
    width: 9px;
    right: 22px;
}
}
/* --------------------------------------------- SP end */

/* -----------------------------------------------------------
 Flex Contents
------------------------------------------------------------*/
.flexBox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-flow: row wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    flex-flow: row wrap;
    -ms-flex-line-pack: start;
    align-content: flex-start;
    position: relative;
}

.flexBox-center{
    display: flex;
    align-items: center;
    justify-content: center;
    align-content:center;
    flex-flow: row wrap;
    position: relative;
}

.flb-md-1-2 {
    width: 50%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

.flb-md-1-3 {
    width: 33.333333%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

.flb-md-1-4 {
    width: 25%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

.flb-md-1-5 {
    width: 20%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

.flb-md-1-6 {
    width: 16.666666%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}


.flb-lg-1-1 {
    width: 100%;
    display: inline-block;
}

.flb-lg-1-2 {
    width: 50%;
    display: inline-block;
}

.flb-lg-1-3 {
    width: 33.333333%;
    display: inline-block;
    zoom: 1;
    letter-spacing: normal;
    word-spacing: normal;
    vertical-align: top;
    text-rendering: auto;
}

.flb-lg-1-4 {
    width: 25%;
    display: inline-block;
}

.w-1-1 {
    width: 100%;
}




/* -------------------------------------------------------------------
COMMON PARTS
------------------------------------------------------------------- */
/* flexLayout-Lectangle */
.lo-rectangle .flexBox {
    width: 100%;
    margin: auto;
    position: relative;
}

.lo-rectangle .w-1-1 {
    position: relative;
}

.lo-rectangle .w-1-1:last-child {
    border-bottom: solid 1px #68696a;
}

.lo-rectangle .hr:after {
    content: "";
    width: 100%;
    height: 1px;
    margin:
        auto;
    position: absolute;
    top: 0;
    left: 0;
    bottom: unset;
    background: #68696a;
    display: block;
    z-index: 1;
}

.lo-rectangle .flexBox .picture {
    width: 320px;
    margin: 0;
    display: block;
}

.lo-rectangle .flexBox .text {
    width: calc(100% - 320px);
    margin: 0;
    padding-left: 60px;
    display: block;
}

.lo-rectangle .flexBox .h3 {
    margin: 0;
    font-weight: 500;
    color: #FFF;
    display: block;
}

.lo-rectangle .flexBox p {
    margin: 30px 0 0;
    font-size: 1.6rem;
    color: #FFF;
}

.lo-rectangle .flexBox .block {
    width: 100%;
    margin: 0 auto;
    padding: 30px 32px;
    background: #fff;
    display: block;
}

/* flexLayout-Square*/
.lo-square .flexBox {
    width: calc(100% + 46px);
    margin: 0 -23px;
    position:relative;
}

.lo-square .flexBox.column-3 {
    width: calc(100% + 60px);
    margin: 0 -30px;
}

.lo-square .flb-md-1-2 {
    margin-bottom: 55px;
    padding: 0 20px;
    position: relative;
}

.lo-square .flb-md-1-3,
.lo-square .flb-lg-1-3 {
    margin-bottom: 80px;
    padding: 0 23px;
    position: relative;
}

.lo-square .maxwidth-container {
    margin: 0 auto;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
}

.lo-square .flexBox .picture {
    width: 100%;
    max-width: 340px;
    height: 0;
    margin: 0;
    padding-top: 135.29411764705884%;
    display: block;
    position: relative;
    overflow: hidden;
}

.lo-square .flexBox .picture:before {
    content: "";
    width: 100%;
    max-width: 340px;
    height: 0;
    margin: 0;
    padding-top: 135.29411764705884%;
    display: block;
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(61, 61, 61, 0)), color-stop(68%, rgba(61, 61, 61, 0)), to(rgba(61, 61, 61, 1)));
    background: -o-linear-gradient(top, rgba(61, 61, 61, 0) 0%, rgba(61, 61, 61, 0) 68%, rgba(61, 61, 61, 1) 100%);
    background: linear-gradient(to bottom, rgba(61, 61, 61, 0) 0%, rgba(61, 61, 61, 0) 68%, rgba(61, 61, 61, 1) 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
}

.lo-square .flexBox.column-3 .picture {
    max-width: 320px;
    padding-top: 67.1875%;
}

.lo-square .flexBox .picture img {
    position: absolute;
    top: 0;
    left: 0;
}

.lo-square .flexBox .text {
    width: 100%;
    height: 100%;
    padding: 25px 20px;
    position: absolute;
    top: 0;
    left: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-box-align: end;
    -ms-flex-align: end;
    align-items: flex-end;
    -ms-flex-line-pack: end;
    align-content: flex-end;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    z-index: 10;
}

.lo-square .flexBox.column-3 .text {
    margin: 30px 0 0 0;
}

.lo-square .flexBox .h4 {
    margin: 0;
    font-size: 3.2rem;
    font-weight: 500;
    /* letter-spacing: -0.05em; */
    color: #FFF;
    display: block;
}

.lo-square .flexBox p {
    margin: 0 0 10px;
    font-size: 2.2rem;
    line-height: 1.55;
    color: #FFF;
}

.lo-square .flexBox .block {
    width: 100%;
    margin: 0 auto;
    padding: 30px 32px;
    background: #fff;
    display: block;
}


.noscroll,
html.overflowHidden,
body.overflowHidden{
    overflow: hidden;
}

i {
    display: inline-block;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.vertical {
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
            writing-mode: vertical-rl;
}



/* -------------------------------------------------------------------
Header
------------------------------------------------------------------- */
body * {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

html.no_scroll,
body.no_scroll {
    overflow: hidden;
}

@-webkit-keyframes show {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes show {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@-webkit-keyframes hide {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes hide {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}



/* -------------------------------------------------------------------
section.pagenav
------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
section.pagenav {
    margin-bottom: 108px;
}

.pagenav .sectionTitle h2 {
    height: 76px;
    margin-top: -10px;
    padding-bottom: 12px;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    align-content: flex-end;
    vertical-align: bottom;
}
.pagenav .sectionTitle p.sub {
    margin: 0;
    padding: 0;
    font-size: 1.3rem;
    font-weight: bold;
    letter-spacing: 0;
    text-align: right;
    display: inline-block;
    position: relative;
    position: absolute;
    top: -2px;
    right: -0.2em;
}
.pagenav .sectionTitle h2 span {
    margin-bottom: -12px;
    font-size: 4rem;
    color: #b81b60;
    font-weight: 600;
    letter-spacing: 0.05em;
    vertical-align:bottom;
    display: inline-block;
}
.pagenav .sectionTitle h2 span.large {
    margin-bottom:-3px;
    font-size: 7rem;
}
section.pagenav .sectionTitle {
    margin-bottom: 60px;
}

section.pagenav .maxwidth-container{
    padding: 0;
}
    
section.pagenav nav{
    width: calc(100% + 26px);
    margin: 0 -13px 25px;
    padding: 0;
    position: relative;
    z-index: 1;
}

section.pagenav ul {
    width: calc(100% + 26px);
    margin: 0 -13px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

section.pagenav ul li {
    /* width: calc(25% + 26px); */
    /* max-width: 270px; */
    width: 270px;
    height: 158px;
    padding: 0;
    margin: 0 13px 30px;
    display: block;
    position: relative;
}

section.pagenav ul li:first-child {
    margin-left: 0;
}
section.pagenav ul li:last-child {
    margin-right: 0;
}

section.pagenav ul li a {
    width: 100%;
    height: 150px;
    margin: auto;
    padding: 0;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
    font-size: 3.2rem;
    color:#b81b60;
    font-weight:600;
    letter-spacing:-0.01em;
    text-align:center;
    line-height: 1;
    background: #FFF;
    border: solid 2px #8c8c8d;
    transition: 0.5s ease;
}

section.pagenav ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 2rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}

section.pagenav ul li a .tokuten-naiyou{
    margin:0 auto;
    display:flex;
    justify-content:flex-end;
    align-items:flex-end;
    align-content:flex-end;
}

section.pagenav ul li a span.small-02{
    font-size: 2rem;
}

section.pagenav ul li a:after {
    content: "";
    width: 258px;
    height: 148px;
    margin: 0;
    position: absolute;
    right: -8px;
    bottom: -8px;
    border: solid 2px #8c8c8d;
    display: block;
    z-index: -1;
}

section.pagenav ul li a:before {
    content: "";
    width: 47px;
    height: 47px;
    margin: 0 auto;
    font-size: 3.2rem;
    font-weight: bold;
    color: #FFF;
    line-height:42px;
    text-align: center;
    background: #b81b60;
    display: block;
    position: absolute;
    top: -20px;
    left: -13px;
    border-radius: 50%;
    z-index: 1;
}
section.pagenav ul li:nth-of-type(1) a:before {
    content: "1";
}
section.pagenav ul li:nth-of-type(2) a:before {
    content: "2";
}
section.pagenav ul li:nth-of-type(3) a:before {
    content: "3";
}
section.pagenav ul li:nth-of-type(4) a:before {
    content: "4";
}

section.pagenav i.angle-bottom {
    width: 14px;
    height: 14px;
    position: absolute;
    right: 8px;
    bottom: 8px;
    background: url(/campaign/images/cameramatsuri/arrow-01.svg) right bottom no-repeat;
    clip-path: unset;
    background-size: 13px;
    transform: unset;
}

section.pagenav ul li a:hover,
section.pagenav ul li a:hover:after {
    opacity: 1;
    border-color:#9a9a9a;
}
section.pagenav ul li a:hover span,
section.pagenav ul li a:hover:before{
    opacity: .8;
    text-decoration: none;
}
}
/* --------------------------------------------- PC end */
@media screen and (min-width: 768px) and (max-width:1119px) {
section.pagenav .maxwidth-container{
    padding: 0 30px;
}

section.pagenav ul {
    width: 592px;
    margin: 0 auto;
}
}
/* --------------------------------------------- PC end */
/*767PX*/
@media screen and (max-width: 767px) {
section.pagenav {
    margin-bottom: 85px;
    z-index: 1;
    position: relative;
}

.pagenav .sectionTitle h2 {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .05em;
    display: flex;
    justify-content: flex-end;
    align-items: baseline;
    align-content: flex-end;
    vertical-align: bottom;
}
.pagenav .sectionTitle p.sub {
    margin: 0;
    padding: 0;
    font-size: 1.3rem;
    font-weight: bold;
    letter-spacing: 0;
    text-align: center;
    display: inline-block;
    position: relative;
}
.pagenav .sectionTitle h2 span {
    margin-bottom: 0;
    font-size: 2.4rem;
    color: #b81b60;
    font-weight: 600;
    letter-spacing: 0.05em;
    vertical-align:bottom;
    display: inline-block;
}
.pagenav .sectionTitle h2 span.large {
    font-size: 4rem;
}

section.pagenav .sectionTitle {
    margin-bottom: 24px;
}

section.pagenav .maxwidth-container{
    width: 100%;
    padding: 0;
}
section.pagenav nav{
    width: 100%;
    margin: 0 auto 40px;
    padding: 0;
    position: relative;
    z-index: 1;
}

section.pagenav ul {
    width: calc(100% + 18px);
    margin: 18px -9px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: row wrap;
}

section.pagenav ul li {
    width: calc(50% + 18px);
    max-width: 160px;
    height: 99px;
    padding: 0;
    margin: 0 9px 18px;
    display: block;
    position: relative;
}

section.pagenav ul li a {
    width: 100%;
    height: 100%;
    margin: auto;
    padding: 0;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
    font-size: 1.8rem;
    color:#b81b60;
    font-weight:600;
    letter-spacing:-0.01em;
    text-align:center;
    line-height: 1;
    background: #FFF;
    border: solid 2px #8c8c8d;
    transition: 0.5s ease;
}

section.pagenav ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 1.4rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}

section.pagenav ul li a .tokuten-naiyou{
    margin:0 auto;
    display:flex;
    justify-content:flex-end;
    align-items:flex-end;
    align-content:flex-end;
}

section.pagenav ul li a span.small-02{
    font-size: 2rem;
}

section.pagenav ul li a:after {
    content: "";
    width: 160px;
    height: 99px;
    margin: 0;
    position: absolute;
    right: -5px;
    bottom: -5px;
    border: solid 2px #8c8c8d;
    display: block;
    z-index: -1;
}

section.pagenav ul li a:before {
    content: "";
    width: 35px;
    height: 35px;
    margin: 0 auto;
    font-size: 2.4rem;
    font-weight: bold;
    color: #FFF;
    line-height: 32px;
    text-align: center;
    background: #b81b60;
    display: block;
    position: absolute;
    top: -8px;
    left: -8px;
    border-radius: 50%;
    z-index: 1;
}
section.pagenav ul li:nth-of-type(1) a:before {
    content: "1";
}
section.pagenav ul li:nth-of-type(2) a:before {
    content: "2";
}
section.pagenav ul li:nth-of-type(3) a:before {
    content: "3";
}
section.pagenav ul li:nth-of-type(4) a:before {
    content: "4";
}

section.pagenav i.angle-bottom {
    width: 12px;
    height: 12px;
    position: absolute;
    right: 8px;
    bottom: 8px;
    background: url(/campaign/images/cameramatsuri/arrow-01.svg) right bottom no-repeat;
    clip-path: unset;
    background-size: 11px;
    transform: unset;
}

section.pagenav ul li a:hover,
section.pagenav ul li a:hover:after {
    opacity: 1;
    border-color:#9a9a9a;
}
section.pagenav ul li a:hover span,
section.pagenav ul li a:hover:before{
    opacity: .8;
    text-decoration: none;
}
}
/* --------------------------------------------- SP end */




@-webkit-keyframes fade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fade {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}



/* -------------------------------------------------------------------
Layout(Common)
------------------------------------------------------------------- */
.maxwidth-container {

}

.container-fluid {
}

.container-fluid p {
    margin: 0;
    font-size: 1.6rem;
    line-height: 1.65;
    font-weight: normal;
    letter-spacing: 0.05rem;
}

.h2 {
    font-size: 4.3rem;
    text-align: center;
}

.h3 {
}

.h4 {
    font-size: 2rem;
    font-weight: normal;
    line-height: 1;
}


#ContentsWrap {
    margin: 0 auto;
    position: relative;
}

.container {
    width: 100%;
    max-width: 1088px;
    margin: 64px auto 0;
    overflow: hidden;
}

.flexContainer {
    display: -ms-flexbox;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: flex-start;
    -ms-flex-pack: flex-start;
    justify-content: flex-start;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}

@media screen and (min-width: 768px) and (max-width:1179px) {
.maxwidth-container {padding: 0 30px;}
}

/*767PX*/
@media screen and (max-width: 767px) {
}

/* -----------------------------------------------------------
loading
------------------------------------------------------------*/
.hiddenBox {
    display: none;
}

#loader-bg {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0px;
    background: rgba(255, 255, 255, .9);
    z-index: 1001;
    display: none;
}

#loader {
    position: fixed;
    top: 50%;
    left: 50%;
    width: 33px;
    padding: 0px 0px;
    margin-top: -37px;
    margin-left: -17px;
    text-align: center;
    color: #333;
    z-index: 10001;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-direction: row;
    flex-direction: row;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: stretch;
    -ms-flex-align: stretch;
    align-items: stretch;
}

#loader {
    -webkit-animation-name: fadeout-mv;
    animation-name: fadeout-mv;
    -webkit-animation-duration: 4s;
    animation-duration: 4s;
    -webkit-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    -webkit-animation-direction: animation-direction;
    animation-direction: animation-direction;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
}



/************************************************************
KEYFRAMEs Animation
************************************************************/
@-webkit-keyframes fadeout-mv {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 1;
    }

    75% {
        opacity: 1;
    }

    85% {
        opacity: 1;
    }

    95% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}


@keyframes fadeout-mv {
    0% {
        opacity: 1;
    }

    50% {
        opacity: 1;
    }

    75% {
        opacity: 1;
    }

    85% {
        opacity: 1;
    }

    95% {
        opacity: 0;
    }

    100% {
        opacity: 0;
    }
}


.fade-out {
    animation: fadeOut 1.2s cubic-bezier(0.190, 1.000, 0.220, 1.000) .8s 1 forwards;
    -webkit-animation: fadeOut 1.2s cubic-bezier(0.190, 1.000, 0.220, 1.000) .8s 1 forwards;
}

@-webkit-keyframes fadeout {
    0% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    50% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    75% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    85% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    95% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    100% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }
}

@keyframes fadeout {
    0% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    50% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    75% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    85% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    95% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    100% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }
}

.fadeIn {
    opacity: 1.0;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
    -o-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-delay: 0;
}

.fade-in {
    animation: fadeIn 1s cubic-bezier(0.190, 1.000, 0.220, 1.000) 0s 1 forwards;
    -webkit-animation: fadeIn 1s cubic-bezier(0.190, 1.000, 0.220, 1.000) 0s 1 forwards;
}

@-webkit-keyframes fadein {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    50% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    75% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    85% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    95% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}

@keyframes fadein {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    50% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    75% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    85% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    95% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }

    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}

@-webkit-keyframes fadein2 {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}

@keyframes fadein2 {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }

    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}



/* -------------------------------------------------------------------
COMMON PARTS
------------------------------------------------------------------- */
body #ContentsWrap {
    margin: 0 auto;
    background: linear-gradient(90deg, #ececf5 0%, #FAEDEF 100%);
    overflow: hidden;
}

/*768PX*/
@media screen and (min-width: 768px) {
body #ContentsWrap {
    padding-bottom: 155px;
}
}
/* --------------------------------------------- PC end */


/*767PX*/
@media screen and (max-width: 767px) {
body #ContentsWrap {
    padding-bottom: 155px;
}
}
/* --------------------------------------------- SP end */


/* -------------------------------------------------------------------
MV
------------------------------------------------------------------- */
#mv .h1Area h1,#mv .h1Area .camera{
    -webkit-transition: .8s ease;
    -o-transition: .8s ease;
    transition: .8s ease;
    opacity: 0;
}
#mv .h1Area .camera.opAni,
#mv .h1Area h1.opAni,
.mainVisual .bg01.opAni {
    opacity: 0;
}
#mv .h1Area .camera.showAni,
#mv .h1Area h1.showAni,
.mainVisual .bg01.showAni {
    opacity: 1;
}

@media screen and (min-width:768px) {
    #mv {
    width: 100%;
    height: 100%;
    height: 0;
    margin: 0 auto;
    padding-top: 350px;
    position: relative;
    z-index: 10;
    overflow: hidden;
}

#mv .h1Area {
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding-top: 350px;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    display: block;
    -webkit-transition: 0s;
    -o-transition: 0s;
    transition: 0s;
    -o-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-delay: 0;
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    transform: scale(1, 1);
}

#mv .h1Area .inner {
    width: 100%;
    max-width: 1120px;
    height: 100%;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    color: #FFF;
    display: block;
    -o-transition: .8s;
    transition: .8s;
    -o-transition-delay: .4s;
    transition-delay: .4s;
    -webkit-transition-delay: .4;
    opacity: 1;
}

#mv .h1Area h1 {
    width: 373px;
    height: 215px;
    font-size: 0;
    text-indent: -9999px;
    white-space: nowrap;
    overflow: hidden;
    display: block;
    position: absolute;
    top:51px;
    left: 7.142857142857142%;
    z-index: 1;
    background: url(/campaign/images/cameramatsuri/mv_h1.png) center center no-repeat;
    background-size: 373px;
}

#mv .h1Area .camera{
    width: 558px;
    margin: 0;
    position: absolute;
    top: 119px;
    left: 50.17857142857143%;
    display: block;
}

.camera.showAni {}

body .mainVisual .mainVisual-wrapper {
    width: 100%;
    height: 0;
    height: 100%;
    max-height: calc(1234px / 2);
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
}

.mainVisual {
    width: 100%;
    height: 100%;
    max-height: 596px;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
}

.mainVisual .mainimg {
    -webkit-transition: .4s ease; 
    -o-transition: .4s ease;
    transition: .4s ease; 
}

.mainVisual .mainimg.showAni {
    opacity: 1;
}

.mainVisual .mainimg:after {
    content:"";
    width:100%;
    height: 511px;
    display: block;
    position:absolute;
    left: 0;
    z-index: 3;
}

.mainVisual .mainimg:after {
    top: 167px;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 1280 511\'><path d=\'M626.46,510.73h654.29V80.21c-16.87-9.38-32.52-17.75-47.31-23.84-4.79-1.8-9.74-3.59-14.83-5.37-2.22-.68-4.42-1.31-6.6-1.86h1.2C1068.96-.17,814.91-39.22,625.68,72.38l-.75.27c-17.73,10.46-35.32,19.88-52.72,28.35-63.93,35.28-171.63,68.35-285.75,65.23-73.68-2.02-144.14-16.6-198.68-40.42C53.91,111.02,24.46,93.76-2,79.11v431.89h627.84l.62-.27Z\'/></svg>') center 0 repeat-x;
    background-size: 1280px;
}

.mainVisual .bg01 {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    -webkit-transition: .6s ease;
    -o-transition: .6s ease;
    transition: .6s ease;
    opacity: 0;
    background: url(/campaign/images/cameramatsuri/main_pc.jpg) center 0 no-repeat;
    background-size: cover;
}

.mainimg {
    width: 100%;
    height: 100%;
    max-height: 593px;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
}

#mv svg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
#mv .logo-wrap {
    max-width: 1280px;
    width: 100%;
    margin:0 auto;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
}

#mv #logo {
    width: 74px;
    height: 74px;
    display: block;
    position: absolute;
    top: 30px;
    right: 30px;
    z-index: 1000;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
}
}
/* --------------------------------------------- PC end */



/*767PX*/
@media screen and (min-width: 768px) and (max-width: 1279px) {
.mainVisual .bg01 {
    background: url(/campaign/images/cameramatsuri/main_pc.jpg) center 0 no-repeat;
    background-size: 1280px;
}
}
/* --------------------------------------------- PC end */


/*767PX*/
@media screen and (max-width: 767px) {

    #mv {
    width: 100%;
    height: 100%;
    height: 0;
    margin: 0 auto;
    padding-top: 63.829787234042556%;
    position: relative;
    z-index: 10;
    overflow: hidden;
}

#mv .h1Area {
    width: 100%;
    /* max-width: 1120px; */
    margin: 0 auto;
    padding-top: 63.829787234042556%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    display: block;
    -webkit-transition: 0s;
    -o-transition: 0s;
    transition: 0s;
    -o-transition-delay: 0s;
    transition-delay: 0s;
    -webkit-transition-delay: 0;
    -webkit-transform: scale(1, 1);
    -ms-transform: scale(1, 1);
    transform: scale(1, 1);
}

#mv .h1Area .inner {
    width: 100%;
    /* max-width: 1120px; */
    height: 100%;
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    color: #FFF;
    display: block;
    -o-transition: .8s;
    transition: .8s;
    -o-transition-delay: .4s;
    transition-delay: .4s;
    -webkit-transition-delay: .4;
    opacity: 1;
}


#mv .h1Area h1 {
    width: 51.329787234042556%;
    max-width: 193px;
    height: 0;
    padding-top: 133px;
    font-size: 0;
    text-indent: -9999px;
    white-space: nowrap;
    overflow: hidden;
    display: block;
    position: absolute;
    top: 43px;
    left: 21px;
    z-index: 1;
    background: url(/campaign/images/cameramatsuri/mv_h1_sp.png) center center no-repeat;
    background-size: 193px;
}


#mv .h1Area .camera{
    width: 121.54255319148936%;
    max-width: 457px;
    margin: 0;
    position: absolute;
    top: 50px;
    left: 46.808510638297875%;
    /* right: -55.57986870897156%; */
    display: block;
}

body .mainVisual .mainVisual-wrapper {
    width: 100%;
    height: 0;
    height: 100%;
    max-height: calc(1234px / 2);
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10;
}

.mainVisual {
    width: 100%;
    height: 0;
    padding-top: 65.84699453551912%;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
}

.mainVisual .mainimg {
    -webkit-transition: .4s ease; 
    -o-transition: .4s ease;
    transition: .4s ease; 
}

.mainVisual .mainimg.showAni {
    opacity: 1;
}

.mainVisual .mainimg:after {
    content:"";
    width:100%;
    height: 471px;
    display: block;
    position:absolute;
    left: 0;
    z-index: 3;
}

.mainVisual .mainimg:after {
    top: 111px;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 375 471\'><path d=\'M251.806 52.6509C152.236 137.571 41.1144 108.355 -2 85.356V471H517V55.356C470.089 -1.84713 351.376 -32.2692 251.806 52.6509Z\'/></svg>') center 0 repeat-x;
    background-size:100%;
}

.mainVisual .bg01 {
    width: 100%;
    height: 100%;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    -webkit-transition: .6s ease;
    -o-transition: .6s ease;
    transition: .6s ease;
    opacity: 0;
    background: url(/campaign/images/cameramatsuri/main_sp.jpg) center 0 no-repeat;
    background-size: 100%;
}

.mainimg {
    width: 100%;
    height: 0;
    padding-top: 65.84699453551912%;
    position: absolute;
    top: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
}

.mainVisual img,
.mainVisual image {
    width: 100%;
    height: auto;
}

#mv svg {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

#mv #logo {
    width: 50px;
    height: 50px;
    display: block;
    position: absolute;
    top: 27px;
    right: 21px;
    z-index: 1000;
    -webkit-transition: .5s;
    -o-transition: .5s;
    transition: .5s;
}
}
/* --------------------------------------------- SP end */


/* -------------------------------------------------------------------
Carousel
------------------------------------------------------------------- */
.carousel-wrap {
    position: relative;
    z-index: 1;
}
.carousel {
    margin: 0 auto;
    padding: 0;
    z-index: 1;
    position: relative;
    overflow: visible;
}
.carousel [class *= flb-] img {
    position: relative;
    z-index: 2;
}
.carousel .flexBox {
    margin: 0 auto;
    -ms-flex-flow: nowrap;
    flex-flow: nowrap;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: flex-start;
    -ms-flex-line-pack: center;
    align-content: center;
    justify-content: flex-start;
}

.tokuten-02 .carousel .flexBox {
    -ms-flex-flow: nowrap;
    flex-flow: nowrap;
}

.tokuten-04 .carousel .flexBox {
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
}
.swiper-slide {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    margin-top: 20px;
    position: relative;
    bottom: 0;
}
.swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0;
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 4px;
}
span.swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: #000;
}

/*768PX*/
@media screen and (min-width: 768px) {
.carousel-wrap {
    height: 100%;
    min-height: 720px;
    margin: 0 auto 80px;
}
.carousel {
    width: 100%;
    left: 0;
    right:0;
}
.carousel [class *= flb-] {
    width: 470px!important;
}
.carousel [class *= flb-] img {
    max-height: 373px;
}
.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    display:none;
}
.swiper-pagination {
    display: none;
}
}
/*------------------------------------------SP*/

/*767PX*/
@media screen and (max-width: 767px) {
.carousel-wrap {
    margin: 0 auto 70px;
}
.carousel [class *= flb-] {
    width:340px!important;
}
}
/*------------------------------------------SP*/





.fade-in {
    animation: fadeIn 1s cubic-bezier(0.190, 1.000, 0.220, 1.000) 0s 1 forwards;
    -webkit-animation: fadeIn 1s cubic-bezier(0.190, 1.000, 0.220, 1.000) 0s 1 forwards;
}

@-webkit-keyframes fadeIn {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }
    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}

@keyframes fadein {
    0% {
        filter: alpha(opacity=0);
        -ms-filter: "alpha(opacity=0)";
        opacity: 0;
    }
    100% {
        filter: alpha(opacity=100);
        -ms-filter: "alpha(opacity=100)";
        opacity: 1;
    }
}




.mask,
.view {
    width: 100%;
    position: relative;
}

.fadeContents {
    opacity: 0;
    -webkit-transition-duration: .4s;
         -o-transition-duration: .4s;
            transition-duration: .4s;
    -webkit-transition-delay: .8s;
         -o-transition-delay: .8s;
            transition-delay: .8s;
    -webkit-transition-property: opacity, -webkit-transform;
    transition-property: opacity, -webkit-transform;
    -o-transition-property: transform, opacity;
    transition-property: transform, opacity;
    transition-property: transform, opacity, -webkit-transform;
    -webkit-transform: translateY(3rem);
        -ms-transform: translateY(3rem);
            transform: translateY(3rem);
}

.mask.is-active .fadeContents {
    opacity: 1;
    -webkit-transform: translateY(0);
        -ms-transform: translateY(0);
            transform: translateY(0);
}

.fadeContents:after {
    -webkit-transition: -webkit-transform 0.5s ease;
    transition: -webkit-transform 0.5s ease;
    -o-transition: transform 0.5s ease;
    transition: transform 0.5s ease;
    transition: transform 0.5s ease, -webkit-transform 0.5s ease;
}

.fadeContents:hover:after {
    -webkit-transform: scale(1.05);
        -ms-transform: scale(1.05);
            transform: scale(1.05);
}









/* -------------------------------------------------------------------
IntroIntro
------------------------------------------------------------------- */
#int {
    position: relative;
}

#int .flexBox {
    -ms-flex-line-pack: center;
    align-content: center;
    position: relative;
}

#int .flexBox a:hover {
    opacity: 1;
}

#int .flexBox a:hover h3:before {
    opacity: .8;
}


@media screen and (min-width:768px) {
    #int {
        margin: 0 auto;
        padding: 168px 0 190px;
        overflow: hidden;
        position:relative;
        background: #FAEDEF;
        background: linear-gradient(90deg, #ececf5 0%, #FAEDEF 100%);
    }

    #int:before{
    content:"";
    width:100%;
    height: 272px;
    margin: auto;
    display: block;
    position:absolute;
    right: 0;
    left: 0;
    z-index: 3;
    top: -160px;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 1280 271.92\'><path d=\'M1280,0v209.25c-1.28-.31-2.6-.63-3.93-.96-58.24-19.31-142.13-38.37-304.89-47.33-59.97-3.3-117.05,1.52-167.54,11.44-50.28,7.79-101.01,20.54-150.58,39.91C465.11,285.79,187.25,296.48-.31,210.18c-.56-.31-1.13-.62-1.69-.93V0h1282Z\'/></svg>') center 0 repeat-x;
    background-size: 1280px;
}
    #int:after {
    content:"";
    width:100%;
    height: 272px;
    margin: auto;
    display: block;
    position:absolute;
    right: 0;
    left: 0;
    z-index: 3;
    bottom: -160px;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 1280 272\'><path d=\'M-2,272V62.75c1.28.31,2.6.63,3.93.96,58.24,19.31,142.13,38.37,304.89,47.33,59.97,3.3,117.05-1.52,167.54-11.44,50.28-7.79,101.01-20.54,150.58-39.91,187.96-73.47,465.82-84.16,653.38,2.13.56.31,1.13.62,1.69.93v209.25H-2Z\'/></svg>') center 0 repeat-x;
    background-size: 1280px;
}

    #int .sectionTitle {
        width: calc(100%);
        max-width: 1120px;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1;
        display: flex;
        align-items: flex-start;
        align-content: flex-end;
        justify-content: flex-end;
    }

    #int .sectionTitle h2 {
        width: 105px;
        height: 513px;
        margin-right: 0;
        padding: 0;
        vertical-align: bottom;
        position: relative;
        color: #212121;
    }

    #int .sectionTitle h2 span {
        width: 45px;
        /* height: max-content; */
        padding: 30px 10px;
        color: #212121;
        font-size: 2.4rem;
        letter-spacing: .3em;
        vertical-align: bottom;
        background: #FFF;
        position: absolute;
        bottom: 0;
        right: 0;
        display: grid;
        vertical-align: top;
    }
    #int .sectionTitle h2 span:nth-of-type(1) {
        right: 0;
    }
    #int .sectionTitle h2 span:nth-of-type(2) {
        right: 60px;
    }

    #int.bg-pattern-square-right:before {
        height: 684px;
        top: 0;
    }

    #int .maxwidth-container {
        padding: 0;
        /* margin-top: 190px; */
    }

    #int .flexBox h3 {
        width: 100%;
        margin: 0;
        display: block;
    }

    #int .flexBox {
        margin: 0 auto;
    }

    #int .flexBox .blockImg {
        /* opacity: 0; */
    }

    #int .flexBox {
        width: 100%;
        margin: 0 auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        z-index: 99;
    }
    
    #int .flexBox .flb-md-1-2.pic-area {
        width: 40.714285714285715%;
        max-width: 456px;
    }

    #int .flexBox img {
        width: 100%;
        padding: 0;
        float: right;
    }

    #int .flexBox .flb-md-1-2.text-area {
        width: calc(50% + 100px);
        padding: 0;
        position: relative;
    }
    
    #int .flexBox:nth-of-type(1) .flb-md-1-2.text-area {
        margin: 0 0 105px 0;
    }

    #int .text-area .text-area-content {
        width: 100%;
        padding: 18px 138px 0 31px;
    }

    #int .flexBox:nth-of-type(2) .text-area .text-area-content {
        padding: 0 38px 0 0;
    }

    #int .text-area .baseBtnStyle.btn-ellipse {
        width: 100%;
        max-width: 470px;
        margin: 0;
    }

    #int p {
        font-size: 1.8rem;
        line-height: 2.222;
        font-weight: 500;
        /* color: #FFF; */
        letter-spacing: 0;
    }
    #int p.h3 {
        margin-bottom: 20px;
        font-size: 2.4rem;
        line-height: 1.667;
        font-weight: 600;
        /* color: #FFF; */
        letter-spacing: 0;
    }
}
/* --------------------------------------------- PC end */


@media screen and (min-width:768px) and (max-width:1119px) {
    #int .flexBox .flb-md-1-2.text-area {
        width: 50%;
    }
}

/* --------------------------------------------- PC end */

/*767PX*/
@media screen and (max-width: 767px) {
#int {
        margin: 0 auto;
        padding: 35.967302452316076% 0 211px;
        overflow: hidden;
        position:relative;
        background: #FAEDEF;
        background: linear-gradient(90deg, #ececf5 0%, #FAEDEF 100%);
        overflow: hidden;
    }

    #int:before{
    content:"";
    width:100%;
    padding-top: 57.49318801089919%;
    margin: auto;
    display: block;
    position:absolute;
    right: 0;
    left: 0;
    z-index: 3;
    top: -110px;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 374 211\'><path d=\'M265.19,158.35c99.57-84.92,210.69-55.7,253.81-32.71V0S0,0,0,0v155.64c46.91,57.2,165.62,87.63,265.19,2.71Z\'/></svg>') 0 bottom repeat-x;
    background-size: 100%;
}
    #int:after {
    content:"";
    width:100%;
    height: 211px;
    margin: auto;
    display: block;
    position:absolute;
    right: 0;
    left: 0;
    z-index: 3;
    bottom: 0;
    background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 374 211\'><path d=\'M253.806 52.6509C154.236 137.571 43.1144 108.355 0 85.356V211H519V55.356C472.089 -1.84713 353.376 -32.2692 253.806 52.6509Z\'/></svg>') right 0 repeat-x;
    background-size: cover;
}

    #int .sectionTitle {
        width: calc(100%);
        max-width: 1120px;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        z-index: 1;
        display: flex;
        align-items: flex-start;
        align-content: flex-end;
        justify-content: flex-end;
        z-index: 100;
    }

    #int .sectionTitle h2 {
        width: 101px;
        height: 513px;
        margin-right: 0;
        padding: 0;
        vertical-align: bottom;
        position: relative;
        color: #212121;
    }

    #int .sectionTitle h2 span {
        width: 45px;
        height: max-content;
        padding: 30px 15px;
        color: #212121;
        font-size: 1.6rem;
        letter-spacing: .3em;
        vertical-align: bottom;
        background: #FFF;
        position: absolute;
        top: 0;
        right: 0;
        display: grid;
        vertical-align: top;
    }
    
.sectionTitle.vertical h2 span:nth-of-type(1) {
    margin: 0 0 0 10px;
}

    #int .sectionTitle h2 span:nth-of-type(1) {
        right: 0;
    }
    #int .sectionTitle h2 span:nth-of-type(2) {
        right: 60px;
    }

    #int.bg-pattern-square-right:before {
        height: 684px;
        top: 0;
    }

    #int .maxwidth-container {
        padding: 0;
        /* margin-top: 190px; */
    }

    #int .flexBox h3 {
        width: 100%;
        margin: 0;
        display: block;
    }

    #int .flexBox {
        margin: 0 auto;
    }

    #int .flexBox .blockImg {
        /* opacity: 0; */
    }

    #int .flexBox {
        width: 100%;
        margin: 0 auto;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
            -ms-flex-flow: row wrap;
                flex-flow: row wrap;
        -webkit-box-pack: center;
            -ms-flex-pack: center;
                justify-content: center;
        z-index: 99;
    }
    
    #int .flexBox .flb-md-1-2.pic-area {
        /* max-width: 456px; */
        width: 100%;
    }

    #int .flexBox img {
        width: 100%;
        padding: 0;
        float: right;
    }

    #int .flexBox .flb-md-1-2.text-area {
        width: 100%;
        padding: 0;
        position: relative;
    }
    
    #int .flexBox:nth-of-type(1) .flb-md-1-2.text-area {
        margin: 0 0 10px 0;
    }

    #int .text-area .text-area-content {
        width: 100%;
        padding: 20px 10px;
    }
    
    #int .text-area .baseBtnStyle.btn-ellipse {
        width: 100%;
        max-width: 470px;
        margin: 0;
    }

    #int p {
        font-size: 1.4rem;
        line-height: 2.143;
        font-weight: 500;
        /* color: #FFF; */
        letter-spacing: 0;
    }
    #int p.h3 {
        margin-bottom: 10px;
        font-size: 2rem;
        line-height: 1.5;
        font-weight: 600;
        /* color: #FFF; */
        letter-spacing: 0;
    }
}
/* --------------------------------------------- SP end */





/* -------------------------------------------------------------------
Tokuten
------------------------------------------------------------------- */

.tokuten-04 a{
    color:#000;
    /*cursor: pointer;*/
}
.tokuten-04 a:hover{
    opacity: 1;
}
section.tokuten .sectionTitle h2 span.w-quotation{
    color: #000;
}
.slide-contents {
    margin: 0 auto 45px;
    transition: .6s;
}
.slide-contents .slide-contents-txt{
    margin: 25px auto 0;
    font-size: 1.4rem;
    line-height: 1.65;
    font-weight: normal;
    /* text-align: left; */
    transition: .4s ease-out;
    display: none;
}
.tokuten-04 .target-blank{
    cursor: pointer;
}
.tokuten-04 .target-blank:after {
    content: "+";
    width: 21px;
    height: 21px;
    font-size: 1.4rem;
    line-height: 1;
    text-align: center;
    border:solid 1px #1A1A1C;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    border-radius: 50%;
    position: absolute;
    right: 0;
    top: 0;
}
.tokuten-04 .target-blank.active:after {
    content: "ー";
    /* background: #f0f0f0; */
}



@media screen and (min-width: 768px) {
section.tokuten {
    padding-top: 150px;
    padding-bottom: 150px;
    margin-bottom: 80px;
    background: #FFF;
    position:relative;
}
section.tokuten.first {
    padding-top: 62px;
}
section.tokuten.last {
    background:none;
    padding-top: 0;
    padding-bottom: 155px;
}
section.tokuten.last .inner{
    padding-top: 150px;
    background:#fff;
}
section.tokuten.last:after {
        content: "";
        width: 100%;
        height: 155px;
        margin: auto;
        display: block;
        position: absolute;
        bottom: 0;
        right: 0;
        left: 0;
        background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 1280 272\'><path d=\'M653.07,212.39c245.95-96.14,520.44-29.1,626.93-3.06V.07s-1282,0-1282,0v209.25c115.88,64.76,409.11,99.21,655.07,3.06Z\'/></svg>') center bottom repeat-x;
        background-size: 1280px;
    z-index:2;
}
section.tokuten .sectionTitle{
    margin-bottom:95px;
}

[class *= tokuten-] {
    margin: 0 auto;
    text-align: center;
}
[class *= tokuten-] .h3{
    width: fit-content;
    margin: 0 auto 68px;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
}
[class *= tokuten-] .h3 h3{
    font-size: 4rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    position: relative;
}
[class *= tokuten-] .h3 h3 span.laarge{
    font-size: 4.8rem;
    line-height: 0;
    letter-spacing: 0;
}
[class *= tokuten-] .h3>span{
    width: 80px;
    height: 80px;
    padding: 0;
    margin: 0 18px 0 0;
    font-size: 4rem;
    font-weight: 600;
    color:#FFF;
    line-height: 2;
    position:relative;
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    border-radius: 50%;
    z-index: 1;
}
[class *= tokuten-] .h3>span:after{
    content:"";
    width: 82px;
    height: 82px;
    margin: 0;
    font-size: 4rem;
    color:#FFF;
    line-height: 2;
    background: #b81b60;
    position:absolute;
    top: 0;
    left:0;
    display: block;
    border-radius: 50%;
    z-index: -1;
}
[class *= tokuten-]  h3.underline-02 {
    margin: 5px 0 0;
    padding: 0 3px 18px;
    background: url(/campaign/images/cameramatsuri/dotted.svg) 6px bottom repeat-x;
}

.container-fluid [class *= tokuten-] p{
    margin: 0 auto 20px;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    display: block;
}
.container-fluid [class *= tokuten-] p.small{
    margin: 0 35px 0 0;
    font-size: 1.2rem;
    font-weight: 400;
    line-height:1;
}

[class *= tokuten-] h3{
    color:#b81b60;
    font-weight: 600;
}

[class *= tokuten-] h3.underline{
    position:relative;
    display:block;
    z-index:2;
}

[class *= tokuten-] h3.underline:before {
    content: "";
    width: calc(100% + 20px);
    height: 30px;
    margin: 0 auto;
    position: absolute;
    bottom:-.25em;
    left: -10px;
    background: #faedef;
    display: block;
    z-index: -1;
}

.tokuten-01 .img-box {
    max-width: 699px;
    margin: 0 auto 65px;
    display: block;
}

.tokuten-01 .img-box img{
    margin: 0 auto 16px;
}

.tokuten-01 .flexBox-center{
    max-width: 540px;
    margin: 0 auto;
}


/*.tokuten-02*/
.tokuten-02 .h3{
    margin: 0 auto;
}
.tokuten-02 .title-wrap{
    margin: 0 0 25px;
    display:inline-block;
    position: relative;
}
.tokuten-02 .title-wrap p:first-child {
    margin: 0 auto 8px 98px;
}
.container-fluid .tokuten-02 .title-wrap p.small{
    margin: 5px 0 0;
    text-align: right;
}
.container-fluid .tokuten-02 .txt-lv1{
    margin: 0 auto 60px;
    font-size: 1.8rem;
    letter-spacing: 0;
    line-height:1.75
}
.tokuten-02 .carousel-wrap{
    height: unset;min-height: unset;margin: 0 auto;
}
.tokuten-02 .carousel{

}
.tokuten-02 .carousel .flexBox{
    width: calc(100% + 20px);
    margin: 0 -10px;
    flex-flow: row wrap;
    transform: none!important;
}
.tokuten-02 [class *= flb-] {
    min-height: 280px;
    margin: 0 10px 28px!important;
    padding: 30px 16px 20px;
    position: relative;
    text-align: left;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-flow: row wrap;
    color: #1A1A1C;
    transition: 0.5s ease;
}
.tokuten-02 [class *= flb-] {
    display: none;
}
.tokuten-02 [class *= flb-]:nth-of-type(1),
.tokuten-02 [class *= flb-]:nth-of-type(2),
.tokuten-02 [class *= flb-]:nth-of-type(3){
    display: flex;
}
.tokuten-02 [class *= flb-]:before,
.tokuten-02 [class *= flb-]:after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0;
    position: absolute;
    border: solid 1px #1A1A1C;
    display: block;
    z-index: -1;
}
.tokuten-02 [class *= flb-]:before {
    left:0;
    top:0;
    background:#FFF;
    z-index: 1;
}
.tokuten-02 [class *= flb-]:after {
    right: -8px;
    bottom: -8px;
    z-index: -1;
}
.tokuten-02 .carousel .flb-md-1-2 {
    width: calc(50% - 20px)!important;
    max-width: 550px;
    height: unset;
}
.tokuten-02 .carousel .flb-lg-1-1 {
    width: calc(100% - 20px)!important;
    height: unset;
}
.tokuten-02 ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 2rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}
.tokuten-02 .img-area{
    margin: 0;
    display:block;
    z-index: 2;
}
.tokuten-02 .flb-md-1-2 .img-area{
    max-width: 220px;
    width: 39.42652329749104%;
}
.tokuten-02 .flb-lg-1-1 .img-area{
    width: 47.53199268738574%;
    max-width: 520px;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
}
.tokuten-02 .flb-lg-1-1 .img-area img{
    width: 42.30769230769231%;
    max-width:220px;
    margin-right: 7.6923076923076925%;
}
.tokuten-02 .txt-area{
    height: 100%;
    margin:0 auto;
    z-index: 2;
}
.tokuten-02 .flb-md-1-2 .txt-area{
    /* width:calc(100% - 220px); 
    width: 51.54440154440154%;*/
    width: 59.84555984555985%;
    height: 100%;
    padding:0 0 0 4.633204633204633%;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: self-start;
    align-content: space-between;
}
.tokuten-02 .flb-lg-1-1 .txt-area{
    /*width: 47.98903107861061%;
    max-width: 525px;*/
    width: 52.07373271889401%;
    max-width: 565px;
    height: 100%;
    margin: 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: center;
    align-content: space-between;
}
.tokuten-02 .txt-area .caption{
    min-width: 140px;
    margin: 0 0 6px;
    padding: 8px;
    font-size: 1.4rem;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.container-fluid .tokuten-02 .txt-area h4{
    margin: 0 0 10px;
    font-size: 2rem;
    font-weight:600;
    line-height:1.429;
}
.container-fluid .tokuten-02 .flb-md-1-2 .txt-area h4{
    margin: 0 0 20px;
}
.container-fluid .tokuten-02 .txt-area p{
    margin: 0;
    font-size: 1.4rem;
    font-weight:400;
    line-height:1.429;
}
.container-fluid .tokuten-02 .txt-area .price{
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .caption{
    margin: 0 0 15px;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area h4{
    width: 100%;
    margin: 0 0 15px;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price{
    margin: 14px 0 0;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price-group-01{
    display: flex;
    justify-content:flex-start;
    align-items: flex-end;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-02 .flb-md-1-2:nth-of-type(1) .price{
    margin: 23px 0 0;
}

.container-fluid .tokuten-02 .txt-area .price .price-normal span{
    margin: 5px 0;
    font-size: 1.6rem;
    display: block;
}
.container-fluid .tokuten-02 .txt-area .price .price-normal p{
    font-size: 3.6rem;
    line-height: 1;
}
.container-fluid .tokuten-02 .txt-area .price .price-normal p .small{
    margin: 0;
    font-size: 1.6rem;
    display: inline-block;
}
.container-fluid .tokuten-02 .txt-area .price .price-special{
    /* margin: 0; */
    font-size: 3.6rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
}
.tokuten-02 i.angle-right {
    width: 37px;
    height: 28px;
    margin: 0 5px;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
}
.tokuten-02 .icon-or {
    width: 53px;
    height: 53px;
    margin: 0 20px;
    color: #FFF;
    text-align: center;
    font-size: 3.6rem;
    line-height: 45px;
    font-weight: normal;
    background:#1A1A1C;
    border-radius: 50%;
    display: inline-block;
}


/*.tokuten-03*/
.tokuten-03 .h3{
    margin: 0 auto;
}
.tokuten-03 .h3 h3 {
    font-size: 3.2rem;
}
.tokuten-03 .h3 h3 span{
    font-size: 6.4rem;
}
.tokuten-03 .title-wrap{
    margin: 0 0 25px;
    display:inline-block;
    position: relative;
}
.tokuten-03 .title-wrap p:first-child{
    margin-left:98px;
}
.container-fluid .tokuten-03 .txt-lv1{
    margin: 0 auto 60px;
    font-size: 1.8rem;
    letter-spacing: 0;
    line-height:1.75
}
.tokuten-03 .img-box {
    margin: 0 auto 47px;
    display: block;
}
.tokuten-03 .img-box .img-box-camera{
    max-width: 584px;
    margin: 0 auto 26px;
}
.tokuten-03 .img-box .img-box-logo{
    max-width: 915px;
    margin: 0 auto 15px;
    display: block;
}
.tokuten-03 .flexBox-center{
    max-width: 540px;
    margin: 0 auto;
}

.tokuten-03 .flexBox{width: calc(100%);margin: 0 auto 10px;}

.tokuten-03 ul{margin: 0;text-align: left;font-size: 1.2rem;line-height: 1.667;}

.tokuten-03 [class *= flb-] {
    min-height: 280px;
    margin: 0 10px 28px;
    padding: 30px 16px;
    position: relative;
    text-align: left;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-flow: row wrap;
    color: #1A1A1C;
    background: #FFF;
    border: solid 1px #1A1A1C;
    transition: 0.5s ease;
}
.tokuten-03 [class *= flb-]:after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0;
    position: absolute;
    right: -8px;
    bottom: -8px;
    border: solid 1px #1A1A1C;
    display: block;
    z-index: -1;
}
.tokuten-03 .flb-md-1-2 {
    width: calc(50% - 20px);
    max-width: 550px;
}
.tokuten-03 .img-area{
    max-width: 216px;
    width: 40.14869888475837%;
    height: 100%;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
}
.tokuten-03 .flb-lg-1-1 .img-area img{
    max-width:220px;
    margin-right: 40px;
}
.tokuten-03 .txt-area{
    height: 100%;
    margin:0 auto;
}
.tokuten-03 .flb-md-1-2 .txt-area{
    width: calc(100% - 40.14869888475837%);
    padding: 0 0 0 2.973977695167286%;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: self-start;
    align-content: space-between;
}
.tokuten-03 .txt-area .caption{
    min-width: 90px;
    margin: 5px 2.973977695167286% 5px 0;
    padding: 8px;
    font-size: 1.4rem;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.container-fluid .tokuten-03 .txt-area h4{
    margin: 0 0 15px;
    font-size: 2rem;
    font-weight:600;
    line-height: 1.25;
}
.container-fluid .tokuten-03 .txt-area p{
    margin: 0;
    line-height: 1;
}
.container-fluid .tokuten-03 .txt-area .price{
    width: 100%;
    margin: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-03 .txt-area .price p{
    font-size: 2.4rem;
    font-weight:600;
    /* float: right; */
}
.container-fluid .tokuten-03 .txt-area .price-normal,
.container-fluid .tokuten-03 .txt-area .price-special{
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    align-content: space-between;
    flex-flow: row wrap;
}
.container-fluid .tokuten-03 .txt-area .price-special p{
    font-size: 3.6rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
}
.container-fluid .tokuten-03 .txt-area .price p .small{
    margin: 0;
    font-size: 1.6rem;
    color: #1A1A1C;
    font-weight: normal;
    display: inline-block;
}
.tokuten-03 i.angle-bottom-02 {
    width: 37px;
    height: 28px;
    margin: 10px auto 5px;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
    transform: rotate(90deg);
}


/*.tokuten-04*/
.tokuten-04 .h3{
    margin: 0 auto;
}
.tokuten-04 .h3 h3 {
    font-size: 3.2rem;
}
.tokuten-04 .h3 h3 span.large{
    font-size: 6.4rem;
}
.tokuten-04 .title-wrap{
    margin: 0 0 25px;
    display:inline-block;
    position: relative;
}
.tokuten-04 .title-wrap p{
    margin: 0 auto 20px 98px;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    display: block;
}
.tokuten-04 .txt-lv1{
    margin: 0 auto 25px;
    font-size: 1.8rem;
    letter-spacing: 0;
    line-height:1.75
}
.tokuten-04 .target-blank{
    margin: 0 auto;
    padding: 0 36px 0 0;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.5;
    color:#000;
    position: relative;
    display: table;
}
.tokuten-04-title {
    margin: 0 auto 22px;
    padding:0 0 0 24px;
    font-size: 2rem;
    line-height:22px;
    font-weight: bold;
    text-align: left;
    display: block;
    position:relative;
}
.tokuten-04-title:before {
    content:"";
    width:10px;
    height:20px;
    background:#1A1A1C;
    display: block;
    position:absolute;
    top:0;
    left:0;
}
.tokuten-04 .flexBox-center{
    max-width: 540px;
    margin: 0 auto;
}
.tokuten-04 .flexBox{
    height: 100%;
}
.tokuten-04 [class *= flb-] {
    height: 100%;
    min-height: 720px;
    margin: 0 10px 20px;
    padding: 0;
    position: relative;
    text-align: left;
    color: #1A1A1C;
    background: #FFF;
    border: solid 1px #1A1A1C;
    cursor: pointer;
}
.tokuten-04 .img-area{
    width: calc(100% + 14px);
    margin: 0px -6px 0;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    overflow: hidden;
    position:relative;
}
.tokuten-04 .img-area:after{
    content:"";
    width: calc(100% - 16px);
    height: 100%;
    display: block;
    border-left: solid 1px #1A1A1C;
    border-right: solid 1px #1A1A1C;
    position:absolute;
    top:0;
    left:6px;
    z-index:1;
}
.tokuten-04 .flb-lg-1-1 .img-area img{
    max-width:220px;
    margin-right: 40px;
    position:relative;
    z-index:2;
}
.tokuten-04 .flb-md-1-2 .txt-area{
    width: 100%;
    height: 100%;
    /* min-height: 367px; */
    padding: 0;
    margin: 0 6px 6px;
    text-align: center;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: space-between;
    border-left: solid 1px #1A1A1C;
    border-right: solid 1px #1A1A1C;
    border-bottom: solid 1px #1A1A1C;
}
.tokuten-04 .txt-area .caption{
    min-width: 90px;
    margin: 0 16px 0 0;
    padding: 8px;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.tokuten-04 .txt-area h4{
    margin: 0 auto 13px;
    font-size: 2rem;
    font-weight:600;
    line-height: 1.5;
}
.tokuten-04 .txt-area p{
    margin: 0;
    line-height: 1;
}
.tokuten-04 .txt-area .information{
    width: 100%;
    height: 100%;
    min-height: 358px;
    padding: 15px 21px;
    margin: 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: space-between;
}
.tokuten-04 .txt-area .information p{
    font-size: 1.6rem;
    font-weight:400;
    line-height: 2;
    text-align: left;
    letter-spacing: -0.06em;
}
.tokuten-04 .txt-area .information p .large{
    font-size: 2.4rem;
}
.tokuten-04 .txt-area .info-date{
    width: 100%;
    margin: 0 auto 12px;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
}
.tokuten-04 .txt-area .info-date p{
    font-weight: 600;
    line-height: 1;
}
.tokuten-04 .txt-area .info-price{
    width: 100%;
    margin: 0 auto 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
}
.tokuten-04 .txt-area .info-price p{
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
    white-space: nowrap;
    letter-spacing: -.02em;
    white-space: nowrap;
}
.tokuten-04 .txt-area .information p .small{
    margin: 0;
    font-size: 1.6rem;
    letter-spacing: -.02em;
    display: inline-block;
}
.tokuten-04 .txt-area .underline-02 {
    padding: 0 0 3px;
    background: url(/campaign/images/cameramatsuri/dotted.svg) 0 bottom repeat-x;
}
.tokuten-04 i.angle-bottom-02 {
    width: 37px;
    height: 28px;
    margin: 12px auto 7px;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
    transform: rotate(90deg);
}
.tokuten-04 #campaign-01 .flexBox{
    margin-left:-10px;
    margin-right:-10px;
}
}/* --------------------------------------------- PC end */

@media screen and (min-width: 768px) and (max-width:1180px) {
    #campaign-01.maxwidth-container {
       padding:0 30px;
    }
}/* --------------------------------------------- PC end */

@media screen and (min-width: 1470px) {
.maxwidth-container.tokuten-04-title,
#campaign-01.maxwidth-container {
    max-width: 1480px;
}
.tokuten-04 .carousel-wrap.maxwidth-container {
    max-width: 1480px;
}
}/* --------------------------------------------- PC end */

@media screen and (min-width: 768px) and (max-width:1119px) {
.maxwidth-container.tokuten-04-title {
    margin: 0 30px 22px;
}
}/* --------------------------------------------- PC end */

/*1040PX*/
@media screen and (min-width:768px) and (max-width: 1040px) {
    .tokuten-02 i.angle-right {
        margin: 0 0 0 -20px;
    }
}
/* --------------------------------------------- PC end */

/*1023PX*/
@media screen and (min-width:768px) and (max-width: 1023px) {
    [class *= tokuten-] h3.underline-02 {
        line-height: 1.25;
    }
.container-fluid .tokuten-02 .title-wrap p.small{
    margin: 10px 0 0;
    text-align: center;
}
.tokuten-02 .icon-or{
    margin: 0 auto;
}
}
/* --------------------------------------------- PC end */

/*960PX*/
@media screen and (min-width:768px) and (max-width: 960px) {
.container-fluid .tokuten-02 .txt-area .price{
    justify-content: flex-end;
}
.tokuten-02 i.angle-right {
        margin: 0 10px;
}
.tokuten-02 .flb-md-1-2 .price-normal {
    width: 100%;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price-group-01{
    width: 100%;
}
.tokuten-02 .flb-lg-1-1 i.angle-right.pc {
        display:none!important;
}
.tokuten-02 .flb-lg-1-1 i.angle-right.sp {
        display:block!important;
}
}
/* --------------------------------------------- PC end */

/*767PX*/
@media screen and (max-width: 767px) {
section.tokuten {
    padding-top: 100px;
    padding-bottom: 80px;
    margin-bottom: 80px;
    background: #FFF;
    position:relative;
}
section.tokuten.first {
    padding-top: 0;
    z-index: 100;
}
section.tokuten.last {
    background:none;
    padding-top: 0;
    padding-bottom: 155px;
}
section.tokuten.last .inner{
    padding-top: 90px;
    background:#fff;
}
section.tokuten.last:after {
        content: "";
        width: 100%;
        height: 155px;
        margin: auto;
        display: block;
        position: absolute;
        bottom: 0;
        right: 0;
        left: 0;
        background: url('data:image/svg+xml,<svg xmlns=\'http://www.w3.org/2000/svg\' fill=\'white\' viewBox=\'0 0 1280 272\'><path d=\'M653.07,212.39c245.95-96.14,520.44-29.1,626.93-3.06V.07s-1282,0-1282,0v209.25c115.88,64.76,409.11,99.21,655.07,3.06Z\'/></svg>') center bottom repeat-x;
        background-size: 1280px;
    z-index:2;
}
section.tokuten .sectionTitle{
    margin-bottom: 30px;
}
[class *= tokuten-] {
    margin: 0 auto;
    text-align: center;
}
[class *= tokuten-] .h3{
    width: 100%;
    margin: 0 auto 25px;
    padding: 0 0 10px;
    display: flex;
    justify-content: center;
    align-items: baseline;
    align-content: center;
    background: url(/campaign/images/cameramatsuri/dotted.svg) 0 bottom repeat-x;
}
[class *= tokuten-] .h3 h3{
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0;
    position: relative;
}
[class *= tokuten-] .h3 h3 span{
    font-size: 2.4rem;
    line-height: 0;
    letter-spacing: 0;
}
[class *= tokuten-] .h3>span{
    width: 46px;
    height: 46px;
    padding: 0;
    margin: 0 10px 0 0;
    font-size: 2.4rem;
    font-weight: 600;
    color:#FFF;
    line-height: 46px;
    position:relative;
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    border-radius: 50%;
    z-index: 1;
}
[class *= tokuten-] .h3>span:after{
    content:"";
    width: 46px;
    height: 46px;
    margin: 0;
    font-size: 2.4rem;
    color:#FFF;
    line-height: 1;
    background: #b81b60;
    position:absolute;
    top: 0;
    left:0;
    display: block;
    border-radius: 50%;
    z-index: -1;
}
.container-fluid [class *= tokuten-] p{
    margin: 0 auto 20px;
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.02em;
    display: block;
}
.container-fluid [class *= tokuten-] p.small{
    margin: 0;
    font-size: 1.2rem;
    font-weight: 400;
    line-height:1;
}

[class *= tokuten-] h3{
    color:#b81b60;
    font-weight: 600;
}

[class *= tokuten-] h3.underline{
    position:relative;
    display:block;
    z-index:2;
}

[class *= tokuten-] h3.underline:before {
    content: "";
    width: calc(100% + 20px);
    height: 30px;
    margin: 0 auto;
    position: absolute;
    bottom:-.25em;
    left: -10px;
    background: #faedef;
    display: block;
    z-index: -1;
}

.tokuten-01 .img-box {
    max-width: 255px;
    width: 75.89285714285714%;
    margin: 0 auto 40px;
    display: block;
}
.tokuten-01 .img-box img{
    margin: 0 auto 10px;
}
.tokuten-01 .flexBox-center{
    max-width: 540px;
    margin: 0 auto;
}


/*.tokuten-02*/
.tokuten-02 .title-wrap p{
    margin-bottom: 8px;
}
.tokuten-02 .h3{
    /* margin: 0 auto; */
    align-items: center;
}
.tokuten-02 .h3 h3,
.tokuten-02 .h3 h3 span{
    font-size: 2rem;
    line-height: 1.5; 
}
.tokuten-02 .title-wrap{
    margin: 0 0 25px;
    display:inline-block;
    position: relative;
}
.container-fluid .tokuten-02 .title-wrap p.small{
    margin: 0;
    text-align: left;
    line-height: 1.667;
}

.container-fluid .tokuten-02 .txt-lv1{
    margin: 0 auto 17px;
    font-size: 1.3rem;
    letter-spacing: 0;
    font-weight: normal;
    line-height: 1.923;
}
.tokuten-02 .carousel-wrap{
        margin-bottom: 0;
    }
.tokuten-02 .flexBox{width: 100%;margin: 0 auto;overflow: visible;}

.tokuten-02 [class *= flb-] {
    margin: 0 auto 0;
    padding: 13px 15px;
    position: relative;
    text-align: left;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-flow: row wrap;
    color: #1A1A1C;
    background: #FFF;
    /* border: solid 1px #1A1A1C; */
    transition: 0.5s ease;
}
.tokuten-02 [class *= flb-]:before,
.tokuten-02 [class *= flb-]:after {
    content: "";
    width: 100%;
    min-height: 510px;
    height: 100%;
    margin: 0;
    position: absolute;
    border: solid 1px #1A1A1C;
    display: block;
}
.tokuten-02 [class *= flb-]:before {
    content: "";
    top: 0;
    left:0;
    background:#FFF;
    z-index: 1;
}
.tokuten-02 [class *= flb-]:after {
    top: 8px;
    right: -8px;
    z-index: -1;
}
.tokuten-02 .flb-md-1-2 {
    width: 100%;
    max-width: 550px;
}
.tokuten-02 ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 2rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}

.tokuten-02 .img-area{
    margin: 0;
    display:block;
}
.tokuten-02 .flb-md-1-2 .img-area{
    width: 100%;
    text-align: center;
}
.tokuten-02 .flb-lg-1-1 .img-area{
    width: 300px;
    height: 250px;
    margin: 0 auto 5px;
    position: relative;
    z-index: 2;
}
.tokuten-02 .flb-lg-1-1 .img-area img{
    max-width: 155px;
}
.tokuten-02 .flb-lg-1-1 .img-area img:nth-of-type(2){
    /* float:right; */
    /* margin: -62px 0 0 -13px; */
    position: absolute;
    right: 0;
    bottom: 0;
}


.tokuten-02 .txt-area{
    height: 100%;
    margin:0 auto;
    z-index: 2;
}
.tokuten-02 .flb-md-1-2 .txt-area{
    width: 100%;
    height: auto;
    padding: 28px 0 20px;
    display: block;
}
.tokuten-02 .txt-area .caption{
    min-width: 138px;
    margin: 0 0 10px;
    padding: 8px;
    font-size: 1.2rem;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.container-fluid .tokuten-02 .txt-area h4{
    margin: 0 0 1px;
    font-size: 2rem;
    font-weight:600;
    line-height: 2;
    letter-spacing: -0.02em;
    white-space: nowrap;
}
.container-fluid .tokuten-02 .flb-md-1-2:nth-of-type(1) .txt-area h4{
    margin: 0 0 0;
}
.container-fluid .tokuten-02 .txt-area p{
    margin: 0;
    font-size: 1.3rem;
    font-weight:400;
    line-height: 1.538;
}
.container-fluid .tokuten-02 .txt-area .price{
    width: fit-content;
    margin: 10px auto 0;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price{
    margin: 14px 0 0;
    flex-flow: row wrap;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price-group-01{
    width: 100%;
    margin: 0 0 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-content: center;
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price-normal{
    width: calc(50% - 21px);
    padding: 0 5px;
    text-align: center;
}
.container-fluid .tokuten-02 .flb-md-1-2:nth-of-type(1) .price{
    margin: 20px auto 0;
}
.container-fluid .tokuten-02 .txt-area .price .price-normal span{
    margin: 0 0 8px;
    font-size: 1.4rem;
    display: block;
    /* border: solid green 1px; */
}
.container-fluid .tokuten-02 .flb-lg-1-1 .txt-area .price .price-normal span{
    margin: 0;
    font-size: 1.2rem;
    display: block;
    white-space: nowrap;
}
.container-fluid .tokuten-02 .txt-area .price .price-normal p{
    font-size: 3.6rem;
    line-height: 1;
}
.container-fluid .tokuten-02 .txt-area .price .price-normal p .small{
    margin: 0;
    font-size: 1.6rem;
    display: inline-block;
}
.container-fluid .tokuten-02 .txt-area .price .price-special{
    /* margin: 0; */
    font-size: 3.6rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
}
.tokuten-02 .flb-lg-1-1 .txt-area .price .price-special{
    width:100%;
    margin: 10px auto;
    text-align: center;
    display: block;
}
.tokuten-02 i.angle-right {
    width: 37px;
    height: 28px;
    margin: 0 15px;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
}
.tokuten-02 .flb-lg-1-1 i.angle-right {
        margin: 0;
        background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
        transform: rotate(90deg);
        display: block;
}
.tokuten-02 .icon-or {
    width: 41px;
    height: 41px;
    color: #FFF;
    text-align: center;
    font-size: 2.5rem;
    line-height: 33px;
    font-weight: normal;
    background:#1A1A1C;
    border-radius: 50%;
    display: inline-block;
}


/*.tokuten-03*/
.tokuten-03 .h3{
    margin: 0 auto;
    align-items: center;
}
.tokuten-03 .title-wrap p{
    margin: 0 0 3px;
}
.tokuten-03 .h3 h3 {
    font-size: 1.8rem;
    line-height: 2.222;
    letter-spacing: -0.02em;
}
.tokuten-03 .h3 h3 span{
    font-size: 3.6rem;
}
.tokuten-03 .title-wrap{
    width: 100%;
    margin: 0 auto 25px;
    display: block;
    position: relative;
}
.container-fluid .tokuten-03 .txt-lv1{
    margin: 0 auto 20px;
    font-size: 1.4rem;
    letter-spacing: 0;
    font-weight: normal;
    line-height: 1.786;
}
.container-fluid .tokuten-03 p.small{
    margin: 0 auto;
    font-size:1rem;
    line-height: 1.5;
    text-align:center;
}
.tokuten-03 .img-box {
    margin: 0 auto 30px;
    display: block;
}
.tokuten-03 .img-box .img-box-camera{
    max-width: 584px;
    margin: 0 auto 26px;
}
.tokuten-03 .img-box .img-box-logo{
    /* max-width: 915px; */
    margin: 0 auto;
    display: block;
}
.tokuten-03 .flexBox-center{
    max-width: 540px;
    margin: 0 auto;
}

.tokuten-03 .flexBox{width: calc(100% + 20px);margin: 0 -10px 10px;}

.tokuten-03 ul{margin: 0;text-align: left;font-size: 1.2rem;line-height: 1.667;}

.tokuten-03 [class *= flb-] {
    margin: 0 10px 28px;
    padding:22px 16px 30px 16px;
    position: relative;
    text-align: left;
    display: block;
    color: #1A1A1C;
    background: #FFF;
    border: solid 1px #1A1A1C;
    transition: 0.5s ease;
}
.tokuten-03 [class *= flb-]:nth-of-type(2) {
    padding-top: 17px;
}
.tokuten-03 [class *= flb-]:nth-of-type(3) {
    padding-top: 12px;
}
.tokuten-03 [class *= flb-]:nth-of-type(4) {
    padding-top: 2px;
    margin-bottom: 5px;
}
.tokuten-03 [class *= flb-]:after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0;
    position: absolute;
    right: -8px;
    bottom: -8px;
    border: solid 1px #1A1A1C;
    display: block;
    z-index: -1;
}
.tokuten-03 .flb-md-1-2 {
    width: 100%;
    height: auto;
}
.tokuten-03 .img-area{
    width: 100%;
    margin: 0 0 22px;
    display: block;
    text-align: center;
}
.tokuten-03 [class *= flb-]:nth-of-type(2) .img-area,
.tokuten-03 [class *= flb-]:nth-of-type(3) .img-area{
    margin: 0 0 12px;
}
.tokuten-03 [class *= flb-]:nth-of-type(4) .img-area{
    margin: 0;
}
.tokuten-03 .flb-lg-1-1 .img-area img{
    max-width:220px;
    margin-right: 40px;
}
.tokuten-03 .txt-area{
    height: 100%;
    margin:0 auto;
}
.tokuten-03 .flb-md-1-2 .txt-area{
    width: 100%;
    padding: 0;
    display: block;
}
.tokuten-03 .txt-area .caption{
    min-width: 90px;
    margin: 0 16px 0 0;
    padding: 8px;
    font-size: 1.4rem;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.container-fluid .tokuten-03 .txt-area h4{
    margin: 0 auto 15px;
    font-size: 2rem;
    font-weight:600;
    line-height: 1.25;
    text-align: center;
}
.container-fluid .tokuten-03 .txt-area p{
    margin: 0;
    line-height: 1;
}
.container-fluid .tokuten-03 .txt-area .price{
    width: 100%;
    margin: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-03 .txt-area .price p{
    font-size: 2.4rem;
    font-weight:600;
}
.container-fluid .tokuten-03 .txt-area .price-normal,
.container-fluid .tokuten-03 .txt-area .price-special{
    width: 100%;
    margin: 10px auto;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    flex-flow: row wrap;
}
.container-fluid .tokuten-03 .txt-area .price-special p{
    font-size: 3.6rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
}
.container-fluid .tokuten-03 .txt-area .price p .small{
    margin: 0;
    font-size: 1.6rem;
    color: #1A1A1C;
    font-weight: normal;
    display: inline-block;
}
.tokuten-03 i.angle-bottom-02 {
    width: 20px;
    height: 24px;
    margin: auto;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) center center no-repeat;
    transform: rotate(90deg);
    background-size: 20px;
}


/*.tokuten-04*/
.tokuten-04 .h3{
    margin: 0 auto;
    align-items: center;
}
.tokuten-04 .h3 h3 {
    font-size: 1.6rem;
    line-height: 1.8;
}
.tokuten-04 .h3 h3 span{
    font-size: 2rem;
}
.tokuten-04 .h3 h3 span.large{
    font-size: 3.6rem;
}
.tokuten-04 .h3 h3 span.medium{
    font-size: 2rem;
}
.tokuten-04 .title-wrap{
    width: 100%;
    margin: 0 auto 25px;
    display: block;
    position: relative;
}
.tokuten-04 .title-wrap p{
    margin: 0 auto 24px;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: -0.02em;
    display: block;
}
.tokuten-04 .txt-lv1{
    margin: 0 auto 20px;
    font-size: 1.4rem;
    letter-spacing: 0;
    line-height: 1.786;
    text-align: left;
}
.tokuten-04 .target-blank{
    margin: 0 auto;
    padding: 0 30px 0 0;
    font-size: 1.4rem;
    letter-spacing: 0;
    line-height: 1.5;
    color:#000;
    position: relative;
    display: inline-block;
}
.slide-contents .slide-contents-txt{
    text-align: left; 
}
.tokuten-04-title {
    margin: 0 auto 22px;
    padding:0 0 0 24px;
    font-size: 2rem;
    line-height:22px;
    font-weight: bold;
    text-align: left;
    display: block;
    position:relative;
}
.tokuten-04-title:before {
    content:"";
    width:10px;
    height:20px;
    background:#1A1A1C;
    display: block;
    position:absolute;
    top:0;
    left:0;
}
.tokuten-04 .flexBox-center{
    max-width: 400px;
    margin: 0 auto;
}
.tokuten-04 .flexBox{
    height: 100%;
}

.tokuten-04 [class *= flb-] {
    margin: 0 auto 20px;
    padding: 0;
    position: relative;
    text-align: left;
    color: #1A1A1C;
    background: #FFF;
    border: solid 1px #1A1A1C;
    cursor: pointer;
}
/*.tokuten-04 [class *= flb-]:hover {
    opacity: .75;
}*/
.tokuten-04 .img-area{
    width: calc(100% + 12px);
    margin: 0 -6px;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    overflow: hidden;
    position:relative;
}
.tokuten-04 .img-area:after{
    content:"";
    width: calc(100% - 16px);
    height: 100%;
    display: block;
    border-left: solid 1px #1A1A1C;
    border-right: solid 1px #1A1A1C;
    position:absolute;
    top:0;
    left:6px;
    z-index:1;
}
.tokuten-04 .flb-lg-1-1 .img-area img{
    max-width:220px;
    margin-right: 40px;
    position:relative;
    z-index:2;
}
.tokuten-04 .flb-md-1-2 .txt-area{
    width: 100%;
    height: 100%;
    min-height: 506px;
    padding: 0;
    margin: 0 6px 6px;
    text-align: center;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: space-between;
    border-left: solid 1px #1A1A1C;
    border-right: solid 1px #1A1A1C;
    border-bottom: solid 1px #1A1A1C;
}
.tokuten-04 .txt-area .caption{
    min-width: 90px;
    margin: 0 auto 16px;
    padding: 8px;
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    border: solid 1px #1A1A1C;
    display: inline-block;
}
.tokuten-04 .txt-area h4{
    margin: 0 auto 20px;
    font-size: 2rem;
    font-weight:600;
    line-height: 1.25;
}
.tokuten-04 .txt-area p{
    margin: 0;
    line-height: 1;
}
.tokuten-04 .txt-area .information{
    width: 100%;
    height: 100%;
    padding: 45px 21px 30px;
    margin: 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: space-between;
}
.tokuten-04 .txt-area .information p{
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 2.143;
    text-align: left;
}
.tokuten-04 .txt-area .information p .large{
    font-size: 2.4rem;
}
.tokuten-04 .txt-area .info-date{
    width: 100%;
    margin: 0 auto 5px;
    text-align: center;
    display: block;
}
.tokuten-04 .txt-area .info-date p{
    line-height: 1;
    text-align: center;
    letter-spacing: 0.01em;
    font-size: 1.6rem;
    font-weight: 600;
}
.tokuten-04 .txt-area .info-price{
    width: 100%;
    margin: 0 auto 20px;
    display: block;
}
.tokuten-04 .txt-area .info-price p{
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1.25;
    color: #B81B60;
    text-align: center;
    letter-spacing: 0;
}
.tokuten-04 .txt-area .information p .small{
    margin: 0;
    font-size: 1.6rem;
    letter-spacing: -.02em;
    display: inline-block;
}
.tokuten-04 .txt-area .underline-02 {
    padding: 0 0 3px;
    background: url(/campaign/images/cameramatsuri/dotted.svg) 0 bottom repeat-x;
}
.tokuten-04 .txt-area .information .underline-02 .small{
    font-size: 1.4rem;
}
.tokuten-04 i.angle-bottom-02 {
    width: 37px;
    height: 28px;
    margin: 12px auto 7px;
    background: url(/campaign/images/cameramatsuri/arrow-02.svg) right bottom no-repeat;
    transform: rotate(90deg);
}
}
/* --------------------------------------------- SP end */



/* -------------------------------------------------------------------
PopUp
------------------------------------------------------------------- */
@media screen and (min-width:768px) {
/*.popup */
p.txt-popup.style01 {
    margin: 0 auto 15px;
    padding: 0 18px;
    margin:0 auto 28px;
    font-size: 2rem;
    line-height: 1.5;
    font-weight: 600;
    text-align: center;
    display: inline-block;
    color: #B81B60;
    position:relative;
}
p.txt-popup.style01:before,
p.txt-popup.style01:after{
    content:"";
    width: 2px;
    height: 42px;
    margin: auto;
    position:absolute;
    bottom: 1px;
    background: #B81B60;
    display:block;
}
p.txt-popup.style01:before{
    content:"";
    left: 10px;
    transform: rotate(-35deg);
}
p.txt-popup.style01:after{
    content:"";
    right: 10px;
    transform: rotate(35deg);
}

p.txt-popup.style02 {
    margin: 0 auto 16px;
    padding: 0 80px 75px;
    letter-spacing: 0;
    text-align: center;
    color: #B81B60;
    position:relative;
    display: inline-block;
}
p.txt-popup.style02:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style02:after{
    content:"";
    height: 59px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style02.svg) center 0 no-repeat;
    background-size: 100%;
}

p.txt-popup.style03 {
    margin: 0;
    padding: 0 20px 35px;
    font-size: 2rem;
    letter-spacing: 0;
    text-align: center;
    color: #B81B60;
    position: absolute;
    top: -25px;
    right: -32px;
    display: block;
    transform: rotate(21deg);
}
p.txt-popup.style03:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style03:after{
    content:"";
    height: 25px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style03.svg) center 0 no-repeat;
    background-size: 100%;
}

.txt-popup.style04 {
    margin: 0 auto;
    padding: 0 30px 65px;
    letter-spacing: 0;
    text-align: center;
    position:relative;
    display: inline-block;
}
.txt-popup.style04:before,
.txt-popup.style04:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
.txt-popup.style04:before{
    content:"";
}
.txt-popup.style04:after{
    content:"";
    height: 39px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style04.svg) center 0 no-repeat;
    background-size: 100%;
}
p.txt-popup.style05{
    margin: 0 auto 75px;
    padding: 0 10px 37px;
    font-size: 2rem;
    letter-spacing: 0;
    text-align: center;
    color: #000;
    position:relative;
    display: inline-block;
}
p.txt-popup.style05:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style05:after{
    content:"";
    height: 27px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style05.svg) center 0 no-repeat;
    background-size: 100%;
}
}
/* --------------------------------------------- PC end */



/*767PX*/
@media screen and (max-width: 767px) {
p.txt-popup.style01 {
    margin: 0 auto 15px;
    padding: 0 18px;
    auto 28px;
    font-size: 1.6rem;
    line-height: 1.563;
    font-weight: 600;
    text-align: center;
    display: inline-block;
    color: #B81B60;
    position:relative;
}
p.txt-popup.style01:before,
p.txt-popup.style01:after{
    content:"";
    width: 1px;
    height: 42px;
    margin: auto;
    position:absolute;
    bottom: 1px;
    background: #B81B60;
    display:block;
}
p.txt-popup.style01:before{
    content:"";
    left: 10px;
    transform: rotate(-35deg);
}
p.txt-popup.style01:after{
    content:"";
    right: 10px;
    transform: rotate(35deg);
}

p.txt-popup.style02 {
    width: 100%;
    max-width: 338px;
    margin: 0 auto 15px;
    padding: 0 0 38px;
    font-size: 1.6rem;
    letter-spacing: 0;
    text-align: center;
    color: #B81B60;
    position:relative;
    display: inline-block;
}
p.txt-popup.style02:after{
    content:"";
    width: 100%;
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style02:after{
    content:"";
    height: 38px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style04-sp.svg) center bottom no-repeat;
    background-size: 338px;
}

p.txt-popup.style03 {
    margin: 0 auto;
    padding: 0 8px 19px;
    font-size: 1.4rem;
    letter-spacing: 0;
    text-align: center;
    color: #B81B60;
    position: absolute;
    bottom: 30px;
    /* left: 0; */
    right: calc(50% - 14em);
    display: block;
    transform: rotate(21deg);
}
p.txt-popup.style03:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style03:after{
    content:"";
    height: 15px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style03.svg) center 0 no-repeat;
    background-size: 86px;
}

.txt-popup.style04 {
    width: calc(100% - 40px);
    max-width: 338px;
    /* height: 60px; */
    margin: 0 auto;
    padding: 0 0 38px;
    font-size: 1.4rem;
    letter-spacing: 0;
    text-align: center;
    position:relative;
    display: inline-block;
}
.txt-popup.style04 span{
    font-size: 2.5rem;
    letter-spacing: -0.05rem;
}
.txt-popup.style04:before,
.txt-popup.style04:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
.txt-popup.style04:before{
    content:"";
}
.txt-popup.style04:after{
    content:"";
    height: 38px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style04-sp.svg) center bottom no-repeat;
    background-size: 338px;
}


p.txt-popup.style05{
    width: 100%;
    max-width: 332px;
    margin: 0 auto 25px;
    padding: 0 0 38px;
    font-size: 2rem;
    letter-spacing: 0;
    line-height: 1.5;
    text-align: center;
    color: #000;
    position:relative;
    display: inline-block;
}
p.txt-popup.style05:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style05:after{
    content:"";
    height: 27px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style05-sp.svg) center bottom no-repeat;
    background-size: 332px;
}
}
/* --------------------------------------------- SP end */

a{
    text-decoration:none!important;
}
.caption:after {
    content: none !important;
}
h1, h2, h3, h4, h5, h6 {
    color: #000;
}
p {
    line-height:unset;
    margin: unset;
    text-align: unset;
}
.tokuten-04 [class *= flb-]:hover{
    opacity:.75;
}


/*20250728追加*/
@media screen and (min-width:768px) {
section.tokuten.first .sectionTitle {
    max-width:766px;
    margin-bottom: 20px;
    position:relative;
}
section.tokuten.first .sectionTitle p.txt-popup.style01 {
    padding: 0 2.4rem;
    margin: 0 auto 10px 275px;
    font-size: 2.4rem;
    letter-spacing: 0.06em;
    text-align: center;
    display: table;
    color: #B81B60;
    position:relative;
}
section.tokuten.first .sectionTitle p.txt-popup.style01:before,
section.tokuten.first .sectionTitle p.txt-popup.style01:after{
    content:"";
    width: 1px;
    height: 85%;
    bottom: 1px;
    background: #B81B60;
    display:block;
}
section.tokuten.first .sectionTitle p.txt-popup.style01:before{
    content:"";
    left: 8px;
    transform: rotate(-45deg);
}
section.tokuten.first .sectionTitle p.txt-popup.style01:after{
    content:"";
    right: 10px;
    transform: rotate(45deg);
}
section.tokuten.first .txt-popup.style04 {
    width:100%;
    padding-left: 200px;
    text-align: left;
}
section.tokuten.first h2 span {
    font-size: 4.8rem;
}
.sectionTitle .tk-nmbr{
    font-size: 4.8rem;
    color: #FFF;
    line-height: 0;
    letter-spacing: 0;
}
.sectionTitle .tk-nmbr{
    width: 80px;
    height: 80px;
    padding: 0 0 3px;
    margin: 0 18px 0 0;
    font-size: 4rem;
    font-weight: 600;
    color:#FFF;
    line-height: 2;
    position: absolute;
    bottom: 55px;
    left: 55px;
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    border-radius: 50%;
    z-index: 1;
}
.sectionTitle .tk-nmbr:after{
    content:"";
    width: 82px;
    height: 82px;
    margin: 0;
    font-size: 4rem;
    color:#FFF;
    line-height: 2;
    background: #b81b60;
    position:absolute;
    top: 0;
    left:0;
    display: block;
    border-radius: 50%;
    z-index: -1;
}
p.txt-popup.style06{
    margin: 0 auto 40px;
    padding: 0 0 10px;
    font-weight: 600;
    line-height: 55px;
    text-align: center;
    letter-spacing: 0.15rem;
    color: #1A1A1C;
    position:relative;
    display: inline-block;
}
p.txt-popup.style06:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style06:after{
    content:"";
    height: 14px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style06.svg) 0 0 repeat-x;
    background-size: 618px;
}



.tokuten-01 .flexBox{
    width: 100%;
    margin: 0 auto;
    flex-flow: row wrap;
}
.tokuten-01 [class *= flb-] {
    width: 100%;
    max-width: 1040px;
    margin: 0 auto 65px;
    padding: 0 0 105px;
    position: relative;
    text-align: left;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    flex-flow: row wrap;
    color: #1A1A1C;
}
.tokuten-01 [class *= flb-]:last-child {
    margin: 0 auto 100px;
    padding: 0;
}
.tokuten-01 [class *= flb-]:after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0 auto;
    position: absolute;
    border-bottom: dotted 1px #7f7f7f;
    display: block;
    right:0;
    left: 0;
    bottom: 0;
    z-index: 1;
}
.tokuten-01 [class *= flb-]:last-child:after {
    content: none;
}
.tokuten-01 ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 2rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}
.tokuten-01 .img-area{
    width: 38.771593090211134%;
    max-width: 404px;
    margin: 0 0 0 -7px;
    display:block;
    z-index: 2;
    position: relative;
}
.tokuten-01 .txt-area{
    width: 61.42034548944337%;
    max-width: 640px;
    height: 100%;
    margin: 0;
    padding: 0 27px 0 35px;
    z-index: 2;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: center;
    align-content: flex-end;
}
.tokuten-01 .txt-area .caption{
    width: 130px;
    height: 35px;
    margin: 0 auto;
    padding: 8px;
    font-size: 2rem;
    line-height: 1;
    text-align: center;
    background: #fff;
    border: solid 1px #000;
    display: table;
    position: absolute;
    top: -20px;
    left: calc(50% - 65px);
}
.container-fluid .tokuten-01 h4{
    margin: 0 auto;
    font-size: 2rem;
    font-weight:400;
    text-align:center;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
}
.container-fluid .tokuten-01 .txt-area p{
    margin: 0;
    font-size: 1.4rem;
    font-weight:400;
    line-height:1.429;
}
.container-fluid .tokuten-01 .txt-area .price{
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end;
    align-content: center;
}
.container-fluid .tokuten-01 .txt-area .price-group-01 .price-normal,
.container-fluid .tokuten-01 .txt-area .price-group-01 .price-special{
    margin: 0 0 20px;
}
.container-fluid .tokuten-01 .txt-area .price .price-normal span{
    margin: 0 0 17px;
    font-size: 2rem;
    line-height: 1;
    display: block;
}
.container-fluid .tokuten-01 .txt-area .price .price-normal p{
    font-size: 4rem;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
.container-fluid .tokuten-01 .txt-area .price p .small{
    margin: 0 0 0 4px;
    color:#000;
    font-size: 2rem;
    font-weight: 400;
    display: inline-block;
}
.container-fluid .tokuten-01 .txt-area .price .price-special p{
    font-size: 5rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
    white-space: nowrap;
}
.container-fluid .tokuten-01 .txt-area .price .price-special .underline{
    padding-bottom:6px;
    font-size: 5rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
    background: url(/campaign/images/cameramatsuri/dotted02.svg) 0 bottom repeat-x;
}
.tokuten-01 i.angle-right {
    width: 44px;
    height: 43px;
    margin: 0 20px 20px 18px;
    background: url(/campaign/images/cameramatsuri/arrow-03.svg) center center no-repeat;
    background-size: 44px;
}
.tokuten-01 i.ic-plus {
    width: 33px;
    height: 33px;
    margin: 0;
    background: url(/campaign/images/cameramatsuri/plus.png) center center no-repeat;
    background-size: 33px;
}
.container-fluid .tokuten-01 .txt-area .price-group-01{
    margin: 0 0 67px;
}
.container-fluid .tokuten-01 .txt-area .price-group-02{
    width: 100%;
    max-width: 581px;
    padding: 40px 20px 30px;
    border: solid 1px #000;
    align-items: center;
    justify-content: center;
    position:relative;
}
.container-fluid .tokuten-01 .txt-area .price-group-02:after{
    content:"";
    width:50px;
    height: 30px;
    position: absolute;
    top: -29px;
    left: 67px;
    display:block;
    background: url(/campaign/images/cameramatsuri/fukidashi.svg) 0 0 no-repeat;
    background-size: 50px;
    z-index: 2;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal{
    text-align:center;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal:nth-of-type(3){
    margin-left:10px;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal span{
    margin: 0 0 12px;
    font-size:1.6rem;
    line-height: 1;
}
.tokuten-01 .icon-or {
    width: 53px;
    height: 53px;
    margin: 0 20px;
    color: #FFF;
    text-align: center;
    font-size: 3.6rem;
    line-height: 45px;
    font-weight: normal;
    background:#1A1A1C;
    border-radius: 50%;
    display: inline-block;
}
.txt-popup.style07{
    width:213px;
    height:33px;
    margin: 0 0 20px .5rem;
    padding: 0;
    font-weight: 500;
    font-size: 1.6rem;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #FFFFFF;
    position:relative;
    display: flex;
    justify-content:center;
    align-items:center;
    background: #B81B60;
    border-radius: 50px;
    position: relative;
}
.txt-popup.style07:after{
    content:"";
    height: 21px;
    width: 24px;
    margin: 0 auto;
    display: block;
    position: absolute;
    right: 0;
    left:0;
    bottom: -16px;
    background: #B81B60;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(90deg);
    transform: rotate(180deg);
    z-index:10;
}
}

@media screen and (min-width:768px) and (max-width:1100px) {
    .tokuten-01 i.angle-right {
    width: 100%;
    height: 43px;
    margin: 0 auto 10px;
    background: url(/campaign/images/cameramatsuri/arrow-03.svg) center center no-repeat;
    background-size: 44px;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}
    .container-fluid .tokuten-01 .txt-area .price-group-01 {
        flex-flow: row wrap;
        justify-content: center;
    }
}

@media screen and (min-width:768px) and (max-width:940px) {
    .container-fluid .tokuten-01 .txt-area .price-group-02 {
        text-align: center;
        display: block;
    }
    .container-fluid .tokuten-01 h4 {
        margin: -1em auto 0;
        position: relative;
    }
}


/*SP*/
@media screen and (max-width:767px) {
section.tokuten.first .sectionTitle {
    max-width:766px;
    width: 316px;
    margin: 0 auto 20px;
    position:relative;
}
section.tokuten.first .sectionTitle p.txt-popup.style01 {
    padding: 0 2rem;
    margin: 0 auto 4px 75px;
    font-size: 1.6rem;
    letter-spacing: 0;
    text-align: center;
    display: table;
    color: #B81B60;
    position:relative;
}
section.tokuten.first .sectionTitle p.txt-popup.style01:before,
section.tokuten.first .sectionTitle p.txt-popup.style01:after{
    content:"";
    width: 1px;
    height: 90%;
    bottom: 1px;
    background: #B81B60;
    display:block;
}
section.tokuten.first .sectionTitle p.txt-popup.style01:before{
    content:"";
    left: 10px;
    transform: rotate(-45deg);
}
section.tokuten.first .sectionTitle p.txt-popup.style01:after{
    content:"";
    right: 10px;
    transform: rotate(45deg);
}
section.tokuten.first .txt-popup.style04 {
    width:100%;
    max-width: 316px;
    padding-left: 57px;
}
.sectionTitle .tk-nmbr{
    font-size: 4.8rem;
    color: #FFF;
    line-height: 0;
    letter-spacing: 0;
}
.sectionTitle .tk-nmbr{
    width: 46px;
    height: 46px;
    padding: 0;
    margin: 0;
    font-size: 3.2rem;
    font-weight: 600;
    color:#FFF;
    line-height: 1;
    position: absolute;
    bottom: 41px;
    left: 8px;
    display: flex;
    justify-content: center;
    align-content: center;
    align-items: center;
    border-radius: 50%;
    z-index: 1;
}
.sectionTitle .tk-nmbr:after{
    content:"";
    width: 46px;
    height: 46px;
    margin: 0;
    font-size: 4rem;
    color:#FFF;
    line-height: 2;
    background: #b81b60;
    position:absolute;
    top: 3px;
    left:0;
    display: block;
    border-radius: 50%;
    z-index: -1;
}
p.txt-popup.style06{
    margin: 0 auto 40px;
    padding: 0 0 10px;
    font-weight: 600;
    line-height: 2;
    text-align: center;
    letter-spacing: 0;
    color: #1A1A1C;
    position:relative;
    display: inline-block;
}
p.txt-popup.style06:after{
    content:"";
    width: 100%;
    margin: auto;
    position:absolute;
    left: 0;
    right: 0;
    bottom: 0;
    display:block;
}
p.txt-popup.style06:after{
    content:"";
    height: 7px;
    background: url(/campaign/images/cameramatsuri/txt-popup-style06.svg) 0 0 repeat-x;
    background-size: 331px;
}
.tokuten-01 .flexBox{
    width: 100%;
    margin: 0 auto;
    flex-flow: row wrap;
}
.tokuten-01 [class *= flb-] {
    width: 100%;
    margin: 0 auto 40px;
    padding: 0 0 35px;
    position: relative;
    text-align: center;
    display: block;
    color: #1A1A1C;
}
.tokuten-01 [class *= flb-]:after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0 auto;
    position: absolute;
    border-bottom: dotted 1px #7f7f7f;
    display: block;
    right:0;
    left: 0;
    bottom: 0;
    z-index: 1;
}
.tokuten-01 [class *= flb-]:last-child:after {
    content:none;
}
.tokuten-01 ul li a span.small{
    width: 100%;
    margin: -8px auto 8px;
    padding: 0;
    display: block;
    font-size: 2rem;
    color:#000;
    font-weight: 600;
    line-height: 1.25;
}
.tokuten-01 .img-area{
    width: 100%;
    margin: 0 auto 10px;
    display:block;
    z-index: 2;
    position: relative;
}
.tokuten-01 .img-area img{
    width: 194px;
}
.tokuten-01 .txt-area{
    width: 100%;
    margin: 0;
    padding: 0;
    z-index: 2;
    display: block;
}
.tokuten-01 .txt-area .caption{
    width: 70px;
    height: 23px;
    margin: 0 auto;
    padding: 4px 8px;
    font-size: 1.4rem;
    line-height: 1;
    text-align: center;
    background: #fff;
    border: solid 1px #000;
    display: table;
    position: absolute;
    top: -8px;
    left: calc(50% - 35px);
}
.container-fluid .tokuten-01 h4{
    margin: 0 auto;
    font-size: 1.6rem;
    font-weight: 600;
    text-align:center;
}
.container-fluid .tokuten-01 .txt-area p{
    margin: 0;
    font-size: 1.4rem;
    font-weight:400;
    line-height:1.429;
}
.container-fluid .tokuten-01 .txt-area .price{
    width: 100%;
    display: block;
}
.container-fluid .tokuten-01 .txt-area .price-group-01 .price-normal,
.container-fluid .tokuten-01 .txt-area .price-group-01 .price-special{
    margin: 0 auto 10px;
}
.container-fluid .tokuten-01 .txt-area .price .price-normal span{
    margin: 0 0 5px;
    font-size: 1.4rem;
    line-height: 1;
    display: inline-block;
}
.container-fluid .tokuten-01 .txt-area .price .price-normal p{
    font-size: 3.2rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.01rem;
}
.container-fluid .tokuten-01 .txt-area .price p .small{
    margin: 0;
    color:#000;
    font-size: 1.4rem;
    font-weight: 400;
    display: inline-block;
}
.container-fluid .tokuten-01 .txt-area .price .price-special p{
    padding-bottom: 10px;
    font-size: 5rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
    white-space: nowrap;
    background: url(/campaign/images/cameramatsuri/dotted02.svg) 0 bottom repeat-x;
    display: inline-block;
}
.container-fluid .tokuten-01 .txt-area .price .price-special .underline{
    font-size: 4rem;
    font-weight: 600;
    line-height: 1;
    color: #B81B60;
}
.container-fluid .tokuten-01 .txt-area .price .price-special p .small{
    font-size: 1.6rem;
}
.tokuten-01 i.angle-right {
    width: 27px;
    height: 27px;
    margin: 0 auto 5px;
    background: url(/campaign/images/cameramatsuri/arrow-03.svg) center center no-repeat;
    background-size: 27px;
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
}
.tokuten-01 i.ic-plus {
    width: 19px;
    height: 23px;
    margin: 0 0 -5px;
    background: url(/campaign/images/cameramatsuri/plus.png) center center no-repeat;
    background-size: 19px;
}
.container-fluid .tokuten-01 .txt-area .price-group-01{
    margin: 0 0 26px;
}
.container-fluid .tokuten-01 .txt-area .price-group-02{
    width: 100%;
    max-width: 272px;
    margin: -4px auto 0;
    padding: 25px 0 20px;
    border: solid 1px #000;
    display: table;
    position:relative;
}
.container-fluid .tokuten-01 .txt-area .price-group-02:before{
    content:"";
    width: 23px;
    height: 1px;
    position: absolute;
    top: 0;
    left: 21px;
    display:block;
    background:#fff;
    z-index: 3;
}
.container-fluid .tokuten-01 .txt-area .price-group-02:after{
    content:"";
    width: 41px;
    height: 19px;
    position: absolute;
    top: -19px;
    left: 10px;
    display:block;
    background: url(/campaign/images/cameramatsuri/fukidashi.svg) 0 0 no-repeat;
    background-size: 41px;
    z-index: 2;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal{
    margin-bottom: 2px;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal p{
    font-size: 2.4rem;
}
.container-fluid .tokuten-01 .txt-area .price-group-02 .price-normal span{
    margin: 0 0 4px;
    font-size: 1.4rem;
    line-height: 1;
}
.tokuten-01 .icon-or {
    width: 53px;
    height: 53px;
    margin: 0 20px;
    color: #FFF;
    text-align: center;
    font-size: 3.6rem;
    line-height: 45px;
    font-weight: normal;
    background:#1A1A1C;
    border-radius: 50%;
    display: inline-block;
}
.txt-popup.style07{
    width:213px;
    height: 23px;
    margin: 0 auto 8px;
    padding: 0 0 2px;
    font-weight: 600;
    font-size: 1.3rem;
    line-height: 1;
    letter-spacing: 0.05em;
    color: #FFFFFF;
    position:relative;
    display: flex;
    justify-content:center;
    align-items:center;
    background: #B81B60;
    border-radius: 50px;
    position: relative;
}
.txt-popup.style07:after{
    content:"";
    height: 21px;
    width: 24px;
    margin: 0 auto;
    display: block;
    position: absolute;
    right: 0;
    left:0;
    bottom: -16px;
    background: #B81B60;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(180deg);
    -ms-transform: rotate(90deg);
    transform: rotate(180deg);
    z-index:10;
}
}


.float-bnr {
    width: 64px;
    height: 439px;
    padding-right: 10px;
    margin:0;
    border-radius: 10px;
    background: #FF850B;
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.15);
    position: fixed;
    top: 190px;
    right: -10px;
    display: grid;
    -ms-writing-mode: tb-rl;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    z-index:100;
}
.float-bnr a{
    width: 100%;
    height:100%;
    margin: 0;
    padding: 45px 0 0;
    color: #fff;
    text-align: center;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing:3px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: flex-start;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-line-pack: center;
    align-content: center;
}
.float-bnr a:before {
    content: "";
    height: 13px;
    width: 20px;
    margin: 0 auto;
    display: block;
    position: absolute;
    right: 5px;
    left:0;
    bottom: 25px;
    background: #fff;
    -webkit-clip-path: polygon(50% 0, 100% 100%, 0 100%);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    -webkit-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    transform: rotate(90deg);
    z-index:10;
}
.float-bnr:hover {
    opacity:.85;
}

@media screen and (max-width:767px) {
.float-bnr {
    width: 48px;
    height: 249px;
    position: fixed;
    top: calc(50% - 48px);
    z-index:100;
}
.float-bnr a{
    padding: 20px 0 0;
    font-size: 1.2rem;
    letter-spacing: 2px;
}
.float-bnr a:before {
    content: "";
    height: 11px;
    width: 12px;
    right: 5px;
    left:0;
    bottom: 15px;
}
}


.info-all {
    width: 100%;
    height: 100%;
    margin: auto;
    background: rgba(26, 26, 28,.7);
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    z-index: 1110;
}
.info-all p{
    width: 100vw;
    height: 100vh;
    margin: auto;
    font-size:4rem;
    font-weight:600;
    color:#FFF;
    text-align: center;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
}

@media screen and (max-width:767px) {
    .info-all p{
        font-size:2rem;
    }
    }