@charset "UTF-8";
:root {
  --font-family-ja: "Shippori Mincho", serif;
  --font-family-en: "Allison", cursive;
  --font-family-en-2: "Bellefair", serif;
  --font-size-base: 0.875rem;
  --font-size-16: 0.9375rem;
  --font-size-18: 1rem;
  --font-size-20: 1rem;
  --font-size-24: 1.25rem;
  --font-size-30: 1.25rem;
  --color-main: #3E3A39;
  --color-link: #fff;
  --color-pink-1: #EFDDDD;
  --color-pink-2: #A7758B;
  --color-pink-3: #AD5D80;
  --color-pink-4: #E9D9D6;
  --color-brown-1: #B6967C;
  --color-beige: #F5F5F1;
  --header-height: 50px;
  --inner-padding: 15px;
  --line-height: 1.8;
  --section-margin: 60px;
}

@media screen and (min-width: 768px) {
  :root {
    --font-size-base: 0.9375rem;
    --font-size-16: 1rem;
    --font-size-18: 1.125rem;
    --font-size-20: 1.25rem;
    --font-size-24: 1.5rem;
    --font-size-30: 1.875rem;
    --header-height: 90px;
    --inner-padding: 50px;
    --line-height: 2;
    --section-padding: 80px;
  }
}
* {
  box-sizing: border-box;
  word-break: break-all;
}

body {
  font-size: var(--font-size-base);
  font-family: var(--font-family-ja);
  font-weight: 400;
  line-height: 1.5;
  color: var(--color-main);
}

a, button, input, textarea {
  color: inherit;
  font-size: inherit;
  font-family: inherit;
}

a {
  cursor: pointer;
  text-decoration: none;
}

ul, ol {
  list-style: none;
}

p {
  line-height: var(--line-height);
}

address {
  font-style: normal;
}

input, textarea {
  font-family: inherit;
  font-size: inherit;
}

html {
  font-size: 4.2666666667vw;
}

@media screen and (min-width: 375px) {
  html {
    font-size: 100%;
  }
}
@media screen and (min-width: 768px) {
  html {
    font-size: 1.3333333333vw;
  }
}
@media screen and (min-width: 1200px) {
  html {
    font-size: 100%;
  }
}
/** utilities **/
.u-only-pc {
  display: none;
}

.u-only-sp {
  display: block;
}

@media screen and (min-width: 768px) {
  .u-only-pc {
    display: block;
  }
  .u-only-sp {
    display: none;
  }
}
/** layout **/
.l-wrapper {
  position: relative;
  padding-top: var(--header-height);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.l-main {
  flex: 1;
  margin-top: var(--header-height);
}

.l-container {
  position: relative;
  width: min(100% - var(--inner-padding) * 2, 1100px);
  margin-inline: auto;
}

.l-section {
  margin-bottom: var(--section-margin);
}

/** articles **/
.c-article {
  width: min(100%, 340px);
  margin-inline: auto;
  height: auto;
}

.c-article a {
  height: 100%;
}

.c-article__figure {
  margin-bottom: 20px;
  overflow: hidden;
  --scale: 1;
}
.c-article__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 340/240;
  height: auto;
  background-color: aliceblue;
  transform: scale(var(--scale));
  transition: transform 0.3s ease-in-out;
}

.c-article__lists {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.c-article__date {
  letter-spacing: 0.2em;
  font-size: 0.75rem;
  font-family: var(--font-family-en-2);
}

.c-article__category {
  background-color: #C79B9B;
  color: #fff;
  padding: 0.3em 1.5em;
  border-radius: 15px;
  font-size: 0.75rem;
  text-align: center;
  white-space: nowrap;
}

.c-article__title {
  font-size: 0.875rem;
  font-weight: 700;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; /* 制限したい行数が3の場合 */
  overflow: hidden;
}

@media screen and (min-width: 768px) {
  .c-article a:hover .c-article__figure {
    --scale: 1.075;
  }
  .c-article__figure {
    margin-bottom: 30px;
  }
  .c-article__title {
    font-size: 1.25rem;
  }
  .c-article__lists {
    margin-bottom: 30px;
  }
  .c-article__date {
    font-size: 0.875rem;
  }
  .c-article__category {
    font-size: 0.8125rem;
    padding: 0.5em 2.25em;
  }
}
/** title **/
.c-title-page {
  text-align: center;
}
.c-title-page span {
  font-family: var(--font-family-en-2);
  font-size: var(--font-size-30);
  text-transform: capitalize;
  letter-spacing: 0.1em;
}

.c-title-page2 {
  text-align: center;
  font-size: var(--font-size-30);
  font-weight: 400;
}

/** lists **/
.c-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 1.6666666667em;
  border-top: 1px solid #B49393;
}
.c-list:last-child {
  border-bottom: 1px solid #B49393;
}

.c-list li {
  position: relative;
  line-height: var(--line-height);
  padding-left: 1em;
}
.c-list li::before {
  content: "";
  position: absolute;
  top: calc(var(--font-size-base) * var(--line-height) / 2);
  left: 0;
  transform: translate(50%, -50%);
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background-color: var(--color-main);
}

.c-list__tel {
  font-family: var(--font-family-en-2);
  letter-spacing: 0.1em;
}

.c-list a {
  color: var(--color-main);
  transition: color 0.3s ease-out;
}

@media screen and (min-width: 768px) {
  .c-list {
    grid-template-columns: 180px 1fr;
    gap: 70px;
  }
  .c-list a:hover {
    color: var(--color-pink-3);
  }
}
/** button **/
.c-button-1 {
  --width: min(100%, 440px);
  --height: 50px;
  --animation: translateX(-100%);
  --animation-color: #D487A9;
  --background-color: #AD5D80;
  --color: #fff;
  --size: 1rem;
  cursor: pointer;
  position: relative;
  border: none;
  background-color: var(--background-color);
  color: var(--color);
  width: var(--width);
  height: var(--height);
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  letter-spacing: 0.1em;
  font-size: var(--size);
  overflow: hidden;
}
.c-button-1 span {
  position: relative;
  z-index: 1;
}
.c-button-1::after {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  border-top: 1px solid var(--color);
  border-right: 1px solid var(--color);
  rotate: 45deg;
  position: absolute;
  top: 50%;
  right: 9.0909090909%;
  translate: 0 -50%;
}
.c-button-1::before {
  content: "";
  width: 100%;
  border-bottom: var(--height) solid var(--animation-color);
  border-right: 50px solid transparent;
  position: absolute;
  top: 0;
  left: 0;
  transform: var(--animation);
  transition: transform 0.3s ease-out;
}

.c-button-1.c-button-1--transparent {
  --width: min(100%, 490px);
  --animation-color: #AD5D80;
  --background-color: transparent;
  --color: #AD5D80;
  border: 1px solid var(--animation-color);
}

.p-contact__form-body .c-button-1 {
  --height: 65px;
}

@media screen and (min-width: 768px) {
  .p-contact__form-body .c-button-1,
  .c-button-1 {
    --height: 80px;
    --size: 1.25rem;
  }
  .c-button-1:hover {
    --animation: translateX(0%);
  }
  .c-button-1.c-button-1--transparent:hover {
    --color: #fff;
  }
}
.c-button-2 {
  --font-size: 0.75rem;
  --width: 2.5rem;
  --color: #3e3a39;
  margin-inline-start: auto;
  display: flex;
  align-items: center;
  gap: 20px;
  width: -moz-fit-content;
  width: fit-content;
  font-size: var(--font-size);
}
.c-button-2 span {
  text-transform: uppercase;
  letter-spacing: 0.2em;
  font-family: var(--font-family-en-2);
  color: var(--color);
  transition: color 0.3 ease-out;
}
.c-button-2 svg {
  transition: stroke 0.3s ease-out;
  stroke: var(--color);
  width: var(--width);
}

@media screen and (min-width: 768px) {
  .c-button-2 {
    --font-size: 0.875rem;
    --width: 4.375rem;
  }
  .c-button-2:hover {
    --color: #AD5D80;
  }
}
/** パンクズ **/
.c-breadcrumbs {
  font-size: 0.75rem;
  line-height: 1.5;
}
.c-breadcrumbs a {
  color: var(--color-main);
  transition: color 0.3s ease-out;
}
.c-breadcrumbs > span:first-of-type {
  padding-right: 6px;
  text-transform: uppercase;
}
.c-breadcrumbs > span:not(:first-of-type) {
  padding: 0 6px;
}

@media screen and (min-width: 768px) {
  .c-breadcrumbs a:hover {
    color: var(--color-pink-3);
  }
}
/** pagenation **/
.c-pagenation {
  display: flex;
  align-items: center;
  justify-content: center;
}
.c-pagenation .wp-pagenavi {
  --gap: 12px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--gap);
}
.c-pagenation .page, .c-pagenation .current, .c-pagenation .last, .c-pagenation .first {
  --size: 2.375rem;
  width: var(--size);
  height: var(--size);
  display: inline-block;
  vertical-align: middle;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family-en-2);
  line-height: normal;
  letter-spacing: 0.1em;
  font-weight: 400;
  transition: filter 0.3s ease-out;
  border: 1px solid var(--color-brown-1);
  border-radius: 50%;
  color: var(--color-brown-1);
}
.c-pagenation .extend, .c-pagenation .first {
  align-self: center;
}
.c-pagenation .current {
  color: #fff;
  background-color: var(--color-brown-1);
}
.c-pagenation .page, .c-pagenation .last, .c-pagenation .first {
  background-color: #fff;
  color: var(--color-brown-1);
}

@media screen and (min-width: 768px) {
  .c-pagenation .wp-pagenavi {
    --gap: 18px;
  }
  .c-pagenation .page, .c-pagenation .current, .c-pagenation .last, .c-pagenation .first {
    --size: 3.125rem;
  }
}
.previouspostslink {
  scale: -1 1;
}

.nextpostslink,
.previouspostslink {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.6875rem;
  height: 1px;
  background-color: var(--color-brown-1);
  position: relative;
}
.nextpostslink::before,
.previouspostslink::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  translate: 0 -50%;
  rotate: 45deg;
  width: 25%;
  height: 1px;
  background-color: var(--color-brown-1);
  transform-origin: center right;
}
.nextpostslink::after,
.previouspostslink::after {
  content: "";
  position: absolute;
  width: 100%;
  aspect-ratio: 1;
  display: block;
}

/** swiper **/
.swiper-button-disabled {
  opacity: 0.5;
  pointer-events: none;
}

.swiper__buttons {
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
}

.swiper__prev,
.swiper__next {
  --color: var(--color-brown-1);
  --size: 60px;
  width: var(--size);
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--color-main);
  border-radius: 50%;
}
.swiper__prev svg,
.swiper__next svg {
  stroke: var(--color-main);
}

.swiper__prev {
  scale: -1 1;
}

@media screen and (min-width: 768px) {
  .swiper__buttons {
    display: none;
  }
}
.l-header {
  display: block;
  width: 100%;
  height: var(--header-height);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background-color: rgba(255, 255, 255, 0.6);
}

.l-header__inner {
  height: inherit;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 0 0 15px;
  z-index: 999;
  position: relative;
}

.l-header__logo {
  width: min(100%, 120px);
  display: block;
  transition: opacity 0.3s ease-out;
}
.l-header__logo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 210/50;
}

.l-header__nav {
  display: none;
}

.l-header__nav-items {
  display: flex;
  align-items: center;
  gap: 30px;
}

.l-header__nav-item a {
  --color: #3E3A39;
  color: var(--color);
  transition: color 0.3s ease-out;
}

.l-header__nav-line {
  --color: #AD5D80;
  --height: 50px;
  width: min(100%, 180px);
  height: var(--height);
  border: 1px solid #AD5D80;
  border-radius: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  position: relative;
  overflow: hidden;
}
.l-header__nav-line span {
  color: var(--color);
  font-size: 0.875rem;
  z-index: 2;
}
.l-header__nav-line::before {
  content: "";
  width: 100%;
  border-bottom: var(--height) solid #AD5D80;
  border-right: 50px solid transparent;
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-100%);
  transition: transform 0.3s ease-out;
}

/*** sp ***/
.l-header__sp-nav {
  position: fixed;
  top: var(--header-height);
  right: 0;
  z-index: 999;
  background-color: #AD5D80;
  width: 100%;
  padding: 40px 40px 100px;
  text-transform: uppercase;
  overflow: scroll;
  height: calc(100vh - var(--header-height));
  transform: translateX(100%);
  transition: transform 0.3s ease-out;
}

.l-header__sp-nav.is-active {
  transform: translateX(0%);
}

.l-header__sp-nav-item a {
  border-top: 1px solid #fff;
  color: #fff;
  font-size: 0.875rem;
  padding: 20px 0;
  display: block;
}

.l-header__sp-nav-item:last-of-type a {
  border-bottom: 1px solid #fff;
}

.l-header__buttons {
  display: flex;
}

.l-header__hamburger,
.l-header__phone {
  aspect-ratio: 1;
  height: var(--header-height);
  width: auto;
}

.l-header__phone {
  background-color: #D487A9;
  display: flex;
  align-items: center;
  justify-content: center;
}
.l-header__phone img {
  display: block;
  width: 26%;
  aspect-ratio: 13/18.5;
}

.l-header__hamburger {
  --space: 5px;
  background-color: #AD5D80;
  border: none;
  position: relative;
}
.l-header__hamburger span {
  background-color: #fff;
  width: 30%;
  height: 1px;
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
}
.l-header__hamburger span:nth-of-type(1) {
  transform: translate(-50%, calc(-50% - var(--space)));
}
.l-header__hamburger span:nth-of-type(2) {
  transform: translate(-50%, -50%);
}
.l-header__hamburger span:nth-of-type(3) {
  transform: translate(-50%, calc(-50% + var(--space)));
}

.mask {
  z-index: 99;
  position: fixed;
  top: var(--header-height);
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-out;
}

.mask.is-active {
  opacity: 1;
  visibility: visible;
}

@media screen and (min-width: 600px) {
  .l-header__sp-nav {
    width: 50%;
  }
}
@media screen and (min-width: 768px) {
  .l-header__logo {
    width: min(100%, 210px);
  }
  .l-header__logo:hover {
    opacity: 0.8;
  }
  .l-header__nav-item a:hover {
    --color: #AD5D80;
  }
  .l-header__nav-line:hover {
    --color: #fff;
  }
  .l-header__nav-line:hover::before {
    transform: translateX(0%);
  }
  .l-header__hamburger {
    --space: 8px;
  }
}
@media screen and (min-width: 1200px) {
  .l-header__inner {
    padding: 0 24px;
  }
  .l-header__nav {
    flex: 1;
    justify-content: flex-end;
    display: flex;
    align-items: center;
    gap: 40px;
  }
  .l-header__buttons {
    display: none;
  }
}
/** footer section **/
.l-footer__section {
  padding: 50px 0 80px;
}

.l-footer__container {
  display: grid;
  gap: 40px;
  margin-bottom: 35px;
}

.l-footer__logo {
  display: block;
  width: clamp(120px, 18.6363636364vw, 205px);
  height: auto;
  margin-inline: auto;
}
.l-footer__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.l-footer__body-top {
  margin-bottom: 35px;
}

.l-footer__title {
  display: none;
}

.l-footer__name {
  margin-bottom: 14px;
  text-align: center;
  font-size: 1rem;
}

.l-footer__info-detail {
  margin-bottom: 24px;
  margin-inline: auto;
  width: -moz-fit-content;
  width: fit-content;
}

.l-footer__sns {
  text-align: center;
  display: block;
}

.l-footer__nav {
  display: none;
}

.l-footer__nav-items {
  text-transform: uppercase;
  line-height: 2;
  display: flex;
  gap: 25px;
}

.l-footer__info-detail a,
.l-footer__nav-items a {
  transition: color 0.3s ease-out;
}

.l-footer__links {
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

.l-footer__link {
  color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  width: min(100%, 340px);
  margin-inline: auto;
  transition: opacity 0.3s ease-out;
}

.l-footer__link-image {
  display: block;
  width: 60.5882352941%;
}

.l-footer__link--brown {
  background-color: #B49680;
}

.l-footer__link--pink {
  background-color: #B49393;
}

.l-footer__link-text img {
  width: auto;
  height: 0.9375rem;
  aspect-ratio: 112/15;
  margin-bottom: 2px;
}

.l-footer__link-text div {
  --letter-spacing: .1em;
  font-size: 0.8125rem;
  letter-spacing: var(--letter-spacing);
}

.l-footer__link--pink div {
  text-transform: uppercase;
  font-family: var(--font-family-en-2);
  letter-spacing: 0.2em;
}

.l-footer__copy {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .l-footer__container {
    margin-bottom: 50px;
    grid-template-columns: 1fr 65%;
  }
  .l-footer__logo {
    margin-inline: 0;
  }
  .l-footer__body-top {
    margin-bottom: 30px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }
  .l-footer__nav {
    display: block;
  }
  .l-footer__title {
    display: block;
    font-size: 1.25rem;
    font-family: var(--font-family-en-2);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    font-weight: 400;
    color: #3E3A39;
    margin-bottom: 1em;
  }
  .l-footer__name {
    font-size: 1.25rem;
    text-align: left;
  }
  .l-footer__info-detail {
    margin-inline: 0;
  }
  .l-footer__info-detail a:hover,
  .l-footer__nav-items a:hover {
    color: var(--color-pink-3);
  }
  .l-footer__sns {
    text-align: left;
  }
  .l-footer__links {
    grid-template-columns: repeat(2, 1fr);
    gap: 33px;
  }
  .l-footer__link:hover {
    opacity: 0.8;
  }
  .l-footer__copy {
    text-align: right;
  }
}
/** heros **/
.p-top__hero {
  padding-top: 25px;
  position: relative;
}

.p-top__hero-body {
  position: relative;
  z-index: 1;
  padding-bottom: 45px;
}

.p-top__hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: -1;
}

/** slide **/
.p-top__hero-body-container {
  position: relative;
  width: min(100%, 1600px);
  margin-inline: auto;
}

.p-top__hero-slides {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 23px;
  width: 100%;
  margin-bottom: 85px;
}

.p-top__hero-slide:nth-child(3) {
  display: none;
}

.p-top__hero-slide:nth-child(1),
.p-top__hero-slide:nth-child(3) {
  transform: translateY(30px);
}

.p-top__hero-slide:nth-child(2) {
  transform: translateY(-7px);
}

/** title **/
.p-top__hero-title {
  text-align: center;
}
.p-top__hero-title h1 {
  font-size: 1.375rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}
.p-top__hero-title p {
  font-size: 0.875rem;
  font-weight: 500;
}

.p-top__hero-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 340/555;
}

/** text **/
.p-top__hero-icon {
  display: none;
  width: 2.375rem;
  height: 14.3125rem;
  position: absolute;
  top: 50%;
  left: min(7.1428571429vw, 100px);
  transform: translateY(-50%);
}

@media screen and (min-width: 768px) {
  .p-top__hero {
    padding-top: 50px;
  }
  .p-top__hero-slides {
    width: 74.0277777778%;
    margin-left: auto;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 50px;
  }
  .p-top__hero-slide:nth-child(3) {
    display: block;
  }
  .p-top__hero-slide:nth-child(1),
  .p-top__hero-slide:nth-child(3) {
    transform: translateY(-12px);
  }
  .p-top__hero-slide:nth-child(2) {
    transform: translateY(30px);
  }
  .p-top__hero-title {
    padding-left: 90px;
    text-align: left;
  }
  .p-top__hero-title h1 {
    font-size: 2.25rem;
    margin-bottom: 0px;
  }
  .p-top__hero-title p {
    font-size: 1.25rem;
  }
  .p-top__hero-icon {
    display: block;
  }
}
/** about **/
.p-style__section,
.p-top__section {
  margin-bottom: 85px;
  padding-bottom: 50px;
  position: relative;
}

.p-top__section {
  padding-top: 35px;
}

.p-top__section-bg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 90%;
  z-index: -3;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-top__about {
  margin-bottom: 50px;
}

.p-top__about-icon-1 {
  position: absolute;
  top: 0;
  left: 0;
  width: min(20.9285714286vw, 293px);
  aspect-ratio: 293/490;
  height: auto;
  z-index: -2;
  translate: -15% -5%;
}

@media screen and (min-width: 768px) {
  .p-top__section-bg {
    height: 83.1765232975%;
  }
  .p-top__about-icon-1 {
    translate: -52% 15%;
  }
}
.p-top__about-header {
  text-align: center;
  margin-bottom: 60px;
}
.p-top__about-header h2 {
  font-family: var(--font-family-en);
  letter-spacing: 0.1em;
  font-weight: 400;
  font-size: 1.875rem;
  color: var(--color-pink-1);
  text-transform: capitalize;
}

.p-top__about-header-msg {
  margin-bottom: 20px;
  font-size: var(--font-size-30);
}

.p-top__about-header-p {
  font-size: var(--font-size-16);
}

.p-top__about-figure {
  margin-bottom: 30px;
}
.p-top__about-figure img {
  display: block;
  width: min(100%, 814px);
  height: auto;
  aspect-ratio: 814/543;
  margin-inline: auto;
}

.p-top__about-icon {
  display: block;
  margin-inline: auto;
  width: 11.76rem;
  aspect-ratio: 353/74;
  height: auto;
  margin-bottom: 30px;
}

.p-top__about-block {
  margin-bottom: 40px;
}

.p-top__about-h3 {
  font-size: var(--font-size-24);
  font-weight: 500;
  margin-bottom: 30px;
  text-align: center;
}

.p-top__about-figure-items {
  --_gap: 65px;
  margin-bottom: 30px;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--_gap);
  width: min(100%, 870px);
  margin-inline: auto;
}

.p-top__about-figure-item img {
  display: block;
  width: min(100%, 400px);
  aspect-ratio: 400/167;
  height: auto;
  margin-inline: auto;
}

.p-top__about-figure-item:first-of-type {
  position: relative;
}
.p-top__about-figure-item:first-of-type::after {
  content: "";
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background-color: #D9CECE;
  width: 40px;
  height: 40px;
  position: absolute;
  top: calc(100% + var(--_gap) / 2);
  left: 50%;
  transform: translate(-50%, -50%);
}

.p-top__about-lists {
  margin-bottom: 50px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px 5px;
}

.p-top__about-list {
  background-color: var(--color-brown-1);
  color: #fff;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-size-16);
  text-align: center;
}

.p-top__about-box {
  background-color: #fff;
  border-radius: 20px;
  padding: 40px 25px;
}

.p-top__about-box-items {
  margin-bottom: 50px;
  width: min(100%, 950px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 30px;
}

.p-top__about-box-item figure {
  margin-bottom: 20px;
}
.p-top__about-box-item figure img {
  display: block;
  width: max(200px, 53.3333333333%);
  margin-inline: auto;
  height: auto;
  aspect-ratio: 1;
}

.p-top__about-box-item h3 {
  margin-bottom: 15px;
  font-size: var(--font-size-20);
  font-weight: 700;
  color: var(--color-pink-2);
  text-align: center;
}

.p-top__about-box-design {
  background-color: var(--color-beige);
  padding: 50px 20px 30px;
  position: relative;
}
.p-top__about-box-design::before {
  content: "desgin";
  display: block;
  font-size: 3rem;
  color: #DFDFD4;
  letter-spacing: 0.1em;
  font-family: var(--font-family-en);
  text-transform: capitalize;
  position: absolute;
  top: 0;
  right: 0;
  transform: translateY(-50%);
}

.p-top__about-box-design p {
  margin-bottom: 15px;
  text-align: center;
}

.p-top__about-box-design-items {
  width: min(100%, 785px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;
}

.p-top__about-box-design-item img {
  display: block;
  width: min(100%, 230px);
  height: auto;
  aspect-ratio: 228/90;
  margin-inline: auto;
}
.p-top__about-box-design-item figcaption {
  text-align: center;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .p-style__section,
  .p-top__section {
    margin-bottom: 125px;
    padding-bottom: 100px;
  }
  .p-top__section {
    padding-top: 165px;
  }
  .p-top__about {
    margin-bottom: 90px;
  }
  .p-top__about-header h2 {
    font-size: 4.375rem;
  }
  .p-top__about-figure {
    margin-bottom: 90px;
  }
  .p-top__about-figure-items {
    margin-bottom: 76px;
    grid-template-columns: repeat(2, 1fr);
  }
  .p-top__about-lists {
    margin-bottom: 90px;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }
  .p-top__about-box {
    border-radius: 20px;
    padding: 60px 50px 70px;
  }
  .p-top__about-box-items {
    margin-bottom: 75px;
    grid-template-columns: repeat(3, 1fr);
    gap: 50px;
  }
  .p-top__about-figure-item:first-of-type::after {
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    top: 50%;
    left: calc(100% + var(--_gap) / 2);
    transform: translate(-50%, -50%);
  }
  .p-top__about-box-item figure {
    margin-bottom: 30px;
  }
  .p-top__about-box-item figure img {
    width: 100%;
  }
  .p-top__about-box-design {
    padding: 50px;
  }
  .p-top__about-box-design::before {
    font-size: 6.25rem;
  }
  .p-top__about-box-design p {
    margin-bottom: 35px;
  }
  .p-top__about-box-design-items {
    grid-template-columns: repeat(3, 1fr);
    gap: 50px;
  }
  .p-top__about-icon {
    width: 22.0625rem;
  }
}
/** voice **/
.p-top__voice {
  position: relative;
}

.p-top__voice-container {
  position: relative;
  width: min(100%, 1400px);
  margin-inline: auto;
}

.p-top__voice-icon-1 {
  position: absolute;
  top: 0;
  left: 0;
  width: min(45.75vw, 549px);
  height: auto;
  aspect-ratio: 549/475.32;
  z-index: -2;
  translate: -36% -53%;
}

.p-top__voice-title {
  text-align: center;
  line-height: 1;
  margin-bottom: max(210px, 56vw);
}
.p-top__voice-title span {
  font-size: 2.8125rem;
  font-family: var(--font-family-en);
  letter-spacing: 0.1em;
  text-transform: capitalize;
}
.p-top__voice-title h2 {
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}

.p-top__voice-items {
  margin-bottom: 30px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px 20px;
}

.p-top__voice-item {
  background-color: #fff;
  border-radius: 20px;
  padding: 45px 35px;
}

.p-top__voice-item-text {
  margin-bottom: 10px;
}

.p-top__voice-item-name {
  text-align: right;
}

.p-top__voice-image {
  position: absolute;
  top: 90px;
  right: 0;
  display: block;
  z-index: -1;
  width: max(290px, 77.3333333333vw);
  height: auto;
}

@media screen and (min-width: 768px) {
  .p-top__voice {
    padding-top: 130px;
  }
  .p-top__voice-items {
    margin-bottom: 70px;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
  }
  .p-top__voice-item:nth-child(1) {
    grid-row: 1/3;
  }
  .p-top__voice-title {
    text-align: left;
    margin-bottom: min(14.2857142857vw, 200px);
  }
  .p-top__voice-title span {
    font-size: 6.25rem;
  }
  .p-top__voice-title h2 {
    font-size: 1.5rem;
  }
  .p-top__voice-image {
    top: -130px;
    width: min(55.5714285714vw, 778px);
  }
}
/** news **/
.p-top__news {
  margin-bottom: 60px;
}

.p-top__newws-title {
  position: relative;
  margin-bottom: 30px;
  text-align: center;
  font-size: 0.9375rem;
}
.p-top__newws-title::before {
  position: absolute;
  content: attr(data-number);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: var(--color-pink-4);
  font-size: 5rem;
  font-weight: 400;
  font-family: var(--font-family-en);
  letter-spacing: 0.1em;
  text-transform: capitalize;
  z-index: -1;
}

.p-top__news-items {
  margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
  .p-top__news {
    margin-bottom: 120px;
  }
  .p-top__newws-title {
    margin-bottom: 85px;
    font-size: 1.5rem;
  }
  .p-top__newws-title::before {
    font-size: 12.5rem;
  }
  .p-top__news-items {
    margin-bottom: 60px;
    display: grid;
    gap: 60px;
    grid-template-columns: repeat(3, 1fr);
  }
}
/*** footer ***/
.l-footer__contact {
  position: relative;
  background-color: #B49680;
  padding: 60px 0 50px;
  overflow: clip;
}

.l-footer__contact-icon {
  position: absolute;
  bottom: -3px;
  right: -80px;
  width: min(90.1333333333vw, 338px);
  height: auto;
  aspect-ratio: 338/287;
}

.l-footer__contact-title,
.l-footer__contact p {
  color: #fff;
}

.l-footer__contact-title {
  margin-bottom: 20px;
  text-align: center;
  font-size: 1.75rem;
  font-family: var(--font-family-en-2);
  letter-spacing: 0.2em;
  font-weight: 400;
  text-transform: uppercase;
}

.l-footer__contact p {
  text-align: center;
  margin-bottom: 15px;
}

.l-footer__contact-tel {
  text-align: center;
  margin-bottom: 30px;
}

.l-footer__contact-tel a {
  --color: #fff;
  display: flex;
  gap: 5px;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family-en-2);
  color: var(--color);
  letter-spacing: 0.1em;
}
.l-footer__contact-tel a svg {
  fill: var(--color);
  transition: fill 0.3s ease-out;
}
.l-footer__contact-tel a div {
  font-size: 1.5rem;
}

.l-footer__contact-buttons {
  width: min(100%, 720px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px 40px;
}

.l-footer__contact-button {
  --height: 80px;
  --transform: translateX(-100%);
  --width: min(100%, 340px);
  margin-inline: auto;
  width: var(--width);
  height: var(--height);
  background-color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  position: relative;
  overflow: hidden;
}
.l-footer__contact-button img {
  display: block;
  z-index: 2;
}
.l-footer__contact-button div {
  z-index: 2;
}
.l-footer__contact-button::before {
  content: "";
  width: 100%;
  border-bottom: var(--header-height) solid #DCC9BC;
  border-right: 50px solid transparent;
  position: absolute;
  top: 0;
  left: 0;
  transform: var(--transform);
  transition: transform 0.3s ease-out;
}

@media screen and (min-width: 768px) {
  .l-footer__contact {
    padding: 100px 0 85px;
  }
  .l-footer__contact-tel {
    margin-bottom: 50px;
  }
  .l-footer__contact-tel a {
    gap: 5px;
    transition: color 0.3s ease-out;
  }
  .l-footer__contact-tel a div {
    font-size: 2.6875rem;
  }
  .l-footer__contact-tel a:hover {
    --color: var(--color-pink-3);
  }
  .l-footer__contact-buttons {
    grid-template-columns: repeat(2, 1fr);
  }
  .l-foter__contact-button {
    --heoight: 100px;
    --width: min(100%, 300px);
  }
  .l-footer__contact-button:hover {
    --transform: translateX(0%);
  }
  .l-footer__contact-icon {
    bottom: -15px;
    right: -15px;
    width: min(24.1428571429vw, 338px);
  }
}
.p-about__title {
  margin-bottom: 35px;
}

.p-about__section {
  --padding: 60px;
  position: relative;
  padding: var(--padding) 0;
  overflow: clip;
}

.p-about__section-image {
  margin-bottom: 40px;
}

.p-about__section-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1100/400;
}

.p-about__header-p,
.p-about__header-msg {
  text-align: center;
}

.p-about__header-msg {
  margin-bottom: 1em;
  font-size: var(--font-size-30);
  line-height: 1.5;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-about__section {
    --padding: 100px;
  }
  .p-about__title {
    margin-bottom: 50px;
  }
  .p-about__section-image {
    margin-bottom: 50px;
  }
}
/** access **/
.p-about__access-title {
  font-size: var(--font-size-24);
  margin-bottom: 1.4583333333em;
}

.p-about__access-items {
  display: grid;
  grid-template-columns: 1fr;
  gap: 35px;
}

.p-about__access-address {
  margin-bottom: 30px;
}
.p-about__access-address p:not(:last-child) {
  margin-bottom: 20px;
}

.p-about__access-map {
  width: 100%;
  aspect-ratio: 681/447;
  height: auto;
}
.p-about__access-map iframe {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

.p-about__access-button.c-button-1 {
  --width: min(100%, 220px);
  --size: 1rem;
  --height: 60px;
  --animation-color: #DCC9BC;
  margin-inline: 0;
  font-weight: 400;
  text-transform: capitalize;
}

@media screen and (min-width: 768px) {
  .p-about__access-items {
    grid-template-columns: 1fr 61.8181818182%;
  }
  .p-about__access-address {
    margin-bottom: 40px;
  }
}
/*** staff **/
.p-about__staff-items {
  margin-bottom: 60px;
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.p-about__staff-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}

.p-about__staff-item-figure img {
  display: block;
  width: min(100%, 300px);
  margin-inline: auto;
  aspect-ratio: 300/380;
}

.p-about__staff-item-name {
  font-size: 1.25rem;
  font-weight: 400;
  margin-bottom: 1em;
}

.p-about__staff-item-lists {
  margin-bottom: 2em;
}
.p-about__staff-item-lists li {
  padding-left: 1em;
  line-height: var(--line-height);
  position: relative;
}
.p-about__staff-item-lists li::before {
  content: "";
  display: block;
  width: 3px;
  height: 3px;
  background-color: var(--color-main);
  position: absolute;
  top: calc(var(--font-size-base) * var(--line-height) / 2);
  left: 0;
  transform: translate(50%, -50%);
}

.p-about__staff-item-text p:not(:last-child) {
  margin-bottom: 1.5em;
}

.p-about__staff-images {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}

.p-about__staff-image img {
  display: block;
  width: min(100%, 520px);
  aspect-ratio: 520/350;
  height: auto;
  background-color: var(--color-beige);
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-about__staff-items {
    gap: 80px;
    margin-bottom: 100px;
  }
  .p-about__staff-item {
    grid-template-columns: 27.2727272727% 1fr;
    gap: 80px;
  }
  .p-about__staff-item-name {
    font-size: 1.75rem;
  }
  .p-about__staff-images {
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
  }
}
/** message **/
.p-about__message-item {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
}

.p-about__message-figure img {
  display: block;
  width: min(100%, 320px);
  height: auto;
  aspect-ratio: 320/430;
  margin-inline: auto;
}

.p-about__message-text h3 {
  font-size: var(--font-size-24);
  font-weight: 500;
  margin-bottom: 30px;
}

.p-about__message-p p:not(:last-child) {
  margin-bottom: 2em;
}

@media screen and (min-width: 768px) {
  .p-about__message-item {
    grid-template-columns: 1fr 29.0909090909%;
    gap: 80px;
  }
}
/** philosophy **/
.p-about__philosophy-box {
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  line-height: var(--line-height);
}

/** mission **/
.p-about__mission-box {
  background-color: #fff;
  border-radius: 20px;
  padding: 35px 35px 50px;
  width: min(100%, 755px);
  margin-inline: auto;
}

.p-about__mission p {
  text-align: center;
}

/** vision **/
.p-about__vision-2col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
  align-items: center;
}

.p-about__vision-items {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.p-about__vision-item h3 {
  font-size: 1.125rem;
  margin-bottom: 12px;
  font-weight: 400;
}

.p-about__vision-figure img {
  display: block;
  width: min(100%, 468px);
  margin-inline: auto;
  height: auto;
}

@media screen and (min-width: 768px) {
  .p-about__vision-2col {
    grid-template-columns: 1fr 42.5454545455%;
    gap: 60px;
  }
  .p-about__vision-items {
    gap: 60px;
  }
  .p-about__vision-item h3 {
    font-size: 1.375rem;
  }
}
.p-about__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: -1;
}

.p-about__bg-icon-1 {
  position: absolute;
  top: calc(var(--padding) * -1);
  left: 0;
  width: min(42.1666666667vw, 506px);
  aspect-ratio: 506.81/570.06;
  height: auto;
  translate: -50% 0;
}

.p-about__bg-icon-2 {
  position: absolute;
  top: 0;
  right: 0;
  width: min(28.6666666667vw, 344px);
  aspect-ratio: 344.17/335.87;
  height: auto;
  translate: 50% -50%;
}

/** p-page **/
.p-page {
  margin-bottom: 40px;
}

.p-page__body {
  margin-bottom: 40px;
  width: 100%;
  height: 180px;
  position: relative;
}

.p-page__container {
  display: flex;
  align-items: center;
  height: inherit;
}

.p-page__bg {
  -o-object-fit: cover;
     object-fit: cover;
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
}

.p-page__title span {
  font-size: 1.875rem;
  font-family: var(--font-family-en-2);
  font-weight: 400;
  margin-bottom: 5px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.p-page__title h1 {
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .p-page {
    margin-bottom: 60px;
  }
  .p-page__body {
    height: 360px;
    margin-bottom: 60px;
  }
  .p-page__title span {
    font-size: 3.125rem;
  }
  .p-page__title h1 {
    font-size: 1rem;
  }
}
.p-style__flow {
  margin-bottom: 80px;
}

.p-style__title {
  margin-bottom: 35px;
}

.p-style__flow-items {
  --_gap: 50px;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--_gap);
}

.p-style__flow-item:not(:first-of-type) div {
  position: relative;
}
.p-style__flow-item:not(:first-of-type) div::before {
  content: "";
  width: 17px;
  height: 17px;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background-color: var(--color-brown-1);
  position: absolute;
  top: calc(var(--_gap) / -2);
  right: 50%;
  transform: translate(50%, -50%);
}

.p-style__flow-item-figure img {
  display: block;
  width: min(100%, 340px);
  aspect-ratio: 340/260;
  height: auto;
  background-color: aliceblue;
  margin-bottom: 20px;
  margin-inline: auto;
}

.p-style__flow-item-figure figcaption {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-style__flow {
    margin-bottom: 135px;
  }
  .p-style__title {
    margin-bottom: 50px;
  }
  .p-style__flow-items {
    --_gap: 40px;
    grid-template-columns: repeat(3, 1fr);
  }
  .p-style__flow-item:not(:first-of-type) div::before {
    content: "";
    width: 22px;
    height: 22px;
    clip-path: polygon(0 0, 0 100%, 100% 50%);
    top: 50%;
    right: calc(100% + var(--_gap) / 2);
    transform: translate(50%, -50%);
  }
}
/*** table ***/
.p-style__price {
  margin-bottom: 60px;
}

@media screen and (min-width: 768px) {
  .p-style__price {
    margin-bottom: 120px;
  }
}
.c-tables {
  overflow: scroll;
  width: 100%;
}

.c-table {
  --font-size: 0.75rem;
  --boder-color: #B6967C;
  white-space: nowrap;
  width: 850px;
  height: -moz-fit-content;
  height: fit-content;
}
.c-table thead {
  width: 100%;
}
.c-table tbody {
  width: 100%;
  background-color: #fff;
}
.c-table th:first-child,
.c-table td:first-child {
  width: 31.8181818182%;
}
.c-table th:nth-child(2),
.c-table td:nth-child(2) {
  width: 21.8181818182%;
}
.c-table th, .c-table td {
  border-bottom: 1px solid var(--boder-color);
  padding: 1.6666666667em 0;
  font-size: var(--font-size);
  line-height: var(--line-height);
}
.c-table th {
  border-top: 1px solid var(--boder-color);
  font-weight: 400;
  vertical-align: middle;
  text-align: left;
}
.c-table td span {
  display: block;
}

@media screen and (min-width: 768px) {
  .c-table {
    --font-size: 0.9375rem;
    width: 100%;
  }
}
.p-faq__section {
  margin-bottom: 70px;
}

.p-faq__lead {
  text-align: center;
  margin-bottom: 50px;
}

.p-faq__title {
  margin-bottom: 35px;
}

.p-faq__blocks {
  margin-bottom: 60px;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.p-faq__items {
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.p-faq__item {
  --padding-left: 55px;
  --size: 40px;
  --gap: 25px;
  --data-size: 1rem;
  display: flex;
  flex-direction: column;
  gap: var(--gap);
}
.p-faq__item dt, .p-faq__item dd {
  position: relative;
  padding-left: var(--padding-left);
}
.p-faq__item dt::before, .p-faq__item dd::before {
  content: attr(data-qa);
  position: absolute;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-family-en-2);
  text-transform: uppercase;
  left: 0;
  translate: 0 -50%;
  font-size: var(--data-size);
}
.p-faq__item dt {
  font-size: var(--font-size-24);
  font-weight: 500;
}
.p-faq__item dt::before {
  border: 1px solid #B6967C;
  background-color: #B6967C;
  color: #fff;
  top: calc(var(--font-size-24) * 1.5 / 2);
}
.p-faq__item dd {
  line-height: var(--line-height);
}
.p-faq__item dd::before {
  border: 1px solid #B6967C;
  color: #B6967C;
  top: calc(var(--font-size-base) * var(--line-height) / 2);
}
.p-faq__item a {
  text-decoration: underline;
  transition: color 0.3s ease-out;
}

.p-faq__note {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-faq__section {
    margin-bottom: 120px;
  }
  .p-faq__lead {
    margin-bottom: 80px;
  }
  .p-faq__title {
    margin-bottom: 60px;
  }
  .p-faq__blocks {
    margin-bottom: 100px;
    gap: 100px;
  }
  .p-faq__items {
    gap: 70px;
  }
  .p-faq__item {
    --padding-left: 85px;
    --size: 60px;
    --gap: 45px;
    --data-size: 1.25rem;
  }
  .p-faq__item a:hover {
    color: var(--color-pink-3);
  }
}
.p-contact__section {
  margin-bottom: 50px;
}

.p-contact__privacy {
  margin-bottom: 70px;
}

.p-contact__blocks {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  width: min(100%, 500px);
  margin-inline: auto;
}

.p-contact__block {
  padding: 35px 25px 35px;
  border: 1px solid #B6967C;
}

.p-contact__block-title {
  --margin-bottom: 15px;
  font-size: var(--font-size-24);
  font-weight: 500;
  text-align: center;
  margin-bottom: var(--margin-bottom);
}

.p-contact__block-title--line {
  --margin-bottom: 30px;
}

.p-contact__block-smartphone,
.p-contact__block-tel {
  font-family: var(--font-family-en-2);
}

.p-contact__block-tel {
  --color: var(--color-main);
  display: flex;
  gap: 7px;
  justify-content: center;
  align-items: center;
}

.p-contact__block-tel div {
  font-size: 1.75rem;
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--color);
  transition: color 0.3s ease-out;
}

.p-contact__block-tel svg {
  fill: var(--color);
  transition: fill 0.3s ease-out;
}

.p-contact__block-time,
.p-contact__block-smartphone {
  text-align: center;
}

.p-contact__block-smartphone {
  font-size: var(--font-size-24);
  letter-spacing: 0.05em;
}

.p-contact__block-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background-color: #71CD00;
  width: min(100%, 285px);
  height: 80px;
  margin-inline: auto;
  color: #fff;
  transition: opacity 0.3s ease-out;
}
.p-contact__block-button div {
  font-size: var(--font-size-24);
}
.p-contact__block-button img {
  display: block;
  width: 35px;
  aspect-ratio: 1;
  height: auto;
}

.p-contact__form-body {
  margin-bottom: 15px;
}

.p-contact__form-privacy {
  text-align: center;
}
.p-contact__form-privacy a {
  text-decoration: underline;
  transition: color 0.3s ease-out;
}

@media screen and (min-width: 768px) {
  .p-contact__section {
    margin-bottom: 80px;
  }
  .p-contact__privacy {
    margin-bottom: 120px;
  }
  .p-contact__block {
    padding: 50px 35px 35px;
  }
  .p-contact__block-button:hover {
    opacity: 0.8;
  }
  .p-contact__block-tel div {
    font-size: 2.6875rem;
  }
  .p-contact__blocks {
    width: min(100%, 1000px);
    grid-template-columns: repeat(2, 1fr);
    gap: 50px;
  }
  .p-contact__form-privacy a:hover {
    color: var(--color-pink-3);
  }
  .p-contact__block-tel:hover {
    --color: #AD5D80;
  }
}
/*** privacy ***/
.p-contact__privacy-title,
.p-contact__form-title {
  margin-bottom: 35px;
}

.p-contact__privacy-blocks {
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.p-contact__privacy-block h3 {
  font-size: var(--font-size-24);
  font-weight: 500;
  margin-bottom: 20px;
}

.p-contact__privacy-block-lead {
  margin-bottom: 40px;
}

.p-contact__privacy-lists {
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.p-contact__privacy-list h4 {
  font-size: var(--font-size-20);
  margin-bottom: 20px;
}
.p-contact__privacy-list li {
  padding-left: 1em;
  position: relative;
  line-height: var(--line-height);
}
.p-contact__privacy-list li::before {
  content: "";
  width: 2px;
  height: 2px;
  position: absolute;
  border-radius: 50%;
  background-color: var(--color-main);
  top: calc(var(--font-size-base) * var(--line-height) / 2);
  left: 0;
  transform: translate(50%, -50%);
}

.p-contact__privacy-block a {
  color: var(--color-pink-3);
  transition: opacity 0.3s ease-out;
}

@media screen and (min-width: 768px) {
  .p-contact__privacy-title,
  .p-contact__form-title {
    margin-bottom: 55px;
  }
  .p-contact__privacy-blocks {
    gap: 80px;
  }
  .p-contact__privacy-block-lead {
    margin-bottom: 40px;
  }
  .p-contact__privacy-lists {
    gap: 44px;
  }
  .p-contact__privacy-block a:hover {
    opacity: 0.8;
  }
}
/** form ***/
.p-contact__form {
  padding: 50px 0 60px;
  position: relative;
}

.p-contact__form-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  z-index: -1;
}

.p-contact__form-header {
  margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
  .p-contact__form {
    padding: 90px 0 120px;
  }
  .p-contact__form-header {
    margin-bottom: 55px;
  }
}
/****
フォーム
***/
.form-row {
  --bottom: 30px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: var(--bottom);
}

/*** ラベル ***/
.form-label {
  display: flex;
  align-items: center;
  gap: 20px;
}

@media screen and (min-width: 768px) {
  .form-row {
    --bottom: 60px;
    gap: 15px;
    grid-template-columns: 230px 1fr;
    align-items: center;
  }
  .form-row.form-row--flex-start {
    align-items: flex-start;
  }
  .form-label {
    justify-content: space-between;
  }
}
/*** 必須・任意ボタン ***/
.form-label .required {
  background-color: #D487A9;
  color: #fff;
}

.form-label .optional {
  background-color: #ABADB0;
}

.form-label .optional,
.form-label .required {
  color: #fff;
  display: inline-block;
  padding: 0 10px;
  width: 50px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 400;
  font-size: 0.8125rem;
}

/*** input ***/
.form-input input[type=text],
.form-input input[type=email],
.form-input input[type=tel],
.form-input textarea {
  position: relative;
  width: 100%;
  border-radius: 0;
  color: var(--color-main);
  padding: 0.75em 1em;
  border: 1px solid var(--color-brown-1);
}

.form-input textarea {
  min-height: 200px;
}

.form-input input::-moz-placeholder, .form-input textarea::-moz-placeholder {
  color: #C7C7C7;
}

.form-input input::placeholder,
.form-input textarea::placeholder {
  color: #C7C7C7;
}

/*** checkbox ***/
.form-checkbox label::after {
  content: "";
  position: absolute;
  display: none;
  left: 6px;
  top: 5px;
  width: 4px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.form-checkbox label:has(input:checked)::before {
  --bg: black;
}

.form-checkbox input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  cursor: pointer;
}

.form-checkbox label {
  padding-left: 1.8em;
  margin-right: 1em;
  position: relative;
}

.form-checkbox label::before {
  --bg: #fff;
  content: "";
  width: 1em;
  height: 1em;
  border: 1px solid #000;
  position: absolute;
  top: calc(50% + 1px);
  left: 0;
  translate: 0 -50%;
  background-color: var(--bg);
}

.form-radio label:has(input:checked)::after,
.form-checkbox label:has(input:checked)::after {
  display: block;
}

/* privacy */
.privacy-privacy {
  text-align: center;
  margin-bottom: 50px;
}

/*** エラーメッセージ ***/
.wpcf7-form-control-wrap {
  height: inherit;
  display: block;
}

.wpcf7-not-valid-tip {
  position: absolute;
  top: calc(100% + 3px);
}

.form-checkbox .wpcf7-not-valid-tip {
  left: 50%;
  translate: -50% 0;
  width: 100%;
}

.form-checkbox a {
  text-decoration: underline;
}

.p-archive__section {
  margin-bottom: 70px;
}

/** lists **/
.p-archive__lists {
  margin-bottom: 50px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

.p-archive__list {
  width: calc(50% - 5px);
}

.p-archive__list a {
  --color: #B49393;
  --background-color: #fff;
  --height: 60px;
  --animation-color: #B49393;
  --animation: translateX(-100%);
  position: relative;
  height: var(--height);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 20px;
  border: 1px solid #B49393;
  color: var(--color);
  background-color: var(--background-color);
  overflow: hidden;
  transition: color 0.3s ease-out;
}
.p-archive__list a span {
  position: relative;
  z-index: 2;
}
.p-archive__list a::before {
  content: "";
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border-bottom: var(--height) solid var(--animation-color);
  border-right: 50px solid transparent;
  transform: var(--animation);
  transition: transform 0.3s ease-out;
}

.p-archive__list.is-active a {
  --color: #fff;
  --background-color: #B49393;
}

@media screen and (min-width: 600px) {
  .p-archive__lists {
    gap: 20px;
  }
  .p-archive__list {
    width: auto;
  }
  .p-archive__list a {
    min-width: 215px;
  }
  .p-archive__list a:hover {
    --animation: translateX(0%);
    --color: #fff;
  }
}
/** items **/
.p-archive__none {
  text-align: center;
}

.p-archive__items {
  margin-bottom: 50px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
}

@media screen and (min-width: 600px) {
  .p-archive__items {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 768px) {
  .p-archive__section {
    margin-bottom: 120px;
  }
  .p-archive__lists {
    margin-bottom: 80px;
  }
  .p-archive__items {
    margin-bottom: 80px;
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-single__section {
  margin-bottom: 70px;
}

.p-single__header {
  margin-bottom: 60px;
}

.p-single__lists {
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}

.p-single__date {
  font-size: var(--font-size-16);
  letter-spacing: 0.1em;
  font-family: var(--font-family-en-1);
}

.p-single__category {
  font-size: 0.8125rem;
  background-color: #B49393;
  color: #fff;
  min-width: 120px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 15px;
}

.p-single__title {
  font-size: 1.5rem;
  font-weight: 500;
}

.p-single__body {
  margin-bottom: 50px;
}
.p-single__body h2, .p-single__body h3, .p-single__body h4 {
  margin-top: 50px;
}
.p-single__body h2 {
  margin-bottom: 1em;
  font-size: var(--font-size-30);
  font-weight: 400;
}
.p-single__body h3 {
  margin-bottom: 0.8333333333em;
  font-size: var(--font-size-24);
  font-weight: 500;
}
.p-single__body h4 {
  margin-bottom: 1.3333333333em;
  font-size: var(--font-size-18);
  font-weight: 400;
}
.p-single__body p {
  margin-bottom: 2em;
}
.p-single__body p a {
  color: #AD5D80;
}
.p-single__body > .wp-block-image,
.p-single__body .wp-block-columns {
  margin-top: 40px;
  margin-bottom: 40px;
}

@media screen and (min-width: 768px) {
  .p-single__section {
    margin-bottom: 120px;
  }
  .p-single__header {
    margin-bottom: 100px;
  }
  .p-single__title {
    font-size: 2rem;
  }
  .p-single__body {
    margin-bottom: 80px;
  }
  .p-single__body h2, .p-single__body h3, .p-single__body h4 {
    margin-top: 80px;
  }
  .p-single__body > .wp-block-image,
  .p-single__body .wp-block-columns {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .p-single__body a:hover {
    text-decoration: underline;
  }
}
/** singlepage ページネーション**/
.p-single__page {
  position: relative;
  width: min(100%, 200px);
  margin-inline: auto;
}

.p-single__page-button {
  --height: 55px;
  --color: #B6967C;
  --animation: translateX(-100%);
  border: 1px solid #B6967C;
  border-radius: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: var(--height);
  position: relative;
  overflow: hidden;
  color: var(--color);
}
.p-single__page-button span {
  z-index: 1;
  position: relative;
}
.p-single__page-button::before {
  content: "";
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  border-bottom: var(--height) solid #B6967C;
  border-right: 50px solid transparent;
  transform: var(--animation);
  transition: transform 0.3s ease-out;
}

.p-single__page-next,
.p-single__page-prev {
  --space: -15px;
  position: absolute;
  top: 50%;
  font-family: var(--font-family-en-2);
  text-transform: uppercase;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  letter-spacing: 0.1em;
  font-size: var(--font-size-16);
  color: #B6967C;
}

.p-single__page-next {
  right: var(--space);
  translate: 100% -50%;
}

.p-single__page-prev {
  left: var(--space);
  translate: -100% -50%;
}

@media screen and (max-width: 350px) {
  .p-single__page-next,
  .p-single__page-prev {
    display: none;
  }
}
@media screen and (min-width: 768px) {
  .p-single__page {
    width: min(100%, 300px);
  }
  .p-single__page-button {
    --height: 70px;
  }
  .p-single__page-button:hover {
    --animation: translateX(0%);
    --color: #fff;
  }
  .p-single__page-next,
  .p-single__page-prev {
    --space: -30px;
  }
}
.p-default__section {
  margin-bottom: 70px;
}
.p-default__section p {
  text-align: center;
}
.p-default__section p:not(:last-of-type) {
  margin-bottom: 2em;
}
.p-default__section a {
  transition: color 0.3s ease-out;
}

.p-default__title {
  margin-bottom: 35px;
}

@media screen and (min-width: 768px) {
  .p-default__section {
    margin-bottom: 120px;
  }
  .p-default__title {
    margin-bottom: 50px;
  }
  .p-default__section a:hover {
    color: var(--color-pink-3);
  }
}/*# sourceMappingURL=style.css.map */