/* fonts
---------------------------------------------------------------------- */
@font-face {
  font-family: "YakuHanJP";
  font-weight: 400;
  src: url("../fonts/YakuHanJP-Medium.woff2") format("woff2"),
       url("../fonts/YakuHanJP-Medium.woff") format("woff");
  font-display: swap;
}

@font-face {
  font-family: "YakuHanJP";
  font-weight: 700;
  src: url("../fonts/YakuHanJP-Bold.woff2") format("woff2"),
       url("../fonts/YakuHanJP-Bold.woff") format("woff");
  font-display: swap;
}

/* reset
---------------------------------------------------------------------- */
a, abbr, acronym, address, applet, big, blockquote, body, caption, cite, code, dd, del, dfn, div, dl, dt, em, fieldset, form, h1, h2, h3, h4, h5, h6, html, iframe, ins, kbd, label, legend, li, object, ol, p, pre, q, s, samp, small, span, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, ul, var {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  font-family: inherit;
  font-size: 100%;
  font-weight: inherit;
  font-style: inherit;
  border: 0;
  outline: 0;
}

* { box-sizing: border-box; }

::after, ::before { box-sizing: inherit; }

html {
  overflow-y: scroll;
  height: 100%;
  font-size: 62.5%;
  line-height: 1.8;

     -moz-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
}

body {
  display: -webkit-flex;
  display:         flex;
  overflow: hidden;
  -webkit-flex-direction: column;
          flex-direction: column;
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  text-align: justify;
  letter-spacing: .025rem;
  word-break: break-all;
  font-family: "Nunito Sans", YakuHanJP, "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
  color: #735454;
  background: #fff;
  -webkit-font-feature-settings: "palt" 1;
          font-feature-settings: "palt" 1;
}

main, picture { display: block; }

ol, ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

dt { font-weight: 500; }

dd { margin-left: 0; }

a {
  display: inline-block;
  color: inherit;
  background: transparent;
}

a, a:active, a:focus, a:hover {
  text-decoration: none;
  word-break: break-all;
  outline: 0;
}

img {
  max-width: 100%;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: top;
  border: none;

  -webkit-touch-callout: none;
  -webkit-user-drag: none;
          user-drag: none;
}

::-moz-selection { color: #ad7873; }
::selection      { color: #ad7873; }

@media (max-width: 767px) {
  .pc-display { display: none !important; }
  .sp-display { display: block; }
  .pc-break   { display: none; }
}

@media (min-width: 768px) {
  body { font-size: 1.6rem; }

  .pc-display { display: block; }
  .sp-display { display: none !important; }
  .sp-break   { display: none; }
}

/* modules
---------------------------------------------------------------------- */
.screen-reader {
  position: absolute;
  overflow: hidden;
  clip: rect(1px,1px,1px,1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}

/* container */
.container {
  max-width: 480px;
  margin-right: 20px;
  margin-left: 20px;
}

@media (min-width: 520px) {
  .container {
    margin-right: auto;
    margin-left: auto;
  }
}

@media (min-width: 768px) {
  .container { max-width: 500px; }
}

/* common heading */
.common-heading {
  position: relative;
  z-index: -1;
  display: -webkit-flex;
  display:         flex;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
  height: 34px;
  letter-spacing: .04em;
  font-size: 1.8rem;
  color: #fff;
  background: #824337;
}

.common-heading .ch-north::before,
.common-heading .ch-north::after,
.common-heading .ch-south::before,
.common-heading .ch-south::after {
  position: absolute;
  width: 16px;
  height: 16px;
  content: "";
  border-radius: 100%;
  background: #fff;
}

.common-heading .ch-north::before,
.common-heading .ch-north::after { top: -8px; }

.common-heading .ch-south::before,
.common-heading .ch-south::after { bottom: -8px; }

.common-heading .ch-north::before,
.common-heading .ch-south::before { left: -8px; }

.common-heading .ch-north::after,
.common-heading .ch-south::after { right: -8px; }

@media (min-width: 768px) {
  .common-heading {
    height: 52px;
    padding-top: .1em;
    font-size: 2.8rem;
    letter-spacing: .08em;
  }

  .common-heading .ch-north::before,
  .common-heading .ch-north::after,
  .common-heading .ch-south::before,
  .common-heading .ch-south::after {
    width: 28px;
    height: 28px;
  }

  .common-heading .ch-north::before,
  .common-heading .ch-north::after { top: -14px; }

  .common-heading .ch-south::before,
  .common-heading .ch-south::after { bottom: -14px; }

  .common-heading .ch-north::before,
  .common-heading .ch-south::before { left: -14px; }

  .common-heading .ch-north::after,
  .common-heading .ch-south::after { right: -14px; }
}

/* flex box list */
.flex-box-list {
  display: -webkit-flex;
  display:         flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-justify-content: center;
          justify-content: center;
}

.flex-box-list .fbl-item {
  margin: 1em;
}

.flex-box-list .fbl-item:not(.fbl-item-fluid) {
  width: 38.80597014925373%;
  max-width: 130px;
}

.flex-box-list .fbl-txt {
  font-size: 1.4rem;
}

@media (min-width: 768px) {
  .flex-box-list .fbl-item:not(.fbl-item-fluid) {
    width: 250px;
    max-width: 250px;
    margin: 1em 0;
  }

  .flex-box-list .fbl-txt {
    font-size: 2.5rem;
  }
}

/* margin */
@media (max-width: 767px) {
  .d-sm-none { display: none; }
  .mb1rem-sm { margin-bottom: 1rem; }
}

@media (min-width: 768px) {
  .d-md-none { display: none; }
  .mb3rem-md { margin-bottom: 3rem; }
}

/* hover */
.hover-opacity {
  transition: .25s;
  opacity: 1;
}

.hover-opacity:hover {
  opacity: .75;
}

/* hero
---------------------------------------------------------------------- */
.hero {
  position: relative;
  display: -webkit-flex;
  display:         flex;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
  margin: 20px;
  background-color: #824337;
  background-image: url(/images/hero_l1.svg),
                    url(/images/hero_l2.svg),
                    url(/images/hero_r1.svg),
                    url(/images/hero_r2.svg),
                    url(/images/hero_r3.svg);
  background-repeat: no-repeat;
  background-position: -42px 21.98768689533861%,
                       -35px 88.53016142735768%,
                       calc(100% - -30px) 11.03565365025467%,
                       calc(100% - -35px) 66.21392190152801%,
                       calc(100% - -30px) 91.353711790393%;
  background-size: 130px auto,
                   102px auto,
                   103px auto,
                   139px auto,
                   102px auto;
}

.hero-north::before,
.hero-north::after,
.hero-south::before,
.hero-south::after {
  position: absolute;
  width: 46px;
  height: 46px;
  content: "";
  border-radius: 100%;
  background: #fff;
}

.hero-north::before,
.hero-north::after { top: -23px; }

.hero-south::before,
.hero-south::after { bottom: -23px; }

.hero-north::before,
.hero-south::before { left: -23px; }

.hero-north::after,
.hero-south::after { right: -23px; }

.hero-logo {
  max-width: 250px;
  width: 74.6268656716418%;
  margin-top: -60px;
  margin-bottom: 30px;
}

.hero-text {
  max-width: 222px;
  width: 66.26865671641791%;
}

@media (max-width: 767px) {
  .hero {
    width: calc(100vw - 40px);
    height: calc(100vh - 100px);
  }
}

@media (min-width: 768px) {
  .hero {
    max-width: 1030px;
    width: calc(100vw - 132px);
    height: 640px;
    margin: 66px;
    background-position: -84px 149px,
                         -60px 472px,
                         calc(100% - -53px) 81px,
                         calc(100% - -68px) 202px,
                         calc(100% - -60px) 407px;
    background-size: 260px auto,
                     204px auto,
                     206px auto,
                     278px auto,
                     204px auto;
  }

  .hero-north::before,
  .hero-north::after,
  .hero-south::before,
  .hero-south::after {
    width: 100px;
    height: 100px;
  }

  .hero-north::before,
  .hero-north::after { top: -50px; }

  .hero-south::before,
  .hero-south::after { bottom: -50px; }

  .hero-north::before,
  .hero-south::before { left: -50px; }

  .hero-north::after,
  .hero-south::after { right: -50px; }

  .hero-logo {
    max-width: 500px;
    margin-bottom: 8.955223880597014%;
  }

  .hero-text {
    max-width: 376px;
  }
}

@media (min-width: 1162px) {
  .hero {
    margin-right: auto;
    margin-left: auto;
  }
}

/* wrapper background
---------------------------------------------------------------------- */
@media (min-width: 768px) {
  .wrapper {
    position: relative;
    left: 50%;
    width: 1128px;
    margin-bottom: auto;
    transition: background .1s;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    background-image: url(/images/bg-west.svg),
                      url(/images/bg-east.svg);
    background-repeat: repeat-y;
    background-position: 0 195px,
                         100% 40px;
    background-size: 250px 1464px,
                     224px 1608px;
  }
}

/* information
---------------------------------------------------------------------- */
.info {
  padding-top: 32px;
}

.info-heading {
  position: relative;
  text-align: center;
  letter-spacing: .08em;
  font-size: 2rem;
}

.info-heading::before,
.info-heading::after {
  position: absolute;
  bottom: 0;
  width: 19px;
  height: 6px;
  margin: auto;
  content: "";
}

.info-heading::before {
  right: 0;
  left: -21px;
  background: #ad7873;
}

.info-heading::after {
  right: -21px;
  left: 0;
  background: #824337;
}

.info-list {
  position: relative;
  max-width: calc(38rem - 1em);
  margin: 0 auto;
  padding: 3rem calc(3rem - 1em) 6rem;
  line-height: 1.75;
}

.info-list::before,
.info-list::after {
  position: absolute;
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
}

.info-list::before {
  top: -52px;
  left: -30px;
  width: 73px;
  height: 16px;
  background-image: url(/images/brick_info_west.svg);
}

.info-list::after {
  right: 5px;
  bottom: 22px;
  width: 41px;
  height: 24px;
  background-image: url(/images/brick_info_east.svg);
}

.info-item ~ .info-item {
  margin-top: .5em;
}

.info-link {
  display: block;
  padding: .5em;
  transition: background .25s;
  border-radius: .25em;
}

.info-link:hover {
  background: rgba(130, 67, 55, .2);
}

.info-date {
  display: block;
  margin-bottom: -.25em;
}

.info-ttl {
  text-decoration: underline;
}

@media (min-width: 768px) {
  .info-heading {
    padding-bottom: 10px;
    font-size: 3rem;
  }

  .info-heading::before,
  .info-heading::after {
    width: 30px;
    height: 10px;
  }

  .info-heading::before {
    left: -33px;
  }

  .info-heading::after {
    right: -33px;
  }

  .info-list {
    max-width: 58rem;
    padding: 3rem 0 6rem;
  }

  .info-list::before,
  .info-list::after {
    background-image: none;
  }

  .info-item ~ .info-item {
    margin-top: 0;
  }

  .info-link {
    display: -webkit-flex;
    display:         flex;
    -webkit-align-items: center;
            align-items: center;
    line-height: 1.25;
  }

  .info-date {
    -webkit-flex: 0 0 7em;
            flex: 0 0 7em;
    margin-bottom: 0;
    font-size: 1.2rem;
    font-weight: 700;
  }

  .info-ttl {
    overflow: hidden;
    white-space: nowrap;
    letter-spacing: .075em;
    text-overflow: ellipsis;
    -webkit-text-decoration-skip: none;
  }
}

/* more
---------------------------------------------------------------------- */
.more {
  position: relative;
  max-width: 380px;
  margin: 0 auto 4rem;
  padding-top: 2em;
  text-align: center;
  letter-spacing: .125em;
  font-size: 1.8rem;
}

.more::before,
.more::after {
  position: absolute;
  content: "";
  background-repeat: no-repeat;
  background-size: contain;
}

.more::before {
  top: 20px;
  left: -22px;
  width: 53px;
  height: 35px;
  background-image: url(/images/brick_more_west.svg);
}

.more::after {
  right: -30px;
  bottom: -10px;
  width: 74px;
  height: 16px;
  background-image: url(/images/brick_more_east.svg);
}

.more > span {
  position: absolute;
  top: 10px;
  right: 0;
  left: 0;
  margin: auto;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  font-size: 1.4rem;
}

@media (min-width: 768px) {
  .more {
    font-size: 2.6rem;
  }

  .more > span {
    font-size: 2.2rem;
  }

  .more::before,
  .more::after {
    background-image: none;
  }
}

/* footer
---------------------------------------------------------------------- */
.footer {
  position: relative;
  padding-bottom: 2.5em;
  text-align: center;
  font-size: 1rem;
  line-height: 1;
  color: #fff;
  background: #824337;
}

.footer::before {
  display: block;
  width: 100%;
  height: 160px;
  content: "";
  background: url(/images/logo.svg) 50% 50% no-repeat;
  background-size: 176px 67px;
}

@media (min-width: 768px) {
  .footer {
    font-size: 1.2rem;
  }
}

/* page information
---------------------------------------------------------------------- */
.post-logo {
  display: table;
  margin: 26px auto 39px;
}

.post-logo-img {
  width: 176px;
  height: 67px;
}

.post-container {
  max-width: 480px;
  margin-right: auto;
  margin-left: auto;
}

.post-content {
  margin-right: 20px;
  margin-left: 20px;
  padding-top: 20px;
  padding-right: 20px;
  padding-left: 20px;
}

.post-header {
  margin-bottom: 1em;
}

.post-date {
  font-size: 1rem;
}

.post-ttl {
  line-height: 1.25;
}

.post-img {
  margin-bottom: 1.5em;
}

@media (min-width: 768px) {
  .post-logo {
    margin: 50px auto 90px;
  }

  .post-logo-img {
    width: 274px;
    height: 104px;
  }

  .post-container {
    max-width: 680px;
  }

  .post-date {
    font-size: 1.2rem;
  }

  .post-ttl {
    font-size: 2rem;
  }
}

/* page back
---------------------------------------------------------------------- */
.page-back {
  position: relative;
  left: 1em;
  display: -webkit-flex;
  display:         flex;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
  width: 74px;
  height: 24px;
  margin: 30px auto 60px;
  transition: opacity .25s;
  opacity: 1;
  color: #fff;
  background: #824337;
}

.page-back:hover {
  opacity: .75;
}

.page-back::before {
  position: absolute;
  top: 0;
  left: -2.0em;
  display: -webkit-flex;
  display:         flex;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
  width: 1.75em;
  height: 24px;
  content: "<";
  color: #824337;
  border: 1px solid #824337;
  background: #fff;
}

@media (min-width: 768px) {
  .page-back {
    width: 104px;
    height: 34px;
    margin: 50px auto 100px;
  }

  .page-back::before {
    height: 34px;
  }
}

/* post contents
---------------------------------------------------------------------- */
.post-body {
  padding: 1em 0;
  letter-spacing: -.075em;
  word-break: break-all;
}

.content-head {
  margin-bottom: 1em;
  text-align: center;
  font-size: 18px;
  font-weight: bold;
}

.content-txt {
  margin-bottom: 1em;
}

.content-img {
  margin-bottom: 2em;
}

.content-annotation {
  padding-left: 1em;
  text-indent: -1em;
  font-size: 12px;
}

.content-link {
  display: table;
  margin: 2em auto 0;
}

.content-link-img {
  width: 180px;
  height: 44px;
}

@media (max-width: 768px) {
  .content-head {
    font-size: 14px;
  }

  .content-link-img {
    width: 120px;
    height: 29px;
  }
}

/* scroll bar
---------------------------------------------------------------------- */
::-webkit-scrollbar {
  max-width: 10px!important;
  max-height: 10px!important;
  background: #e7ecec!important;
}

::-webkit-scrollbar-corner,
::-webkit-scrollbar-track {
  background: #e7ecec!important;
}

::-webkit-scrollbar-thumb {
  border-radius: 5px!important;
  background: rgba(80,80,80,.6) !important;
}

::-webkit-scrollbar-thumb:hover {
  background: #ad7873 !important;
  /*background: rgba(96,96,96,.6) !important;*/
}
