@charset "UTF-8";
/* ========================================================================
/*
/* Foundation
/*
========================================================================= */
/* Bootstrap Customize
--------------------------------------------------------- */
h1 {
  margin: 0;
  padding: 0;
  float: none;
}

h2 {
  margin: 0;
  padding: 0;
}

h3 {
  margin: 0;
  padding: 0;
}

h4,
h5,
h6,
.h4,
.h5,
.h6 {
  margin-top: 0;
  margin-bottom: 0;
}

img {
  border: 0;
  vertical-align: top;
}

p {
  margin: 0;
}

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

dl {
  margin: 0;
  padding: 0;
  line-height: 1.9;
}

dt {
  line-height: 1.9;
  font-weight: normal;
}

dd {
  line-height: 1.9;
}

address {
  margin-bottom: auto;
}

@media (min-width: 1400px) {
  .d-xxl-block {
    display: block !important;
  }
  .d-xxl-none {
    display: none !important;
  }
}
@media screen and (min-width: 1600px) {
  .d-xxxl-block {
    display: block !important;
  }
  .d-xxxl-none {
    display: none !important;
  }
}
@media screen and (min-width: 2000px) {
  .d-xxxxl-block {
    display: block !important;
  }
  .d-xxxxl-none {
    display: none !important;
  }
}
@media screen and (min-width: 1200px) {
  .container {
    max-width: 1930px;
  }
}
[class*=col-]:not(:last-child) {
  margin-bottom: 2em;
}
@media print, screen and (min-width: 768px) {
  [class*=col-]:not(:last-child) {
    margin-bottom: 0;
  }
}

.modal {
  z-index: 9999;
}
@media print {
  .modal {
    display: none !important;
  }
}

@media print, screen and (min-width: 768px) {
  .modal-body img {
    max-height: 700px;
  }
}

.thumb {
  position: relative;
  width: auto;
  height: 300px;
  background: #f8f8f8;
  border: solid 1px #e5e5e5;
}
.thumb img {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: auto;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
}
.thumb a {
  display: block;
  width: 100%;
  height: 100%;
  outline: none;
  cursor: pointer;
}
.thumb a:is(:hover, :active, :focus) img {
  opacity: 0.7;
  transition: 0.3s;
}

@media only screen and (max-width: 767.98px) {
  .form-inline select {
    display: inline-block;
    width: auto;
    padding-left: 2px;
    padding-right: 2px;
  }
}

input[type=file].form-control {
  height: 0;
}

@media only screen and (max-width: 575.98px) {
  .form-check-inline {
    display: block;
  }
}
@media print, screen and (min-width: 576px) {
  .form-check-inline:not(:last-of-type) {
    margin-right: 1.4em;
  }
}

.form-control {
  height: auto;
  border-radius: 4px;
  padding: 0.7em 0.7em;
}
@media only screen and (max-width: 767.98px) {
  .form-control {
    font-size: 1rem;
  }
}
@media print, screen and (min-width: 768px) {
  .form-control {
    font-size: clamp(0.938rem, 0.158vw + 0.862rem, 1rem);
  }
}

.form-control::placeholder {
  color: #b3b3b3;
  font-weight: 350;
}
@media only screen and (max-width: 767.98px) {
  .form-control::placeholder {
    font-size: 0.875rem;
  }
}
@media print, screen and (min-width: 768px) {
  .form-control::placeholder {
    font-size: clamp(0.875rem, 0.158vw + 0.799rem, 0.938rem);
  }
}

/* Base
--------------------------------------------------------- */
:root {
  --color-main: #212121;
  --color-sub: #212121;
  --color-txt: #212121;
  --color-base: #fcfcfc;
  --color-surface: #f5f5f5;
  --color-line: #666;
  --color-accent: #db1515;
  --color-white: #fff;
  --color-black: #000;
  --font-family-primary: "Zen Kaku Gothic New", sans-serif;
  --font-family-secondary: "Marcellus", serif;
  --font-family-mincho: "Noto Serif JP", "Yu Mincho", serif;
  --font-family-awesome: "Font Awesome 6 Free";
  --header-height-mobile: clamp(50px, 8.1vw, 60px);
  --header-height-desktop: clamp(60px, 5.3vw, 94px);
  --icon-arrow: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 14"><path d="M15.5 0c0 .52.22 1.03.51 1.57a14.37 14.37 0 0 0 4.63 4.66c1.03.61 2.24 1.27 3.36 1.27v-1c-.68 0-1.87-.54-2.84-1.13a13 13 0 0 1-3.28-2.89v-.01a8 8 0 0 1-1-1.39C16.64.62 16.5.18 16.5 0Z"/><path d="M24 6.5c-1.2 0-2.34.66-3.36 1.27-1.36.84-2.6 1.98-3.54 3.23-.35.45-.74.96-1.04 1.48-.31.53-.56 1.05-.56 1.62h1c0-.23.15-.66.42-1.1.26-.46.63-.95.97-1.4h.01c.86-1.15 2.02-2.2 3.26-2.97.99-.6 2.04-1.13 2.84-1.13Z"/><path d="M0 6.5v1h24v-1z"/></svg>');
  --icon-zoom: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 330 330" fill="%234b4b4b"><path d="M325.606,304.394L223.328,202.117c16.707-21.256,26.683-48.041,26.683-77.111C250.011,56.077,193.934,0,125.005,0 C56.077,0,0,56.077,0,125.006C0,193.933,56.077,250.01,125.005,250.01c29.07,0,55.855-9.975,77.11-26.681l102.278,102.277 C307.322,328.536,311.161,330,315,330s7.678-1.464,10.606-4.394C331.465,319.749,331.465,310.251,325.606,304.394z M30,125.006 C30,72.619,72.619,30,125.005,30c52.387,0,95.006,42.619,95.006,95.005c0,52.386-42.619,95.004-95.006,95.004 C72.619,220.01,30,177.391,30,125.006z"/><path d="M175.01,110.006h-35.005V75c0-8.284-6.716-15-15-15s-15,6.716-15,15v35.005H75c-8.284,0-15,6.716-15,15s6.716,15,15,15 h35.005v35.004c0,8.284,6.716,15,15,15s15-6.716,15-15v-35.004h35.005c8.284,0,15-6.716,15-15S183.294,110.006,175.01,110.006z"/></svg>');
  --icon-tel: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none" stroke="black" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M10 3H5a2 2 0 0 0-2 2c0 13.25 10.75 24 24 24a2 2 0 0 0 2-2v-5l-7-3-3 4A21 21 0 0 1 9 13l4-3-3-7Z"/></svg>');
  --icon-fax: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none" stroke="black" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="9" width="6" height="20" rx="2"/><path d="M9 12h18a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H9M14 12V3h11v9M14 17h10M14 22h2m6 0h2M14 26h2m6 0h2"/></svg>');
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  background-color: var(--color-base);
  line-height: 1.75;
  letter-spacing: 0.08em;
  color: var(--color-txt);
  font-family: var(--font-family-primary);
  font-optical-sizing: auto;
  font-weight: 400;
}
body :lang(en) {
  font-family: var(--font-family-secondary);
}

a {
  text-decoration: none;
  text-underline-offset: 0.3em;
  color: var(--color-main);
  transition: color 0.3s;
}
a:is(:hover, :active, :focus) {
  text-decoration: none;
  color: var(--color-sub);
}
a:has([data-action=call]) {
  text-decoration: none;
  color: inherit;
}

em,
strong {
  font-weight: bold;
  font-style: normal;
}

button,
input[type=submit],
input[type=button] {
  border: 0;
  padding: 0;
}

img {
  image-rendering: -webkit-optimize-contrast;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
summary:focus,
[role=button]:focus,
[tabindex]:not([tabindex="-1"]):focus {
  outline: none;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[role=button]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 1px solid currentColor;
  outline-offset: 2px;
}

/* ========================================================================
/*
/* Layout
/*
========================================================================= */
/* 全体
--------------------------------------------------------- */
.l-page-wrapper {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
@media screen and (max-width: 991.98px) {
  .l-page-wrapper {
    padding-top: var(--header-height-mobile);
  }
}
@media print, screen and (min-width: 992px) {
  .l-page-wrapper {
    padding-top: var(--header-height-desktop);
  }
}
@media print {
  .l-page-wrapper {
    padding-top: 0;
  }
}

/* ヘッダーレイアウト
--------------------------------------------------------- */
.l-header {
  position: fixed;
  top: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  width: 100%;
  background-color: #fff;
  transform: translateY(-100%);
  opacity: 0;
  transition: transform 0.4s, opacity 0.4s, background-color 0.4s;
}
@media screen and (max-width: 991.98px) {
  .l-header {
    height: var(--header-height-mobile);
  }
}
@media print, screen and (min-width: 992px) {
  .l-header {
    height: var(--header-height-desktop);
  }
}
@media print {
  .l-header {
    position: static;
  }
}
.l-header.is-show {
  transform: translateY(0);
  opacity: 1;
}

.l-header.--inpec {
  display: block;
  background-color: transparent;
  transform: none;
  opacity: 1;
  color: var(--color-txt);
  transition: color 0.2s ease-out;
}
@media print {
  .l-header.--inpec {
    position: absolute;
    height: auto;
  }
}
.l-header.--inpec.is-white {
  color: #fff;
}
@media print {
  .l-header.--inpec.is-white {
    color: var(--color-txt);
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .l-header.--inpec {
    position: relative;
    height: auto;
    color: var(--color-txt);
    background-color: #fff;
  }
}

/* コンテンツ
--------------------------------------------------------- */
.l-contents {
  flex: 1 0 auto;
  overflow: hidden;
  padding-bottom: clamp(70px, 9.2vw, 140px);
  opacity: 0;
  animation: io-fade-in 2s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@media (prefers-reduced-motion: reduce), print {
  .l-contents {
    opacity: 1;
    animation: none;
  }
}
.l-contents > .c-breadcrumb + * {
  margin-top: 0;
  padding-top: clamp(24px, 3.2vw, 48px);
}
.l-contents.--no-space-bottom {
  padding-bottom: 0;
}

/* フッターレイアウト
--------------------------------------------------------- */
@media print {
  .l-footer {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* ========================================================================
/*
/* Component
/*
========================================================================= */
/* ドロワー
--------------------------------------------------------- */
.drawer__btn {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1000;
  background: var(--color-main);
  -webkit-user-select: none;
          user-select: none;
  transition: background-color 0.5s;
  width: var(--header-height-mobile);
  height: var(--header-height-mobile);
}
@media print, screen and (min-width: 992px) {
  .drawer__btn {
    display: none;
  }
}
.drawer__btn:not(.js-top-drawer-btn) {
  outline: none !important;
}
.is-drawer-open .drawer__btn {
  background-color: #fff;
}
.drawer__btn-line {
  pointer-events: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: block;
  width: clamp(24px, 4vw, 30px);
  height: 1px;
  margin: auto;
  background: #fff;
  transition: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
}
.is-drawer-open .drawer__btn-line {
  background-color: #5f5f5f;
}
.drawer__btn-line:nth-child(1) {
  transform: translateY(-6px);
}
.is-drawer-open .drawer__btn-line:nth-child(1) {
  transform: rotate(45deg);
}
.is-drawer-open .drawer__btn-line:nth-child(2) {
  opacity: 0;
}
.drawer__btn-line:nth-child(3) {
  transform: translateY(6px);
}
.is-drawer-open .drawer__btn-line:nth-child(3) {
  transform: rotate(-45deg);
}
@media screen and (max-width: 991.98px) {
  .drawer__bg {
    position: fixed;
    top: 0;
    left: 100%;
    z-index: 500;
    overflow-x: hidden;
    width: min(80vw, 450px);
    height: 100vh;
    background-color: #fff;
    transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
    pointer-events: none;
  }
}
@media print, screen and (min-width: 992px) {
  .drawer__bg {
    height: 100%;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__bg::-webkit-scrollbar {
    display: none;
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__bg {
    overflow-y: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    pointer-events: auto;
    transform: translateX(-100%);
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__inner {
    padding: 90px 4vw 140px;
    opacity: 0;
    visibility: hidden;
    transform: translateX(30px);
    transition: opacity 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s, visibility 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s, transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) 0.25s;
  }
}
@media print, screen and (min-width: 992px) {
  .drawer__inner {
    height: 100%;
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__inner {
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__overlay {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 400;
    width: 100%;
    height: 100vh;
    transition: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    -webkit-backdrop-filter: blur(1px);
            backdrop-filter: blur(1px);
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__overlay {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
    background: rgba(0, 0, 0, 0.3);
  }
}

.drawer__btn {
  top: 50%;
  right: clamp(12px, 2.4vw, 20px);
}
@media only screen and (max-width: 767.98px) {
  .drawer__btn {
    right: 4vw;
  }
}
.drawer__btn {
  width: min(2.75rem, var(--header-height-mobile));
  height: min(2.75rem, var(--header-height-mobile));
  transform: translateY(-50%);
  background-color: transparent;
  color: inherit;
}
.drawer__btn:is(:hover, :active, :focus) {
  color: inherit;
}
.drawer__btn-line {
  background-color: currentColor;
  transition-property: transform, opacity;
}
.is-drawer-open .drawer__btn {
  background-color: transparent;
  color: var(--color-txt);
}
@media screen and (max-width: 991.98px) {
  .drawer__bg {
    width: min(90%, 28rem);
    height: 100dvh;
    color: var(--color-txt);
    visibility: hidden;
    transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1), visibility 0.5s;
  }
}
@media screen and (max-width: 991.98px) {
  .is-drawer-open .drawer__bg {
    visibility: visible;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__inner {
    padding: clamp(90px, 14.8vw, 110px) 8% clamp(40px, 7.4vw, 60px);
  }
}
@media only screen and (max-width: 767.98px) {
  .drawer__inner {
    padding-inline: 4vw;
  }
}
@media screen and (max-width: 991.98px) {
  .drawer__overlay {
    height: 100dvh;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .drawer__btn {
    display: none;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .drawer__bg {
    position: static;
    width: 100%;
    height: auto;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .drawer__inner {
    padding: 1.5rem 0 0;
    opacity: 1;
    visibility: visible;
    transform: none;
  }
}

/* グローバルナビ
--------------------------------------------------------- */
@media print, screen and (min-width: 992px) {
  .c-global-nav__items {
    display: flex;
    justify-content: flex-end;
    gap: clamp(10px, 1.5vw, 35px);
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item + .c-global-nav__item {
    margin-top: 10px;
  }
}
.c-global-nav__item > a {
  position: relative;
  display: block;
  text-decoration: none;
  line-height: 1.5;
  transition: background-color 0.3s, color 0.3s;
  color: var(--color-txt);
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item > a {
    padding: 0.9em 1em;
    font-size: 1.0625rem;
    letter-spacing: 0.07em;
    text-align: left;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav__item > a {
    padding: 0.4em 0.6em;
    font-size: clamp(0.938rem, 0.323vw + 0.737rem, 1.125rem);
    letter-spacing: 0.01em;
    text-align: center;
  }
}
.c-global-nav__item > a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item > a::after {
    bottom: 0;
  }
}
.c-global-nav__item > a::after {
  height: 1px;
  background-color: var(--color-main);
  transform: scaleX(0);
  transform-origin: right top;
  transition: transform 0.3s;
}
.c-global-nav .drop-down {
  position: relative;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down.is-open .drop-down__trigger::before {
    content: "\f0d8";
  }
}
.c-global-nav .drop-down.is-open .drop-down__trigger::after {
  transform: scaleX(1);
  transform-origin: left top;
}
.c-global-nav .drop-down__trigger {
  position: relative;
}
.c-global-nav .drop-down__trigger::before {
  content: "\f0d7";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  display: flex;
  align-items: center;
  font-family: var(--font-family-awesome);
  font-weight: 900;
  font-size: 0.7em;
  line-height: 1;
}
.c-global-nav .drop-down__target {
  display: none;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__target {
    position: relative;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav .drop-down__target {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1000;
  }
}
.c-global-nav .drop-down__item + .drop-down__item a {
  border-top: 1px solid #d5d5d5;
}
.c-global-nav .drop-down__item a {
  position: relative;
  display: block;
  padding: 0.6em 1.5em 0.6em 1.2em;
  background-color: #f0f0f0;
  font-weight: 400;
  font-size: 0.875rem;
  text-align: left;
  text-decoration: none;
  color: var(--color-txt);
  line-height: 1.5;
  transition: background-color 0.3s, color 0.3s;
}
.c-global-nav .drop-down__item a::before {
  content: "\f105";
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0.6em;
  margin: auto;
  display: flex;
  align-items: center;
  font-family: var(--font-family-awesome);
  font-weight: 900;
  font-size: 85%;
  color: #959596;
  line-height: 1;
  transition: 0.3s;
}

.c-global-nav {
  font-family: var(--font-family-secondary);
}
.c-global-nav__items {
  gap: clamp(24px, 1.9vw, 30px);
  justify-content: center;
}
.c-global-nav__item > a,
.c-global-nav__item .drop-down__trigger {
  display: block;
  padding: 0.2em 0;
  font-family: inherit;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.04em;
  color: inherit;
  background-color: transparent;
  transition: background-color 0.3s;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item > a,
  .c-global-nav__item .drop-down__trigger {
    width: 100%;
    padding: 0.6em 0;
    text-align: left;
    font-size: 1.125rem;
  }
}
.c-global-nav__item > a::after {
  background-color: currentColor;
}
@media print, screen and (min-width: 992px) {
  .c-global-nav__item > a::after {
    bottom: 0.15em;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item + .c-global-nav__item {
    margin-top: 0.5em;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav__item:is(.is-current, :focus-within) > a::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav__item.is-current > a {
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    padding-bottom: 0.7em;
  }
  .c-global-nav__item.is-current > a::after {
    content: none;
  }
}
@media print and (hover: hover) and (pointer: fine), screen and (hover: hover) and (pointer: fine) and (min-width: 992px) {
  .c-global-nav__item:hover > a::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
}
.c-global-nav .drop-down__trigger::before {
  content: none;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__trigger::after {
    content: none;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__mark {
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.8em;
    height: 0.8em;
    transform: translateY(-50%);
  }
  .c-global-nav .drop-down__mark::before, .c-global-nav .drop-down__mark::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: currentColor;
    -webkit-clip-path: polygon(0 calc(50% - 0.5px), 100% calc(50% - 0.5px), 100% calc(50% + 0.5px), 0 calc(50% + 0.5px));
            clip-path: polygon(0 calc(50% - 0.5px), 100% calc(50% - 0.5px), 100% calc(50% + 0.5px), 0 calc(50% + 0.5px));
  }
  .c-global-nav .drop-down__mark::after {
    transform: rotate(90deg);
    transition: transform 0.3s;
  }
}
@media screen and (max-width: 991.98px) and (prefers-reduced-motion: reduce) {
  .c-global-nav .drop-down__mark::after {
    transition: none;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav .drop-down__mark {
    display: none;
  }
}
.c-global-nav .drop-down__target {
  pointer-events: none;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__target {
    display: none;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav .drop-down__target {
    display: block;
    left: 50%;
    right: auto;
    width: -webkit-max-content;
    width: max-content;
    transform: translateX(-50%);
    padding-top: 1em;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-global-nav .drop-down__target {
    transition: none;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__items {
    padding: 0 0 1em 1em;
    background-color: transparent;
    color: inherit;
  }
}
@media print, screen and (min-width: 992px) {
  .c-global-nav .drop-down__items {
    padding: 0.6em 1.2em;
    background-color: var(--color-txt);
    color: #fff;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down.is-current .drop-down__items {
    padding-top: 0.5em;
  }
}
.c-global-nav .drop-down__item a {
  padding: 0.65em 0 0.65em 1.25em;
  font-family: var(--font-family-primary);
  font-size: 0.875rem;
  line-height: 1.6;
  background-color: transparent;
  color: inherit;
  transition: opacity 0.3s;
}
.c-global-nav .drop-down__item a::before {
  content: none;
}
.c-global-nav .drop-down__item a:is(:focus-visible, :active) {
  opacity: 0.65;
}
@media (hover: hover) and (pointer: fine) {
  .c-global-nav .drop-down__item a:hover {
    opacity: 0.65;
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-global-nav .drop-down__item a {
    transition: none;
  }
}
.c-global-nav .drop-down__item > a::before {
  content: "";
  top: 1.45em;
  bottom: auto;
  left: 0;
  right: auto;
  width: 0.6em;
  height: 1px;
  margin: 0;
  font-size: inherit;
  background-color: currentColor;
  transform: translateY(-50%);
}
.c-global-nav .drop-down__item + .drop-down__item a {
  border-top: 0;
}
.c-global-nav .drop-down__sub-label {
  position: relative;
  display: block;
  margin-top: 0.3em;
  padding-left: 0;
}
.c-global-nav .drop-down__sub-label::before {
  content: "";
  top: 0.8em;
  bottom: auto;
  left: 0;
  right: auto;
  width: 0.3em;
  height: 0.3em;
  margin: 0;
  border-radius: 50%;
  font-size: inherit;
  background-color: currentColor;
  transform: translateY(-50%);
}
@media screen and (min-width: 992px) {
  .c-global-nav .drop-down__item a[aria-current=page] {
    opacity: 0.65;
  }
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down__item a[aria-current=page] {
    text-decoration: none;
    background-color: var(--color-surface);
    margin-left: -1rem;
    padding-left: calc(1rem + 1.25em);
  }
  .c-global-nav .drop-down__item a[aria-current=page]::before {
    left: 1rem;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .c-global-nav .drop-down__trigger {
    display: none;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .c-global-nav .drop-down__target {
    display: block;
    pointer-events: auto;
  }
}
.c-global-nav .drop-down.is-open .drop-down__trigger::before {
  content: none;
}
@media screen and (max-width: 991.98px) {
  .c-global-nav .drop-down.is-open .drop-down__mark::after {
    transform: rotate(0);
  }
}
.c-global-nav .drop-down.is-open .drop-down__target {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
@media print, screen and (min-width: 992px) {
  html:not(.is-top-ready) .c-global-nav .drop-down:focus-within .drop-down__target {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
@media print and (hover: hover) and (pointer: fine), screen and (hover: hover) and (pointer: fine) and (min-width: 992px) {
  html:not(.is-top-ready) .c-global-nav .drop-down:hover .drop-down__target {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* フッターナビ
--------------------------------------------------------- */
.c-footer-nav__items {
  display: flex;
  flex-wrap: wrap;
}
@media print, screen and (min-width: 768px) {
  .c-footer-nav__items {
    justify-content: flex-end;
  }
}
.c-footer-nav__item {
  position: relative;
  line-height: 1.6;
}
@media only screen and (max-width: 767.98px) {
  .c-footer-nav__item:not(:last-of-type) {
    margin-right: 1.1em;
    padding-right: 1.1em;
  }
}
@media print, screen and (min-width: 768px) {
  .c-footer-nav__item:not(:last-of-type) {
    margin-right: 1.8em;
    padding-right: 1.8em;
  }
}
@media print, screen and (min-width: 992px) {
  .c-footer-nav__item:not(:last-of-type) {
    margin-right: 2em;
    padding-right: 2em;
  }
}
@media screen and (min-width: 1200px) {
  .c-footer-nav__item:not(:last-of-type) {
    margin-right: 2.2em;
    padding-right: 2.2em;
  }
}
.c-footer-nav__item:not(:last-of-type)::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0.2em;
  bottom: 0;
  width: 1px;
  height: 1em;
  margin-top: auto;
  margin-bottom: auto;
  background-color: var(--color-txt);
}
.c-footer-nav__item a {
  color: var(--color-txt);
}

.c-footer-nav {
  min-width: 0;
  font-size: 0.875rem;
  line-height: 1.8;
  letter-spacing: 0.08em;
  word-break: keep-all;
}
.c-footer-nav__items {
  display: grid;
  justify-content: start;
}
@media only screen and (max-width: 767.98px) {
  .c-footer-nav__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 4vw;
  }
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .c-footer-nav__items {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}
@media screen and (min-width: 1200px) {
  .c-footer-nav__items {
    width: -webkit-max-content;
    width: max-content;
    max-width: calc(100% + 2rem);
    grid-template-columns: repeat(3, minmax(0, -webkit-max-content));
    grid-template-columns: repeat(3, minmax(0, max-content));
    gap: clamp(2rem, 3.056vw - 0.292rem, 3.375rem);
  }
}
@media print {
  .c-footer-nav__items {
    grid-template-columns: -webkit-max-content -webkit-max-content -webkit-max-content;
    grid-template-columns: max-content max-content max-content;
    gap: clamp(24px, 2.7vw, 54px);
  }
}
@media only screen and (max-width: 767.98px) {
  @container (width < 16rem) {
    .c-footer-nav__items {
      grid-template-columns: 1fr;
      gap: 0;
    }
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 22.5rem) {
    .c-footer-nav__items {
      width: auto;
      max-width: 100%;
      grid-template-columns: 1fr;
      gap: 0;
    }
  }
}
.c-footer-nav__item a {
  color: inherit;
}
@media (hover: hover) and (pointer: fine) {
  .c-footer-nav__item a:hover {
    color: rgba(255, 255, 255, 0.65);
  }
}
@media only screen and (max-width: 767.98px) {
  @container (width < 16rem) {
    .c-footer-nav__item + .c-footer-nav__item {
      margin-top: 2rem;
    }
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 22.5rem) {
    .c-footer-nav__item + .c-footer-nav__item {
      margin-top: 2rem;
    }
  }
}
@media only screen and (max-width: 767.98px) {
  .c-footer-nav__item:last-child {
    grid-column: 1/-1;
  }
}
.c-footer-nav__item:not(:last-of-type) {
  margin-right: 0;
  padding-right: 0;
}
.c-footer-nav__item:not(:last-of-type)::before {
  content: none;
}
.c-footer-nav__subitems {
  margin-top: 1.15em;
}
.c-footer-nav__subitem {
  position: relative;
  padding-left: 1.3em;
}
.c-footer-nav__subitem + .c-footer-nav__subitem {
  margin-top: 1.15em;
}
.c-footer-nav__subitem::before {
  content: "";
  position: absolute;
  top: 0.8em;
  left: 0;
  width: 0.6em;
  height: 1px;
  background-color: currentColor;
}
@media only screen and (max-width: 767.98px) {
  .c-footer-nav__pages {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.15em 4vw;
  }
  @container (width < 16rem) {
    .c-footer-nav__pages {
      grid-template-columns: 1fr;
    }
  }
}
@media print, screen and (min-width: 768px) {
  .c-footer-nav__page + .c-footer-nav__page {
    margin-top: 1.15em;
  }
}

.c-breadcrumb {
  max-width: 1900px;
  margin-inline: auto;
  padding-block: clamp(18px, 2vw, 28px);
}
@media only screen and (max-width: 767.98px) {
  .c-breadcrumb {
    width: 92%;
  }
}
@media print, screen and (min-width: 768px) {
  .c-breadcrumb {
    width: 95%;
  }
}
.c-breadcrumb__items {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-padding-end: 2em;
          padding-inline-end: 2em;
  scroll-padding-inline: 0.25em 2.25em;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2em), transparent);
          mask-image: linear-gradient(to right, #000 calc(100% - 2em), transparent);
  font-size: 0.81rem;
  line-height: 1.6;
}
.c-breadcrumb__items[tabindex]:focus-visible {
  outline-offset: -1px;
}
.c-breadcrumb__items::-webkit-scrollbar {
  display: none;
}
@media print {
  .c-breadcrumb__items {
    flex-wrap: wrap;
    overflow: visible;
    -webkit-padding-end: 0;
            padding-inline-end: 0;
    -webkit-mask-image: none;
            mask-image: none;
  }
}
.c-breadcrumb__separator {
  margin-inline: 1em;
  color: var(--color-line);
}
.c-breadcrumb__item {
  flex: 0 0 auto;
  white-space: nowrap;
}
@media print {
  .c-breadcrumb__item {
    flex: 0 1 auto;
    white-space: normal;
  }
}
.c-breadcrumb__item br {
  display: none;
}
.c-breadcrumb__item a {
  text-decoration: none;
}
@media (hover: hover) and (pointer: fine) {
  .c-breadcrumb__item a:hover {
    text-decoration: underline;
  }
}

@media print, screen and (min-width: 576px) {
  .c-features__items {
    display: grid;
    gap: clamp(16px, 1.8vw, 24px);
  }
}
@media screen and (min-width: 576px) and (max-width: 1399.98px) {
  .c-features__items {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (min-width: 1400px) {
  .c-features__items {
    grid-template-columns: repeat(4, 1fr);
  }
}
.c-features__item {
  border: 1px solid #dedbd6;
  padding: clamp(24px, 2.5vw, 32px) clamp(16px, 1.8vw, 24px);
  background-color: #fff;
}
@media only screen and (max-width: 767.98px) {
  .c-features__item {
    padding-bottom: clamp(32px, 3.2vw, 40px);
  }
}
@media print, screen and (min-width: 576px) {
  @supports (grid-template-rows: subgrid) {
    .c-features__item {
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 2;
      row-gap: 0;
    }
  }
}
@media only screen and (max-width: 575.98px) {
  .c-features__item + .c-features__item {
    margin-top: clamp(16px, 1.8vw, 24px);
  }
}
.c-features__head {
  display: flex;
  align-items: center;
  gap: 0.75em;
  min-height: 3.3em;
  margin-bottom: 0.9em;
  font-size: clamp(1.125rem, 0.321vw + 1.053rem, 1.438rem);
}
.c-features__icon {
  flex: 0 0 auto;
  width: clamp(48px, 4.9vw, 64px);
  height: clamp(48px, 4.9vw, 64px);
  display: grid;
  place-items: center;
}
.c-features__icon:has(img) {
  border-radius: 50%;
  padding: 0.4em;
  background-color: #f2f0eb;
}
.c-features__icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-features__title {
  min-width: 0;
  font-size: inherit;
  font-weight: 500;
  line-height: 1.65;
}
@media only screen and (max-width: 575.98px) {
  .c-features__title:has(> wbr) .c-features__phrase {
    display: inline;
  }
}
.c-features__phrase {
  display: inline-block;
  max-width: 100%;
}
.c-features__body {
  text-align: justify;
}
.c-features__body p + p {
  margin-top: 1em;
}

.c-container {
  max-width: 1900px;
  margin-inline: auto;
}
@media only screen and (max-width: 767.98px) {
  .c-container {
    width: 92%;
  }
}
@media print, screen and (min-width: 768px) {
  .c-container {
    width: 95%;
  }
}

/* セクション
--------------------------------------------------------- */
.c-section {
  margin-top: clamp(80px, 10.5vw, 160px);
}
.c-section:first-child {
  margin-top: 0;
}

.c-page-header {
  position: relative;
  min-height: clamp(240px, 38.5vw, 280px);
  background-color: var(--color-surface);
  color: #fff;
}
@media screen and (max-width: 991.98px) {
  .c-page-header {
    padding-top: var(--header-height-mobile);
  }
}
@media print, screen and (min-width: 992px) {
  .c-page-header {
    min-height: clamp(400px, 31.6vw, 450px);
    padding-top: var(--header-height-desktop);
  }
}
.c-page-header__inner {
  padding-block: clamp(36px, 4.4vw, 64px);
}
@media print, screen and (min-width: 992px) {
  .c-page-header__inner {
    padding-block: clamp(56px, 6.1vw, 84px);
  }
}
.c-page-header__visual {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.c-page-header__visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.c-page-header__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(33, 33, 33, 0.4);
}
@media print {
  .c-page-header__visual::after {
    -webkit-print-color-adjust: exact;
            print-color-adjust: exact;
  }
}
.c-page-header__copy {
  position: relative;
  z-index: 1;
}
.c-page-header__title {
  font-size: clamp(1rem, 0.128vw + 0.971rem, 1.125rem);
  line-height: 1.5;
}
.c-page-header__title::before {
  content: "";
  display: block;
  width: 2.5rem;
  height: 1px;
  margin-bottom: 1.5rem;
  background-color: currentColor;
  opacity: 0.6;
}
.c-page-header__title:has(+ .c-page-header__body) {
  margin-bottom: 1.5em;
}
.c-page-header__catch {
  display: block;
  font-size: clamp(1.75rem, 1.026vw + 1.519rem, 2.75rem);
  line-height: 1.4;
}
.c-page-header__catch.--small {
  font-size: calc(clamp(1.75rem, 1.026vw + 1.519rem, 2.75rem) * 6 / 7);
}
.c-page-header__name {
  display: block;
  font-family: var(--font-family-secondary);
  font-size: clamp(1.75rem, 1.026vw + 1.519rem, 2.75rem);
  font-weight: 400;
  line-height: 1.3;
}
.c-page-header__name:not(.--ja) {
  overflow-wrap: break-word;
}
.c-page-header__name.--ja {
  font-family: var(--font-family-primary);
  font-weight: 500;
}
.c-page-header__name-en {
  overflow-wrap: break-word;
  font-family: var(--font-family-secondary);
  font-weight: 400;
}
@media only screen and (max-width: 767.98px) {
  .c-page-header__catch + .c-page-header__name:not(.--ja) {
    margin-top: 0.2em;
  }
}
.c-page-header__body {
  text-align: justify;
  line-height: 1.95;
  letter-spacing: 0.07em;
}
.c-page-header__phrase {
  display: inline-block;
  max-width: 100%;
}
.c-page-header__en {
  margin-top: 1rem;
  font-family: var(--font-family-secondary);
  font-size: clamp(1rem, 0.128vw + 0.971rem, 1.125rem);
  letter-spacing: 0.1em;
}

/* キャッチコピー
--------------------------------------------------------- */
.c-copy {
  margin-bottom: 1.2em;
  font-weight: 500;
  line-height: 1.5;
  font-size: clamp(1.063rem, 0.641vw + 0.918rem, 1.688rem);
}

/* テーブル
--------------------------------------------------------- */
.c-table {
  width: 100%;
  line-height: 1.7;
  font-size: clamp(0.938rem, 0.096vw + 0.916rem, 1rem);
}
@media only screen and (max-width: 767.98px) {
  .c-table {
    font-size: 1rem;
  }
}
@media print {
  .c-table {
    page-break-inside: avoid;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-table tbody th, .c-table tbody td {
    display: block;
    width: 100%;
  }
}
.c-table th, .c-table td {
  overflow-wrap: break-word;
}
.c-table.--style-a thead {
  border-top: 1px solid var(--color-main);
  border-left: 1px solid var(--color-main);
  border-right: 1px solid var(--color-main);
}
.c-table.--style-a thead th {
  padding: 0.4em 1.4em;
  border-bottom: 1px solid var(--color-main);
  background-color: var(--color-main);
  color: #fff;
  font-weight: 500;
  text-align: center;
}
.c-table.--style-a thead th:not(:last-of-type) {
  border-right: 1px solid color-mix(in srgb, var(--color-main), black 10%);
}
.c-table.--style-a tbody {
  border-top: 1px solid #e0e1e1;
  border-left: 1px solid #e0e1e1;
  border-right: 1px solid #e0e1e1;
}
.c-table.--style-a tbody th {
  border-bottom: 1px solid #e0e1e1;
}
@media print, screen and (min-width: 768px) {
  .c-table.--style-a tbody th {
    border-right: 1px solid #e0e1e1;
  }
}
.c-table.--style-a tbody td {
  border-bottom: 1px solid #e0e1e1;
  border-right: 1px solid #e0e1e1;
}
@media print, screen and (min-width: 768px) {
  .c-table.--style-a th, .c-table.--style-a td {
    padding: 0.8em 1.4em;
  }
}
.c-table.--style-a th {
  background-color: var(--color-base);
  font-weight: 500;
}
@media only screen and (max-width: 767.98px) {
  .c-table.--style-a th {
    padding: 0.3em 1.4em;
    text-align: center;
  }
}
.c-table.--style-a td {
  background-color: #fff;
}
@media only screen and (max-width: 767.98px) {
  .c-table.--style-a td {
    padding: 1em 1.4em;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-table.--style-a.--lineup tbody th, .c-table.--style-a.--lineup tbody td {
    display: table-cell;
  }
}
.c-table.--style-a.--lineup tbody th {
  border-right: 1px solid #e0e1e1;
}
@media only screen and (max-width: 767.98px) {
  .c-table.--style-a.--lineup tbody th {
    width: 30%;
    text-align: left;
  }
}
@media print, screen and (min-width: 768px) {
  .c-table.--company tbody th {
    width: 25%;
  }
}
.c-table.--contact {
  margin-top: clamp(30px, 4vw, 40px);
}
.c-table.--contact tbody th, .c-table.--contact tbody td {
  position: relative;
}
@media only screen and (max-width: 767.98px) {
  .c-table.--contact tbody th, .c-table.--contact tbody td {
    padding-left: 0.8em;
    padding-right: 0.8em;
  }
}
@media print, screen and (min-width: 768px) {
  .c-table.--contact tbody th, .c-table.--contact tbody td {
    padding: 1.2em 1em;
  }
}
.c-table.--contact tbody th .c-badge, .c-table.--contact tbody td .c-badge {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}
.c-table.--contact tbody th:has(.c-badge), .c-table.--contact tbody td:has(.c-badge) {
  padding-right: 4em;
}
@media only screen and (max-width: 767.98px) {
  .c-table.--contact tbody th {
    text-align: left;
  }
}
@media print, screen and (min-width: 768px) {
  .c-table.--contact tbody th {
    width: clamp(240px, 24.4vw, 290px);
  }
}
@media only screen and (max-width: 767.98px) {
  .c-table.--contact tbody td {
    display: block;
  }
}

/* バッジ
--------------------------------------------------------- */
.c-badge {
  display: inline-block;
  background-color: #87735a;
  color: #fff;
  padding: 0.2em 0.6em;
  line-height: 1.4;
  font-weight: normal;
  font-size: 0.625rem;
}

@media only screen and (max-width: 767.98px) {
  .c-heading {
    margin-bottom: 1.8em;
  }
}
@media print, screen and (min-width: 768px) {
  .c-heading {
    margin-bottom: 2.5em;
  }
}
.c-heading:not(.--label) + * {
  margin-top: 0 !important;
}
.c-heading__en {
  font-size: clamp(1.625rem, 0.897vw + 1.423rem, 2.5rem);
  font-weight: 700;
  line-height: 1.5;
}
.c-heading__title {
  font-weight: 500;
  font-size: clamp(0.875rem, 0.385vw + 0.788rem, 1.25rem);
  line-height: 1.5;
}
.c-heading__small {
  font-size: 0.8em;
}
.c-heading.--center {
  width: -webkit-fit-content;
  width: fit-content;
  margin-inline: auto;
  text-align: left;
}
.c-heading.--label {
  font-size: inherit;
  margin-bottom: 0;
}
.c-heading.--label .c-heading__en {
  display: block;
  font-family: var(--font-family-secondary);
  font-size: 1.125rem;
  font-weight: 400;
  margin-top: -0.1em;
  margin-left: -0.06em;
  line-height: 1;
  letter-spacing: 0.06em;
}
.c-heading.--label .c-heading__title {
  display: block;
  font-size: clamp(1.5rem, 0.897vw + 1.298rem, 2.375rem);
  line-height: 1;
  letter-spacing: 0.14em;
}
@media only screen and (max-width: 767.98px) {
  .c-heading.--label .c-heading__title {
    line-height: 1.4;
  }
}
.c-heading.--label .c-heading__en + .c-heading__title {
  margin-top: 0.85em;
}
@media only screen and (max-width: 767.98px) {
  .c-heading.--label .c-heading__en + .c-heading__title {
    margin-top: 0.65em;
  }
}
.c-heading.--label .c-heading__title-ja {
  font-size: 1em;
  letter-spacing: 0.04em;
}
.c-heading.--label.--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85em;
}
.c-heading.--label.--inline .c-heading__title {
  margin-top: 0;
  font-size: clamp(0.875rem, 0.128vw + 0.846rem, 1rem);
  font-weight: 700;
  letter-spacing: 0.04em;
}
.c-heading.--label.--section {
  font-size: clamp(1.5rem, 0.897vw + 1.298rem, 2.375rem);
  margin-bottom: 2em;
}
@media only screen and (max-width: 767.98px) {
  .c-heading.--label.--section {
    margin-bottom: 1.7em;
  }
}
@media print {
  .c-heading.--label.--section {
    break-inside: avoid;
    break-after: avoid;
  }
}
.c-heading.--label.--section .c-heading__title {
  font-size: inherit;
  letter-spacing: 0.14em;
}
.c-heading.--label.--section.--subsection {
  display: flex;
  container-type: inline-size;
  align-items: center;
  justify-content: center;
  gap: 0.75em;
  margin-bottom: 1.25em;
  font-size: clamp(1.25rem, 0.385vw + 1.163rem, 1.625rem);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-align: center;
}
.c-heading.--label.--section.--subsection .c-heading__title {
  line-height: inherit;
  letter-spacing: inherit;
  overflow-wrap: normal;
}
.c-heading.--label.--section.--subsection::before, .c-heading.--label.--section.--subsection::after {
  content: "";
  flex: 0 1 1.5em;
  height: 1px;
  background-color: #b9a88c;
}
.c-heading.--label.--wide-tracking .c-heading__en {
  letter-spacing: 0.1em;
}

/* メインビジュアル */
.c-hero {
  position: relative;
  color: #fff;
}
@media print {
  .c-hero {
    break-after: page;
  }
}
.c-hero__scene {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  height: 100dvh;
}
@media screen and (max-width: 991.98px) {
  .c-hero__scene {
    height: 100svh;
  }
}
@media print {
  .c-hero__scene {
    position: relative;
    z-index: 0;
    height: 60vh;
  }
}
.c-hero__slider {
  height: 100%;
  background-color: var(--color-main);
}
.c-hero__slider.swiper-fade .swiper-slide {
  transition-property: opacity;
}
.c-hero__slider::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: rgba(33, 33, 33, 0.3);
  pointer-events: none;
  transition: background-color 0.5s;
}
@media print {
  .c-hero__slider::after {
    -webkit-print-color-adjust: exact;
            print-color-adjust: exact;
  }
}
.is-darken .c-hero__slider::after {
  background-color: rgba(33, 33, 33, 0.7);
}
.c-hero__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-hero__image.--bath {
  object-position: 80% center;
}
.c-hero__image.--courtyard {
  object-position: 80% center;
}
.c-hero__image.--washroom {
  object-position: 10% center;
}
.c-hero__image {
  transition: transform 7s 1s ease-out;
}
@media (prefers-reduced-motion: reduce) {
  .c-hero__image {
    transition: none;
  }
}
.c-hero .swiper-slide-active .c-hero__image {
  transform: scale(1.04);
  transition-delay: 0s;
}
@media (prefers-reduced-motion: reduce) {
  .c-hero .swiper-slide-active .c-hero__image {
    transform: none;
  }
}
.c-hero__logos {
  position: absolute;
  right: max(1.4%, (100% - 2000px) / 2 + 1.75rem);
  bottom: clamp(22px, 2.7vw, 40px);
  z-index: 2;
  width: clamp(104px, 10.2vw, 128px);
  aspect-ratio: 128/28;
}
.c-hero__logo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 0.5s;
}
.c-hero__logo.is-appeared {
  opacity: 0.6;
}
.c-hero__content {
  position: relative;
  width: 100%;
  max-width: 2000px;
  margin-inline: auto;
  margin-top: -100dvh;
}
@media screen and (max-width: 991.98px) {
  .c-hero__content {
    margin-top: -100svh;
  }
}
@media print {
  .c-hero__content {
    margin-top: -60vh;
  }
}
.c-hero__first {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  height: 100dvh;
}
@media screen and (max-width: 991.98px) {
  .c-hero__first {
    height: 100svh;
  }
}
@media print {
  .c-hero__first {
    position: relative;
    height: 60vh;
  }
}
html:not(.is-top-ready) .c-hero__first {
  position: relative;
}
.c-hero__copy {
  position: absolute;
  top: 50%;
  left: 5%;
  right: 5%;
}
@media only screen and (max-width: 767.98px) {
  .c-hero__copy {
    left: 4vw;
    right: 4vw;
  }
}
.c-hero__copy {
  transform: translateY(-39.3%);
  text-shadow: 0 0 0.1em rgba(33, 33, 33, 0.25);
  transition: opacity 0.4s;
}
@media print {
  .c-hero__copy {
    -webkit-print-color-adjust: exact;
            print-color-adjust: exact;
  }
}
.c-hero__copy.is-disappeared {
  opacity: 0;
}
@media print {
  .c-hero__copy.is-disappeared {
    opacity: 1;
  }
}
.c-hero__en {
  margin-bottom: 0.2em;
  font-family: var(--font-family-secondary);
  line-height: 1.225;
  letter-spacing: 0.0475em;
  text-indent: -0.0625em;
}
.c-hero__en::first-line {
  letter-spacing: 0.0455em;
}
@media only screen and (max-width: 767.98px) {
  .c-hero__en {
    margin-bottom: 0.4em;
  }
}
@media screen and (max-width: 991.98px) {
  .c-hero__en {
    font-size: clamp(1.875rem, 2.848vw + 1.234rem, 3rem);
  }
}
@media print, screen and (min-width: 992px) {
  .c-hero__en {
    font-size: clamp(3rem, 3.448vw + 0.862rem, 5rem);
  }
}
.c-hero__ja {
  word-break: keep-all;
  font-size: clamp(0.75rem, 0.385vw + 0.663rem, 1.125rem);
  font-weight: 500;
  letter-spacing: 0.092em;
  text-indent: -0.11em;
}
@media only screen and (max-width: 767.98px) {
  .c-hero__ja {
    font-size: clamp(0.813rem, 0.321vw + 0.74rem, 1.125rem);
  }
}
.c-hero__lead {
  height: 160dvh;
}
@media screen and (max-width: 991.98px) {
  .c-hero__lead {
    height: 160svh;
  }
}
@media print {
  .c-hero__lead {
    height: auto;
    background-color: #fff;
    color: var(--color-main);
  }
}
.c-hero__lead-inner {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  display: grid;
  align-items: center;
  height: 100dvh;
}
@media screen and (max-width: 991.98px) {
  .c-hero__lead-inner {
    height: 100svh;
  }
}
@media print {
  .c-hero__lead-inner {
    position: relative;
    height: auto;
    padding-block: 3rem;
  }
}
.c-hero__lead-content {
  container-type: inline-size;
  width: 90%;
}
@media only screen and (max-width: 767.98px) {
  .c-hero__lead-content {
    width: 92%;
  }
}
.c-hero__lead-content {
  margin-inline: auto;
  font-weight: 500;
  line-height: 2;
  transform: translateY(-0.45em);
}
.c-hero__lead-content p {
  text-align: justify;
  margin-left: -0.0625em;
  line-height: 2.0625;
  letter-spacing: 0.119em;
}
.c-hero__lead-content p::first-line {
  letter-spacing: 0.108em;
}
.c-hero__lead-title {
  word-break: keep-all;
  margin-left: -0.0833em;
  margin-bottom: 0.65em;
  font-size: clamp(1.438rem, 0.833vw + 1.25rem, 2.25rem);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.124em;
}
@media only screen and (max-width: 767.98px) {
  .c-hero__lead-title {
    margin-bottom: 1em;
  }
}
@container (width < 12rem) {
  .c-hero__lead-title {
    letter-spacing: 0.03em;
  }
}
.c-hero__lead-title::first-line {
  letter-spacing: 0.07em;
}

/* ローディング
--------------------------------------------------------- */
.c-loading {
  position: fixed;
  inset: 0;
  z-index: 9999;
  margin: auto;
  background-color: var(--color-base);
}
.is-hero-ready .c-loading {
  pointer-events: none;
  animation: fadeOut 0.8s linear forwards;
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
    visibility: hidden;
  }
}
@media (prefers-reduced-motion: reduce) {
  .is-hero-ready .c-loading {
    animation: none;
    opacity: 0;
    visibility: hidden;
  }
}
@media print {
  .c-loading {
    display: none;
  }
}

/* ボタン
--------------------------------------------------------- */
.c-btn {
  position: relative;
  z-index: 0;
  overflow: hidden;
  display: inline-block;
  background-color: transparent;
  text-align: center;
  text-decoration: none;
  line-height: 1.5;
  font-size: inherit;
  color: inherit;
  transition: background-color 0.3s, color 0.3s;
  -webkit-appearance: none;
          appearance: none;
  cursor: pointer;
}
.c-btn.--square {
  display: inline-flex;
  align-items: center;
  gap: 0.65em;
  overflow: visible;
  font-family: var(--font-family-secondary);
  font-size: 1.125rem;
  letter-spacing: 0.06em;
}
.c-btn.--square .c-btn__label {
  min-width: 0;
}
.c-btn.--square .c-btn__square {
  position: relative;
  display: grid;
  place-items: center;
  width: 1.75rem;
  aspect-ratio: 1;
}
.c-btn.--square .c-btn__square::before {
  content: "";
  position: absolute;
  width: 0.875rem;
  aspect-ratio: 1;
  background-color: #a2a1a4;
  transition: transform 0.3s;
}
.c-btn.--square .c-btn__arrow {
  position: relative;
  width: 0.75rem;
  aspect-ratio: 24/14;
  background-color: #fff;
  -webkit-mask: var(--icon-arrow) center/contain no-repeat;
          mask: var(--icon-arrow) center/contain no-repeat;
  opacity: 0;
  transition: opacity 0.3s;
}
.c-btn.--square.--ja {
  font-family: var(--font-family-primary);
}
.c-btn.--square:is(:hover, :active, :focus) {
  color: inherit;
}
.c-btn.--square:focus-visible .c-btn__square::before {
  transform: scale(2);
}
.c-btn.--square:focus-visible .c-btn__arrow {
  opacity: 1;
}
.c-btn.--square.--dark-square .c-btn__square::before {
  background-color: #818181;
}
.c-btn.--square.--large {
  font-size: inherit;
  gap: 0.4em;
}
.c-btn.--square.--large .c-btn__square {
  width: 1.75em;
}
.c-btn.--square.--large .c-btn__square::before {
  width: 0.714em;
}
.c-btn.--square.--large .c-btn__arrow {
  width: 0.625em;
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--square:hover .c-btn__square::before {
    transform: scale(2);
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--square:hover .c-btn__arrow {
    opacity: 1;
  }
}
.c-btn.--secondary {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 1.4vw, 21px);
  max-width: 100%;
  min-height: clamp(44px, 4.2vw, 52px);
  padding: clamp(9px, 0.9vw, 12px) clamp(16px, 1.8vw, 24px);
  background-color: #fff;
  border: 1px solid #d8d8d8;
  border-radius: 10em;
  text-align: left;
  font-size: clamp(0.875rem, 0.192vw + 0.832rem, 1.063rem);
  letter-spacing: 0.06em;
  color: var(--color-main);
}
.c-btn.--secondary .c-btn__label {
  min-width: 0;
}
.c-btn.--secondary .c-btn__arrow {
  flex: 0 0 1em;
  width: 1em;
  aspect-ratio: 24/14;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center/contain no-repeat;
          mask: var(--icon-arrow) center/contain no-repeat;
  transition: transform 0.3s;
}
.c-btn.--secondary:is(:active, :focus-visible) {
  background-color: var(--color-main);
  color: #fff;
}
.c-btn.--secondary:focus-visible {
  outline: 2px solid var(--color-main);
  outline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--secondary:hover {
    background-color: var(--color-main);
    color: #fff;
  }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .c-btn.--secondary:hover .c-btn__arrow {
    transform: translateX(0.2em);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-btn.--secondary {
    transition: none;
  }
  .c-btn.--secondary .c-btn__arrow {
    transition: none;
  }
}
.c-btn.--pdf {
  display: flex;
  align-items: center;
  gap: 0.65em;
  padding: 0.75em 0.8em;
  background-color: #fff;
  border: 1px solid #d8d8d8;
  border-radius: 0.5em;
  text-align: left;
  font-size: 0.875rem;
  font-weight: 500;
  color: #333;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}
@media (pointer: coarse) {
  .c-btn.--pdf {
    min-height: 44px;
  }
}
.c-btn.--pdf > span:not(.c-btn__document-arrow) {
  min-width: 0;
}
.c-btn.--pdf .c-btn__pdf {
  flex-shrink: 0;
  width: 1.25em;
  height: 1.5em;
  object-fit: contain;
  filter: grayscale(1);
}
.c-btn.--pdf .c-btn__document-arrow {
  display: grid;
  place-items: center;
  flex-shrink: 0;
  width: 1.5em;
  aspect-ratio: 1;
  margin-left: auto;
  border-radius: 0.2em;
  background-color: #4b4b4b;
  color: #fff;
}
.c-btn.--pdf .c-btn__document-arrow::before {
  content: "";
  width: 0.75em;
  aspect-ratio: 24/14;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center/contain no-repeat;
          mask: var(--icon-arrow) center/contain no-repeat;
}
@media (prefers-reduced-motion: no-preference) {
  .c-btn.--pdf .c-btn__document-arrow::before {
    transition: transform 0.3s;
  }
}
.c-btn.--pdf:focus-visible {
  border-color: var(--color-main);
  outline-color: var(--color-main);
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--pdf:hover {
    border-color: #777;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--pdf:hover .c-btn__document-arrow::before {
    transform: translateX(0.12rem);
  }
}
.c-btn.--primary {
  background-color: var(--color-main);
  color: #fff;
}
@media only screen and (max-width: 767.98px) {
  .c-btn.--primary {
    padding: 0.8em 1.7em;
    font-size: 1rem;
  }
}
@media print, screen and (min-width: 768px) {
  .c-btn.--primary {
    padding: 0.9em 2em;
    font-size: clamp(0.938rem, 0.087vw + 0.896rem, 1rem);
  }
}
.c-btn.--primary:is(:hover, :active, :focus) {
  background-color: var(--color-sub);
  color: #fff;
}
.c-btn.--arrow-right, .c-btn.--arrow-left {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7em;
}
.c-btn.--arrow-right .c-btn__arrow, .c-btn.--arrow-left .c-btn__arrow {
  flex: 0 0 1em;
  width: 1em;
  aspect-ratio: 24/14;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center/contain no-repeat;
          mask: var(--icon-arrow) center/contain no-repeat;
  transition: transform 0.3s;
}
.c-btn.--arrow-right:focus-visible, .c-btn.--arrow-left:focus-visible {
  outline: 2px solid var(--color-main);
  outline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--arrow-right:hover .c-btn__arrow {
    transform: translateX(0.25em);
  }
}
.c-btn.--arrow-left .c-btn__arrow {
  order: -1;
  transform: rotate(180deg);
}
@media (hover: hover) and (pointer: fine) {
  .c-btn.--arrow-left:hover .c-btn__arrow {
    transform: translateX(-0.25em) rotate(180deg);
  }
}
.c-btn.--back {
  background-color: #aaaaaa;
}
.c-btn.--back:is(:hover, :active, :focus) {
  background-color: #858585;
}

.c-catalog {
  background: url("../images/top/bg.jpg") center/cover;
}
.c-catalog__inner {
  padding-block: clamp(56px, 6.8vw, 100px);
}
@media screen and (min-width: 1200px) {
  .c-catalog__inner {
    display: grid;
    align-items: center;
    column-gap: clamp(24px, 3.2vw, 48px);
    grid-template-columns: minmax(0, clamp(520px, 34.6vw, 560px)) minmax(0, calc((100% - clamp(24px, 3.2vw, 48px)) * 6 / 11));
  }
}
.c-catalog__content > .c-heading.--label.--section {
  margin-bottom: 1.25em;
}
.c-catalog__body {
  text-align: justify;
  text-wrap: pretty;
}
@media only screen and (max-width: 767.98px) {
  .c-catalog__body {
    letter-spacing: 0;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-catalog__body br {
    display: none;
  }
}
.c-catalog__body p + p {
  margin-top: 1em;
}
.c-catalog__items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(16px, 1.8vw, 24px);
  width: 100%;
  margin-top: clamp(40px, 6.1vw, 100px);
}
@media print, screen and (min-width: 992px) {
  .c-catalog__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .c-catalog__items {
    margin-top: 0;
  }
}
.c-catalog__item {
  container-type: inline-size;
  position: relative;
  width: 100%;
}
.c-catalog__link {
  overflow: hidden;
}
.c-catalog__link img {
  transition: transform 0.4s;
}
@media screen and (hover: hover) and (pointer: fine) {
  .c-catalog__link:hover img {
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-catalog__link img {
    transition: none;
  }
}
.c-catalog__link {
  display: block;
  color: inherit;
  text-decoration: none;
}
.c-catalog__link:focus-visible {
  outline: 2px solid var(--color-main);
  outline-offset: 4px;
}
@media (hover: hover) and (pointer: fine) {
  .c-catalog__link:hover .c-btn.--pdf {
    border-color: #777;
  }
  .c-catalog__link:hover .c-btn__document-arrow::before {
    transform: translateX(0.12rem);
  }
}
.c-catalog__image {
  aspect-ratio: 3/4;
}
.c-catalog__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-catalog__button {
  position: absolute;
  font-size: clamp(0.625rem, 7cqi, 0.8125rem);
  left: 1em;
  bottom: 1em;
  width: calc(100% - 2em);
}
.c-catalog__button > .c-btn.--pdf {
  flex-wrap: nowrap;
  padding: 0.5em 0.8em;
  font-size: inherit;
}
@container (width < 12rem) {
  .c-catalog__button {
    left: 0.5em;
    bottom: 0.5em;
    width: calc(100% - 1em);
  }
  .c-catalog__button > .c-btn.--pdf {
    gap: 0.3em;
    padding-inline: 0.5em;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-catalog__button {
    font-size: clamp(0.625rem, 7cqi + 0.125rem, 0.875rem);
  }
  .c-catalog__button > .c-btn.--pdf {
    gap: 4px;
    padding: 0.2em 6px;
    line-height: 1.4;
  }
}
@media only screen and (max-width: 767.98px) and (pointer: coarse) {
  .c-catalog__button > .c-btn.--pdf {
    min-height: 36px;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-catalog__button > .c-btn.--pdf .c-btn__pdf {
    width: 15px;
    height: 18px;
  }
  .c-catalog__button > .c-btn.--pdf .c-btn__document-arrow {
    width: 18px;
  }
  .c-catalog__button > .c-btn.--pdf .c-btn__document-arrow::before {
    width: 9px;
  }
}

.c-lead {
  margin-block: clamp(56px, 7.3vw, 110px);
}
@media print, screen and (min-width: 992px) {
  .c-lead {
    text-align: center;
  }
}
.c-lead .c-heading {
  text-align: left;
}
@media print, screen and (min-width: 992px) {
  .c-lead.--center-desktop .c-heading {
    text-align: center;
  }
}
.c-lead__catch {
  margin-bottom: 1.25em;
  font-size: clamp(1.5rem, 0.769vw + 1.327rem, 2.25rem);
  font-weight: 500;
  line-height: 1.7;
}
.c-lead__body {
  text-align: justify;
}
@media print, screen and (min-width: 992px) {
  .c-lead__body {
    text-align: inherit;
  }
}
@media print, screen and (min-width: 768px) {
  .c-lead__body {
    font-size: clamp(0.938rem, 0.192vw + 0.894rem, 1.125rem);
  }
}
.c-lead__body {
  line-height: 2.3;
  text-wrap: pretty;
}
.c-lead__body p + p {
  margin-top: 1em;
}

.c-picture-band {
  background: url("../images/top/bg.jpg") center/cover;
}
@media print, screen and (min-width: 992px) {
  .c-picture-band.--center {
    text-align: center;
  }
}
.c-picture-band.--center .c-picture-band__inner {
  display: block;
}
@media print, screen and (min-width: 992px) {
  .c-picture-band.--center .c-picture-band__body {
    text-align: center;
  }
}
.c-picture-band__inner {
  padding-block: clamp(56px, 6.8vw, 100px);
}
@media print, screen and (min-width: 992px) {
  .c-picture-band__inner {
    display: grid;
    grid-template-columns: 2fr 3fr;
    align-items: center;
    column-gap: clamp(32px, 4.5vw, 100px);
    min-height: 10rem;
  }
}
@media print, screen and (min-width: 992px) {
  .c-picture-band__inner .c-heading {
    margin-bottom: 0;
  }
}
.c-picture-band__body {
  text-align: justify;
  line-height: 1.95;
  text-wrap: pretty;
}
@media screen and (max-width: 991.98px) {
  .c-picture-band__body {
    text-align: justify;
  }
}
.c-picture-band__body p + p {
  margin-top: 1em;
}

.c-category-nav {
  padding: clamp(16px, 2.3vw, 36px);
  background-color: var(--color-surface);
}
.c-category-nav__toggle {
  position: relative;
  padding: 0.8em 2.8em 0.8em 1.2em;
  border-radius: 2em;
  background-color: #fff;
  font-size: clamp(1rem, 0.256vw + 0.942rem, 1.25rem);
  font-weight: 500;
  line-height: 1.6;
  text-decoration: none;
}
@media print, screen and (min-width: 768px) {
  .c-category-nav__toggle {
    display: none;
  }
}
.c-category-nav__toggle .c-category-nav__mark {
  position: absolute;
  right: 1.2em;
  top: 50%;
  width: 0.8em;
  height: 0.8em;
  transform: translateY(-50%);
}
.c-category-nav__toggle .c-category-nav__mark::before, .c-category-nav__toggle .c-category-nav__mark::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: currentColor;
  -webkit-clip-path: polygon(0 calc(50% - 0.5px), 100% calc(50% - 0.5px), 100% calc(50% + 0.5px), 0 calc(50% + 0.5px));
          clip-path: polygon(0 calc(50% - 0.5px), 100% calc(50% - 0.5px), 100% calc(50% + 0.5px), 0 calc(50% + 0.5px));
}
.c-category-nav__toggle .c-category-nav__mark::after {
  transform: rotate(90deg);
  transition: transform 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .c-category-nav__toggle .c-category-nav__mark::after {
    transition: none;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-category-nav__toggle:not(.is-accordion-ready) {
    display: none;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-category-nav__toggle.is-accordion-ready {
    display: block;
  }
}
.c-category-nav__toggle.is-open .c-category-nav__mark::after {
  transform: rotate(0);
}
.c-category-nav__toggle:focus-visible {
  outline-offset: 0.25em;
}
@media only screen and (max-width: 767.98px) {
  .c-category-nav__panel {
    padding-top: 1.25em;
  }
}
@media print, screen and (min-width: 768px) {
  .c-category-nav__panel {
    display: block !important;
  }
}
@media only screen and (max-width: 767.98px) {
  .is-accordion-ready + .c-category-nav__panel {
    display: none;
  }
}
.c-category-nav__list {
  display: grid;
  gap: 0.75em 1em;
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-category-nav__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
  .c-category-nav__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .c-category-nav__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.c-category-nav__item {
  max-width: 100%;
}
.c-category-nav__item a {
  position: relative;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0.75em 3em 0.75em 1.4em;
  border: 1px solid rgba(33, 33, 33, 0.08);
  border-radius: 3em;
  background-color: #fff;
  font-size: clamp(0.875rem, 0.256vw + 0.817rem, 1.125rem);
  line-height: 1.7;
  letter-spacing: 0.04em;
  text-decoration: none;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}
.c-category-nav__item a .c-category-nav__arrow {
  position: absolute;
  inset-block: 0;
  right: 1.2em;
  width: 1em;
  aspect-ratio: 24/14;
  margin-block: auto;
  background-color: currentColor;
  -webkit-mask: var(--icon-arrow) center/contain no-repeat;
          mask: var(--icon-arrow) center/contain no-repeat;
  transition: transform 0.3s;
}
.c-category-nav__item a:focus-visible {
  outline-offset: 0.25em;
  border-color: var(--color-main);
  background-color: var(--color-main);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .c-category-nav__item a:hover {
    border-color: var(--color-main);
    background-color: var(--color-main);
    color: #fff;
  }
}
@media (hover: hover) and (pointer: fine) {
  .c-category-nav__item a:hover .c-category-nav__arrow {
    transform: translateX(0.2em);
  }
}
.c-category-nav__item:first-child a {
  font-family: var(--font-family-secondary);
  letter-spacing: 0.08em;
}
.c-category-nav__item.is-current a {
  border-color: var(--color-main);
  background-color: var(--color-main);
  color: #fff;
}

.c-article-row {
  position: relative;
  padding: clamp(24px, 3.5vw, 56px);
  background: url("../images/top/bg.jpg") center/cover;
}
@media print, screen and (min-width: 768px) {
  .c-article-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    column-gap: clamp(32px, 3.8vw, 70px);
  }
}
@media print, screen and (min-width: 768px) {
  .c-article-row__content {
    min-width: 0;
    margin-top: auto;
    margin-bottom: auto;
  }
}
.c-article-row__content:only-child {
  grid-column: 1/-1;
}
.c-article-row__category {
  display: inline-block;
  padding: 0.3em 1em;
  background-color: var(--color-main);
  color: #fff;
  font-size: 0.88rem;
  line-height: 1.7;
  margin-bottom: 1.4em;
}
.c-article-row__title {
  margin-bottom: 2em;
  font-size: clamp(1.375rem, 0.385vw + 1.288rem, 1.75rem);
  font-weight: 500;
  line-height: 1.6;
}
@media only screen and (max-width: 767.98px) {
  .c-article-row__title {
    margin-bottom: 1em;
  }
}
.c-article-row__image {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 2/1;
  background-color: #fff;
  color: var(--color-line);
}
@media only screen and (max-width: 767.98px) {
  .c-article-row__image {
    height: clamp(180px, 55.1vw, 420px);
    aspect-ratio: auto;
    margin-top: 2.5em;
  }
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .c-article-row__image {
    width: 100%;
    min-width: 0;
    min-height: clamp(200px, 21.3vw, 220px);
  }
}
.c-article-row__image a {
  overflow: hidden;
}
.c-article-row__image a img {
  transition: transform 0.4s;
}
@media screen and (hover: hover) and (pointer: fine) {
  .c-article-row__image a:hover img {
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .c-article-row__image a img {
    transition: none;
  }
}
.c-article-row__image a {
  position: absolute;
  inset: 0;
}
.c-article-row__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.c-article-row__action {
  text-align: right;
}
.c-article-row__action > a {
  position: static;
}
.c-article-row__action > a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
@media (hover: hover) and (pointer: fine) {
  .c-article-row:has(.c-article-row__action a):hover .c-article-row__image img {
    transform: scale(1.05);
  }
  .c-article-row:has(.c-article-row__action a):hover .c-btn__square::before {
    transform: scale(2);
  }
  .c-article-row:has(.c-article-row__action a):hover .c-btn__arrow {
    opacity: 1;
  }
}

/* ブランド紹介：写真・紹介文・特長・詳細導線 */
.c-brand-card {
  display: grid;
  padding: clamp(6px, 0.7vw, 10px) clamp(12px, 1.4vw, 20px);
}
@media only screen and (max-width: 767.98px) {
  .c-brand-card {
    padding-inline: 4vw;
  }
}
.c-brand-card {
  background-color: var(--color-surface);
  position: -webkit-sticky;
  position: sticky;
  top: min(0px, 100dvh - var(--brand-card-height, 0px));
}
@media screen and (max-width: 991.98px) {
  .c-brand-card {
    top: min(0px, 100svh - var(--brand-card-height, 0px));
  }
}
@media screen and (min-width: 768px) {
  .c-brand-card {
    min-height: 100dvh;
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-brand-card {
    min-height: 100svh;
  }
}
@media print, screen and (min-width: 992px) {
  .c-brand-card {
    grid-template-columns: minmax(0, 1fr) minmax(min(34rem, 60%), 1fr);
    column-gap: clamp(20px, 2.1vw, 40px);
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-brand-card {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    column-gap: clamp(20px, 3vw, 32px);
  }
}
@media print {
  .c-brand-card {
    position: static;
    break-inside: avoid;
  }
}
.c-brand-card__image {
  position: relative;
  overflow: hidden;
}
.c-brand-card__photo {
  width: 100%;
  aspect-ratio: 960/820;
  object-fit: cover;
}
@media print, screen and (min-width: 768px) {
  .c-brand-card__photo {
    height: 100%;
  }
}
.c-brand-card__photo.--grespania {
  scale: 1.022;
}
.c-brand-card__photo.--coverlam {
  scale: 1.017;
}
.c-brand-card__photo.--baldocer {
  scale: 1.031;
}
.c-brand-card__mark {
  position: absolute;
  left: 2.9166666667%;
  bottom: 4.6341463415%;
  object-fit: contain;
  object-position: left center;
}
.c-brand-card__mark.--grespania {
  width: 22.1875%;
}
.c-brand-card__mark.--coverlam {
  width: 27.0833333333%;
  bottom: 3.4146341463%;
}
.c-brand-card__mark.--baldocer {
  width: 20.8333333333%;
}
.c-brand-card__content {
  display: grid;
  grid-template-rows: auto 1fr auto;
}
@media only screen and (max-width: 767.98px) {
  .c-brand-card__content {
    padding: clamp(26px, 5.5vw, 48px) 0;
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-brand-card__content {
    padding: clamp(24px, 3.4vw, 36px) clamp(16px, 2.3vw, 24px);
  }
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__content {
    padding: clamp(36px, 6.8vw, 120px) clamp(28px, 2.3vw, 40px) clamp(26px, 2.8vw, 56px) clamp(28px, 2.3vw, 40px);
  }
}
.c-brand-card__identity, .c-brand-card__features {
  display: grid;
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__identity {
    grid-template-columns: 18% 82%;
  }
}
.c-brand-card__label {
  font-family: var(--font-family-secondary);
  font-size: 0.875rem;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and (max-width: 991.98px) {
  .c-brand-card__label {
    margin-bottom: 1.25em;
  }
}
.c-brand-card__name {
  container-type: inline-size;
}
@media screen and (min-width: 1400px) {
  .c-brand-card__name {
    padding-right: clamp(0px, 100% - 35rem, 22%);
  }
}
.c-brand-card__logo {
  margin-bottom: 1.6em;
  line-height: 1;
  text-align: center;
}
.c-brand-card__logo img {
  max-width: 100%;
}
.c-brand-card__logo.--grespania img {
  width: clamp(170px, 24.4vw, 387px);
}
.c-brand-card__logo.--coverlam img {
  width: clamp(178px, 25.6vw, 405px);
}
.c-brand-card__logo.--baldocer img {
  width: clamp(163px, 23.4vw, 370px);
}
.c-brand-card__description {
  margin-block: -0.375em;
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-brand-card__description {
    text-align: center;
  }
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__description {
    text-align: center;
    transform: translateX(0.3em);
  }
}
@media screen and (min-width: 1600px) {
  .c-brand-card__logo.--coverlam + .c-brand-card__description {
    width: -webkit-max-content;
    width: max-content;
    margin-left: 50%;
    translate: -50%;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-brand-card__description {
    text-align: justify;
    text-wrap: wrap;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-brand-card__description br.--optional {
    display: none;
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 29.25rem) {
    .c-brand-card__description br.--optional {
      display: none;
    }
  }
}
@media print {
  .c-brand-card__description br.--optional {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .c-brand-card__features {
    align-content: start;
  }
}
.c-brand-card__features {
  margin-top: clamp(32px, 5.5vw, 93px);
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__features {
    grid-template-columns: minmax(6rem, 18.3%) 1fr;
  }
  .c-brand-card__features .c-brand-card__label {
    margin-top: 0.35em;
  }
}
.c-brand-card__feature {
  container-type: inline-size;
  display: grid;
  align-items: center;
}
@media print, screen and (min-width: 768px) {
  .c-brand-card__feature {
    font-size: clamp(0.938rem, 0.192vw + 0.894rem, 1.125rem);
  }
}
.c-brand-card__feature {
  letter-spacing: 0.08em;
}
@media screen and (max-width: 991.98px) {
  .c-brand-card__feature {
    grid-template-columns: 15% 85%;
    padding-block: 1.35em;
  }
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__feature {
    grid-template-columns: 19.2% 80.8%;
    padding-block: 1.55em 1.6em;
  }
}
.c-brand-card__feature-text {
  text-wrap: pretty;
  word-break: keep-all;
}
@container (width < 14em) {
  .c-brand-card__feature-text {
    letter-spacing: 0.06em;
  }
}
.c-brand-card__feature-text wbr.--narrow {
  display: none;
}
@container (width < 14em) {
  .c-brand-card__feature-text wbr.--narrow {
    display: revert;
  }
}
.c-brand-card__feature:not(:last-child) {
  border-bottom: 1px solid var(--color-line);
}
.c-brand-card__feature:first-child {
  padding-top: 0;
}
.c-brand-card__number {
  text-align: center;
  font-family: var(--font-family-secondary);
  font-size: 0.875rem;
  letter-spacing: 0.06em;
}
.c-brand-card__feature:first-child .c-brand-card__number {
  letter-spacing: 0.1em;
}
.c-brand-card__button {
  margin-top: clamp(30px, 4.6vw, 76px);
  text-align: right;
}
.c-brand-card__button .c-btn {
  scroll-margin-block: 7rem;
}
.c-brand-card:first-child {
  padding-top: clamp(12px, 1.4vw, 20px);
}
.c-brand-card:last-child {
  padding-bottom: clamp(12px, 1.4vw, 20px);
}
@media print, screen and (min-width: 992px) {
  .c-brand-card__identity .c-brand-card__label {
    margin-top: -0.35em;
  }
}
@media screen {
  .c-brand-card + .c-brand-card {
    --brand-card-hold: max(0px, calc(min(33.3333333333svh, clamp(240px, 20.8vw, 320px)) - max(0px, calc(100svh - var(--brand-card-previous-height, 100svh)))));
  }
}
@media screen and (min-width: 992px) {
  .c-brand-card + .c-brand-card {
    --brand-card-hold: max(0px, calc(min(33.3333333333svh, clamp(240px, 20.8vw, 320px)) - max(0px, calc(100dvh - var(--brand-card-previous-height, 100dvh)))));
  }
}
.c-brand-card + .c-brand-card {
  margin-top: var(--brand-card-hold, 0px);
}
@media only screen and (max-width: 767.98px) {
  .c-brand-card + .c-brand-card {
    margin-top: calc(clamp(64px, 13.2vw, 80px) + var(--brand-card-hold, 0px));
  }
}
@media screen {
  .c-brand-card:has(:focus-visible), html:not(.is-top-ready) .c-brand-card {
    position: relative;
    top: 0;
    z-index: 1;
  }
}

/* ご提案内容の共通カード */
.c-service {
  container-type: inline-size;
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(30px, 3.9vw, 58px) clamp(20px, 3.5vw, 60px) clamp(24px, 2.8vw, 40px);
}
@media screen and (min-width: 576px) and (max-width: 1399.98px) {
  .c-service {
    padding: 2rem clamp(20px, 3vw, 40px) 1.75rem;
  }
}
@media only screen and (max-width: 767.98px) {
  .c-service {
    padding-inline: 0;
  }
}
.c-service__title {
  font-size: clamp(1.063rem, 0.192vw + 1.019rem, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-wrap: pretty;
  word-break: keep-all;
}
@media only screen and (max-width: 575.98px) {
  .c-service__title {
    margin-block: -0.2em 0.8em;
  }
}
@media screen and (min-width: 576px) and (max-width: 1399.98px) {
  .c-service__title {
    margin-bottom: 1em;
    font-size: 1.125rem;
    letter-spacing: 0.06em;
  }
}
@media screen and (min-width: 1400px) {
  .c-service__title {
    margin-block: -0.2em 0.8em;
  }
}
@media print {
  .c-service__title {
    margin-block: -0.2em 0.8em;
  }
}
.c-service p {
  text-align: justify;
  text-wrap: pretty;
}
@media screen and (min-width: 576px) and (max-width: 1399.98px) {
  .c-service p {
    line-height: 1.85;
    letter-spacing: 0.05em;
  }
}
@container (width < 11em) {
  .c-service p {
    letter-spacing: 0.02em;
  }
}
@container (width < 18em) {
  .c-service p br {
    display: none;
  }
}
@media screen and (max-width: 1999.98px) {
  .c-service p br {
    display: none;
  }
}
@media print {
  .c-service p br {
    display: none;
  }
}
.c-service__icon {
  display: grid;
  grid-template-columns: 100%;
  grid-template-rows: 100%;
  place-items: center;
  justify-self: end;
  margin-top: clamp(24px, 2.4vw, 30px);
  width: clamp(56px, 5.4vw, 68px);
  height: clamp(56px, 5.4vw, 68px);
}
.c-service__icon img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
}
.c-service__icon.--catalog img {
  width: 118%;
  height: 118%;
  max-width: none;
}
.c-service::before {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(12px, 1.6vw, 24px);
  right: clamp(12px, 1.6vw, 24px);
}
@media only screen and (max-width: 767.98px) {
  .c-service::before {
    left: 0;
    right: 0;
  }
}
.c-service::before {
  border-top: 1px solid var(--color-txt);
}
.c-service::after {
  content: "";
  position: absolute;
  right: 0;
  top: clamp(12px, 1.4vw, 20px);
  bottom: 0;
  max-height: 18.75rem;
  border-right: 1px solid var(--color-txt);
}
@media only screen and (max-width: 767.98px) {
  .c-service::after {
    content: none;
  }
}

/* ページトップ
--------------------------------------------------------- */
.c-pagetop {
  position: fixed;
  z-index: 50;
  font-size: 0;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.5s;
}
@media only screen and (max-width: 767.98px) {
  .c-pagetop {
    bottom: 10px;
    right: 10px;
  }
}
@media print, screen and (min-width: 768px) {
  .c-pagetop {
    bottom: 20px;
    right: 20px;
  }
}
@media print {
  .c-pagetop {
    display: none;
  }
}
.c-pagetop.is-show {
  opacity: 1;
}
@media only screen and (max-width: 767.98px) {
  .c-pagetop img {
    width: 44px;
  }
}
@media print, screen and (min-width: 768px) {
  .c-pagetop img {
    width: clamp(44px, 4.1vw, 50px);
  }
}

/* スクロールアニメーション
--------------------------------------------------------- */
html.is-io-ready :is([data-io=slide-in-bottom], [data-io=fade-in], [data-io=blur-in], [data-io=heading-letter]) {
  opacity: 0;
}

@media print {
  [data-io] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-io] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
[data-io=slide-in-bottom] {
  transition: opacity 0.9s, transform 0.9s;
}
html.is-io-ready [data-io=slide-in-bottom] {
  transform: translateY(60px);
}
html.is-io-ready [data-io=slide-in-bottom].is-appear {
  opacity: 1;
  transform: none;
}

html.is-io-ready [data-io=fade-in].is-appear {
  animation-name: io-fade-in;
  animation-duration: 2s;
  animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1);
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}

@keyframes io-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
[data-io=blur-in] {
  filter: blur(12px);
  transition: opacity 0.9s, filter 0.9s;
}
html.is-io-ready [data-io=blur-in].is-appear {
  opacity: 1;
  filter: blur(0);
}

[data-io=text-rise] {
  --text-rise-delay: 0s;
  opacity: 1;
  overflow: hidden;
}
[data-io=text-rise] > span {
  display: block;
  transform: translate3d(0, 105%, 0);
  transition: transform 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  transition-delay: var(--text-rise-delay);
  will-change: transform;
}
html.is-io-ready [data-io=text-rise].is-appear > span {
  transform: translate3d(0, 0, 0);
}

[data-io=heading-letter] {
  opacity: 1;
}
[data-io=heading-letter] > span {
  display: inline-block;
  opacity: 0;
  transform: translateX(-0.5em);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
html.is-io-ready [data-io=heading-letter].is-appear > span {
  opacity: 1;
  transform: none;
}

[data-io=heading-letter] > span:nth-child(1) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0s);
}

[data-io=heading-letter] > span:nth-child(2) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.04s);
}

[data-io=heading-letter] > span:nth-child(3) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.08s);
}

[data-io=heading-letter] > span:nth-child(4) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.12s);
}

[data-io=heading-letter] > span:nth-child(5) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.16s);
}

[data-io=heading-letter] > span:nth-child(6) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.2s);
}

[data-io=heading-letter] > span:nth-child(7) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.24s);
}

[data-io=heading-letter] > span:nth-child(8) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.28s);
}

[data-io=heading-letter] > span:nth-child(9) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.32s);
}

[data-io=heading-letter] > span:nth-child(10) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.36s);
}

[data-io=heading-letter] > span:nth-child(11) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.4s);
}

[data-io=heading-letter] > span:nth-child(12) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.44s);
}

[data-io=heading-letter] > span:nth-child(13) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.48s);
}

[data-io=heading-letter] > span:nth-child(14) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.52s);
}

[data-io=heading-letter] > span:nth-child(15) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.56s);
}

[data-io=heading-letter] > span:nth-child(16) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.6s);
}

[data-io=heading-letter] > span:nth-child(17) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.64s);
}

[data-io=heading-letter] > span:nth-child(18) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.68s);
}

[data-io=heading-letter] > span:nth-child(19) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.72s);
}

[data-io=heading-letter] > span:nth-child(20) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.76s);
}

[data-io=heading-letter] > span:nth-child(21) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.8s);
}

[data-io=heading-letter] > span:nth-child(22) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.84s);
}

[data-io=heading-letter] > span:nth-child(23) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.88s);
}

[data-io=heading-letter] > span:nth-child(24) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.92s);
}

[data-io=heading-letter] > span:nth-child(25) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 0.96s);
}

[data-io=heading-letter] > span:nth-child(26) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 1s);
}

[data-io=heading-letter] > span:nth-child(27) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 1.04s);
}

[data-io=heading-letter] > span:nth-child(28) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 1.08s);
}

[data-io=heading-letter] > span:nth-child(29) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 1.12s);
}

[data-io=heading-letter] > span:nth-child(30) {
  transition-delay: calc(var(--heading-letter-delay, 0s) + 1.16s);
}

/* フォーム
--------------------------------------------------------- */
@media only screen and (max-width: 767.98px) {
  .c-form select,
  .c-form input[type=file] {
    width: 100%;
  }
}
.c-form .required input[type=text],
.c-form .required input[type=tel],
.c-form .required input[type=email],
.c-form .required input[type=password],
.c-form .required select,
.c-form .required textarea {
  background-color: color-mix(in srgb, var(--color-accent) 50%, white);
}
.c-form .item-xs {
  display: inline-block;
  width: 75px;
}
.c-form .item-ss {
  display: inline-block;
  width: 110px;
}
.c-form .item-s {
  display: inline-block;
  width: 130px;
}
@media print, screen and (min-width: 768px) {
  .c-form .item-m {
    display: inline-block;
    width: 300px;
  }
}
@media print, screen and (min-width: 992px) {
  .c-form .item-m {
    width: 350px;
  }
}
@media print, screen and (min-width: 992px) {
  .c-form .item-l {
    display: inline-block;
    width: 450px;
  }
}
.c-form__word {
  color: #989898;
  font-size: clamp(0.75rem, 0.128vw + 0.721rem, 0.875rem);
}
:has(+ .c-form__word) {
  margin-right: 0.5em;
}
.c-form__word + * {
  margin-left: 0.5em;
}
.c-form__note {
  margin-top: 0.5em;
  color: var(--color-accent);
  font-size: clamp(0.813rem, 0.128vw + 0.784rem, 0.938rem);
}
.c-form__btn {
  display: flex;
  justify-content: center;
  gap: clamp(15px, 1.8vw, 25px);
  margin-top: clamp(45px, 5vw, 70px);
}

/* 埋め込みコンポーネント
--------------------------------------------------------- */
.c-embed {
  font-size: 0;
}
.c-embed iframe,
.c-embed video {
  width: 100% !important;
  height: 100% !important;
}
@media only screen and (max-width: 767.98px) {
  .c-embed.--gmap iframe {
    aspect-ratio: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .c-embed.--gmap iframe {
    aspect-ratio: 16/9;
  }
}
/* ========================================================================
/*
/* Project
/*
========================================================================= */
/* ヘッダー
--------------------------------------------------------- */
.p-header {
  flex: 1;
}
@media screen and (max-width: 991.98px) {
  .p-header {
    display: flex;
    align-items: center;
    padding-left: 1.5vw;
  }
}
@media print, screen and (min-width: 992px) {
  .p-header {
    display: grid;
    grid-template: "logo util"/auto 1fr;
    align-items: center;
    column-gap: 4%;
    padding-left: clamp(15px, 1.9vw, 40px);
    padding-right: clamp(15px, 1.9vw, 40px);
  }
}
.p-header__util {
  grid-area: util;
}
.p-header {
  position: relative;
  display: grid;
  align-items: center;
  column-gap: clamp(16px, 1.6vw, 30px);
  width: 100%;
  max-width: 2000px;
  margin-inline: auto;
  height: 100%;
  padding-inline: clamp(20px, 2.1vw, 28px);
}
@media only screen and (max-width: 767.98px) {
  .p-header {
    padding-inline: 4vw;
  }
}
@media screen and (max-width: 991.98px) {
  .p-header {
    grid-template: "brand util"/1fr auto;
  }
}
@media print, screen and (min-width: 992px) {
  .p-header {
    grid-template: "brand util contact"/1fr auto 1fr;
  }
}
@media print {
  .p-header {
    height: auto;
    padding-block: clamp(18px, 2vw, 28px);
  }
}
.p-header__brand {
  grid-area: brand;
  position: relative;
  width: clamp(90px, 8.3vw, 100px);
  line-height: 1;
}
.p-header__brand a {
  display: block;
}
.p-header__brand img {
  display: block;
  width: 100%;
  height: auto;
  transition: opacity 0.2s ease-out;
}
.p-header__brand-white {
  opacity: 0;
}
.p-header__brand-black {
  position: absolute;
  inset: 0;
}
.p-header__contact {
  grid-area: contact;
  justify-self: end;
}
@media screen and (max-width: 991.98px) {
  .p-header__contact {
    display: none;
  }
}
@media print, screen and (min-width: 992px) {
  .p-header__contact {
    display: block;
  }
}
@media screen and (max-width: 991.98px) {
  .p-header__contact.--drawer {
    display: block;
    width: 100%;
    margin-top: clamp(40px, 7.1vw, 56px);
  }
}
@media print, screen and (min-width: 992px) {
  .p-header__contact.--drawer {
    display: none;
  }
}
.p-header__contact-link {
  position: relative;
  padding: 0.45em 1.6em;
  border-radius: 999px;
  font-family: var(--font-family-secondary);
  font-size: 0.9375rem;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: inherit;
  background-color: transparent;
  transition: none;
}
@media print {
  .p-header__contact-link {
    transition: none;
  }
}
@media screen and (max-width: 991.98px) {
  .p-header__contact-link {
    display: none;
  }
}
@media print, screen and (min-width: 992px) {
  .p-header__contact-link {
    display: block;
  }
}
.p-header__contact-link:is(:hover, :active, :focus) {
  color: inherit;
}
.p-header__contact-link:focus-visible .p-header__contact-shape {
  opacity: 0.7;
}
@media (hover: hover) and (pointer: fine) {
  .p-header__contact-link:hover .p-header__contact-shape {
    opacity: 0.7;
  }
}
@media screen and (max-width: 991.98px) {
  .p-header__contact-link.--drawer {
    display: block;
    width: 100%;
    font-size: 1.125rem;
    text-align: center;
  }
}
@media print, screen and (min-width: 992px) {
  .p-header__contact-link.--drawer {
    display: none;
  }
}
.p-header__contact-label {
  color: transparent;
}
@media print {
  .p-header__contact-label {
    color: inherit;
  }
}
@media (forced-colors: active) {
  .p-header__contact-label {
    color: LinkText;
  }
}
.p-header__contact-shape {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  font: inherit;
  letter-spacing: inherit;
  transition: opacity 0.3s;
}
@media (prefers-reduced-motion: reduce) {
  .p-header__contact-shape {
    transition: none;
  }
}
@media print, (forced-colors: active) {
  .p-header__contact-shape {
    display: none;
  }
}
.p-header__contact-shape text {
  font: inherit;
  letter-spacing: inherit;
}
.p-header__contact-shape mask {
  mask-type: luminance;
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .p-header {
    grid-template: "brand" "util"/1fr;
    height: auto;
    padding-block: clamp(18px, 2vw, 28px);
  }
}

.l-header.is-white .p-header__brand-white {
  opacity: 1;
}
@media print {
  .l-header.is-white .p-header__brand-white {
    opacity: 0;
  }
}
.l-header.is-white .p-header__brand-black {
  opacity: 0;
}
@media print {
  .l-header.is-white .p-header__brand-black {
    opacity: 1;
  }
}
@media print {
  .l-header.is-white .p-header__contact-link {
    color: var(--color-txt);
  }
}

@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .l-header.is-white .p-header__brand-white {
    opacity: 0;
  }
}
@media screen and (max-width: 991.98px) {
  html:not(.is-top-ready) .l-header.is-white .p-header__brand-black {
    opacity: 1;
  }
}

/* フッター
--------------------------------------------------------- */
.p-footer__inner {
  width: min(92vw, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-top: clamp(40px, 3.9vw, 50px);
  padding-bottom: clamp(40px, 3.9vw, 50px);
}
@media print, screen and (min-width: 768px) {
  .p-footer__inner {
    display: grid;
    grid-template-columns: 34% 1fr;
    grid-template-areas: "info nav";
    column-gap: 4%;
  }
}
.p-footer__info {
  grid-area: info;
  background-color: #fcc;
  font-size: clamp(0.75rem, 0.192vw + 0.707rem, 0.938rem);
}
.p-footer__address .map-icon {
  position: relative;
  top: -0.1em;
  margin-left: 0.3em;
}
.p-footer__address .map-icon svg {
  width: auto;
  height: 1.1em;
}
.p-footer__address .map-icon svg .st0 {
  transition: fill 0.3s;
  fill: var(--color-main);
}
@media print, screen and (min-width: 768px) {
  .p-footer__address .map-icon:hover svg .st0 {
    fill: var(--color-sub);
  }
}
@media print, screen and (min-width: 992px) {
  .p-footer__tel {
    display: flex;
  }
}
@media print, screen and (min-width: 992px) {
  .p-footer__tel-item + .p-footer__tel-item::before {
    content: "/";
    margin-left: 0.5em;
    margin-right: 0.5em;
  }
}
.p-footer__nav {
  grid-area: nav;
  background-color: #cff;
}
.p-footer__copyright {
  padding-top: clamp(9px, 0.9vw, 12px);
  padding-bottom: clamp(9px, 0.9vw, 12px);
  background-color: var(--color-base);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  text-align: center;
}

.p-footer-area {
  background: url("../images/common/bg-bottom-native.png") center top/cover;
  color: #fff;
}
@media print {
  .p-footer-area {
    background: none;
    color: var(--color-main);
  }
}

.p-footer-contact {
  max-width: 2000px;
  margin-inline: auto;
  padding-top: clamp(30px, 3.9vw, 60px);
  padding-inline: min(2.4%, 3rem);
}
@media only screen and (max-width: 767.98px) {
  .p-footer-contact {
    padding-inline: 4vw;
  }
}
.p-footer-contact__inner {
  display: grid;
  align-items: center;
  padding-block: clamp(35px, 5.8vw, 98px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  background-color: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
}
@media only screen and (max-width: 767.98px) {
  .p-footer-contact__inner {
    grid-template: "text" "image" "action"/1fr;
    column-gap: 8%;
    padding-inline: 7%;
  }
}
@media screen and (min-width: 768px) and (max-width: 1399.98px) {
  .p-footer-contact__inner {
    grid-template: "text image" "action image"/1fr 32%;
    column-gap: 8%;
    padding-inline: 6%;
  }
}
@media screen and (min-width: 1400px) {
  .p-footer-contact__inner {
    grid-template: "text . image . action"/32% 6% 24% 8.45% 1fr;
    column-gap: 0;
    padding-inline: 8.3%;
  }
}
@media print {
  .p-footer-contact__inner {
    break-inside: avoid;
    grid-template: "text . image . action"/32% 6% 24% 8.45% 1fr;
    column-gap: 0;
    padding-inline: 8.3%;
    border-color: var(--color-main);
    background: none;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
  }
}
.p-footer-contact__inner.is-background-ready {
  background: url("../images/common/bg-bottom-filtered.png") var(--contact-background-position)/var(--contact-background-size) no-repeat;
  background-origin: border-box;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}
@media print {
  .p-footer-contact__inner.is-background-ready {
    background: none;
  }
}
.p-footer-contact__text {
  grid-area: text;
  container-type: inline-size;
}
.p-footer-contact__text wbr.--narrow {
  display: none;
}
@container (width < 13em) {
  .p-footer-contact__text wbr.--narrow {
    display: revert;
  }
}
.p-footer-contact__label {
  font-size: clamp(1rem, 0.128vw + 0.971rem, 1.125rem);
  line-height: 1;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767.98px) {
  .p-footer-contact__label {
    margin-bottom: 1.8em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-footer-contact__label {
    margin-bottom: 2.45em;
  }
}
.p-footer-contact__title {
  word-break: keep-all;
  margin-bottom: 0.8em;
  font-size: clamp(1.313rem, 0.449vw + 1.212rem, 1.75rem);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
}
.p-footer-contact__description {
  text-align: justify;
  line-height: 1.75;
  letter-spacing: 0.08em;
}
.p-footer-contact__description p + p {
  margin-top: 1em;
}
.p-footer-contact__image {
  grid-area: image;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
}
@media only screen and (max-width: 767.98px) {
  .p-footer-contact__image {
    margin-top: 2rem;
    width: 100%;
    justify-self: center;
  }
}
.p-footer-contact__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 49.2% center;
  transform-origin: 49.2% center;
  scale: 1.025;
}
.p-footer-contact__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(33, 33, 33, 0.15);
  pointer-events: none;
}
.p-footer-contact__action {
  grid-area: action;
  font-size: clamp(1.375rem, 0.385vw + 1.288rem, 1.75rem);
}
@media only screen and (max-width: 767.98px) {
  .p-footer-contact__action {
    justify-self: center;
    margin-top: 2rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1399.98px) {
  .p-footer-contact__action {
    justify-self: start;
    margin-top: 2rem;
  }
}
@media screen and (min-width: 1400px) {
  .p-footer-contact__action {
    justify-self: center;
  }
}
@media print {
  .p-footer-contact__action {
    justify-self: center;
  }
}

.p-footer {
  position: relative;
  container-type: inline-size;
}
.p-footer__inner {
  display: grid;
  padding-top: clamp(60px, 8.8vw, 140px);
  margin-inline: auto;
}
@container (width < 21em) {
  .p-footer__inner {
    padding-bottom: max(clamp(70px, 8vw, 112px), 6rem + clamp(45px, 8.6vw, 150px));
  }
}
@container (width >= 21em) {
  .p-footer__inner {
    padding-bottom: clamp(70px, 8vw, 112px);
  }
}
@media only screen and (max-width: 767.98px) {
  .p-footer__inner {
    width: 92%;
    grid-template: "info" "nav" "links"/1fr;
    column-gap: 9%;
  }
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .p-footer__inner {
    width: 84%;
    grid-template: "info nav" "links nav"/minmax(min(14rem, 50%), 30%) 1fr;
    column-gap: 9%;
  }
}
@media screen and (min-width: 1200px) {
  .p-footer__inner {
    width: min(90%, max(67%, 73.5rem));
    max-width: 83.75rem;
    grid-template: "info nav links"/minmax(0, 1fr) max(42.3%, min(50%, clamp(31.25rem, 5.556vw + 27.083rem, 33.75rem))) 10.5%;
    column-gap: 7.8%;
  }
}
@media print {
  .p-footer__inner {
    width: min(90%, max(67%, 73.5rem));
    grid-template: "info nav links"/31.6% 42.3% 10.5%;
    column-gap: 7.8%;
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 44rem) {
    .p-footer__inner {
      grid-template: "info" "nav" "links"/1fr;
      gap: 0;
    }
  }
}
.p-footer__info {
  background-color: transparent;
  font-size: 1rem;
}
@media print, screen and (min-width: 768px) {
  .p-footer__info {
    font-size: 0.875rem;
  }
}
.p-footer__info {
  line-height: 1.8;
  letter-spacing: 0.08em;
}
.p-footer__logo {
  width: clamp(150px, 14.8vw, 187px);
}
.p-footer__logo img {
  width: 100%;
  height: auto;
}
@media print {
  .p-footer__logo img {
    filter: brightness(0);
  }
}
.p-footer__copyright {
  width: -webkit-max-content;
  width: max-content;
  min-width: clamp(150px, 14.8vw, 187px);
  margin-top: 1.3em;
  padding: 0;
  background-color: transparent;
  font-family: var(--font-family-secondary);
  line-height: 1.5;
  letter-spacing: 0.1em;
}
.p-footer__address {
  margin-top: 3.5em;
}
.p-footer__tel {
  display: block;
  margin-top: 1.6em;
  margin-bottom: -0.5em;
  font-family: var(--font-family-secondary);
  font-size: 1rem;
  line-height: 1.85;
  letter-spacing: 0.1em;
}
.p-footer__tel-item {
  display: flex;
}
.p-footer__tel-item + .p-footer__tel-item::before {
  content: none;
}
.p-footer__tel-label {
  flex: 0 0 2.125em;
}
.p-footer__nav {
  background-color: transparent;
  container-type: inline-size;
}
@media only screen and (max-width: 767.98px) {
  .p-footer__nav {
    margin-top: 3rem;
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 44rem) {
    .p-footer__nav {
      margin-top: 3rem;
    }
  }
}
.p-footer__label {
  margin-bottom: 2.5em;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0.1em;
}
@media screen and (min-width: 1200px) {
  .p-footer__label {
    margin-top: -0.125em;
  }
}
.p-footer__links {
  grid-area: links;
}
@media screen and (max-width: 1199.98px) {
  .p-footer__links {
    margin-top: 3rem;
  }
}
@media print, screen and (min-width: 768px) {
  @container (width < 44rem) {
    .p-footer__links {
      margin-top: 3rem;
    }
  }
}
@media screen and (min-width: 1200px) {
  .p-footer__links .p-footer__label {
    margin-bottom: 3em;
  }
}
@media only screen and (max-width: 767.98px) {
  .p-footer__brands {
    display: flex;
    align-items: center;
    gap: 2rem;
  }
}
.p-footer__brand {
  width: clamp(120px, 11.4vw, 140px);
  max-width: calc(100% + 2rem);
}
@media only screen and (max-width: 767.98px) {
  .p-footer__brand + .p-footer__brand {
    margin-top: 0;
  }
}
@media print, screen and (min-width: 768px) {
  .p-footer__brand + .p-footer__brand {
    margin-top: 1.2rem;
  }
}
.p-footer__brand a {
  transition: opacity 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .p-footer__brand a:hover {
    opacity: 0.65;
  }
}
.p-footer__brand img {
  width: 100%;
  height: auto;
}
@media print {
  .p-footer__brand img {
    filter: brightness(0);
  }
}
.p-footer__pagetop {
  position: absolute;
  right: max(0px, max(4.8%, (100% - 2000px) / 2 + 6rem) - 0.75em);
  bottom: calc(clamp(45px, 8.6vw, 150px) - 0.75em);
  padding: 0.75em;
  font-family: var(--font-family-secondary);
  font-size: 0.875rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  writing-mode: vertical-rl;
  color: inherit;
}
.p-footer__pagetop:is(:hover, :active, :focus) {
  color: inherit;
}
@media (hover: hover) and (pointer: fine) {
  .p-footer__pagetop:hover {
    color: rgba(255, 255, 255, 0.65);
  }
}
@media print {
  .p-footer__pagetop {
    display: none;
  }
}

/* お問い合わせ導線
--------------------------------------------------------- */
.p-inquiry {
  position: relative;
  z-index: 0;
  padding-top: clamp(50px, 5.7vw, 80px);
  padding-bottom: clamp(90px, 8.8vw, 110px);
  background: url("images/common/bg-inquiry.jpg") center top/cover no-repeat;
  text-align: center;
  color: #fff;
}
.p-inquiry::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
  background-color: rgba(0, 0, 0, 0.2);
}
.p-inquiry__inner {
  max-width: min(92%, 1200px);
  margin-left: auto;
  margin-right: auto;
}
.p-inquiry__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: clamp(20px, 3.1vw, 50px);
}
.p-inquiry__item {
  padding: clamp(25px, 2.9vw, 40px);
  background-color: rgba(0, 0, 0, 0.2);
  text-align: center;
  font-weight: 500;
  letter-spacing: 0.07em;
}
.p-inquiry__title {
  margin-bottom: 1.5em;
  font-weight: 500;
  font-size: clamp(1rem, 0.256vw + 0.942rem, 1.25rem);
}
@media only screen and (max-width: 767.98px) {
  .p-inquiry__title {
    font-size: 1.0625rem;
  }
}
.p-inquiry__icon {
  position: relative;
  border: 1px solid #fff;
  aspect-ratio: 1;
  margin-left: auto;
  margin-right: auto;
  width: clamp(60px, 6.1vw, 80px);
}
.p-inquiry__icon::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  background-color: #fff;
}
.p-inquiry__icon.--phone::before {
  top: 3%;
  aspect-ratio: 30.85/30.87;
  -webkit-mask-image: var(--icon-phone);
          mask-image: var(--icon-phone);
  height: 46%;
}
.p-inquiry__icon.--mail::before {
  bottom: 3%;
  aspect-ratio: 32/23;
  -webkit-mask-image: var(--icon-mail);
          mask-image: var(--icon-mail);
  height: 35%;
}
.p-inquiry__num {
  margin-top: 0.7em;
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 1.2;
  font-family: var(--font-family-secondary);
  font-size: clamp(1.75rem, 0.256vw + 1.692rem, 2rem);
}
.p-inquiry__time {
  margin-top: 0.3em;
  margin-left: 0.5em;
  letter-spacing: 0;
  font-weight: normal;
  font-size: clamp(0.688rem, 0.128vw + 0.659rem, 0.813rem);
}
.p-inquiry__btn {
  margin-top: clamp(25px, 2.5vw, 32px);
}

.l-page-wrapper {
  padding-top: 0;
}

/* 大理石背景を共有する紹介から技術・製品情報までの領域 */
.p-top-content {
  position: relative;
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
}
@media print {
  .p-top-content {
    -webkit-clip-path: none;
            clip-path: none;
    background-image: url("../images/top/bg.jpg");
    background-size: cover;
  }
}
.p-top-content__background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100dvh;
}
@media screen and (max-width: 991.98px) {
  .p-top-content__background {
    height: 100lvh;
  }
}
.p-top-content__background {
  background: url("../images/top/bg.jpg") center/cover no-repeat;
}
@media print {
  .p-top-content__background {
    display: none;
  }
}
.p-top-content__inner {
  position: relative;
  width: 100%;
  margin-inline: auto;
}

/* INPECについて */
.p-top-about {
  max-width: 2000px;
  margin-inline: auto;
}
.p-top-about__inner {
  width: 95.2%;
}
@media only screen and (max-width: 767.98px) {
  .p-top-about__inner {
    width: 92%;
  }
}
.p-top-about__inner {
  max-width: 1904px;
  margin-inline: auto;
  padding-top: clamp(60px, 7.9vw, 120px);
}
.p-top-about__intro {
  display: grid;
}
@media screen and (min-width: 1200px) {
  .p-top-about__intro {
    grid-template-columns: 2fr 3fr;
    align-items: end;
  }
}
@media screen and (min-width: 1200px) and (max-width: 1399.98px) {
  .p-top-about__intro {
    grid-template-columns: 1fr 3fr;
  }
}
@media print {
  .p-top-about__intro {
    grid-template-columns: 2fr 3fr;
    align-items: end;
  }
}
.p-top-about__intro .c-heading__title {
  margin-left: -0.08em;
}
@media only screen and (max-width: 767.98px) {
  .p-top-about__intro .c-heading__title {
    margin-left: 0;
  }
}
.p-top-about__description {
  text-align: justify;
  text-wrap: pretty;
}
@media screen and (max-width: 1199.98px) {
  .p-top-about__description {
    margin-top: 1.8em;
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .p-top-about__description {
    font-size: clamp(0.938rem, 0.446vw + 0.723rem, 1rem);
  }
}
@media screen and (min-width: 1200px) {
  .p-top-about__description {
    text-align: right;
    margin-block: -0.375em;
    margin-right: -0.75em;
  }
}
@media print {
  .p-top-about__description {
    text-align: right;
    margin-block: -0.375em;
    margin-right: -0.75em;
  }
}
.p-top-about__services {
  display: grid;
  margin-top: clamp(44px, 5.4vw, 80px);
}
@media print, screen and (min-width: 576px) {
  .p-top-about__services {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem 0;
  }
}
@media screen and (min-width: 576px) and (max-width: 767.98px) {
  .p-top-about__services {
    column-gap: calc(clamp(20px, 3vw, 40px) * 2);
  }
}
@media screen and (min-width: 1400px) {
  .p-top-about__services {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
}
@media print {
  .p-top-about__services {
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
  }
}
@media only screen and (max-width: 575.98px) {
  .p-top-about__services .c-service + .c-service {
    margin-top: 2rem;
  }
}

/* 取り扱いブランド */
.p-top-brands {
  max-width: 2000px;
  margin-inline: auto;
  margin-top: clamp(35px, 5.1vw, 82px);
}
.p-top-brands__heading {
  width: 95.2%;
}
@media only screen and (max-width: 767.98px) {
  .p-top-brands__heading {
    width: 92%;
  }
}
.p-top-brands__heading {
  max-width: 1904px;
  margin-inline: auto;
  padding-top: clamp(35px, 4.9vw, 76px);
}
@media print, screen and (min-width: 992px) {
  .p-top-brands__heading {
    position: -webkit-sticky;
    position: sticky;
    top: 0;
  }
}
@media print {
  .p-top-brands__heading {
    position: static;
  }
}

/* 施工イメージ：写真をゆっくり連続して流す */
.p-top-works {
  margin-inline: auto;
  margin-top: clamp(70px, 9.2vw, 140px);
}
.p-top-works__heading {
  width: 95.2%;
}
@media only screen and (max-width: 767.98px) {
  .p-top-works__heading {
    width: 92%;
  }
}
.p-top-works__heading {
  max-width: 1904px;
  margin-inline: auto;
  margin-bottom: 1.45em;
}
.p-top-works__viewport {
  overflow-x: auto;
  overscroll-behavior-x: contain;
}
.p-top-works__viewport.swiper-initialized {
  overflow: hidden;
}
@media print {
  .p-top-works__viewport {
    overflow: visible;
  }
}
.p-top-works__items {
  display: flex;
  width: 100%;
}
@media only screen and (max-width: 575.98px) {
  .p-top-works__items {
    column-gap: 3%;
  }
}
@media screen and (min-width: 576px) and (max-width: 991.98px) {
  .p-top-works__items {
    column-gap: 2%;
  }
}
@media print, screen and (min-width: 992px) {
  .p-top-works__items {
    column-gap: 1%;
  }
}
@media screen {
  .swiper-initialized .p-top-works__items {
    column-gap: 0;
    transition-timing-function: linear;
  }
}
@media print {
  .p-top-works__items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    transform: none !important;
  }
}
.p-top-works__item {
  flex-shrink: 0;
  overflow: hidden;
  aspect-ratio: 1;
}
@media screen and (max-width: 991.98px) {
  .p-top-works__item {
    width: clamp(210px, 33.1vw, 238px);
  }
}
@media print, screen and (min-width: 992px) {
  .p-top-works__item {
    width: min(24%, 480px);
  }
}
.p-top-works__item:only-child {
  margin-inline: auto;
}
@media print {
  .p-top-works__item {
    width: auto !important;
    margin: 0 !important;
  }
  .p-top-works__item[data-works-copy] {
    display: none;
  }
}
.p-top-works__item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-top-works__item.--bathroom img {
  scale: 1.03;
}
.p-top-works__item.--airport img {
  scale: 1.04;
}
.p-top-works__item.--restaurant img {
  scale: 1.06;
}
.p-top-works__item.--lobby img {
  object-position: 92% center;
  transform-origin: 92% center;
  scale: 1.19;
}

/* 技術・製品情報 */
.p-top-technology {
  container-type: inline-size;
  max-width: 2000px;
  margin-inline: auto;
  margin-top: clamp(75px, 11.2vw, 180px);
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .p-top-technology .c-heading.--label {
    grid-column: 1/-1;
  }
}
.p-top-technology .c-heading.--label .c-heading__title {
  letter-spacing: 0.04em;
}
@media print, screen and (min-width: 992px) {
  .p-top-technology .c-heading.--label .c-heading__title {
    margin-top: 0.95em;
  }
}
.p-top-technology__inner {
  display: grid;
  width: 90%;
}
@media only screen and (max-width: 767.98px) {
  .p-top-technology__inner {
    width: 92%;
  }
}
.p-top-technology__inner {
  max-width: 1800px;
  margin-inline: auto;
  padding-bottom: clamp(75px, 11.2vw, 180px);
}
@media print, screen and (min-width: 768px) {
  .p-top-technology__inner {
    column-gap: 5%;
  }
}
@media print, screen and (min-width: 992px) {
  .p-top-technology__inner {
    grid-template-columns: 25% 40% 25%;
  }
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .p-top-technology__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2rem;
  }
}
@media screen and (min-width: 1200px) {
  .p-top-technology__inner {
    grid-template-columns: minmax(0, 25fr) minmax(0, 40fr) minmax(22rem, 25fr);
  }
  @container (width < 60rem) {
    .p-top-technology__inner {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      row-gap: 2rem;
    }
    .p-top-technology__inner .c-heading.--label {
      grid-column: 1/-1;
    }
  }
}
.p-top-technology__image {
  overflow: hidden;
}
@media only screen and (max-width: 767.98px) {
  .p-top-technology__image {
    margin-top: 2rem;
  }
}
@media screen and (min-width: 768px) and (max-width: 1199.98px) {
  .p-top-technology__image {
    align-self: start;
  }
}
@media screen and (min-width: 1200px) {
  @container (width < 60rem) {
    .p-top-technology__image {
      align-self: start;
    }
  }
}
.p-top-technology__image img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  scale: 1.054;
}
@media only screen and (max-width: 767.98px) {
  .p-top-technology__content {
    margin-top: 2rem;
  }
}
@media print, screen and (min-width: 768px) {
  .p-top-technology__content {
    align-self: end;
  }
}
@media screen and (min-width: 1400px) {
  .p-top-technology__content {
    width: -webkit-max-content;
    width: max-content;
    max-width: 100%;
    justify-self: end;
  }
}
.p-top-technology__text {
  text-align: justify;
  text-wrap: pretty;
}
@media print, screen and (min-width: 992px) {
  .p-top-technology__text {
    transform: translate(0.2em, 0.35em);
  }
}
.p-top-technology__text p + p {
  margin-top: 1em;
}
@media screen and (max-width: 1999.98px) {
  .p-top-technology__text br {
    display: none;
  }
}
@media print {
  .p-top-technology__text br {
    display: none;
  }
}
.p-top-technology__button {
  margin-top: clamp(30px, 3.9vw, 58px);
  text-align: right;
}

.p-grespania-header .c-page-header__visual img {
  object-position: center top;
}

.p-grespania-about {
  margin-block: clamp(40px, 6.1vw, 100px);
}
@media print, screen and (min-width: 768px) {
  .p-grespania-about__inner {
    display: grid;
    gap: clamp(32px, 5.8vw, 100px);
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}
@media print, screen and (min-width: 768px) {
  .p-grespania-about__content {
    padding-top: clamp(10px, 1.1vw, 20px);
  }
}
.p-grespania-about__body {
  text-align: justify;
  text-wrap: pretty;
}
.p-grespania-about__action {
  margin-top: 4em;
  text-align: left;
}
@media only screen and (max-width: 767.98px) {
  .p-grespania-about__action {
    margin-top: 2em;
  }
}
@media only screen and (max-width: 767.98px) {
  .p-grespania-about__image {
    margin-top: max(3em, clamp(48px, 9.9vw, 64px));
  }
}
.p-grespania-about__image img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.p-grespania-products {
  background: url("../images/top/bg.jpg") center/cover;
}
.p-grespania-products__inner {
  padding-block: clamp(56px, 6.8vw, 100px);
}
@media print, screen and (min-width: 768px) {
  .p-grespania-products__item {
    display: grid;
    align-items: center;
    gap: clamp(28px, 7.8vw, 150px);
    grid-template-columns: 1fr 1fr;
  }
}
.p-grespania-products__item + .p-grespania-products__item {
  margin-top: clamp(48px, 5.6vw, 80px);
}
@media only screen and (max-width: 767.98px) {
  .p-grespania-products__item + .p-grespania-products__item {
    margin-top: max(3em, clamp(48px, 5.6vw, 80px));
  }
}
.p-grespania-products__image img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
@media only screen and (max-width: 767.98px) {
  .p-grespania-products__content {
    margin-top: clamp(28px, 7.8vw, 150px);
  }
}
.p-grespania-products__content p {
  text-wrap: pretty;
}
.p-grespania-products__title {
  margin-bottom: 1em;
  font-size: clamp(1.375rem, 0.769vw + 1.202rem, 2.125rem);
  font-weight: 500;
  line-height: 1.65;
}
.p-grespania-products__title span {
  display: inline-block;
}
.p-grespania-products__action {
  margin-top: 4em;
  text-align: right;
}
@media only screen and (max-width: 767.98px) {
  .p-grespania-products__action {
    margin-top: 2em;
  }
}

.p-tile-about {
  margin-block: clamp(56px, 7.3vw, 110px);
}
.p-tile-about .c-lead {
  margin-block: 0;
}
.p-tile-about .c-features {
  margin-top: clamp(64px, 7vw, 96px);
}

.p-tile-works__item {
  padding-top: clamp(28px, 3vw, 40px);
}
.p-tile-works__item:first-child {
  padding-top: 0;
}
@media print, screen and (min-width: 768px) {
  .p-tile-works__item {
    display: grid;
    gap: clamp(28px, 4.7vw, 80px);
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    align-items: start;
  }
}
.p-tile-works__item + .p-tile-works__item {
  margin-top: clamp(48px, 6.5vw, 100px);
}
.p-tile-works__details {
  min-width: 0;
}
@media only screen and (max-width: 767.98px) {
  .p-tile-works__details {
    margin-top: clamp(28px, 4.7vw, 80px);
  }
}
.p-tile-works__image {
  position: relative;
}
.p-tile-works__image::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  width: 2rem;
  height: 2rem;
  background-color: #fff;
  -webkit-mask: var(--icon-zoom) center/contain no-repeat;
          mask: var(--icon-zoom) center/contain no-repeat;
  opacity: 0.8;
  pointer-events: none;
  z-index: 1;
}
.p-tile-works__image img {
  display: block;
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  cursor: zoom-in;
}
.p-tile-works__title {
  margin-bottom: 1em;
  font-family: var(--font-family-secondary);
  font-size: clamp(1.563rem, 0.962vw + 1.346rem, 2.5rem);
  font-weight: 400;
  line-height: 1.4;
}
.p-tile-works__colors {
  display: grid;
  gap: clamp(10px, 1.3vw, 20px);
  margin-bottom: 2em;
}
@media screen and (max-width: 991.98px) {
  .p-tile-works__colors:not(.--three) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media print, screen and (min-width: 992px) {
  .p-tile-works__colors:not(.--slim) {
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
  }
}
@media screen and (max-width: 991.98px) {
  .p-tile-works__colors.--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media print, screen and (min-width: 992px) {
  .p-tile-works__colors.--slim {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.p-tile-works__color {
  margin: 0;
}
.p-tile-works__color img {
  display: block;
  width: 100%;
  height: auto;
}
.p-tile-works__color figcaption {
  margin-top: 0.5em;
  font-size: clamp(0.875rem, 0.128vw + 0.846rem, 1rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.5;
  overflow-wrap: break-word;
}
.p-tile-works__color figcaption span {
  display: block;
}
.p-tile-works__sizes {
  width: clamp(360px, 38.6vw, 520px);
  max-width: 100%;
}
.p-tile-works__sizes img {
  display: block;
  width: 100%;
  height: auto;
}
.p-tile-works__sizes.--santorini img {
  width: 82.86%;
}
.p-tile-works__size, .p-tile-works__code {
  font-weight: 400;
}

.p-coverlam-header .c-page-header__visual img {
  object-position: center 70%;
}

.p-coverlam-works__items {
  display: grid;
  gap: clamp(16px, 2vw, 30px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media print, screen and (min-width: 768px) {
  .p-coverlam-works__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.p-coverlam-works__image {
  position: relative;
}
.p-coverlam-works__image::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  width: 2rem;
  height: 2rem;
  background-color: #fff;
  -webkit-mask: var(--icon-zoom) center/contain no-repeat;
          mask: var(--icon-zoom) center/contain no-repeat;
  opacity: 0.8;
  pointer-events: none;
  z-index: 1;
}
.p-coverlam-works__image img {
  display: block;
  width: 100%;
  aspect-ratio: 6/5;
  object-fit: cover;
  cursor: zoom-in;
}

.p-coverlam-colors {
  background-color: var(--color-line);
  color: #fff;
}
.p-coverlam-colors__inner {
  padding-block: clamp(48px, 6.5vw, 100px);
}
@media print, screen and (min-width: 992px) {
  .p-coverlam-colors__blocks {
    display: grid;
    gap: clamp(32px, 4.5vw, 70px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
}
.p-coverlam-colors__block {
  min-width: 0;
}
@media screen and (max-width: 991.98px) {
  .p-coverlam-colors__block + .p-coverlam-colors__block {
    margin-top: clamp(32px, 4.5vw, 70px);
  }
}
.p-coverlam-colors__group {
  display: grid;
  align-items: stretch;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(4px, 0.5vw, 8px);
  font-size: clamp(0.625rem, 0.192vw + 0.582rem, 0.813rem);
}
@media print, screen and (min-width: 576px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media print, screen and (min-width: 768px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media print, screen and (min-width: 992px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1200px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1400px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}
@media screen and (min-width: 1600px) {
  .p-coverlam-colors__group {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
}
.p-coverlam-colors__group + .p-coverlam-colors__group {
  margin-top: clamp(4px, 0.5vw, 8px);
}
.p-coverlam-colors__title {
  min-width: 0;
  width: 100%;
  aspect-ratio: 1;
  padding: clamp(3px, 0.4vw, 5px);
  border: 1px solid currentColor;
  font-size: clamp(0.563rem, 0.224vw + 0.512rem, 0.781rem);
  font-weight: 400;
  line-height: clamp(1.15em, 1em + 0.3vw, 1.4em);
  letter-spacing: 0;
  overflow-wrap: break-word;
}
@media only screen and (max-width: 575.98px) {
  .p-coverlam-colors__title {
    padding-inline: 0.05em;
  }
}
.p-coverlam-colors__title span {
  display: block;
}
.p-coverlam-colors__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
  margin: 0;
  color: var(--color-txt);
}
.p-coverlam-colors__item img {
  grid-area: 1/1;
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.p-coverlam-colors__item figcaption {
  grid-area: 1/1;
  align-self: start;
  margin: clamp(4px, 0.4vw, 6px);
  font-size: inherit;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  overflow-wrap: break-word;
}
.p-coverlam-colors__item.--light-label {
  color: #fff;
}

@media only screen and (max-width: 767.98px) {
  .p-baldocer-header .c-page-header__catch {
    font-size: min(clamp(1.75rem, 1.026vw + 1.519rem, 2.75rem), clamp(1.438rem, 7.5vw - 0.063rem, 2.75rem));
  }
}
.p-baldocer-header .c-page-header__visual img {
  object-position: center 70%;
}

.p-baldocer-about {
  margin-bottom: clamp(64px, 8.1vw, 120px);
}
.p-baldocer-about + .c-features {
  margin-top: 0;
}
@media print, screen and (min-width: 992px) {
  .p-baldocer-about__body {
    display: grid;
    align-items: start;
    gap: clamp(24px, 4.6vw, 80px);
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  }
}
.p-baldocer-about__copy {
  text-align: justify;
  text-wrap: pretty;
}
.p-baldocer-about__image {
  position: relative;
}
@media screen and (min-width: 992px) {
  .p-baldocer-about__image {
    top: calc(-1 * clamp(32px, 2.7vw, 48px));
  }
}
@media screen and (max-width: 991.98px) {
  .p-baldocer-about__image {
    margin-inline: auto;
    margin-top: clamp(24px, 4.6vw, 80px);
  }
}
@media screen and (min-width: 768px) and (max-width: 991.98px) {
  .p-baldocer-about__image {
    width: 70%;
  }
}
.p-baldocer-about__map {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 100/47;
  object-fit: cover;
}
.p-baldocer-about__logo {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 45%;
  transform: translate(-50%, -50%);
}

.p-baldocer-handling {
  background: linear-gradient(rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0.55)), url("../images/baldocer/pic-proposal.jpg") center 55%/cover;
}
.p-baldocer-handling__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: clamp(340px, 37.7vw, 520px);
  padding-block: clamp(56px, 6.8vw, 100px);
}
@media print, screen and (min-width: 992px) {
  .p-baldocer-handling__body {
    width: 75%;
  }
}

@media screen and (min-width: 1200px) {
  .p-baldocer-works__groups {
    display: grid;
    column-gap: clamp(28px, 3.9vw, 60px);
    grid-template-columns: fit-content(50%) minmax(0, 1fr);
  }
}
.p-baldocer-works__group {
  padding-top: clamp(28px, 3vw, 40px);
}
.p-baldocer-works__group:first-child {
  padding-top: 0;
}
@media screen and (min-width: 1200px) {
  .p-baldocer-works__group {
    display: grid;
    grid-column: 1/-1;
    grid-template-columns: subgrid;
    align-items: start;
  }
}
@media print {
  .p-baldocer-works__group {
    break-inside: avoid;
  }
}
.p-baldocer-works__group + .p-baldocer-works__group {
  margin-top: clamp(56px, 6.8vw, 100px);
}
.p-baldocer-works__heading {
  margin-bottom: 1em;
  font-size: clamp(1.375rem, 0.385vw + 1.288rem, 1.75rem);
  font-weight: 500;
  line-height: 1.6;
}
@media screen and (max-width: 1199.98px) {
  .p-baldocer-works__items {
    margin-top: clamp(28px, 3.9vw, 60px);
  }
}
.p-baldocer-works__items {
  display: grid;
  row-gap: clamp(32px, 3.2vw, 40px);
  column-gap: clamp(8px, 0.9vw, 12px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media print, screen and (min-width: 768px) {
  .p-baldocer-works__items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.p-baldocer-works__item {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: subgrid;
  grid-row: span 5;
  row-gap: 0;
}
.p-baldocer-works__name {
  margin-bottom: 0.8em;
  font-family: var(--font-family-secondary);
  font-size: clamp(1.25rem, 0.513vw + 1.135rem, 1.75rem);
  font-weight: 400;
  line-height: 1.5;
  overflow-wrap: break-word;
}
.p-baldocer-works__image {
  position: relative;
}
.p-baldocer-works__image::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  width: 2rem;
  height: 2rem;
  background-color: #fff;
  -webkit-mask: var(--icon-zoom) center/contain no-repeat;
          mask: var(--icon-zoom) center/contain no-repeat;
  opacity: 0.8;
  pointer-events: none;
  z-index: 1;
}
.p-baldocer-works__image img {
  display: block;
  width: 100%;
  aspect-ratio: 7/8;
  object-fit: cover;
  cursor: zoom-in;
}
.p-baldocer-works__color {
  margin: 1.2em 0 0.5em;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: 0;
}
.p-baldocer-works__color img {
  display: block;
  width: auto;
  height: 100%;
  max-height: clamp(100px, 12.3vw, 180px);
  object-fit: contain;
  object-position: left center;
}
.p-baldocer-works__color figcaption {
  margin-top: 0.6em;
  font-size: clamp(0.813rem, 0.192vw + 0.769rem, 1rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.6;
  overflow-wrap: break-word;
}
.p-baldocer-works__swatch {
  aspect-ratio: 2/1;
  max-height: clamp(100px, 12.3vw, 180px);
}
.p-baldocer-works__group.--wood .p-baldocer-works__swatch {
  aspect-ratio: 6/1;
}
.p-baldocer-works__size {
  font-size: clamp(0.813rem, 0.192vw + 0.769rem, 1rem);
  letter-spacing: 0.02em;
  line-height: 1.7;
}

.p-technology-header .c-page-header__visual img,
.p-technology-detail-header .c-page-header__visual img {
  object-position: center 40%;
}

.p-technology__articles {
  margin-top: clamp(48px, 6.5vw, 100px);
}
.p-technology__articles .c-article-row + .c-article-row {
  margin-top: clamp(20px, 2.5vw, 36px);
}
.p-technology .paging {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: clamp(4px, 0.5vw, 8px);
  margin-top: clamp(56px, 6.8vw, 100px);
}
.p-technology .paging .paging-text {
  display: block;
  font-family: var(--font-family-secondary);
  font-size: clamp(0.875rem, 0.128vw + 0.846rem, 1rem);
  line-height: 1.4;
  letter-spacing: 0;
}
.p-technology .paging .paging-text a {
  display: grid;
  place-items: center;
  width: clamp(32px, 3.2vw, 40px);
  aspect-ratio: 1;
  border: 1px solid rgba(33, 33, 33, 0.18);
  border-radius: 50%;
  text-decoration: none;
  transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}
.p-technology .paging .paging-text a:not([rel]):focus-visible {
  outline-offset: 0.2em;
  border-color: var(--color-main);
  background-color: var(--color-main);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  .p-technology .paging .paging-text a:not([rel]):hover {
    border-color: var(--color-main);
    background-color: var(--color-main);
    color: #fff;
  }
}
.p-technology .paging .paging-text a[rel] {
  width: auto;
  min-height: clamp(32px, 3.2vw, 40px);
  aspect-ratio: auto;
  padding-inline: 0.4em;
  border-color: transparent;
  border-radius: 0;
  font-size: clamp(0.875rem, 0.128vw + 0.846rem, 1rem);
  transition: color 0.3s;
}
@media (hover: hover) and (pointer: fine) {
  .p-technology .paging .paging-text a[rel]:hover {
    color: #b9a88c;
  }
}
.p-technology .paging .paging-text a[rel]:focus-visible {
  outline: 2px solid var(--color-main);
  outline-offset: 0.2em;
  color: #b9a88c;
}
.p-technology .paging .paging-text.current {
  display: grid;
  place-items: center;
  width: clamp(32px, 3.2vw, 40px);
  aspect-ratio: 1;
  border: 1px solid var(--color-main);
  border-radius: 50%;
  background-color: var(--color-main);
  color: #fff;
}

.p-technology-detail-header + .c-breadcrumb + * {
  padding-top: clamp(32px, 3.5vw, 48px);
}

.p-technology-detail__heading {
  margin-bottom: clamp(24px, 2.8vw, 40px);
}
.p-technology-detail__category {
  display: inline-block;
  padding: 0.3em 1em;
  background-color: var(--color-main);
  color: #fff;
  font-size: 0.88rem;
  line-height: 1.7;
  margin-bottom: 1.5em;
}
.p-technology-detail__title {
  font-size: clamp(1.75rem, 1.026vw + 1.519rem, 2.75rem);
  font-weight: 500;
  line-height: 1.6;
}
.p-technology-detail__body {
  text-align: justify;
  line-height: normal;
}
.p-technology-detail__body::after {
  content: "";
  display: block;
  clear: both;
}
.p-technology-detail__body iframe {
  max-width: 100%;
}
.p-technology-detail__photos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: clamp(24px, 3.2vw, 50px);
}
@media only screen and (max-width: 767.98px) {
  .p-technology-detail__photos {
    column-gap: clamp(10px, 2.2vw, 14px);
  }
}
.p-technology-detail__photo img {
  display: block;
  width: 100%;
  cursor: zoom-in;
}
.p-technology-detail__image {
  position: relative;
}
.p-technology-detail__image::after {
  content: "";
  position: absolute;
  right: 0.5rem;
  bottom: 0.5rem;
  width: 2rem;
  height: 2rem;
  background-color: #fff;
  -webkit-mask: var(--icon-zoom) center/contain no-repeat;
          mask: var(--icon-zoom) center/contain no-repeat;
  opacity: 0.8;
  pointer-events: none;
  z-index: 1;
}
.p-technology-detail__image {
  overflow: hidden;
}
.p-technology-detail__image img {
  transition: transform 0.4s;
}
@media screen and (hover: hover) and (pointer: fine) {
  .p-technology-detail__image:hover img {
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-technology-detail__image img {
    transition: none;
  }
}
.p-technology-detail__image {
  display: grid;
  place-items: center;
  aspect-ratio: 8/5;
  background-color: var(--color-surface);
  font-family: var(--font-family-secondary);
  color: var(--color-line);
}
@media only screen and (max-width: 767.98px) {
  .p-technology-detail__image::after {
    width: clamp(20px, 4vw, 24px);
    height: clamp(20px, 4vw, 24px);
  }
}
.p-technology-detail__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-technology-detail__caption {
  margin-top: 1em;
  text-align: center;
}
.p-technology-detail__documents {
  max-width: 55rem;
}
@media print, screen and (min-width: 768px) {
  .p-technology-detail__documents {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(16px, 2.1vw, 32px);
  }
}
@media only screen and (max-width: 767.98px) {
  .p-technology-detail__documents > * + * {
    margin-top: clamp(16px, 2.1vw, 32px);
  }
}
.p-technology-detail__body + .p-technology-detail__body, .p-technology-detail__body + .p-technology-detail__photos, .p-technology-detail__photos + .p-technology-detail__body, .p-technology-detail__body + .p-technology-detail__documents, .p-technology-detail__photos + .p-technology-detail__documents {
  margin-top: clamp(40px, 5.3vw, 80px);
}
.p-technology-detail__back {
  margin-top: clamp(56px, 6.8vw, 100px);
  text-align: center;
}
.p-technology-detail__back .c-btn {
  flex-direction: row-reverse;
}
.p-technology-detail__back .c-btn__arrow {
  rotate: 180deg;
}

.p-company-header .c-page-header__visual img {
  object-position: center bottom;
}

.p-company-message {
  margin-top: clamp(48px, 6.9vw, 110px);
}
.p-company-message__inner {
  display: grid;
}
@media print, screen and (min-width: 992px) {
  .p-company-message__inner {
    column-gap: clamp(32px, 4.2vw, 64px);
    grid-template-columns: 1fr 4fr;
  }
}
@media print, screen and (min-width: 992px) {
  .p-company-message__inner .c-heading {
    margin-bottom: 0;
  }
}
.p-company-message__body {
  text-align: justify;
  line-height: 2;
  letter-spacing: 0.07em;
  text-wrap: pretty;
}
.p-company-message__signature {
  width: -webkit-fit-content;
  width: fit-content;
  max-width: 100%;
  margin-top: 2.8em;
}
@media only screen and (max-width: 767.98px) {
  .p-company-message__signature {
    margin-top: 1.8em;
  }
}
.p-company-message__signature {
  margin-left: auto;
  font-family: var(--font-family-mincho);
  font-size: clamp(1.125rem, 0.256vw + 1.067rem, 1.375rem);
  line-height: 1.8;
  text-align: left;
}
.p-company-message__signature span {
  display: inline-block;
  max-width: 100%;
}

.p-company-profile {
  margin-top: clamp(64px, 8.9vw, 140px);
}
.p-company-profile__inner {
  display: grid;
}
@media print, screen and (min-width: 992px) {
  .p-company-profile__inner {
    column-gap: clamp(32px, 4.2vw, 64px);
    grid-template-columns: 1fr 4fr;
  }
}
@media print, screen and (min-width: 992px) {
  .p-company-profile__inner .c-heading {
    margin-bottom: 0;
  }
}
.p-company-profile__table tr {
  border-bottom: 1px solid rgba(33, 33, 33, 0.18);
}
.p-company-profile__table th, .p-company-profile__table td {
  vertical-align: top;
  line-height: 1.9;
}
@media print, screen and (min-width: 768px) {
  .p-company-profile__table th, .p-company-profile__table td {
    padding: 1.8em 1.4em;
  }
}
.p-company-profile__table th {
  font-weight: 500;
  text-align: left;
}
@media only screen and (max-width: 767.98px) {
  .p-company-profile__table th {
    padding: 1.25em 0 0.4em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-company-profile__table th {
    width: 32%;
  }
}
@media only screen and (max-width: 767.98px) {
  .p-company-profile__table td {
    padding: 0 0 1.25em;
  }
}
@media only screen and (max-width: 767.98px) {
  .p-company-profile__table tr:first-child > th {
    padding-top: 0;
  }
}
.p-company-profile__identity {
  display: inline-block;
  max-width: 100%;
}
.p-company-profile__label-phrase {
  display: inline-block;
  max-width: 100%;
}

.p-company-access {
  margin-top: clamp(64px, 8.9vw, 140px);
  margin-bottom: clamp(48px, 6.9vw, 110px);
}
@media print {
  .p-company-access {
    display: inline-block;
    width: 100%;
    vertical-align: top;
  }
}
.p-company-access .c-heading.--section {
  margin-bottom: 1.5em;
}
@media only screen and (max-width: 767.98px) {
  .p-company-access__map {
    aspect-ratio: 1;
  }
}
@media print, screen and (min-width: 768px) {
  .p-company-access__map {
    width: 100%;
    aspect-ratio: 994/462;
    max-height: clamp(480px, 35.7vw, 560px);
  }
}
.p-company-access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.p-company-access__transport {
  margin-top: clamp(32px, 4vw, 60px);
}
.p-company-access__title {
  display: flex;
  align-items: center;
  gap: 0.8em;
  margin-bottom: 1.2em;
  font-size: clamp(1.125rem, 0.385vw + 1.038rem, 1.5rem);
  font-weight: 500;
  line-height: 1.6;
}
.p-company-access__title img {
  flex: none;
  width: 1.15em;
}
.p-company-access__routes {
  line-height: 2;
}
.p-company-access__routes span {
  display: inline-block;
  max-width: 100%;
}

.p-enquire {
  background: url("../images/top/bg.jpg") center/cover;
}
.p-enquire__inner {
  padding-bottom: clamp(48px, 6.9vw, 110px);
}
@media only screen and (max-width: 767.98px) {
  .p-enquire__inner {
    padding-top: clamp(24px, 5vw, 32px);
  }
}
.p-enquire__items {
  display: grid;
  gap: clamp(24px, 3.2vw, 48px);
}
@media print, screen and (min-width: 768px) {
  .p-enquire__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.p-enquire__item {
  position: relative;
  padding: clamp(24px, 2.8vw, 40px);
  text-align: center;
}
.p-enquire__frame {
  position: absolute;
  inset: 0;
  border-inline: 1px solid currentColor;
  background: linear-gradient(currentColor, currentColor) left top/24px 1px no-repeat, linear-gradient(currentColor, currentColor) right top/24px 1px no-repeat, linear-gradient(currentColor, currentColor) left bottom/24px 1px no-repeat, linear-gradient(currentColor, currentColor) right bottom/24px 1px no-repeat;
  color: #777;
  pointer-events: none;
}
.p-enquire__body {
  max-width: 100%;
}
.p-enquire__icon {
  flex: none;
  width: clamp(32px, 3vw, 36px);
  height: clamp(32px, 3vw, 36px);
  background-color: currentColor;
  color: var(--color-main);
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.p-enquire__icon.--tel {
  -webkit-mask-image: var(--icon-tel);
          mask-image: var(--icon-tel);
}
.p-enquire__icon.--fax {
  -webkit-mask-image: var(--icon-fax);
          mask-image: var(--icon-fax);
}
.p-enquire__num {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4em;
  font-family: var(--font-family-secondary);
  font-size: clamp(1.75rem, 1.154vw + 1.49rem, 2.875rem);
  line-height: 1.25;
}
.p-enquire__time {
  margin-top: 1em;
  font-size: 1rem;
  line-height: 1.8;
}
@media only screen and (max-width: 767.98px) {
  .p-enquire__time {
    margin-top: 0.5em;
  }
}

.p-contact-header .c-page-header__visual img {
  object-position: center 15%;
}

.p-contact {
  margin-block: clamp(48px, 6.9vw, 110px);
}
.p-contact__txt {
  text-align: justify;
  line-height: 1.95;
  text-wrap: pretty;
}
.p-contact__txt .c-badge, .p-contact__note .c-badge {
  margin-right: 0.6em;
  vertical-align: 0.2em;
}
.p-contact .p-country-name {
  display: none;
}
.p-contact__postal-code {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6em;
}
.p-contact__note {
  margin-top: clamp(32px, 4vw, 60px);
  line-height: 1.8;
}
.p-contact__table.c-table.--contact {
  margin-top: 1.2em;
  font-size: 1rem;
}
.p-contact__table.c-table.--contact tbody, .p-contact__table.c-table.--contact th, .p-contact__table.c-table.--contact td {
  border-color: var(--color-base);
  border-width: 2px;
}
@media only screen and (max-width: 767.98px) {
  .p-contact__table.c-table.--contact tbody th, .p-contact__table.c-table.--contact tbody td {
    padding: 1.1em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-contact__table.c-table.--contact tbody th, .p-contact__table.c-table.--contact tbody td {
    padding: 1.8em;
  }
}
.p-contact__table.c-table.--contact tbody th {
  background-color: #e8e8e8;
  vertical-align: middle;
  font-weight: 500;
}
@media only screen and (max-width: 767.98px) {
  .p-contact__table.c-table.--contact tbody th {
    padding-block: 0.35em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-contact__table.c-table.--contact tbody th {
    width: clamp(250px, 24.9vw, 420px);
  }
}
.p-contact__table.c-table.--contact tbody th:has(.c-badge) {
  padding-right: 4.8em;
}
.p-contact__table.c-table.--contact tbody td {
  background-color: var(--color-surface);
}
@media only screen and (max-width: 767.98px) {
  .p-contact__table.c-table.--contact tbody td {
    border-right: 0;
  }
}
.p-contact__table.c-table.--contact .c-badge {
  right: 1em;
}
.p-contact__choices {
  display: flex;
  flex-wrap: wrap;
  column-gap: 2em;
  row-gap: 0.8em;
  line-height: 1.8;
}
.p-contact .form-check {
  display: flex;
  align-items: flex-start;
  gap: 0.6em;
  margin-right: 0;
  padding-left: 0;
  line-height: 1.8;
}
.p-contact .form-check-input {
  position: static;
  flex: none;
  width: 1em;
  height: 1em;
  margin: 0.4em 0 0;
  accent-color: var(--color-main);
}
.p-contact .c-form__btn {
  flex-wrap: wrap;
}
.p-contact .c-form__btn + .c-form__btn {
  margin-top: 1.25em;
}
.p-contact .c-form__btn:has(.p-contact__confirm-action) .c-btn {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
  line-height: 1.6;
}
@media only screen and (max-width: 767.98px) {
  .p-contact .c-form__btn:has(.p-contact__confirm-action) .c-btn {
    padding-inline: var(--button-label-inset) max(2em, 3em - 28px);
  }
}
.p-contact .c-form__btn:has(.p-contact__confirm-action) .p-contact__confirm-action {
  display: block;
  white-space: nowrap;
}
.p-contact .c-form__btn .c-btn {
  --button-label-inset: 2em;
  justify-content: flex-start;
  min-width: 14em;
  max-width: 100%;
  border: 1px solid var(--color-main);
  border-radius: 999px;
  padding: 1.1em 5em 1.1em var(--button-label-inset);
  font-size: 1rem;
  line-height: 1.8;
  text-align: left;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}
@media only screen and (max-width: 767.98px) {
  .p-contact .c-form__btn .c-btn {
    --button-label-inset: max(1.5em, 3em - 28px);
    min-width: 9.5em;
    padding: 1em 3.25em 1em var(--button-label-inset);
  }
}
.p-contact .c-form__btn .c-btn > span {
  min-width: 0;
}
.p-contact .c-form__btn .c-btn .c-btn__arrow {
  position: absolute;
  top: 50%;
  right: 2em;
  translate: 0 -50%;
}
@media only screen and (max-width: 767.98px) {
  .p-contact .c-form__btn .c-btn .c-btn__arrow {
    right: 0.75em;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-contact .c-form__btn .c-btn:hover {
    border-color: #595959;
    background-color: #595959;
  }
}
.p-contact .c-form__btn .c-btn:focus-visible {
  outline-offset: 5px;
}
.p-contact .c-form__btn .c-btn.--back {
  justify-content: flex-end;
  border-color: #d8d8d8;
  padding-inline: 5em var(--button-label-inset);
  background-color: #fff;
  color: var(--color-main);
}
@media only screen and (max-width: 767.98px) {
  .p-contact .c-form__btn .c-btn.--back {
    padding-inline: 3.25em var(--button-label-inset);
  }
}
.p-contact .c-form__btn .c-btn.--back .c-btn__arrow {
  right: auto;
  left: 2em;
}
@media only screen and (max-width: 767.98px) {
  .p-contact .c-form__btn .c-btn.--back .c-btn__arrow {
    left: 0.75em;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-contact .c-form__btn .c-btn.--back:hover {
    border-color: #d8d8d8;
    background-color: #e8e8e8;
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-contact .c-form__btn .c-btn, .p-contact .c-form__btn .c-btn__arrow {
    transition: none;
  }
}

.p-policy {
  margin-top: clamp(48px, 5.6vw, 80px);
}
.p-policy__inner {
  padding: clamp(20px, 2.6vw, 40px);
  background-color: #f2f0ed;
}
.p-policy__title {
  margin-bottom: 1em;
  font-size: clamp(1.25rem, 0.513vw + 1.135rem, 1.75rem);
  font-weight: 500;
  line-height: 1.65;
}
.p-policy__scroll-box {
  border: 1px solid #d8d4ce;
  background-color: #fff;
  overflow-y: auto;
  line-height: 1.95;
  scrollbar-color: #aaa49b #f5f3f0;
  scrollbar-width: thin;
}
@media only screen and (max-width: 767.98px) {
  .p-policy__scroll-box {
    max-height: min(18.5em, 75svh);
    padding: 1.4em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-policy__scroll-box {
    font-size: 0.875rem;
    max-height: min(22em, 75svh);
    padding: 2.5em;
  }
}
@media print {
  .p-policy__scroll-box {
    max-height: none;
    overflow: visible;
  }
}
.p-policy__document-title {
  margin-bottom: 1.4em;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.65;
}
.p-policy__phrase {
  display: inline-block;
  max-width: 100%;
}
.p-policy__lead, .p-policy__item > p, .p-policy__list {
  text-align: justify;
  overflow-wrap: break-word;
}
.p-policy__lead p + p {
  margin-top: 1em;
}
.p-policy__item {
  margin-top: clamp(28px, 3vw, 40px);
}
.p-policy__item-title {
  margin-bottom: 1em;
  font-weight: 500;
  font-size: 1rem;
  line-height: 1.65;
}
.p-policy__item p + p, .p-policy__item ul + p {
  margin-top: 1em;
}
.p-policy__item a {
  text-decoration: underline;
}
.p-policy__list {
  margin-top: 1em;
}
.p-policy__list li + li {
  margin-top: 0.8em;
}
.p-policy__agree {
  display: flex;
  justify-content: center;
  margin-top: 1.5em;
  font-size: 1rem;
  line-height: 1.8;
  -webkit-user-select: none;
          user-select: none;
}
@media only screen and (max-width: 767.98px) {
  .p-policy__agree {
    padding-inline: 0.2em;
  }
}
@media print, screen and (min-width: 768px) {
  .p-policy__agree {
    padding-inline: 1em;
  }
}
.p-policy__agree .form-check-label span {
  display: inline-block;
  max-width: 100%;
}

/* ========================================================================
/*
/* Utility
/*
========================================================================= */
/* typography
--------------------------------------------------------- */
.u-kome {
  position: relative;
  padding-left: 1.2em;
}
.u-kome::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "※";
}
.u-kome.--inline {
  display: inline;
  padding-left: 0;
}
.u-kome.--inline::before {
  position: static;
  margin-right: 0.2em;
}
.u-kome.--important {
  color: var(--color-accent);
}
.u-kome.--mark-important::before {
  color: var(--color-accent);
}

/* ------------------------------------------------------------------------
/* 印刷用
------------------------------------------------------------------------- */
@media print {
  html {
    font-size: 10px !important;
  }
}
@page {
  size: A4 portrait;
  margin: 8mm;
}