


@charset "UTF-8";

/* Keep the restored PHOTO layout from inheriting the oversized shared wave width. */
html,
body {
	overflow-x: hidden;
}

a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline
}

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

html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%
}

body {
	line-height: 1
}

main {
	display: block
}

ol,
ul {
	list-style: none
}

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

blockquote,
q {
	quotes: none
}

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

code,
kbd,
samp {
	font-size: 1em
}

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

caption,
th {
	text-align: left
}

button,
input,
select,
textarea {
	margin: 0;
	padding: 0;
	background: 0 0;
	border: 1px solid #000;
	border-radius: 0;
	outline: 0
}

button {
	color: inherit;
	cursor: pointer;
	font: inherit;
	line-height: inherit
}

button:disabled {
	cursor: default
}

textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	font-size: 16px;
	min-height: 2em;
	overflow: auto
}

select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	padding: 3px 5px
}

select::-ms-expand {
	display: none
}

body {
	font-family: Asap, "Zen Kaku Gothic New", tbchibirgothicplusk-pro, "Noto Sans JP", Roboto, YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Arial, "メイリオ", Meiryo, sans-serif;
	font-size: 16px
}

*,
::after,
::before {
	-webkit-box-sizing: border-box;
	box-sizing: border-box
}

.selectWrap {
	position: relative;
	display: inline-block
}

.selectWrap select {
	height: 27px;
	background: 0 0;
	position: relative;
	z-index: 1;
	padding-right: 15px
}

.selectWrap::before {
	content: '';
	position: absolute;
	z-index: 0;
	top: 0;
	right: 0;
	background: #fff;
	height: 100%;
	width: 30px
}

.selectWrap::after {
	content: '';
	position: absolute;
	z-index: 0;
	top: 0;
	bottom: 0;
	margin: auto 0;
	right: 6px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 4px 0 4px;
	border-color: #000 transparent transparent transparent
}

html {
	font-size: 62.5%;
	font-weight: 400
}

body {
	font-size: 1.6em;
	line-height: 1.9em
}

@media screen and (max-width:959px) {
	body {
		font-size: 1.6em
	}
}

p {
	text-align: left;
	font-size: 1.6rem;
	color: #333;
	line-height: 2.5
}

@media screen and (max-width:599px) {
	p {
		font-size: 1.4rem;
		line-height: 2
	}
}

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

@media screen and (min-width:960px) {
	a {
		display: inline-block;
		-webkit-transition: all .4s;
		transition: all .4s
	}
}

@media screen and (min-width:960px) {
	a:hover {
		opacity: .8
	}
}

img {
	max-width: 100%;
	height: auto
}

@media only screen and (min-width:600px) and (max-width:959px) {
	.sp_only {
		display: block !important
	}
}

@media screen and (min-width:960px) {
	.sp_only {
		display: none !important
	}
}

@media screen and (max-width:599px) {
	.sp_only {
		display: block !important
	}
}

@media only screen and (min-width:600px) and (max-width:959px) {
	.pc_only {
		display: none !important
	}
}

@media screen and (min-width:960px) {
	.pc_only {
		display: block !important
	}
}

@media screen and (max-width:599px) {
	.pc_only {
		display: none !important
	}
}






/* --------------------
  アーカイブページ 
-------------------- */

.section-title {
	font-size: 4rem;
	letter-spacing: .1em;
	color: #333;
	text-align: center;
  margin: 3em auto .5em;
  font-family:  "Zen Kaku Gothic New", Roboto, sans-serif;
}

.photo-archive-label {
	margin: 5rem auto 2rem;
	padding-top: clamp(8rem, 14vw, 11rem);
	font: italic 400 11.5px/1.4 Arial, sans-serif;
	letter-spacing: .16em;
	text-align: center;
}
.photo-archive-label + .section-title { margin-top: 0; }

@media only screen and (min-width:600px) and (max-width:959px) {
	.section-title {
		font-size: 3rem
	}
}

@media screen and (max-width:599px) {
	.section-title {
		font-size: 2.4rem;
		line-height: 1.3
	}
}

.photo-text {
  text-align: center;
  letter-spacing: .1em;
}


.photo-content {
  padding: 80px 6vw 120px;
}

.photo-content__inner {
  max-width: 1120px;
  margin: 0 auto;
}

.photo-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 80px 40px;
}

.photo-list__item {
  margin: 0;
}

.photo-list__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.photo-list__image {
  margin: 0 0 10px;
  overflow: hidden;
}

.photo-list__image img {
  display: block;
  width: 100%;
  height: auto;
}

.photo-list__date {
  font-size: 13px;
  letter-spacing: 0.08em;
  color: #777;
  margin: 0 0 8px;
      letter-spacing: .1em;
}

.photo-list__title {
  font-size: 22px;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
  font-family:  "Zen Kaku Gothic New", Roboto, sans-serif;
  letter-spacing: .1em;
}

.photo-list__link:hover .photo-list__image img {
  opacity: 0.85;
}

@media (max-width: 767px) {
  .photo-content {
    padding: 56px 24px 96px;
    margin-left: 20px;
  }

  .photo-list {
    grid-template-columns: 1fr;
    gap: 56px;
  }
}


/* --------------------
  シングルページ 
-------------------- */

#photo.photo-single {
  padding: 96px 6vw 120px;
}

#photo .inner {
  max-width: 1040px;
  margin: 10em auto 0;
}

.photo-single__article {
  width: 100%;
}

.photo-single__header {
  margin: 5em auto;
}

.photo-single__date {
  margin: 0 0 10px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.12em;
  color: #777;
}
.photo-single__label {
	margin: 0 0 1.25rem;
	font: italic 400 11.5px/1.4 Arial, sans-serif;
	letter-spacing: .16em;
}

.photo-single__title {
  margin: 0;
  font-size: clamp(40px, 7vw, 96px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.04em;
    font-family:  "Zen Kaku Gothic New", Roboto, sans-serif;
    letter-spacing: .1em;
}

.photo-single__body {
  max-width: 880px;
  margin: 5em auto;
}

.photo-single__body p {
  margin: 48px 0;
  font-size: 14px;
  line-height: 2;
  color: #444;
}

.photo-single__body figure {
  margin: 0 0 80px;
}

.photo-single__body img {
  display: block;
  width: 100%;
  height: auto;
}

/* WordPress画像ブロック */
.photo-single__body .wp-block-image {
  margin-bottom: 80px;
}

.photo-single__body .wp-block-image img {
  width: 100%;
  height: auto;
}

/* キャプション */
.photo-single__body figcaption,
.photo-single__body .wp-element-caption {
  margin-top: 12px;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.04em;
  color: #777;
  text-align: left;
}

/* ギャラリーブロック */
.photo-single__body .wp-block-gallery {
  margin: 0 0 80px;
  gap: 24px;
}

.photo-single__body .wp-block-gallery figure {
  margin: 0;
}

/* 幅広・全幅指定を使ったとき */
.photo-single__body .alignwide {
  width: min(1040px, 100vw - 48px);
  max-width: none;
  margin-left: 50%;
  transform: translateX(-50%);
}

.photo-single__body .alignfull {
  width: 100vw;
  max-width: none;
  margin-left: 50%;
  transform: translateX(-50%);
}

/* 前後記事ナビ */
.photo-single__nav {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  margin-top: 120px;
  padding-top: 32px;
  border-top: 1px solid #ddd;
}

.photo-single__nav-prev,
.photo-single__nav-next {
  width: 50%;
  font-size: 13px;
  line-height: 1.7;
}

.photo-single__nav-next {
  text-align: right;
}

.photo-single__nav a {
  color: inherit;
  text-decoration: none;
}

.photo-single__nav a:hover {
  opacity: 0.6;
}

/* 一覧へ */
.photo-single__back {
  margin-top: 48px;
  text-align: center;
}

.photo-single__back a {
  display: inline-block;
  color: inherit;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-decoration: none;
}

.photo-single__back a:hover {
  opacity: 0.6;
}

.photo-single__body figcaption,
.photo-single__body .wp-element-caption {
  display: none;
}

/* =========================
  Mobile
========================= */

@media screen and (max-width: 599px) {
    #wrapper {
        margin-left: 0;
    }
  }

@media (max-width: 767px) {
  #photo.photo-single {
    padding: 64px 20px 96px;
  }

  #photo .inner {
    max-width: none;
  }

  .photo-single__header {
    margin: 50px auto;
  }

  .photo-single__date {
    font-size: 11px;
    margin-bottom: 12px;
  }

  .photo-single__title {
    font-size: 36px;
    line-height: 1.15;
  }

  .photo-single__body {
    max-width: none;
    margin: 2em auto;
  }

  .photo-single__body p {
    margin: 32px 0;
    font-size: 13px;
    line-height: 2;
  }

  .photo-single__body figure,
  .photo-single__body .wp-block-image {
    margin-bottom: 48px;
  }

  .photo-single__body .wp-block-gallery {
    gap: 12px;
    margin-bottom: 48px;
  }

  .photo-single__body figcaption,
  .photo-single__body .wp-element-caption {
    margin-top: 8px;
    font-size: 10px;
  }

  .photo-single__body .alignwide,
  .photo-single__body .alignfull {
    width: 100%;
    margin-left: 0;
    transform: none;
  }

  .photo-single__nav {
    margin-top: 80px;
  }

  .photo-single__nav-prev,
  .photo-single__nav-next {
    width: 50%;
  }

  .photo-single__nav-prev {
    text-align: left;
  }

  .photo-single__nav-next {
    text-align: right;
  }
}


/* =========================
  Photo roll reveal animation
  The base state remains visible when JavaScript is unavailable.
========================= */

.photo-single__body .wp-block-image {
  position: relative;
  overflow: visible;
  margin: 0 auto 60px;
}

.photo-single__body .wp-block-image img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
  object-fit: initial;
  transform: none;
  opacity: 1;
  visibility: visible;
  clip-path: none;
  filter: none;
}

.photo-single__body .wp-block-image figcaption,
.photo-single__body .wp-block-image .wp-element-caption {
  opacity: 1;
  transform: translateY(0);
}

/* Apply the original reveal state only after JavaScript initializes safely. */
html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready {
  overflow: hidden;
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready img {
  transform: translateY(24px) scale(1.03);
  opacity: 0;
  transition:
    transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.8s ease;
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: translateY(0);
  transition: transform 1.1s cubic-bezier(0.76, 0, 0.24, 1);
  pointer-events: none;
  z-index: 2;
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready figcaption,
html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready .wp-element-caption {
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.8s ease 0.45s,
    transform 0.8s ease 0.45s;
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready.is-visible img {
  transform: translateY(0) scale(1);
  opacity: 1;
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready.is-visible::after {
  transform: translateY(100%);
}

html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready.is-visible figcaption,
html.has-photo-reveal .photo-single__body .wp-block-image.is-reveal-ready.is-visible .wp-element-caption {
  opacity: 1;
  transform: translateY(0);
}
