/* Variable */
/* ------------------------------------------------------ */
/* line-height  */
/* ------------------------------------------------------ */
/* common */
/* ------------------------------------------------------ */
html, body {
  font-family: "Quicksand", "Roboto", "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-weight: 600;
  width: 100%;
  margin: 0;
  color: #6D696A;
  -webkit-text-size-adjust: 100%;
  font-size: 10px;
  line-height: 1.8;
  letter-spacing: 0.08em;
}

html {
  background-color: #ECECEC;
}

body {
  border-top: 5px solid #070303;
  font-size: 1.8rem;
  text-align: left;
}

.montserrat {
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

.gmap, .youtube {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  overflow: hidden;
}
.gmap iframe, .youtube iframe {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}

.sp-only {
  display: none;
}

.pc-only {
  display: inline;
}

/* a */
/* ------------------------------------------------------ */
a {
  color: #070303;
  text-decoration: none;
}

a:hover,
a.button:hover,
input[type=submit]:hover,
input[type=reset]:hover,
input[type=button]:hover,
button:hover,
.btnOpacity:hover,
a:active,
a.button:active,
input[type=submit]:active,
input[type=reset]:active,
input[type=button]:active,
button:active,
.btnOpacity:active {
  filter: alpha(opacity=50);
  opacity: 0.5;
  transition: all 0.3s ease;
}

/* headline */
/* ------------------------------------------------------ */
h2 {
  font-size: 5rem;
  margin: 0 0 20px 0;
}
h2 .jp {
  color: #070303;
}
h2 .en {
  color: #A68B8E;
  margin-left: 20px;
}

.hl-slash {
  display: block;
  margin: 0px auto 100px;
  text-align: center;
  position: relative;
}
.hl-slash .en {
  color: #510A11;
  font-size: 3rem;
  display: block;
  overflow: hidden;
  margin-bottom: 20px;
}
.hl-slash .en::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
.hl-slash .en::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
.hl-slash .jp {
  color: #070303;
  font-size: 5rem;
  display: block;
  overflow: hidden;
}
.hl-slash .jp::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
.hl-slash .jp::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
.hl-slash::after {
  position: absolute;
  display: block;
  content: "";
  height: 2px;
  width: 60px;
  background-color: #510A11;
  transform: rotate(-45deg);
  bottom: -40px;
  left: 0;
  right: 0;
  margin: auto;
}

/* float */
/* ------------------------------------------------------ */
.clr {
  zoom: 1;
}
.clr:after {
  display: block;
  content: "";
  clear: both;
}

*.left {
  float: left;
}

*.right {
  float: right;
}

/* illust */
/* ------------------------------------------------------ */
.ilst {
  display: block;
  position: absolute;
  z-index: 999;
}
.ilst[data-type=star] {
  width: 75.85px;
  height: 89.2px;
}
.ilst[data-type=flower] {
  width: 37.48px;
  height: 41.32px;
}
.ilst[data-type=owl] {
  width: 64.33px;
  height: 100.07px;
}
.ilst[data-type=tree01] {
  width: 89.85px;
  height: 161.07px;
}
.ilst[data-type=tree02] {
  width: 243.03px;
  height: 136.83px;
}
.ilst[data-type=tree03] {
  width: 111.1px;
  height: 119.73px;
}
.ilst[data-type=tool] {
  width: 251.06px;
  height: 128.01px;
}
.ilst[data-type=bird] {
  width: 335px;
  height: 85px;
}
.ilst[data-type=house] {
  width: 100px;
  height: 95px;
}
.ilst[data-type=rain] {
  width: 159.63px;
  height: 137.25px;
}
.ilst[data-type=snow] {
  width: 123.21px;
  height: 152.8px;
}
.ilst[data-type=oh01] {
  width: 216px;
  height: 103.99px;
  top: -11px;
  left: -21px;
}
.ilst[data-type=oh02] {
  width: 181.3px;
  height: 115.73px;
  top: -19px;
  right: -23px;
}
.ilst[data-type=star-flower] {
  width: 115px;
  height: 105.52px;
}
.ilst img {
  -webkit-user-select: none;
          user-select: none;
  -webkit-user-drag: none;
  -moz-user-select: none;
}

/* layout */
/* ------------------------------------------------------ */
.wx1 {
  width: 112.5px;
}

.wx2 {
  width: 225px;
}

.wx3 {
  width: 337.5px;
}

.wx4 {
  width: 450px;
}

.wx5 {
  width: 562.5px;
}

.wx6 {
  width: 675px;
}

.wx7 {
  width: 787.5px;
}

.wx8 {
  width: 900px;
}

.wx9 {
  width: 1012.5px;
}

.wx10 {
  width: 1125px;
}

.wx11 {
  width: 1237.5px;
}

.wx1-30 {
  width: 85px;
}

.wx2-30 {
  width: 200px;
}

.wx3-30 {
  width: 315px;
}

.wx4-30 {
  width: 430px;
}

.wx5-30 {
  width: 545px;
}

.wx6-30 {
  width: 660px;
}

.wx7-30 {
  width: 775px;
}

.wx8-30 {
  width: 890px;
}

.wx9-30 {
  width: 1005px;
}

.wx10-30 {
  width: 1120px;
}

.wx11-30 {
  width: 1235px;
}

ul.split-2 > li {
  width: calc((100% - 30px) / 2);
}

ul.split-3 {
  justify-content: flex-start;
}
ul.split-3 > li {
  width: calc((100% - 60px) / 3);
}
ul.split-3 li:nth-child(n+2) {
  margin-left: 30px;
}
ul.split-3 li:nth-child(n+4) {
  margin-top: 30px;
}
ul.split-3 li:nth-child(3n+1) {
  margin-left: 0px;
}

ul.split-4 > li {
  width: calc((100% - 90px) / 4);
}

.pd10 {
  padding: 10px;
}

.pd20 {
  padding: 20px;
}

.pd30 {
  padding: 30px;
}

.pdt10 {
  padding-top: 10px;
}

.pdt20 {
  padding-top: 20px;
}

.pdt30 {
  padding-top: 30px;
}

.pdb10 {
  padding-bottom: 10px;
}

.pdb20 {
  padding-bottom: 20px;
}

.pdb30 {
  padding-bottom: 30px;
}

.pdl10 {
  padding-left: 10px;
}

.pdl20 {
  padding-left: 20px;
}

.pdl30 {
  padding-left: 30px;
}

.pdr10 {
  padding-right: 10px;
}

.pdr20 {
  padding-right: 20px;
}

.pdr30 {
  padding-right: 30px;
}

.ma10 {
  margin: 10px;
}

.ma20 {
  margin: 20px;
}

.ma30 {
  margin: 30px;
}

.mat10 {
  margin-top: 10px;
}

.mat20 {
  margin-top: 20px;
}

.mat30 {
  margin-top: 30px;
}

.mab10 {
  margin-bottom: 10px;
}

.mab20 {
  margin-bottom: 20px;
}

.mab30 {
  margin-bottom: 30px;
}

.mal10 {
  margin-left: 10px;
}

.mal20 {
  margin-left: 20px;
}

.mal30 {
  margin-left: 30px;
}

.mar10 {
  margin-right: 10px;
}

.mar20 {
  margin-right: 20px;
}

.mar30 {
  margin-right: 30px;
}

.alt-li.img-stt li:nth-child(2n-1) {
  flex-direction: row;
}
.alt-li.img-stt li:nth-child(2n) {
  flex-direction: row-reverse;
}

.alt-li.txt-stt li:nth-child(2n-1) {
  flex-direction: row-reverse;
}
.alt-li.txt-stt li:nth-child(2n) {
  flex-direction: row;
}

/* table */
/* ------------------------------------------------------ */
table {
  border-collapse: collapse;
  border-spacing: 0px;
  border: none;
  width: 100%;
}
table th {
  border-top: 1px solid #ECECEC;
  border-bottom: 1px solid #ECECEC;
  border-left: 1px solid #ECECEC;
  background-color: #D0BBBD;
  color: #510A11;
  text-align: left;
  vertical-align: top;
  font-weight: bold;
}
table td {
  background-color: #FFF;
  border-top: 1px solid #ECECEC;
  border-bottom: 1px solid #ECECEC;
  border-left: 1px solid #ECECEC;
  vertical-align: top;
}
table th + td {
  border-top: 1px solid #ECECEC;
  border-bottom: 1px solid #ECECEC;
  border-left: 1px solid #ECECEC;
}
table th:last-child {
  border-right: 1px solid #ECECEC;
}
table td:last-child {
  border-right: 1px solid #ECECEC;
}
table tr + tr > th {
  border-top: none;
  border-bottom: 1px solid #ECECEC;
  border-left: 1px solid #ECECEC;
}
table caption, table th, table td {
  text-align: left;
  vertical-align: top;
}
table th, table td {
  padding: 20px;
}

.table {
  display: table !important;
}

.td {
  display: table-cell !important;
  vertical-align: middle;
}

/* list */
/* ------------------------------------------------------ */
ul {
  list-style: none;
}

p.notes {
  text-indent: -1em;
  margin-left: 1em;
}

ul.notes li {
  margin-left: 1em;
  text-indent: -1em;
}

dl, dt, dd {
  margin: 0px;
}

/* flex */
/* ------------------------------------------------------ */
.flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.spc-btw {
  justify-content: space-between;
}

/* position */
/* ------------------------------------------------------ */
.rlv {
  position: relative;
}

.abs {
  position: absolute;
}

/* basic */
/* ------------------------------------------------------ */
.container {
  width: 100%;
  margin: 0 auto;
}

.wrap {
  width: 100%;
  max-width: 1350px;
  margin: 0 auto;
}

section {
  margin-top: 80px !important;
}

body#philos section.message {
  margin-top: 0px !important;
}

.radius10 {
  border-radius: 10px;
  overflow: hidden;
}

.radius20 {
  border-radius: 20px;
  overflow: hidden;
}

.img-box {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.img-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.img-box a {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.img-box a img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.img-box.r10 {
  border-radius: 10px;
}

.img-box.r20 {
  border-radius: 20px;
}

/* parts */
/* ------------------------------------------------------ */
/* btn */
.btn {
  color: #FFF;
  width: -moz-fit-content;
  width: fit-content;
  font-weight: bold;
  display: block;
  text-align: center;
  background-repeat: no-repeat;
}

.btn.red {
  background-color: #ED6A5A;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4.5 7"><path fill="%23ffffff" d="M688,816a1,1,0,0,1-.707-1.707l1.793-1.793-1.793-1.793a1,1,0,0,1,1.414-1.414l2.5,2.5a1,1,0,0,1,0,1.414l-2.5,2.5A1,1,0,0,1,688,816Z" transform="translate(-687 -809)"/></svg>');
}

.btn.brown {
  background-color: #510A11;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4.5 7"><path fill="%23ffffff" d="M688,816a1,1,0,0,1-.707-1.707l1.793-1.793-1.793-1.793a1,1,0,0,1,1.414-1.414l2.5,2.5a1,1,0,0,1,0,1.414l-2.5,2.5A1,1,0,0,1,688,816Z" transform="translate(-687 -809)"/></svg>');
}

.btn.l-brown {
  background-color: #A68B8E;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4.5 7"><path fill="%23ffffff" d="M688,816a1,1,0,0,1-.707-1.707l1.793-1.793-1.793-1.793a1,1,0,0,1,1.414-1.414l2.5,2.5a1,1,0,0,1,0,1.414l-2.5,2.5A1,1,0,0,1,688,816Z" transform="translate(-687 -809)"/></svg>');
}

.btn.red-bdr {
  background-color: #FFF;
  color: #ED6A5A;
  border: 5px solid #ED6A5A;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4.5 7"><path fill="%23ED6A5A" d="M688,816a1,1,0,0,1-.707-1.707l1.793-1.793-1.793-1.793a1,1,0,0,1,1.414-1.414l2.5,2.5a1,1,0,0,1,0,1.414l-2.5,2.5A1,1,0,0,1,688,816Z" transform="translate(-687 -809)"/></svg>');
}

.btn.red-bdr-blank {
  background-color: #FFF;
  color: #ED6A5A;
  border: 5px solid #ED6A5A;
  background-image: url("../images/common/icon-blank.svg");
  background-repeat: no-repeat;
  background-size: 30px 30px !important;
}

.btn.s-btn {
  min-width: 135px;
  height: 40px;
  line-height: 40px;
  padding: 0 20px;
  background-position: right 10px center;
  background-size: 4.5px 7px;
  border-radius: 20px;
}

.btn.m-btn {
  font-size: 2.4rem;
  min-width: 300px;
  line-height: 60px;
  padding: 0 30px;
  background-position: right 25px center;
  background-size: 6.75px 10.5px;
  border-radius: 30px;
}

.btn.l-btn {
  min-width: 375px;
  line-height: 60px;
  font-size: 2.4rem;
  font-weight: bold;
  padding: 0 35px;
  background-position: right 30px center;
  background-size: 9px 14px;
  border-radius: 35px;
}

.btn.xl-btn {
  min-width: 535px;
  line-height: 90px;
  font-size: 3rem;
  font-weight: bold;
  padding: 0 45px;
  background-position: right 45px center;
  border-radius: 50px;
}

.btn.circle {
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 15px;
  background-position: center center;
  background-size: 4.5px 7px;
}

/* ellipsis */
.elpss-1 {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.elpss-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.elpss-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

/* slick slider */
/* ------------------------------------------------------ */
.slider .slick-img .img-box {
  width: 100%;
  height: 675px;
}
.slider .slick-img .caption {
  padding: 10px 0 0 0;
  color: #6D696A;
  font-size: 1.4rem;
  transition: 0.3s ease;
}

.thumbnail {
  margin-top: 30px;
}
.thumbnail .thumbnail-img {
  opacity: 0.3;
  transition: opacity 0.3s linear;
  width: 315px !important;
  height: 180px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
}
.thumbnail .thumbnail-img + .thumbnail-img {
  margin-left: 30px;
}
.thumbnail .thumbnail-img:nth-child(4n+1) {
  margin-left: 0px;
}
.thumbnail .thumbnail-img:nth-child(n+5) {
  margin-top: 30px;
}
.thumbnail .thumbnail-img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.thumbnail .slick-track {
  transform: unset !important;
}
.thumbnail .thumbnail-img.slick-current {
  opacity: 1;
}
.thumbnail .thumbnail-img.slick-current .caption {
  opacity: 1;
  transition-delay: 0.5s;
}

.slick-arrow {
  display: none !important;
}

/*===========================

header

===========================*/
header.wrap {
  margin: -1px auto 0 !important;
  padding: 40px 0 0 0;
}

header .tel-group {
  height: 55px;
  width: 230px;
  margin: 0 0 0 auto;
  color: #FFF;
  background-color: black;
  align-items: center;
  font-size: 2.4rem;
  line-height: 1em;
  border-radius: 0 0 20px 20px;
  top: 0;
  right: 0;
}
header .tel-group div {
  width: 100%;
  height: 100%;
}
header .tel-group div::before {
  content: url("../images/common/h-mask-r-blk.svg");
  width: 20px;
  height: auto;
  position: absolute;
  top: -1px;
  left: -19px;
}
header .tel-group div::after {
  content: url("../images/common/h-mask-r-blk.svg");
  width: 20px;
  height: auto;
  position: absolute;
  top: -1px;
  right: -19px;
  transform: scale(-1, 1);
}
header .tel-group p {
  width: auto;
  margin: 0 auto;
  display: table;
  height: 55px;
  vertical-align: middle;
}
header .tel-group p * {
  line-height: 55px;
}
header .tel-group p img {
  width: 160px;
}
header .tel-group .icon-tel {
  width: 10px;
  margin-right: 15px;
  height: auto;
}
header .tel-group span {
  vertical-align: middle;
}
header .logo-group {
  align-items: center;
}
header .logo-group .logo {
  width: 172px;
}
header .logo-group .name {
  margin-left: 30px;
}
header .logo-group .name .catch {
  display: block;
  font-size: 1.4rem;
  line-height: 1em;
}
header .logo-group .name .company {
  display: block;
  font-size: 2.8rem;
  line-height: 1em;
  letter-spacing: 0.05em;
  font-family: "Roboto", "Helvetica Neue", Arial, "Hiragino Sans", "Yu Gothic", sans-serif;
  font-weight: 700;
  color: #070303;
  margin-top: 15px;
}
header button.hmbgr {
  display: none;
}
header .nav-wrapper {
  margin-bottom: 40px;
  width: 100%;
}
header .nav-wrapper .td + .td {
  padding-left: 50px;
}
header .gnav {
  line-height: 1em;
  font-weight: 700;
  letter-spacing: 0;
  vertical-align: bottom !important;
}
header .gnav li + li {
  margin-left: 25px;
}
header .gnav li a {
  display: block;
}
header .gnav li a:hover .en {
  color: #ED6A5A;
}
header .gnav .jp {
  font-size: 2rem;
  display: block;
}
header .gnav .en {
  font-size: 1.6rem;
  display: block;
  color: #A68B8E;
  margin-top: 10px;
}
header .gnav li.current {
  pointer-events: none;
}
header .gnav li.current a .en {
  color: #ED6A5A;
}
header .sns-nav p.text {
  width: 105px;
}
header .sns-nav ul {
  width: 100px;
  margin: 5px auto 0;
}
header .sns-nav li svg {
  width: 40px;
  height: 40px;
}
header .inquiry-group a {
  color: #FFF;
  width: 120px;
  height: 90px;
  text-align: center;
  border-radius: 10px;
}
header .inquiry-group .contact a {
  background-color: #ED6A5A;
}
header .inquiry-group svg {
  width: 35px;
  display: block;
  margin: 0 auto 10px;
}
header .inquiry-group span.text {
  font-size: 1.6rem;
  line-height: 1em;
  display: block;
}

/*===========================

parts: open house

===========================*/
.co-open-house {
  padding: 60px;
  background-color: #FFF;
  border-radius: 20px;
  margin-top: 80px;
}
.co-open-house h3 {
  text-align: center;
  margin-bottom: 50px;
}
.co-open-house h3 .jp {
  font-size: 4.2rem;
  color: #070303;
  display: block;
  overflow: hidden;
}
.co-open-house h3 .jp::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
.co-open-house h3 .jp::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
.co-open-house h3 .en {
  font-size: 2rem;
  color: #ED6A5A;
  display: block;
  margin-top: 10px;
  overflow: hidden;
}
.co-open-house h3 .en::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
.co-open-house h3 .en::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
.co-open-house h3::before {
  position: absolute;
  content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 21 20"><path fill="%23ED6A5A" d="M-15217,3220.5h3.5v9.5h14v-9.5h3.5l-10.5-10.5Z" transform="translate(15216.999 -3210)"/></svg>');
  width: 20px;
  height: 20px;
  left: 0px;
  right: 0px;
  top: 0px;
  bottom: -110px;
  margin: auto;
}
.co-open-house .inner .flex {
  align-items: center;
}
.co-open-house .img-box {
  width: 580px;
  height: 335px;
}
.co-open-house .text-box {
  width: calc(100% - 640px);
}
.co-open-house .text-box h4 {
  font-size: 3rem;
  color: #070303;
  margin-bottom: 25px;
}
.co-open-house .text-box h4:before {
  content: "";
  height: 1px;
  width: 30px;
  background-color: #070303;
  position: absolute;
  bottom: -10px;
  left: 0px;
}
.co-open-house .text-box table, .co-open-house .text-box th, .co-open-house .text-box td {
  font-size: 2.4rem;
  font-weight: 700;
  border-top: 0px;
  border-bottom: 0px;
  border-left: 0px;
  border-right: 0px;
}
.co-open-house .text-box table {
  margin-bottom: 30px;
}
.co-open-house .text-box tr:first-child th, .co-open-house .text-box tr:first-child td {
  padding: 0px;
}
.co-open-house .text-box th, .co-open-house .text-box td {
  background-color: transparent;
  color: #6D696A;
  padding: 5px 0 0 0;
}
.co-open-house .text-box th {
  width: 6em;
}
.co-open-house a.btn {
  margin: auto;
}

/*===========================

parts: 2F

===========================*/
*:not(#home) > .hgroup {
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 20px;
  height: 350px;
  align-items: center;
  padding: 0 85px;
  background-color: rgba(255, 255, 255, 0.5);
  background-blend-mode: lighten;
}
*:not(#home) > .hgroup h1 > * {
  display: block;
  overflow: hidden;
}
*:not(#home) > .hgroup h1 > *::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
*:not(#home) > .hgroup h1 > *::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
*:not(#home) > .hgroup h1 .jp {
  color: #070303;
  font-size: 4rem;
  font-weight: 900;
}
*:not(#home) > .hgroup h1 .en {
  margin-top: 10px;
  color: #510A11;
  font-size: 3rem;
}
*:not(#home) > .hgroup .bc {
  color: #070303;
  font-size: 1.8rem;
}
*:not(#home) > .hgroup .bc ol li {
  position: relative;
}
*:not(#home) > .hgroup .bc ol li a {
  text-decoration: underline;
}
*:not(#home) > .hgroup .bc ol li + li {
  padding-left: 40px;
}
*:not(#home) > .hgroup .bc ol li + li::before {
  position: absolute;
  content: "/";
  top: 0px;
  bottom: 0px;
  left: 15px;
  margin: auto;
  display: block;
}
*:not(#home) > .hgroup .bc .current-item span[property=name] {
  display: inline-block;
  padding: 0;
  margin-top: -3px;
  vertical-align: middle;
  max-width: 18em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
*:not(#home) > .hgroup .ilst[data-type=tree01] {
  bottom: -30px;
  left: -30px;
}

.detail-hgroup h1 {
  font-size: 4.5rem;
  line-height: 1.4em;
  color: #070303;
  margin-top: 35px;
  width: calc(100% - 100px);
}
.detail-hgroup h1 span {
  display: table;
  font-size: 2.4rem;
  color: #510A11;
  line-height: 1;
  padding-bottom: 2rem;
  position: relative;
  margin-bottom: 0.5em;
}
.detail-hgroup h1 span::after {
  content: "";
  display: block;
  position: absolute;
  width: 50px;
  height: 3px;
  background-color: #510A11;
  left: 0px;
  bottom: -2px;
}
.detail-hgroup .h2group {
  align-items: center;
  line-height: 1em;
}
.detail-hgroup .h2group h2 {
  margin-bottom: 0px;
}
.detail-hgroup .h2group h2 .jp {
  font-size: 4rem;
  color: #6D696A;
}
.detail-hgroup .h2group h2 .en {
  font-size: 3rem;
}
.detail-hgroup .h2group .bc {
  color: #070303;
  font-size: 1.8rem;
}
.detail-hgroup .h2group .bc ol li {
  position: relative;
}
.detail-hgroup .h2group .bc ol li a {
  text-decoration: underline;
}
.detail-hgroup .h2group .bc ol li + li {
  padding-left: 40px;
}
.detail-hgroup .h2group .bc ol li + li::before {
  position: absolute;
  content: "/";
  top: 0px;
  bottom: 0px;
  left: 15px;
  margin: auto;
  display: block;
}
.detail-hgroup .h2group .bc ol li:last-child {
  max-width: 15em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/*list pager*/
.pager {
  margin-top: 40px;
}
.pager ul {
  background-color: #ecceca;
  padding: 10px;
  height: 50px;
  border-radius: 35px;
  align-items: center;
  justify-content: center;
  max-width: 950px;
  margin: 0 auto;
}
.pager ul li {
  margin: 0 10px;
}
.pager ul li a {
  display: block;
  color: #510A11;
  background-color: #FFF;
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  border-radius: 5px;
}
.pager ul li span.page-numbers.current {
  background-color: #510A11;
  color: #FFF;
  display: block;
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  border-radius: 5px;
}
.pager ul li.prev, .pager ul li.next {
  top: 0px;
  bottom: 0px;
  margin: auto 0;
  display: flex;
  align-items: center;
}
.pager ul li.prev a, .pager ul li.next a {
  background-color: transparent;
  border: #510A11 2px solid;
  border-radius: 15px;
  display: flex !important;
  align-items: center;
  text-align: center;
}
.pager ul li.prev a svg, .pager ul li.next a svg {
  display: block;
  color: #510A11;
  fill: #510A11 !important;
  width: 4.5px;
  height: 7px;
  margin: 0 auto;
}
.pager ul li.prev {
  left: 10px;
}
.pager ul li.prev svg {
  transform: scale(-1, 1);
}
.pager ul li.next {
  right: 10px;
}
.pager ul li.current {
  pointer-events: none;
}
.pager ul li.current a {
  background-color: #510A11;
  color: #FFF;
}

/*detail pager*/
.pager.detail li a {
  display: flex;
  background-color: transparent;
  width: auto;
  height: auto;
}
.pager.detail li.prev, .pager.detail li.next {
  top: 0px;
  bottom: 0px;
  margin: auto 0;
  display: flex;
  align-items: center;
}
.pager.detail li.prev a, .pager.detail li.next a {
  border: none;
}
.pager.detail li.prev a p, .pager.detail li.next a p {
  width: 30px;
  height: 30px;
  display: block;
  content: "";
  border: #510A11 2px solid;
  border-radius: 15px;
  display: flex !important;
  align-items: center;
  text-align: center;
}
.pager.detail li.prev a p svg, .pager.detail li.next a p svg {
  display: block;
  color: #510A11 !important;
  fill: #510A11 !important;
  width: 4.5px;
  height: 7px;
  margin: 0 auto;
  position: relative;
}
.pager.detail li.prev a span, .pager.detail li.next a span {
  display: inline-block;
}
.pager.detail li.prev span, .pager.detail li.tolist span {
  margin-left: 10px;
}
.pager.detail li.next a {
  flex-direction: row-reverse;
}
.pager.detail li.next span {
  margin-right: 10px;
}
.pager.detail li.tolist a {
  align-items: center;
}
.pager.detail li.tolist svg {
  width: 21px;
  height: auto;
  fill: #510A11 !important;
  color: #510A11 !important;
}

/*===========================

voices

===========================*/
#voices .voices-list a,
#home .voices a {
  display: block;
}
#voices .voices-list .img-box,
#home .voices .img-box {
  width: 430px;
  height: 265px;
}
#voices .voices-list .text-box .name,
#home .voices .text-box .name {
  color: #510A11;
  font-weight: bold;
  margin: 10px 0 20px;
  display: block;
  position: relative;
}
#voices .voices-list .text-box .name::before,
#home .voices .text-box .name::before {
  content: "";
  height: 1px;
  width: 30px;
  background-color: #510A11;
  position: absolute;
  bottom: -8px;
  left: 0px;
}

#voices .voices-article a {
  display: block;
}

/*===========================

news

===========================*/
#news .news-list ul,
#home .news ul {
  gap: 30px;
}
#news .news-list .img-box,
#home .news .img-box {
  width: 260px;
  height: 170px;
  margin-right: 20px;
}
#news .news-list .text-box,
#home .news .text-box {
  width: calc(100% - 280px);
}
#news .news-list .text-box .date-cat,
#home .news .text-box .date-cat {
  gap: 8px;
  align-items: center;
  position: relative;
  flex-direction: row;
  margin-bottom: 20px;
}
#news .news-list .text-box .cat,
#home .news .text-box .cat {
  display: inline-block;
  border-radius: 5px;
  font-size: 1.2rem;
  line-height: 1em;
  padding: 8px;
}
#news .news-list .text-box .date,
#home .news .text-box .date {
  display: block;
  color: #510A11;
  font-weight: bold;
  line-height: 1em;
}
#news .news-list .text-box .title,
#home .news .text-box .title {
  overflow: hidden;
}
#news .news-list .text-box .title::before,
#home .news .text-box .title::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
#news .news-list .text-box .title::after,
#home .news .text-box .title::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}

.cat.news {
  background-color: #D0BBBD;
  color: #070303;
}

.cat.ophouse {
  background-color: #ED6A5A;
  color: #FFF;
}

.cat.others {
  background-color: #6D696A;
  color: #FFF;
}

/*===========================

bottom 2 button

===========================*/
.co-btm-btn {
  margin-top: 100px;
}
.co-btm-btn .contact a {
  background-color: #ED6A5A;
  align-items: center;
  text-align: center;
  color: #FFF;
  padding: 25px;
  border-radius: 20px;
}
.co-btm-btn .contact a .img-box {
  width: 50%;
  height: 200px;
}
.co-btm-btn .contact a .text-box {
  display: block;
  width: calc(50% - 30px);
  margin-left: 30px;
}
.co-btm-btn .contact a .text-box .icon {
  display: flex;
  justify-content: center;
  align-items: center;
}
.co-btm-btn .contact a .text-box .icon svg {
  width: 48px;
  height: auto;
}
.co-btm-btn .contact a .text-box .icon span {
  display: inline-block;
  margin-left: 20px;
  font-size: 3.2rem;
}
.co-btm-btn .contact a .text-box .desc {
  display: block;
  margin-top: 20px;
  font-size: 1.6rem;
  text-align: justify;
}

/*===========================

footer

===========================*/
footer {
  background-color: #070303;
  color: #FFF;
  margin-top: 100px;
  padding: 100px 0;
}
footer .logo a {
  display: block;
  margin-bottom: 20px;
}
footer .logo a img {
  width: 285px;
  height: auto;
}
footer .logo .name {
  margin-bottom: 5px;
}
footer .logo .address {
  font-size: 1.6rem;
}
footer .foot-nav {
  width: 900px;
}
footer .foot-nav ul {
  justify-content: flex-start;
  gap: 30px;
}
footer .foot-nav ul li {
  width: -moz-fit-content;
  width: fit-content;
}
footer .foot-nav ul li a {
  color: #FFF;
  display: block;
}
footer .foot-nav ul li a * {
  display: block;
  overflow: hidden;
}
footer .foot-nav ul li a *::before {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8) * 0.5em);
}
footer .foot-nav ul li a *::after {
  content: "";
  display: block;
  height: 0;
  width: 0;
  margin-top: calc((1 - 1.8 * 0.88) * 0.5em);
}
footer .foot-nav ul li a .en {
  color: #A2A7A5;
  font-size: 1.6rem;
  margin-top: 10px;
}
footer .tel-copy-box {
  margin-top: 60px;
  align-items: flex-end;
}
footer .tel-copy-box .tel {
  align-items: center;
}
footer .tel-copy-box .tel svg {
  height: 42px;
  margin-right: 20px;
  width: auto;
}
footer .tel-copy-box .tel a {
  font-family: "Quicksand", "Helvetica Neue", Arial, "Hiragino Sans", "Yu Gothic", sans-serif !important;
}
footer .gotop {
  display: flex;
  padding: 0 20px;
  color: #FFF;
  background-color: black;
  align-items: center;
  text-align: center;
  font-size: 2.4rem;
  line-height: 55px;
  border-radius: 20px 20px 0 0;
  top: -55px;
  right: 60px;
  z-index: 9999;
}
footer .gotop:hover {
  filter: alpha(opacity=0);
  opacity: 1;
}
footer .gotop span {
  flex-grow: 1;
}
footer .gotop span img {
  margin-right: 10px;
}
footer .gotop:hover span {
  filter: alpha(opacity=25);
  opacity: 0.75;
  transition: all 0.3s ease;
}
footer .gotop::before {
  content: url("../images/common/h-mask-r-blk.svg");
  width: 20px;
  height: auto;
  position: absolute;
  bottom: -18px;
  left: -19px;
  transform: scale(1, -1);
}
footer .gotop::after {
  content: url("../images/common/h-mask-r-blk.svg");
  width: 20px;
  height: auto;
  position: absolute;
  bottom: -18px;
  right: -19px;
  transform: scale(-1, -1);
}
footer .gotop p {
  width: auto;
  margin: 0 auto;
  display: table;
  height: 55px;
  vertical-align: middle;
}
footer .gotop p * {
  line-height: 55px;
}
footer .gotop .icon-tel {
  width: 10px;
  margin-right: 15px;
  height: auto;
}
footer .gotop span {
  vertical-align: middle;
}