@charset "utf-8";
:root {
    --base: 16.5px;
    --title: 21px;
    --shoulder: 11.5px;
    --date: 14px;
    --caption: 14px;
    --tagline: 19.5px;
    --wrap: 960px;
 }
@font-face { font-family: YuGothicM; src: local("Yu Gothic Medium"); }
@font-face {
    font-family: 'Gotham Narrow Book';
    font-style: normal;
    font-weight: normal;
    src: local('Gotham Narrow Book'), url('../fonts/GothamNarrow-Book.woff') format('woff');
}
.sponly { display: none; }
.pconly-inline { display: inline }
.pconly { display: block }
a { text-decoration: none; }

.altimg { height: 0; line-height: 1.2; overflow: hidden; }
.lazy {
    opacity: 0.0;
    transition: all 500ms 0ms ease-out;
}

.lazyEnd {
    opacity: 1.0;
}

#suntory_contents {
    position: relative;
    width: 100vw;
    box-sizing: border-box;
    font-family:"Sawarabi Gothic", -apple-system,BlinkMacSystemFont,"Helvetica Neue","游ゴシック Medium",YuGothic,YuGothicM,"Hiragino Kaku Gothic ProN",メイリオ,Meiryo,sans-serif;
}
.en { font-family:"Gotham Narrow Book",-apple-system,BlinkMacSystemFont,"Helvetica Neue","游ゴシック Medium",YuGothic,YuGothicM,"Hiragino Kaku Gothic ProN",メイリオ,Meiryo,sans-serif; }

.lead-separator {
    width: 100px;
    height: 1px;
    margin: 0 auto;
    background-color: #b4b4b4;
    border: none;
}

.nav-content {
    -webkit-transition: background .3s ease 0s;
    transition: background .3s ease 0s;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 30;
    width: 100%;
    height: 60px;
    background-color: rgba(0,104,98,0.3);
}
    .nav-content.is-fixed {
        position: fixed;
        -webkit-transition: background .3s ease 0s;
        transition: background .3s ease 0s;
        background-color: rgba(114,168,192,0.7);
    }

.nav-menu {
    width: 960px;
    height: 60px;
    margin: 0 auto;
}

.nav-menu h1 {
    margin: 6px 0 0 20px;
    width: 77px;
    height: 48px;
}
.nav-menu h1 a {
    display: block;
    width: 77px;
    padding-top: 48px;
    background: url(../images/logo-w.svg) no-repeat 0 0;
    background-size: 77px;
}
.nav-menu li {
    display: block;
    float: left;
    margin-right: 25px;
}
.nav-menu li:not(:first-child) {
    padding-top: 23px;
}

.nav-menu li:not(:first-child) a {
    display: block;
    padding-top: 13px;
}
.nav-about {
    width: 58px;
    background: url(../images/nav-about.svg) no-repeat 0 0;
    background-size: 58px;
}
.nav-interview {
    width: 93px;
    background: url(../images/nav-interview.svg) no-repeat 0 0;
    background-size: 93px;
}
.nav-project {
    width: 74px;
    background: url(../images/nav-project.svg) no-repeat 0 0;
    background-size: 74px;
}


.nav-whatsnew {
    position: absolute;
    top: 0;
    left: calc(50% + 100px);
    box-sizing: border-box;
    width: 404px;
    height: 60px;
    padding: 10px 20px;
    background-color: rgba(0,104,98,0.3);
}

.nav-whatsnew h2 {
    color: #c8ea0e;
    font-size: 15px;
    margin-bottom: 8px;
}

.nav-whatsnew p {
    font-size: 14px;
    letter-spacing: -0.5px;
}
.nav-whatsnew a {
    color: #fff;
}
.nav-content a:hover {
    text-decoration: underline;
}
.scroll {
    transition: all 2s 2.3s ease-out;
    display: block;
    position: absolute;
    box-sizing: border-box;
    bottom: 60px;
    right: calc(50% - 380px);
    width: 70px;
    height: 70px;
    padding-top: 20px;
    color: #fff; 
    font-size: var(--date);
    text-align: center;
    border-radius: 35px;
    background: rgba(0,104,98,0.3) url(../images/scroll-arrow.png) no-repeat 50% 75%;
    background-size: 20px;
    animation: bounce 4s ease infinite normal 0s none running;
    opacity: 0;
}
.scroll.end {
    opacity: 1;
}

.scroll.hidden {
    transition: all 1s 0s ease-out;
    opacity: 0;
}
@keyframes bounce {
    0%, 25%, 5%, 12.5%, 20%, 100% {
        transform: translateY(0px);
    }
    10% {
        transform: translateY(-10px);
    }
    15% {
        transform: translateY(-5px);
    }
}


.background {
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}
.background.is-fixed {
    position: fixed;
}
.background .img {
    -webkit-transition: opacity 1s ease 0s;
    transition: opacity 1s ease 0s;
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    opacity: 0;
}
    .img.hero { background: url(../images/hero.jpg) no-repeat 50% 50%; background-size: cover; z-index: 3; }
    .img.about-01 { background: url(../images/about-01.jpg) no-repeat 50% 50%; background-size: cover; z-index: 2; }
    .img.about-02 { background: url(../images/about-02.jpg) no-repeat 50% 50%; background-size: cover; z-index: 2; }
    .img.about-03 { background: url(../images/about-03.jpg) no-repeat 50% 50%; background-size: cover; z-index: 2; }
    .img.about-04 { background: url(../images/about-04.jpg) no-repeat 50% 50%; background-size: cover; z-index: 2; }
    .img.project-01 { background: url(../images/projects.jpg) no-repeat 50% 50%; background-size: cover; z-index: 1; }
 
.background .img.is-visible {
    -webkit-transition: opacity 1s ease 0s;
    transition: opacity 1s ease 0s;
    opacity: 1;
}
.background .img.project-01.is-visible {
    -webkit-transition: opacity 100ms ease 0s;
    transition: opacity 100ms ease 0s;
    opacity: 1;
}    

 .body {
    box-sizing: border-box;
    width: 100vw;
}

.body.about-01, .body.about-02, .body.about-03, .body.about-04 {
    width: 960px;
    margin: 0 auto;
    padding: 75px 50px;
    min-height: 100vh;
    line-height: 2.1;
    -webkit-transition: color 500ms ease 0s;
    transition: color 500ms ease 0s;
    color: #000;
}
.body.white {
    -webkit-transition: color 500ms ease 0s;
    transition: color 500ms ease 0s;
    color: #fff;
}
.body.about-02,  .body.about-04 {
    padding: 75px 50px 75px 590px; 
}

.body,.interview>div,.projects>div:not(.banner) {
    position: relative;
    z-index: 20;
    width: var(--wrap);
    margin: 0 auto;
}

.projects, .interview, .links {
    position: relative;
    z-index: 22;
    width: 100%;
}   

.body.hero {
    position: relative;
    width: 960px;
    top: 0;
    margin: 0 auto;
    height: calc(100vh - 140px);
}
.body.hero .title {
    transition: all 2s .3s ease-out;
    position: absolute;
    top: 145px;
    left: 50%;
    width: 200px;
    padding-top: 123px;
    background: url(../images/logo.svg) no-repeat 0 0;
    background-size: 200px;
    transform: translateX(-100px);
    opacity: 0;
}
.body.hero .title.end {
    opacity: 1;
}
.body.hero .brands {
    transition: all 2s 1.3s ease-out;
    position: absolute;
    top: 311px;
    left: 50%;
    width: 410px;
    margin: 0 auto;
    padding-top: 54px;
    background: url(../images/brandmix.svg) no-repeat 50% 50%;
    background-size: 410px;
    transform: translateX(-205px);
    opacity: 0;
}
.body.hero .brands.end {
    opacity: 1;
}


/******************************************************
    Interview
 ******************************************************/
 .interview {
    width: 100vw;
    overflow: hidden;
    min-height: 100vh;
}

.interview:before {
    transition: all 4s 0s ease-out;
    content: '';
    width: calc(100vw + 100px);
    background: url(../images/sp-movie.jpg) no-repeat 50% 50%;
    background-size: calc(100vw + 100px); 
    position: absolute;
    top: -50px;
    left: -50px;
    /* right: -50px;
    bottom: -50px; */
    filter: blur(50px);
    opacity: 0.5;
}

.interview.lazyEnd:before {
    transition: all 4s 0 ease-out;
    content: '';
    width: 100vw;
    background: url(../images/sp-movie.jpg) no-repeat 50% 50%;
    background-size: cover; 
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    filter: blur(0);
    opacity: 1;
}

.interview>div {
    width: 960px;
    padding: 80px 0;
}

.interview .category {
    width: 83px;
    padding-top: 12px;
    background: url(../images/title-interview.svg) no-repeat 0 0;
    background-size: 83px;
}

.interview .title {
    margin: 33px auto;
    font-size: var(--title);
    color: #6c6c6c;
    line-height: 1;
    text-align: center;
}

.movie {
    position: relative;
    width: 672px;
    height: 378px;
    overflow: hidden;
    margin: 30px auto 25px;
}

.movie .posterframe, .movie .btn-play,.movie .youtube {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.movie .posterframe {
    background: url(../images/posterframe.jpg) no-repeat 0 0;
    background-size: 672px;
}
.movie .btn-play {
    transition: opacity 0.3s ease 0s; 
    background: url(../images/btn-play.png) no-repeat 50% 50%;
    background-size: 92px;
}
.movie .btn-play:hover {
    transition: opacity 0.3s ease 0s; 
    opacity: 0.8;
}
.movie .posterframe, .movie .btn-play {
    display: none;
}
.movie .youtube {
    display: block;
}
.movie .youtube.play {
    display: block;
}

.interview .interviewed {
    position: relative;
    display: block;
    color: #fff;
    height: 100px;
    float: left;
    margin-bottom: 40px;
}

.interviewed.suntory {
    margin-left: 143px;
    width: 434px;
    background: url(../images/thumb-okinaka.jpg) no-repeat bottom left;
    background-size: 100px;
}
.interviewed.snowpeak {
    width: 238px;
    background: url(../images/thumb-yamai.jpg) no-repeat bottom left;
    background-size: 100px;
}
.interviewed.snowpeak:after {
    clear:both;
    content:'';
}
.interviewed .shoulder {
    position: absolute;
    left: 110px;
    bottom: 27px;
    font-size: var(--shoulder);
    line-height: 1.73;
}
.interviewed .name {
    position: absolute;
    left: 110px;
    bottom: 0;

}
.linkto {
    display: inline-block;
    width: 147px;
    margin: 0 auto 0 143px;
    padding-right: 20px;
    background: url(../images/bullet.png) no-repeat right center;
    background-size: 7px;
    color: #fff;
    font-size: var(--date);
    line-height: 1.1;
    text-decoration: none;
    text-align: left;
}

.linkto:hover {
    transition: text-decoration 0.3s ease 0s; 
    text-decoration: underline;
}

/******************************************************
    Project
 ******************************************************/

 .projects {
    position: relative;
    width: 100%;
    padding: 460px 0 100px;
    box-sizing: border-box;
    line-height: 1.85;
    color: #6c6c6c;
    background: transparent url(../images/project-mask.png) repeat-x 0 0;
    background-size: 50px;
}


.projects .category {
    position: relative;
    left: 50%;
    width: 80px;
    margin-left: -480px;
    padding-top: 18px;
    background: url(../images/title-project.svg) no-repeat 0 0;
    background-size: 80px;
}

.projects .title.main {
    width: 190px;
    padding-top: 118px;
    margin: 40px auto 40px;
    background: url(../images/logo.svg) no-repeat 0 0;
    background-size: 190px;
}

.projects .lead {
    margin: 0 auto 40px;
    font-size: var(--title);
    line-height: 1.57;
    text-align: center;
}

.projects .project {
    transition: all 500ms 0ms ease-out;
    display: block;
    position: relative;
    box-sizing: border-box;
    width: 584px;
    height: 360px;
    margin: 90px 0 0;
    padding: 135px 0 0;
    border-bottom: 1px solid #b4b4b4;
}

.project .date {
    position: absolute;
    top: 146px;
    right: 45px;
    font-size: var(--date);
}
.project .title {
    position: absolute;
    top: 140px;
    left: 0;
    font-size: var(--title);
    font-weight:normal;
}

.projects .hero {
    transition: all 500ms 250ms ease-out;
    display: block;
    margin-top: 50px;
    position: absolute;
    width: 360px;
    height: 360px;
}
.projects .hero.lazyEnd {
    margin-top: 0;
}

.project .bodytext {
    position: absolute;
    top: 178px;
    left: 0;
    width: 549px;
    line-height: 1.8;
}
.projects .project:nth-child(1) { background: url(../images/project-01.png) no-repeat 0 100px;  background-size: 113px; }
.projects .project:nth-child(2) { margin: 90px 0 0 auto; background: url(../images/project-02.png) no-repeat right 100px;  background-size: 113px; }
.projects .project:nth-child(3) { background: url(../images/project-03.png) no-repeat 0 100px;  background-size: 113px; }
.projects .project:nth-child(4) { margin: 90px 0 0 auto; background: url(../images/project-04.png) no-repeat right 100px;  background-size: 113px; }
.projects .project:nth-child(1).lazyEnd { background-position:0 0; }
.projects .project:nth-child(2).lazyEnd { background-position: right 0; }
.projects .project:nth-child(3).lazyEnd { background-position: 0 0; }
.projects .project:nth-child(4).lazyEnd { background-position: right 0; }

.projects .project:nth-child(odd) .date { right: 45px; }
.projects .project:nth-child(even) .date { right: 0; }
.projects .project:nth-child(odd) .title { left: 0; }
.projects .project:nth-child(even) .title { left: 45px; }
.projects .project:nth-child(odd) .bocytext { left: 0; }
.projects .project:nth-child(even) .bodytext { left: 45px; }


.projects .project:nth-child(odd) .hero { top: 0; right: -376px; }
.projects .project:nth-child(even) .hero { top: 0; left: -376px; }

.project .comingsoon {
    position: absolute;
    bottom: 76px;
    left: 200px;
    width: 150px;
    padding-top: 22px;
    background: url(../images/comingsoon.png) no-repeat 0 0;
    background-size: 150px;
}
.projects .project:nth-child(odd) .comingsoon { left: 200px; }
.projects .project:nth-child(even) .comingsoon { left: 235px; }

.project .more {
    position: absolute;
    bottom: 16px;
    display: inline-block;
    width: 62px;
    padding-top: 13px;
    background: url(../images/btn-more.svg) no-repeat right 0;
    background-size: 62px;    
}
.projects .project:nth-child(odd) .more { right: 45px; }
.projects .project:nth-child(even) .more { right: 0; }

.project-list {
    width: 960px;
    margin: 0 auto;
}
.project-list:after {
    content:"";
    display: block;
    margin-top: 35px;
    width: 100%;
    height: 36px;
    background: url(../images/sp-project-after.png) no-repeat center top;
    background-size: 4px;
}
.staytuned {
    width: 440px;
    margin: 25px auto 0;
    text-align: center;
}
/******************************************************
    Text-Interview
 ******************************************************/
/*
 * HERO
 */

 .dialog.hero {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100vh - 140px);
    color: #fff;
    background: url(../images/interview-hero.jpg) no-repeat 50% 50%;
    background-size: cover;
}

.dialog.hero>div {
    position: absolute;
    top: 50%;
    width: 100%;
    height: 136px;
    transform: translateY(-68px);
    box-sizing: border-box;

    background-color: rgba(0,104,98,0.3);
}

.dialog.hero .title {
    margin: 26px auto 14px;
    text-align: center;
    font-size: var(--title);
}
.dialog.hero p {
    margin: 0 auto;
    font-size: var(--date);
    line-height: 1.9;
    text-align: center;
}

/*
 * PORTRAIT
 */
.dialog.portrait {
    transition: all 800ms 0ms ease-out;
    position: relative;
    box-sizing: border-box;
    width: 100%;
    height: 730px;
    padding: 125px 0;
    background: #fff;
}
.dialog.portrait.lazyEnd {
    padding: 75px 0;
}

.dialog.portrait img {
    display: block;
    width: 640px;
    margin: 0 auto 2.8vw;
}

.dialog.portrait ul {
    position: absolute;
    top: 450px;
    left: 50%;
    width: 600px;
    transform: translateX(-300px);
}
.dialog.portrait li {
    display: block;
    float: left;
}
    .dialog.portrait li:first-child {
        width: 360px;
    }
    .dialog.portrait li:last-child {
        width: 200px;
    }
    
.dialog.portrait ul:after {
    content:'';
    clear: both;
}


.portrait .shoulder {
    margin-bottom: 1.3vw;
    font-size: var(--shoulder);
    line-height: 1.59;
}
.portrait .name {
    margin-bottom: 3.6vw;
}

/*
 * インタビューメイン
 */

.text {
    position: relative;
    margin-bottom: 33vw;
    padding: 60px 0 42px;
    width: 100vw;
    height: auto;
    font-size: 15px;
    line-height: 2.16;
}

.sec04 {
    margin-bottom: 0;
    padding: 60px 0 350px;
}
.text:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100%;
    opacity: 0.15;
}
.sec01:before {
    background: url(../images/interview-01.jpg) no-repeat 50% 50%;
    background-size: cover;
}
.sec02:before {
    background: url(../images/interview-02.jpg) no-repeat 50% 50%;
    background-size: cover;
}
.sec03:before {
    background: url(../images/interview-03.jpg) no-repeat 50% 50%;
    background-size: cover;
}
.sec04:before {
    background: url(../images/interview-04.jpg) no-repeat 50% 50%;
    background-size: cover;
}
.text.sec04 {
    margin-bottom: 0;
}

.question {
    width: 969px;
    margin: 0 auto 45px;

    font-size: var(--base);
}
.question:before {
    content:'― ';
}
.answer {
    transition: all 800ms 0ms ease-out;
    box-sizing: border-box;
    width: 960px;
    margin: 0 auto 0;
}

.answer.okinaka {
    padding-top: 30px;
    padding-right: 270px;
}
.answer.yamai {
    padding-top: 10px;
    padding-left: 270px;
}


.answer.lazyEnd {
    /* margin: 0 auto;  */
    padding-top: 0;
}

.answer .name {
    display: block;
    margin-top: 50px;
}
.answer.yamai .name {
    text-align: right;
}
.answer .name:before {
    content:"（";
}
.answer .name:after {
    content:"）";
}

.tagline {
    position: relative;
    transition: all 800ms 0ms ease-out;
    margin: -80px auto 50px;
    width: 1350px;
    height: 180px;
    box-sizing: border-box;
    font-size: var(--tagline);
    line-height: 1.9;
}
.tagline.lazyEnd {
    margin-top: -180px;
}
.tag01 {
    padding: 23px 625px 0 0;
    background: url(../images/interview-tagline-01.jpg) no-repeat right top;
    background-size: 700px;
    text-align:right;
}

.tag02 {
    padding: 18px 0 0 635px;
    background: url(../images/interview-tagline-02.jpg) no-repeat left top;
    background-size: 700px;
    text-align:left;
}

.tag03 {
    padding: 20px 625px 0 0;
    background: url(../images/interview-tagline-03.jpg) no-repeat right top;
    background-size: 700px;
    text-align: right;
}

.tag04 {
    padding: 20px 0 0;;
    background: url(../images/interview-tagline-04.jpg) no-repeat left top;
    background-size: 700px;
}

/******************************************************
    Sprarkling Image
 ******************************************************/
.sparkling {
    position: relative;
    box-sizing: border-box;
    padding: 0;
    height: 920px;
    background: transparent;
}

.sparkling figure {
    transition: all 800ms 0ms ease-out;
    display: block;
    width: 640px;
    margin: -195px auto 0;
}
.sparkling figure.lazyEnd {
    margin: -245px auto 0;
}

.sparkling figure img {
    display: block;
    width: 100%;
}

.sparkling figcaption {
    margin: 12px auto;
    font-size: var(--caption);
    line-height: 1.8;
    letter-spacing: -2px;
    text-align: center;
}

.sparkling .logo, .sparkling .brandmix {
    transition: all 800ms 0ms ease-out;
    display: block;
}
.sparkling .logo {
    width: 196px;
    margin: 140px auto 0vw;
}
.sparkling .logo.lazyEnd {
    margin: 100px auto 40px;
}
.sparkling .brandmix {
    width: 410px;
    margin: 90px auto 130px;
}
.sparkling .brandmix.lazyEnd {
    margin: 40px auto 130px;
}

/******************************************************
    Footer上バナー
 ******************************************************/

 .links {
    width: 100vw;
    height: 300px;
    padding: 30px;
    box-sizing: border-box;
    background-color: #e6f3fa;
}
.links>ul {
    width: 960px;
    margin: 0 auto;
}
.links>ul:after {
    content: '';
    clear:both;
}
.link {
    display: block;
    float: left;
    width: 462px;
    height: 240px;

}

.link .water,.link .snowpeak {
    display: block;
    width: 100%;
    padding-top: 240px;
}
.link:first-child {
    margin-right: 35px;
}
.link .water {
    background: url(../images/banner-water.jpg) no-repeat 0 0;
    background-size: 462px;
}
.link .snowpeak {
    background: #000 url(../images/banner-snowpeak.jpg) no-repeat 50% 50%;
    background-size: 462px;
}
/******************************************************
    Back to Top
 ******************************************************/
.backtotop {
    position: relative;
    z-index: 30;
    box-sizing: border-box;
    width: 100%;
    height: 168px;
    padding: 113px 0 0;
    margin: 0;
    background-color: #fff;
}

.btnTop {
    box-sizing: border-box;
    display: block;
    margin: 0 auto;
    width: 50px;
    padding-top: 25px;
    background: url(../images/btn-top.svg) no-repeat 0 0;
    background-size: 50px;
}