@charset "UTF-8";
/* reset */
body {
    font-family: 'Noto Sans JP', YuGothic, '游ゴシック', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
    min-width: 320px;
}

.serif {
    font-family: 'Noto Serif JP', "Yu Mincho", YuMincho, "游明朝", "HGS明朝", "HGP明朝", "HG明朝", serif;
    font-weight: 500;
}

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

h1.serif, h2.serif, h3.serif, h4.serif, h5.serif, h6.serif {
    font-weight: 500;
}

/* layout */
.inner-m, .inner-l {
    margin: 0 auto;
    width: 90.625%;
}

@media screen and (min-width: 640px) {
    .inner-m, .inner-l {
        width: 93.75%;
    }
}

.inner-m {
    max-width: 950px;
}

.inner-l {
    max-width: 1080px;
}

/* shared */
.bold {
    font-weight: bold;
}

.num {
    vertical-align: bottom;
}

/* header */
.header-sony-logo {
    width: 80px;
}

@media screen and (min-width: 640px) {
    .header-sony-logo {
        width: 100px;
    }
}

.contents-header {
    background: #353535;
    padding: 16px 26px;
}

@media screen and (min-width: 640px) {
    .contents-header {
        padding: 26px;
    }
}

.mv {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width: 640px) {
   .mv {
		background: #f1f1f1;
	}
}

.mv-imgbox {
    display: block;
    width: 100%;
    height: 100%;
}

.mv-textbox {
    width: 100%;
    order: 1;
    background: #f1f1f1;
    padding-top: 12.42vw;
    padding-bottom: 9.609vw;
}

.mv-title {
    text-align: center;
    line-height: 1;
}

.mv-title span {
    display: block;
    letter-spacing: .1em;
}

.mv-title .first {
    font-size: 3.75vw;
}

.mv-title .second,
.mv-title .last {
    font-size: 8.4375vw;
}

.mv-title .second,
.mv-title .third {
    margin-top: 3.75vw;
}

.mv-title .third {
    font-size: 7.031vw;
}

.mv-title .last {
    display: inline-block;
    border-bottom: 1px solid #080808;
    padding-bottom: 1.875vw;
}

.mv-title .last .num {
    width: 8.6712vw;
    margin-right: 1.75vw;
}

.mv-lens {
    width: 57.42vw;
    margin: 0 auto;
    padding-top: 6.5625vw;
}

.mv-lens img {
    width: 100%;
}

@media screen and (min-width: 640px) {
    .mv {
        flex-direction: row;
        align-items: stretch;
    }
    .mv-textbox {
        flex: 0 0 41.666%;
        width: 41.666%;
        padding: 0;
        height: auto;
    }
    .mv-imgbox {
        order: 2;
        flex: 0 0 58.334%;
        width: 58.334%;
        height: auto;
    }
    .mv-imgbox img {
        width: 100%;
    }
    .mv-title {
        margin-top: 5.208vw;
    }
    .mv-title .first {
        font-size: 1.66vw;
    }
    .mv-title .second,
    .mv-title .last {
        font-size: 3.75vw;
    }
    .mv-title .second,
    .mv-title .third {
        margin-top: 1.66vw;
    }
    .mv-title .third {
        font-size: 3.125vw;
    }
    .mv-title .last {
        margin-top: -1.145vw;
        padding-bottom: .833vw;
    }
    .mv-title .last .num {
        margin-right: .78125vw;
        width: 3.854vw;
    }
    .mv-lens {
        width: 25.52vw;
        padding-top: 2.916vw;
        margin: 0 auto;
    }
}

.sec1 {
    padding-top: 30px;
    padding-bottom: 48px;
}

@media screen and (min-width: 480px) {
    .sec1 {
        padding-top: 45px;
        padding-bottom: 72px;
    }
}

@media screen and (min-width: 640px) {
    .sec1 {
        padding-top: 60px;
        padding-bottom: 96px;
    }
}

.intro-text {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 2;
    letter-spacing: .075em;
}

@media screen and (min-width: 480px) {
    .intro-text {
        font-size: 19px;
        font-size: 1.1875rem;
    }
}

@media screen and (min-width: 640px) {
    .intro-text {
        text-align: center;
        line-height: 2.38;
    }
}

@media screen and (min-width: 1024px) {
    .intro-text {
        font-size: 21px;
        font-size: 1.3125rem;
    }
}

.item-title {
    margin-top: 40px;
    text-align: center;
}

@media screen and (min-width: 480px) {
    .item-title {
        margin-top: 60px;
    }
}

@media screen and (min-width: 1024px) {
    .item-title {
        margin-top: 80px;
    }
}

.item-title .top,
.item-title .bottom {
    letter-spacing: .1em;
}

.item-title .top {
    font-size: 24px;
    font-size: 1.5rem;
    display: inline-block;
    padding-bottom: 12px;
    border-bottom: 1px solid #080808;
}

.item-title .top .num {
    margin-left: 8px;
}

.item-title .top .one {
    width: 19.5px;
}

.item-title .top .two,
.item-title .top .five {
    width: 24px;
}

.item-title .top .three {
    width: 24.5px;
}

.item-title .top .four {
    width: 26.5px;
}

@media screen and (min-width: 480px) {
    .item-title .top {
        font-size: 36px;
        font-size: 2.25rem;
        padding-bottom: 18px;
    }
    .item-title .top .num {
        margin-left: 12px;
    }
    .item-title .top .one {
        width: 29.25px;
        max-width: 39px;
    }
    .item-title .top .two,
    .item-title .top .five {
        width: 36px;
        max-width: 48px;
    }
    .item-title .top .three {
        width: 36.75%;
        max-width: 49px;
    }
    .item-title .top .four {
        width: 39.75%;
        max-width: 53px;
    }
}

@media screen and (min-width: 1024px) {
    .item-title .top {
        font-size: 48px;
        font-size: 3rem;
        padding-bottom: 24px;
    }
    .item-title .top .num {
        margin-left: 16px;
    }
}

.item-title .bottom {
    line-height: 1.5;
    display: block;
    margin-top: 12px;
    font-size: 22px;
    font-size: 1.375rem;
}

@media screen and (min-width: 480px) {
    .item-title .bottom {
        margin-top: 18px;
        font-size: 27px;
        font-size: 1.6875rem;
    }
}

@media screen and (min-width: 1024px) {
    .item-title .bottom {
        margin-top: 24px;
        font-size: 32px;
        font-size: 2rem;
    }
}

.item-title + .img-block {
    margin-top: 36px;
}

@media screen and (min-width: 480px) {
    .item-title + .img-block {
        margin-top: 54px;
    }
}

@media screen and (min-width: 1024px) {
    .item-title + .img-block {
        margin-top: 72px;
    }
}

.img-text {
    font-size: 16px;
    font-size: 1rem;
    letter-spacing: .1em;
    line-height: 1.77;
    margin-top: 25px;
}

@media screen and (min-width: 480px) {
    .img-text {
        font-size: 17px;
        font-size: 1.0625rem;
        margin-top: 37.5px;
    }
}

@media screen and (min-width: 1024px) {
    .img-text {
        font-size: 18px;
        font-size: 1.125rem;
        margin-top: 50px;
    }
}

.lens-wrap {
    margin-top: 16px;
}

.lens-wrap .lens-block:nth-of-type(2) {
    margin-top: 20px;
}

@media screen and (min-width: 480px) {
    .lens-wrap {
        margin-top: 24px;
    }
}

@media screen and (min-width: 640px) {
    .lens-wrap {
        display: flex;
        margin-top: 32px;
    }
    .lens-wrap .lens-block {
        flex: 0 1 50%;
    }
    .lens-wrap .lens-block:nth-of-type(2) {
        margin-top: 0;
        margin-left: 20px;
    }
}

.lens-block {
    background: #f1f1f1;
    padding: 16px;
    line-height: 1.34;
    letter-spacing: .05em;
}

@media screen and (min-width: 480px) {
    .lens-block {
        padding: 26px;
    }
}

@media screen and (min-width: 640px) {
    .lens-block {
        padding: 16px;
    }
}

@media screen and (min-width: 768px) {
    .lens-block {
        padding: 36px 26px 26px;
    }
}

@media screen and (min-width: 1200px) {
    .lens-block {
        padding: 36px;
    }
}

.lens-block .copy {
    text-align: center;
    font-size: 20px;
    font-size: 1.25rem;
}

@media screen and (min-width: 480px) {
    .lens-block .copy {
        font-size: 22px;
        font-size: 1.375rem;
    }
}

@media screen and (min-width: 640px) {
    .lens-block .copy {
        font-size: 2vw;
    }
}

@media screen and (min-width: 1200px) {
    .lens-block .copy {
        font-size: 24px;
        font-size: 1.5rem;
    }
}

.lens-block .lens {
    margin-top: 16px;
    display: block;
}

.lens-block .lens.no-margin {
    margin-top: 0;
}

.lens-block .lens img {
    width: 100%;
}

@media screen and (min-width: 480px) {
    .lens-block .lens {
        margin-top: 24px;
    }
}

@media screen and (min-width: 640px) {
    .lens-block .lens {
        margin-top: 4.16vw;
    }
}

@media screen and (min-width: 768px) {
    .lens-block .lens {
        margin-top: 32px;
    }
}

.lens-block .meta {
    text-align: center;
    margin-top: 20px;
}

.lens-block .name {
    font-size: 22px;
    font-size: 1.375rem;
}

.lens-block .name .logo-glens {
    display: block;
    margin: 0 auto 12px;
    width: 18.713%;
    max-width: 64px;
}

@media screen and (min-width: 480px) {
    .lens-block .name {
        font-size: 27px;
        font-size: 1.6875rem;
    }
}

@media screen and (min-width: 640px) {
    .lens-block .name {
        font-size: 3.125vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block .name {
        font-size: 32px;
        font-size: 2rem;
    }
    .lens-block .name .logo-glens {
        display: inline-block;
        margin: 0 20px 6px 0;
        width: auto;
    }
}

.lens-block .logo-gmaster {
    width: 50%;
    max-width: 171px;
    margin: 0 auto;
}

.lens-block .logo-gmaster + .name {
    margin-top: 12px;
}

@media screen and (min-width: 480px) {
    .lens-block .logo-gmaster + .name {
        margin-top: 18px;
    }
}

@media screen and (min-width: 640px) {
    .lens-block .logo-gmaster + .name {
        margin-top: 2.343vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block .logo-gmaster + .name {
        margin-top: 24px;
    }
}

.lens-block .pnum {
    font-size: 18px;
    font-size: 1.125rem;
    margin-top: 10px;
}

@media screen and (min-width: 480px) {
    .lens-block .pnum {
        font-size: 21px;
        font-size: 1.3125rem;
    }
}

@media screen and (min-width: 640px) {
    .lens-block .pnum {
        font-size: 2.343vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block .pnum {
        font-size: 24px;
        font-size: 1.5rem;
    }
}

@media screen and (min-width: 640px) {
    .lens-block.large {
        padding: 50px 76px 60px;
    }
}

@media screen and (min-width: 640px) {
    .lens-block.large .copy {
        letter-spacing: .1em;
        font-size: 3.9vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block.large .copy {
        font-size: 40px;
        font-size: 2.5rem;
    }
}

@media screen and (min-width: 640px) {
    .lens-block.large .lens {
        margin-top: 4.88vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block.large .lens {
        margin-top: 50px;
    }
}

@media screen and (min-width: 640px) {
    .lens-block.large .meta {
        margin-top: 4.16vw;
    }
}

@media screen and (min-width: 1024px) {
    .lens-block.large .meta {
        margin-top: 32px;
    }
}

.title2 {
    text-align: center;
    font-size: 22px;
    font-size: 1.375rem;
    margin-top: 25px;
    line-height: 1.34;
}

@media screen and (min-width: 480px) {
    .title2 {
        font-size: 27px;
        font-size: 1.6875rem;
        margin-top: 37.5px;
    }
}

@media screen and (min-width: 1024px) {
    .title2 {
        font-size: 32px;
        font-size: 2rem;
        margin-top: 50px;
    }
}

.btns {
    display: flex;
    flex-wrap: wrap;
    margin-top: 24px;
}

.btns .btn-acafe {
    width: 100%;
}

.btns.btns-2col .btn-products {
    flex: 0 1 100%;
}

.btns.btns-3col .btn-sample,
.btns.btns-3col .btn-products {
    flex: 1 1 40%;
    max-width: calc(50% - 5px);
}

.btns.btns-3col .btn-products {
    margin-left: 10px;
}

.btn {
    text-align: center;
    padding: 10px;
    transition: .3s !important;
    font-size: 12px;
    font-size: 0.75rem;
    position: relative;
    line-height: 1.34;
    border-width: 3px;
    border-style: solid;
    border-color: transparent;
}

@media screen and (min-width: 480px) {
    .btn {
        font-size: 13px;
        font-size: 0.8125rem;
    }
}

@media screen and (min-width: 640px) {
    .btn {
        padding: 1.5625vw 3.125vw;
    }
}

@media screen and (min-width: 1024px) {
    .btn {
        padding: 20px 32px;
        font-size: 15px;
        font-size: 0.9375rem;
    }
}

.btn-acafe::before, .btn-sample::before, .btn-products::before {
    content: '';
    position: absolute;
    display: block;
    top: 50%;
    left: 6px;
    transform: translateY(-40%);
}

@media screen and (min-width: 480px) {
    .btn-acafe::before, .btn-sample::before, .btn-products::before {
        left: 16px;
    }
}

@media screen and (min-width: 640px) {
    .btn-acafe::before, .btn-sample::before, .btn-products::before {
        left: 12px;
    }
}

@media screen and (min-width: 1024px) {
    .btn-acafe::before, .btn-sample::before, .btn-products::before {
        left: 18px;
    }
}

.btn-sample::before, .btn-products::before {
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 3.5px 0 3.5px 4px;
}

.btn:hover, .btn:focus {
    text-decoration: none;
}

.btn-acafe {
    background: #3f3f3f;
    color: #fff;
    margin-bottom: 10px;
    font-size: 14px;
    font-size: 0.875rem;
}

@media screen and (min-width: 480px) {
    .btn-acafe {
        font-size: 15px;
        font-size: 0.9375rem;
    }
}

@media screen and (min-width: 1024px) {
    .btn-acafe {
        font-size: 17px;
        font-size: 1.0625rem;
    }
}

.btn-acafe::before {
    width: 12px;
    height: 15px;
    background-image: url(../img/arrow_ttl.svg);
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
}

.btn-acafe:hover, .btn-acafe:focus {
    background: #595959;
    color: #fff;
}

.btn-sample {
    background: transparent;
    border: 3px solid #e06909;
    color: #e06909;
}

.btn-sample::before {
    border-color: transparent transparent transparent #e06909;
}

.btn-sample:hover, .btn-sample:focus {
    color: #e06909;
    background: #fff;
}

.btn-products {
    background: #e06909;
    color: #fff;
}

.btn-products::before {
    border-color: transparent transparent transparent #fff;
}

.btn-products:hover, .btn-products:focus {
    background: #f68326;
    color: #fff;
}

aside {
    margin-top: 73px;
}

@media screen and (min-width: 480px) {
    aside {
        margin-top: 111px;
    }
}

@media screen and (min-width: 640px) {
    aside {
        margin-top: 148px;
    }
}

.tpl__arrow--block {
    padding-bottom: 90px;
}


/* -------------------------------------------------- */
/* 09/26追記                                          */
/* -------------------------------------------------- */
.shooting-info {
    text-align: right;
    font-size: 12px;
    font-size: 0.75rem;
    margin-top: 10px;
    line-height: 1.2;
}
.sp {
		display:block;
	}
	.pc {
		display:none;
	}

@media screen and (min-width: 640px) {
    .shooting-info {
        font-size: 13px;
        font-size: 0.8125rem;
    }
	
	.sp {
		display:none;
	}
	.pc {
		display: block;
	}
}