@charset "UTF-8";
/* font-sizeレスポンシブ */
@keyframes p-hero-zoom {
  from {
    transform: scale(1);
  }
  to {
    transform: scale(1.12);
  }
}
@keyframes zoomOut {
  0% {
    transform: scale(2);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes zoomIn {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fadeOut {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rotation {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes slideInRight {
  0% {
    transform: translateX(-100%);
  }
  20% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes slideInLeft {
  0% {
    transform: translateX(100%);
  }
  20% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes slideRight {
  0% {
    transform: translate(-100%, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes slideLeft {
  0% {
    transform: translate(100%, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}
@keyframes slideInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes slideInDown {
  0% {
    opacity: 0;
    transform: translateY(-20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
.fadeIn, .slideInUp, .slideInRight, .slideInLeft, .slideInDown {
  opacity: 0;
}

.fadeIn.is-animated {
  animation: fadeIn 1s ease-in-out both;
}

.slideInUp.is-animated {
  animation: slideInUp 0.6s ease-in-out both;
}

.slideInDown.is-animated {
  animation: slideInDown 0.6s ease-in-out both;
}

.slideInRight.is-animated {
  animation: slideInRight 0.6s ease-in-out both;
}

.slideInLeft.is-animated {
  animation: slideInLeft 0.6s ease-in-out both;
}

@keyframes shrinkDown {
  0% {
    transform: scaleY(1); /* 元の長さ（100%） */
  }
  100% {
    transform: scaleY(0); /* 長さ0になる */
  }
}
@keyframes growRight {
  0% {
    transform: scaleX(0); /* 長さ0（見えない状態）からスタート */
  }
  100% {
    transform: scaleX(1); /* 元の長さ（100%）まで伸びる */
  }
}
@keyframes growDown {
  0% {
    transform: scaleY(0); /* 長さ0（見えない状態）からスタート */
  }
  100% {
    transform: scaleY(1); /* 元の長さ（100%）まで伸びる */
  }
}
/* ==================================
reset
================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
dl,
dd,
figure {
  margin: 0;
}

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

li {
  list-style: none;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  appearance: none;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

address {
  font-style: normal;
}

/* ==================================
base
================================== */
html {
  font-size: 16px;
}

body {
  font-family: "yu-gothic-pr6n, Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic", YuGothic, "游ゴシック体", sans-serif;
  font-weight: 400;
  color: #1f1f1f;
  background: #fff;
  line-height: 2;
  overflow-wrap: break-word;
  word-break: break-word;
  font-size: 1rem;
}
@media screen and (min-width: 768px) {
  body {
    font-size: calc(16px + 1 * (100vw - 768px) / 1152);
  }
}
@media screen and (min-width: 1920px) {
  body {
    font-size: 1.0625rem;
  }
}

#wrapper {
  position: relative;
  overflow-x: clip;
}

#main {
  display: block;
  position: relative;
}

body:not(.home, .model-home) #main {
  background: #e1ddd3;
  margin-bottom: 200px;
}

body.page-template-page-concept #main, body.event-entry #main, body.page-template-page-contact #main {
  background: #f4f2e8;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "yu-gothic-pr6n, Yu Gothic Medium", "游ゴシック Medium", "Yu Gothic", YuGothic, "游ゴシック体", sans-serif;
  font-weight: 700;
  line-height: 1.5;
}

a:not(.wp-block-button__link, .c-button) {
  transition: opacity 0.3s ease, color 0.3s ease;
}
a:not(.wp-block-button__link, .c-button):hover {
  opacity: 0.7;
}

button {
  transition: opacity 0.3s ease;
}
button:hover {
  opacity: 0.7;
}

.l-editor {
  line-height: 1.8;
}
.l-editor > * + * {
  margin-top: 1em;
}
.l-editor::after {
  content: "";
  display: table;
  clear: both;
}
.l-editor h2,
.l-editor h3,
.l-editor h4,
.l-editor h5,
.l-editor h6 {
  margin-top: 3em;
}
.l-editor h2 {
  font-size: 1.1875rem;
}
@media screen and (min-width: 375px) {
  .l-editor h2 {
    font-size: calc(19px + 4 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor h2 {
    font-size: 1.4375rem;
  }
}
.l-editor h3 {
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .l-editor h3 {
    font-size: calc(18px + 3 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor h3 {
    font-size: 1.3125rem;
  }
}
.l-editor h3 {
  border-bottom: 1px solid #bfbfbf;
  padding-bottom: 0.25em;
}
.l-editor h4 {
  font-size: 1.0625rem;
}
@media screen and (min-width: 375px) {
  .l-editor h4 {
    font-size: calc(17px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor h4 {
    font-size: 1.1875rem;
  }
}
.l-editor h5 {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .l-editor h5 {
    font-size: calc(16px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor h5 {
    font-size: 1.0625rem;
  }
}
.l-editor h6 {
  font-size: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .l-editor h6 {
    font-size: calc(15px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor h6 {
    font-size: 1rem;
  }
}
.l-editor :is(h2, h3, h4, h5, h6) + :is(h2, h3, h4, h5, h6) {
  margin-top: 0.75em;
}
.l-editor > :first-child {
  margin-top: 0;
}
.l-editor strong,
.l-editor b {
  font-weight: 700;
}
.l-editor s,
.l-editor del {
  text-decoration: line-through;
}
.l-editor ul,
.l-editor ol {
  margin-top: 0.5em;
}
.l-editor ul li,
.l-editor ol li {
  padding-left: 1em;
  position: relative;
}
.l-editor ul li + li,
.l-editor ol li + li {
  margin-top: 0.25em;
}
.l-editor ul ul,
.l-editor ul ol,
.l-editor ol ul,
.l-editor ol ol {
  margin-left: 1em;
}
.l-editor ul li::before {
  content: "";
  position: absolute;
  left: calc(0.5em - 2px);
  top: calc(0.9em - 2px);
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #000;
}
.l-editor ol {
  counter-reset: editor-num;
}
.l-editor ol li {
  counter-increment: editor-num;
}
.l-editor ol li::before {
  content: counter(editor-num) ".";
  position: absolute;
  left: 0;
  font-weight: 700;
}
.l-editor blockquote {
  padding: 1em 1.5em;
  border-left: 3px solid #c9bfae;
  background: #f4f2e8;
  color: #999393;
}
.l-editor blockquote cite {
  display: block;
  margin-top: 0.5em;
  font-size: 0.8125rem;
  font-style: normal;
  text-align: right;
}
.l-editor blockquote cite::before {
  content: "— ";
}
.l-editor a:not(.wp-block-button__link, .c-button) {
  color: #251c1a;
  text-decoration: underline;
}
.l-editor hr {
  margin-top: 2em;
  border: none;
  border-top: 1px solid #c9bfae;
}
.l-editor .alignleft {
  float: left;
  margin: 0.5em 1.5em 1em 0;
}
.l-editor .alignright {
  float: right;
  margin: 0.5em 0 1em 1.5em;
}
.l-editor .aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.l-editor .wp-caption {
  max-width: 100%;
}
.l-editor .wp-caption img {
  margin-top: 0;
}
.l-editor .wp-caption-text {
  margin-top: 0.5em;
  font-size: 0.8125rem;
  color: #999393;
  text-align: center;
}
.l-editor table {
  width: 100%;
}
.l-editor table th,
.l-editor table td {
  padding: 0.75em 1em;
  border: 1px solid #bfbfbf;
  text-align: left;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .l-editor table th,
  .l-editor table td {
    font-size: calc(14px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .l-editor table th,
  .l-editor table td {
    font-size: 0.9375rem;
  }
}
.l-editor table th {
  background: #f4f2e8;
  font-weight: 700;
}
@media only screen and (max-width: 767px) {
  .l-editor table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}
.l-editor pre {
  padding: 1.25em;
  overflow-x: auto;
  background: #fff;
  border: 1px solid #bfbfbf;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 0.8125rem;
  line-height: 1.7;
}
.l-editor code {
  padding: 0.15em 0.4em;
  background: #f4f2e8;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 0.9em;
}
.l-editor pre code {
  padding: 0;
  background: none;
}

/* ==================================
container
================================== */
.l-container {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
}

.l-inner {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}

.l-page-section {
  padding-top: 150px;
  padding-bottom: 90px;
  padding-left: 15px;
  padding-right: 15px;
}
@media only screen and (max-width: 991px) {
  .l-page-section {
    padding-top: 100px;
  }
}

.l-content {
  background: #fff;
  padding-top: 50px;
  padding-bottom: 100px;
  padding-left: 15px;
  padding-right: 15px;
}

/* ==================================
header
================================== */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: #fff;
}
.l-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  padding-left: 1.5625rem;
}
@media screen and (min-width: 992px) {
  .l-header__inner {
    padding-left: calc(25px + 65 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-header__inner {
    padding-left: 5.625rem;
  }
}
.l-header__inner {
  padding-right: 1.5625rem;
}
@media screen and (min-width: 992px) {
  .l-header__inner {
    padding-right: calc(25px + 35 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-header__inner {
    padding-right: 3.75rem;
  }
}
.l-header__inner {
  padding-top: 30px;
  padding-bottom: 20px;
}
@media only screen and (max-width: 991px) {
  .l-header__inner {
    height: 50px;
    padding-top: 0;
    padding-bottom: 0;
  }
}
.l-header__logo {
  font-weight: bold;
  font-size: 1.625rem;
  letter-spacing: 0.1em;
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  line-height: 1;
}
@media only screen and (max-width: 991px) {
  .l-header__logo {
    font-size: 1.125rem;
  }
}
.l-header__logo a {
  color: #000;
}
.l-header__logo a:hover {
  color: #e1ddd3;
  opacity: 1;
}
.l-header__utility {
  display: flex;
  align-items: center;
}
.l-header__nav {
  font-size: 0.875rem;
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: 700;
  line-height: 1.35;
  color: #000;
}
@media only screen and (max-width: 991px) {
  .l-header__nav {
    display: none;
  }
}
.l-header__nav > ul {
  display: flex;
  align-items: center;
  border-left: 1px solid #000;
}
.l-header__nav > ul > li {
  position: relative;
  padding-right: 1px;
  border-right: 1px solid #000;
}
.l-header__nav > ul > li a {
  display: inline-block;
  padding: 0 1.5em;
}
.l-header__nav > ul > li a:hover {
  color: #e1ddd3;
  opacity: 1;
}

/* ==================================
footer
================================== */
.l-footer__main {
  background: #1f1f1f;
  color: #fff;
  padding-top: 80px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 992px) {
  .l-footer__main {
    padding-left: calc(15px + 85 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-footer__main {
    padding-left: 6.25rem;
  }
}
.l-footer__main {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 992px) {
  .l-footer__main {
    padding-right: calc(15px + 85 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-footer__main {
    padding-right: 6.25rem;
  }
}
.l-footer__main {
  padding-bottom: 10px;
}
.l-footer__grid {
  display: flex;
  justify-content: space-between;
  gap: 2.5rem;
}
@media screen and (min-width: 992px) {
  .l-footer__grid {
    gap: calc(40px + 120 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-footer__grid {
    gap: 10rem;
  }
}
@media only screen and (max-width: 991px) {
  .l-footer__grid {
    flex-direction: column;
    align-items: center;
  }
}
.l-footer__logo {
  letter-spacing: 0.1em;
  font-size: 1.375rem;
}
@media screen and (min-width: 375px) {
  .l-footer__logo {
    font-size: calc(22px + 4 * (100vw - 375px) / 825);
  }
}
@media screen and (min-width: 1200px) {
  .l-footer__logo {
    font-size: 1.625rem;
  }
}
.l-footer__logo {
  font-weight: bold;
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  line-height: 1.25;
}
.l-footer__copy {
  font-size: 0.75rem;
  font-weight: 300;
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.25;
}
.l-footer__widget {
  margin-top: 20px;
  font-size: 0.875rem;
  line-height: 1.643;
}
.l-footer__side {
  align-self: end;
}
@media only screen and (max-width: 991px) {
  .l-footer__side {
    align-self: auto;
  }
}
.l-footer__newsletter {
  margin-top: 30px;
}
@media only screen and (max-width: 991px) {
  .l-footer__newsletter {
    text-align: center;
  }
}
.l-footer__newsletter p {
  font-size: 0.875rem;
  margin-bottom: 10px;
}
.l-footer__newsletter-button {
  display: inline-block;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-size: 0.875rem;
  font-weight: 900;
  background: #fff;
  color: #1f1f1f;
  width: 300px;
  max-width: 100%;
  text-align: center;
  padding: 2px 1em;
  position: relative;
  z-index: 0;
  transition: color 0.2s 0.2s ease-in-out;
}
.l-footer__newsletter-button:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #000;
  z-index: -1;
  transform-origin: right top;
  transform: scaleX(0);
  transition: transform 0.4s ease-in-out;
}
.l-footer__newsletter-button:hover {
  color: #fff;
  opacity: 1;
}
.l-footer__newsletter-button:hover:before {
  transform-origin: left top;
  transform: scaleX(1);
}
@media only screen and (max-width: 991px) {
  .l-footer__newsletter-button {
    width: 244px;
  }
}
.l-footer__nav {
  display: flex;
  margin-left: auto;
  gap: 2.5rem;
}
@media screen and (min-width: 992px) {
  .l-footer__nav {
    gap: calc(40px + 60 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .l-footer__nav {
    gap: 6.25rem;
  }
}
@media only screen and (max-width: 991px) {
  .l-footer__nav {
    display: none;
  }
}
.l-footer__nav-col {
  display: flex;
  flex-direction: column;
  gap: 2.249625rem;
}
.l-footer__nav-list {
  display: flex;
  flex-direction: column;
  font-size: 0.875rem;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  line-height: 2.571;
}
.l-footer__nav-list a:hover {
  opacity: 0.7;
}
.l-footer__nav-list .sub-menu {
  line-height: 2;
}
.l-footer__bottom {
  text-align: center;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  margin-top: 3.125rem;
}
@media screen and (min-width: 992px) {
  .l-footer__bottom {
    margin-top: calc(50px + 90 * (100vw - 992px) / 208);
  }
}
@media screen and (min-width: 1200px) {
  .l-footer__bottom {
    margin-top: 8.75rem;
  }
}

/* ==================================
hamburger
================================== */
.c-hamburger {
  position: relative;
  width: 36px;
  height: 30px;
  flex-shrink: 0;
}
@media only screen and (max-width: 991px) {
  .c-hamburger {
    width: 20px;
    height: 16px;
  }
}
.c-hamburger__line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background: #000;
  transition: transform 0.3s ease, opacity 0.3s ease, top 0.3s ease;
}
.c-hamburger__line:nth-child(1) {
  top: 0;
}
.c-hamburger__line:nth-child(2) {
  top: 50%;
}
.c-hamburger__line:nth-child(3) {
  top: 100%;
}
.c-hamburger:hover {
  opacity: 1;
}
.c-hamburger--close .c-hamburger__line:nth-child(1) {
  top: 50%;
  transform: rotate(42deg);
}
.c-hamburger--close .c-hamburger__line:nth-child(2) {
  opacity: 0;
}
.c-hamburger--close .c-hamburger__line:nth-child(3) {
  top: 50%;
  transform: rotate(-42deg);
}

/* ==================================
icon button（検索アイコン等の丸型ボタン）
================================== */
.c-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.9375rem;
}
@media screen and (min-width: 768px) {
  .c-icon-button {
    margin-right: calc(15px + 35 * (100vw - 768px) / 1152);
  }
}
@media screen and (min-width: 1920px) {
  .c-icon-button {
    margin-right: 3.125rem;
  }
}
.c-icon-button {
  margin-left: 10px;
  padding: 5px 10px;
}
.c-icon-button img, .c-icon-button svg {
  width: 16px;
}
@media only screen and (max-width: 991px) {
  .c-icon-button img, .c-icon-button svg {
    width: 20px;
  }
}

/* ==================================
site search（ヘッダー検索オーバーレイ／popover API）
================================== */
.c-search {
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-size: 0.875rem;
  position: fixed;
  top: 80px;
  left: auto;
  right: 6.25vw;
  margin: 0;
  width: 690px;
  max-width: calc(100% - 6.25vw);
  padding: 0;
  border: none;
  background: transparent;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.25s ease, transform 0.25s ease, overlay 0.25s allow-discrete, display 0.25s allow-discrete;
}
.c-search:popover-open {
  opacity: 1;
  transform: translateY(0);
}
@starting-style {
  .c-search:popover-open {
    opacity: 0;
    transform: translateY(-8px);
  }
}
.c-search::backdrop {
  background: rgba(31, 31, 31, 0.63);
  opacity: 0;
  transition: opacity 0.25s ease, overlay 0.25s allow-discrete, display 0.25s allow-discrete;
}
.c-search:popover-open::backdrop {
  opacity: 1;
}
@starting-style {
  .c-search:popover-open::backdrop {
    opacity: 0;
  }
}
@media only screen and (max-width: 991px) {
  .c-search {
    top: 50px;
    right: 0;
    width: 100%;
    max-width: 100%;
  }
}
.c-search__form {
  display: flex;
  align-items: center;
  padding: 0.75em 20px;
  background: #fff;
  border-radius: 2px;
}
@media only screen and (max-width: 991px) {
  .c-search__form {
    border-radius: 0;
  }
}
.c-search__icon {
  width: 16px;
  opacity: 0.6;
  margin-right: 20px;
}
.c-search__input {
  flex: 1;
  min-width: 0;
  padding: 0 0.5em;
  font-size: 1rem;
}
.c-search__input::placeholder {
  color: rgba(0, 0, 0, 0.25);
  font-weight: bold;
  font-size: 0.875rem;
}
.c-search__close {
  font-size: 1.375rem;
  color: rgba(0, 0, 0, 0.4);
  padding: 0 5px;
  line-height: 1;
}

/* ==================================
drawer（ハンバーガーメニュー／popover API）
SP・TB：右からスライドインする全高パネル（2カラム）
PC：ヘッダーから垂れ下がるメガメニュー（3カラム・コンテンツ高さ）
================================== */
.c-drawer {
  position: fixed;
  top: 80px;
  left: auto;
  right: 0;
  margin: 0;
  width: 1200px;
  max-width: 100%;
  max-height: calc(100dvh - 80px);
  padding: 0;
  border: none;
  background: #1f1f1f;
  color: #fff;
  transform: translate(20px, -20px);
  transition: opacity 0.3s ease, transform 0.3s ease, overlay 0.3s allow-discrete, display 0.3s allow-discrete;
  opacity: 0;
  line-height: 1.25;
}
.c-drawer:popover-open {
  transform: translate(0, 0);
  opacity: 1;
}
@starting-style {
  .c-drawer:popover-open {
    transform: translate(20px, -20px);
    opacity: 0;
  }
}
.c-drawer::backdrop {
  background: transparent;
}
@media only screen and (max-width: 991px) {
  .c-drawer {
    top: 0;
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    transform: translate(100%);
    transition: transform 0.4s ease, overlay 0.4s allow-discrete, display 0.4s allow-discrete;
    opacity: 1;
  }
  .c-drawer:popover-open {
    transform: translateX(0);
  }
  @starting-style {
    .c-drawer:popover-open {
      transform: translateX(100%);
    }
  }
}
.c-drawer__close {
  display: none;
}
@media only screen and (max-width: 991px) {
  .c-drawer__close {
    display: block;
    position: absolute;
    top: 0;
    right: 25px;
    width: 20px;
    height: 50px;
  }
}
.c-drawer__close-line {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  background: #fff;
}
.c-drawer__close-line:nth-child(1) {
  transform: translate(-50%, -50%) rotate(42deg);
}
.c-drawer__close-line:nth-child(2) {
  transform: translate(-50%, -50%) rotate(-42deg);
}
.c-drawer__inner {
  height: auto;
  overflow-y: auto;
  max-height: 100%;
  padding: 70px 150px 60px 150px;
  padding-top: 3.75rem;
}
@media screen and (min-width: 992px) {
  .c-drawer__inner {
    padding-top: calc(60px + 10 * (100vw - 992px) / 208);
  }
}
@media screen and (min-width: 1200px) {
  .c-drawer__inner {
    padding-top: 4.375rem;
  }
}
.c-drawer__inner {
  padding-right: 1.25rem;
}
@media screen and (min-width: 375px) {
  .c-drawer__inner {
    padding-right: calc(20px + 130 * (100vw - 375px) / 825);
  }
}
@media screen and (min-width: 1200px) {
  .c-drawer__inner {
    padding-right: 9.375rem;
  }
}
.c-drawer__inner {
  padding-bottom: 1.875rem;
}
@media screen and (min-width: 992px) {
  .c-drawer__inner {
    padding-bottom: calc(30px + 30 * (100vw - 992px) / 208);
  }
}
@media screen and (min-width: 1200px) {
  .c-drawer__inner {
    padding-bottom: 3.75rem;
  }
}
.c-drawer__inner {
  padding-left: 1.25rem;
}
@media screen and (min-width: 375px) {
  .c-drawer__inner {
    padding-left: calc(20px + 130 * (100vw - 375px) / 825);
  }
}
@media screen and (min-width: 1200px) {
  .c-drawer__inner {
    padding-left: 9.375rem;
  }
}
@media only screen and (max-width: 991px) {
  .c-drawer__inner {
    height: 100%;
  }
}
.c-drawer__layout--sp {
  display: none;
}
@media only screen and (max-width: 991px) {
  .c-drawer__layout--sp {
    display: block;
  }
}
.c-drawer__layout--pc {
  display: block;
}
@media only screen and (max-width: 991px) {
  .c-drawer__layout--pc {
    display: none;
  }
}
.c-drawer__columns {
  display: flex;
}
@media only screen and (max-width: 991px) {
  .c-drawer__columns {
    gap: 20px;
  }
}
.c-drawer__columns--bottom {
  margin-top: 40px;
}
.c-drawer__columns--pc {
  display: flex;
  justify-content: space-between;
}
.c-drawer__col {
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 991px) {
  .c-drawer__col {
    flex: 1;
  }
}
.c-drawer__col:not(:first-child) {
  margin-top: 76px;
}
.c-drawer__menu {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.c-drawer__menu:not(:first-child) {
  margin-top: 116px;
}
.c-drawer__menu--right {
  gap: 50px;
}
.c-drawer__menu--main-bottom {
  gap: 20px;
  margin-top: 40px !important;
}
@media only screen and (max-width: 991px) {
  .c-drawer__menu--main-bottom {
    margin-top: 50px !important;
  }
}
.c-drawer__menu-item a {
  display: inline-block;
}
.c-drawer__menu-item a:hover {
  color: #e1ddd3;
}
.c-drawer__menu-en {
  display: block;
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: bold;
}
.c-drawer__menu-ja {
  display: block;
  font-weight: 500;
  font-size: 1.0625rem;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
}
.c-drawer__submenu {
  font-size: 0.8125rem;
  font-weight: 500;
  margin-top: 0.5em;
}
.c-drawer__submenu-item a {
  position: relative;
  padding-left: 1.25em;
}
.c-drawer__submenu-item a:before {
  content: "ー";
  display: inline-block;
  width: 1em;
  text-align: center;
  position: absolute;
  top: 0;
  left: 0;
}
.c-drawer__submenu-item a:hover {
  color: #e1ddd3;
}
.c-drawer__foot {
  margin-top: auto;
  padding: 40px 5px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 30px;
}
@media only screen and (max-width: 991px) {
  .c-drawer .c-drawer__brand img {
    width: 84px;
  }
}
.c-drawer__brand-block {
  margin-top: auto;
  padding-top: 40px;
}
.c-drawer__social {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 1em;
}
@media only screen and (max-width: 991px) {
  .c-drawer .c-drawer__social {
    margin-top: 0;
    flex: 1;
    justify-content: center;
    gap: 0;
  }
}
@media only screen and (max-width: 991px) {
  .c-drawer .c-drawer__social li {
    padding: 0 20px;
  }
}
.c-drawer__social a:hover {
  opacity: 0.7;
}

/* ==================================
button（背景色はリッチブラックに統一）
================================== */
.c-button {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 335px;
  max-width: 100%;
  padding: 1em 2em;
  background: #000;
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 500;
  border-radius: 5px;
  line-height: 1.6;
  letter-spacing: 0.075em;
  border: 1px solid #000;
  cursor: pointer;
  transition: opacity 0.3s ease, background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.c-button:hover {
  opacity: 0.7;
}
.c-button--small {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .c-button--small {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-button--small {
    font-size: 1.125rem;
  }
}
.c-button--small {
  width: auto;
  line-height: 1.5;
  padding: 0.5em 1.5em;
}
.c-button--outline {
  background: #fff;
  color: #000;
  border-color: #000;
}
.c-button:disabled {
  background: #dededf;
  border-color: #dededf;
  color: #fff;
  cursor: not-allowed;
  opacity: 1;
}
.c-button--disabled {
  background: #dededf;
  border-color: #dededf;
  color: #fff;
  pointer-events: none;
}
.c-button--round {
  width: auto;
  border-radius: 9999px;
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  padding: 0.2em 0.6em;
}

/* ==================================
tag
================================== */
.c-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: bold;
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  line-height: 1;
  padding: 1px 0.95em;
  border-radius: 999px;
  border: 1px solid #1f1f1f;
  letter-spacing: 0.05em;
}

.c-tag-group {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

/* ==================================
tag（lives専用：カテゴリー以外の属性タグ／NEWバッジ。カード一覧・詳細ページ共通）
================================== */
.c-tag-lives {
  display: inline-block;
  text-align: center;
  padding: 5px;
  font-size: 0.8125rem;
  font-weight: 500;
  background: #e1ddd3;
  line-height: 1;
  min-width: calc(3em + 10px);
}
.c-tag-lives--new {
  background: #9a5060;
  color: #fff;
}

/* ==================================
tag（イベント詳細専用：NEW／種別／申込状況バッジ）
================================== */
.c-tag-event {
  display: inline-block;
  text-align: center;
  padding: 5px;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  background: #d6d4d4;
  min-width: calc(3em + 10px);
}
.c-tag-event:is(a):hover {
  opacity: 0.7;
}
.c-tag-event--new {
  background: #9a5060;
}
.c-tag-event--type {
  color: #1f1f1f;
}
.c-tag-event--status-open {
  background: #929e85;
}
.c-tag-event--status-closed {
  background: #9a5060;
}

/* ==================================
section heading
================================== */
.c-section-heading {
  text-align: center;
}
.c-section-heading__icon {
  display: flex;
  justify-content: center;
  margin-bottom: 1em;
}
.c-section-heading__label {
  display: block;
  letter-spacing: 0.2em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: bold;
  line-height: 1.5;
  font-size: 0.75rem;
  color: #251c1a;
}
.c-section-heading__title {
  display: block;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: bold;
  font-size: 1.25rem;
  line-height: 1.5;
}
.c-section-heading__lead {
  margin-top: 1.5em;
  line-height: 2;
}
.c-section-heading--left {
  text-align: left;
}
.c-section-heading--on-dark .c-section-heading__label {
  color: #fff;
}
.c-section-heading--on-dark .c-section-heading__title,
.c-section-heading--on-dark .c-section-heading__lead {
  color: #fff;
}

/* ==================================
page title（ページ最上部の見出し。他のページとも共通で使う）
================================== */
.c-page-title {
  padding-bottom: 10px;
}
.c-page-title__label {
  display: block;
  letter-spacing: 0.2em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: 300;
  line-height: 1;
  font-size: 2.5rem;
}
@media screen and (min-width: 375px) {
  .c-page-title__label {
    font-size: calc(40px + 20 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-page-title__label {
    font-size: 3.75rem;
  }
}
.c-page-title__label {
  color: #251c1a;
}
.c-page-title__title {
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: bold;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .c-page-title__title {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-page-title__title {
    font-size: 1.125rem;
  }
}
.c-page-title__title {
  line-height: 1.75;
}
.c-page-title__count {
  margin-top: 0.5em;
  font-size: 0.875rem;
  color: #999393;
}

/* ==================================
arrow link（詳しく見る／もっと見る）
================================== */
.c-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 1.75em;
  font-size: 0.75rem;
}
@media screen and (min-width: 375px) {
  .c-arrow-link {
    font-size: calc(12px + 6 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-arrow-link {
    font-size: 1.125rem;
  }
}
.c-arrow-link {
  line-height: 1;
  letter-spacing: 0.06em;
  color: #000;
}
.c-arrow-link__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
}
@media screen and (min-width: 375px) {
  .c-arrow-link__icon {
    width: calc(18px + 8 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-arrow-link__icon {
    width: 1.625rem;
  }
}
.c-arrow-link__icon {
  height: 1.125rem;
}
@media screen and (min-width: 375px) {
  .c-arrow-link__icon {
    height: calc(18px + 8 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-arrow-link__icon {
    height: 1.625rem;
  }
}
.c-arrow-link__icon {
  background: #231815;
  border-radius: 50%;
}
.c-arrow-link__icon img {
  width: 0.375rem;
}
@media screen and (min-width: 375px) {
  .c-arrow-link__icon img {
    width: calc(6px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-arrow-link__icon img {
    width: 0.5rem;
  }
}

.c-arrow-link--light .c-arrow-link__icon {
  background: #e1ddd3;
}

/* ==================================
lives card（写真ホバー時拡大／カードは白、セクション背景は薄いベージュ）
================================== */
.c-card-lives {
  display: block;
  background: #fff;
  box-shadow: 12px 12px 0 -6px #cccac8;
  max-width: 380px;
  border: 6px solid #fff;
  position: relative;
}
.c-card-lives__thumb {
  display: block;
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  opacity: 1 !important;
}
.c-card-lives__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease-in-out;
}
.c-card-lives__img:hover {
  transform: scale(1.08);
}
.c-card-lives__badge {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  padding: 1px 0.5em;
  min-width: 7em;
  font-size: 0.75rem;
}
@media screen and (min-width: 375px) {
  .c-card-lives__badge {
    font-size: calc(12px + 2 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-lives__badge {
    font-size: 0.875rem;
  }
}
.c-card-lives__badge {
  line-height: 1.5;
  font-weight: bold;
  background: #98938d;
  color: #fff;
  text-align: center;
}
.c-card-lives__body {
  padding: 20px 10px 70px;
}
.c-card-lives__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.c-card-lives__meta {
  font-size: 0.75rem;
}
@media screen and (min-width: 375px) {
  .c-card-lives__meta {
    font-size: calc(12px + 3 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-lives__meta {
    font-size: 0.9375rem;
  }
}
.c-card-lives__meta {
  line-height: 1.5;
}
.c-card-lives__title {
  display: block;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .c-card-lives__title {
    font-size: calc(16px + 1 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-lives__title {
    font-size: 1.0625rem;
  }
}
.c-card-lives__title {
  font-weight: bold;
  line-height: 1.75;
  margin-top: 0.25em;
}
.c-card-lives__link-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: auto;
  background: #231815;
  color: #fff;
  border-radius: 50%;
  position: absolute;
  bottom: 10px;
  right: 10px;
}
.c-card-lives__link-icon img {
  width: 6px;
}

.c-card-lives-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 380px));
  justify-content: space-between;
  gap: 100px 20px;
}
@media only screen and (max-width: 991px) {
  .c-card-lives-grid {
    grid-template-columns: repeat(2, minmax(0, 380px));
    gap: 50px 20px;
  }
}
@media only screen and (max-width: 767px) {
  .c-card-lives-grid {
    grid-template-columns: auto;
    justify-content: center;
  }
}
@media only screen and (max-width: 767px) {
  .c-card-lives-grid.swiper {
    display: block;
  }
  .c-card-lives-grid.swiper .c-card-lives {
    width: 91%;
    height: auto;
    animation: none;
    opacity: 1;
  }
}

/* ==================================
information list（お知らせ／イベント／コラム）
================================== */
.c-info-list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.c-info-list__item {
  display: block;
}
.c-info-list__head {
  display: block;
  line-height: 1.5;
  font-size: 0.75rem;
}
.c-info-list__date {
  color: #000;
  letter-spacing: 0.1em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
}
.c-info-list__title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.c-info-list__badge {
  flex-shrink: 0;
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  background: #9a5060;
  padding: 5px 10px;
}
.c-info-list__title {
  font-weight: bold;
  font-size: 1.0625rem;
  letter-spacing: 0.025em;
  line-height: 1.75;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.c-info-list__desc {
  margin-top: 0.4em;
  font-size: 0.875rem;
  line-height: 1.75;
  letter-spacing: 0.1em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.c-info-list__desc--single {
  display: block;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.c-info-list__meta {
  margin-top: 0.75em;
  display: block;
  font-size: 0.9375rem;
  font-weight: bold;
  color: #000;
  letter-spacing: 0.025em;
  line-height: 1.7;
}
.c-info-list__meta-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.c-info-list__meta-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}
.c-info-list__meta-text {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==================================
cta box（モデルハウスを体感／個別相談）
================================== */
.c-cta-box-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 12px 0;
}
@media only screen and (max-width: 767px) {
  .c-cta-box-grid {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 6px 0;
  }
}

.c-cta-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 30px 15px 50px;
  background: #e1ddd3;
  transition: background-color 0.3s ease-in-out;
}
@media only screen and (max-width: 767px) {
  .c-cta-box {
    padding-top: 40px;
  }
}
.c-cta-box:hover {
  background: #c8ced0;
}
.c-cta-box__icon {
  max-width: 34px;
}
.c-cta-box__text {
  margin-top: 15px;
  letter-spacing: 0.09em;
  color: #231815;
}
@media only screen and (max-width: 767px) {
  .c-cta-box__text {
    margin-top: 20px;
  }
}
.c-cta-box__button {
  margin-top: 20px;
}
@media only screen and (max-width: 767px) {
  .c-cta-box__button {
    margin-top: 25px;
  }
}

/* ==================================
accordion（<details>/<summary>によるネイティブ開閉。JS不要）
================================== */
.c-accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 5px 30px 5px 35px;
  background: #000;
  color: #fff;
  font-size: 0.9375rem;
  letter-spacing: 0.15em;
  line-height: 2;
  cursor: pointer;
  list-style: none;
}
@media only screen and (max-width: 767px) {
  .c-accordion__summary {
    padding-left: 25px;
    padding-right: 20px;
  }
}
.c-accordion__summary::-webkit-details-marker {
  display: none;
}
.c-accordion__chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 10px;
  background-color: currentColor;
  mask: url("../../images/common/ico-chevron.svg") no-repeat center/contain;
  -webkit-mask: url("../../images/common/ico-chevron.svg") no-repeat center/contain;
  transition: transform 0.3s ease;
}
.c-accordion[open] .c-accordion__chevron {
  transform: rotate(180deg);
}
.c-accordion__body {
  display: grid;
  grid-template-rows: 0fr;
  background: #f4f2e8;
  transition: grid-template-rows 0.3s ease;
}
.c-accordion[open] .c-accordion__body {
  grid-template-rows: 1fr;
}
.c-accordion__body-inner {
  overflow: hidden;
  min-height: 0;
  padding: 0 1em;
  font-size: 0.9375rem;
  line-height: 1.5;
}

/* ==================================
page top（フローティングのページ先頭へ戻るボタン）
一定量スクロールでフェードイン→#mainの下端に達したら
position: fixedからabsoluteに切り替えてその場に留まり、フッターと重ならないようにする
（#mainをposition: relativeにし、その下端にabsolute配置でドッキングさせる仕組み）
================================== */
.c-page-top {
  position: fixed;
  right: 2em;
  bottom: 20px;
  z-index: 5000;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6em;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: 0.4s ease-in-out;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-size: 0.625rem;
}
@media screen and (min-width: 1360px) {
  .c-page-top {
    font-size: calc(10px + 8 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .c-page-top {
    font-size: 1.125rem;
  }
}
.c-page-top {
  font-weight: bold;
  line-height: 1;
}
@media only screen and (max-width: 991px) {
  .c-page-top {
    display: none;
  }
}
.c-page-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.c-page-top.is-visible:hover {
  opacity: 0.7;
}
.c-page-top.is-docked {
  position: absolute;
  bottom: 20px;
}
.c-page-top__arrow {
  position: relative;
  display: block;
  height: 3em;
  width: 0.5em;
}
.c-page-top__arrow:before, .c-page-top__arrow:after {
  content: "";
  position: absolute;
  background: #1f1f1f;
}
.c-page-top__arrow:before {
  top: 0;
  right: 0;
  width: 1px;
  height: 1.2em;
  transform-origin: right top;
  transform: rotate(21deg);
}
.c-page-top__arrow:after {
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  transform-origin: top center;
  transform: translateX(-50%);
}

/* ==================================
c-form（Contact Form 7 共通スタイル。イラレ「イベント申込」準拠）
どのCF7フォームでも `.c-form` でラップし、行を `.c-form__row`（ラベル＋入力の2カラム）で
組むことで同じ見た目を再現できる。ラベル文言は Confirm Plus Contact Form 7 が認識できるよう
`title-contactform7 for-{フィールド名}` クラス（または fieldset+legend）を必ず添える。
================================== */
.c-form {
  max-width: 1280px;
  margin: 0 auto;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .c-form {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form {
    font-size: 1.125rem;
  }
}
.c-form__note {
  margin-bottom: 1em;
  line-height: 1.8;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form__note {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form__note {
    font-size: 1rem;
  }
}
.c-form__note a {
  text-decoration: underline;
}
.c-form__section-note {
  margin: 1em auto;
  text-align: center;
  line-height: 1.8;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form__section-note {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form__section-note {
    font-size: 1rem;
  }
}
.c-form__section-note a {
  text-decoration: underline;
}
.c-form__body {
  border-top: 2px solid #cccac8;
  border-bottom: 1px solid #cccac8;
}
.c-form__row {
  display: grid;
  grid-template-columns: 20em 1fr;
  align-items: stretch;
  border-bottom: 1px solid #cccac8;
}
@media only screen and (max-width: 767px) {
  .c-form__row {
    grid-template-columns: 1fr;
  }
}
.c-form__row[hidden] {
  display: none;
}
.c-form__fieldset {
  display: contents;
}
.c-form__label,
.c-form legend.c-form__label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1em 2em;
  background: #e1ddd3;
  font-weight: bold;
  letter-spacing: 0.1em;
}
@media only screen and (max-width: 767px) {
  .c-form__label,
  .c-form legend.c-form__label {
    padding: 1em;
  }
}
.c-form__required {
  margin-left: 1em;
  color: #d55951;
}
.c-form__control {
  min-width: 0;
  padding: 1em 3em;
  background: #fff;
}
@media only screen and (max-width: 767px) {
  .c-form__control {
    padding: 1em;
  }
}
.c-form input[type=text],
.c-form input[type=email],
.c-form input[type=tel],
.c-form input[type=number],
.c-form textarea {
  max-width: 100%;
  padding: 0.3em 1em;
  background: #fff;
  border: 2px solid #dededf;
  border-radius: 3px;
  font-size: 1em;
  font-family: inherit;
  letter-spacing: 0.1em;
}
.c-form input[type=text]::placeholder,
.c-form input[type=email]::placeholder,
.c-form input[type=tel]::placeholder,
.c-form input[type=number]::placeholder,
.c-form textarea::placeholder {
  color: #dededf;
}
.c-form input[readonly] {
  background: #fff;
  border-color: #fff;
  font-weight: bold;
  padding: 0;
  cursor: default;
  width: 100%;
}
.c-form input[type=radio],
.c-form input[type=checkbox] {
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  position: relative;
  width: 1.5em;
  height: 1.5em;
  margin: 0 0.25em 0 0;
  background: #fff;
  border: 2px solid #dededf;
  cursor: pointer;
  transition: border-color 0.2s ease-in-out, background-color 0.2s ease-in-out;
  vertical-align: middle;
}
.c-form input[type=radio] {
  border-radius: 50%;
}
.c-form input[type=radio]:checked::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.6em;
  height: 0.6em;
  background: #000;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.c-form input[type=checkbox] {
  border-radius: 0;
}
.c-form input[type=checkbox]:checked {
  background: #000;
  border-color: #000;
}
.c-form input[type=checkbox]:checked::before {
  content: "";
  position: absolute;
  top: 44%;
  left: 50%;
  width: 0.3em;
  height: 0.6em;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: translate(-50%, -55%) rotate(45deg);
}
.c-form .wpcf7-radio,
.c-form .wpcf7-checkbox {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 2em;
}
.c-form .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  margin: 0;
}
.c-form__control--inline {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.c-form__control--stack .wpcf7-radio,
.c-form__control--stack .wpcf7-checkbox {
  flex-direction: column;
  gap: 0.75em;
}
.c-form__control--stack .wpcf7-list-item {
  width: 100%;
}
.c-form__unit {
  margin-left: 0.5em;
}
.c-form__address {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c-form__address-item {
  display: flex;
  flex-direction: column;
  gap: 0.4em;
}
.c-form__address-label {
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form__address-label {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form__address-label {
    font-size: 1rem;
  }
}
.c-form__address-label {
  font-weight: 500;
}
.c-form__acceptance {
  padding-top: 1em;
  text-align: center;
}
.c-form__acceptance-note {
  margin-top: 1em;
  text-align: center;
  line-height: 1.8;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form__acceptance-note {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form__acceptance-note {
    font-size: 1rem;
  }
}
.c-form__acceptance-note a {
  text-decoration: underline;
}
.c-form__privacy-policy {
  width: 700px;
  max-width: 90%;
  max-height: 200px;
  overflow-y: auto;
  margin: 30px auto;
  padding: 1em;
  background: #fff;
  border: 1px solid #dededf;
  border-radius: 2px;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form__privacy-policy {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form__privacy-policy {
    font-size: 1rem;
  }
}
.c-form__submit {
  margin-top: 2.5em;
  text-align: center;
}
.c-form .wpcf7-spinner {
  display: none;
}
.c-form .wpcf7-list-item-label {
  vertical-align: middle;
}
.c-form .wpcf7-not-valid-tip {
  display: block;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .c-form .wpcf7-not-valid-tip {
    font-size: calc(14px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-form .wpcf7-not-valid-tip {
    font-size: 1rem;
  }
}
.c-form .wpcf7-not-valid-tip {
  color: #d55951;
}

.wpcf7 form .wpcf7-response-output {
  background: #fff;
}

/* ==================================
Confirm Plus Contact Form 7 の確認画面（#wpcf7cpcnf）。
プラグインが自動生成するtable/tr/th/tdのマークアップ自体は変更できないため、
.c-form__rowと同じ見た目になるようdisplay:block/gridで上書きしてスタイルだけ合わせる。
================================== */
div#wpcf7cpcnf {
  max-width: 1280px;
  margin: 0 auto;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  div#wpcf7cpcnf {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  div#wpcf7cpcnf {
    font-size: 1.125rem;
  }
}
div#wpcf7cpcnf table {
  display: block;
  width: 100%;
  border-collapse: collapse;
  border-top: 2px solid #cccac8;
  border-bottom: 1px solid #cccac8;
}
div#wpcf7cpcnf tbody {
  display: block;
}
div#wpcf7cpcnf tr {
  display: grid;
  grid-template-columns: 20em 1fr;
  align-items: stretch;
  border-bottom: 1px solid #cccac8;
  margin-bottom: 0;
}
@media only screen and (max-width: 767px) {
  div#wpcf7cpcnf tr {
    grid-template-columns: 1fr;
  }
}
div#wpcf7cpcnf th,
div#wpcf7cpcnf td {
  width: 100%;
  min-width: 0;
  text-align: left;
  font-weight: normal;
  letter-spacing: 0.1em;
}
div#wpcf7cpcnf th p,
div#wpcf7cpcnf td p {
  margin: 0;
}
div#wpcf7cpcnf th {
  display: flex;
  align-items: center;
  padding: 1em 2em;
  background: #e1ddd3;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  div#wpcf7cpcnf th {
    padding: 1em;
  }
}
div#wpcf7cpcnf td {
  display: block;
  padding: 1em 3em;
  background: #fff;
}
@media only screen and (max-width: 767px) {
  div#wpcf7cpcnf td {
    padding: 1em;
  }
}
div#wpcf7cpcnf .wpcf7cp-btns {
  margin-top: 2.5em;
  display: flex;
  justify-content: center;
  gap: 1em;
}
@media only screen and (max-width: 767px) {
  div#wpcf7cpcnf .wpcf7cp-btns {
    flex-direction: column-reverse;
    align-items: center;
  }
}
div#wpcf7cpcnf button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  max-width: 100%;
  padding: 1em 2em;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.075em;
  border-radius: 5px;
  cursor: pointer;
  transition: opacity 0.3s ease, background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
div#wpcf7cpcnf button:hover {
  opacity: 0.7;
}
div#wpcf7cpcnf .wpcf7cp-cfm-submit-btn {
  width: 335px;
  background: #000;
  color: #fff;
  border: 1px solid #000;
}
div#wpcf7cpcnf .wpcf7cp-cfm-edit-btn {
  background: #fff;
  color: #000;
  border: 1px solid #000;
}

/* ==================================
post nav（前後の投稿へのナビゲーション。事例／イベント詳細で共通使用。
お知らせ・コラムの詳細ページでも同じものを使う予定）
================================== */
.c-post-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-top: 1em;
  margin-top: 1em;
  border-top: 1px solid #8f98a1;
  line-height: 1.5;
  font-size: 0.75rem;
}
@media screen and (min-width: 375px) {
  .c-post-nav {
    font-size: calc(12px + 3 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-post-nav {
    font-size: 0.9375rem;
  }
}
.c-post-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.67em;
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
}
.c-post-nav__link--prev {
  justify-self: start;
}
.c-post-nav__link--next {
  justify-self: end;
}
.c-post-nav__arrow {
  display: flex;
  width: 3.8em;
  height: 2px;
  position: relative;
}
@media only screen and (max-width: 499px) {
  .c-post-nav__arrow {
    width: 2em;
  }
}
.c-post-nav__arrow:before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 1px;
  background: #000;
  position: absolute;
  bottom: 0;
  left: 0;
}
.c-post-nav__arrow:after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 0.67em;
  background: #000;
  position: absolute;
  bottom: 0;
  right: 0;
  transform-origin: left bottom;
  transform: rotate(-58deg);
}
.c-post-nav__link--prev .c-post-nav__arrow {
  transform: scaleX(-1);
}
.c-post-nav__list {
  display: inline-block;
  padding-top: calc(24px + 0.5em);
  background-image: url("../../images/common/ico-grid.svg");
  background-size: 24px;
  background-repeat: no-repeat;
  background-position: center top;
  color: #231815;
}

/* ==================================
post meta（投稿日＋カテゴリ。お知らせ／コラム単体ページの見出し直下に使用）
================================== */
.c-post-meta {
  display: flex;
  align-items: center;
  gap: 1em;
}
.c-post-meta__date {
  color: #7a7a7a;
}

/* ==================================
post content（お知らせ／コラム単体ページの本文ラッパー。
イベント詳細のp-event-single__contentと同じ白背景カード）
================================== */
.c-post-content {
  background: #fff;
  padding-top: 50px;
  padding-bottom: 90px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .c-post-content {
    padding-left: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-post-content {
    padding-left: 3.75rem;
  }
}
.c-post-content {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .c-post-content {
    padding-right: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-post-content {
    padding-right: 3.75rem;
  }
}
.c-post-content .c-tag-group {
  margin-bottom: 0.25em;
}
.c-post-content__title {
  margin-top: 0.6em;
  font-weight: bold;
  line-height: 1.5;
  font-size: 1.375rem;
}
@media screen and (min-width: 375px) {
  .c-post-content__title {
    font-size: calc(22px + 14 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .c-post-content__title {
    font-size: 2.25rem;
  }
}
.c-post-content__title {
  letter-spacing: 0.05em;
}
.c-post-content__main-image {
  margin-top: 30px;
}
.c-post-content__main-image img {
  max-width: 100%;
  height: auto;
}
.c-post-content__body {
  margin-top: 50px;
}
.c-post-content__pdf {
  margin-top: 50px;
}
.c-post-content__pdf a {
  display: block;
  transition: opacity 0.3s ease;
}
.c-post-content__pdf a:hover {
  opacity: 0.7;
}
.c-post-content__pdf img {
  width: 100%;
  height: auto;
}
.c-post-content__hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1em;
  font-size: 0.875rem;
  color: #999393;
  margin-top: 30px;
  font-weight: bold;
}
.c-post-content .c-post-nav {
  margin: 70px auto 0;
  width: 840px;
  max-width: 100%;
}

/* ==================================
event card（イベント一覧のカード。写真＋申込状況バッジ／種別／開催日時・場所／詳しく見る）
lives（事例）カードと違い、白背景・シャドウ・枠は無く、ページ背景の上に直接乗る平面的な見た目
================================== */
.c-card-event {
  display: flex;
  flex-direction: column;
  width: 400px;
  max-width: 100%;
  margin: 0 auto;
  height: 100%;
  padding-left: 15px;
  padding-right: 15px;
  padding-bottom: 10px;
}
.c-card-event__thumb {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  opacity: 1 !important;
}
.c-card-event__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease-in-out;
}
.c-card-event__img:hover {
  transform: scale(1.08);
}
.c-card-event__status {
  position: absolute;
  top: 0;
  left: 0;
}
.c-card-event__body {
  margin-top: 15px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.c-card-event__title {
  padding: 15px 0;
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .c-card-event__title {
    font-size: calc(18px + 2 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-event__title {
    font-size: 1.25rem;
  }
}
.c-card-event__title {
  font-weight: bold;
  line-height: 1.7;
  flex: 1;
}
.c-card-event__hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1em;
  font-size: 0.8125rem;
  color: #7a7a7a;
  font-weight: 500;
  margin-bottom: 15px;
  margin-top: -10px;
}
.c-card-event__meta {
  padding-top: 20px;
  border-top: 1px solid #cccac8;
  font-size: 0.8125rem;
}
@media screen and (min-width: 375px) {
  .c-card-event__meta {
    font-size: calc(13px + 2 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-event__meta {
    font-size: 0.9375rem;
  }
}
.c-card-event__meta {
  font-weight: 500;
}
.c-card-event__meta-row {
  display: flex;
}
.c-card-event__meta-label {
  flex: 0 0 4em;
  color: #7a7a7a;
}
.c-card-event__meta-value {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.c-card-event__link {
  margin-top: 1.5em;
}

.c-card-event-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 80px 1px;
  padding-left: 0rem;
}
@media screen and (min-width: 992px) {
  .c-card-event-grid {
    padding-left: calc(0px + 34 * (100vw - 992px) / 368);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-event-grid {
    padding-left: 2.125rem;
  }
}
.c-card-event-grid {
  padding-right: 0rem;
}
@media screen and (min-width: 992px) {
  .c-card-event-grid {
    padding-right: calc(0px + 34 * (100vw - 992px) / 368);
  }
}
@media screen and (min-width: 1360px) {
  .c-card-event-grid {
    padding-right: 2.125rem;
  }
}
@media only screen and (max-width: 991px) {
  .c-card-event-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media only screen and (max-width: 767px) {
  .c-card-event-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 50px;
  }
}
.c-card-event-grid__item {
  position: relative;
}
.c-card-event-grid__item:after {
  content: "";
  display: none;
  position: absolute;
  top: 0;
  left: 100%;
  width: 1px;
  height: 100%;
  background: #cccac8;
}
@media only screen and (min-width: 992px) {
  .c-card-event-grid__item:nth-child(3n+1):after, .c-card-event-grid__item:nth-child(3n+2):after {
    display: block;
  }
}
@media only screen and (min-width: 768px) and (max-width: 992px) {
  .c-card-event-grid__item:nth-child(2n+1):after {
    display: block;
  }
}

/* ==================================
pagination（事例／お知らせ／イベント／コラム、各アーカイブ共通）
================================== */
.c-pagination .nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 5px;
}
.c-pagination .page-numbers {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  border: 1px solid #231815;
  background: #e1ddd3;
  font-size: 0.875rem;
  min-width: 1.875rem;
}
@media screen and (min-width: 500px) {
  .c-pagination .page-numbers {
    min-width: calc(30px + 10 * (100vw - 500px) / 860);
  }
}
@media screen and (min-width: 1360px) {
  .c-pagination .page-numbers {
    min-width: 2.5rem;
  }
}
.c-pagination .page-numbers {
  color: #231815;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: bold;
}
.c-pagination .page-numbers.next, .c-pagination .page-numbers.prev {
  font-family: "zen-kaku-gothic-new", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-size: 0.9375rem;
  font-weight: 400;
  min-width: 2.8125rem;
}
@media screen and (min-width: 500px) {
  .c-pagination .page-numbers.next, .c-pagination .page-numbers.prev {
    min-width: calc(45px + 15 * (100vw - 500px) / 860);
  }
}
@media screen and (min-width: 1360px) {
  .c-pagination .page-numbers.next, .c-pagination .page-numbers.prev {
    min-width: 3.75rem;
  }
}
.c-pagination .page-numbers.current {
  background: #231815;
  color: #fff;
}
.c-pagination .page-numbers.dots {
  min-width: 0;
  background: no-repeat;
  border: none;
}

/* ==================================
hero
================================== */
.p-hero {
  position: relative;
  padding-top: 56.25%;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .p-hero {
    padding-top: 173.3333333333%;
  }
}
.p-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.p-hero__media .swiper-wrapper,
.p-hero__media .swiper-slide {
  width: 100%;
  height: 100%;
}
.p-hero__media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.p-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-hero__img.is-zooming {
  animation: p-hero-zoom 8000ms ease-out forwards;
}
.p-hero__copy {
  position: absolute;
  z-index: 2;
  bottom: 19.44%;
  right: 11.46%;
  writing-mode: vertical-rl;
  color: #fff;
  text-shadow: 0 0 3px #000;
}
@media only screen and (max-width: 767px) {
  .p-hero__copy {
    bottom: 11.85%;
    right: 50%;
    transform: translateX(50%);
  }
}
.p-hero__copy.is-animated {
  animation: fadeIn 1s 1s ease-in-out both;
}
.p-hero__copy span {
  text-combine-upright: all;
}
.p-hero__copy-main {
  font-family: "dnp-shuei-gothic-gin-std", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.652;
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-hero__copy-main {
    font-size: calc(20px + 3 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__copy-main {
    font-size: 1.4375rem;
  }
}
.p-hero__copy-sub {
  margin-right: 30px;
  letter-spacing: 0.2em;
  line-height: 1.882;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-hero__copy-sub {
    font-size: calc(16px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__copy-sub {
    font-size: 1.0625rem;
  }
}

.p-hero-wrap {
  padding-top: 120px;
  padding-bottom: 6.25rem;
}
@media screen and (min-width: 768px) {
  .p-hero-wrap {
    padding-bottom: calc(100px + 70 * (100vw - 768px) / 1152);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero-wrap {
    padding-bottom: 10.625rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-hero-wrap {
    padding-top: 0;
  }
}

.p-hero__updates {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: stretch;
  width: 90%;
  margin: 0 auto;
  transition: 0.4s ease-in-out;
  background: #fff;
  flex-wrap: wrap;
}
@media only screen and (max-width: 767px) {
  .p-hero__updates {
    width: 100%;
    transform: none !important;
  }
}
.p-hero__updates.is-animated {
  transform: translateY(-100%);
}
.p-hero__updates.is-animated .p-hero__updates-label, .p-hero__updates.is-animated .p-hero__updates-list {
  animation: fadeIn 1s 0.6s ease-in-out both;
}
.p-hero__updates-label {
  flex-shrink: 0;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  justify-content: end;
  writing-mode: vertical-rl;
  background: #e1ddd3;
  line-height: 1;
  gap: 0.625rem;
}
@media screen and (min-width: 375px) {
  .p-hero__updates-label {
    gap: calc(10px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__updates-label {
    gap: 1.25rem;
  }
}
.p-hero__updates-label {
  padding: 30px;
  width: 16.8%;
  max-width: 290px;
  min-height: 205px;
  opacity: 0;
}
@media only screen and (max-width: 767px) {
  .p-hero__updates-label {
    width: 100%;
    max-width: 100%;
    padding-left: 25px;
    padding-right: 25px;
  }
}
.p-hero__updates-label-en {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-hero__updates-label-en {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__updates-label-en {
    font-size: 1.125rem;
  }
}
.p-hero__updates-label-en {
  font-weight: bold;
  letter-spacing: 0.1em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
}
.p-hero__updates-label-ja {
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .p-hero__updates-label-ja {
    font-size: calc(18px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__updates-label-ja {
    font-size: 1.25rem;
  }
}
.p-hero__updates-label-ja {
  font-weight: bold;
  letter-spacing: 0.5em;
}
.p-hero__updates-list {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1;
  min-width: 0;
  padding-top: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .p-hero__updates-list {
    padding-top: calc(5px + 45 * (100vw - 768px) / 1152);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__updates-list {
    padding-top: 3.125rem;
  }
}
.p-hero__updates-list {
  padding-bottom: 0.3125rem;
}
@media screen and (min-width: 768px) {
  .p-hero__updates-list {
    padding-bottom: calc(5px + 45 * (100vw - 768px) / 1152);
  }
}
@media screen and (min-width: 1920px) {
  .p-hero__updates-list {
    padding-bottom: 3.125rem;
  }
}
.p-hero__updates-list {
  padding-left: 15px;
  padding-right: 15px;
  opacity: 0;
}
.p-hero__updates-item {
  display: flex;
  align-items: start;
  gap: 10px;
  padding: 10px 0;
}
.p-hero__updates-date {
  flex-shrink: 0;
  font-size: 0.75rem;
  font-weight: 300;
  color: #000;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  letter-spacing: 0.1em;
  line-height: 1.333;
}
.p-hero__updates-title {
  flex: 1;
  min-width: 0;
  font-size: 1rem;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ==================================
lives（暮らしの事例）
================================== */
.p-lives {
  padding-top: 4.375rem;
}
@media screen and (min-width: 375px) {
  .p-lives {
    padding-top: calc(70px + 30 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives {
    padding-top: 6.25rem;
  }
}
.p-lives {
  padding-bottom: 6.25rem;
}
@media screen and (min-width: 375px) {
  .p-lives {
    padding-bottom: calc(100px + 130 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives {
    padding-bottom: 14.375rem;
  }
}
.p-lives {
  background: #e1ddd3;
}
.p-lives__head {
  margin-bottom: 1.875rem;
}
@media screen and (min-width: 375px) {
  .p-lives__head {
    margin-bottom: calc(30px + 70 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives__head {
    margin-bottom: 6.25rem;
  }
}
.p-lives__head {
  padding-left: 15px;
  padding-right: 15px;
}
.p-lives__more {
  margin-top: 3.125rem;
}
@media screen and (min-width: 375px) {
  .p-lives__more {
    margin-top: calc(50px + 110 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives__more {
    margin-top: 10rem;
  }
}
.p-lives__more {
  display: flex;
  justify-content: center;
  padding: 0 15px;
}
.p-lives .c-card-lives-grid {
  padding: 0 15px;
}
.p-lives .c-card-lives__body {
  padding-bottom: 40px;
}

/* ==================================
passive art creative
================================== */
.p-passive {
  margin-bottom: 200px;
}
.p-passive__grid {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border-top: 10px solid #fff;
  border-bottom: 10px solid #fff;
  background: #f4f2e8;
  padding-left: 5%;
  padding-right: 5%;
  padding-top: 60px;
  padding-bottom: 80px;
  gap: 40px;
}
@media only screen and (max-width: 767px) {
  .p-passive__grid {
    flex-direction: column;
    padding-left: 15px;
    padding-right: 15px;
    border-top-width: 5px;
    border-bottom-width: 5px;
    gap: 0;
  }
}
.p-passive__watermark {
  flex: 1;
}
@media only screen and (max-width: 767px) {
  .p-passive__watermark {
    flex: none;
    max-width: 72%;
  }
}
@media only screen and (max-width: 767px) {
  .p-passive .c-section-heading {
    margin-top: 60px;
  }
}
.p-passive__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media only screen and (max-width: 1359px) {
  .p-passive__list {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media only screen and (max-width: 767px) {
  .p-passive__list {
    grid-template-columns: 1fr;
    gap: 5px;
  }
}

.c-feature-card {
  display: flex;
  flex-direction: column;
  color: #000;
  background: #e1ddd3;
  padding-top: clamp(1.875rem, calc(3.5714285714vw - 18.5714285714px), 3.125rem);
  padding-left: clamp(1.875rem, calc(7.1428571429vw - 67.1428571429px), 4.375rem);
  padding-right: 15px;
  padding-bottom: clamp(1.25rem, calc(3.5714285714vw - 28.5714285714px), 2.5rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card {
    padding-top: clamp(1.875rem, calc(3.3783783784vw + 4.0540540541px), 3.125rem);
    padding-left: clamp(1.875rem, calc(6.7567567568vw - 21.8918918919px), 4.375rem);
    padding-bottom: clamp(1.25rem, calc(3.3783783784vw - 5.9459459459px), 2.5rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card {
    padding-top: clamp(1.875rem, calc(5.0890585242vw + 10.9160305344px), 3.125rem);
    padding-left: clamp(1.875rem, calc(10.1781170483vw - 8.1679389313px), 4.375rem);
    padding-bottom: clamp(1.25rem, calc(5.0890585242vw + 0.9160305344px), 2.5rem);
  }
}
.c-feature-card {
  height: 100%;
  transition: 0.3s ease-in-out;
}
.c-feature-card:hover {
  background: #c8ced0;
}
.c-feature-card__grid {
  display: flex;
  flex-wrap: wrap;
  flex: 1;
}
.c-feature-card__media {
  grid-column: 1;
  grid-row: 1;
  aspect-ratio: 280/338;
  background: #c8ced0;
  position: relative;
  align-self: end;
  width: clamp(11.25rem, calc(17.8571428571vw - 62.8571428571px), 17.5rem);
  opacity: 1 !important;
  margin-top: 3.4375rem;
}
@media screen and (min-width: 1360px) {
  .c-feature-card__media {
    margin-top: calc(55px + -55 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .c-feature-card__media {
    margin-top: 0rem;
  }
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__media {
    width: clamp(11.25rem, calc(16.8918918919vw + 50.2702702703px), 17.5rem);
    margin-top: 3.4375rem;
  }
}
@media only screen and (max-width: 1359px) and (min-width: 768px) {
  .c-feature-card__media {
    margin-top: calc(55px + -55 * (100vw - 768px) / 592);
  }
}
@media only screen and (max-width: 1359px) and (min-width: 1360px) {
  .c-feature-card__media {
    margin-top: 0rem;
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__media {
    width: clamp(11.25rem, calc(25.4452926209vw + 84.5801526718px), 17.5rem);
    margin-top: 3.4375rem;
  }
}
@media only screen and (max-width: 767px) and (min-width: 375px) {
  .c-feature-card__media {
    margin-top: calc(55px + -55 * (100vw - 375px) / 393);
  }
}
@media only screen and (max-width: 767px) and (min-width: 768px) {
  .c-feature-card__media {
    margin-top: 0rem;
  }
}
.c-feature-card__media-frame {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.c-feature-card__num {
  display: block;
  margin-bottom: 0.6em;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  transform: translate(-25%, -20%);
  width: clamp(1.5rem, calc(2.1428571429vw - 5.1428571429px), 2.25rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__num {
    width: clamp(1.5rem, calc(2.027027027vw + 8.4324324324px), 2.25rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__num {
    width: clamp(1.5rem, calc(3.0534351145vw + 12.5496183206px), 2.25rem);
  }
}
.c-feature-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease-in-out;
}
.c-feature-card__img:hover {
  transform: scale(1.08);
}
.c-feature-card__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-left: clamp(0.625rem, calc(0.8928571429vw - 2.1428571429px), 0.9375rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__text {
    padding-left: clamp(0.625rem, calc(0.8445945946vw + 3.5135135135px), 0.9375rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__text {
    padding-left: clamp(0.625rem, calc(1.272264631vw + 5.2290076336px), 0.9375rem);
  }
}
.c-feature-card__heading {
  display: flex;
  justify-content: end;
  padding-right: clamp(0.9375rem, calc(5.3571428571vw - 57.8571428571px), 2.8125rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__heading {
    padding-right: clamp(0.9375rem, calc(5.0675675676vw - 23.9189189189px), 2.8125rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__heading {
    padding-right: clamp(0.9375rem, calc(7.6335877863vw - 13.6259541985px), 2.8125rem);
  }
}
.c-feature-card__title {
  writing-mode: vertical-rl;
  font-weight: bold;
  letter-spacing: 0.1em;
  line-height: 1.75;
  font-size: clamp(1.25rem, calc(1.7857142857vw - 4.2857142857px), 1.875rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__title {
    font-size: clamp(1.25rem, calc(1.6891891892vw + 7.027027027px), 1.875rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__title {
    font-size: clamp(1.25rem, calc(2.5445292621vw + 10.4580152672px), 1.875rem);
  }
}
.c-feature-card__subtitle {
  writing-mode: vertical-rl;
  line-height: 1.4;
  font-size: clamp(0.75rem, calc(1.0714285714vw - 2.5714285714px), 1.125rem);
  margin-left: 0.5em;
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__subtitle {
    font-size: clamp(0.75rem, calc(1.0135135135vw + 4.2162162162px), 1.125rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__subtitle {
    font-size: clamp(0.75rem, calc(1.5267175573vw + 6.2748091603px), 1.125rem);
  }
}
.c-feature-card__link {
  width: 100%;
  margin-top: clamp(1.5625rem, calc(4.4642857143vw - 35.7142857143px), 3.125rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__link {
    margin-top: clamp(1.5625rem, calc(4.222972973vw - 7.4324324324px), 3.125rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__link {
    margin-top: clamp(1.5625rem, calc(6.3613231552vw + 1.1450381679px), 3.125rem);
  }
}
.c-feature-card__topics {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  line-height: 1.7;
  letter-spacing: 0.015em;
  font-size: clamp(0.8125rem, calc(0.3571428571vw + 8.1428571429px), 0.9375rem);
}
@media only screen and (max-width: 1359px) {
  .c-feature-card__topics {
    font-size: clamp(0.8125rem, calc(0.3378378378vw + 10.4054054054px), 0.9375rem);
  }
}
@media only screen and (max-width: 767px) {
  .c-feature-card__topics {
    font-size: clamp(0.8125rem, calc(0.5089058524vw + 11.0916030534px), 0.9375rem);
  }
}

/* ==================================
information（お知らせ／イベント／コラム）
================================== */
.p-information {
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-information {
    padding-top: calc(80px + 60 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-information {
    padding-top: 8.75rem;
  }
}
.p-information {
  padding-bottom: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-information {
    padding-bottom: calc(90px + 60 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-information {
    padding-bottom: 9.375rem;
  }
}
.p-information {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-information {
    padding-right: calc(15px + 185 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-information {
    padding-right: 12.5rem;
  }
}
.p-information {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-information {
    padding-left: calc(15px + 185 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-information {
    padding-left: 12.5rem;
  }
}
.p-information__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
@media screen and (min-width: 992px) {
  .p-information__grid {
    gap: calc(40px + 60 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .p-information__grid {
    gap: 6.25rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-information__grid {
    grid-template-columns: 1fr;
    gap: 100px;
  }
}
.p-information__col {
  min-width: 0;
  width: 100%;
  max-width: 430px;
  margin: 0 auto;
}
.p-information__col-head {
  margin-bottom: 50px;
}
.p-information__col-title {
  position: relative;
  padding-bottom: 3.5em;
}
.p-information__col-title:after {
  content: "";
  order: 2;
  display: block;
  width: 1px;
  height: 2.35em;
  background: #1f1f1f;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform-origin: top;
}
.p-information__col-title.is-animated:after {
  animation: growDown 0.3s 0.5s ease-in-out both;
}
.p-information__col-en {
  color: #251c1a;
}

/* ==================================
lives archive（一覧：カテゴリー・タグ絞り込み＋カードグリッド）
================================== */
.p-lives-archive__filters {
  display: flex;
  justify-content: center;
}
.p-lives-archive__category-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  line-height: 1.75;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .p-lives-archive__category-list {
    font-size: calc(14px + 2 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-archive__category-list {
    font-size: 1rem;
  }
}
.p-lives-archive__category-list {
  margin-top: 1em;
}
.p-lives-archive__category-list li {
  flex: 1;
  max-width: 11.5em;
}
.p-lives-archive__category-list a {
  display: block;
  padding: 0.25em 0.5em;
  letter-spacing: 0.1em;
  text-align: center;
  background: #98938d;
  color: #fff;
  transition: 0.2s ease-in-out;
  font-weight: bold;
  position: relative;
  z-index: 0;
  transition: color 0.2s 0.2s ease-in-out;
}
.p-lives-archive__category-list a:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #e1ddd3;
  z-index: -1;
  transform-origin: right top;
  transform: scaleX(0);
  transition: transform 0.4s ease-in-out;
}
.p-lives-archive__category-list a:hover {
  color: #1f1f1f;
  opacity: 1;
}
.p-lives-archive__category-list a:hover:before {
  transform-origin: left top;
  transform: scaleX(1);
}
.p-lives-archive__category-list a {
  white-space: nowrap;
}
.p-lives-archive__tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em 1.2em;
  margin-top: 1em;
  line-height: 1.5;
  font-size: 0.75rem;
}
@media screen and (min-width: 375px) {
  .p-lives-archive__tag-list {
    font-size: calc(12px + 2 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-archive__tag-list {
    font-size: 0.875rem;
  }
}
.p-lives-archive__tag-list a {
  font-weight: bold;
  color: #999393;
}
.p-lives-archive__tag-list a:hover {
  color: #1f1f1f;
  opacity: 1;
}
.p-lives-archive .c-card-lives-grid {
  margin-top: 50px;
}
.p-lives-archive .c-pagination {
  margin-top: 70px;
  margin-bottom: 0rem;
}
@media screen and (min-width: 375px) {
  .p-lives-archive .c-pagination {
    margin-bottom: calc(0px + 40 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-archive .c-pagination {
    margin-bottom: 2.5rem;
  }
}

/* ==================================
lives single（詳細：ギャラリー／STORY／施工情報／前後ナビ）
================================== */
.p-lives-single {
  padding-top: 0;
}
@media only screen and (max-width: 991px) {
  .p-lives-single {
    padding-top: 50px;
  }
}
.p-lives-single__content {
  background: #fff;
  box-shadow: 12px 12px 0 -6px #cccac8;
  padding-bottom: 80px;
}
.p-lives-single__gallery {
  display: flex;
}
.p-lives-single__gallery-main {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  aspect-ratio: 1240/720;
}
.p-lives-single__gallery-main .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: 100%;
  max-width: 87.1%;
  opacity: 0.4;
  transition: opacity 0.2s ease;
}
.p-lives-single__gallery-main .swiper-slide.swiper-slide-active {
  opacity: 1;
}
.p-lives-single__gallery-main .swiper-slide img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
}
.p-lives-single__gallery-prev, .p-lives-single__gallery-next {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__gallery-prev, .p-lives-single__gallery-next {
    width: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__gallery-prev, .p-lives-single__gallery-next {
    width: 3.75rem;
  }
}
.p-lives-single__gallery-prev img, .p-lives-single__gallery-next img {
  width: 0.3125rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__gallery-prev img, .p-lives-single__gallery-next img {
    width: calc(5px + 15 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__gallery-prev img, .p-lives-single__gallery-next img {
    width: 1.25rem;
  }
}
.p-lives-single__gallery-prev {
  transform: scaleX(-1);
}
.p-lives-single__gallery-caption {
  display: grid;
  margin-top: 10px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__gallery-caption {
    padding-left: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__gallery-caption {
    padding-left: 3.75rem;
  }
}
.p-lives-single__gallery-caption {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__gallery-caption {
    padding-right: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__gallery-caption {
    padding-right: 3.75rem;
  }
}
.p-lives-single__gallery-caption-item {
  grid-area: 1/1;
  visibility: hidden;
  line-height: 1.5;
  text-align: center;
  font-size: 0.8125rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__gallery-caption-item {
    font-size: calc(13px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-lives-single__gallery-caption-item {
    font-size: 0.9375rem;
  }
}
.p-lives-single__gallery-caption-item.is-active {
  visibility: visible;
}
.p-lives-single__thumbs {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 5px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__thumbs {
    padding-left: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__thumbs {
    padding-left: 3.75rem;
  }
}
.p-lives-single__thumbs {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__thumbs {
    padding-right: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__thumbs {
    padding-right: 3.75rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-lives-single__thumbs {
    grid-template-columns: repeat(5, 1fr);
  }
}
.p-lives-single__thumbs-item {
  aspect-ratio: 172/142;
  overflow: hidden;
  opacity: 0.4;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.p-lives-single__thumbs-item.is-active {
  opacity: 1;
}
.p-lives-single__thumbs-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-lives-single__single-image {
  width: 100%;
  height: auto;
}
.p-lives-single__intro-story {
  display: grid;
  grid-template-columns: minmax(310px, 25%) 1fr;
  align-items: start;
  margin-top: 100px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__intro-story {
    padding-left: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__intro-story {
    padding-left: 3.75rem;
  }
}
.p-lives-single__intro-story {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__intro-story {
    padding-right: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__intro-story {
    padding-right: 3.75rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-lives-single__intro-story {
    grid-template-columns: 1fr;
    margin-top: 50px;
  }
}
.p-lives-single__intro {
  position: sticky;
  top: 120px;
  padding-bottom: 50px;
  padding-right: 20px;
}
@media only screen and (max-width: 991px) {
  .p-lives-single__intro {
    position: static;
    padding-right: 0;
  }
}
.p-lives-single__badge.c-card-lives__badge {
  position: static;
}
.p-lives-single__catch {
  margin-top: 0.5em;
  letter-spacing: 0.05em;
  line-height: 1.346;
  font-size: 1.375rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__catch {
    font-size: calc(22px + 4 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__catch {
    font-size: 1.625rem;
  }
}
.p-lives-single__catch {
  font-weight: bold;
}
.p-lives-single__catch-copy {
  margin-top: 0.5em;
  line-height: 1.346;
}
.p-lives-single__building-type {
  margin-top: 50px;
}
@media only screen and (max-width: 991px) {
  .p-lives-single__building-type {
    margin-top: 30px;
  }
}
.p-lives-single__meta {
  margin-top: 10px;
  font-size: 0.9375rem;
  line-height: 1.5;
  letter-spacing: 0.01em;
}
.p-lives-single__story {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 992px) {
  .p-lives-single__story {
    padding-left: calc(15px + 55 * (100vw - 992px) / 368);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__story {
    padding-left: 4.375rem;
  }
}
.p-lives-single__story {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 992px) {
  .p-lives-single__story {
    padding-right: calc(15px + 45 * (100vw - 992px) / 368);
  }
}
@media screen and (min-width: 1360px) {
  .p-lives-single__story {
    padding-right: 3.75rem;
  }
}
.p-lives-single__story {
  padding-top: 30px;
  padding-bottom: 50px;
  background: #e1ddd3;
  position: relative;
}
.p-lives-single__story:before, .p-lives-single__story:after {
  content: "";
  display: inline-block;
  width: 28px;
  height: 26px;
  position: absolute;
  z-index: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'><polygon points='0,0 0,100 100,0' fill='%23fff'/><polygon points='100,100 100,0 0,100' fill='none'/><line x1='100' y1='0' x2='0' y2='100' stroke='black' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>");
}
.p-lives-single__story:before {
  top: -8px;
  left: -8px;
}
.p-lives-single__story:after {
  bottom: -8px;
  right: -8px;
  transform: scale(-1, -1);
}
.p-lives-single__story-label {
  font-size: 0.75rem;
  font-weight: bold;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  letter-spacing: 0.2em;
  line-height: 1.75;
  color: #251c1a;
}
.p-lives-single__story-blocks {
  margin-top: 1em;
  display: flex;
  flex-direction: column;
  align-items: start;
  font-size: 0.9375rem;
}
.p-lives-single__story-block {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
@media only screen and (max-width: 767px) {
  .p-lives-single__story-block {
    flex-direction: column;
    gap: 20px;
  }
}
.p-lives-single__story-more {
  display: grid;
  grid-template-rows: 0fr;
  margin-top: 0;
  transition: grid-template-rows 0.4s ease, margin-top 0.4s ease;
}
.p-lives-single__story-more.is-open {
  grid-template-rows: 1fr;
  margin-top: 40px;
}
.p-lives-single__story-more-inner {
  overflow: hidden;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.p-lives-single__story-toggle {
  margin-top: 40px;
}
.p-lives-single__story-text-wrap {
  flex: 1;
  min-width: 0;
}
.p-lives-single__story-heading {
  font-family: "fot-tsukuaoldmin-pr6n", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.6;
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__story-heading {
    font-size: calc(20px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-lives-single__story-heading {
    font-size: 1.375rem;
  }
}
.p-lives-single__story-heading {
  color: #000;
}
.p-lives-single__story-text {
  line-height: 2;
}
.p-lives-single__story-text p + p {
  margin-top: 1em;
}
.p-lives-single__story-heading + .p-lives-single__story-text {
  margin-top: 0.8em;
}
.p-lives-single__story-images {
  flex-shrink: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  width: 46.25%;
  max-width: 370px;
}
@media only screen and (max-width: 767px) {
  .p-lives-single__story-images {
    gap: 20px;
    width: 100%;
    max-width: 100%;
  }
}
.p-lives-single__story-image {
  max-width: 100%;
  overflow: hidden;
  border: 14px solid #fff;
}
.p-lives-single__story-image figcaption {
  padding-top: 0.5em;
  font-size: 0.8125rem;
  background: #fff;
  text-align: center;
}
.p-lives-single__bottom {
  width: 870px;
  max-width: 100%;
  margin: 0 auto;
  padding-left: 15px;
  padding-right: 15px;
  padding-top: 3.125rem;
}
@media screen and (min-width: 375px) {
  .p-lives-single__bottom {
    padding-top: calc(50px + 50 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-lives-single__bottom {
    padding-top: 6.25rem;
  }
}
.p-lives-single__info-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
}
@media only screen and (max-width: 767px) {
  .p-lives-single__info-grid {
    grid-template-columns: 1fr;
  }
}
.p-lives-single__table {
  width: 100%;
}
.p-lives-single__table tr {
  border-bottom: 1px solid #fff;
}
.p-lives-single__table tr:last-child {
  border-bottom: none;
}
.p-lives-single__table th,
.p-lives-single__table td {
  text-align: left;
  font-weight: normal;
}
.p-lives-single__table th {
  width: calc(4em + 50px);
  padding: 5px 30px 5px 20px;
}
@media only screen and (max-width: 767px) {
  .p-lives-single__table th {
    width: calc(4em + 30px);
    padding: 5px 20px 5px 10px;
  }
}
.p-lives-single__table td {
  padding: 5px 0;
}
.p-lives-single__hashtags {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1em;
  font-size: 0.875rem;
  color: #999393;
  margin-top: 30px;
  font-weight: bold;
}

body.single-lives .l-header {
  opacity: 0;
  transform: translateY(-100%);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}
@media only screen and (max-width: 991px) {
  body.single-lives .l-header {
    opacity: 1;
    transform: translateY(0);
  }
}
body.single-lives.is-header-visible .l-header {
  opacity: 1;
  transform: translateY(0);
}

.p-concept {
  padding-top: 80px;
  padding-bottom: 0.3125rem;
}
@media screen and (min-width: 500px) {
  .p-concept {
    padding-bottom: calc(5px + 145 * (100vw - 500px) / 492);
  }
}
@media screen and (min-width: 992px) {
  .p-concept {
    padding-bottom: 9.375rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-concept {
    padding-top: 50px;
  }
}

/* ==================================
concept hero（キャッチコピー＋写真の2カラム）
================================== */
.p-concept-hero {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  background-blend-mode: multiply;
  background-color: #8f98a1;
  min-height: 36.875rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero {
    min-height: calc(590px + 176 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero {
    min-height: 47.875rem;
  }
}
.p-concept-hero {
  display: flex;
  align-items: center;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero {
    padding-left: calc(15px + 80 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero {
    padding-left: 5.9375rem;
  }
}
.p-concept-hero {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero {
    padding-right: calc(15px + 80 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero {
    padding-right: 5.9375rem;
  }
}
.p-concept-hero__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: 550px;
  color: #fff;
  padding-top: 3.125rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__text {
    padding-top: calc(50px + 50 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__text {
    padding-top: 6.25rem;
  }
}
.p-concept-hero__text {
  padding-bottom: 3.75rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__text {
    padding-bottom: calc(60px + 60 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__text {
    padding-bottom: 7.5rem;
  }
}
.p-concept-hero__eyebrow {
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__eyebrow {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__eyebrow {
    font-size: 1.875rem;
  }
}
.p-concept-hero__eyebrow {
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.1em;
  margin-bottom: 0.2em;
  position: relative;
}
.p-concept-hero__eyebrow.is-animated:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  transform-origin: left;
  animation: growRight 0.5s 1s ease-in-out both;
}
.p-concept-hero__catch {
  font-size: 1.5rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__catch {
    font-size: calc(24px + 12 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__catch {
    font-size: 2.25rem;
  }
}
.p-concept-hero__catch {
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.1em;
  margin-bottom: 0.75em;
}
.p-concept-hero__lead {
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__lead {
    font-size: calc(18px + 4 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__lead {
    font-size: 1.375rem;
  }
}
.p-concept-hero__lead {
  font-weight: bold;
  line-height: 1.75;
  margin-bottom: 0.25em;
}
.p-concept-hero__intro {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-concept-hero__intro {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-hero__intro {
    font-size: 1.125rem;
  }
}
.p-concept-hero__intro {
  letter-spacing: 0.01em;
}

/* ==================================
concept items（サイドバー追従＋こだわり項目グリッド）
================================== */
.p-concept-items {
  padding-top: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items {
    padding-top: calc(90px + 110 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items {
    padding-top: 12.5rem;
  }
}
.p-concept-items {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-concept-items {
    padding-left: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items {
    padding-left: 5.9375rem;
  }
}
.p-concept-items {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-concept-items {
    padding-right: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items {
    padding-right: 5.9375rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-concept-items {
    padding-left: 0;
    padding-right: 0;
  }
}
.p-concept-items__grid {
  display: flex;
  flex-wrap: wrap;
}
.p-concept-items__sidebar {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
  position: sticky;
  top: 120px;
  padding-bottom: 150px;
  padding-right: 4.17vw;
  width: 35.8%;
  max-height: calc(100vh - 80px - 40px);
}
@media only screen and (max-width: 991px) {
  .p-concept-items__sidebar {
    position: static;
    padding-right: 15px;
    padding-left: 15px;
    width: 100%;
  }
}
.p-concept-items__list {
  width: 64.2%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 500px));
  gap: 20px 30px;
  justify-content: space-between;
}
@media only screen and (max-width: 991px) {
  .p-concept-items__list {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
  }
}
@media only screen and (max-width: 767px) {
  .p-concept-items__list {
    grid-template-columns: 1fr;
    padding-left: 0;
    padding-right: 0;
  }
}
.p-concept-items__list.is-animated {
  animation: fadeIn 1s 1s ease-in-out both;
}
.p-concept-items__item {
  padding-bottom: 6.25rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item {
    padding-bottom: calc(100px + 100 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item {
    padding-bottom: 12.5rem;
  }
}
.p-concept-items__item-title {
  font-weight: bold;
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item-title {
    font-size: calc(20px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item-title {
    font-size: 1.375rem;
  }
}
.p-concept-items__item-title {
  line-height: 1.75;
  border-bottom: 1px solid #1f1f1f;
  margin-bottom: 0.5em;
  padding-bottom: 0.25em;
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item-title {
    padding-left: 15px;
    padding-right: 15px;
  }
}
.p-concept-items__item-subtitle {
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item-subtitle {
    font-size: calc(18px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item-subtitle {
    font-size: 1.25rem;
  }
}
.p-concept-items__item-subtitle {
  margin-bottom: 0.5em;
  line-height: 1.75;
  font-weight: bold;
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item-subtitle {
    padding: 0 15px;
  }
}
.p-concept-items__item-media {
  margin-bottom: 0.5em;
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item-media {
    padding: 0 15px;
  }
}
.p-concept-items__item-text {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item-text {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item-text {
    font-size: 1.125rem;
  }
}
.p-concept-items__item-text {
  letter-spacing: 0.01em;
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item-text {
    padding: 0 15px;
  }
}
.p-concept-items__item-link {
  margin-top: 3.125rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item-link {
    margin-top: calc(50px + 15 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item-link {
    margin-top: 4.0625rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item-link {
    padding: 0 15px;
  }
}
.p-concept-items__item-num {
  margin-right: 0.25em;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  font-size: 1.75rem;
}
@media screen and (min-width: 375px) {
  .p-concept-items__item-num {
    font-size: calc(28px + 8 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-items__item-num {
    font-size: 2.25rem;
  }
}
.p-concept-items__item-num {
  font-weight: 300;
  letter-spacing: 0.2em;
  line-height: 1;
}
.p-concept-items__item--wide {
  width: 100%;
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: minmax(0, 500px) minmax(0, 570px);
  gap: 20px 30px;
}
@media only screen and (max-width: 767px) {
  .p-concept-items__item--wide {
    grid-template-columns: 1fr;
  }
}
.p-concept-items__item--wide .p-concept-items__item-media {
  margin-bottom: 0;
}

/* ==================================
concept nav（手法／素材／性能／作り手／設計／維持のタブ切替。page-concept.php共通パーツ）
================================== */
.p-concept-nav {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-concept-nav {
    padding-left: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-nav {
    padding-left: 5.9375rem;
  }
}
.p-concept-nav {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-concept-nav {
    padding-right: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-concept-nav {
    padding-right: 5.9375rem;
  }
}
.p-concept-nav {
  padding-top: 20px;
}
@media only screen and (max-width: 767px) {
  .p-concept-nav {
    padding-left: 0;
    padding-right: 0;
  }
}
@media only screen and (min-width: 992px) {
  .p-concept-nav {
    display: none;
  }
}
.p-concept-nav__list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  width: 64.2%;
  margin-left: auto;
}
@media only screen and (max-width: 991px) {
  .p-concept-nav__list {
    width: 100%;
  }
}
@media only screen and (max-width: 499px) {
  .p-concept-nav__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}
.p-concept-nav__list li {
  flex: 1;
}
.p-concept-nav__link {
  display: block;
  text-align: center;
  font-weight: bold;
  letter-spacing: 0.1em;
  font-size: 1rem;
  background-color: #e1ddd3;
  position: relative;
  z-index: 0;
  transition: color 0.2s 0.2s ease-in-out;
}
.p-concept-nav__link:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #1f1f1f;
  z-index: -1;
  transform-origin: right top;
  transform: scaleX(0);
  transition: transform 0.4s ease-in-out;
}
.p-concept-nav__link:hover {
  color: #fff;
  opacity: 1;
}
.p-concept-nav__link:hover:before {
  transform-origin: left top;
  transform: scaleX(1);
}
.p-concept-nav__link {
  padding: 2px 1em;
  white-space: nowrap;
}
@media only screen and (max-width: 499px) {
  .p-concept-nav__link {
    padding: 9px 1em;
  }
}
.p-concept-nav--sidebar {
  display: block;
  padding: 30px 0 0;
}
@media only screen and (max-width: 991px) {
  .p-concept-nav--sidebar {
    display: none;
  }
}
.p-concept-nav--sidebar .p-concept-nav__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 100%;
  margin-left: 0;
}
.p-concept-nav--sidebar .p-concept-nav__link {
  font-size: 0.875rem;
  padding: 8px 0.5em;
}

.p-mh {
  padding-top: 80px;
}
@media only screen and (max-width: 991px) {
  .p-mh {
    padding-top: 50px;
  }
}

/* ==================================
hero（背景写真＋キャッチコピー＋申込ボタン）
================================== */
.p-mh-hero {
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  min-height: 36.875rem;
}
@media screen and (min-width: 375px) {
  .p-mh-hero {
    min-height: calc(590px + 176 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-hero {
    min-height: 47.875rem;
  }
}
.p-mh-hero {
  display: flex;
  align-items: center;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-mh-hero {
    padding-left: calc(15px + 75 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-hero {
    padding-left: 5.625rem;
  }
}
.p-mh-hero {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-mh-hero {
    padding-right: calc(15px + 75 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-hero {
    padding-right: 5.625rem;
  }
}
.p-mh-hero {
  position: relative;
}
.p-mh-hero__text {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 550px;
  color: #fff;
  transform: translateY(-100%);
  text-shadow: 0 0 3px #000;
}
.p-mh-hero__label {
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-hero__label {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-hero__label {
    font-size: 1.875rem;
  }
}
.p-mh-hero__label {
  font-weight: bold;
  line-height: 1.75;
  letter-spacing: 0.1em;
  margin-bottom: 0.2em;
  position: relative;
}
.p-mh-hero__label.is-animated:after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  transform-origin: left;
  animation: growRight 0.5s 1s ease-in-out both;
}
.p-mh-hero__lead {
  font-size: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-mh-hero__lead {
    font-size: calc(15px + 7 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-hero__lead {
    font-size: 1.375rem;
  }
}
.p-mh-hero__lead {
  font-weight: bold;
  line-height: 1.75;
  margin-bottom: 0.25em;
}
.p-mh-hero__cta {
  margin-top: 2em;
  text-align: center;
  position: absolute;
  bottom: 0;
  width: auto;
  padding: 1.5em 2em;
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
@media only screen and (max-width: 499px) {
  .p-mh-hero__cta {
    padding: 0.5em 1em;
  }
}

/* ==================================
intro（見出し＋本文＋写真の2カラム）
================================== */
.p-mh-intro {
  padding-top: 5rem;
}
@media screen and (min-width: 992px) {
  .p-mh-intro {
    padding-top: calc(80px + 270 * (100vw - 992px) / 928);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-intro {
    padding-top: 21.875rem;
  }
}
.p-mh-intro {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-mh-intro {
    padding-left: calc(15px + 75 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-intro {
    padding-left: 5.625rem;
  }
}
.p-mh-intro {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-mh-intro {
    padding-right: calc(15px + 85 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-intro {
    padding-right: 6.25rem;
  }
}
.p-mh-intro {
  padding-bottom: 30px;
  position: relative;
  z-index: 1;
}
@media only screen and (max-width: 991px) {
  .p-mh-intro {
    padding-bottom: 0;
  }
}
.p-mh-intro__grid {
  display: flex;
  flex-wrap: wrap;
}
.p-mh-intro__heading {
  font-weight: bold;
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-intro__heading {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-intro__heading {
    font-size: 1.875rem;
  }
}
.p-mh-intro__heading {
  letter-spacing: 0.2em;
  margin-bottom: 0.5em;
}
.p-mh-intro__body {
  letter-spacing: 0.01em;
}
.p-mh-intro__text {
  width: 50%;
  padding-right: 30px;
}
@media only screen and (max-width: 991px) {
  .p-mh-intro__text {
    width: 100%;
    padding-right: 0;
  }
}
.p-mh-intro__media {
  width: 50%;
  max-width: 750px;
  margin-left: auto;
  position: relative;
}
@media only screen and (max-width: 991px) {
  .p-mh-intro__media {
    width: 100%;
    padding-top: 50px;
    padding-bottom: 80px;
  }
}
.p-mh-intro__media img {
  width: 100%;
  height: auto;
}
.p-mh-intro__media-inner {
  position: absolute;
  top: 0;
  right: 0;
}
@media only screen and (max-width: 991px) {
  .p-mh-intro__media-inner {
    position: static;
  }
}

/* ==================================
access（アクセス。イントロ画像の下に表示）
================================== */
.p-mh-access {
  margin-top: 1em;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 1.5em;
  font-size: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-mh-access {
    font-size: calc(15px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-access {
    font-size: 1.0625rem;
  }
}
.p-mh-access__tel {
  width: 100%;
}

/* ==================================
materials-wrap（gallery＋materialsをまとめて背景色を通しで敷く）
================================== */
.p-mh-materials-wrap {
  background: #c8ced0;
}

/* ==================================
gallery（画像＋キャプションの繰り返し。「体感できる素材と工夫」の上に表示）
================================== */
.p-mh-gallery {
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-gallery {
    padding-top: calc(80px + 300 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-gallery {
    padding-top: 23.75rem;
  }
}
.p-mh-gallery {
  padding-left: 15px;
  padding-right: 15px;
}
.p-mh-gallery__list {
  display: flex;
  align-items: start;
  justify-content: center;
  gap: 50px;
  flex-wrap: wrap;
}
.p-mh-gallery__item {
  max-width: calc((100% - 50px) / 2);
}
@media only screen and (max-width: 991px) {
  .p-mh-gallery__item {
    max-width: 91%;
  }
}
.p-mh-gallery__caption {
  font-weight: bold;
  margin-top: 2em;
  font-size: 0.9375rem;
}
.p-mh-gallery__media img {
  width: 100%;
  height: auto;
  box-shadow: 10px 10px 0 0 #a0a3a3;
}

/* ==================================
materials（体感できる素材と工夫）
================================== */
.p-mh-materials {
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-materials {
    padding-top: calc(80px + 300 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials {
    padding-top: 23.75rem;
  }
}
.p-mh-materials {
  padding-bottom: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-mh-materials {
    padding-bottom: calc(90px + 140 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials {
    padding-bottom: 14.375rem;
  }
}
.p-mh-materials {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-mh-materials {
    padding-left: calc(15px + 75 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials {
    padding-left: 5.625rem;
  }
}
.p-mh-materials {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-mh-materials {
    padding-right: calc(15px + 55 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials {
    padding-right: 4.375rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-mh-materials {
    padding-left: 0;
    padding-right: 0;
  }
}
.p-mh-materials__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
}
.p-mh-materials__sidebar {
  position: sticky;
  top: 120px;
  width: 33.52%;
  padding-right: 30px;
}
@media only screen and (max-width: 991px) {
  .p-mh-materials__sidebar {
    position: static;
    width: 100%;
    padding-right: 0;
  }
}
.p-mh-materials__heading {
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-materials__heading {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials__heading {
    font-size: 1.875rem;
  }
}
.p-mh-materials__heading {
  font-weight: bold;
  letter-spacing: 0.2em;
}
@media only screen and (max-width: 991px) {
  .p-mh-materials__heading {
    padding: 0 15px;
    text-align: center;
    margin-bottom: 30px;
  }
}
.p-mh-materials__list {
  width: 66.48%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 550px));
  gap: 50px 30px;
  justify-content: space-between;
}
@media only screen and (max-width: 991px) {
  .p-mh-materials__list {
    display: block;
    width: 100%;
    padding: 0 15px;
  }
}
@media only screen and (max-width: 991px) {
  .p-mh-materials__list.swiper .p-mh-materials__item {
    width: 91%;
    max-width: 380px;
    height: auto;
  }
}
.p-mh-materials__item {
  max-width: 550px;
  background: #fff;
  padding: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-mh-materials__item {
    padding: calc(15px + 10 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials__item {
    padding: 1.5625rem;
  }
}
.p-mh-materials__item-title {
  font-weight: bold;
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-materials__item-title {
    font-size: calc(20px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials__item-title {
    font-size: 1.375rem;
  }
}
.p-mh-materials__item-title {
  line-height: 1.75;
  border-bottom: 1px solid #1f1f1f;
  margin-bottom: 0.5em;
  padding-bottom: 0.25em;
}
.p-mh-materials__item-media {
  margin-bottom: 0.5em;
}
.p-mh-materials__item-media img {
  width: 100%;
  height: auto;
}
.p-mh-materials__item-text {
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-mh-materials__item-text {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-materials__item-text {
    font-size: 1.125rem;
  }
}
.p-mh-materials__item-text {
  letter-spacing: 0.01em;
}

/* ==================================
voices（体感された皆さまの声）
================================== */
.p-mh-voices {
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-voices {
    padding-top: calc(80px + 50 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-voices {
    padding-top: 8.125rem;
  }
}
.p-mh-voices {
  padding-bottom: 80px;
  background: #f4f2e8;
}
.p-mh-voices__heading {
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-voices__heading {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-voices__heading {
    font-size: 1.875rem;
  }
}
.p-mh-voices__heading {
  font-weight: bold;
  letter-spacing: 0.2em;
  padding: 0 15px;
  text-align: center;
  margin-bottom: 1.875rem;
}
@media screen and (min-width: 375px) {
  .p-mh-voices__heading {
    margin-bottom: calc(30px + 30 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-mh-voices__heading {
    margin-bottom: 3.75rem;
  }
}
.p-mh-voices__list {
  padding: 0 15px;
}
.p-mh-voices__list .swiper-wrapper {
  align-items: stretch;
}
.p-mh-voices__list:not(.swiper-initialized) .swiper-wrapper {
  gap: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-voices__list:not(.swiper-initialized) .swiper-wrapper {
    gap: calc(20px + 40 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-voices__list:not(.swiper-initialized) .swiper-wrapper {
    gap: 3.75rem;
  }
}
.p-mh-voices__list.is-static .swiper-wrapper {
  flex-wrap: wrap;
  justify-content: center;
}
.p-mh-voices__item {
  display: flex;
  align-items: center;
  width: 350px;
  max-width: 100%;
  height: auto;
  background-color: #fff;
  background-image: repeating-linear-gradient(to bottom, transparent 0, transparent 17px, #f4f4f4 17px, #f4f4f4 18px);
  padding: 3em;
  font-size: 0.9375rem;
  letter-spacing: 0.01em;
}
@media only screen and (max-width: 767px) {
  .p-mh-voices__item {
    width: 91%;
  }
}
.p-mh-voices__note {
  font-size: 0.8125rem;
}
@media screen and (min-width: 375px) {
  .p-mh-voices__note {
    font-size: calc(13px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-voices__note {
    font-size: 0.9375rem;
  }
}
.p-mh-voices__note {
  margin-top: 3em;
  text-align: right;
  padding: 0 3em;
}

/* ==================================
options（選べる体感方法）
================================== */
.p-mh-options {
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-options {
    padding-top: calc(80px + 120 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-options {
    padding-top: 12.5rem;
  }
}
.p-mh-options__heading {
  padding: 0 15px;
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-options__heading {
    margin-bottom: calc(40px + 20 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-mh-options__heading {
    margin-bottom: 3.75rem;
  }
}
.p-mh-options__heading {
  text-align: center;
}
.p-mh-options__title {
  font-size: 1.25rem;
}
@media screen and (min-width: 375px) {
  .p-mh-options__title {
    font-size: calc(20px + 10 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-options__title {
    font-size: 1.875rem;
  }
}
.p-mh-options__title {
  font-weight: bold;
  letter-spacing: 0.2em;
}
.p-mh-options__lead {
  margin-top: 0.5em;
  line-height: 1.75;
}

/* ==================================
form（お申し込みフォーム。見た目は modules/_c-form.scss の .c-form 共通クラスに依存。
イベント申込・お問い合わせフォームと同じ方式。tools/cf7/form_model_home.txt参照）
================================== */
.p-mh-form {
  background: #f4f2e8;
  padding-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-mh-form {
    padding-top: calc(80px + 40 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-form {
    padding-top: 7.5rem;
  }
}
.p-mh-form {
  padding-bottom: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-mh-form {
    padding-bottom: calc(90px + 80 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-mh-form {
    padding-bottom: 10.625rem;
  }
}
.p-mh-form {
  padding-right: 15px;
  padding-left: 15px;
}
.p-mh-form__body {
  margin-top: 40px;
}

/* ==================================
event single（バッジ・開催概要テーブル・申込導線）
================================== */
.p-event-single__content {
  background: #fff;
  padding-top: 50px;
  padding-bottom: 90px;
  padding-left: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-event-single__content {
    padding-left: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-event-single__content {
    padding-left: 3.75rem;
  }
}
.p-event-single__content {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-event-single__content {
    padding-right: calc(15px + 45 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-event-single__content {
    padding-right: 3.75rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-event-single__content {
    padding-top: 0;
  }
}
.p-event-single__intro {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
}
.p-event-single__intro-text {
  flex: 1;
  padding-right: 1.875rem;
}
@media screen and (min-width: 768px) {
  .p-event-single__intro-text {
    padding-right: calc(30px + 90 * (100vw - 768px) / 592);
  }
}
@media screen and (min-width: 1360px) {
  .p-event-single__intro-text {
    padding-right: 7.5rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-event-single__intro-text {
    max-width: 100%;
    flex: none;
    order: 1;
    margin-top: 50px;
    padding-right: 0;
  }
}
.p-event-single__title {
  margin-top: 0.6em;
  font-weight: bold;
  line-height: 1.5;
  font-size: 1.375rem;
}
@media screen and (min-width: 375px) {
  .p-event-single__title {
    font-size: calc(22px + 14 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-event-single__title {
    font-size: 2.25rem;
  }
}
.p-event-single__title {
  letter-spacing: 0.05em;
}
.p-event-single__catch {
  margin-top: 1em;
  line-height: 1.75;
  font-size: 1.125rem;
}
@media screen and (min-width: 375px) {
  .p-event-single__catch {
    font-size: calc(18px + 4 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-event-single__catch {
    font-size: 1.375rem;
  }
}
.p-event-single__catch {
  font-weight: bold;
  color: #000;
}
.p-event-single__lead {
  margin-top: 1.5em;
  font-weight: 500;
  line-height: 1.8;
  color: #000;
}
.p-event-single__media {
  max-width: 520px;
  width: 42%;
  text-align: right;
}
@media only screen and (max-width: 767px) {
  .p-event-single__media {
    width: 100%;
    margin: 0 auto;
    flex: none;
    text-align: center;
  }
}
.p-event-single__media img {
  max-width: 100%;
  height: auto;
}
.p-event-single__overview, .p-event-single__body {
  margin-top: 3.125rem;
}
@media screen and (min-width: 768px) {
  .p-event-single__overview, .p-event-single__body {
    margin-top: calc(50px + 30 * (100vw - 768px) / 592);
  }
}
@media screen and (min-width: 1360px) {
  .p-event-single__overview, .p-event-single__body {
    margin-top: 5rem;
  }
}
.p-event-single__overview, .p-event-single__body {
  color: #000;
  font-weight: 500;
}
.p-event-single__section-heading {
  font-weight: bold;
  letter-spacing: 0.1em;
  border-left: 5px solid #929e85;
  line-height: 1.235;
  padding-left: 1em;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-event-single__section-heading {
    font-size: calc(16px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-event-single__section-heading {
    font-size: 1.0625rem;
  }
}
.p-event-single__section-heading {
  margin-bottom: 1.3em;
}
.p-event-single__table {
  width: 100%;
  max-width: 1000px;
  border-top: 1px solid #bfbfbf;
}
.p-event-single__table tr {
  border-bottom: 1px solid #bfbfbf;
}
.p-event-single__table th,
.p-event-single__table td {
  text-align: left;
  padding: 0.75em 1.75em;
  width: auto;
}
@media only screen and (max-width: 767px) {
  .p-event-single__table th,
  .p-event-single__table td {
    padding: 0.75em 1em;
  }
}
@media only screen and (max-width: 499px) {
  .p-event-single__table th,
  .p-event-single__table td {
    display: block;
  }
}
.p-event-single__table th {
  letter-spacing: 0.1em;
  background: #e1ddd3;
  width: 1%;
  white-space: nowrap;
}
@media only screen and (max-width: 499px) {
  .p-event-single__table th {
    white-space: normal;
    width: 100%;
    padding: 0.25em 1em;
  }
}
.p-event-single__session {
  display: flex;
}
.p-event-single__session:not(:first-child) {
  margin-top: 0.25em;
}
.p-event-single__session-date {
  flex: 0 0 10em;
  white-space: nowrap;
}
.p-event-single__session-time {
  flex: 0 0 auto;
}
.p-event-single__body {
  width: 560px;
  max-width: 100%;
}
.p-event-single__cta {
  margin-top: 70px;
  text-align: center;
  background: #e1ddd3;
  padding: 2em;
}
.p-event-single__cta-note {
  line-height: 1.5;
}
.p-event-single__cta-button {
  margin-top: 1.5em;
}
.p-event-single__cta-button--disabled {
  background: #98938d;
  cursor: not-allowed;
}
.p-event-single .c-post-nav {
  margin: 70px auto 0;
  width: 840px;
  max-width: 100%;
}

/* ==================================
event entry（イベント申込フォームページ）
================================== */
.p-event-entry__head {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 2.5rem;
}
@media screen and (min-width: 375px) {
  .p-event-entry__head {
    gap: calc(40px + -40 * (100vw - 375px) / 617);
  }
}
@media screen and (min-width: 992px) {
  .p-event-entry__head {
    gap: 0rem;
  }
}
.p-event-entry__head {
  width: 1280px;
  max-width: 100%;
  margin: 0 auto 30px;
}
.p-event-entry .c-section-heading {
  width: 100%;
}
.p-event-entry__back {
  font-size: 0.8125rem;
}
@media screen and (min-width: 375px) {
  .p-event-entry__back {
    font-size: calc(13px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-event-entry__back {
    font-size: 0.9375rem;
  }
}

/* ==================================
event archive（イベント一覧：カードグリッド＋ページネーション）
================================== */
.p-event-archive__body {
  padding-top: 50px;
  padding-bottom: 90px;
  background: #fff;
}
.p-event-archive .c-pagination {
  margin-top: 5rem;
}
@media screen and (min-width: 375px) {
  .p-event-archive .c-pagination {
    margin-top: calc(80px + 80 * (100vw - 375px) / 985);
  }
}
@media screen and (min-width: 1360px) {
  .p-event-archive .c-pagination {
    margin-top: 10rem;
  }
}
.p-event-archive .c-pagination {
  padding-left: 15px;
  padding-right: 15px;
}

/* ==================================
history（歴史：左サイドバー追従＋左右2カラム年表→合流で1カラム）
================================== */
.p-aboutus-history {
  padding-top: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history {
    padding-top: calc(90px + 110 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history {
    padding-top: 12.5rem;
  }
}
.p-aboutus-history {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-aboutus-history {
    padding-left: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history {
    padding-left: 5.9375rem;
  }
}
.p-aboutus-history {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-aboutus-history {
    padding-right: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history {
    padding-right: 5.9375rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-aboutus-history {
    padding-left: 0;
    padding-right: 0;
  }
}
.p-aboutus-history__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
}
.p-aboutus-history__sidebar {
  position: sticky;
  top: 120px;
  padding-bottom: 60px;
  padding-right: 4.17vw;
  width: 35.8%;
}
@media only screen and (max-width: 991px) {
  .p-aboutus-history__sidebar {
    position: static;
    padding-right: 15px;
    padding-left: 15px;
    width: 100%;
  }
}
.p-aboutus-history__content {
  width: 64.2%;
}
@media only screen and (max-width: 991px) {
  .p-aboutus-history__content {
    width: 100%;
    padding: 0 15px;
  }
}
.p-aboutus-history__columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 40px;
}
@media only screen and (max-width: 767px) {
  .p-aboutus-history__columns {
    grid-template-columns: 1fr;
    gap: 60px;
  }
}
.p-aboutus-history__col-heading {
  font-weight: bold;
  font-size: 1rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history__col-heading {
    font-size: calc(16px + 2 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history__col-heading {
    font-size: 1.125rem;
  }
}
.p-aboutus-history__col-heading {
  padding-bottom: 0.75em;
  border-bottom: 1px solid #cccac8;
}
.p-aboutus-history__era {
  margin-top: 2.5em;
  font-weight: bold;
  letter-spacing: 0.05em;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history__era {
    font-size: calc(14px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history__era {
    font-size: 0.9375rem;
  }
}
.p-aboutus-history__era {
  color: #999393;
}
.p-aboutus-history__col-heading + .p-aboutus-history__era {
  margin-top: 2em;
}
.p-aboutus-history__item {
  margin-top: 1.75em;
}
.p-aboutus-history__year {
  font-weight: bold;
  font-family: "helvetica-neue-lt-pro", yu-gothic-pr6n, Yu Gothic Medium, 游ゴシック Medium, Yu Gothic, YuGothic, 游ゴシック体, sans-serif;
  letter-spacing: 0.03em;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history__year {
    font-size: calc(14px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history__year {
    font-size: 0.9375rem;
  }
}
.p-aboutus-history__item-title {
  margin-top: 0.4em;
  font-weight: bold;
  line-height: 1.6;
  font-size: 0.9375rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history__item-title {
    font-size: calc(15px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history__item-title {
    font-size: 1rem;
  }
}
.p-aboutus-history__item-media {
  margin-top: 0.75em;
}
.p-aboutus-history__item-media img {
  width: 100%;
  height: auto;
}
.p-aboutus-history__item-text {
  margin-top: 0.5em;
  font-size: 0.8125rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-history__item-text {
    font-size: calc(13px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-history__item-text {
    font-size: 0.875rem;
  }
}
.p-aboutus-history__item-text {
  line-height: 1.8;
  letter-spacing: 0.01em;
}
.p-aboutus-history__merged {
  margin-top: 60px;
  padding-top: 60px;
  border-top: 1px solid #cccac8;
}

/* ==================================
company（会社概要：左サイドバー追従＋会社ごとのテーブルを縦積み）
================================== */
.p-aboutus-company {
  padding-top: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-company {
    padding-top: calc(90px + 110 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company {
    padding-top: 12.5rem;
  }
}
.p-aboutus-company {
  padding-bottom: 5.625rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-company {
    padding-bottom: calc(90px + 60 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company {
    padding-bottom: 9.375rem;
  }
}
.p-aboutus-company {
  padding-left: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-aboutus-company {
    padding-left: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company {
    padding-left: 5.9375rem;
  }
}
.p-aboutus-company {
  padding-right: 0.9375rem;
}
@media screen and (min-width: 1360px) {
  .p-aboutus-company {
    padding-right: calc(15px + 80 * (100vw - 1360px) / 560);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company {
    padding-right: 5.9375rem;
  }
}
@media only screen and (max-width: 991px) {
  .p-aboutus-company {
    padding-left: 0;
    padding-right: 0;
  }
}
.p-aboutus-company__grid {
  display: flex;
  flex-wrap: wrap;
  align-items: start;
}
.p-aboutus-company__sidebar {
  position: sticky;
  top: 120px;
  padding-bottom: 60px;
  padding-right: 4.17vw;
  width: 35.8%;
}
@media only screen and (max-width: 991px) {
  .p-aboutus-company__sidebar {
    position: static;
    padding-right: 15px;
    padding-left: 15px;
    width: 100%;
  }
}
.p-aboutus-company__content {
  width: 64.2%;
}
@media only screen and (max-width: 991px) {
  .p-aboutus-company__content {
    width: 100%;
    padding: 0 15px;
  }
}
.p-aboutus-company__table {
  border-top: 2px solid #cccac8;
  border-bottom: 1px solid #cccac8;
}
.p-aboutus-company__table:not(:first-child) {
  margin-top: 60px;
}
.p-aboutus-company__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  align-items: stretch;
  border-bottom: 1px solid #cccac8;
}
@media only screen and (max-width: 767px) {
  .p-aboutus-company__row {
    grid-template-columns: 1fr;
  }
}
.p-aboutus-company__row-label {
  display: flex;
  align-items: center;
  padding: 1.2em 1.5em;
  background: #e1ddd3;
  font-weight: bold;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-company__row-label {
    font-size: calc(14px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company__row-label {
    font-size: 0.9375rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-aboutus-company__row-label {
    padding: 1em;
  }
}
.p-aboutus-company__row-value {
  padding: 1.2em 1.5em;
  background: #fff;
  font-size: 0.875rem;
}
@media screen and (min-width: 375px) {
  .p-aboutus-company__row-value {
    font-size: calc(14px + 1 * (100vw - 375px) / 1545);
  }
}
@media screen and (min-width: 1920px) {
  .p-aboutus-company__row-value {
    font-size: 0.9375rem;
  }
}
.p-aboutus-company__row-value {
  line-height: 1.8;
  letter-spacing: 0.01em;
}
@media only screen and (max-width: 767px) {
  .p-aboutus-company__row-value {
    padding: 1em;
  }
}
.p-aboutus-company__map-button {
  margin-top: 1em;
}
.p-aboutus-company__video-link {
  margin-top: 2em;
  text-align: center;
}

/* ==================================
utility
================================== */
.u-text-center {
  text-align: center;
}

@media only screen and (min-width: 1200px) {
  .u-sp-only {
    display: none !important;
  }
}

.u-pc-only {
  display: none !important;
}
@media only screen and (min-width: 1200px) {
  .u-pc-only {
    display: block !important;
  }
}

.u-mt0 {
  margin-top: 0px !important;
}

.u-mt8 {
  margin-top: 8px !important;
}

.u-mt16 {
  margin-top: 16px !important;
}

.u-mt24 {
  margin-top: 24px !important;
}

.u-mt32 {
  margin-top: 32px !important;
}

.u-mt40 {
  margin-top: 40px !important;
}

.u-mt48 {
  margin-top: 48px !important;
}

.u-mt56 {
  margin-top: 56px !important;
}

.u-mt64 {
  margin-top: 64px !important;
}

.u-mt72 {
  margin-top: 72px !important;
}

.u-mt80 {
  margin-top: 80px !important;
}/*# sourceMappingURL=style.css.map */