/*
Theme Name: Tanaka Hiroro Architects Theme
Theme URI: http://tanakahiroto.com/
Author: Brueno Design
Author URI: http://brueno.jp/
Description: This is "Tanaka Hiroro Architects" theme.
*/

/*
1: reset
2: common
3: header
4: footer
5: main
*/



/*
1: reset
*/

html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

article, aside, details, figcaption, figure, footer, header, hgroup,
main, menu, nav, section, summary {
    display: block
}

audio, canvas, progress, video {
    display: inline-block;
    vertical-align: baseline
}

audio:not([controls]) {
    display: none;
    height: 0
}

[hidden], template {
    display: none
}

a {
    background-color: transparent
}

a:active,
a:hover {
    outline: 0
}

abbr[title] {
    border-bottom: 1px dotted
}

b, strong {
    font-weight: 700
}

dfn {
    font-style: italic
}

mark {
    background: #ff0;
    color: #000
}

small {
    font-size: 80%
}

sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative
}

sup {
    top: -.5em
}

sub {
    bottom: -.25em
}

svg:not(:root) {
    overflow: hidden
}

hr {
    box-sizing: content-box
}

pre {
    overflow: auto
}

code, kbd, pre, samp {
    font-family: monospace, monospace;
    font-size: 1em
}

button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
    margin: 0
}

button {
    overflow: visible
}

button, select {
    text-transform: none
}

button, html input[type="button"], input[type="reset"], input[type="submit"] {
    -webkit-appearance: button;
    cursor: pointer
}

button[disabled], html input[disabled] {
    cursor: default
}

button::-moz-focus-inner, input::-moz-focus-inner {
    border: 0;
    padding: 0
}

input {
    line-height: normal
}

input[type="checkbox"], input[type="radio"] {
    box-sizing: border-box;
    padding: 0
}

input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button {
    height: auto
}

input[type="search"] {
    -webkit-appearance: textfield;
    box-sizing: content-box
}

input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none
}

fieldset {
    border: 1px solid silver
}

textarea {
    overflow: auto
}

optgroup {
    font-weight: 700
}

html {
    overflow-y: scroll
}

html, body, div, span {
    border: 0
}

html, body, div, span, object {
    margin: 0;
    padding: 0;
    outline: 0
}

iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite,
code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b,
i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption,
tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer,
header, hgroup, menu, nav, section, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0
}

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

ul li {
    list-style: none
}

object, embed {
    border: 0;
    vertical-align: bottom;
    outline: none
}

blockquote, q {
    quotes: none
}

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

a {
    margin: 0;
    padding: 0;
    border: 0;
    background: 0 0;
    outline: 0
}

a img {
    border: none;
    text-decoration: none;
    outline: 0
}

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

caption, th {
    text-align: left
}

sup {
    vertical-align: text-top
}

sub {
    vertical-align: text-bottom
}

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0
}

input, select {
    vertical-align: middle
}

label {
    cursor: pointer
}

img {
    border: none;
    vertical-align: bottom;
	touch-callout: none;
	-moz-user-select: none; /* These user-select properties are inheritable, used to prevent text selection */
    -webkit-user-select: none;
    -ms-user-select: none; /* From IE10 only */
    user-select: none; /* Not valid CSS yet, as of July 2012 */
    -webkit-user-drag: none; /* Prevents dragging of images/divs etc */
    user-drag: none;
	pointer-events: none;
}





/*
2: common
*/

@font-face {
    font-family:"notosans_m";
    src:url("common/font/notosans_m.eot?#iefix");
    src:url("common/font/notosans_m.eot?#iefix") format("eot"),
    url("common/font/notosans_m.woff") format("woff"),
    url("common/font/notosans_m.ttf") format("truetype");
}

html {
}

body {
    -webkit-text-size-adjust: 100%;
	font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size: 13px;
	color: #000;
    line-height: 1.95;
	letter-spacing: 0.05em;
	background: #fff;
}

input, textarea {
   font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
}

* html body, * html input, * html textarea {
   font-family: 'notosans_m',"Helvetica Neue",Helvetica,Arial,sans-serif;
}

p a {
	position: relative;
	display: inline-block;
    -webkit-tap-highlight-color: rgba(255, 255, 255, .5);
    -webkit-transition: color .4s cubic-bezier(.22, .57, .27, .98) 0;
    transition: .4s;
}

main p a::after {
	position: absolute;
	bottom: 2px;
	left: 0;
	content: '';
	width: 0%;
	height: 1px;
	background-color: #000;
	transition: .4s;
}

body.pc main p a:hover::after {
	width: 100%;
}

a:link {
    color: #000;
    text-decoration: none;
}

a:visited {
    color: #000;
}

body.pc a:hover {
    color: #000;
    text-decoration: none;
}

a:active {
    color: #000;
}

::-moz-selection {
    background: rgba(255, 255, 255, .5);
}

::selection {
    background: rgba(255, 255, 255, 1);
}

* {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -ms-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smoothing: antialiased
}

img {
	width: 100%;
}

/* clearFix */

.clearFix:before,
.clearFix:after{
	content:"";
	display: table;
}
.clearFix:after{
	clear:both;
}





/*
3: header
*/

header {
    position: fixed;
    top: 0;
    left: 10vw;
    z-index: 10;
}

header h1 a {
    position: absolute;
    top: 10vh;
    display: block;
    width: 70px;
    height: 157px;
    text-indent: -9999px;
    background: url(common/img/header_logotype_m.svg) no-repeat;
    transition: opacity 0.5s 0s ease;
}

body.pc header h1 a:hover {
    opacity: 0.4;
}

header h2 {
    position: absolute;
    top: calc(157px + 20vh);
    width: 8em;
}

header nav ul {
    position: absolute;
    top: calc(157px + 20vh);
    left: calc(6.5em + 8vw);
}

header nav ul li a {
    transition: opacity 0.5s 0s ease;
}



header nav ul.sp {
    position: fixed;
    top: calc(8vw - 7px);
    left: 7vw;
    font-size: 18px;
    line-height: 2.2;
}

header nav ul.sp li {
    transform: translateY(10px);
    opacity: 0;
    visibility: hidden;
}

header nav ul.sp li:first-of-type {
    transition: all 0.5s 0s ease;
}

header nav ul.sp li:nth-of-type(2) {
    transition: all 0.5s 0.07s ease;
}

header nav ul.sp li:nth-of-type(3) {
    transition: all 0.5s 0.14s ease;
}

header nav ul.sp li:nth-of-type(4) {
    transition: all 0.5s 0.21s ease;
}

header nav ul.sp.on li {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

header nav ul.sp li a {
    display: block;
}

header nav ul.sp li.top a {
    display: block;
}

header nav ul.sp li.insta a {
    display: block;
    /* margin-top: calc(100vh - 175px); */
    margin-top: calc(100vh - 208px);
    width: 18px;
    height: 18px;
    text-indent: -9999px;
    background: url(common/img/header_insta.svg) no-repeat;
}

body.pc header nav ul li a:hover,
body.pc header nav ul.sp li a:hover{
    opacity: 0.4;
}

header nav ul.pc {
    display: block;
}

header nav ul.sp {
    display: none;
}

header .navBase {
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    width: 100vw;
    height: 100vh;
    background: #fff;
    opacity: 0;
    visibility: hidden;
    transition: all 1s 0.5s ease;
}

header .navBase.on {
    opacity: 1;
    visibility: visible;
    transition: all 1s 0s ease;
}

@media only screen and (max-width: 1200px) {
    header {
        left: 7vw;
    }
}

@media only screen and (max-width: 800px) {
    header h1 a {
        top: 10vh;
    }
    header h2 {
        font-size: 12px;
    }
    header nav ul {
        left: 0;
        top: calc(100vh - 6vw - 40px);
        font-size: 12px;
    }
}

@media only screen and (max-width: 600px) {
    header {
        left: auto;
        right: 7vw;
    }
    header h1 a {
        top: 8vw;
        right: 0;
        width: 18px;
        height: 234px;
        background: url(common/img/header_logotype_s.svg) no-repeat;
    }
    header h2 {
        right: -32px;
        top: calc(100vh - 85px);
        width: 8em;
        font-size: 10px;
        line-height: 1.4;
        transform: rotate(90deg);
    }
    header nav ul.pc {
        display: none;
    }
    header nav ul.sp {
        display: block;
    }
    header .navBase {
        display: block;
    }
}

@media only screen and (max-width: 600px) and (max-height: 425px) {
    header h2 {
        display: none;
    }
}





/*
4: footer


*/

footer {
    margin-left: calc(26vw + 10.7em);
    padding-bottom: 15px;
}

footer p {
    font-size: 10px;
}

@media only screen and (max-width: 1200px) {
    footer {
        margin-left: calc(23vw + 10.7em);
    }
}

@media only screen and (max-width: 800px) {
    footer {
        margin-left: calc(14vw + 7.5em);
        padding-bottom: 30px;
    }
}

@media only screen and (max-width: 600px) {
    footer {
        margin-left: 5vw;
        padding-bottom: 15px;
    }
}

@media only screen and (max-width: 600px) and (max-height: 450px) {
    footer {
    }
}





/*
5: main top
*/

main {
    margin-top: calc(157px + 20vh);
    margin-left: calc(26vw + 10.7em);
    margin-right: 10vw;
    margin-bottom: 30vh;
}

@media only screen and (max-width: 1200px) {
    main {
        margin-left: calc(23vw + 10.7em);
        margin-right: 7vw;
    }
}

@media only screen and (max-width: 800px) {
    main {
        margin-left: calc(14vw + 7.5em);
        
    }
}

@media only screen and (max-width: 600px) {
    main {
        margin-top: calc(50vh - 26vw); /* center */
        margin-top: calc(80vh - 52vw - 20px);
        margin-right: calc(16vw + 18px);
        margin-left: 5vw;
        
    }
}

@media only screen and (max-width: 600px) and (max-height: 450px) {
    main {
        margin-top: calc(100vh - 56vw);
    }
}



/* works */
#works {
    padding-top: 6px;
}

#works .contsBox {
    position: relative;
    margin-top: 6vh;
    background: #fff;
    /* transform: translateY(30px); */
    opacity: 0;
    visibility: hidden;
    transition: all 1s 0s ease;
}

#works .contsBox:first-of-type {
    /* transform: translateY(0); */
    margin-top: 0;
    opacity: 1;
    visibility: visible;
}
/*
#works .contsBox:nth-of-type(2) {
    transition: all 1s 0s ease;
}
#works .contsBox:nth-of-type(3) {
    transition: all 1s 0.1s ease;
}
#works .contsBox:nth-of-type(4) {
    transition: all 1s 0.2s ease;
}
#works .contsBox:nth-of-type(5) {
    transition: all 1s 0.3s ease;
}
#works .contsBox:nth-of-type(6) {
    transition: all 1s 0.4s ease;
}
#works .contsBox:nth-of-type(7) {
    transition: all 1s 0.5s ease;
}
#works .contsBox:nth-of-type(8) {
    transition: all 1s 0.6s ease;
}
#works .contsBox:nth-of-type(9) {
    transition: all 1s 0.7s ease;
}
#works .contsBox:nth-of-type(10) {
    transition: all 1s 0.8 ease;
}
*/
#works.on .contsBox {
    /* transform: translateY(0); */
    opacity: 1;
    visibility: visible;
}

#works.on .contsBox.off {
    opacity: 0;
}

#works .contsBox a {
    display: block;
    width: 100%;
    height: 100%;
}

#works .contsBox a img {
    transition: all 0.7s 0s ease;
}

body.pc #works .contsBox a:hover img {
    /* opacity: 0; */
    opacity: 0.6;
}

#works .contsBox a .guide {
    position: absolute;
    top: -6px;
    left: 0;
    display: none;
}

#works .contsBox a .guide h3 {
    transform: translateY(0);
    opacity: 0;
    transition: all 0.5s 0s ease;
}

body.pc #works .contsBox a:hover .guide h3 {
    transform: translateY(0);
    opacity: 1;
}

#works .contsBox a .guide .more {
    display: block;
    width: 50px;
    height: 5px;
    margin-top: 10px;
    text-indent: -9999px;
    background: url(common/img/icon_arrow_long.svg) no-repeat;
    transform: scaleX(0);
    transform-origin: 0;
    opacity: 0;
    transition: all 0.5s 0s ease;
}

body.pc #works .contsBox a:hover .guide .more {
    transform: scaleX(1);
    opacity: 1;
}
/* works */



/* about */
#about {
    padding-top: calc(154px + 20vh);
    /* padding-bottom: 30vh; */
    /* font-family: "Noto Serif JP", serif; */
}

#about h2 {
    display: none;
    margin-bottom: 60px;
}

@media only screen and (max-width: 600px) {
    #about h2 {
        display: block;
    }
}

#about .main p {
    margin-top: 15px;
    font-size: 17px;
    font-size: 15px;
    line-height: 2.3;
}

#about .main p:first-of-type {
    margin-top: 0;
}

#about .profile {
    position: relative;
    /* height: 120px; */
    margin-top: 100px;
}

#about .profile h3 {
    /*
    position: absolute;
    top: -5px;
    left: 150px;
    */
    line-height: 1.95;
}

#about .profile p {
    /*
    position: absolute;
    top: 20px;
    left: 150px;
    */
    margin-top: 20px;
    line-height: 1.95;
}

#about .profile img {
    /*
    position: absolute;
    top: 0;
    left: 0;
    */
    width: 140px;
    margin-top: 26px;
    /* filter: grayscale(100%); */
}

#about .add {
    margin-top: 115px;
}

#about .add p {
    margin-top: 20px;
}

#about .add p:first-of-type {
    margin-top: 0;
}

#about .main p br.break1,
#about .main p br.break2,
#about .main p br.break3,
#about .main p br.break4 {
    display: none;
}

@media only screen and (max-width: 1490px) {
    #about .main p br.break1 {
        display: inline;
    }
}

@media only screen and (max-width: 1190px) {
    #about .main p br.break2 {
        display: inline;
    }
}

@media only screen and (max-width: 1110px) {
    #about .main p br.break3 {
        display: inline;
    }
}

@media only screen and (max-width: 935px) {
    #about .main p br.break4 {
        display: inline;
    }
}

@media only screen and (max-width: 600px) {
    #about .main p br,
    #about .main p br.break1,
    #about .main p br.break2,
    #about .main p br.break3,
    #about .main p br.break4 {
        display: none;
    }
    #about .main .profile p br {
        display: block;
    }
} 
/* about */





/*
5: main works
*/

body.works main {
    margin-bottom: 120px;
}

body.works h3.tit {
    /* margin-bottom: 20px; */
    margin-bottom: 40px;
}

body.works #photos {
    padding-top: 6px;
}

body.works #photos .contsBox {
    position: relative;
    margin-top: 10px;
    transition: all 1s 0s ease;
}

body.works #photos .contsBox:first-of-type {
    margin-top: 0;
}

body.works #photos .contsBox a {
    display: block;
    width: 100%;
    height: 100%;
    cursor: zoom-in;
}

body.works #photos .contsBox a img {
    transition: all 0.5s 0s ease;
}

body.pc.works #photos .contsBox a:hover img {
    opacity: 0.6;
}

body.works #more {
    margin-top: 70px;
    
}

body.works #more .exp {
    /* margin-top: 120px; */
}

body.works #more .exp .credit {
    margin-top: 60px;
    font-size: 11px;
}

/* fancybox */

.fancybox__container {
  --fancybox-color: #999;
  --fancybox-bg: #fff;

  --carousel-button-svg-width: 32px;
  --carousel-button-svg-height: 32px;

  --carousel-button-svg-stroke-width: 1.2;
  --carousel-button-svg-filter: none;
}

.fancybox__nav {
  --carousel-button-svg-width: 36px;
  --carousel-button-svg-height: 36px;

  --carousel-button-svg-stroke-width: 1;
}

.has-image[data-image-fit="contain-w"] {
  padding: 0;
  overflow: hidden;
}

.fancybox__toolbar {
    background: none;
}

.carousel__button.is-close {
    top: 8px !important;
    right: 8px !important;
}

.carousel__button svg {
    width: 20px !important;
    height: 20px !important;
}

/* fancybox */







