@charset "UTF-8";
/* ==========================================================================

   Theme Name: 星の歯科 Stella Dental Clinic
	Theme URI: 
	Description: 星の歯科 Stella Dental Clinic
	Author: タン
	Author URI: 

	Version: 1.0

	Tags: black, red, white, one-column, two-columns, three-columns, left-sidebar, right-sidebar, responsive-layout, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, featured-images, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready

	Template Version: 1.0

	License: GPL-2.0+
	License URI: http://www.gnu.org/licenses/gpl-2.0.html

   Foundation
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique:wght@400;500;700;900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&family=Vujahday+Script&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400..700&display=swap");
*,
*::before,
*::after {
  box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%; }

body {
  margin: 0;
  line-height: 1.6; }

h1, h2, h3, h4, h5, h6,
p, figure, blockquote, dl, dd {
  margin: 0; }

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none; }

img,
picture,
video,
svg {
  max-width: 100%;
  height: auto;
  display: block; }

a {
  color: inherit;
  text-decoration: none; }

button {
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  font: inherit;
  color: inherit; }

input,
textarea,
select {
  font: inherit; }

:root {
  --size-p: max(1.8rem, 15px);
  --size-small: max(1.4rem, 12px);
  --size-ttbanner: max(3.5rem, 26px);
  --size-h1: max(3rem, 24px);
  --size-h2: max(2.5rem, 22px);
  --size-h3: max(2.2rem, 20px);
  --size-h4: max(2rem, 18px);
  --font-size-html: 0.521105vw;
  --space-xs: 1.5rem;
  --space-sm: 2rem;
  --space-md: 2.5rem;
  --space-lg: 6rem;
  --space-xl: 8.5rem;
  --space-2xl: 12rem; }
  @media screen and (max-width: 960px) {
    :root {
      --size-p: max(1.5rem, 11.8px);
      --size-p-18: max(1.8rem, 14px);
      --size-h1: max(2rem, 18px);
      --size-h2: max(1.8rem, 17px);
      --size-h3: max(1.7rem, 16px);
      --size-h4: max(1.6rem, 15px);
      --font-size-html: 10px;
      --space-xs: 1rem;
      --space-sm: 1.2rem;
      --space-md: 2rem;
      --space-lg: 4rem;
      --space-xl: 6rem;
      --space-2xl: 8rem; } }
  @media (max-width: 1440px) and (min-width: 961px) {
    :root {
      --font-size-html: 0.694444vw; } }
  @media (max-width: 370px) {
    :root {
      --font-size-html: 2.703vw; } }

html {
  font-size: var(--font-size-html); }

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto; } }
body {
  font-family: "Zen Old Mincho", serif, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: var(--size-p);
  color: #333333;
  background-color: #ffffff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

p {
  font-size: var(--size-p);
  line-height: 195%;
  letter-spacing: 0.05rem;
  font-weight: 400; }
  @media (max-width: 960px) {
    p {
      line-height: 185%;
      letter-spacing: 0em;
      text-align: justify; } }

/* ==========================================================================
   Layout
   ========================================================================== */
body.is-menu-open .p-header.vz-01 {
  top: 0 !important; }

.p-seo-h1 {
  background: #232C4D;
  color: #fff;
  text-align: center;
  font-size: 1.6rem;
  font-weight: 500;
  padding: 1rem;
  margin: 0;
  letter-spacing: 0.1rem;
  line-height: 120%; }
  @media screen and (max-width: 767px) {
    .p-seo-h1 {
      font-size: 1.3rem;
      padding: 0.75rem 1rem;
      line-height: 140%; } }

.site-header {
  position: relative;
  z-index: 110;
  height: 18.9rem; }
  @media screen and (max-width: 960px) {
    .site-header {
      background-color: #F1E7D6;
      padding: 0.5rem 1.5rem;
      height: 8.3rem; } }

.site-branding {
  flex: 1 1 auto;
  min-width: 0; }

.site-title {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.4; }
  .site-title a {
    color: #333333;
    text-decoration: none; }
    @media (hover: hover) {
      .site-title a:hover {
        opacity: 0.7; } }

.p-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: #fff;
  padding: 1rem 3rem 1.5rem;
  transition: all 0.35s; }
  .p-header__address {
    color: #263655;
    font-size: var(--fs-18);
    font-weight: 400;
    line-height: 155%;
    letter-spacing: 0.18rem;
    text-shadow: 0px 0px 0.8rem #FFFFFF;
    padding-left: 4rem;
    padding-right: 2rem;
    background: url(./assets/img/header-icon-01.svg) center left/3rem no-repeat; }
  .p-header__left {
    padding-top: 6.2rem; }
    @media screen and (max-width: 960px) {
      .p-header__left {
        padding-top: 0; } }
  .p-header__right {
    padding-top: 1.5rem; }
  .p-header__left img {
    width: 37.5rem; }
  .p-header__list li:first-child {
    padding-top: 1.2rem; }
  .p-header__right {
    gap: 2rem;
    align-items: flex-start; }
    @media screen and (max-width: 960px) {
      .p-header__right.d-flex {
        display: none; } }
  .p-header .head_tel {
    box-shadow: 0px 0.4rem 1.4rem 0px #00000026;
    background-color: #F8F2EC;
    border-radius: 2rem; }
    @media screen and (max-width: 1440px) {
      .p-header .head_tel {
        border-radius: 1rem; } }
  .p-header__menu {
    margin-top: 2rem; }
  .p-header__menu li {
    padding: 0 3.7rem; }
    .p-header__menu li:not(:last-child) {
      border-right: 1px solid #C0986766; }
    .p-header__menu li a {
      color: #535353;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 150%;
      letter-spacing: 0;
      display: flex;
      flex-flow: column;
      align-items: center;
      position: relative;
      padding: 1rem 0; }
      .p-header__menu li a::before {
        content: "";
        position: absolute;
        width: 0;
        height: 0.2rem;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        background: #263655;
        transition: all 0.35s;
        border-radius: 5rem; }
      .p-header__menu li a:hover {
        color: #BC9664; }
      .p-header__menu li a:hover::before {
        width: 100%; }
    .p-header__menu li.current_page_item a {
      color: #BC9664; }
    .p-header__menu li.current_page_item a::before {
      width: 100%; }
  .p-header__list {
    gap: 2.3rem; }
    .p-header__list li.head_tel a {
      display: inline-block;
      padding: 0.5rem 0.4rem 0.5rem 3.5rem;
      position: relative;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center;
      height: 14rem; }
      @media screen and (max-width: 1440px) {
        .p-header__list li.head_tel a {
          height: 10rem; } }
      .p-header__list li.head_tel a .item {
        display: block;
        text-align: center;
        color: #232C4D;
        font-size: 1.4rem;
        font-weight: 400;
        line-height: 120%;
        letter-spacing: 0; }
        .p-header__list li.head_tel a .item:nth-child(2) {
          font-size: 2.8rem; }
    .p-header__list li.head_local a {
      padding: 2rem 3rem;
      background-color: #263655;
      box-shadow: 0rem 0.4rem 1.4rem 0rem #00000026;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 2rem;
      height: 14rem;
      min-width: 34rem; }
      .p-header__list li.head_local a .item-top {
        color: #fff;
        font-size: var(--fs-20);
        font-weight: 400;
        line-height: 160%;
        letter-spacing: 0.2rem;
        border-bottom: 0.2rem solid #fff;
        padding-bottom: 1.9rem;
        margin-bottom: 0.8rem;
        display: block;
        text-align: center; }
      .p-header__list li.head_local a .item-web {
        display: -webkit-box;
        display: -moz-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: 2rem;
        color: #fff;
        font-size: var(--fs-32);
        font-weight: 400;
        line-height: 160%;
        letter-spacing: 0.16rem; }
        .p-header__list li.head_local a .item-web .item__web-img01, .p-header__list li.head_local a .item-web .item__Web-img02 {
          line-height: 0; }
        .p-header__list li.head_local a .item-web img {
          display: inline-block;
          vertical-align: middle; }
          .p-header__list li.head_local a .item-web img:first-child {
            max-width: 3rem;
            width: 100%; }
          .p-header__list li.head_local a .item-web img:last-child {
            max-width: 3.1rem;
            width: 100%; }
  .p-header.vz-02 .p-header__list li.head_tel a {
    padding: 1.99rem 0.4rem 1.8rem 3.5rem;
    height: fit-content;
    height: 9rem;
    border-bottom: 0.2rem solid #263655;
    border-top: 0.2rem solid #263655;
    background: url(./assets/img/header-icon-02.svg) center left/2.5rem no-repeat; }
  .p-header.vz-02 .head_tel {
    border-radius: 0;
    background-color: transparent;
    box-shadow: none; }
  .p-header.vz-02 .p-header__list li.head_local a {
    min-width: fit-content;
    padding: 1rem 3rem;
    border-radius: 0;
    height: 9rem; }
  .p-header.vz-02 .p-header__list li.head_local a .item-top {
    font-size: 1.4rem;
    padding-bottom: 0.5rem;
    border-width: 1px; }
  .p-header.vz-02 .p-header__list li.head_local a .item-web {
    font-size: 2rem;
    gap: 1rem; }
  .p-header.vz-02 .p-header__list li.head_local a .item-web img:last-child {
    max-width: 2.1rem;
    width: 100%; }
  .p-header.vz-02 .p-header__left img {
    width: 26.5rem; }
  .p-header.vz-02 .p-header__left {
    padding-top: 0; }
  .p-header.vz-02 .p-header__right {
    padding-top: 0; }

@media (min-width: 960.5px) {
  .p-header__menu > li {
    position: relative; }
  .p-header__menu li .sub-menu {
    pointer-events: none;
    position: absolute;
    z-index: 0;
    opacity: 0;
    right: 0;
    padding: 1.5rem;
    left: -2rem;
    top: 100%;
    transition: all 0.3s ease;
    width: 30rem; }
    .p-header__menu li .sub-menu::before {
      content: "";
      position: absolute;
      width: 100%;
      height: calc(100% - 1rem);
      left: 0;
      bottom: 0;
      z-index: -1;
      background: #232c4d; }
    .p-header__menu li .sub-menu li {
      margin-left: 0;
      padding: 0;
      border-bottom: 1px solid #fff;
      border-right: 0; }
      .p-header__menu li .sub-menu li:last-child {
        border-width: 0; }
      .p-header__menu li .sub-menu li a {
        display: block;
        padding: 1.5rem 1.5rem 1.5rem 3rem;
        border-right: 0;
        color: #fff !important;
        font-size: 1.6rem;
        position: relative;
        transition: all 0.35s;
        width: 100%;
        text-align: left; }
        .p-header__menu li .sub-menu li a::before {
          content: none; }
        .p-header__menu li .sub-menu li a::after {
          content: "";
          position: absolute;
          top: 2.3rem;
          -webkit-mask: url(assets/img/icon_arrow-02.svg) center/100% no-repeat;
          mask: url(assets/img/icon_arrow-02.svg) center/100% no-repeat;
          background: #fff;
          left: 1rem;
          width: 1rem;
          height: 1rem;
          clip-path: inherit;
          transform: initial; }
        .p-header__menu li .sub-menu li a:hover {
          opacity: 0.8; }
          .p-header__menu li .sub-menu li a:hover::after {
            width: 1rem; }
  .p-header__menu li.vz-02 {
    position: initial; }
    .p-header__menu li.vz-02 .sub-menu {
      display: flex;
      flex-wrap: wrap;
      width: 100%;
      left: 0;
      top: calc(100% - 1.6rem);
      padding: 5rem 10rem !important; }
      .p-header__menu li.vz-02 .sub-menu::before {
        height: calc(100% - 1.6rem);
        left: 0;
        bottom: 0;
        z-index: -1;
        background: #232c4d; }
      .p-header__menu li.vz-02 .sub-menu li {
        width: calc((100% - 6.001rem) / 3);
        margin-right: 3rem; }
        .p-header__menu li.vz-02 .sub-menu li:nth-child(3n) {
          margin-right: 0; }
        .p-header__menu li.vz-02 .sub-menu li:last-child {
          border-width: 1px; }
  .p-header__menu li.vz-03 .sub-menu {
    left: auto;
    right: -1.5rem;
    width: 31rem; }
  .p-header__menu li:hover .sub-menu {
    opacity: 1;
    pointer-events: auto;
    padding: 1rem 0 0; }
  .p-header.vz-01 {
    padding: 0 1.7rem 1.2rem 5rem;
    justify-content: space-between;
    transition: all 0.35s;
    position: absolute;
    display: none;
    align-items: flex-start; } }
  @media screen and (min-width: 960.5px) and (max-width: 1440px) {
    .p-header.vz-01 {
      padding: 0 1.5rem 1.2rem; } }
@media (min-width: 960.5px) {
    .p-header.vz-01 .p-header__right {
      flex-direction: column-reverse;
      align-items: flex-end; }
    .p-header.vz-01 .p-header__right .p-header__menu > li > a {
      padding: 0 6rem; }
    .p-header.vz-01 .p-header__right .p-header__menu > li:last-child > a {
      padding: 0 0 0 6rem; }
    .p-header.vz-01 .p-header__right .p-header__menu > li:last-child > a::after {
      left: 70%; }
  .p-header.vz-02 {
    display: flex;
    opacity: 1;
    top: 3.9rem;
    transition: opacity 0.5s ease; }
    .p-header.vz-02.active {
      opacity: 1; }
  .p-header.active .p-header__menu li.vz-03 .sub-menu {
    right: 0; }

  .home .site-header {
    height: auto; }
  .home .p-header:not(.active) {
    background: transparent; }
    .home .p-header:not(.active).vz-01 {
      position: absolute;
      display: flex; }
      .home .p-header:not(.active).vz-01 .p-header__menu {
        display: none; }
      .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a {
        border-top-color: transparent;
        border-bottom-color: transparent;
        padding: 2rem 3rem; } }
      @media screen and (min-width: 960.5px) and (max-width: 1440px) {
        .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a {
          padding: 1rem; } }
@media (min-width: 960.5px) {
        .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item {
          color: #263655;
          font-size: var(--fs-20); }
          .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item:nth-child(2) {
            font-size: var(--fs-34); }
        .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item-top {
          border-bottom: 0.2rem solid #263655;
          padding-bottom: 1.9rem;
          margin-bottom: 0.8rem; }
        .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item-tel {
          margin: 0 0.6rem;
          padding-left: 4.5rem;
          background: url(./assets/img/header-icon-02.svg) top 1rem left/2.9rem no-repeat; }
      .home .p-header:not(.active).vz-01 .p-header__list li.head_local p {
        font-size: 2rem; }
    .home .p-header:not(.active).vz-02 {
      opacity: 0;
      pointer-events: none; } }
@media (min-width: 960.5px) and (max-width: 1440px) {
  .site-header {
    height: 17.1rem; }

  .p-header {
    padding: 1rem 1.5rem; }
    .p-header__left img {
      width: 28rem; }
    .p-header__right {
      gap: 1rem; }
    .p-header__list li.head_local {
      padding: 0.5rem 1.5rem; }
      .p-header__list li.head_local p {
        padding-left: 2rem; }
    .p-header__list li.head_tel a {
      padding: 0.4rem 0.4rem 0.4rem 3rem; }
      .p-header__list li.head_tel a::before {
        width: 2.5rem;
        height: 2.5rem; }
      .p-header__list li.head_tel a .item {
        font-size: 1.5rem; }
        .p-header__list li.head_tel a .item:nth-child(2) {
          font-size: 2.8rem; }
    .p-header__menu li {
      padding: 0 2rem; }

  .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item-top {
    padding-bottom: 1rem; }

  .p-header__list {
    align-items: center; }

  .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item:nth-child(2) {
    font-size: 2.5rem; }

  .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item-tel {
    background-position: top 0.7rem left;
    background-size: 1.9rem;
    padding-left: 2.5rem; }

  .home .p-header:not(.active).vz-01 .p-header__list li.head_tel a .item {
    font-size: Max(1.4rem, 14px); }

  .p-header__list {
    gap: 1.5rem; }

  .p-header__list li.head_local {
    padding: 0; }

  .p-header__list li.head_local a {
    min-width: fit-content;
    height: fit-content;
    padding: 1rem;
    border-radius: 1rem; }

  .p-header__list li.head_local a .item-top {
    font-size: Max(1.4rem, 14px);
    padding-bottom: 1rem;
    margin-bottom: 0.6rem; }

  .p-header__list li.head_local a .item-web {
    font-size: 2.5rem;
    gap: 1rem; }

  .p-header__list li.head_local a .item-web img:last-child {
    max-width: 2.1rem; }

  .p-header__address {
    font-size: Max(1.4rem, 14px); } }
@media (max-width: 960px) {
  .p-header {
    padding: 0 1.5rem; }
    .p-header__left {
      display: flex;
      align-items: center;
      width: 100%; }
      .p-header__left img {
        width: 16rem; }
    .p-header.vz-02 {
      display: none; }
    .p-header.vz-01 {
      background: #F8F2EC;
      top: 3.3rem;
      transition: opacity 0.35s ease; }
    .p-header__menu, .p-header__list {
      display: none; } }
.p-mv {
  position: relative;
  z-index: 2;
  background-color: #F1E7D6; }
  .p-mv__top {
    overflow: hidden;
    position: absolute;
    z-index: 10;
    height: 31rem;
    top: 0;
    left: 0;
    width: 100%;
    pointer-events: none; }
    .p-mv__top::before {
      content: "";
      position: absolute;
      width: 209.4rem;
      height: 31rem;
      aspect-ratio: 6.755;
      clip-path: shape(from 84.19% 59.27%, curve to 100% 100% with 92.5% 59.27%/98.19% 86.42%, line to 100% 0%, line to 0% 0%, line to 0% 100%, curve to 19.29% 75.7% with 5.84% 65.03%/11.77% 63.91%, curve to 48.57% 100% with 30.22% 92.83%/34.99% 100%, curve to 84.19% 59.27% with 56.67% 100%/69.55% 59.27%, close);
      background: #F1E7D6;
      top: -16.8rem;
      left: -2.6rem;
      z-index: 2;
      pointer-events: none; }
      @media screen and (max-width: 1440px) {
        .p-mv__top::before {
          top: -17.8rem;
          width: 170.4rem; } }
      @media screen and (max-width: 960px) {
        .p-mv__top::before {
          top: 0;
          left: 0;
          width: 100%;
          height: 5rem;
          background-color: #F8F2EC; } }
    @media screen and (max-width: 960px) {
      .p-mv__top {
        height: 6rem;
        top: -2.8rem; } }
  .p-mv .slick-slide {
    position: relative;
    z-index: 1 !important; }
    .p-mv .slick-slide::before {
      content: '';
      width: 100%;
      height: 100%;
      background-color: rgba(135, 96, 13, 0.3);
      inset: 0;
      position: absolute;
      z-index: 1;
      pointer-events: none; }
  .p-mv .slick-slide img {
    width: 100%; }
  .p-mv__cont {
    position: absolute;
    left: 10.9rem;
    bottom: 17.9rem;
    z-index: 2;
    max-width: 68rem;
    width: 100%; }
    @media screen and (max-width: 960px) {
      .p-mv__cont {
        bottom: unset;
        top: 44%;
        left: 50%;
        transform: translate(-50%, -50%); } }
    .p-mv__cont--desc img {
      padding-bottom: 1.5rem;
      transform: translateX(-0.8rem); }
    .p-mv__cont .p-mv__title {
      color: #fff;
      font-size: var(--fs-47);
      font-weight: 400;
      line-height: 155%;
      letter-spacing: 0.5rem;
      margin-bottom: 2.7rem;
      text-shadow: 0 0.4rem 0.8rem #282A3B, 0 0.4rem 0.8rem #282A3B, 0 0.4rem 0.8rem #282A3B; }
      @media screen and (max-width: 960px) {
        .p-mv__cont .p-mv__title {
          text-align: center; } }
    .p-mv__cont .p-mv__desc {
      color: #fff;
      font-size: var(--fs-21);
      font-weight: 500;
      line-height: 185%;
      letter-spacing: 0.2rem;
      text-shadow: 0 0.2rem 0.4rem #282A3B,0 0.2rem 0.4rem #282A3B,0 0.2rem 0.4rem #282A3B; }
  .p-mv__menu {
    position: absolute;
    z-index: 2;
    bottom: 0;
    left: 0;
    width: 100%;
    padding-bottom: 2.8rem; }
    @media screen and (max-width: 960px) {
      .p-mv__menu .p-header__menu {
        display: none; } }
    .p-mv__menu::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 20.7rem;
      background: url(./assets/img/header-bg-01.png) bottom center/192rem no-repeat;
      z-index: -1;
      bottom: 0;
      left: 0;
      pointer-events: none; }
      @media screen and (max-width: 960px) {
        .p-mv__menu::before {
          height: 8.7rem;
          background-size: cover; } }
    .p-mv__menu .p-header__menu li.vz-02 .sub-menu {
      top: calc(100% - 4.7rem); }
    .p-mv__menu .p-header__menu > li {
      padding: 0 3.7rem; }
      .p-mv__menu .p-header__menu > li.current-menu-item a {
        color: #BC9664; }
      .p-mv__menu .p-header__menu > li:not(:last-child) {
        border-right: 1px solid #C0986766; }
      .p-mv__menu .p-header__menu > li a {
        color: #263655;
        font-size: var(--fs-17);
        font-weight: 400;
        line-height: 140%;
        letter-spacing: 0.314rem;
        display: inline-block;
        padding: 1rem 0;
        position: relative;
        z-index: 1;
        transition: ease all .4s; }
        .p-mv__menu .p-header__menu > li a:hover {
          color: #BC9664; }
      .p-mv__menu .p-header__menu > li .sub-menu::before {
        height: calc(100% - 3.2rem); }
      .p-mv__menu .p-header__menu > li.vz-02 .sub-menu::before {
        height: calc(100% - 4.8rem); }
      .p-mv__menu .p-header__menu > li:hover .sub-menu {
        padding-top: 3.2rem; }
  .p-mv__list {
    position: absolute;
    bottom: 12rem;
    left: 5rem;
    gap: 2.7rem;
    z-index: 2; }
    .p-mv__list li a {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 23.9rem;
      height: 23.1rem;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      padding-top: 7.2rem;
      color: #fff;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 150%;
      letter-spacing: 0;
      position: relative; }
      .p-mv__list li a::before {
        content: "";
        position: absolute;
        width: 1rem;
        height: 2.1rem;
        bottom: 3.5rem;
        left: 50%;
        transform: translateX(-50%);
        background: #f4eee0;
        clip-path: polygon(0 0, 0% 100%, 100% 50%); }
      .p-mv__list li a.vz-01 {
        background-image: url(assets/img/mv-bg-01.png); }
      .p-mv__list li a.vz-02 {
        background-image: url(assets/img/mv-bg-02.png); }
      .p-mv__list li a.vz-03 {
        background-image: url(assets/img/mv-bg-03.png); }

@media (max-width: 1440px) and (min-width: 960.5px) {
  .p-header__menu li.menu-item-has-children:hover .sub-menu {
    opacity: 1;
    pointer-events: auto;
    padding: 1rem 0 0; }

  .p-mv__list li a {
    width: 17.7rem;
    height: 17.1rem; }
    .p-mv__list li a::before {
      bottom: 1.5rem; } }
@media (max-width: 960px) {
  .p-mv__cont {
    width: 100%; }
    .p-mv__cont h2 {
      font-size: 3rem; }
    .p-mv__cont p {
      font-size: 2rem;
      text-align: center; }
  .p-mv__list {
    bottom: 1rem;
    left: 0;
    width: 100%;
    justify-content: center; }
    .p-mv__list li a {
      width: 13.4rem;
      height: 13rem;
      padding-top: 4.2rem; }
      .p-mv__list li a::before {
        bottom: 1.5rem;
        width: 0.8rem;
        height: 1.5rem; } }
@media (max-width: 767px) {
  .p-mv .slick-slide img {
    height: calc(100vh - 18rem);
    object-fit: cover; } }
.p-footer {
  position: relative;
  background: url(./assets/img/ft-img-09.png) bottom right 51.2rem/45.2rem no-repeat;
  padding-bottom: 19.2rem;
  background-color: #FAF8F7; }
  @media screen and (max-width: 960px) {
    .p-footer {
      background-position: bottom right 9.2rem; } }
  .p-footer.po01 {
    z-index: 3; }
  .p-footer::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 100%, hline to 50%, hline to 0%, vline to 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, vline to 100%, close);
    top: -7rem;
    left: 0;
    z-index: -1;
    pointer-events: none;
    background-color: #FAF8F7; }
    @media screen and (max-width: 767px) {
      .p-footer::before {
        height: 6.2rem;
        top: -5.2rem; } }
  .p-footer::after {
    content: "";
    position: absolute;
    width: 41rem;
    height: 34.8rem;
    aspect-ratio: 1.178;
    clip-path: shape(from 27.93% 33.76%, curve to 0% 0% with 13.49% 28.25%/3.29% 8.96%, vline to 100%, hline to 2.8%, hline to 100%, curve to 83.9% 65.66% with 97.07% 91.86%/90.68% 72.5%, curve to 27.93% 33.76% with 71.1% 52.73%/51.71% 42.85%, close);
    background-color: #F2EBE5;
    bottom: 0;
    left: 0;
    z-index: -1;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-footer::after {
        display: none; } }
  .p-footer__img01 {
    position: absolute;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 0; }
  .p-footer__img02 {
    position: absolute;
    top: -16rem;
    right: 0;
    pointer-events: none;
    z-index: -1; }
    @media screen and (max-width: 1440px) {
      .p-footer__img02 {
        top: -10rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-footer__img02 {
      display: none; } }

  @media screen and (max-width: 960px) {
    .p-footer__imgsp {
      margin-top: 2rem; }
      .p-footer__imgsp img {
        height: 30rem;
        object-fit: cover;
        width: 100%; } }
    @media screen and (max-width: 960px) and (max-width: 767px) {
      .p-footer__imgsp img {
        height: 16rem; } }

  .p-footer__row {
    gap: 5.46%; }
  .p-footer__left {
    width: 43.39%;
    background: url(./assets/img/ft-img-04.png) top 6.2rem center/73.8rem no-repeat; }
    @media screen and (max-width: 1440px) {
      .p-footer__left {
        background-position: top 2.2rem center;
        background-size: 47.8rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-footer__left {
      width: 100%; } }

  .p-footer__right {
    width: calc(100% - (43.39% + 5.46%));
    padding-top: 9.5rem; }
    @media screen and (max-width: 960px) {
      .p-footer__right {
        display: none; } }
  .p-footer__address-txt {
    color: #0E193A;
    font-size: var(--fs-18);
    font-weight: 400;
    line-height: 177%;
    letter-spacing: 0.08rem;
    display: inline-block;
    background: url(./assets/img/ft-img-00.svg) top 0.5rem left/2rem no-repeat;
    padding-left: 3.5rem; }
    @media screen and (max-width: 767px) {
      .p-footer__address-txt br {
        display: none; } }
  .p-footer__logo {
    margin-bottom: 2.8rem;
    text-align: center; }
  .p-footer__info {
    gap: 2.8rem;
    margin-top: 2.8rem; }
    @media screen and (max-width: 1440px) {
      .p-footer__info {
        gap: 1.5rem; } }
    .p-footer__info-tel {
      width: 41.7rem; }
      @media screen and (max-width: 1440px) {
        .p-footer__info-tel {
          width: 33.7rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-footer__info-tel {
      width: calc((100% - 1.5rem) / 2); } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-footer__info-tel {
      width: 100%; } }

    .p-footer__info-tel01 {
      display: block;
      position: relative;
      z-index: 1;
      text-align: center;
      background-color: #FFFEFF;
      border-radius: 5rem;
      height: 8rem;
      padding-top: 1.2rem;
      box-shadow: 0rem 0.4rem 1.4rem 0rem #00000026;
      color: #0E193A;
      font-size: var(--fs-36);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 4%; }
      @media screen and (max-width: 767px) {
        .p-footer__info-tel01 {
          height: 6rem; } }
      .p-footer__info-tel01::before {
        content: '';
        background-image: url(./assets/img/ft-img-01.svg);
        background-position: center left;
        background-repeat: no-repeat;
        background-size: 2.9rem;
        width: 2.9rem;
        height: 100%;
        display: inline-block;
        vertical-align: middle;
        margin-right: 2.5rem;
        transform: translateY(-6px); }
        @media screen and (max-width: 767px) {
          .p-footer__info-tel01::before {
            background-size: 1.9rem;
            width: 1.9rem;
            margin-right: 1.5rem; } }
    .p-footer__info-web {
      width: calc(100% - (2.8rem + 41.7rem)); }
      @media screen and (max-width: 1440px) {
        .p-footer__info-web {
          width: calc(100% - (1.5rem + 33.7rem)); } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-footer__info-web {
      width: calc((100% - 1.5rem) / 2); } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-footer__info-web {
      width: 100%; } }

    .p-footer__info-web01 {
      display: block;
      position: relative;
      height: 8rem;
      text-align: center;
      box-shadow: 0px 0.4rem 1.4rem 0rem #00000026;
      background-color: #0E193A;
      border-radius: 5rem;
      width: 100%;
      color: #FFFFFF;
      font-size: var(--fs-28);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.14rem;
      vertical-align: middle;
      padding-top: 0.8rem; }
      @media screen and (max-width: 767px) {
        .p-footer__info-web01 {
          height: 6rem;
          padding-top: 0.4rem; } }
      .p-footer__info-web01:before {
        content: '';
        width: 3rem;
        height: inherit;
        display: inline-block;
        background: url(./assets/img/ft-img-02.svg) center left/contain no-repeat;
        vertical-align: middle;
        line-height: inherit;
        margin-right: 2.5rem;
        transform: translateY(-0.7rem); }
        @media screen and (max-width: 1440px) {
          .p-footer__info-web01:before {
            margin-right: 1rem;
            width: 2.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-footer__info-web01:before {
      width: 1.5rem;
      margin-right: 0.5rem;
      transform: translateY(-0.4rem); } }

      .p-footer__info-web01::after {
        content: '';
        width: 6.4rem;
        height: inherit;
        display: inline-block;
        background: url(./assets/img/ft-img-03.svg) center left/contain no-repeat;
        vertical-align: middle;
        line-height: inherit;
        margin-left: 1rem;
        transform: translateY(-0.7rem); }
        @media screen and (max-width: 1440px) {
          .p-footer__info-web01::after {
            width: 4.4rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-footer__info-web01::after {
      width: 3.4rem;
      margin-left: 0.5rem;
      transform: translateY(-0.4rem); } }

  .p-footer__time01 {
    margin-top: 4rem;
    background-color: rgba(250, 248, 245, 0.5);
    border-radius: 4rem;
    border: 3px solid #FFFFFF;
    padding: 3.7rem 8.5rem 2.2rem 4.5rem; }
    @media screen and (max-width: 767px) {
      .p-footer__time01 {
        padding: 1.5rem;
        border-radius: 2rem;
        margin-top: 3rem; } }
    .p-footer__time01 .p-footer__schedule--table dl .col-squ {
      color: #AA8B59; }
  .p-footer__nav {
    gap: 0;
    align-items: stretch; }
    .p-footer__nav-title {
      padding-left: 6.3rem;
      background-position: left center;
      background-repeat: no-repeat;
      background-size: 4.8rem;
      color: #25294C;
      font-size: var(--fs-22);
      font-weight: 600;
      line-height: 227%;
      letter-spacing: 0.2rem;
      font-family: "Cormorant Garamond", serif;
      text-transform: uppercase;
      margin-bottom: 2.5rem; }
      .p-footer__nav-title--clinic {
        background-image: url(./assets/img/ft-img-06.png); }
      .p-footer__nav-title--medical {
        background-image: url(./assets/img/ft-img-07.png); }
    .p-footer__nav-item {
      padding: 0 4.5rem; }
      .p-footer__nav-item:first-child {
        padding-left: 0; }
      .p-footer__nav-item:last-child {
        padding-right: 0; }
      .p-footer__nav-item:not(:last-child) {
        border-right: 1px dashed #CAB8A2; }
    .p-footer__nav--list li {
      margin-bottom: 1rem; }
      .p-footer__nav--list li:last-child {
        margin-bottom: 0; }
      .p-footer__nav--list li a {
        color: #565656;
        font-size: var(--fs-15);
        font-weight: 500;
        line-height: 180%;
        letter-spacing: 0.075rem;
        display: block;
        padding-left: 2.3rem;
        transition: ease all .4s;
        background: url(./assets/img/ft-img-08.svg) top 1rem left/1.1rem no-repeat; }
        .p-footer__nav--list li a:hover {
          text-decoration: underline; }
  .p-footer__schedule--table {
    margin-bottom: 2rem; }
    .p-footer__schedule--table dl {
      display: flex; }
      .p-footer__schedule--table dl:first-child, .p-footer__schedule--table dl:last-child {
        border-bottom: #C1BDD2 solid 1px; }
      .p-footer__schedule--table dl:first-child dt,
      .p-footer__schedule--table dl:first-child dd {
        color: #565656;
        padding: .35rem 0;
        font-size: var(--fs-24); }
      .p-footer__schedule--table dl .col-squ {
        color: #9EA2BD; }
      .p-footer__schedule--table dl .col--title__time {
        font-size: var(--fs-20); }
      .p-footer__schedule--table dl dt,
      .p-footer__schedule--table dl dd {
        color: #565656;
        font-size: var(--fs-18);
        font-weight: 400;
        line-height: 175%;
        letter-spacing: 0;
        padding: 1.2rem 0;
        position: relative; }
        .p-footer__schedule--table dl dt .close,
        .p-footer__schedule--table dl dd .close {
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%); }
      .p-footer__schedule--table dl dt {
        width: 18rem;
        text-align: center; }
        @media screen and (max-width: 767px) {
          .p-footer__schedule--table dl dt {
            width: 12rem;
            font-size: var(--size-p) !important; } }
      .p-footer__schedule--table dl dd {
        width: calc((100% - 18rem) / 7);
        text-align: center; }
        @media screen and (max-width: 767px) {
          .p-footer__schedule--table dl dd {
            width: calc((100% - 12rem) / 7); } }
  .p-footer__bottom {
    background: #292D52;
    padding: 1.8rem;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 13.021;
    clip-path: shape(from 25.87% 10.87%, curve to 0% 20.41% with 15.74% -4.19%/6.48% 14.05%, vline to 100%, hline to 100%, vline to 26%, curve to 87.07% 20.41% with 97.12% 41.13%/92.27% 30.38%, curve to 68.3% 10.87% with 84.12% 14.76%/78.33% -16.03%, curve to 45.06% 26% with 61.56% 28.96%/48.35% 28.96%, curve to 25.87% 10.87% with 41.78% 23.04%/32.28% 20.41%, close);
    height: 15.2rem;
    padding-top: 6.7rem; }
    @media screen and (max-width: 960px) {
      .p-footer__bottom {
        height: 11.2rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-footer__bottom {
      height: 20.2rem; } }

  .p-footer__credit {
    margin-right: 2rem; }
    .p-footer__credit img {
      width: 19rem; }
  .p-footer__copy {
    color: #fff;
    font-size: var(--size-p);
    font-weight: 500;
    line-height: 100%;
    letter-spacing: 0;
    background: url(./assets/img/ft-img-10.png) left top no-repeat;
    padding-left: 1.8rem; }
    @media screen and (max-width: 767px) {
      .p-footer__copy {
        padding-left: 0;
        background: none; } }

.c-pagetop {
  position: absolute;
  bottom: 1.2rem;
  right: 1.3rem;
  width: 8.4rem;
  height: 8.4rem;
  opacity: 0;
  border: 0;
  background: #232C4D url(assets/img/page-top.png) no-repeat center;
  background-size: 3.9rem;
  border-radius: 100%;
  cursor: pointer;
  outline: none;
  transition: all 0.35s;
  z-index: 999; }
  .c-pagetop::before {
    content: "";
    position: absolute;
    width: 2.4rem;
    height: 1.2rem;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
    background: #fff; }
  .c-pagetop.show {
    opacity: 1; }
    .c-pagetop.show:hover {
      opacity: 0.8; }
  .c-pagetop.fixed {
    position: fixed; }
  @media (max-width: 960px) {
    .c-pagetop {
      right: 1.1rem;
      bottom: 6.5rem;
      width: 5rem;
      height: 5rem;
      background-size: 2.2rem; }
      .c-pagetop.fixed {
        bottom: 6.5rem; } }

@media (min-width: 960.5px) {
  .c-nav-fix {
    display: none; } }
@media (min-width: 960.5px) and (max-width: 1440px) {
  .p-footer__schedule--table dl dt {
    width: 14.5rem; } }
@media (max-width: 960px) {
  .site-footer {
    padding-bottom: 6rem; }

  .c-nav-fix {
    position: fixed;
    bottom: 0;
    left: 0;
    display: flex;
    z-index: 110;
    width: 100%;
    border-top: #fff solid 1px; }
    .c-nav-fix li {
      width: calc(100% / 3);
      border-right: #FFF solid 1px; }
      .c-nav-fix li:last-child {
        border-right: 0; }
      .c-nav-fix li a {
        background: #232C4D;
        display: flex;
        justify-content: center;
        align-items: flex-end;
        width: 100%;
        height: 6rem;
        padding: .7rem 0;
        color: #FFF;
        font-size: 1.5rem;
        font-weight: 400;
        line-height: 150%;
        letter-spacing: 0;
        position: relative; }
        .c-nav-fix li a::before {
          content: "";
          position: absolute;
          width: 1.8rem;
          height: 1.8rem;
          top: .8rem;
          left: 50%;
          transform: translateX(-50%);
          -webkit-mask: url(assets/img/tel-icon01.svg) center/100% no-repeat;
          mask: url(assets/img/tel-icon01.svg) center/100% no-repeat;
          background: #fff; }
        .c-nav-fix li a.c-acf_web {
          background: #E1A131; }
          .c-nav-fix li a.c-acf_web::before {
            -webkit-mask-image: url(assets/img/web-icon01.png);
            mask-image: url(assets/img/web-icon01.png); }
        .c-nav-fix li a.c-acf_access {
          background: #AD9A7C; }
          .c-nav-fix li a.c-acf_access::before {
            width: 1.4rem;
            -webkit-mask-image: url(assets/img/local-icon01.svg);
            mask-image: url(assets/img/local-icon01.svg); }

  .p-footer {
    padding: 6rem 0 20rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-footer {
      padding: 0 0 23rem; } }
@media (max-width: 960px) {
    .p-footer__nav {
      display: none; }
    .p-footer__logo img {
      width: 30rem; }
    .p-footer__banner {
      position: relative;
      right: auto;
      bottom: 0; }
      .p-footer__banner a {
        display: inline-block;
        margin-left: 1.5rem; }
      .p-footer__banner img {
        width: 40rem; }
    .p-footer__tel {
      margin-bottom: 2rem; }
      .p-footer__tel a {
        font-size: 3rem; }
    .p-footer__text.vz-local p {
      margin-bottom: 3rem; }
    .p-footer__credit img {
      width: 14rem; } }
@media (max-width: 767px) {
  .c-nav-fix li a {
    font-size: 1.4rem; }

  .p-mv__cont .p-mv__title {
    font-size: 2.6rem;
    margin-bottom: 1.5rem; }

  .p-mv__cont .p-mv__desc {
    font-size: Max(1.4rem, 14px);
    letter-spacing: 0; }

  .p-mv__cont {
    padding: 0 1.5rem; }

  .p-footer__banner {
    text-align: center; }
    .p-footer__banner a {
      margin-left: 0; }
    .p-footer__banner img {
      width: 30rem; }
  .p-footer__credit {
    margin-right: 0;
    margin-bottom: 1rem; }
  .p-footer__copyright {
    flex-flow: column; } }
[class^="grid-"],
[class*="grid-"] {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-left: 1.5rem;
  padding-right: 1.5rem; }

.l-grid-1770 {
  max-width: 180rem; }
.l-grid-1540 {
  max-width: 157rem; }
.l-grid-1500 {
  max-width: 153rem; }
.l-grid-1330 {
  max-width: 136rem; }
.l-grid-1360 {
  max-width: 139rem; }
.l-grid-1280 {
  max-width: 131rem; }
.l-grid-1200 {
  max-width: 123rem; }

.wow_custom {
  opacity: 0;
  -webkit-transform: translate(0, 35px);
  transform: translate(0, 35px);
  transition: all 0.5s ease; }
  .wow_custom.show {
    opacity: 1;
    -webkit-transform: none;
    transform: none; }
    .wow_custom.show.wow_vz_02 {
      animation: fade_in_0 500ms 500ms linear;
      animation-fill-mode: forwards; }
    .wow_custom.show.wow_vz_03 {
      animation: fade_in_0 500ms 1000ms linear;
      animation-fill-mode: forwards; }
    .wow_custom.show.wow_vz_04 {
      animation: fade_in_0 500ms 1500ms linear;
      animation-fill-mode: forwards; }
    .wow_custom.show.wow_vz_05 {
      animation: fade_in_0 500ms 2000ms linear;
      animation-fill-mode: forwards; }

.anchor_fixtop,
.u-anchor-offset {
  display: block;
  position: relative;
  top: -21rem;
  width: 100%;
  visibility: hidden; }

@media (max-width: 960px) {
  .anchor_fixtop,
  .u-anchor-offset {
    top: -11rem; } }
.l-container {
  width: 100%;
  max-width: 128rem;
  margin-inline: auto; }
  @media screen and (max-width: 960px) {
    .l-container {
      padding-inline: 3rem; } }
  @media screen and (max-width: 767px) {
    .l-container {
      padding-inline: 1.5rem; } }

.l-content {
  display: flex;
  gap: 0;
  margin-block: 4rem 8rem; }
  @media screen and (max-width: 960px) {
    .l-content {
      flex-direction: column;
      gap: 0;
      margin-block: 2rem 4rem; } }
  .l-content__main {
    width: calc(100% - 30rem);
    min-width: 0; }
    @media screen and (max-width: 960px) {
      .l-content__main {
        width: 100%;
        margin-bottom: 6rem; } }
  .l-content__sidebar {
    width: 30rem;
    padding-left: 5rem;
    min-width: 0; }
    @media screen and (max-width: 960px) {
      .l-content__sidebar {
        width: 100%;
        padding-left: 0; } }

/* ==========================================================================
   Object - Component (c-)
   ========================================================================== */
.c-hamburger {
  position: relative;
  z-index: 110;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.7rem;
  width: 6rem;
  height: 6rem;
  padding: 0;
  background: #263050;
  border: 0;
  border-radius: 0rem;
  cursor: pointer;
  transition: background-color 0.3s ease; }
  @media (hover: hover) {
    .c-hamburger:hover {
      opacity: 0.9; } }
  .c-hamburger__line {
    display: block;
    width: 2.4rem;
    height: 0.2rem;
    background-color: #fff;
    transition: transform 0.35s ease, opacity 0.25s ease;
    transform-origin: center; }
  .c-hamburger.is-active .c-hamburger__line:nth-child(1) {
    transform: translateY(0.9rem) rotate(45deg); }
  .c-hamburger.is-active .c-hamburger__line:nth-child(2) {
    opacity: 0; }
  .c-hamburger.is-active .c-hamburger__line:nth-child(3) {
    transform: translateY(-0.9rem) rotate(-45deg); }

@media (min-width: 960.5px) {
  .c-hamburger {
    display: none; } }
.c-heading {
  font-weight: 700;
  line-height: 150%;
  letter-spacing: 0.08rem;
  color: #263050; }
  @media screen and (max-width: 960px) {
    .c-heading {
      letter-spacing: 0.02rem; } }
  .c-heading--frame {
    position: relative;
    padding: 2rem 3rem;
    text-align: center; }
    .c-heading--frame::before, .c-heading--frame::after {
      content: "";
      position: absolute;
      width: 2.4rem;
      height: 2.4rem;
      border: 0.2rem solid #263050; }
    .c-heading--frame::before {
      top: 0;
      left: 0;
      border-right: 0;
      border-bottom: 0; }
    .c-heading--frame::after {
      bottom: 0;
      right: 0;
      border-left: 0;
      border-top: 0; }
  .c-heading--diamond {
    position: relative;
    padding-left: 3rem; }
    .c-heading--diamond::before {
      content: "";
      position: absolute;
      left: 0.2rem;
      top: 2rem;
      width: 1.2rem;
      height: 1.2rem;
      background-color: #263050;
      transform: translateY(-50%) rotate(45deg); }
      @media screen and (max-width: 960px) {
        .c-heading--diamond::before {
          top: 1.5rem; } }
    .c-heading--diamond::after {
      content: "";
      position: absolute;
      left: 1.8rem;
      top: 2rem;
      width: 0.6rem;
      height: 0.6rem;
      background-color: #263050;
      opacity: 0.4;
      transform: translateY(-50%) rotate(45deg); }
      @media screen and (max-width: 960px) {
        .c-heading--diamond::after {
          top: 1.5rem; } }
  .c-heading--tab {
    display: inline-block;
    position: relative;
    padding: 1rem 2.4rem 1rem 3.6rem;
    background-color: #263050;
    color: #fff;
    border-radius: 0.5rem;
    clip-path: polygon(1.6rem 0, 100% 0, 100% 100%, 0 100%); }
  .c-heading--center-diamond {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.6rem;
    text-align: center; }
    .c-heading--center-diamond::before, .c-heading--center-diamond::after {
      content: "";
      display: inline-block;
      width: 0.8rem;
      height: 0.8rem;
      background-color: #263050;
      transform: rotate(45deg); }
  .c-heading--block-num {
    counter-increment: c-heading-block;
    display: flex;
    align-items: center;
    gap: 2rem; }
    .c-heading--block-num::before {
      content: counter(c-heading-block,decimal-leading-zero);
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 6rem;
      height: 6rem;
      background-color: #263050;
      color: #fff;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 2.6rem;
      font-weight: 900;
      font-style: italic;
      letter-spacing: -0.1rem;
      border-radius: 0.5rem;
      box-shadow: 0.3rem 0.3rem 0 rgba(38, 48, 80, 0.35); }
  .c-heading--layered {
    position: relative;
    padding-top: 1.6rem; }
    .c-heading--layered::before {
      content: attr(data-en);
      position: absolute;
      top: 0;
      left: 0;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 4.8rem;
      font-weight: 900;
      font-style: italic;
      letter-spacing: -0.1rem;
      color: rgba(38, 48, 80, 0.18);
      line-height: 1;
      -webkit-text-stroke: 0.05rem rgba(38, 48, 80, 0.4); }
  .c-heading--section {
    text-align: center;
    margin-bottom: 4rem; }
    .c-heading--section .ja {
      display: block;
      font-size: 2.8rem;
      font-weight: 700;
      line-height: 1.4;
      margin-bottom: 1rem; }
    .c-heading--section .en {
      display: inline-flex;
      align-items: center;
      gap: 1.2rem;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 1.4rem;
      font-weight: 500;
      color: #263050;
      letter-spacing: 0.3rem;
      text-transform: uppercase; }
      .c-heading--section .en::before, .c-heading--section .en::after {
        content: "";
        display: inline-block;
        width: 3rem;
        height: 0.1rem;
        background-color: #263050; }
  .c-heading--hy-lv1 {
    position: relative;
    padding: 5rem 0 0rem;
    margin-bottom: 4rem;
    text-align: center;
    font-size: var(--size-h1);
    line-height: 150%; }
    .c-heading--hy-lv1::after {
      content: "";
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      z-index: -1;
      top: 0rem;
      width: 7.5rem;
      height: 5rem;
      -webkit-mask: url(assets/img/icon-tooth.png) center/contain no-repeat;
      mask: url(assets/img/icon-tooth.png) center/contain no-repeat;
      background-color: #f1e6c5; }
    @media screen and (max-width: 960px) {
      .c-heading--hy-lv1 {
        margin-bottom: 3rem; }
        .c-heading--hy-lv1::before {
          width: 6rem; } }
    @media screen and (max-width: 960px) and (max-width: 767px) {
      .c-heading--hy-lv1::before {
        width: 3rem; } }

  .c-heading--hy-lv1-alt {
    padding: 0 0 0 2rem;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 1.5;
    border-left: 0.6rem solid #263050; }
    @media screen and (max-width: 960px) {
      .c-heading--hy-lv1-alt {
        font-size: 2rem;
        padding-left: 1.6rem; } }
  .c-heading--hy-lv2 {
    position: relative;
    padding: 1.5rem 2rem;
    background: #263050;
    color: #fff;
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1.4;
    border: 1px dashed #fff;
    outline: 0.6rem solid #263050;
    width: calc(100% - 1.2rem);
    margin-left: 0.6rem; }
    @media screen and (max-width: 960px) {
      .c-heading--hy-lv2 {
        padding: 1rem 1.5rem;
        font-size: 1.8rem;
        text-align: justify; } }
  .c-heading--hy-lv2-alt {
    padding: 0 5rem 0 0;
    background: transparent;
    color: #263050;
    font-size: 2.2rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.2rem; }
  .c-heading--hy-lv3 {
    position: relative;
    padding: 0 0 1.5rem;
    color: #263050;
    font-size: 2rem;
    font-weight: 600;
    line-height: 1.4; }
    .c-heading--hy-lv3::before, .c-heading--hy-lv3::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      height: 0.2rem;
      background: #263050; }
    .c-heading--hy-lv3::before {
      width: 10%;
      z-index: 2; }
    .c-heading--hy-lv3::after {
      width: 100%;
      opacity: 0.1; }
  .c-heading--hy-lv4 {
    position: relative;
    padding: 0 0 0 2.5rem;
    color: #263050;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.4;
    text-align: justify; }
    .c-heading--hy-lv4::before {
      content: "";
      position: absolute;
      top: 0.7rem;
      left: 0;
      width: 1.5rem;
      height: 1.5rem;
      background: #263050; }
  .c-heading--sizev1 {
    font-size: var(--size-h1); }
  .c-heading--sizev2 {
    font-size: var(--size-h2); }
  .c-heading--sizev3 {
    font-size: var(--size-h3); }
  .c-heading--sizev4 {
    font-size: var(--size-h4); }

.c-heading-counter {
  counter-reset: c-heading-bignum c-heading-block; }

.c-media {
  display: flex;
  align-items: flex-start;
  gap: 4rem;
  margin-bottom: 4rem; }
  @media screen and (max-width: 960px) {
    .c-media {
      gap: 3rem;
      flex-direction: column; } }
  @media screen and (max-width: 767px) {
    .c-media {
      gap: 2.5rem; } }
  .c-media--right {
    flex-direction: row-reverse; }
    @media screen and (max-width: 960px) {
      .c-media--right {
        flex-direction: column; } }
  .c-media--center {
    align-items: center; }
  .c-media__image {
    flex: 0 0 35%;
    max-width: 35%; }
    @media screen and (max-width: 960px) {
      .c-media__image {
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
        padding-top: 0.5rem; } }
    .c-media__image img {
      width: 100%;
      height: auto;
      display: block;
      border-radius: 0.8rem; }
    .c-media__image .c-pa p {
      font-size: 2rem;
      line-height: 150%;
      letter-spacing: 0;
      font-weight: 500; }
      @media screen and (max-width: 960px) {
        .c-media__image .c-pa p {
          font-size: 1.8rem; } }
    .c-media__image.tn-02 {
      position: relative;
      z-index: 0; }
      @media screen and (min-width: 961px) {
        .c-media__image.tn-02 {
          position: sticky;
          top: 23.5%; } }
      .c-media__image.tn-02 .c-pa {
        position: absolute;
        z-index: 0;
        bottom: 1.5rem;
        right: 1.5rem; }
  .c-media--narrow .c-media__image {
    flex: 0 0 30%;
    max-width: 30%; }
    @media screen and (max-width: 960px) {
      .c-media--narrow .c-media__image {
        flex: 1 1 100%;
        max-width: 100%; } }
  .c-media__body {
    flex: 1 1 auto;
    min-width: 0; }
    @media screen and (max-width: 960px) {
      .c-media__body {
        flex: 1 1 100%;
        width: 100%;
        min-width: 100%; } }
    .c-media__body > :first-child {
      margin-top: 0; }
    .c-media__body > :last-child {
      margin-bottom: 0; }
    .c-media__body h2,
    .c-media__body h3,
    .c-media__body h4 {
      margin-bottom: 1.6rem; }
    .c-media__body p {
      margin-bottom: 1.4rem; }

.c-columns {
  display: grid;
  gap: 4.5rem 3rem;
  margin-bottom: 4rem; }
  @media screen and (max-width: 960px) {
    .c-columns {
      gap: 4rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .c-columns {
      gap: 3rem; } }

  .c-columns--2 {
    grid-template-columns: repeat(2, 1fr); }
    @media screen and (max-width: 960px) {
      .c-columns--2 {
        grid-template-columns: 1fr; } }
  .c-columns--3 {
    grid-template-columns: repeat(3, 1fr); }
    @media screen and (max-width: 960px) {
      .c-columns--3 {
        grid-template-columns: 1fr; } }
  .c-columns--4 {
    grid-template-columns: repeat(4, 1fr); }
    @media screen and (max-width: 960px) {
      .c-columns--4 {
        grid-template-columns: repeat(2, 1fr); } }
  @media screen and (max-width: 960px) {
    .c-columns--sp-2 {
      grid-template-columns: repeat(2, 1fr); } }
  @media screen and (max-width: 960px) {
    .c-columns--sp-3 {
      gap: 2rem;
      grid-template-columns: repeat(3, 1fr); } }
  @media screen and (max-width: 767px) {
    .c-columns--sp-3 {
      gap: 0.8rem; } }
  .c-columns__item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 1rem;
    margin-bottom: 2rem; }
    @media screen and (max-width: 960px) {
      .c-columns__item img {
        border-radius: 0.5rem;
        margin-bottom: 1.5rem; } }

.c-dot-list {
  list-style: none;
  margin-bottom: -2.5rem !important;
  padding: 0; }
  @media screen and (max-width: 960px) {
    .c-dot-list {
      margin-bottom: 0 !important; } }
  .c-dot-list > li {
    position: relative;
    padding: 0 0 1rem 2.4rem;
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400;
    border-bottom: 1px dashed rgba(51, 51, 51, 0.3);
    margin-bottom: 2.5rem; }
    @media (max-width: 960px) {
      .c-dot-list > li {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }
    @media screen and (max-width: 960px) {
      .c-dot-list > li:last-child {
        padding-bottom: 0;
        border-bottom: 0;
        margin-bottom: 0; } }
    .c-dot-list > li::before {
      content: "";
      position: absolute;
      top: 1rem;
      left: 0;
      width: 1rem;
      height: 1rem;
      background-color: #333333;
      border-radius: 50%; }
  .c-dot-list--2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 4rem;
    row-gap: 0; }
    @media screen and (max-width: 960px) {
      .c-dot-list--2col {
        grid-template-columns: 1fr;
        column-gap: 0; } }
  .c-dot-list--plain > li:not(:last-child) {
    border-bottom: 0;
    margin-bottom: 0; }
  .c-dot-list--square > li::before {
    border-radius: 0; }

.c-check-list {
  list-style: none;
  margin: 0 0 4rem;
  padding: 0; }
  .c-check-list > li {
    position: relative;
    padding: 0.4rem 0 0.4rem 3rem;
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400; }
    @media (max-width: 960px) {
      .c-check-list > li {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }
    .c-check-list > li:not(:last-child) {
      margin-bottom: 0.6rem; }
    .c-check-list > li::before {
      content: "";
      position: absolute;
      top: 1rem;
      left: 0;
      width: 2rem;
      height: 1.1rem;
      border-left: 0.3rem solid #263050;
      border-bottom: 0.3rem solid #263050;
      transform: rotate(-45deg); }
  .c-check-list--2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 4rem; }
    @media screen and (max-width: 960px) {
      .c-check-list--2col {
        grid-template-columns: 1fr; } }

.c-info-table {
  border-top: 1px dashed rgba(51, 51, 51, 0.2); }
  @media screen and (max-width: 960px) {
    .c-info-table--rowsp .c-info-table__row {
      grid-template-columns: 11rem 1fr; } }
  .c-info-table--pc21 .c-info-table__row {
    grid-template-columns: 21rem 1fr; }
    @media screen and (max-width: 960px) {
      .c-info-table--pc21 .c-info-table__row {
        grid-template-columns: 11rem 1fr; } }
  .c-info-table__row {
    display: grid;
    grid-template-columns: 15rem 1fr;
    gap: 2rem;
    padding: 2rem 0rem;
    border-bottom: 1px dashed rgba(51, 51, 51, 0.2); }
    @media screen and (max-width: 960px) {
      .c-info-table__row {
        grid-template-columns: 7rem 1fr;
        gap: 1rem;
        padding: 1.5rem 0rem; } }
    .c-info-table__row dt,
    .c-info-table__row dd {
      font-size: var(--size-p);
      line-height: 195%;
      letter-spacing: 0.05rem;
      font-weight: 400;
      margin: 0;
      color: #333333; }
      @media (max-width: 960px) {
        .c-info-table__row dt,
        .c-info-table__row dd {
          line-height: 185%;
          letter-spacing: 0em;
          text-align: justify; } }
    .c-info-table__row dt {
      font-weight: 700; }
  .c-info-table--filled .c-info-table__row {
    align-items: start; }
    .c-info-table--filled .c-info-table__row dt {
      display: inline-block;
      width: max-content;
      max-width: 100%;
      padding: 0.4rem 1.4rem;
      background-color: #263050;
      color: #fff;
      border-radius: 0.4rem;
      font-size: 1.4rem; }
  .c-info-table--bordered {
    border: 1px solid #263050;
    border-top-width: 1px;
    padding: 0 2rem; }
    .c-info-table--bordered .c-info-table__row {
      border-bottom: 1px solid rgba(38, 48, 80, 0.3); }
      .c-info-table--bordered .c-info-table__row:last-child {
        border-bottom: 0; }
      .c-info-table--bordered .c-info-table__row dt {
        position: relative;
        padding-left: 1.6rem; }
        .c-info-table--bordered .c-info-table__row dt::before {
          content: "";
          position: absolute;
          left: 0;
          top: 0.8rem;
          width: 0.4rem;
          height: 1.6rem;
          background-color: #263050;
          border-radius: 0.2rem; }
  .c-info-table--striped {
    border-top: 0; }
    .c-info-table--striped .c-info-table__row {
      border-bottom: 0;
      padding: 1.4rem 2rem; }
      .c-info-table--striped .c-info-table__row:nth-child(odd) {
        background-color: rgba(38, 48, 80, 0.2); }
      .c-info-table--striped .c-info-table__row:nth-child(even) {
        background-color: rgba(38, 48, 80, 0.06); }
      @media screen and (max-width: 960px) {
        .c-info-table--striped .c-info-table__row {
          padding: 1rem 1.4rem; } }
  .c-info-table--card {
    border-top: 0;
    display: flex;
    flex-direction: column;
    gap: 1.2rem; }
    .c-info-table--card .c-info-table__row {
      background-color: #fff;
      border: 1px solid rgba(38, 48, 80, 0.3);
      border-bottom: 1px solid rgba(38, 48, 80, 0.3);
      border-radius: 0.6rem;
      padding: 1.6rem 2rem;
      box-shadow: 0 0.2rem 0.6rem rgba(0, 0, 0, 0.04); }
  .c-info-table--vertical .c-info-table__row {
    grid-template-columns: 1fr;
    gap: 0.6rem; }
    .c-info-table--vertical .c-info-table__row dt {
      font-size: 1.4rem;
      letter-spacing: 0.1rem; }
  .c-info-table--compact .c-info-table__row {
    padding: 0.8rem 0.6rem;
    grid-template-columns: 14rem 1fr;
    gap: 1.2rem; }
    @media screen and (max-width: 960px) {
      .c-info-table--compact .c-info-table__row {
        grid-template-columns: 1fr;
        padding: 0.6rem 0.4rem; } }

.c-box {
  padding: 3rem;
  margin-bottom: 4rem;
  border-radius: 0.8rem; }
  @media screen and (max-width: 960px) {
    .c-box {
      padding: 2rem 1.6rem; } }
  .c-box > :first-child {
    margin-top: 0; }
  .c-box > :last-child {
    margin-bottom: 0; }
  .c-box--bg {
    background-color: rgba(38, 48, 80, 0.08); }
  .c-box--bg-primary {
    background-color: #263050;
    color: #fff; }
    .c-box--bg-primary h2,
    .c-box--bg-primary h3,
    .c-box--bg-primary h4,
    .c-box--bg-primary h5,
    .c-box--bg-primary h6,
    .c-box--bg-primary a {
      color: #fff; }
    .c-box--bg-primary a {
      text-decoration: underline; }
  .c-box--bg-dark {
    background-color: #333333;
    color: #fff; }
    .c-box--bg-dark h2,
    .c-box--bg-dark h3,
    .c-box--bg-dark h4,
    .c-box--bg-dark h5,
    .c-box--bg-dark h6 {
      color: #fff; }
  .c-box--border {
    background-color: #fff;
    border: 0.2rem solid #263050; }
  .c-box--border-thin {
    background-color: #fff;
    border: 0.1rem solid rgba(38, 48, 80, 0.5); }
  .c-box--frame {
    position: relative;
    padding: 5rem;
    background-color: #fff;
    border: 6px solid #263050;
    border-radius: 0; }
    @media screen and (max-width: 960px) {
      .c-box--frame {
        padding: 2rem 2rem;
        border: 2px solid #263050; } }
  .c-box--rounded {
    border-radius: 2rem; }
  .c-box--callout {
    background-color: rgba(38, 48, 80, 0.08);
    border-left: 0.6rem solid #263050;
    padding-left: 2.6rem; }
    @media screen and (max-width: 960px) {
      .c-box--callout {
        padding-left: 1.8rem; } }
  .c-box__title {
    margin: 0 0 1.4rem;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.4;
    color: #333333; }

.c-schedule {
  width: 100%;
  margin: 0 0 4rem;
  border-collapse: collapse;
  border: 1px solid rgba(38, 48, 80, 0.4);
  text-align: center; }
  .c-schedule th,
  .c-schedule td {
    padding: 1.5rem 1rem;
    border: 1px solid rgba(38, 48, 80, 0.4);
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400;
    text-align: center; }
    @media (max-width: 960px) {
      .c-schedule th,
      .c-schedule td {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }
    @media screen and (max-width: 960px) {
      .c-schedule th,
      .c-schedule td {
        text-align: center;
        line-height: 150%;
        padding: 0.8rem 0.5rem; } }
  .c-schedule thead th {
    background-color: #263050;
    color: #fff;
    font-weight: 700;
    border-left: 0; }
    .c-schedule thead th:not(:last-child) {
      border-right: 1px solid rgba(255, 255, 255, 0.4); }
  .c-schedule tbody th {
    background-color: rgba(38, 48, 80, 0.2);
    color: #263050;
    font-weight: 700;
    text-align: left;
    padding-left: 1.4rem;
    white-space: nowrap; }
  .c-schedule tbody td {
    color: #333333; }
  .c-schedule .is-closed {
    color: #333333; }

.c-section {
  margin-bottom: 8rem;
  scroll-margin-top: 8rem; }
  @media screen and (max-width: 960px) {
    .c-section {
      margin-bottom: 5rem;
      scroll-margin-top: 6rem; } }
  .c-section__anchor {
    position: relative;
    top: -8rem;
    visibility: hidden; }
  .c-section__title {
    margin-bottom: 3rem; }
  .c-section__body > :first-child {
    margin-top: 0; }
  .c-section__body > :last-child {
    margin-bottom: 0; }

.c-faq {
  margin: 0 0 4rem; }
  .c-faq__item {
    margin-bottom: 1.6rem;
    border: 1px solid rgba(38, 48, 80, 0.4);
    background-color: #fff; }
    .c-faq__item[open] .c-faq__q::after {
      transform: rotate(180deg); }
  .c-faq__q {
    position: relative;
    list-style: none;
    cursor: pointer;
    padding: 1.6rem 5rem 1.6rem 5rem;
    background-color: rgba(38, 48, 80, 0.2);
    font-size: var(--size-p);
    font-weight: 700;
    line-height: 1.5;
    color: #333333;
    transition: background-color 0.25s ease; }
    .c-faq__q::-webkit-details-marker {
      display: none; }
    .c-faq__q::before {
      content: "Q.";
      position: absolute;
      left: 1.6rem;
      top: 50%;
      transform: translateY(-50%);
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 2rem;
      font-weight: 900;
      color: #263050; }
    .c-faq__q::after {
      content: "";
      position: absolute;
      right: 2rem;
      top: 50%;
      width: 0.9rem;
      height: 0.9rem;
      border-right: 0.2rem solid #263050;
      border-bottom: 0.2rem solid #263050;
      transform: translateY(-70%) rotate(45deg);
      transition: transform 0.3s ease; }
    @media (hover: hover) {
      .c-faq__q:hover {
        background-color: rgba(38, 48, 80, 0.25); } }
  .c-faq__a {
    position: relative;
    padding: 1.6rem 2rem 1.6rem 5rem;
    font-size: var(--size-p);
    line-height: 1.85;
    color: #333333; }
    .c-faq__a::before {
      content: "A.";
      position: absolute;
      left: 1.6rem;
      top: 1.5rem;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 2rem;
      font-weight: 900;
      color: #C09867; }
    .c-faq__a > :first-child {
      margin-top: 0; }
    .c-faq__a > :last-child {
      margin-bottom: 0; }

.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  padding: 1rem 2rem;
  background-color: #263050;
  color: #fff;
  font-size: var(--size-p);
  line-height: 195%;
  letter-spacing: 0.05rem;
  font-weight: 400;
  text-decoration: none;
  border: 0.1rem solid #263050;
  border-radius: 5rem;
  cursor: pointer;
  transition: all 0.3s ease; }
  @media (max-width: 960px) {
    .c-btn {
      line-height: 185%;
      letter-spacing: 0em;
      text-align: justify; } }
  @media (hover: hover) {
    .c-btn:hover {
      background-color: #fff;
      color: #263050; } }
  .c-btn--outline {
    background-color: transparent;
    color: #263050; }
    @media (hover: hover) {
      .c-btn--outline:hover {
        background-color: #263050;
        color: #fff; } }
  .c-btn--lg {
    min-width: 32rem;
    height: 6.4rem;
    font-size: 1.8rem;
    border-radius: 3.2rem; }
    @media screen and (max-width: 960px) {
      .c-btn--lg {
        min-width: 24rem;
        height: 5.4rem;
        font-size: 1.5rem; } }
  .c-btn--block {
    width: 100%;
    min-width: 0; }
  .c-btn--arrow::after {
    content: "";
    display: inline-block;
    width: 0.7rem;
    height: 0.7rem;
    margin-left: 0.4rem;
    border-top: 0.2rem solid currentColor;
    border-right: 0.2rem solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.3s ease; }
  @media (hover: hover) {
    .c-btn--arrow:hover::after {
      transform: translateX(0.4rem) rotate(45deg); } }
  .c-btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 1.6rem;
    margin: 2rem 0 0; }
    @media screen and (max-width: 960px) {
      .c-btn-group {
        gap: 1rem; } }

.c-map {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0 0 4rem;
  overflow: hidden;
  border-radius: 0.8rem; }
  @media screen and (max-width: 960px) {
    .c-map {
      aspect-ratio: 4 / 3;
      margin-bottom: 2rem; } }
  .c-map iframe,
  .c-map img,
  .c-map embed,
  .c-map object {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block; }
  .c-map--square {
    aspect-ratio: 1 / 1; }
    @media screen and (max-width: 960px) {
      .c-map--square {
        aspect-ratio: 1 / 1; } }
  .c-map--tall {
    aspect-ratio: 3 / 4; }

.c-flow {
  display: flex;
  align-items: stretch;
  gap: 1.6rem;
  list-style: none;
  margin: 0 0 4rem;
  padding: 0; }
  @media screen and (max-width: 960px) {
    .c-flow {
      flex-direction: column;
      gap: 2.4rem; } }
  .c-flow__item {
    position: relative;
    flex: 1 1 0;
    padding: 2rem;
    background-color: rgba(38, 48, 80, 0.2);
    border-top: 0.4rem solid #263050;
    text-align: center;
    border-radius: 0; }
    .c-flow__item:not(:last-child)::after {
      content: "";
      position: absolute;
      top: 50%;
      right: -1.35rem;
      transform: translateY(-50%);
      width: 0;
      height: 0;
      border-top: 1.2rem solid transparent;
      border-bottom: 1.2rem solid transparent;
      border-left: 1rem solid #263050;
      z-index: 2; }
    @media screen and (max-width: 960px) {
      .c-flow__item {
        border-radius: 0.8rem; }
        .c-flow__item:not(:last-child)::after {
          top: auto;
          right: 50%;
          bottom: -1.8rem;
          transform: translateX(50%);
          border-top: 1rem solid #263050;
          border-bottom: 0;
          border-left: 1.2rem solid transparent;
          border-right: 1.2rem solid transparent; } }
  .c-flow__num {
    display: block;
    margin-bottom: 0.2rem;
    font-family: "Urbanist", "Roboto", Arial, sans-serif;
    font-size: 1.5rem;
    font-weight: 700;
    color: #263050;
    letter-spacing: 0.2rem; }
  .c-flow__title {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
    color: #263050;
    line-height: 150%; }
  .c-flow p {
    margin: 1rem 0 0;
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400;
    color: #555; }
    @media (max-width: 960px) {
      .c-flow p {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }

.c-step {
  counter-reset: c-step;
  list-style: none;
  margin: 0 0 4rem;
  padding: 0; }
  .c-step__item {
    counter-increment: c-step;
    position: relative;
    display: flex;
    gap: 2.4rem;
    padding-bottom: 4rem; }
    @media screen and (max-width: 960px) {
      .c-step__item {
        gap: 1.6rem;
        padding-bottom: 3rem; } }
    .c-step__item:not(:last-child)::before {
      content: "";
      position: absolute;
      top: 8rem;
      left: 4.5rem;
      bottom: 0;
      width: 0.2rem;
      background-color: rgba(38, 48, 80, 0.35); }
      @media screen and (max-width: 960px) {
        .c-step__item:not(:last-child)::before {
          top: 5.5rem;
          left: 2.75rem; } }
    .c-step__item:last-child {
      padding-bottom: 0; }
  .c-step__num {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.2rem;
    width: 9rem;
    height: 9rem;
    background-color: #263050;
    color: #fff;
    border-radius: 50%;
    line-height: 1; }
    .c-step__num > br {
      display: none; }
    @media screen and (max-width: 960px) {
      .c-step__num {
        width: 6.5rem;
        height: 6.5rem; } }
    .c-step__num .label {
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 1rem;
      font-weight: 500;
      letter-spacing: 0.2rem; }
      @media screen and (max-width: 960px) {
        .c-step__num .label {
          font-size: 0.9rem; } }
    .c-step__num .num {
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 2.2rem;
      font-weight: 900;
      font-style: italic;
      letter-spacing: -0.05rem; }
      @media screen and (max-width: 960px) {
        .c-step__num .num {
          font-size: 1.6rem; } }
    .c-step__num--auto::after {
      content: counter(c-step,decimal-leading-zero);
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 2.4rem;
      font-weight: 900;
      font-style: italic; }
  .c-step__body {
    flex: 1 1 auto;
    min-width: 0; }
    .c-step__body h4 {
      margin: 0 0 1rem;
      font-size: 2rem;
      font-weight: 700;
      color: #333333;
      line-height: 1.4; }
      @media screen and (max-width: 960px) {
        .c-step__body h4 {
          font-size: 1.7rem; } }
    .c-step__body p {
      margin: 0; }
      .c-step__body p:not(:last-child) {
        margin-bottom: 1rem; }
    .c-step__body img {
      display: block;
      max-width: 100%;
      height: auto;
      margin: 1.2rem 0;
      border-radius: 0.6rem; }

.c-process {
  padding-bottom: 1rem; }
  .c-process__item {
    position: relative;
    z-index: 1;
    padding: 5rem;
    margin-bottom: 5rem; }
    @media screen and (max-width: 960px) {
      .c-process__item {
        padding: 2rem; } }
    .c-process__item::before {
      content: "";
      position: absolute;
      z-index: -1;
      inset: 1rem;
      border: 1px solid #263050;
      background: #fff;
      transition: all 0.3s; }
    .c-process__item::after {
      content: "";
      position: absolute;
      z-index: -2;
      left: 0;
      bottom: 0;
      width: 100%;
      height: 30%;
      min-height: 10rem;
      background: #263050;
      transition: all 0.3s; }
    .c-process__item:last-child {
      margin-bottom: 0; }
      .c-process__item:last-child .c-process__content::after {
        display: none; }
  .c-process__step {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 6em;
    height: 6em;
    margin: 0 auto 1.5rem;
    text-align: center;
    line-height: 1;
    letter-spacing: 0;
    text-transform: uppercase;
    font-size: 1.3rem;
    color: #fff;
    background: #263050; }
    .c-process__step::after {
      content: "";
      position: absolute;
      z-index: -1;
      inset: 0.5rem;
      border: 1px solid #fff;
      opacity: 0.8;
      transition: all 0.3s; }
  .c-process__number {
    margin-top: 0;
    font-size: 2.7em;
    line-height: 1;
    letter-spacing: 0; }
  .c-process__title {
    text-align: center;
    color: #263050;
    line-height: 1.4;
    font-size: var(--size-h3); }
    .c-process__title::before, .c-process__title::after {
      display: none; }
    .c-process__title.c-heading--h4, .c-process__title.c-heading--h5 {
      padding: 0;
      border-bottom: 0;
      background: transparent; }
  .c-process__content img {
    width: 100%;
    height: 35rem;
    object-fit: cover; }
    @media screen and (max-width: 960px) {
      .c-process__content img {
        height: auto; } }
  .c-process__content::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(-3em + 1px);
    width: 7em;
    height: 3em;
    margin: 0 auto;
    background: #263050;
    clip-path: polygon(0 0, 100% 0, 50% 100%); }
    @media screen and (max-width: 960px) {
      .c-process__content::after {
        bottom: calc(-2em + 1px);
        width: 5em;
        height: 2em; } }
  .c-process__content--large img {
    height: 45rem; }
    @media screen and (max-width: 960px) {
      .c-process__content--large img {
        height: auto; } }

.itv-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 3rem;
  flex-wrap: wrap; }
  .itv-container.tn-02 {
    flex-direction: row-reverse; }
    .itv-container.tn-02 .itv-container__image::before {
      left: auto;
      right: -12rem; }
  .itv-container .itv-subtitle {
    display: block;
    width: 100%;
    font-weight: 500;
    line-height: 1;
    font-size: 1.8rem;
    letter-spacing: 0rem;
    color: #C09867;
    margin-bottom: 1.2rem; }
  .itv-container .itv-title {
    margin-bottom: 3rem;
    position: relative;
    font-weight: 600;
    font-size: var(--size-h2);
    letter-spacing: 0rem;
    line-height: 140%;
    padding-bottom: 2.4rem;
    color: #232C4D; }
    .itv-container .itv-title::after {
      position: absolute;
      content: "";
      width: 12rem;
      height: 1px;
      bottom: 0;
      background: #333333;
      left: 0.3rem; }
  .itv-container__content {
    flex: 6; }
  .itv-container__image {
    flex: 4;
    position: relative;
    z-index: 0; }
    .itv-container__image img {
      width: 100%;
      object-fit: cover; }
    .itv-container__image::before {
      content: "";
      position: absolute;
      width: 25rem;
      height: 15rem;
      bottom: -5rem;
      left: -12rem;
      z-index: -1;
      background: rgba(60, 37, 27, 0.03); }

.itv-container__02 {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 70%;
  padding: 5rem 8rem;
  text-align: center;
  margin-right: auto;
  margin-left: auto;
  border-radius: 0.8rem;
  position: relative;
  z-index: 0;
  background: #232C4D; }
  .itv-container__02 .itv-text {
    color: #fff; }
  .itv-container__02 .itv-title {
    margin-bottom: 3rem;
    position: relative;
    font-weight: 500;
    font-size: var(--size-h2);
    letter-spacing: 0rem;
    line-height: 140%;
    padding-bottom: 2.4rem;
    color: #fff; }
    .itv-container__02 .itv-title::after {
      position: absolute;
      content: "";
      width: 12rem;
      height: 1px;
      bottom: 0;
      background: #fff;
      left: 50%;
      transform: translateX(-50%); }
  .itv-container__02 .itv-subtitle {
    color: #fff;
    font-weight: 500;
    line-height: 1;
    font-size: 1.8rem;
    letter-spacing: 0.1rem;
    margin-bottom: 1.2rem; }
  .itv-container__02 .itv-image {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: -1; }
    .itv-container__02 .itv-image img {
      object-fit: cover;
      width: 100%;
      height: 100%;
      opacity: 0.3; }

@media (max-width: 960px) {
  .itv-container {
    flex-direction: column-reverse !important;
    align-items: center;
    gap: 2rem;
    margin-bottom: 4rem !important; }

  .itv-container__content,
  .itv-container__image {
    flex: unset;
    width: 100%; }

  .itv-container__image img {
    width: 100%;
    height: 47rem; } }
  @media (max-width: 960px) and (max-width: 560px) {
    .itv-container__image img {
      height: 23rem; } }

@media (max-width: 960px) {
  .itv-container__image::before {
    display: none; }

  .itv-container .itv-subtitle {
    font-size: 1.5rem;
    line-height: 185%;
    letter-spacing: 0;
    margin-bottom: 0; }

  .itv-container .itv-title {
    font-size: 1.8rem;
    line-height: 145%;
    letter-spacing: 0;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem; }

  .itv-container .itv-title::after {
    width: 8rem; }

  .itv-container__02 {
    width: 100%;
    padding: 0;
    margin-bottom: 4rem !important;
    background: transparent;
    align-items: flex-start;
    text-align: left; }
    .itv-container__02 .itv-title {
      color: #232C4D;
      font-size: 1.8rem;
      line-height: 145%;
      letter-spacing: 0;
      margin-bottom: 2rem;
      padding-bottom: 1.5rem;
      font-weight: 600;
      order: 3; }
      .itv-container__02 .itv-title::after {
        width: 8rem;
        background: #232C4D;
        transform: inherit;
        left: 0.3rem; }
    .itv-container__02 .itv-subtitle {
      font-size: 1.5rem;
      line-height: 1.85;
      margin-bottom: 0rem;
      color: #232C4D;
      order: 2; }
    .itv-container__02 .itv-text {
      color: #333;
      order: 4; }
    .itv-container__02 .itv-image {
      order: 1;
      position: relative;
      margin-bottom: 2rem; }
      .itv-container__02 .itv-image img {
        opacity: 1;
        height: 47rem; } }
body:not(.home) .p-header.vz-02 {
  background: #F8F2EC; }
body:not(.home) main {
  padding-bottom: 5rem; }
  @media (min-width: 960.5px) {
    body:not(.home) main {
      padding-bottom: 10rem; } }

/* ==========================================================================
   Object - Project (p-)
   ========================================================================== */
.p-page-banner {
  position: relative;
  width: 100%;
  overflow: hidden; }
  .p-page-banner__content {
    position: relative; }
    .p-page-banner__content::before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: var(--grits-banner-overlay, rgba(239, 154, 0, 0.1));
      z-index: 1; }
  .p-page-banner__image {
    margin: 0;
    line-height: 0; }
    .p-page-banner__image img {
      display: block;
      width: 100%;
      height: 45rem;
      object-fit: cover;
      filter: blur(var(--grits-banner-blur, 0.3rem)); }
  .p-page-banner__title {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    color: #fff;
    text-align: center; }
    .p-page-banner__title .ja {
      display: block;
      font-size: 3.8rem;
      font-weight: 700;
      text-shadow: 0.3rem 0.3rem 0.4rem #333; }
      @media screen and (max-width: 960px) {
        .p-page-banner__title .ja {
          font-size: 2.4rem; } }

@media (max-width: 960px) {
  .p-page-banner__image img {
    height: 21rem; } }
.p-page-section {
  margin-bottom: var(--space-2xl); }
  @media screen and (max-width: 960px) {
    .p-page-section {
      margin-bottom: var(--space-xl); } }

.p-breadcrumb {
  margin-top: 2rem;
  margin-bottom: 2rem;
  font-size: var(--size-p); }
  .p-breadcrumb__list {
    display: inline;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0; }
  .p-breadcrumb__item {
    display: inline;
    position: relative;
    font-size: inherit;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: 0.05rem; }
    .p-breadcrumb__item:not(:last-child) {
      padding-right: 1.5rem;
      margin-right: 1.5rem; }
      .p-breadcrumb__item:not(:last-child)::after {
        content: "";
        position: absolute;
        right: 0;
        top: 49%;
        width: 0.8rem;
        aspect-ratio: 1 / 1;
        border-top: 1px solid #353535;
        border-right: 1px solid #353535;
        transform: translateY(-47%) rotate(45deg); }
    .p-breadcrumb__item a {
      color: #454545;
      text-decoration: none; }
      @media (hover: hover) {
        .p-breadcrumb__item a:hover {
          opacity: 1;
          text-decoration: underline; } }
    .p-breadcrumb__item.is-current {
      color: #999; }

.p-news-list {
  list-style: none;
  margin: 0 0 6rem;
  padding: 0;
  width: 100%; }
  @media screen and (max-width: 960px) {
    .p-news-list {
      margin-bottom: 0rem; } }
  .p-news-list__item {
    padding: 2rem 0;
    margin-bottom: 1.5rem;
    background-color: rgba(38, 48, 80, 0.2);
    transition: background-color 0.3s ease; }
    .p-news-list__item:last-child {
      margin-bottom: 0; }
    .p-news-list__item:nth-child(odd) {
      background-color: #263050; }
      .p-news-list__item:nth-child(odd) .p-news-list__date,
      .p-news-list__item:nth-child(odd) .p-news-list__title {
        color: #fff; }
    @media (hover: hover) {
      .p-news-list__item:hover {
        background-color: rgba(183, 162, 102, 0.5); }
        .p-news-list__item:hover .p-news-list__date,
        .p-news-list__item:hover .p-news-list__title {
          color: #333333; } }
  .p-news-list__link {
    display: flex;
    align-items: center;
    gap: 2rem;
    color: #333333;
    text-decoration: none;
    font-size: 1.6rem;
    transition: color 0.3s ease; }
    @media (hover: hover) {
      .p-news-list__link:hover {
        color: #263050; } }
    @media screen and (max-width: 960px) {
      .p-news-list__link {
        gap: 0; } }
  .p-news-list__date {
    display: inline-block;
    flex: 0 0 auto;
    min-width: 13rem;
    padding-inline: 2rem;
    font-size: 1.8rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.1rem;
    color: #333333;
    font-family: "Urbanist", "Roboto", Arial, sans-serif; }
    @media screen and (max-width: 960px) {
      .p-news-list__date {
        font-size: 1.5rem;
        min-width: 11rem;
        padding-left: 1rem;
        padding-right: 0; } }
  .p-news-list__title {
    flex: 1 1 auto;
    padding-right: 2rem;
    font-size: 1.8rem;
    line-height: 1.5;
    color: #333333;
    word-break: break-word; }
    @media screen and (max-width: 960px) {
      .p-news-list__title {
        font-size: 1.5rem;
        padding-right: 1rem; } }
  .p-news-list__empty {
    padding: 2.4rem;
    text-align: center;
    color: #333333; }

.pagination,
.nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-block: 4rem; }
  .pagination .page-numbers,
  .nav-links .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 4rem;
    min-width: 4rem;
    padding: 0 1rem;
    border: 0.1rem solid #263050;
    background-color: #fff;
    color: #333333;
    font-size: 1.4rem;
    text-decoration: none;
    transition: all 0.2s ease; }
    @media (hover: hover) {
      .pagination .page-numbers:hover,
      .nav-links .page-numbers:hover {
        background-color: #263050;
        color: #fff; } }
    .pagination .page-numbers.current,
    .nav-links .page-numbers.current {
      background-color: #263050;
      color: #fff; }
    .pagination .page-numbers.dots,
    .nav-links .page-numbers.dots {
      border: 0;
      background: none; }

.p-sidebar {
  display: flex;
  flex-direction: column; }
  .p-sidebar__widget {
    border: 0.1rem solid #263050;
    margin-bottom: 3rem;
    background-color: #fff; }
    @media screen and (max-width: 960px) {
      .p-sidebar__widget {
        margin-bottom: 1.5rem; } }
    .p-sidebar__widget:last-child {
      margin-bottom: 0; }
  .p-sidebar__title {
    position: relative;
    margin: 0;
    padding: 1rem 4rem 1rem 1rem;
    background-color: #263050;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: 0;
    text-align: left;
    cursor: pointer; }
    .p-sidebar__title::before {
      content: "";
      position: absolute;
      top: 50%;
      right: 1.5rem;
      width: 0.8rem;
      height: 0.8rem;
      border-top: 0.1rem solid #fff;
      border-right: 0.1rem solid #fff;
      transform: translateY(-50%) rotate(135deg);
      transition: transform 0.35s ease; }
    .p-sidebar__title.is-active::before {
      transform: translateY(-50%) rotate(315deg); }
    .p-sidebar__title span {
      display: inline; }
  .p-sidebar__list {
    list-style: none;
    margin: 0;
    padding: 0 1.5rem;
    max-height: 32rem;
    overflow: auto; }
    .p-sidebar__list li {
      border-bottom: 0.1rem solid #263050; }
      .p-sidebar__list li:last-child {
        border-bottom: 0; }
      .p-sidebar__list li a {
        display: block;
        padding: 1rem 0;
        color: #333;
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1.5;
        letter-spacing: 0;
        text-decoration: none;
        transition: color 0.2s ease; }
        @media (hover: hover) {
          .p-sidebar__list li a:hover {
            color: #263050; } }
        @media screen and (max-width: 960px) {
          .p-sidebar__list li a {
            font-size: 1.5rem; } }
      .p-sidebar__list li ul {
        list-style: none;
        margin: 0;
        padding-left: 1.5rem;
        border-top: 0.1rem solid #263050; }

.p-single__header {
  background-color: rgba(38, 48, 80, 0.08);
  padding: 3rem;
  margin-bottom: 0;
  border-radius: 0.5rem; }
  @media screen and (max-width: 960px) {
    .p-single__header {
      padding: 1rem; } }
.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 2rem;
  margin-bottom: 1rem; }
.p-single__date {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.3rem;
  color: #263050; }
  @media screen and (max-width: 960px) {
    .p-single__date {
      font-size: 1.5rem; } }
.p-single__categories {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  list-style: none;
  margin: 0;
  padding: 0; }
.p-single__category a {
  display: inline-block;
  padding: 0.3rem 1.4rem;
  background-color: #263050;
  color: #fff;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05rem;
  border-radius: 2rem;
  text-decoration: none;
  transition: opacity 0.3s ease; }
  @media (hover: hover) {
    .p-single__category a:hover {
      opacity: 0.85; } }
  @media screen and (max-width: 960px) {
    .p-single__category a {
      font-size: 1.2rem;
      padding: 0.2rem 1rem; } }
.p-single__title {
  margin: 0;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.2rem;
  color: #263050; }
  @media screen and (max-width: 960px) {
    .p-single__title {
      font-size: 2rem; } }
.p-single__content {
  padding: 4rem 0; }
  .p-single__content :is(h1, h2, h3, h4, h5, h6) {
    margin: 0 0 2.5rem;
    font-weight: 600;
    line-height: 140%;
    letter-spacing: 0.1rem;
    color: #263050;
    position: relative;
    clear: both;
    margin-top: 6rem; }
    .p-single__content :is(h1, h2, h3, h4, h5, h6):target {
      animation: grits-toc-flash 1.6s ease-out 1; }
    @media screen and (max-width: 960px) {
      .p-single__content :is(h1, h2, h3, h4, h5, h6) {
        margin-top: 4rem; } }
  .p-single__content h1 {
    position: relative;
    padding: 5rem 0 0rem;
    margin-bottom: 4rem;
    text-align: center;
    font-size: var(--size-h1);
    line-height: 150%; }
    .p-single__content h1::after {
      content: "";
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      z-index: -1;
      top: 0rem;
      width: 7.5rem;
      height: 5rem;
      -webkit-mask: url(assets/img/icon-tooth.png) center/contain no-repeat;
      mask: url(assets/img/icon-tooth.png) center/contain no-repeat;
      background-color: #f1e6c5; }
  .p-single__content h2 {
    font-size: var(--size-h2);
    background-color: #263050;
    color: #fff;
    padding: 1.5rem 2rem;
    border: 1px dashed #fff;
    outline: 0.6rem solid #263050;
    width: calc(100% - 1.2rem);
    margin-left: 0.6rem; }
  .p-single__content h3 {
    font-size: var(--size-h3);
    padding-bottom: 1.5rem; }
    .p-single__content h3::before, .p-single__content h3::after {
      content: "";
      position: absolute;
      left: 0;
      bottom: 0;
      height: 0.2rem;
      background: #263050; }
    .p-single__content h3::before {
      width: 10%;
      z-index: 2; }
    .p-single__content h3::after {
      width: 100%;
      opacity: 0.1; }
  .p-single__content h4,
  .p-single__content h5 {
    font-size: var(--size-h4);
    padding-left: 2.5rem; }
    .p-single__content h4::before,
    .p-single__content h5::before {
      content: "";
      position: absolute;
      top: 0.7rem;
      left: 0;
      width: 1.5rem;
      height: 1.5rem;
      background: #263050; }
  .p-single__content h4 {
    padding-left: 3rem; }
    .p-single__content h4::before {
      left: 0.2rem;
      top: 1.5rem;
      width: 1.2rem;
      height: 1.2rem;
      transform: translateY(-50%) rotate(45deg); }
    .p-single__content h4::after {
      content: "";
      position: absolute;
      width: 0.6rem;
      height: 0.6rem;
      background-color: #263050;
      opacity: 0.4;
      left: 1.8rem;
      top: 1.5rem;
      transform: translateY(-50%) rotate(45deg); }
  .p-single__content h5::before {
    border-radius: 100%; }
  .p-single__content h6 {
    font-size: var(--size-p); }
  .p-single__content :is(p, td, li, th, blockquote) {
    margin: 0 0 2.5rem;
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400;
    color: #333333; }
    @media (max-width: 960px) {
      .p-single__content :is(p, td, li, th, blockquote) {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }
    @media screen and (max-width: 960px) {
      .p-single__content :is(p, td, li, th, blockquote) {
        font-size: 1.5rem;
        line-height: 1.85; } }
  .p-single__content a {
    color: #0073aa;
    text-decoration: underline; }
    @media (hover: hover) {
      .p-single__content a:hover {
        opacity: 0.7; } }
  .p-single__content .aligncenter {
    margin-left: auto;
    margin-right: auto; }
  .p-single__content ul,
  .p-single__content ol {
    margin: 0 0 2.5rem 2.2rem; }
  .p-single__content ul {
    list-style: disc; }
  .p-single__content ol {
    list-style: decimal; }
  .p-single__content li {
    margin-bottom: 0; }
    .p-single__content li:not(:last-child) {
      margin-bottom: 1rem; }
  .p-single__content blockquote {
    position: relative;
    background-color: #eeeeee;
    padding: 5rem 4rem 4rem 7rem;
    clear: both; }
    @media screen and (max-width: 960px) {
      .p-single__content blockquote {
        padding: 4rem 1.5rem 1.5rem 5rem; } }
    .p-single__content blockquote::before {
      content: "\201C";
      position: absolute;
      top: 1.5rem;
      left: 1.8rem;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 7rem;
      font-weight: 700;
      line-height: 1;
      color: #263050; }
      @media screen and (max-width: 960px) {
        .p-single__content blockquote::before {
          top: -1.2rem;
          left: 1rem;
          font-size: 5rem; } }
    .p-single__content blockquote p:last-child {
      margin-bottom: 0; }
  .p-single__content hr {
    border: 0;
    border-top: 0.1rem solid #cccccc;
    margin: 2rem 0; }
  .p-single__content img {
    max-width: 100%;
    height: auto;
    margin-bottom: 2.5rem; }
.p-single__footer {
  margin-bottom: 10rem; }
  @media screen and (max-width: 960px) {
    .p-single__footer {
      margin-bottom: 4rem; } }

@keyframes grits-toc-flash {
  0% {
    background-color: rgba(183, 162, 102, 0.45); }
  100% {
    background-color: transparent; } }
.p-single-nav {
  margin-top: 5rem; }
  @media screen and (max-width: 960px) {
    .p-single-nav {
      margin-top: 0; } }
  .p-single-nav__list {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0; }
    @media screen and (max-width: 960px) {
      .p-single-nav__list {
        flex-wrap: wrap;
        gap: 1.5rem; } }
  .p-single-nav__link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30rem;
    height: 6.5rem;
    font-size: 1.6rem;
    color: #fff;
    background-color: #263050;
    border: 0.1rem solid #263050;
    border-radius: 3.3rem;
    text-decoration: none;
    transition: all 0.3s ease; }
    @media (hover: hover) {
      .p-single-nav__link:hover {
        opacity: 0.85; } }
    @media screen and (max-width: 960px) {
      .p-single-nav__link {
        width: 100%;
        height: 5rem;
        font-size: 1.5rem; } }
    .p-single-nav__link--disabled {
      opacity: 0.5;
      cursor: not-allowed;
      pointer-events: none; }

@media (min-width: 767.5px) {
  .p-single__content .alignleft,
  .p-single__content .alignright {
    width: 30%; }
  .p-single__content .alignleft {
    float: left;
    margin-right: 1.5rem; }
  .p-single__content .alignright {
    float: right;
    margin-left: 1.5rem; } }
@media (max-width: 960px) {
  .p-single__content :is(p, td, li, th, blockquote, a) {
    font-size: 1.5rem;
    line-height: 185%; }
  .p-single__content h1 {
    margin-bottom: 3rem; }
  .p-single__content h2 {
    padding: 1rem 1.5rem; }
  .p-single__content h4::before, .p-single__content h4::after {
    top: 1.2rem; }
  .p-single__content h5::before {
    top: .5rem; }
  .p-single__content blockquote {
    padding: 1.5rem; }
  .p-single__date {
    font-size: 1.5rem; }
  .p-single__title {
    font-size: 2rem; }
  .p-single-nav {
    margin-top: 0; }
    .p-single-nav__link {
      width: 20rem;
      height: 5rem;
      font-size: 1.5rem; } }
@media (max-width: 767px) {
  .p-single__header {
    padding: 1rem; }
  .p-single__content img {
    width: 100%; }
  .p-single-nav__list {
    flex-wrap: wrap;
    gap: 1.5rem; }
  .p-single-nav__link {
    width: 100%; }
  .p-single-nav__item {
    width: calc((100% - 1.501rem) / 2); }
    .p-single-nav__item.p-single-nav__item--back {
      order: 1;
      width: 100%; } }
.p-column {
  margin-block: 4rem 8rem; }
  @media screen and (max-width: 960px) {
    .p-column {
      margin-block: 2rem 4rem; } }
  .p-column__list {
    display: flex;
    flex-wrap: wrap;
    gap: 5rem 1.5rem;
    list-style: none;
    margin: 0;
    padding: 0; }
    @media screen and (max-width: 960px) {
      .p-column__list {
        gap: 5rem 1rem; } }
  .p-column li, .p-column__item {
    flex: 0 0 calc((100% - 4.5rem) / 4);
    box-sizing: border-box; }
    @media screen and (max-width: 960px) {
      .p-column li, .p-column__item {
        flex: 0 0 calc((100% - 1rem) / 2); } }

.c-column-card {
  display: flex;
  flex-direction: column; }
  .c-column-card__thumb-link {
    display: block;
    text-decoration: none; }
    @media (hover: hover) {
      .c-column-card__thumb-link:hover {
        opacity: 0.85; } }
  .c-column-card__thumb {
    position: relative;
    margin: 0 0 1rem;
    line-height: 0;
    aspect-ratio: 4 / 2.8;
    border-radius: 1.5rem;
    overflow: hidden; }
    @media screen and (max-width: 960px) {
      .c-column-card__thumb {
        border-radius: 0.8rem; } }
    .c-column-card__thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block; }
    .c-column-card__thumb--placeholder {
      background-color: rgba(38, 48, 80, 0.2); }
      .c-column-card__thumb--placeholder::after {
        content: "NO IMAGE";
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #263050;
        font-size: 1.4rem;
        font-weight: 700;
        letter-spacing: 0.2rem;
        line-height: 1;
        opacity: 0.6; }
  .c-column-card__content {
    display: flex;
    flex-direction: column; }
  .c-column-card__date {
    display: inline-block;
    align-self: flex-start;
    padding: 0.5rem 1.5rem;
    margin-bottom: 1rem;
    background-color: #263050;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 175%;
    letter-spacing: 0.1rem;
    border-radius: 0.5rem;
    text-decoration: none; }
    @media screen and (max-width: 960px) {
      .c-column-card__date {
        font-size: 1rem;
        padding: 0.6rem;
        line-height: 120%;
        margin-top: -3.4rem;
        z-index: 1;
        margin-bottom: 1.5rem; } }
  .c-column-card__title {
    margin: 0 0 1rem; }
    .c-column-card__title a {
      display: inline-block;
      font-size: var(--size-p);
      line-height: 195%;
      letter-spacing: 0.05rem;
      font-weight: 400;
      color: #333333;
      font-weight: bold;
      text-align: justify;
      text-decoration: none !important;
      transition: opacity 0.3s ease; }
      @media (max-width: 960px) {
        .c-column-card__title a {
          line-height: 185%;
          letter-spacing: 0em;
          text-align: justify; } }
      @media (hover: hover) {
        .c-column-card__title a:hover {
          opacity: 0.7; } }
      @media screen and (max-width: 960px) {
        .c-column-card__title a {
          line-height: 130%; } }
  .c-column-card__excerpt {
    margin: 0;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: 0.1rem;
    color: #333333;
    text-align: justify; }
    @media screen and (max-width: 960px) {
      .c-column-card__excerpt {
        font-size: 1.4rem;
        letter-spacing: 0;
        line-height: 165%; } }

.p-drawer {
  position: fixed;
  inset: 0;
  z-index: 100;
  background-color: rgba(255, 255, 255, 0.98);
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.4s ease, visibility 0s linear 0.4s; }
  .p-drawer.is-open {
    visibility: visible;
    opacity: 1;
    transition: opacity 0.4s ease, visibility 0s linear 0s; }
  .p-drawer__inner {
    min-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12rem 4rem; }
    @media screen and (max-width: 960px) {
      .p-drawer__inner {
        padding: 10rem 2rem 12rem;
        align-items: flex-start; } }
  .p-drawer__columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6rem;
    width: 100%;
    max-width: 120rem; }
    .p-drawer__columns--asymmetric {
      grid-template-columns: 1fr 2fr; }
    @media screen and (max-width: 960px) {
      .p-drawer__columns {
        grid-template-columns: 1fr;
        gap: 3rem; } }
  .p-drawer__col {
    min-width: 0; }
  .p-drawer__heading {
    display: flex;
    align-items: center;
    gap: 1.6rem;
    margin: 0 0 1.6rem;
    padding-bottom: 1rem;
    border-bottom: 2px solid #263050; }
    .p-drawer__heading-icon {
      flex-shrink: 0;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 6rem;
      height: 6rem;
      color: #263050; }
      .p-drawer__heading-icon svg,
      .p-drawer__heading-icon img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block; }
      @media screen and (max-width: 960px) {
        .p-drawer__heading-icon {
          width: 4.8rem;
          height: 4.8rem; } }
    .p-drawer__heading-text {
      flex: 1 1 auto;
      min-width: 0; }
    .p-drawer__heading .ja {
      display: block;
      font-size: 1.8rem;
      font-weight: 500;
      color: #263050;
      line-height: 1;
      margin-bottom: 0.8rem;
      letter-spacing: 0.1rem; }
    .p-drawer__heading .en {
      display: block;
      font-size: 3.4rem;
      font-weight: 700;
      color: #333333;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      letter-spacing: 0.2rem;
      line-height: 1; }
      @media screen and (max-width: 960px) {
        .p-drawer__heading .en {
          font-size: 2.6rem; } }
  .p-drawer__menu {
    list-style: none;
    margin: 0;
    padding: 0; }
    .p-drawer__menu--split {
      column-count: 2;
      column-gap: 4rem; }
      @media screen and (max-width: 960px) {
        .p-drawer__menu--split {
          column-count: 1;
          column-gap: 0; } }
      .p-drawer__menu--split > li {
        break-inside: avoid;
        page-break-inside: avoid;
        -webkit-column-break-inside: avoid; }
    .p-drawer__menu > li > a {
      position: relative;
      display: block;
      padding: 1.6rem 0 1.6rem 1.8rem;
      color: #333333;
      font-size: var(--size-p);
      line-height: 195%;
      letter-spacing: 0.05rem;
      font-weight: 400;
      text-decoration: none;
      transition: color 0.25s ease, padding-left 0.25s ease; }
      @media (max-width: 960px) {
        .p-drawer__menu > li > a {
          line-height: 185%;
          letter-spacing: 0em;
          text-align: justify; } }
      .p-drawer__menu > li > a::before {
        content: "";
        position: absolute;
        top: 50%;
        left: 0;
        width: 0;
        height: 0;
        border-top: 0.45rem solid transparent;
        border-bottom: 0.45rem solid transparent;
        border-left: 0.7rem solid #263050;
        transform: translateY(-50%);
        transition: transform 0.25s ease; }
      @media (hover: hover) {
        .p-drawer__menu > li > a:hover {
          color: #263050;
          padding-left: 2.6rem; }
          .p-drawer__menu > li > a:hover::before {
            transform: translateY(-50%) translateX(0.4rem); } }
      @media screen and (max-width: 960px) {
        .p-drawer__menu > li > a {
          padding: 0.5rem 0 0.5rem 1.6rem;
          font-weight: 500; } }
    .p-drawer__menu .sub-menu {
      list-style: none;
      margin: 0 0 1rem 1.6rem;
      padding: 0; }
      .p-drawer__menu .sub-menu li {
        border-bottom: 0; }
        .p-drawer__menu .sub-menu li a {
          position: relative;
          display: block;
          padding: 0.6rem 0 0.6rem 1.6rem;
          font-size: var(--size-p);
          font-weight: 500;
          color: #666;
          text-decoration: none;
          transition: color 0.25s ease, padding-left 0.25s ease; }
          .p-drawer__menu .sub-menu li a::before {
            content: "";
            position: absolute;
            top: 50%;
            left: 0;
            width: 0.9rem;
            height: 0.1rem;
            background-color: #263050;
            transform: translateY(-50%);
            transition: width 0.25s ease; }
          @media (hover: hover) {
            .p-drawer__menu .sub-menu li a:hover {
              color: #263050;
              padding-left: 2.2rem; }
              .p-drawer__menu .sub-menu li a:hover::before {
                width: 1.5rem; } }

body.is-menu-open {
  overflow: hidden; }
  @media screen and (max-width: 960px) {
    body.is-menu-open .site-header {
      height: 5rem; } }

.l-author-container {
  margin-block: 6rem;
  padding: 4.5rem;
  background: rgba(38, 48, 80, 0.1); }
  @media screen and (max-width: 960px) {
    .l-author-container {
      padding: 1rem;
      margin-block: 4rem; } }

.c-author {
  display: flex;
  gap: 0;
  padding: 3rem;
  margin-bottom: 3rem;
  background: #fff;
  border: 0.1rem solid #263050; }
  .c-author:last-child {
    margin-bottom: 0; }
  @media screen and (max-width: 960px) {
    .c-author {
      flex-direction: column;
      padding: 2rem 1.5rem; } }
  .c-author__info {
    width: calc(100% - 33rem);
    padding-right: 6rem; }
    @media screen and (max-width: 960px) {
      .c-author__info {
        order: 1;
        width: 100%;
        padding-right: 0; } }
  .c-author__avatar {
    flex-shrink: 0;
    width: 33rem; }
    .c-author__avatar.tn-02 {
      position: relative;
      z-index: 0; }
    .c-author__avatar img {
      width: 100%;
      display: block;
      border-radius: 0.5rem; }
    @media screen and (max-width: 960px) {
      .c-author__avatar {
        width: 100%;
        margin-bottom: 2rem; } }
  .c-author__title {
    margin: 0 0 3rem;
    font-size: 3rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0.15rem;
    color: #263050; }
    .c-author__title.vz-02 {
      font-size: 2.4rem;
      margin-bottom: 1.5rem; }
    @media screen and (max-width: 960px) {
      .c-author__title {
        font-size: 2rem;
        margin-bottom: 1.5rem; }
        .c-author__title.vz-02 {
          font-size: 1.8rem; } }
  .c-author__name {
    margin-bottom: 3rem;
    padding-bottom: 2.5rem;
    border-bottom: 0.1rem dashed #333333; }
    .c-author__name p {
      margin: 0 0 0.4rem;
      font-size: var(--size-p);
      font-weight: 500;
      line-height: 175%;
      color: #333333; }
      .c-author__name p:nth-child(2) {
        font-size: 2.4rem;
        font-weight: 700;
        letter-spacing: 0.1rem; }
        @media screen and (max-width: 960px) {
          .c-author__name p:nth-child(2) {
            font-size: 1.8rem; } }
    @media screen and (max-width: 960px) {
      .c-author__name {
        margin-bottom: 2.5rem; }
        .c-author__name p {
          font-size: 1.5rem; } }
  .c-author__list {
    margin: 0 0 3.5rem; }
    .c-author__list ul,
    .c-author__list ol {
      list-style: none;
      margin: 0;
      padding: 0; }
    .c-author__list li {
      position: relative;
      margin-bottom: 1.5rem;
      padding-left: 1.6rem;
      font-size: var(--size-p);
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0.1rem;
      color: #333333;
      list-style: none; }
      .c-author__list li:last-child {
        margin-bottom: 0; }
      .c-author__list li::before {
        content: "";
        position: absolute;
        top: 1.2rem;
        left: 0;
        width: 0.6rem;
        height: 0.6rem;
        border-radius: 50%;
        background: #263050; }
    @media screen and (max-width: 960px) {
      .c-author__list {
        margin-bottom: 2.5rem; }
        .c-author__list li {
          margin-bottom: 0.5rem;
          padding-left: 1.4rem;
          font-size: 1.5rem; }
          .c-author__list li::before {
            top: 1rem; } }
  .c-author__desc {
    margin-bottom: 4rem;
    padding: 2.5rem;
    background: rgba(38, 48, 80, 0.2); }
    .c-author__desc p {
      margin: 0;
      font-size: var(--size-p);
      font-weight: 500;
      line-height: 175%;
      letter-spacing: 0.1rem;
      color: #333333; }
    @media screen and (max-width: 960px) {
      .c-author__desc {
        padding: 1.5rem;
        margin-bottom: 3rem; } }
  .c-author__link ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0; }
    .c-author__link ul li a {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 6rem;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 175%;
      color: #fff;
      background: #263050;
      text-decoration: none;
      transition: opacity 0.2s ease; }
      @media (hover: hover) {
        .c-author__link ul li a:hover {
          opacity: 0.85; } }
  .c-author__link.vz-02 ul {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem; }
  @media screen and (max-width: 960px) {
    .c-author__link ul, .c-author__link.vz-02 ul {
      grid-template-columns: 1fr;
      gap: 1rem; }
    .c-author__link ul li a {
      height: 5.5rem; } }
  .c-author__table {
    margin: 0 0 3rem;
    border: 0.1rem solid #999; }
    .c-author__table dl {
      display: flex;
      margin: 0;
      border-bottom: 0.1rem solid #999; }
      .c-author__table dl:last-child {
        border-bottom: 0; }
      .c-author__table dl dt,
      .c-author__table dl dd {
        margin: 0;
        padding: 1rem 2rem;
        font-size: var(--size-p);
        font-weight: 500;
        line-height: 175%;
        letter-spacing: 0.1rem;
        color: #333333; }
      .c-author__table dl dt {
        width: 16rem;
        background: #263050;
        color: #fff; }
      .c-author__table dl dd {
        flex: 1; }
    @media screen and (max-width: 960px) {
      .c-author__table dl dt,
      .c-author__table dl dd {
        padding: 0.7rem;
        font-size: 1.5rem; }
      .c-author__table dl dt {
        width: 9rem; } }

#toc_container {
  counter-reset: toc;
  width: 100%;
  max-width: 100%;
  margin: 3rem 0 8rem;
  padding: 2.4rem 3rem 2rem;
  background: rgba(38, 48, 80, 0.08);
  border: 1px solid rgba(38, 48, 80, 0.5);
  border-radius: 0.6rem;
  box-shadow: 0 0.2rem 0.8rem rgba(0, 0, 0, 0.04);
  box-sizing: border-box; }
  @media screen and (max-width: 960px) {
    #toc_container {
      padding: 1.8rem 1.6rem 1.4rem;
      margin: 2rem 0 6rem; } }
  #toc_container p.toc_title {
    position: relative;
    margin: 0;
    padding: 0 0 1rem 3rem;
    font-size: var(--size-p);
    line-height: 195%;
    letter-spacing: 0.05rem;
    font-weight: 400;
    font-weight: bold;
    color: #333333;
    border-bottom: 0.2rem solid #263050;
    text-align: left;
    margin-bottom: 1.6rem; }
    @media (max-width: 960px) {
      #toc_container p.toc_title {
        line-height: 185%;
        letter-spacing: 0em;
        text-align: justify; } }
    #toc_container p.toc_title::before {
      content: "";
      position: absolute;
      top: 0.6rem;
      left: 0;
      width: 2rem;
      height: 2rem;
      background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
      background-size: 1.4rem 0.25rem, 1.4rem 0.25rem, 1.4rem 0.25rem;
      background-position: 0 0.4rem, 0 0.9rem, 0 1.4rem;
      background-repeat: no-repeat;
      color: #263050; }
    @media screen and (max-width: 960px) {
      #toc_container p.toc_title {
        font-size: 1.6rem; } }
  #toc_container .toc_list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important; }
    #toc_container .toc_list li {
      position: relative;
      margin: 0 !important;
      padding: 1.2rem 0 1.2rem 2.4rem;
      border-bottom: 1px dashed rgba(38, 48, 80, 0.35);
      list-style: none !important; }
      @media screen and (max-width: 960px) {
        #toc_container .toc_list li {
          padding: 0.8rem 0 0.8rem 2.2rem; }
          #toc_container .toc_list li:last-child {
            border-bottom: none; } }
      #toc_container .toc_list li::before {
        content: "";
        position: absolute;
        left: 0.4rem;
        top: 2.3rem;
        width: 0;
        height: 0;
        border-top: 0.5rem solid transparent;
        border-bottom: 0.5rem solid transparent;
        border-left: 0.7rem solid #263050; }
        @media screen and (max-width: 960px) {
          #toc_container .toc_list li::before {
            top: 1.4rem; } }
      #toc_container .toc_list li ul {
        list-style: none !important;
        margin: 0.6rem 0 0 0 !important;
        padding: 0 !important;
        border-top: 1px dashed rgba(38, 48, 80, 0.35); }
        #toc_container .toc_list li ul li {
          padding: 0.6rem 0 0.6rem 2rem;
          border-bottom: 0;
          font-size: 1.4rem; }
          #toc_container .toc_list li ul li::before {
            content: "";
            top: 1.2rem;
            width: 0.7rem;
            height: 0.7rem;
            border: 0.15rem solid #263050;
            border-radius: 50%;
            background: transparent; }
      #toc_container .toc_list li a {
        color: #333333;
        font-size: var(--size-p);
        line-height: 195%;
        letter-spacing: 0.05rem;
        font-weight: 400;
        font-weight: 500;
        text-decoration: none;
        transition: color 0.2s ease, padding-left 0.2s ease; }
        @media (max-width: 960px) {
          #toc_container .toc_list li a {
            line-height: 185%;
            letter-spacing: 0em;
            text-align: justify; } }
        @media (hover: hover) {
          #toc_container .toc_list li a:hover {
            color: #263050; } }
        @media screen and (max-width: 960px) {
          #toc_container .toc_list li a {
            font-size: 1.5rem;
            line-height: 150%; } }
  #toc_container.toc--circle .toc_list > li::before {
    top: 1.7rem;
    border: 0;
    width: 0.9rem;
    height: 0.9rem;
    background: #263050;
    border-radius: 50%; }
  #toc_container.toc--cols-2 .toc_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 3rem;
    row-gap: 0; }
    @media screen and (max-width: 960px) {
      #toc_container.toc--cols-2 .toc_list {
        grid-template-columns: 1fr; } }
  #toc_container.toc--cols-3 .toc_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 3rem;
    row-gap: 0; }
    @media screen and (max-width: 1024px) {
      #toc_container.toc--cols-3 .toc_list {
        grid-template-columns: repeat(2, 1fr); } }
    @media screen and (max-width: 960px) {
      #toc_container.toc--cols-3 .toc_list {
        grid-template-columns: 1fr; } }
  #toc_container.toc--button .toc_list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    gap: 1.2rem; }
    @media screen and (max-width: 960px) {
      #toc_container.toc--button .toc_list {
        grid-template-columns: 1fr 1fr;
        gap: 0.8rem; } }
    #toc_container.toc--button .toc_list > li {
      border: 0.1rem solid #263050;
      background: #fff;
      padding: 1.4rem 3rem 1.4rem 1.6rem;
      border-radius: 0.4rem;
      transition: background 0.25s ease, transform 0.2s ease; }
      #toc_container.toc--button .toc_list > li::before {
        display: none; }
      #toc_container.toc--button .toc_list > li::after {
        content: "";
        position: absolute;
        right: 1.4rem;
        top: 50%;
        width: 0.7rem;
        height: 0.7rem;
        border-top: 0.2rem solid #263050;
        border-right: 0.2rem solid #263050;
        transform: translateY(-50%) rotate(45deg);
        transition: right 0.2s ease; }
      @media (hover: hover) {
        #toc_container.toc--button .toc_list > li:hover {
          background: #263050; }
          #toc_container.toc--button .toc_list > li:hover::after {
            border-color: #fff;
            right: 1rem; }
          #toc_container.toc--button .toc_list > li:hover a {
            color: #fff; } }
      #toc_container.toc--button .toc_list > li a {
        display: block; }

.catalogue-list {
  margin: 2rem 0; }
  @media screen and (max-width: 960px) {
    .catalogue-list {
      margin: 1.6rem 0; } }
  .catalogue-list > :first-child {
    margin-top: 0; }
  .catalogue-list > :last-child {
    margin-bottom: 0; }
  .catalogue-list h2,
  .catalogue-list h3,
  .catalogue-list h4,
  .catalogue-list h5 {
    margin: 2rem 0 1.2rem;
    padding: 0 0 0.8rem 0;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
    color: #333333;
    border-bottom: 0.2rem solid #263050; }
    .catalogue-list h2:first-child,
    .catalogue-list h3:first-child,
    .catalogue-list h4:first-child,
    .catalogue-list h5:first-child {
      margin-top: 0; }
    @media screen and (max-width: 960px) {
      .catalogue-list h2,
      .catalogue-list h3,
      .catalogue-list h4,
      .catalogue-list h5 {
        font-size: 1.5rem; } }
  .catalogue-list ul,
  .catalogue-list ol {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem; }
    .catalogue-list ul:last-child,
    .catalogue-list ol:last-child {
      margin-bottom: 0; }
    .catalogue-list ul li,
    .catalogue-list ol li {
      list-style: none !important;
      margin: 0 !important;
      padding: 0 !important; }
      .catalogue-list ul li a,
      .catalogue-list ol li a {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 4.6rem;
        padding: 1rem 2.5rem;
        background: #fff;
        color: #263050;
        border: 0.15rem solid #263050;
        border-radius: 0;
        font-size: 1.5rem;
        font-weight: 700;
        line-height: 1.4;
        text-decoration: none !important;
        box-shadow: 0 0.1rem 0.3rem rgba(0, 0, 0, 0.05);
        transition: all 0.2s ease;
        white-space: nowrap; }
        @media (hover: hover) {
          .catalogue-list ul li a:hover,
          .catalogue-list ol li a:hover {
            background: #263050;
            color: #fff;
            box-shadow: 0 0.2rem 0.6rem rgba(38, 48, 80, 0.3); } }
        @media screen and (max-width: 960px) {
          .catalogue-list ul li a,
          .catalogue-list ol li a {
            min-height: 3.8rem;
            padding: 0.6rem 1.4rem;
            font-size: 1.3rem;
            white-space: normal; } }
      .catalogue-list ul li.is-current a,
      .catalogue-list ol li.is-current a {
        background: #263050;
        color: #fff;
        border-color: #263050;
        box-shadow: 0 0.2rem 0.6rem rgba(38, 48, 80, 0.25);
        cursor: default;
        pointer-events: none; }
    @media screen and (max-width: 960px) {
      .catalogue-list ul,
      .catalogue-list ol {
        justify-content: flex-start; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .catalogue-list ul,
    .catalogue-list ol {
      gap: 0.5rem; } }
    @media screen and (max-width: 960px) {
        .catalogue-list ul li,
        .catalogue-list ol li {
          width: calc((100% - 2rem) / 3); }
          .catalogue-list ul li a,
          .catalogue-list ol li a {
            width: 100%;
            text-align: center;
            min-height: 100%;
            padding: 1.5rem; } }
    @media screen and (max-width: 960px) and (max-width: 767px) {
      .catalogue-list ul li,
      .catalogue-list ol li {
        width: calc((100% - 0.5rem) / 2); }
        .catalogue-list ul li a,
        .catalogue-list ol li a {
          padding: 1rem 1.5rem; } }

  .catalogue-list--stacked ul, .catalogue-list--stacked ol {
    flex-direction: column;
    gap: 0; }
    .catalogue-list--stacked ul li, .catalogue-list--stacked ol li {
      border-bottom: 0.1rem dashed rgba(38, 48, 80, 0.35); }
      .catalogue-list--stacked ul li:last-child, .catalogue-list--stacked ol li:last-child {
        border-bottom: 0; }
    .catalogue-list--stacked ul a, .catalogue-list--stacked ol a {
      display: block;
      background: transparent;
      border: 0;
      border-radius: 0;
      padding: 0.9rem 0 0.9rem 2rem;
      font-size: var(--size-p);
      position: relative; }
      .catalogue-list--stacked ul a::before, .catalogue-list--stacked ol a::before {
        content: "";
        position: absolute;
        left: 0.4rem;
        top: 50%;
        width: 0;
        height: 0;
        border-top: 0.4rem solid transparent;
        border-bottom: 0.4rem solid transparent;
        border-left: 0.6rem solid #263050;
        transform: translateY(-50%); }
      @media (hover: hover) {
        .catalogue-list--stacked ul a:hover, .catalogue-list--stacked ol a:hover {
          background: transparent;
          color: #263050;
          padding-left: 2.4rem; } }
  .catalogue-list--cols-2 ul, .catalogue-list--cols-2 ol {
    display: grid;
    grid-template-columns: repeat(2, 1fr); }
    @media screen and (max-width: 960px) {
      .catalogue-list--cols-2 ul, .catalogue-list--cols-2 ol {
        grid-template-columns: 1fr; } }
  .catalogue-list--cols-3 ul, .catalogue-list--cols-3 ol {
    display: grid;
    grid-template-columns: repeat(3, 1fr); }
    @media screen and (max-width: 1024px) {
      .catalogue-list--cols-3 ul, .catalogue-list--cols-3 ol {
        grid-template-columns: repeat(2, 1fr); } }
    @media screen and (max-width: 960px) {
      .catalogue-list--cols-3 ul, .catalogue-list--cols-3 ol {
        grid-template-columns: 1fr; } }

.c-sitemap {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  margin-block: 4rem 8rem; }
  @media screen and (max-width: 960px) {
    .c-sitemap {
      gap: 2.4rem;
      margin-block: 2.4rem 4rem; } }
  .c-sitemap__group {
    width: 100%; }
  .c-sitemap__title {
    margin: 0 0 1.6rem;
    padding: 0 0 1rem;
    border-bottom: 0.2rem solid #263050;
    line-height: 1.3; }
    .c-sitemap__title .ja {
      display: inline-block;
      margin-right: 1rem;
      font-size: 2.2rem;
      font-weight: 700;
      color: #263050;
      vertical-align: middle; }
      @media screen and (max-width: 960px) {
        .c-sitemap__title .ja {
          font-size: 1.8rem; } }
    .c-sitemap__title .en {
      display: inline-block;
      position: relative;
      top: 0.4rem;
      font-family: "Urbanist", "Roboto", Arial, sans-serif;
      font-size: 1.6rem;
      font-weight: 500;
      color: #263050;
      letter-spacing: 0.2rem;
      vertical-align: middle; }
      @media screen and (max-width: 960px) {
        .c-sitemap__title .en {
          font-size: 1.4rem; } }
  .c-sitemap__list {
    list-style: none;
    margin: 0;
    padding: 3rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 3rem;
    row-gap: 0;
    background: #f1f1f1;
    border-radius: 0.5rem; }
    @media screen and (max-width: 1024px) {
      .c-sitemap__list {
        grid-template-columns: repeat(2, 1fr); } }
    @media screen and (max-width: 960px) {
      .c-sitemap__list {
        padding: 1rem 1.5rem; } }
    @media screen and (max-width: 767px) {
      .c-sitemap__list {
        grid-template-columns: 1fr; } }
    .c-sitemap__list > li {
      position: relative;
      padding: 1rem 0 1rem 1.6rem;
      border-bottom: 0.1rem dashed rgba(38, 48, 80, 0.35);
      line-height: 1.5; }
      @media screen and (max-width: 767px) {
        .c-sitemap__list > li:last-child {
          border-bottom: none; } }
      .c-sitemap__list > li::before {
        content: "";
        position: absolute;
        top: 2.3rem;
        left: 0;
        width: 0;
        height: 0;
        border-top: 0.4rem solid transparent;
        border-bottom: 0.4rem solid transparent;
        border-left: 0.6rem solid #263050; }
        @media screen and (max-width: 960px) {
          .c-sitemap__list > li::before {
            top: 2rem; } }
      .c-sitemap__list > li > a {
        color: #333333;
        font-size: var(--size-p);
        line-height: 195%;
        letter-spacing: 0.05rem;
        font-weight: 400;
        text-decoration: none;
        transition: ease all 0.2s; }
        @media (max-width: 960px) {
          .c-sitemap__list > li > a {
            line-height: 185%;
            letter-spacing: 0em;
            text-align: justify; } }
        @media (hover: hover) {
          .c-sitemap__list > li > a:hover {
            color: #263050; } }
  .c-sitemap__sub {
    list-style: none;
    margin: 0.8rem 0 0;
    padding: 0 0 0 1rem; }
    .c-sitemap__sub li {
      position: relative;
      padding: 0.4rem 0 0.4rem 1.4rem;
      font-size: 1.4rem;
      line-height: 1.5; }
      .c-sitemap__sub li::before {
        content: "─";
        position: absolute;
        left: 0;
        top: 0.4rem;
        color: #263050;
        font-weight: 700; }
      .c-sitemap__sub li a {
        color: #555;
        text-decoration: none;
        transition: color 0.2s ease; }
        @media (hover: hover) {
          .c-sitemap__sub li a:hover {
            color: #263050;
            text-decoration: underline; } }

.u-spac {
  --w: attr(data-value number);
  display: inline-block;
  width: calc(var(--w) / 10 * 1rem); }
  @media screen and (max-width: 767px) {
    .u-spac {
      width: 0.5rem; } }

:root {
  --fs-14: 1.4rem;
  --fs-15: 1.5rem;
  --fs-16: 1.6rem;
  --fs-17: 1.7rem;
  --fs-18: 1.8rem;
  --fs-20: 2rem;
  --fs-21: 2.1rem;
  --fs-22: 2.2rem;
  --fs-24: 2.4rem;
  --fs-27: 2.7rem;
  --fs-28: 2.8rem;
  --fs-30: 3rem;
  --fs-32: 3.2rem;
  --fs-34: 3.4rem;
  --fs-35: 3.5rem;
  --fs-36: 3.6rem;
  --fs-40: 4rem;
  --fs-42: 4.2rem;
  --fs-45: 4.5rem;
  --fs-46: 4.6rem;
  --fs-47: 4.7rem;
  --fs-50: 5rem;
  --fs-54: 5.4rem;
  --fs-60: 6rem;
  --fs-66: 6.6rem;
  --fs-70: 7rem;
  --fs-85: 8.5rem;
  --fs-90: 9rem;
  --fs-100: 10rem; }

.grid-1075, .l-grid-1075 {
  max-width: 110.5rem; }
.grid-1715, .l-grid-1715 {
  max-width: 174.5rem; }
.grid-1250, .l-grid-1250 {
  max-width: 128rem; }
.grid-1465, .l-grid-1465 {
  max-width: 149.5rem; }
.grid-1582, .l-grid-1582 {
  max-width: 161.2rem; }
.grid-1675, .l-grid-1675 {
  max-width: 170.5rem; }
.grid-1740, .l-grid-1740 {
  max-width: 177rem; }
.grid-1816, .l-grid-1816 {
  max-width: 184.6rem; }
.grid-1870, .l-grid-1870 {
  max-width: 190rem; }

.p-img__74 {
  max-width: 7.4rem;
  width: 100%;
  display: inline-block; }

.p-img__77 {
  max-width: 7.7rem;
  width: 100%;
  display: inline-block; }

.p-img__103 {
  max-width: 10.3rem;
  width: 100%;
  display: inline-block; }

.p-img__115 {
  max-width: 11.5rem;
  width: 100%;
  display: inline-block; }

.p-img__142 {
  max-width: 14.2rem;
  width: 100%;
  display: inline-block; }

.p-img__168 {
  max-width: 16.8rem;
  width: 100%;
  display: inline-block; }

.p-img__182 {
  max-width: 18.2rem;
  width: 100%;
  display: inline-block; }

.p-img__205 {
  max-width: 20.5rem;
  width: 100%;
  display: inline-block; }

.p-img__210 {
  max-width: 21rem;
  width: 100%;
  display: inline-block; }

.p-img__389 {
  max-width: 38.9rem;
  width: 100%;
  display: inline-block; }

.p-img__405 {
  max-width: 40.5rem;
  width: 100%;
  display: inline-block; }

.p-img__439 {
  max-width: 43.9rem;
  width: 100%;
  display: inline-block; }

.p-img__523 {
  max-width: 52.3rem;
  width: 100%;
  display: inline-block; }

.p-img__688 {
  max-width: 68.8rem;
  width: 100%;
  display: inline-block; }

.p-img__1234 {
  max-width: 123.4rem;
  width: 100%;
  display: inline-block; }

@media screen and (max-width: 1440px) {
  :root {
    --fs-90: 7rem;
    --fs-85: 5rem;
    --fs-66: 4.6rem;
    --fs-46: 2.6rem;
    --fs-35: 3rem;
    --fs-24: Max(1.8rem, 14px); }

  .p-img__1234 {
    max-width: 82.4rem; }
  .p-img__523 {
    max-width: 31.3rem; }
  .p-img__439 {
    max-width: 31.9rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-img__439 {
      max-width: 20.9rem; } }
@media screen and (max-width: 1440px) {
  .p-img__405 {
    max-width: 34.5rem; }
  .p-img__210 {
    max-width: 10rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-img__210 {
      max-width: 6rem; } }
@media screen and (max-width: 1440px) {
  .p-img__205 {
    max-width: 10.5rem; }
  .p-img__168 {
    max-width: 8.8rem; }
  .p-img__142 {
    max-width: 8.2rem; }
  .p-img__115 {
    max-width: 8.5rem; }
  .p-img__103 {
    max-width: 5.3rem; } }
@media screen and (max-width: 960px) {
  :root {
    --fs-90: 6.5rem;
    --fs-70: 3.5rem;
    --fs-60: 3.2rem;
    --fs-50: 3rem;
    --fs-30: 2.5rem;
    --fs-27: 2rem; }

  .p-img__688 {
    max-width: 58rem; } }
@media screen and (max-width: 767px) {
  :root {
    --font-size-html: 2.66667vw;
    --fs-90: 3.5rem;
    --fs-85: 3.2rem;
    --fz-70: 3.1rem;
    --fs-66: 3rem;
    --fs-60: 3rem;
    --fs-54: 3rem;
    --fz-50: 2.8rem;
    --fs-45: 2rem;
    --fs-46: 2.2rem;
    --fs-40: 2rem;
    --fs-36: 2rem;
    --fs-35: 2rem;
    --fs-30: 1.9rem;
    --fs-28: Max(1.8rem, 16px);
    --fs-22: Max(1.8rem, 16px);
    --fs-16: Max(1.4rem, 14px);
    --fs-15: Max(1.4rem, 14px);
    --fs-14: Max(1.2rem, 12px); } }
.ow {
  width: 100%;
  display: block; }

.po01 {
  position: relative;
  z-index: 1; }

.txt__center {
  text-align: center; }

.os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-vertical {
  right: 0; }
  @media screen and (max-width: 960px) {
    .os-host-resize-disabled.os-host-scrollbar-horizontal-hidden > .os-scrollbar-vertical {
      right: 0rem; } }

body .os-theme-dark > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle,
body .os-theme-light > .os-scrollbar-vertical > .os-scrollbar-track > .os-scrollbar-handle {
  min-height: 1.4rem !important;
  height: 1.4rem !important; }

.os-theme-dark > .os-scrollbar,
.os-theme-light > .os-scrollbar {
  padding: 0 !important;
  width: 1.4rem !important; }

.os-theme-dark > .os-scrollbar-vertical .os-scrollbar-handle:before,
.os-theme-light > .os-scrollbar-vertical .os-scrollbar-handle:before {
  left: 0 !important;
  right: 0 !important; }

.os-resize-observer-host {
  border: none !important; }

.os-theme-dark > .os-scrollbar > .os-scrollbar-track > .os-scrollbar-handle {
  background: #BC9664 !important;
  cursor: pointer; }

.os-theme-dark > .os-scrollbar,
.os-theme-light > .os-scrollbar {
  background: transparent !important; }
  .os-theme-dark > .os-scrollbar::before,
  .os-theme-light > .os-scrollbar::before {
    content: "";
    position: absolute;
    left: 0.7rem;
    top: 0;
    width: 1px;
    height: 100%;
    background-color: #E7DBCB;
    transition: opacity 0.3s ease; }

.u-br__767 {
  display: none; }
  @media screen and (max-width: 767px) {
    .u-br__767 {
      display: inline-block; } }
.u-br__375 {
  display: none; }
  @media screen and (max-width: 420px) {
    .u-br__375 {
      display: inline-block; } }
.u-show__sp {
  display: none; }
  @media screen and (max-width: 960px) {
    .u-show__sp {
      display: flex; } }
@media screen and (max-width: 960px) {
  .u-show__pc {
    display: none; } }

.p-title__style01 {
  position: relative;
  z-index: 1;
  padding-left: 6.3rem;
  background-image: url(./assets/img/tt-img-01.svg);
  background-position: top left;
  background-repeat: no-repeat;
  margin-bottom: 2.8rem; }
  @media screen and (max-width: 1440px) {
    .p-title__style01 {
      padding-left: 3.3rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-title__style01 {
      padding-left: 0;
      background-image: none; } }

  .p-title__style01-en {
    display: inline-block;
    color: #263655;
    font-size: var(--fs-54);
    font-weight: 400;
    line-height: 120%;
    letter-spacing: 0.5rem;
    font-family: "Times New Roman", Times, serif;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
    padding-right: 7.5rem; }
    @media screen and (max-width: 767px) {
      .p-title__style01-en {
        padding-right: 4.5rem; } }
    .p-title__style01-en::after {
      content: "";
      position: absolute;
      width: 5.7rem;
      height: 8.5rem;
      background-image: url(./assets/img/tt-img-02.svg);
      background-position: top right;
      background-repeat: no-repeat;
      background-size: contain;
      top: 0;
      right: 0;
      pointer-events: none; }
      @media screen and (max-width: 767px) {
        .p-title__style01-en::after {
          width: 3.7rem;
          height: 5.5rem; } }
  .p-title__style01-jp {
    display: block;
    color: #C09867;
    font-size: var(--size-p);
    font-weight: 500;
    line-height: 140%;
    letter-spacing: 0.3rem; }
.p-title__style02 {
  position: relative;
  z-index: 1;
  padding-left: 6.3rem;
  background-image: url(./assets/img/tt-img-01.svg);
  background-position: top 5rem left;
  background-repeat: no-repeat;
  margin-bottom: 2.8rem; }
  @media screen and (max-width: 1440px) {
    .p-title__style02 {
      padding-left: 3.3rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-title__style02 {
      padding-left: 0;
      background-image: none; } }

  .p-title__style02-en {
    display: inline-block;
    color: #fff;
    font-size: var(--fs-90);
    font-weight: 400;
    line-height: 133%;
    letter-spacing: 0.5rem;
    font-family: "Times New Roman", Times, serif;
    text-transform: uppercase;
    position: relative;
    z-index: 1;
    padding-right: 7.5rem; }
    .p-title__style02-en::after {
      content: "";
      position: absolute;
      width: 9.5rem;
      height: 13.7rem;
      background-image: url(./assets/img/tt-img-03.svg);
      background-position: top right;
      background-repeat: no-repeat;
      background-size: contain;
      top: 0;
      right: 0;
      pointer-events: none; }
      @media screen and (max-width: 1440px) {
        .p-title__style02-en::after {
          width: 6.5rem;
          height: 10.7rem; } }
  .p-title__style02-jp {
    display: block;
    color: #C09867;
    font-size: var(--fs-24);
    font-weight: 700;
    line-height: 116%;
    letter-spacing: 0.3rem; }
.p-title__style03 {
  display: inline-block;
  background-image: url(./assets/img/tt-img-01.svg), url(./assets/img/home-icon-07.svg);
  background-position: top 5rem left, top right;
  background-repeat: no-repeat, no-repeat;
  background-size: 1.8rem, 9.5rem;
  padding-right: 7rem; }
  @media screen and (max-width: 1440px) {
    .p-title__style03 {
      background-size: 1.8rem, 6.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-title__style03 {
      background-position: top 2rem left, top right; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-title__style03 {
      padding-right: 3.5rem;
      background-image: none, url(./assets/img/home-icon-07.svg); } }

  .p-title__style03-en {
    color: #263050;
    font-size: var(--fs-90);
    font-weight: 400;
    line-height: 133%;
    letter-spacing: 0.5rem;
    font-family: "Times New Roman", Times, serif; }
  .p-title__style03-jp {
    display: block;
    color: #C09867;
    font-size: var(--fs-24);
    font-weight: 700;
    line-height: 115%;
    letter-spacing: 0.3rem; }
.p-txt__color-orange {
  color: #E1A131; }
.p-btn__style01 {
  display: inline-block;
  border: 1px solid #C5AA80;
  border-radius: 3rem;
  padding: 1.1rem 2rem 1.1rem 3.2rem;
  color: #C09867;
  font-size: var(--fs-22);
  font-weight: 400;
  line-height: 100%;
  letter-spacing: 0.14rem;
  font-family: "Cormorant Garamond", serif;
  transition: ease all .4s; }
  .p-btn__style01:hover {
    background-color: #C09867;
    color: #fff; }
    .p-btn__style01:hover::after {
      background-color: #fff; }
  .p-btn__style01::after {
    content: '';
    width: 1.8rem;
    height: 0.9rem;
    aspect-ratio: 1.985;
    clip-path: shape(from 0% 57.3%, vline to 42.7%, hline to 83.35%, curve to 65.84% 7.51% with 77.84% 34.33%/70.7% 20.82%, line to 72.32% 0%, curve to 100% 50% with 79.57% 18.88%/90.38% 37.77%, curve to 72.32% 100% with 90.38% 62.23%/79.57% 81.12%, line to 65.84% 92.49%, curve to 83.35% 57.3% with 70.7% 79.18%/77.84% 65.67%, hline to 0%, close);
    background-color: #C09867;
    display: inline-block;
    vertical-align: top;
    margin-left: 1.8rem;
    transform: translateY(0.7rem);
    transition: ease all .4s; }
.p-btn__style02 {
  border: 1px solid #2E3552;
  border-radius: 6rem;
  padding: 2.2rem 5rem 2.1rem;
  background: url(./assets/img/feature-icon-01.svg) center right 1.7rem/1.2rem no-repeat;
  text-align: center;
  color: #2E3552;
  font-size: var(--fs-17);
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.255rem;
  transition: ease all .4s;
  min-width: 35.8rem; }
  @media screen and (max-width: 767px) {
    .p-btn__style02 {
      min-width: fit-content;
      font-size: Max(1.4rem, 14px);
      padding: 1.2rem 3rem 1.1rem; } }
  .p-btn__style02:hover {
    background-color: #2E3552;
    color: #fff;
    background-image: url(./assets/img/feature-icon-01-hv.svg); }
.p-btn__style03 {
  background-color: #232C4D;
  border: 1px solid #2E5CAA;
  border-radius: 6rem;
  max-width: 42rem;
  width: 100%;
  height: 8rem;
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  padding-bottom: 1.2rem;
  color: #F1CE9B;
  font-size: var(--fs-36);
  font-weight: 400;
  line-height: 100%;
  letter-spacing: 0;
  background-image: url(./assets/img/colums-icon-01.svg);
  background-position: center right 3.5rem;
  background-repeat: no-repeat;
  background-size: 4.3rem;
  transition: ease all .4s; }
  @media screen and (max-width: 767px) {
    .p-btn__style03 {
      max-width: 100%;
      height: 5rem;
      background-size: 2.3rem;
      background-position: center right 1.5rem;
      padding-bottom: 0.5rem; } }
  .p-btn__style03:hover {
    background-color: #F1CE9B;
    color: #232C4D;
    border-color: #F1CE9B;
    background-image: url(./assets/img/colums-icon-01-hv.svg); }
.p-btn__style04 {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  border: 0.2rem solid #333333;
  background-color: #fff;
  height: 8.2rem;
  border-radius: 0.8rem;
  color: #333333;
  font-size: var(--fs-24);
  font-weight: 700;
  line-height: 100%;
  letter-spacing: 0.24rem;
  background-image: url(./assets/img/recruit-img-02.png);
  background-position: center right 2.8rem;
  background-repeat: no-repeat;
  background-size: 2.6rem;
  transition: ease all .4s; }
  @media screen and (max-width: 767px) {
    .p-btn__style04 {
      height: 5.2rem;
      background-size: 1.5rem;
      background-position: center right 1.5rem; } }
  .p-btn__style04:hover {
    background-color: #2E3552;
    color: #fff;
    border-color: #2E3552;
    background-image: url(./assets/img/recruit-img-02-hv.png); }
.p-mv__video-sp {
  display: none; }
  @media screen and (max-width: 960px) {
    .p-mv__video-sp {
      display: block;
      height: calc(100vh - 10rem);
      object-fit: cover;
      width: 100%; } }
@media screen and (max-width: 960px) {
  .p-mv__video-pc {
    display: none; } }
.p-news__list {
  list-style: none;
  margin: 0;
  padding: 0 5.5rem 1.5rem 0;
  height: 59.7rem; }
  @media screen and (max-width: 960px) {
    .p-news__list {
      height: 35.7rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-news__list {
      height: 23.7rem;
      padding-right: 0.5rem; }
      .p-news__list .os-viewport {
        padding-right: 1.5rem; } }

.p-news__item {
  border-bottom: 1px solid rgba(188, 150, 100, 0.3);
  padding: 3rem 0;
  background: url(./assets/img/nw-img-00.png) center right/1.8rem no-repeat; }
  @media screen and (max-width: 767px) {
    .p-news__item {
      padding: 1.2rem 2rem 1.2rem 0;
      background-size: 1.2rem; } }
  .p-news__item:first-child {
    padding-top: 2.5rem; }
.p-news__link {
  display: block; }
.p-news__date {
  display: block;
  color: #263050;
  font-size: var(--size-p);
  font-weight: 400;
  line-height: 122%;
  letter-spacing: 0.22rem;
  margin-bottom: 1rem; }
  @media screen and (max-width: 767px) {
    .p-news__date {
      font-size: Max(1.4rem, 14px); } }
.p-news__text {
  color: #565656;
  font-size: var(--fs-22);
  font-weight: 400;
  line-height: 122%;
  letter-spacing: 0;
  display: block;
  transition: ease all .4s; }
  .p-news__text:hover {
    color: #C09867; }
.p-hnew {
  border-top: 1px dotted #BC9664;
  background-color: #FAF9F7;
  padding: 7.8rem 0 13rem; }
  @media screen and (max-width: 960px) {
    .p-hnew {
      padding: 5rem 0 15rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-hnew {
      padding-bottom: 10rem; } }

  .p-hnew__btn-infomation {
    margin-top: 6rem;
    text-align: center; }
    @media screen and (max-width: 767px) {
      .p-hnew__btn-infomation {
        margin-top: 3rem; } }
  .p-hnew__btnsp {
    display: none; }
    @media screen and (max-width: 767px) {
      .p-hnew__btnsp {
        display: block;
        text-align: center;
        margin-top: 3rem; } }
  .p-hnew__list {
    padding-left: 2.8rem; }
    @media screen and (max-width: 1440px) {
      .p-hnew__list {
        padding-left: 0; } }
  .p-hnew__desc {
    color: #fff;
    font-size: var(--size-p);
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 0;
    background-color: #263050;
    padding: 1.5rem;
    border-radius: 2rem; }
  .p-hnew__left {
    flex: 0 0 50%;
    padding-right: 7rem;
    padding-left: 1.5rem; }
    @media screen and (max-width: 960px) {
      .p-hnew__left {
        flex: 100%;
        padding-right: 1.5rem; } }
    .p-hnew__left-inner {
      max-width: 75.7rem;
      width: 100%;
      margin-left: auto;
      margin-right: 0; }
      @media screen and (max-width: 960px) {
        .p-hnew__left-inner {
          max-width: 100%; } }
    .p-hnew__left-meta .p-title__style01-en {
      min-width: 49.5rem; }
      @media screen and (max-width: 960px) {
        .p-hnew__left-meta .p-title__style01-en {
          min-width: fit-content; } }
    .p-hnew__left-meta .p-btn__style01 {
      position: absolute;
      top: 1.8rem;
      right: 30rem;
      z-index: 1; }
      @media screen and (max-width: 1440px) {
        .p-hnew__left-meta .p-btn__style01 {
          right: 20rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-hnew__left-meta .p-btn__style01 {
      right: 0; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-hnew__left-meta .p-btn__style01 {
      display: none; } }

  @media screen and (max-width: 960px) {
    .p-hnew__content {
      gap: 5rem; } }
  .p-hnew__right {
    flex: 0 0 50%; }
    @media screen and (max-width: 1440px) {
      .p-hnew__right {
        padding-right: 1.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-hnew__right {
      padding-left: 1.5rem;
      flex: 100%; } }

    .p-hnew__right-inner {
      max-width: 78.6rem;
      width: 100%; }
      @media screen and (max-width: 960px) {
        .p-hnew__right-inner {
          max-width: 100%; } }
    .p-hnew__right-time {
      background-color: #ECEDF2;
      border: 0.3rem solid #fff;
      border-radius: 2rem;
      padding: 2.5rem 10rem 2.8rem 5rem;
      position: relative;
      z-index: 1; }
      @media screen and (max-width: 767px) {
        .p-hnew__right-time {
          padding: 1.5rem; } }
      .p-hnew__right-time--icon {
        position: absolute;
        bottom: -2rem;
        right: -6rem;
        z-index: 1;
        pointer-events: none; }
        @media screen and (max-width: 1440px) {
          .p-hnew__right-time--icon {
            right: 0; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-hnew__right-time--icon {
      display: none; } }

    .p-hnew__right-list {
      gap: 1.8rem;
      margin: 2.8rem 0; }
      @media screen and (max-width: 767px) {
        .p-hnew__right-list {
          justify-content: center; } }
    .p-hnew__right-item {
      flex: 1;
      text-align: center;
      border-radius: 2rem;
      padding: 3.2rem 1.5rem 2.5rem;
      background-color: #F7EFEC; }
      @media screen and (max-width: 767px) {
        .p-hnew__right-item {
          width: calc((100% - 1.8rem) / 2);
          flex: none;
          padding: 2rem;
          border-radius: 1rem; } }
      .p-hnew__right-item:first-child {
        background-image: url(./assets/img/home-bg-01.png);
        background-position: top 2.7rem left 2.3rem;
        background-repeat: no-repeat;
        background-size: 3.4rem; }
      .p-hnew__right-item:nth-child(2) {
        background-color: #F6EFE6; }
      .p-hnew__right-item:nth-child(3) {
        background-color: #EBEEEB; }
      .p-hnew__right-item--icon {
        margin-bottom: 1.5rem;
        display: block; }
        .p-hnew__right-item--icon img {
          max-width: 10.6rem;
          width: 100%;
          margin: 0 auto; }
      .p-hnew__right-item--txt {
        color: #263050;
        font-size: var(--fs-22);
        font-weight: 400;
        line-height: 100%;
        letter-spacing: 0; }
        @media screen and (max-width: 767px) {
          .p-hnew__right-item--txt {
            text-align: center;
            line-height: 140%; } }
    .p-hnew__right-title {
      margin-left: 2rem; }
      @media screen and (max-width: 960px) {
        .p-hnew__right-title {
          margin-left: 0; } }
.p-concept {
  background-color: #263050;
  position: relative;
  z-index: 1;
  padding-bottom: 14.4rem; }
  @media screen and (max-width: 767px) {
    .p-concept {
      padding-bottom: 10rem; } }
  .p-concept__img01 {
    display: inline-block;
    position: absolute;
    left: 4rem;
    bottom: 15.2rem;
    pointer-events: none;
    z-index: 0; }
    @media screen and (max-width: 960px) {
      .p-concept__img01 {
        bottom: 7rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-concept__img01 {
      display: none; } }

  .p-concept__img02 {
    display: inline-block;
    position: absolute;
    right: 6.2rem;
    bottom: 8rem;
    pointer-events: none;
    z-index: 0; }
    @media screen and (max-width: 767px) {
      .p-concept__img02 {
        bottom: 3rem;
        right: 1.5rem; } }
  .p-concept::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 100%, hline to 50%, hline to 0%, vline to 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, vline to 100%, close);
    background-color: #263050;
    top: -10.7rem;
    left: 0;
    z-index: 0;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-concept::before {
        height: 6.2rem;
        top: -5.2rem; } }
  .p-concept__meta {
    padding-left: 4.2rem; }
    @media screen and (max-width: 1440px) {
      .p-concept__meta {
        padding-left: 1.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__meta {
      padding-right: 1.5rem; } }

  .p-concept__cont {
    margin-top: -12rem; }
    .p-concept__cont-inner {
      max-width: 35.5rem;
      width: 100%;
      margin-left: auto;
      margin-right: 0; }
      @media screen and (max-width: 1440px) {
        .p-concept__cont-inner {
          max-width: 100%;
          padding-left: 1.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-concept__cont-inner {
      padding-right: 1.5rem; } }

    .p-concept__cont-title {
      color: #fff;
      font-size: var(--fs-45);
      font-weight: 500;
      line-height: 142%;
      letter-spacing: 0.128rem;
      margin-bottom: 2rem; }
    .p-concept__cont-sin {
      display: inline-block;
      color: #C5A175;
      font-size: var(--fs-40);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.155rem;
      font-family: "Vujahday Script", cursive;
      transform: rotate(-5.23deg); }
    .p-concept__cont-row {
      gap: 3.385%; }
      @media screen and (max-width: 960px) {
        .p-concept__cont-row {
          gap: 5rem; } }
    .p-concept__cont-left {
      flex: 0 0 27.083%;
      padding-top: 18.5rem; }
      @media screen and (max-width: 1440px) {
        .p-concept__cont-left {
          flex: 0 0 30.083%;
          padding-top: 11.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__cont-left {
      flex: 100%; } }

    .p-concept__cont-right {
      flex: 0 0 calc(100% - (3.385% + 27.083%));
      padding-right: 3.2rem; }
      @media screen and (max-width: 1440px) {
        .p-concept__cont-right {
          padding-right: 1.5rem;
          flex: 0 0 calc(100% - (3.385% + 30.083%)); } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__cont-right {
      flex: 100%;
      padding: 0 1.5rem; } }

      .p-concept__cont-right--img {
        position: relative;
        z-index: 1; }
        .p-concept__cont-right--img::before {
          content: "";
          position: absolute;
          width: 2rem;
          height: 2rem;
          background: url(./assets/img/home-icon-03.svg) center/cover no-repeat;
          top: -0.7rem;
          left: 8.5rem;
          pointer-events: none; }
          @media screen and (max-width: 1440px) {
            .p-concept__cont-right--img::before {
              top: -5.7rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__cont-right--img::before {
      top: -2.7rem;
      left: 0; } }

        .p-concept__cont-right--img::after {
          content: "";
          position: absolute;
          width: 5.1rem;
          height: 6.1rem;
          background: url(./assets/img/home-icon-04.svg) center/cover no-repeat;
          top: -2rem;
          right: 0;
          pointer-events: none; }
          @media screen and (max-width: 1440px) {
            .p-concept__cont-right--img::after {
              top: -5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__cont-right--img::after {
      top: -8rem; } }

        .p-concept__cont-right--img img {
          border-radius: 21rem; }
          @media screen and (max-width: 1440px) {
            .p-concept__cont-right--img img {
              border-radius: 12rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-concept__cont-right--img img {
      border-radius: 6rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-concept__cont-right--img img {
      border-radius: 3rem; } }

  .p-concept__bottom {
    text-align: center;
    padding-top: 5.5rem; }
    @media screen and (max-width: 960px) {
      .p-concept__bottom {
        padding-top: 3rem; } }
    .p-concept__bottom-desc {
      color: #fff;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 180%;
      letter-spacing: 0.08rem; }
.p-medical {
  background-color: #F8F4F0;
  position: relative;
  z-index: 1;
  padding: 3.2rem 0 10.9rem; }
  @media screen and (max-width: 767px) {
    .p-medical .txt__sp {
      text-align: left; } }
  @media screen and (max-width: 960px) {
    .p-medical {
      padding-bottom: 5rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical {
      padding-top: 0;
      padding-bottom: 2rem; } }

  .p-medical::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 100%, hline to 50%, hline to 0%, vline to 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, vline to 100%, close);
    background-color: #F8F4F0;
    top: -8.1rem;
    left: 0;
    pointer-events: none;
    z-index: -1; }
    @media screen and (max-width: 767px) {
      .p-medical::before {
        height: 6.2rem;
        top: -5.2rem; } }
  .p-medical::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 0% 100%, hline to 50%, hline to 100%, vline to 16.32%, curve to 50% 16.32% with 100% 16.32%/77.14% -20.4%, curve to 0% 16.32% with 22.86% 53.04%/0% 16.32%, vline to 100%, close);
    background-color: #EFE6DE;
    bottom: 0;
    left: 0;
    pointer-events: none;
    z-index: -1; }
    @media screen and (max-width: 767px) {
      .p-medical::after {
        height: 6.2rem; } }
  .p-medical__img01 {
    display: inline-block;
    position: absolute;
    top: 4.3rem;
    left: 0; }
    @media screen and (max-width: 767px) {
      .p-medical__img01 {
        display: none; } }
  .p-medical__img02 {
    display: inline-block;
    position: absolute;
    top: 9rem;
    right: 14.5rem; }
    @media screen and (max-width: 767px) {
      .p-medical__img02 {
        right: 1.5rem;
        top: 0; } }
  .p-medical__row {
    gap: 1.265%;
    margin-bottom: 2.7rem; }
    @media screen and (max-width: 767px) {
      .p-medical__row {
        gap: 3rem; } }
  .p-medical__item {
    position: relative;
    z-index: 1;
    height: 33.6rem;
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
    padding: 5.8rem 3.8rem;
    overflow: hidden; }
    .p-medical__item-sp {
      flex: 1; }
      @media screen and (max-width: 767px) {
        .p-medical__item-sp {
          flex: 100%; } }
      .p-medical__item-sp .p-medical__all {
        display: none; }
        @media screen and (max-width: 767px) {
          .p-medical__item-sp .p-medical__all {
            display: flex;
            margin-top: 1.8rem; } }
    @media screen and (max-width: 1440px) {
      .p-medical__item {
        padding: 4.5rem 1.5rem;
        height: 31.6rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-medical__item {
      height: auto; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-medical__item {
      flex: 100%; } }

    .p-medical__item-title {
      color: #263050;
      font-size: var(--fs-30);
      font-weight: 500;
      line-height: 160%;
      letter-spacing: 0.128rem; }
      @media screen and (max-width: 960px) {
        .p-medical__item-title {
          text-align: center;
          margin-bottom: 2rem;
          font-size: 2.2rem; } }
    .p-medical__item-img {
      position: absolute;
      top: 2.6rem;
      right: 4.5rem;
      z-index: -1; }
      @media screen and (max-width: 1440px) {
        .p-medical__item-img {
          right: 1.5rem;
          top: 5.6rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-medical__item-img {
      position: relative;
      inset: 0; }
      .p-medical__item-img img {
        display: block;
        margin: 0 auto; } }

      .p-medical__item-img img {
        max-width: 29.7rem;
        aspect-ratio: 1;
        object-fit: cover; }
        @media screen and (max-width: 1440px) {
          .p-medical__item-img img {
            max-width: 24.7rem;
            width: 100%; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-medical__item-img img {
      max-width: 16.7rem; } }

    .p-medical__item-icon {
      padding-top: 2.5rem;
      display: inline-block;
      position: relative;
      z-index: 1; }
      @media screen and (max-width: 960px) {
        .p-medical__item-icon {
          position: absolute;
          bottom: 1.5rem;
          left: 1.5rem; } }
    .p-medical__item::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 6.8rem;
      bottom: 0;
      left: 0;
      z-index: 0;
      pointer-events: none;
      aspect-ratio: 8.676;
      clip-path: shape(from 100% 100%, hline to 50%, hline to 0%, vline to 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, vline to 100%, close); }
    .p-medical__item::after {
      content: "";
      position: absolute;
      width: 7.2rem;
      height: 7.2rem;
      background-color: inherit;
      border-radius: 100%;
      bottom: 1.8rem;
      left: 45%;
      transform: translateX(-50%);
      z-index: 1; }
      @media screen and (max-width: 960px) {
        .p-medical__item::after {
          width: 4.2rem;
          height: 4.2rem;
          bottom: 3.8rem; } }
    .p-medical__item-violet {
      background-color: #F1ECEF; }
      .p-medical__item-violet::before {
        background-color: #DFD9E3; }
      .p-medical__item-violet::after {
        background-color: #E6DCD5; }
    .p-medical__item-orange {
      background-color: #F6EDE4; }
      .p-medical__item-orange::before {
        background-color: #F3E0D1; }
      .p-medical__item-orange::after {
        background-color: #F1CAC0; }
    .p-medical__item-green {
      background-color: #ECECE7; }
      .p-medical__item-green::before {
        background-color: #D0D8D1; }
      .p-medical__item-green::after {
        background-color: #B8C6BE; }
  .p-medical__list {
    gap: 1.762%; }
    @media screen and (max-width: 767px) {
      .p-medical__list {
        gap: 0.5rem; }
        .p-medical__list.d-flex {
          display: none; } }
  .p-medical__col {
    flex: 1; }
    @media screen and (max-width: 767px) {
      .p-medical__col {
        flex: 100%; } }
  .p-medical__all {
    gap: 1.8rem; }
    @media screen and (max-width: 767px) {
      .p-medical__all {
        gap: 0.5rem; } }
    .p-medical__all-item {
      flex: 100%;
      border: 1px solid #E3CDB6;
      box-shadow: 0px 0.4rem 1.4rem 0rem #00000026;
      background-color: #FCFBF9;
      border-radius: 0.8rem; }
      @media screen and (max-width: 767px) {
        .p-medical__all-item {
          flex: 0 0 calc((100% - 0.5rem) / 2); } }
    .p-medical__all-link {
      align-items: center;
      padding: 1.2rem 3.5rem;
      gap: 3.2rem;
      background: url(./assets/img/home-b-01.svg) top 3rem right 4rem/2.9rem no-repeat;
      transition: ease all .4s; }
      @media screen and (max-width: 960px) {
        .p-medical__all-link {
          gap: 1rem;
          padding: 1.2rem;
          background-position: top 3rem right 1.5rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical__all-link {
      padding: 1rem;
      background: none; } }

      .p-medical__all-link:hover {
        background-color: #E3CDB6; }
    .p-medical__all-icon {
      width: 8.6rem;
      aspect-ratio: 1;
      background-color: #F7F3EC;
      border-radius: 100%;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media screen and (max-width: 960px) {
        .p-medical__all-icon {
          width: 4.6rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical__all-icon {
      width: 3.5rem; } }
      @media screen and (max-width: 960px) {
          .p-medical__all-icon img {
            max-width: 40%;
            width: 100%; } }
    .p-medical__all-txt {
      width: calc(100% - (8.6rem + 3.2rem));
      color: #263050;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 255%;
      letter-spacing: 0.3rem; }
      @media screen and (max-width: 960px) {
        .p-medical__all-txt {
          line-height: 140%;
          width: calc(100% - (4.6rem + 1rem));
          letter-spacing: -0.08rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical__all-txt {
      width: calc(100% - (3.5rem + 1rem));
      letter-spacing: 0;
      font-size: Max(1.1rem, 14px); } }

  .p-medical__care {
    display: inline-block;
    background: url(./assets/img/home-b-02.svg) top right/17.5rem no-repeat;
    padding: 3rem 12.2rem 3rem 0;
    position: absolute;
    bottom: 0;
    right: 4rem; }
    @media screen and (max-width: 960px) {
      .p-medical__care {
        background-size: 10.5rem;
        padding: 3rem 5.2rem 3rem 0; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical__care {
      position: relative;
      inset: 0;
      background-size: 6.5rem;
      padding: 2rem 5.2rem 1rem 0; } }

    .p-medical__care-txt {
      color: #C5A175;
      font-size: var(--fs-90);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.155rem;
      font-family: "Vujahday Script", cursive;
      transform: rotate(-5.23deg);
      display: inline-block; }
      @media screen and (max-width: 960px) {
        .p-medical__care-txt {
          font-size: 4rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-medical__care-txt {
      font-size: 3rem; } }

.p-pickup {
  padding: 6.5rem 7rem 14.8rem;
  background-color: #F4EFE8;
  background-image: url(./assets/img/home-b-03.png), url(./assets/img/home-b-04.png);
  background-position: top left, top 4.8rem right;
  background-repeat: no-repeat, no-repeat;
  background-size: 73.9rem, 21rem; }
  @media screen and (max-width: 1440px) {
    .p-pickup {
      padding: 6.5rem 0 14.8rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-pickup {
      background-image: none, url(./assets/img/home-b-04.png);
      padding-top: 5rem;
      background-size: 73.9rem, 15rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-pickup {
      background-size: 71.9rem, 7rem;
      background-position: top left, top 14.8rem right;
      padding-bottom: 10rem; } }

  .p-pickup .l-grid-1250 {
    margin-left: auto;
    margin-right: 0; }
  @media screen and (max-width: 960px) {
    .p-pickup__img {
      padding-top: 3rem; }
      .p-pickup__img img {
        max-width: 100%;
        width: 100%;
        margin: 0 auto; } }
  .p-pickup__title {
    display: inline-block; }
    .p-pickup__title::before {
      content: "";
      position: absolute;
      width: 2.2rem;
      height: 2.2rem;
      background: url(./assets/img/home-b-05.svg) center center/contain no-repeat;
      top: 0.6rem;
      right: -6.4rem;
      z-index: 1;
      pointer-events: none; }
      @media screen and (max-width: 767px) {
        .p-pickup__title::before {
          width: 1.2rem;
          height: 1.2rem;
          right: -1rem; } }
    .p-pickup__title-en {
      display: block;
      color: #263050;
      font-size: var(--fs-90);
      font-weight: 400;
      line-height: 133%;
      letter-spacing: 0.5rem;
      font-family: "Times New Roman", Times, serif; }
    .p-pickup__title-jp {
      color: #C09867;
      font-size: var(--fs-24);
      font-weight: 700;
      line-height: 120%;
      letter-spacing: 0.3rem; }
  .p-pickup__cont {
    gap: 3.2%;
    align-items: stretch;
    margin-top: 11.1rem; }
    @media screen and (max-width: 960px) {
      .p-pickup__cont {
        margin-top: 7.1rem;
        gap: 1.5rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-pickup__cont {
      gap: 7rem; } }

  .p-pickup__item {
    flex: 1;
    background-color: #FBF8F2;
    border: 1px solid #E6D7C6;
    border-radius: 2.6rem;
    padding: 0 2rem 3rem;
    position: relative;
    z-index: 1; }
    .p-pickup__item-btn {
      justify-content: center;
      margin-top: 3rem; }
      @media screen and (max-width: 767px) {
        .p-pickup__item-btn {
          margin-top: 1.5rem; } }
      .p-pickup__item-btn .p-btn__style03 {
        min-width: 10rem;
        height: 5rem;
        border-radius: 1rem;
        background-position: center;
        background-size: 3.5rem;
        padding: 0; }
        @media screen and (max-width: 767px) {
          .p-pickup__item-btn .p-btn__style03 {
            min-width: 8rem;
            height: 4rem;
            border-radius: 0.5rem;
            background-size: 2.5rem; } }
    .p-pickup__item-link:hover .p-btn__style03 {
      background-color: #F1CE9B;
      color: #232C4D;
      border-color: #F1CE9B;
      background-image: url(./assets/img/colums-icon-01-hv.svg); }
    @media screen and (max-width: 767px) {
      .p-pickup__item {
        flex: 100%; } }
    .p-pickup__item-number {
      width: 7.2rem;
      aspect-ratio: 1;
      border-radius: 100%;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto;
      color: #fff;
      font-size: var(--fs-42);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.128rem;
      font-family: "Times New Roman", Times, serif;
      position: relative;
      z-index: 1;
      margin-top: -4rem; }
      .p-pickup__item-number::before {
        content: "";
        position: absolute;
        width: 0.9rem;
        height: 0.9rem;
        background-image: url(./assets/img/home-b-06.svg);
        background-position: top right;
        background-repeat: no-repeat;
        background-size: 0.9rem;
        top: 1rem;
        right: 1.2rem;
        z-index: 1;
        pointer-events: none; }
      .p-pickup__item-number--orange {
        background-color: #CFAD83; }
      .p-pickup__item-number--violet {
        background-color: #AE9EBF; }
      .p-pickup__item-number--green {
        background-color: #9EA180; }
    .p-pickup__item-title {
      color: #263050;
      font-size: var(--fs-30);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.255rem;
      margin-top: 2.5rem; }
    .p-pickup__item-icon {
      display: inline-block;
      margin-top: 2rem;
      margin-bottom: 2rem; }
    .p-pickup__item-img {
      border-radius: 1rem;
      width: 100%;
      aspect-ratio: 2.029;
      margin-bottom: 2.3rem;
      object-fit: cover; }
    .p-pickup__item-desc {
      color: #333333;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 153%;
      letter-spacing: 0; }
      .p-pickup__item-desc--let {
        letter-spacing: -0.1rem; }
.p-feature {
  background-color: #FBF8F3;
  position: relative;
  z-index: 1;
  padding: 3.2rem 0 22.4rem;
  background-image: url(./assets/img/feature-img-06.png);
  background-size: 42.4rem;
  background-position: top 130.8rem right -9.5rem;
  background-repeat: no-repeat; }
  @media screen and (max-width: 1440px) {
    .p-feature {
      background-size: 24.4rem;
      background-position: top 123.8rem right -9.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature {
      padding-bottom: 13.4rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature {
      background-image: none;
      padding-top: 0;
      padding-bottom: 5rem; } }

  .p-feature__top-number {
    font-size: var(--fs-50);
    font-weight: 700;
    color: #E1A131;
    font-family: "Times New Roman", Times, serif; }
  .p-feature::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 100%, hline to 50%, hline to 0%, vline to 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, vline to 100%, close);
    background-color: inherit;
    top: -9.5rem;
    left: 0;
    z-index: 1;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-feature::before {
        height: 6.2rem;
        top: -5.2rem; } }
  .p-feature__img01 {
    position: absolute;
    top: 0;
    left: 7rem;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-feature__img01 {
        left: 0; } }
  .p-feature__img02 {
    position: absolute;
    top: 5.5rem;
    right: 30%;
    pointer-events: none; }
    @media screen and (max-width: 960px) {
      .p-feature__img02 {
        right: 1.5rem; } }
  .p-feature__row {
    margin-top: 2rem; }
    @media screen and (max-width: 767px) {
      .p-feature__row {
        margin-top: 0; } }
  .p-feature__item {
    gap: 3.79%;
    padding: 6rem 0;
    background: url(./assets/img/feature-bg-01.png) bottom center repeat-x; }
    @media screen and (max-width: 960px) {
      .p-feature__item {
        gap: 5rem;
        padding: 5rem 0; } }
    .p-feature__item:first-child {
      padding-top: 0; }
    .p-feature__item:nth-child(2) {
      background: url(./assets/img/feature-bg-02.png) bottom left no-repeat; }
      .p-feature__item:nth-child(2) .p-feature__txt-row {
        background: url(./assets/img/feature-img-05.png) top 1.2rem right 11rem/2.6rem no-repeat; }
        @media screen and (max-width: 960px) {
          .p-feature__item:nth-child(2) .p-feature__txt-row {
            background: url(./assets/img/feature-img-16.png) bottom center/29.8rem no-repeat; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-feature__item:nth-child(2) .p-feature__txt-row {
      background-size: 20rem; } }

    .p-feature__item:nth-child(3) .p-feature__img-txt {
      top: 2rem; }
      @media screen and (max-width: 960px) {
        .p-feature__item:nth-child(3) .p-feature__img-txt {
          top: 1.5rem;
          left: 13rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-feature__item:nth-child(3) .p-feature__img-txt {
      left: -1rem;
      top: -3rem; } }

    .p-feature__item:nth-child(3) .p-feature__txt-desc {
      max-width: 60rem;
      width: 100%; }
      @media screen and (max-width: 960px) {
        .p-feature__item:nth-child(3) .p-feature__txt-desc {
          max-width: 100%; } }
    @media screen and (min-width: 961px) {
      .p-feature__item:nth-child(2n) .p-feature__txt {
        order: -1; }
      .p-feature__item:nth-child(2n) .p-feature__txt-inner {
        margin-left: auto;
        margin-right: 0; }
      .p-feature__item:nth-child(2n) .p-feature__img-main {
        margin-left: 0;
        margin-right: auto; }
      .p-feature__item:nth-child(2n) .p-feature__img-txt {
        inset: unset;
        bottom: 1rem;
        right: 8rem; } }
  .p-feature__img {
    width: 46.82%; }
    @media screen and (max-width: 960px) {
      .p-feature__img {
        width: 100%; } }
    .p-feature__img-main {
      margin-left: auto;
      margin-right: 0;
      display: block; }
      @media screen and (max-width: 960px) {
        .p-feature__img-main {
          margin-right: auto; } }
    .p-feature__img-txt {
      width: 23rem;
      aspect-ratio: 1;
      border-radius: 100%;
      background-color: #AD9A7C;
      border: 1px solid #FFFFFF;
      box-shadow: 0px 0.4rem 1.4rem 0rem #00000026;
      text-align: center;
      position: absolute;
      top: 8rem;
      left: 0;
      z-index: 1; }
      @media screen and (max-width: 1440px) {
        .p-feature__img-txt {
          width: 16rem;
          top: 0; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__img-txt {
      top: 1.5rem;
      left: 13rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature__img-txt {
      left: -1rem;
      width: 11rem;
      top: -3rem; } }

    .p-feature__img-icon {
      display: block;
      padding-top: 3.5rem; }
      @media screen and (max-width: 767px) {
        .p-feature__img-icon {
          padding-top: 1.5rem; } }
      .p-feature__img-icon img {
        margin: 0 auto; }
        @media screen and (max-width: 1440px) {
          .p-feature__img-icon img {
            max-width: 20%;
            width: 100%; } }
    .p-feature__img-info {
      margin-top: 2rem;
      color: #fff;
      font-size: var(--fs-24);
      font-weight: 500;
      line-height: 120%;
      letter-spacing: 0.192rem; }
      @media screen and (max-width: 1440px) {
        .p-feature__img-info {
          margin-top: 1rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__img-info {
      text-align: center; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature__img-info {
      font-size: Max(1.4rem, 14px); } }

  .p-feature__txt {
    width: calc(100% - (3.79% + 46.82%)); }
    @media screen and (max-width: 960px) {
      .p-feature__txt {
        width: 100%; } }
    .p-feature__txt-row {
      gap: 3.7rem;
      align-items: center;
      margin-bottom: 3rem; }
      @media screen and (max-width: 1440px) {
        .p-feature__txt-row {
          gap: 1.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__txt-row {
      justify-content: center;
      text-align: center;
      padding: 0 2rem 4.5rem;
      background: url(./assets/img/feature-img-16.png) bottom center/29.8rem no-repeat;
      gap: 1rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature__txt-row {
      padding: 0 0 2.5rem;
      background-size: 20rem; } }

    .p-feature__txt-point {
      width: 14rem;
      aspect-ratio: 1;
      background-color: #2E3552;
      border-radius: 10rem;
      text-align: center;
      padding-top: 1.2rem; }
      @media screen and (max-width: 1440px) {
        .p-feature__txt-point {
          width: 11rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-feature__txt-point {
      width: 8rem; } }

    .p-feature__txt-title01 {
      width: calc(100% - (3.7rem + 14rem)); }
      @media screen and (max-width: 1440px) {
        .p-feature__txt-title01 {
          width: calc(100% - (1.5rem + 11rem)); } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__txt-title01 {
      width: 100%; } }

    .p-feature__txt-main {
      display: block;
      font-family: "Dancing Script", cursive;
      color: #F4D196;
      font-size: var(--fs-46);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.155rem;
      transform: rotate(-5.23deg); }
    .p-feature__txt-number {
      color: #F2EADA;
      font-size: var(--fs-66);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.128rem; }
    .p-feature__txt-title {
      color: #263050;
      font-size: var(--fs-35);
      font-weight: 700;
      line-height: 170%;
      letter-spacing: 0.3rem; }
      @media screen and (max-width: 960px) {
        .p-feature__txt-title br {
          display: none; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-feature__txt-title br {
      display: inline-block; } }

    .p-feature__txt-desc {
      width: 100%;
      color: #333333;
      font-size: var(--size-p);
      font-weight: 500;
      line-height: 222%;
      letter-spacing: 0.18rem;
      margin-bottom: 2.5rem; }
      @media screen and (max-width: 960px) {
        .p-feature__txt-desc {
          margin-top: 3rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-feature__txt-desc {
      margin-top: 1.5rem;
      letter-spacing: .05rem; } }

    .p-feature__txt-inner {
      max-width: 70rem;
      width: 100%; }
      @media screen and (max-width: 960px) {
        .p-feature__txt-inner {
          max-width: 100%; } }
  .p-feature__btn {
    display: flex;
    justify-content: center; }
  .p-feature__img03 {
    position: absolute;
    bottom: 7rem;
    right: 0;
    z-index: -1;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-feature__img03 {
        bottom: 0; } }
  .p-feature__img04 {
    position: absolute;
    bottom: 3.5rem;
    left: -5.8rem;
    z-index: -1;
    pointer-events: none; }
    @media screen and (max-width: 1440px) {
      .p-feature__img04 {
        bottom: 0;
        left: 0; } }
  .p-feature__bottom {
    margin-top: 5.8rem; }
    @media screen and (max-width: 960px) {
      .p-feature__bottom {
        margin-top: 0; } }
    @media screen and (max-width: 960px) {
      .p-feature__bottom-row {
        gap: 0; } }
    .p-feature__bottom-item {
      flex: 1;
      position: relative;
      z-index: 1; }
      @media screen and (max-width: 1440px) {
        .p-feature__bottom-item {
          padding: 0 1.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__bottom-item {
      flex: 100%;
      background: url(./assets/img/feature-bg-01.png) bottom center repeat-x;
      padding: 5rem 0; }
      .p-feature__bottom-item--right {
        width: 100%; }
      .p-feature__bottom-item:last-child {
        background: none; } }

      .p-feature__bottom-item:not(:last-child)::after {
        content: "";
        position: absolute;
        width: 1px;
        height: 53.8rem;
        background-color: #EDE8E1;
        bottom: 8.2rem;
        right: 0;
        pointer-events: none; }
        @media screen and (max-width: 960px) {
          .p-feature__bottom-item:not(:last-child)::after {
            display: none; } }
      .p-feature__bottom-item--img {
        max-width: 58rem;
        width: 100%;
        display: block;
        margin: 0 auto; }
      .p-feature__bottom-item .p-feature__img-txt {
        inset: unset;
        top: 1.5rem;
        left: 0; }
        @media screen and (max-width: 960px) {
          .p-feature__bottom-item .p-feature__img-txt {
            left: 13rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-feature__bottom-item .p-feature__img-txt {
      left: -1rem;
      top: -3rem; } }

      .p-feature__bottom-item .p-feature__txt-row {
        justify-content: center;
        padding: 0 2rem 4.5rem;
        background: url(./assets/img/feature-img-16.png) bottom center/29.8rem no-repeat;
        gap: 1rem;
        margin-top: -9.4rem;
        align-items: stretch; }
        @media screen and (max-width: 1440px) {
          .p-feature__bottom-item .p-feature__txt-row {
            margin-top: 6.4rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__bottom-item .p-feature__txt-row {
      margin-top: 0; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature__bottom-item .p-feature__txt-row {
      background-size: 20rem;
      padding: 0 0 2.5rem; } }

      .p-feature__bottom-item .p-feature__txt-title01 {
        width: 100%;
        text-align: center; }
      .p-feature__bottom-item--info {
        padding: 0 4rem; }
        @media screen and (max-width: 1440px) {
          .p-feature__bottom-item--info {
            padding: 0; } }
      .p-feature__bottom-item--desc {
        color: #3C3C43;
        font-size: var(--size-p);
        font-weight: 400;
        line-height: 180%;
        letter-spacing: 0.08rem;
        padding-bottom: 4.5rem;
        min-height: 29.8rem; }
        @media screen and (max-width: 1440px) {
          .p-feature__bottom-item--desc {
            aspect-ratio: 1.3;
            min-height: fit-content; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-feature__bottom-item--desc {
      aspect-ratio: unset;
      margin-top: 3rem; } }

  @media screen and (max-width: 1440px) and (max-width: 960px) and (max-width: 767px) {
    .p-feature__bottom-item--desc {
      padding-bottom: 1.5rem; } }

    .p-feature__bottom-img01 {
      position: absolute;
      bottom: -9.4rem;
      right: 2rem;
      z-index: -1;
      pointer-events: none; }
.p-greeting {
  background-color: #F7F4F0;
  position: relative;
  z-index: 1;
  padding-bottom: 19.8rem; }
  @media screen and (max-width: 960px) {
    .p-greeting {
      padding-bottom: 17.8rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-greeting {
      padding-bottom: 10rem; } }

  .p-greeting::after {
    content: "";
    position: absolute;
    width: 92.6rem;
    height: 51.3rem;
    aspect-ratio: 1.804;
    clip-path: shape(from 17.56% 76.12%, curve to 0% 80.8% with 11.03% 72.38%/3.13% 77.68%, vline to 0%, hline to 100%, curve to 79.58% 55.65% with 96.83% 3.87%/88.31% 20.41%, curve to 47.7% 100% with 68.67% 99.71%/54.73% 100%, curve to 17.56% 76.12% with 40.68% 100%/25.72% 80.8%, close);
    top: -3.5rem;
    left: -2.8rem;
    pointer-events: none;
    z-index: -1;
    background-color: #F4EEE4; }
    @media screen and (max-width: 960px) {
      .p-greeting::after {
        content: none; } }
  .p-greeting::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 0% 100%, line to 50% 100%, line to 100% 100%, line to 100% 16.32%, curve to 50% 16.32% with 100% 16.32%/77.14% -20.4%, curve to 0% 16.32% with 22.86% 53.04%/0% 16.32%, line to 0% 100%, close);
    background-color: #F4EEE4;
    top: -13.8rem;
    left: 0;
    pointer-events: none;
    z-index: -1; }
    @media screen and (max-width: 960px) {
      .p-greeting::before {
        background-color: #F7F4F0; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-greeting::before {
      height: 6.2rem;
      top: -5.2rem; } }

  .p-greeting__row {
    gap: 18.567%;
    align-items: flex-end;
    background: url(./assets/img/greeting-img-08.png) bottom 18rem left 87.5rem/7.2rem no-repeat; }
    @media screen and (max-width: 1440px) {
      .p-greeting__row {
        gap: 2.567%; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-greeting__row {
      gap: 3rem;
      background: none; } }

  .p-greeting__left {
    width: 45.373%; }
    @media screen and (max-width: 1440px) {
      .p-greeting__left {
        width: 58.373%; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-greeting__left {
      width: 100%; } }

  .p-greeting__right {
    width: calc(100% - (18.567% + 45.373%));
    padding-bottom: 3.5rem; }
    @media screen and (max-width: 1440px) {
      .p-greeting__right {
        width: calc(100% - (2.567% + 58.373%)); } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-greeting__right {
      width: 100%;
      padding: 0; } }

    .p-greeting__right-img {
      position: absolute;
      top: -16.5rem;
      right: 0;
      z-index: 0; }
    .p-greeting__right-list {
      gap: 1.8rem;
      max-width: 50rem;
      width: 100%;
      position: relative;
      z-index: 2; }
      @media screen and (max-width: 960px) {
        .p-greeting__right-list {
          max-width: 100%;
          gap: 1rem; } }
    .p-greeting__right-item {
      width: 100%; }
      @media screen and (max-width: 960px) {
        .p-greeting__right-item {
          width: calc((100% - 1rem) / 2); } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-greeting__right-item {
      width: 100%; } }

      .p-greeting__right-item:last-child .p-greeting__right-title {
        letter-spacing: 0; }
    .p-greeting__right-link {
      background-color: #fff;
      border: 1px solid #716959;
      border-radius: 2rem;
      padding: 2.3rem 3.3rem;
      gap: 2.8rem;
      align-items: center;
      position: relative;
      z-index: 1;
      background-image: url(./assets/img/greeting-img-06.png);
      background-position: center right 3.1rem;
      background-repeat: no-repeat;
      background-size: 2.6rem;
      transition: ease all 0.4s; }
      @media screen and (max-width: 960px) {
        .p-greeting__right-link {
          padding: 1.5rem;
          gap: 1.5rem;
          background-size: 1.6rem;
          background-position: center right 1.1rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-greeting__right-link {
      padding: 1rem; } }

      .p-greeting__right-link:hover {
        background-color: #2E3552;
        border-color: #2E3552;
        background-image: url(./assets/img/greeting-img-06-hv.png); }
        .p-greeting__right-link:hover .p-greeting__right-title {
          color: #fff; }
        .p-greeting__right-link:hover .p-greeting__right-title01 {
          color: #fff; }
    .p-greeting__right-icon {
      width: 9.4rem;
      aspect-ratio: 1;
      border-radius: 100%;
      background-color: #F4E8D5;
      display: -webkit-box;
      display: -moz-box;
      display: -ms-flexbox;
      display: -webkit-flex;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media screen and (max-width: 767px) {
        .p-greeting__right-icon {
          width: 5.4rem; } }
    .p-greeting__right-title {
      display: block;
      color: #232C4E;
      font-size: var(--fs-27);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.3rem;
      padding-bottom: 1.4rem; }
      @media screen and (max-width: 767px) {
        .p-greeting__right-title {
          padding-bottom: 0.5rem; } }
    .p-greeting__right-title01 {
      display: block;
      color: #232C4E;
      font-size: var(--fs-17);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.2rem; }
    .p-greeting__right-img02 {
      position: absolute;
      bottom: 12rem;
      right: 8.5rem;
      pointer-events: none; }
      @media screen and (max-width: 1440px) {
        .p-greeting__right-img02 {
          right: 2rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-greeting__right-img02 {
      bottom: 2rem; } }

  .p-greeting__title {
    color: #0E193A;
    font-size: var(--fs-85);
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.155rem;
    padding-bottom: 1rem; }
  .p-greeting__intro {
    color: #C5A175;
    font-size: var(--fs-50);
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.155rem;
    font-family: "Vujahday Script", cursive;
    transform: rotate(-5.23deg);
    display: inline-block;
    position: relative;
    z-index: 1;
    padding-right: 18.5rem;
    padding-bottom: 1.6rem; }
    @media screen and (max-width: 767px) {
      .p-greeting__intro {
        padding-right: 10.5rem; } }
    .p-greeting__intro::before {
      content: "";
      position: absolute;
      width: 100%;
      height: 100%;
      background: url(./assets/img/greeting-img-01.png) bottom right/18.1rem no-repeat;
      bottom: 0;
      right: 0;
      transform: rotate(5.23deg); }
      @media screen and (max-width: 960px) {
        .p-greeting__intro::before {
          background-size: 15rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-greeting__intro::before {
      background-size: 10rem; } }

  .p-greeting__top {
    background: url(./assets/img/greeting-img-02.png) top 12.8rem right no-repeat;
    max-width: 48.5rem;
    width: 100%; }
    @media screen and (max-width: 960px) {
      .p-greeting__top {
        margin: 0 auto;
        text-align: center; } }
  .p-greeting__bottom {
    padding-top: 9.5rem; }
    @media screen and (max-width: 1440px) {
      .p-greeting__bottom {
        padding-top: 5.5rem; } }
  @media screen and (max-width: 1440px) and (max-width: 960px) {
    .p-greeting__bottom {
      padding-top: 5rem; }
      .p-greeting__bottom .p-img__1234 {
        margin: 0 auto; } }

    .p-greeting__bottom-sing {
      gap: 2.5rem; }
      @media screen and (max-width: 960px) {
        .p-greeting__bottom-sing {
          justify-content: center;
          margin-top: 3rem; } }
    .p-greeting__bottom-txt {
      color: #0E193A;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.266rem;
      padding-top: 1.2rem; }
    .p-greeting__bottom-name {
      display: block;
      color: #0E193A;
      font-size: var(--fs-46);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.155rem; }
      .p-greeting__bottom-name--en {
        color: #C5A175;
        font-size: var(--size-p);
        font-weight: 400;
        line-height: 100%;
        letter-spacing: 0.4rem;
        padding-top: 1.2rem;
        display: block; }
    .p-greeting__bottom-desc {
      margin-top: 4rem; }
      @media screen and (max-width: 767px) {
        .p-greeting__bottom-desc {
          margin-top: 2rem; } }
    .p-greeting__bottom-content {
      color: #1B2446;
      font-size: var(--size-p);
      font-weight: 400;
      line-height: 180%;
      letter-spacing: 0.08rem; }
.p-gallery {
  background-color: #232C4D;
  position: relative;
  z-index: 1;
  padding-bottom: 5rem; }
  .p-gallery::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 100%, line to 50% 100%, line to 0% 100%, line to 0% 16.32%, curve to 50% 16.32% with 0% 16.32%/22.86% -20.4%, curve to 100% 16.32% with 77.14% 53.04%/100% 16.32%, line to 100% 100%, close);
    background-color: #232C4D;
    top: -12.2rem;
    left: 0;
    pointer-events: none;
    z-index: -1; }
    @media screen and (max-width: 767px) {
      .p-gallery::before {
        height: 6.2rem;
        top: -5.2rem; } }
  .p-gallery::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 0% 100%, line to 50% 100%, line to 100% 100%, line to 100% 16.32%, curve to 50% 16.32% with 100% 16.32%/77.14% -20.4%, curve to 0% 16.32% with 22.86% 53.04%/0% 16.32%, line to 0% 100%, close);
    background-color: #FAF8F7;
    bottom: 0;
    left: 0;
    z-index: -1; }
    @media screen and (max-width: 767px) {
      .p-gallery::after {
        height: 13.2rem; } }
  .p-gallery__title {
    background: url(./assets/img/gallery-img-00.png) top center/140rem no-repeat;
    color: #fff;
    font-size: var(--fs-60);
    font-weight: 400;
    line-height: 100%;
    letter-spacing: 0.4rem;
    padding: 2.5rem 0 2rem;
    margin-bottom: 5.5rem; }
    @media screen and (max-width: 767px) {
      .p-gallery__title {
        line-height: 140%;
        margin-bottom: 3rem;
        padding: 0; } }
    .p-gallery__title-big {
      font-size: var(--fs-70); }
    .p-gallery__title .p-txt__color-orange {
      color: #E2A459; }
    .p-gallery__title-small {
      padding-top: 3rem;
      display: block;
      color: #C1B2A3;
      font-size: var(--fs-30);
      font-weight: 400;
      line-height: 100%;
      letter-spacing: 0.4rem; }
      @media screen and (max-width: 960px) {
        .p-gallery__title-small {
          padding-top: 1rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-gallery__title-small {
      line-height: 140%; } }

.p-columns {
  position: relative;
  z-index: 2;
  background-color: #FAF8F7;
  margin-top: -1px;
  padding: 3.2rem 0 5.5rem; }
  @media screen and (max-width: 960px) {
    .p-columns {
      padding: 0 0 2rem; } }
  .p-columns::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 22.2rem;
    aspect-ratio: 8.649;
    clip-path: shape(from 100% 0%, line to 50% 0%, line to 0% 0%, line to 0% 83.68%, curve to 50% 83.68% with 0% 83.68%/22.86% 120.4%, curve to 100% 83.68% with 77.14% 46.96%/100% 83.68%, line to 100% 0%, close);
    background-color: #FAF8F7;
    bottom: -9rem;
    left: 0;
    pointer-events: none;
    z-index: 0; }
    @media screen and (max-width: 767px) {
      .p-columns::after {
        height: 6.2rem;
        bottom: -5.2rem; } }
  .p-columns__img02 {
    position: absolute;
    bottom: 9rem;
    left: 7rem;
    pointer-events: none;
    z-index: 1; }
    @media screen and (max-width: 960px) {
      .p-columns__img02 {
        bottom: 0; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-columns__img02 {
      display: none; } }

  .p-columns__img01 {
    position: absolute;
    top: 5.5rem;
    right: 30%;
    pointer-events: none; }
    @media screen and (max-width: 960px) {
      .p-columns__img01 {
        right: 20rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-columns__img01 {
      right: 1rem; } }

  .p-columns__row {
    margin-top: 5rem; }
    @media screen and (max-width: 960px) {
      .p-columns__row {
        margin-top: 3rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-columns__row {
      margin-top: 0; } }

  .p-columns__btn {
    margin-top: 6rem; }
    @media screen and (max-width: 960px) {
      .p-columns__btn {
        margin-top: 3rem; } }
.p-blog__list {
  gap: 3rem; }
  @media screen and (max-width: 960px) {
    .p-blog__list {
      gap: 1.5rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-blog__list {
      gap: 0.5rem; } }

.p-blog__item {
  width: calc((100% - 9rem) / 4);
  background-color: #FBF6F1;
  border-radius: 1rem;
  border: 1px solid #E5CCB6;
  padding: 2rem 2rem 3rem; }
  @media screen and (max-width: 960px) {
    .p-blog__item {
      width: calc((100% - 1.5rem) / 2); } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-blog__item {
      width: calc((100% - 0.5rem) / 2);
      padding: 1rem;
      padding-bottom: 2rem; } }

.p-blog__thumb {
  display: block;
  overflow: hidden;
  border-radius: 0.8rem; }
  .p-blog__thumb img {
    width: 100%;
    aspect-ratio: 1.626;
    object-fit: cover;
    border-radius: inherit;
    transition: ease all .4s; }
    .p-blog__thumb img:hover {
      transform: scale(1.05); }
.p-blog__date {
  color: #DDB385;
  font-size: var(--fs-16);
  font-weight: 500;
  line-height: 138%;
  letter-spacing: 0.322rem;
  display: block;
  margin: 0.5rem 0; }
.p-blog__taxonomy {
  display: inline-block;
  background-color: #1E2846;
  border-radius: 5rem;
  padding: 0.3rem 1.1rem 0.2rem;
  margin-bottom: 1.2rem;
  color: #fff;
  font-size: var(--fs-14);
  font-weight: 400;
  line-height: 142%;
  letter-spacing: 0;
  transition: ease all .4s; }
  .p-blog__taxonomy:hover {
    background-color: #DDB385; }
.p-blog__title {
  color: #232C4D;
  font-size: var(--size-p);
  font-weight: 700;
  line-height: 120%;
  letter-spacing: 0.08rem;
  margin-bottom: 1.5rem;
  transition: ease all .4s; }
  @media screen and (max-width: 767px) {
    .p-blog__title {
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      margin-bottom: 1rem; } }
  .p-blog__title:hover {
    color: #DDB385; }
.p-blog__excerpt {
  color: #565656;
  font-size: var(--size-p);
  font-weight: 400;
  line-height: 150%;
  letter-spacing: 0.07rem; }
  @media screen and (max-width: 767px) {
    .p-blog__excerpt {
      overflow: hidden;
      text-overflow: ellipsis;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical; } }
.p-recruit {
  background-color: #F3ECE5;
  padding: 17rem 0 17.5rem; }
  @media screen and (max-width: 960px) {
    .p-recruit {
      padding: 15rem 0 11.5rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-recruit {
      padding: 5rem 0 10rem; } }

  .p-recruit__row {
    gap: 4.5rem;
    align-items: stretch; }
    @media screen and (max-width: 960px) {
      .p-recruit__row {
        padding-top: 3rem;
        gap: 3rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-recruit__row {
      padding-top: 5rem; } }

  .p-recruit__left {
    width: 72rem; }
    @media screen and (max-width: 960px) {
      .p-recruit__left {
        width: 100%; } }
    .p-recruit__left iframe {
      width: 100%;
      height: 100%;
      border: 0;
      border-radius: 2rem;
      box-shadow: 0rem 0.4rem 1.4rem 0rem #00000026; }
      @media screen and (max-width: 960px) {
        .p-recruit__left iframe {
          height: 40rem; } }
  @media screen and (max-width: 960px) and (max-width: 767px) {
    .p-recruit__left iframe {
      height: 25rem; } }

  .p-recruit__right {
    width: calc(100% - (72rem + 4.5rem)); }
    @media screen and (max-width: 960px) {
      .p-recruit__right {
        width: 100%;
        order: -1; } }
  .p-recruit__link {
    display: block;
    background-color: #2B2F4A;
    box-shadow: 0rem 0.4rem 1.4rem 0rem #00000026;
    border-radius: 2rem;
    position: relative;
    z-index: 1;
    overflow: hidden;
    transition: ease all .4s; }
    .p-recruit__link:hover .p-recruit__img {
      transform: scale(1.05); }
    .p-recruit__link:hover .p-btn__style04 {
      background-color: #2E3552;
      color: #fff;
      border-color: #2E3552;
      background-image: url(./assets/img/recruit-img-02-hv.png); }
  .p-recruit__info {
    background-image: url(./assets/img/recruit-img-01.png);
    background-position: top left;
    background-repeat: no-repeat;
    padding: 5.5rem 5rem 3.6rem; }
    @media screen and (max-width: 1440px) {
      .p-recruit__info {
        padding: 5.5rem 2rem 3.6rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-recruit__info {
      padding: 2rem 1rem 3rem; } }

  .p-recruit__desc {
    color: #fff;
    font-size: var(--size-p);
    font-weight: 400;
    line-height: 200%;
    letter-spacing: 0.18rem;
    margin-bottom: 4rem; }
    @media screen and (max-width: 767px) {
      .p-recruit__desc {
        margin-bottom: 2rem; } }
  .p-recruit__title {
    position: absolute;
    top: 2.2rem;
    z-index: 10;
    opacity: 0.7;
    display: inline-block;
    font-family: "Times New Roman", Times, serif;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: none;
    left: -1rem;
    color: #fff;
    font-size: var(--fs-90);
    font-weight: 400;
    line-height: 133%;
    letter-spacing: 0.2rem;
    backface-visibility: hidden; }
  .p-recruit__img {
    border-radius: 0;
    transition: ease all .4s; }
  .p-recruit__thum {
    overflow: hidden;
    height: 35rem; }
    @media screen and (max-width: 1440px) {
      .p-recruit__thum {
        height: 32rem; } }
  @media screen and (max-width: 1440px) and (max-width: 767px) {
    .p-recruit__thum {
      height: fit-content; } }

  .p-recruit__img01 {
    position: absolute;
    bottom: -10rem;
    right: 8.2rem;
    z-index: 2;
    pointer-events: none; }
    @media screen and (max-width: 767px) {
      .p-recruit__img01 {
        display: none; } }

@keyframes scroll-left {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(-100%); } }
.scroll-infinity {
  position: relative;
  overflow: hidden; }
  .scroll-infinity__wrap {
    display: flex;
    width: max-content;
    gap: 2rem; }
  .scroll-infinity__list {
    display: flex;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 2rem;
    animation: scroll-left 30s linear infinite;
    animation-delay: 0.1s; }
    @media screen and (max-width: 767px) {
      .scroll-infinity__list {
        gap: 2rem; } }
  .scroll-infinity__item {
    flex-shrink: 0; }
    .scroll-infinity__item img {
      display: block;
      height: auto;
      object-fit: cover;
      pointer-events: none;
      user-select: none;
      border-radius: 2rem; }
      @media screen and (max-width: 767px) {
        .scroll-infinity__item img {
          border-radius: 1rem; } }

/* ==========================================================================
   Object - Utility (u-)
   ========================================================================== */
.u-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important; }

.u-hidden {
  display: none !important; }

@media screen and (min-width: 961px) {
  .u-sp-only {
    display: none !important; } }

@media screen and (max-width: 960px) {
  .u-pc-only {
    display: none !important; } }

.hv-o {
  transition: all 0.35s; }
  .hv-o:hover {
    opacity: 0.8; }

.d-block {
  display: block; }

.d-inline {
  display: inline; }

.d-inline-block {
  display: inline-block; }

.d-flex {
  display: flex;
  flex-wrap: wrap; }

.d-inline-flex {
  display: inline-flex; }

.d-grid {
  display: grid; }

.d-inline-grid {
  display: inline-grid; }

.d-none {
  display: none; }

.justify-start {
  justify-content: flex-start; }

.justify-center {
  justify-content: center; }

.justify-end {
  justify-content: flex-end; }

.justify-between {
  justify-content: space-between; }

.justify-around {
  justify-content: space-around; }

.items-start {
  align-items: flex-start; }

.items-center {
  align-items: center; }

.items-end {
  align-items: flex-end; }

.items-stretch {
  align-items: stretch; }

@media (max-width: 960px) {
  .hv-o:hover {
    opacity: 1; } }
.u-mt-0 {
  margin-top: 0; }

.u-mt-xs {
  margin-top: var(--space-xs) !important; }

.u-mt-sm {
  margin-top: var(--space-sm) !important; }

.u-mt-md {
  margin-top: var(--space-md) !important; }

.u-mt-lg {
  margin-top: var(--space-lg) !important; }

.u-mt-xl {
  margin-top: var(--space-xl) !important; }

.u-mt-2xl {
  margin-top: var(--space-2xl) !important; }

.u-mb-0 {
  margin-bottom: 0 !important; }

.u-mb-xs {
  margin-bottom: var(--space-xs) !important; }

.u-mb-sm {
  margin-bottom: var(--space-sm) !important; }

.u-mb-md {
  margin-bottom: var(--space-md) !important; }

.u-mb-lg {
  margin-bottom: var(--space-lg) !important; }

.u-mb-xl {
  margin-bottom: var(--space-xl) !important; }

.u-mb-2xl {
  margin-bottom: var(--space-2xl) !important; }

.u-text-center {
  text-align: center; }

.u-text-left {
  text-align: left; }

.u-text-right {
  text-align: right; }

.u-text-sm {
  font-size: 1.5rem; }

.u-text-lg {
  font-size: 2rem; }

.u-text-bold {
  font-weight: 700; }

.u-text-muted {
  color: #333333; }

.u-text-primary {
  color: #263050; }

.u-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.u-truncate-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  white-space: normal; }

.u-truncate-3 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  white-space: normal; }

/*# sourceMappingURL=style.css.map */
