@charset "UTF-8";

@media screen and (min-width: 769px) {

  body {

    zoom: 0.8;

  }

}

@property --font-size-base {
  syntax: "<integer>";
  inherits: false;
  initial-value: 16;
}

@property --leading-trim {
  syntax: "*";
  inherits: false;
  initial-value: calc((1em - 1lh) / 2);
}

/*! destyle.css v4.0.1 | MIT License | https://github.com/nicolas-cusan/destyle.css */
*,::before,::after{box-sizing:border-box;border-style:solid;border-width:0;min-width:0}html{line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0}main{display:block}p,table,blockquote,address,pre,iframe,form,figure,dl{margin:0}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;margin:0}ul,ol{margin:0;padding:0;list-style:none}dt{font-weight:700}dd{margin-left:0}hr{box-sizing:content-box;height:0;overflow:visible;border-top-width:1px;margin:0;clear:both;color:inherit}pre{font-family:monospace,monospace;font-size:inherit}address{font-style:inherit}a{background-color:transparent;text-decoration:none;color:inherit}abbr[title]{text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:inherit}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}svg,img,embed,object,iframe{vertical-align:bottom}button,input,optgroup,select,textarea{-webkit-appearance:none;appearance:none;vertical-align:middle;color:inherit;font:inherit;background:transparent;padding:0;margin:0;border-radius:0;text-align:inherit;text-transform:inherit}button,[type="button"],[type="reset"],[type="submit"]{cursor:pointer}button:disabled,[type="button"]:disabled,[type="reset"]:disabled,[type="submit"]:disabled{cursor:default}:-moz-focusring{outline:auto}select:disabled{opacity:inherit}option{padding:0}fieldset{margin:0;padding:0;min-width:0}legend{padding:0}progress{vertical-align:baseline}textarea{overflow:auto}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type="number"]{-moz-appearance:textfield;appearance:textfield;}label[for]{cursor:pointer}details{display:block}summary{display:list-item}[contenteditable]:focus{outline:auto}table{border-color:inherit;border-collapse:collapse}caption{text-align:left}td,th{vertical-align:top;padding:0}th{text-align:left;font-weight:700}

:root {
  font-family: "fot-udmincho-pr6n", "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-optical-sizing: auto;
  font-weight: 300;
  font-style: normal;
  /*font-feature-settings: "halt";*/
  text-spacing-trim: trim-start;
  word-break: initial;
  line-break: strict;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-gutter: stable;
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smootinh: grayscale;
  letter-spacing: 0.05em;
}

:root {
  --rem-ratio: calc(1rem / var(--font-size-base));
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 0;
}

body {
  min-height: 100vh;
}

img {
  width: 100%;
  height: auto;
  object-fit: contain;
  vertical-align: bottom;
  border: none;
}

/**********************************************************
*  レイアウト
**********************************************************/
.l-wrapper,
.l-header,
.l-main,
.l-footer {
  width: 100%;
  position: relative;
  z-index: 0;
}

.l-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  min-height: 100svh;
}

.l-header {
  padding-bottom: calc(27 / 393 * 100vw);
  padding-inline: calc(20 / 393 * 100vw);
  z-index: 20;
}
@media screen and (width > 767px) {
  .l-header {
    padding-bottom: 35px;
    padding-inline: 20px;
  }
}

.l-main {
  padding-bottom: calc(30 / 393 * 100vw);
  z-index: 10;
}
@media screen and (width > 767px) {
  .l-main {
    padding-bottom: 40px;
  }
}

.l-inner {
  padding-inline: calc(20 / 393 * 100vw);
  position: relative;
  z-index: 15;
}
@media screen and (width > 767px) {
  .l-inner {
    max-width: 1168px;
    padding-inline: 20px;
    margin-inline: auto;
  }
}

.l-footer {
  border-top: 1px solid #000;
  padding-top: calc(35 / 393 * 100vw);
  padding-bottom: calc(112 / 393 * 100vw);
  margin-top: auto;
  z-index: 0;
}
@media screen and (width > 767px) {
  .l-footer {
    padding-top: 35px;
    padding-bottom: 157px;
  }
}

/**********************************************************
*  コンポーネント
**********************************************************/
.c-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: calc(30 / 393 * 100vw);
}
.c-header .p-header_logo {
  width: calc(150 / 393 * 100vw);
}
.c-header .p-header_menu {
  display: flex;
  align-items: center;
}
.c-header .p-header_nav {
  display: block;
  width: 100vw;
  height: 100svh;
  position: fixed;
  z-index: 100;
  inset: 0;
  margin: auto;
  background-color: #2E65B0;
  overflow: hidden;
  overflow-y: auto;
  overscroll-behavior-y: none;
  padding-top: calc(54 / 393 * 100vw);
  padding-inline: calc(40 / 393 * 100vw);
  padding-bottom: calc(22 / 393 * 100vw);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100vh);
  transition: transform 0.3s ease-out;
}
.c-header .p-header_nav.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.c-header .p-header_closeBtn {
  display: grid;
  place-items: center;
  width: calc(46 / 393 * 100vw);
  height: calc(26 / 393 * 100vw);
  margin-bottom: calc(16 / 393 * 100vw);
  margin-left: auto;
}
.c-header .p-header_lst {
  display: flex;
  flex-direction: column;
  width: calc(227 / 393 * 100vw);
  margin-inline: auto;
  margin-bottom: calc(40 / 393 * 100vw);
}
.c-header .p-header_item {
  font-family: "peridot-pe-variable", sans-serif;
  font-size: calc(18 * var(--rem-ratio));
  font-weight: 700;
  line-height: 1.22;
  position: relative;
}
.c-header .p-header_item:not(:first-child) {
  margin-top: calc(30 / 393 * 100vw);
}
.c-header .p-header_item > a {
  display: block;
  border-bottom: 1px solid #000;
  padding-block: 5px;
  letter-spacing: 0.15em;
}
.c-header .p-header_navsub {
  margin-top: calc(25 / 393 * 100vw);
  margin-left: calc(36 / 393 * 100vw);
  font-size: calc(14 * var(--rem-ratio));
  font-weight: 500;
  line-height: 1.571;
}
.c-header .p-header_navsub > li {
  display: flex;
  align-items: center;
}
.c-header .p-header_navsub > li:not(:first-child) {
  margin-top: calc(13 / 393 * 100vw);
}
.c-header .p-header_navsub > li::before {
  content: "";
  display: block;
  width: calc(7 / 393 * 100vw);
  height: calc(7 / 393 * 100vw);
  background-color: #D9D9D9;
  border-radius: 50%;
  margin-right: calc(10 / 393 * 100vw);
}
.c-header .p-header_navsub > li > a {
  display: block;
  padding-block: 5px;
}
.c-header .p-header_flame {
  display: block;
  width: calc(50 / 393 * 100vw);
  margin-inline: auto;
  margin-bottom: calc(24 / 393 * 100vw);
}
.p-header_copyright {
  font-size: calc(10 / 393 * 100vw);
  text-align: center;
}
.c-header .p-header_chan {
  width: calc(30 / 393 * 100vw);
  height: calc(30 / 393 * 100vw);
}
.c-header .p-header_button {
  display: grid;
  place-items: center;
  width: calc(31 / 393 * 100vw);
  height: calc(30 / 393 * 100vw);
  margin-left: calc(13 / 393 * 100vw);
}
@media screen and (width > 767px) {
  .c-header {
    max-width: 1128px;
    align-items: center;
    padding-top: 35px;
    margin-inline: auto;
  }
  .c-header .p-header_logo {
    width: 229px;
  }
  .c-header .p-header_menu {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: 548px;
  }
  .c-header .p-header_button,
  .c-header .p-header_closeBtn,
  .c-header .p-header_flame,
  .c-header .p-header_copyright {
    display: none;
    visibility: hidden;
    opacity: 0;
  }
  .c-header .p-header_nav {
    display: block;
    width: 100%;
    max-width: 413px;
    height: auto;
    min-height: 1.5em;
    position: static;
    background-color: transparent;
    inset: auto;
    padding: 0;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    overflow: visible;
    overscroll-behavior-y: auto;
  }
  .c-header .p-header_navsub {
    display: none;
    width: 270px;
    background-color: rgb(255, 255, 255, 0.9);
    position: absolute;
    z-index: 10;
    top: 20px;
    left: 0;
    margin-top: 0;
    margin-left: 0;
    font-size: calc(16 * var(--rem-ratio));
    padding-left: 30px;
    padding-bottom: 30px;
    padding-top: 70px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-out, visibility 0.3s ease-out;
  }
  .c-header .p-header_navsub.is-show {
    display: block;
    opacity: 1;
    visibility: visible;
    transition: none;
  }
  .c-header .p-header_navsub > li {
    display: flex;
    align-items: center;
  }
  .c-header .p-header_navsub > li:not(:first-child) {
    margin-top: 10px;
  }
  .c-header .p-header_navsub > li::before {
    width: 7px;
    height: 7px;
    background-color: #2E65B0;
    margin-right: 10px;
  }
  .c-header .p-header_lst {
    flex-direction: row;
    width: 100%;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0;
    font-size: calc(19 * var(--rem-ratio));
    font-weight: 600;
  }
  .c-header .p-header_item:not(:first-child) {
    margin-top: 0;
  }
  .c-header .p-header_item > a {
    border-bottom-width: 0;
    padding-block: 0;
  }
  .c-header .p-header_chan {
    width: 40px;
    height: 40px;
  }
}
@media screen and (any-hover: hover) {
  .c-header .p-header_logo:hover,
  .c-header .p-header_item a:hover,
  .c-header .p-header_chan:hover {
    opacity: 0.5;
  }
}

.c-title.is-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.c-slide_wrapper {
  width: 100%;
  padding-top: calc(500 / 393 * 100vw);
  position: relative;
  z-index: 0;
}

.c-slide {
  width: 100%;
  height: 100%;
  overflow: hidden;
  position: absolute;
  inset: 0;
  margin: auto;
  z-index: 10;
}
.c-slide::before {
  content: "";
  display: block;
  width: 5em;
  height: 5em;
  border-radius: 50%;
  border: 0.25em solid #ccc;
  border-top-color: #333;
  position: absolute;
  inset: 0;
  margin: auto;
  z-index: 0;
  animation: spinner 1.5s linear infinite;
}
.c-slide.is-initialized::before {
  display: none;
  opacity: 0;
  visibility: hidden;
}
@keyframes spinner {
  to {
    transform: rotate(360deg);
  }
}
@media screen and (width > 767px) {
  .c-slide_wrapper {
    padding-top: calc(625 / 1440 * 100vw);
  }
}

.c-works {
  display: flex;
  flex-wrap: wrap;
  margin-inline: auto;
  padding-top: calc(30 / 393 * 100vw);
  margin-bottom: calc(20 / 393 * 100vw);
  gap: calc(30 / 393 * 100vw);
}
.c-works_title {
  font-family: "peridot-pe-variable", sans-serif;
  font-size: calc(18 * var(--rem-ratio));
  font-weight: 500;
  padding-top: calc(35 / 393 * 100vw);
}
.c-works .p-works_box {
  display: block;
  opacity: 0;
  will-change: opacity;
}
.c-works .p-works_box.is-hidden {
  opacity: 0;
}
.c-works .p-works_box.visually-hidden {
  display: none;
}
.c-works .p-works_thumb {
  display: block;
  margin-bottom: calc(20 / 393 * 100vw);
  overflow: hidden;
}
.c-works .p-works_photo {
  transition: transform 0.3s ease-in-out;
}
.c-works .p-works_title {
  font-size: calc(17 * var(--rem-ratio));
  line-height: 1.5;
}
.c-works .p-works_client {
  font-family: 'FOT-Cezanne ProN', sans-serif;
  font-size: calc(12 * var(--rem-ratio));
  font-weight: 500;
  line-height: 1.83;
  margin-block-start: calc(6px + var(--leading-trim));
}
@media screen and (width > 767px) {
  .c-works {
    padding-top: 30px;
    margin-bottom: 30px;
    gap: 33px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .c-works_title {
    font-size: calc(25 * var(--rem-ratio));
    padding-top: 60px;
  }
  .c-works .p-works_thumb {
    margin-bottom: 20px;
  }
}
@media screen and (any-hover: hover) {
  .c-works .p-works_box:hover {
    opacity: 0.5;
  }
  .c-works .p-works_box:hover .p-works_photo {
    transform: scale(1.1);
  }
}

.c-dm,
.c-about,
.c-work {
  padding-top: calc(26 / 393 * 100vw);
}
.c-about .p-title,
.c-about p,
.c-about dl {
  font-size: calc(14 * var(--rem-ratio));
  font-weight: 300;
  line-height: 1.571;
}
.c-about .p-title {
  margin-bottom: 1em;
}
.c-about .p-title:not(:first-child),
.c-about p + p {
  margin-top: 1em;
}
.c-about dt {
  font-weight: 300;
  float: left;
  margin-right: 1em;
}
.c-about a {
  text-decoration: underline;
}
@media screen and (width > 767px) {
  .c-dm,
  .c-about,
  .c-work {
    padding-top: 100px;
  }
  .c-about .p-title,
  .c-about p,
  .c-about dl {
    font-size: calc(20 * var(--rem-ratio));
    line-height: 1.75;
  }
  .c-about .p-title {
    margin-bottom: 1.5em;
  }
  .c-about .p-title:not(:first-child),
  .c-about p + p {
    margin-top: 1.5em;
  }
}
@media screen and (any-hover: hover) {
  .c-about a:hover {
    text-decoration: none;
  }
}

.c-work {
  padding-top: calc(26 / 393 * 100vw);
  margin-inline: auto;
}
.c-work .p-title {
  font-size: calc(19 * var(--rem-ratio));
  line-height: 1.57;
  margin-bottom: calc(10 / 393 * 100vw);
}
.c-work p {
  font-size: calc(14 * var(--rem-ratio));
  line-height: 1.57;
}
.c-work p + p {
  margin-top: 1em;
}
.c-work .p-works_photo {
  margin-block: calc(30 / 393 * 100vw);
}
.c-work .p-client {
  font-family: "fot-cezanne-pron", sans-serif;
  font-size: calc(12 * var(--rem-ratio));
  line-height: 1.66;
  margin-bottom: calc(5px + var(--leading-trim));
}
.c-work .p-tags {
  font-family: "peridot-pe-variable", sans-serif;
  font-size: calc(12 * var(--rem-ratio));
  font-weight: 500;
  line-height: 1.66;
}
@media screen and (width > 767px) {
  .c-work {
    padding-top: 100px;
  }
  .c-work .p-title {
    font-size: calc(28 * var(--rem-ratio));
    line-height: 1.6;
    margin-bottom: 15px;
  }
  .c-work p {
    font-size: calc(18 * var(--rem-ratio));
    line-height: 1.75;
  }
  .c-work .p-works_photo {
    margin-block: 40px;
  }
  .c-work .p-works_photo.--shadow {
    box-shadow: 0px 3px 3px rgb(0, 0, 0, 0.2);
  }
  .c-work .p-works_photo img {
    display: block;
    width: auto;
    max-width: 100%;
    margin-inline: auto;
  }
  .c-work .p-works_photo.--w50per img {
    max-width: 50%;
  }
  .c-work .p-client {
    font-size: calc(12 * var(--rem-ratio));
    line-height: 1.66;
    margin-bottom: calc(5px + var(--leading-trim));
  }
  .c-work .p-tags {
    font-family: "peridot-pe-variable", sans-serif;
    font-size: calc(12 * var(--rem-ratio));
    font-weight: 500;
    line-height: 1.66;
  }
}

.c-toppage {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(137 / 393 * 100vw);
  position: sticky;
  z-index: 100;
  left: calc(218 / 393 * 100vw);
  bottom: calc(20 / 393 * 100vw);
}
.c-toppage .p-toppage_mail,
.c-toppage .p-toppage_top {
  display: grid;
  place-items: center;
  width: calc(60 / 393 * 100vw);
  height: calc(60 / 393 * 100vw);
  background-color: #FFF;
  border-radius: 50%;
  box-shadow: 0px 0px 6px rgb(0,0,0,0.25);
}
.c-toppage .p-toppage_mail img {
  width: calc(30 / 393 * 100vw);
}
.c-toppage .p-toppage_top img {
  width: calc(30 / 393 * 100vw);
}
@media screen and (width > 767px) {
  .c-toppage {
    width: 137px;
    left: 100%;
    bottom: 20px;
    margin-top: 40px;
  }
  .c-toppage .p-toppage_mail,
  .c-toppage .p-toppage_top {
    width: 60px;
    height: 60px;
  }
  .c-toppage .p-toppage_mail img {
    width: 30px;
  }
  .c-toppage .p-toppage_top img {
    width: 30px;
  }
}

.c-copyright {
  font-size: calc(10 * var(--rem-ratio));
  font-weight: 300;
  text-align: center;
}

/**********************************************************
*  モジュール
**********************************************************/
.m-dm {
  position: relative;
}
.m-dm + .m-dm {
  margin-top: calc(70 / 393 * 100vw);
}
.m-dm .p-dm_title {
  font-size: calc(19 * var(--rem-ratio));
  line-height: 1.57;
  margin-bottom: calc(10 / 393 * 100vw);
}
.m-dm .p-dm_text {
  font-size: calc(14 * var(--rem-ratio));
  line-height: 1.57;
}
.m-dm .p-dm_photo {
  display: block;
  margin-block: calc(30 / 393 * 100vw);
  margin-inline: auto;
}
.m-dm .p-dm_note {
  font-family: "fot-cezanne-pron", sans-serif;
  font-size: calc(12 * var(--rem-ratio));
  font-weight: 500;
  line-height: 1.66;
  margin-bottom: calc(5px + var(--leading-trim));
}
.m-dm .p-dm_tag {
  font-family: "peridot-pe-variable", sans-serif;
  font-size: calc(12 * var(--rem-ratio));
  font-weight: 500;
  line-height: 1.66;
}
@media screen and (width > 767px) {
  .m-dm + .m-dm {
    margin-top: 100px;
  }
  .m-dm .p-dm_title {
    font-size: calc(30 * var(--rem-ratio));
    line-height: 1.16;
    margin-bottom: 30px;
  }
  .m-dm .p-dm_text {
    font-size: calc(20 * var(--rem-ratio));
    line-height: 1.75;
  }
  .m-dm .p-dm_photo {
    margin-block: 60px;
  }
  .m-dm .p-dm_note {
    font-size: calc(14 * var(--rem-ratio));
    line-height: 1.57;
  }
  .m-dm .p-dm_tag {
    font-size: calc(14 * var(--rem-ratio));
    line-height: 1.57;
  }
}

.m-bottomNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin-top: calc(50 / 393 * 100vw);
}
.m-bottomNav .p-home {
  display: grid;
  place-items: center;
  width: calc(81 / 393 * 100vw);
  height: calc(81 / 393 * 100vw);
}
.m-bottomNav .p-back,
.m-bottomNav .p-next {
  display: grid;
  place-items: center;
  width: calc(81 / 393 * 100vw);
  height: calc(25 / 393 * 100vw);
}
.m-bottomNav .p-back img,
.m-bottomNav .p-next img {
  display: block;
}
.m-bottomNav .p-home img {
  width: calc(25 / 393 * 100vw);
}
@media screen and (width > 767px) {
  .m-bottomNav {
    margin-top: 60px;
    margin-inline: auto;
  }
  .m-bottomNav .p-home {
    width: 40px;
    height: 40px;
  }
  .m-bottomNav .p-back,
  .m-bottomNav .p-next {
    width: calc(354 / 1128 * 100%);
    max-width: 354px;
    height: 36px;
  }
  .m-bottomNav .p-home img {
    width: 100%;
  }
}
@media screen and (any-hover: hover) {
  .m-bottomNav .p-back:hover,
  .m-bottomNav .p-home:hover,
  .m-bottomNav .p-next:hover {
    opacity: 0.5;
  }
}

/**********************************************************
*  ユーティリティ
**********************************************************/
.u-mt1em {
  margin-top: 1em;
}
@media screen and (width > 767px) {
  .u-spOnly {
    display: none !important;
  }
}

/**********************************************************
*  JavaScript Animation
**********************************************************/
.js-spy-fadeup {
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.js-spy-fadeup.is-animated {
  opacity: 1;
}



