@charset "UTF-8";
/*
Theme Name: cres
Theme URI:
Author: hi5
Description: cres custom theme
Version: 1.0.0
Text Domain: cres
*/
@import url("https://fonts.googleapis.com/css2?family=Jost:wght@100;200;300;400;500;600;700;800;900&family=M+PLUS+Rounded+1c:wght@100;300;400;500;700;800;900&family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, main, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

article, aside, details, figcaption, figure, footer, header, hgroup, nav, main, section, summary {
  display: block;
}

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

html {
  font-size: 62.5%;
  overflow-y: scroll;
}

body {
  line-height: 1.5;
  font-size: 3.5vw;
  letter-spacing: 0.1rem;
  background: #F7F7F7;
  color: #2c2c2c;
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-optical-sizing: auto;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

@media only screen and (min-width: 768px) {
  body {
    font-size: 1.4rem;
    line-height: 1.5;
  }
}
ul {
  list-style: none;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  font-size: 100%;
  color: #0041a0;
  background: transparent;
  -webkit-tap-highlight-color: rgba(0, 65, 160, 0.6);
  text-decoration: none;
}

a:focus {
  outline: none;
}

a:hover, a:active {
  text-decoration: none;
  color: #0056d3;
}

img {
  vertical-align: top;
  -ms-interpolation-mode: bicubic;
}

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

hr {
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0;
  border: 0;
  border-top: 1px solid #999999;
}

::selection {
  color: #FFFFFF;
  background: #004bba;
}

input::selection,
textarea::selection {
  color: #000000;
}

textarea {
  resize: vertical;
}

:placeholder-shown {
  color: rgba(0, 0, 0, 0.4);
}

::-webkit-input-placeholder {
  color: rgba(0, 0, 0, 0.4);
}

:-moz-placeholder {
  opacity: 1;
  color: rgba(0, 0, 0, 0.4);
}

::-moz-placeholder {
  opacity: 1;
  color: rgba(0, 0, 0, 0.4);
}

:-ms-input-placeholder {
  color: rgba(0, 0, 0, 0.4);
}

.row {
  width: 90%;
  margin: auto;
}

@media only screen and (min-width: 1025px) {
  .row {
    max-width: 1200px;
  }
}
img {
  max-width: 100%;
  height: auto;
}

.wk-card__pic,
.tp-event__pic,
.se-head-pic,
.ed-gallery__main,
.cld-eyecatch {
  margin: 0;
}

.hi5-figure {
  margin: 0 0 1em;
}

/* ページ遷移：開く=下から上へ退く(CSS animation)／閉じる=上から下へ覆う(JSインライン) */
.page-transition {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: #F7F7F7;
  transform: scaleY(0);
  transform-origin: top;
  pointer-events: none;
  animation: pt-reveal 0.7s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes pt-reveal {
  from {
    transform: scaleY(1);
  }
  to {
    transform: scaleY(0);
  }
}
/* ローディング（初回のみ。header.php の head で html.is-loading → JS が読み込み完了で is-loaded） */
.site-loader {
  display: none;
}

html.is-loading {
  overflow: hidden;
}
html.is-loading .site-loader {
  position: fixed;
  inset: 0;
  z-index: 100001;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F7F7F7;
  transform-origin: top;
  transition: transform 0.9s cubic-bezier(0.77, 0, 0.18, 1) 0.35s;
}

.site-loader__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: opacity 0.4s ease, transform 0.5s ease;
}

.site-loader__logo {
  display: block;
  width: min(42vw, 168px);
  height: auto;
  opacity: 0;
  animation: ld-logo 1s cubic-bezier(0.16, 1, 0.3, 1) 0.1s forwards;
}

.site-loader__bar {
  position: relative;
  width: min(30vw, 120px);
  height: 1px;
  margin-top: min(6vw, 28px);
  background: #d9d9d9;
  overflow: hidden;
}
.site-loader__bar::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  transform: scaleX(0);
  transform-origin: left;
  animation: ld-bar 1.4s cubic-bezier(0.65, 0, 0.35, 1) 0.3s forwards;
}

html.is-loaded .site-loader {
  transform: scaleY(0);
}
html.is-loaded .site-loader__inner {
  opacity: 0;
  transform: translateY(-12px);
}

@keyframes ld-logo {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes ld-bar {
  to {
    transform: scaleX(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-loader__logo, .site-loader__bar::after {
    animation-duration: 0.01s;
    animation-delay: 0s;
  }
}
/* スクロールでふわっと表示（.effect 要素 → JSが is-visible を付与） */
.effect {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.effect.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.effect-cards > li {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
  transition-delay: calc(var(--i, 0) * 0.12s);
}

.effect-cards.is-visible > li,
.effect-cards--each > li.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .effect-cards > li {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
/* =========================================================
   page-staff（スタッフ紹介）  — モバイルファースト
   ========================================================= */
.font-en {
  font-family: "Jost", sans-serif;
}

/* ---- ページヘッダー ---- */
.se-header-staff {
  margin-bottom: 8vw;
}
.se-header-staff .tit-wrap {
  text-align: center;
  padding: 4vw 0 4vw;
}
.se-header-staff .tit-wrap .tit-logo {
  text-align: center;
  margin-bottom: 4vw;
  margin-left: 4vw;
}
.se-header-staff .tit-wrap .tit-logo img {
  width: 45vw;
  max-width: 170px;
}
.se-header-staff .tit-wrap .tit-en {
  font-size: min(9vw, 55px);
  font-weight: 500;
  color: #2c2c2c;
  line-height: 1.1;
  text-transform: uppercase;
}
.se-header-staff .tit-wrap h2 {
  font-size: 3.4vw;
  font-weight: 700;
  color: #2c2c2c;
  margin-top: 0.3em;
  margin-bottom: 1em;
}
.se-header-staff .se-head-pic img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  max-height: 600px;
  object-fit: cover;
  background: #e5e3d5;
}

/* ---- 全体ラッパ ---- */
.staff-wrap {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 14vw 0 24vw;
}

/* ---- 部署見出し ---- */
.staff-group + .staff-group {
  margin-top: 22vw;
}
.staff-group .tit-dept {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4em;
  padding-bottom: 2.4vw;
  margin-bottom: 6vw;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}
.staff-group .tit-dept .dept-jp {
  font-size: min(8vw, 45px);
  font-weight: 700;
  color: #2c2c2c;
}
.staff-group .tit-dept .dept-en {
  font-size: 2.6vw;
  font-weight: 500;
  color: #c1c1c1;
}

/* ---- カード ---- */
.staff-list {
  display: flex;
  flex-direction: column;
  gap: 8vw;
}

.staff-card {
  background: #fff;
  padding: 6vw 5vw;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.staff-photo {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 4.5vw;
}
.staff-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3.5/3;
  object-fit: cover;
  object-position: center bottom;
  background: #ece9da;
}

.staff-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.6em;
  margin-bottom: 2.5vw;
  padding-bottom: 2.5vw;
  border-bottom: 1px solid #000;
}
.staff-head .staff-name {
  font-size: 5.2vw;
  font-weight: 700;
  color: #2c2c2c;
  line-height: 1.2;
}
.staff-head .staff-romaji {
  font-size: 2.8vw;
  font-weight: 500;
  color: #2c2c2c;
  margin-left: 0.5em;
}
.staff-head .staff-pos {
  font-size: 2.85vw;
  color: #2c2c2c;
  white-space: nowrap;
  margin-left: auto;
}

.staff-desc {
  font-size: 3.65vw;
  line-height: 1.85;
  color: #2c2c2c;
  margin-bottom: 7vw;
}

/* ---- 詳細（SP=アコーディオンで開閉） ---- */
.staff-detail {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease;
}

.staff-card.is-open .staff-detail {
  max-height: 200vw;
  opacity: 1;
  margin-top: 4.5vw;
}

.staff-meta + .staff-meta {
  margin-top: 6vw;
}

.staff-badge-col {
  width: 36vw;
  margin-bottom: 1.8vw;
}

.staff-badge {
  display: block;
  width: 100%;
  text-align: center;
  background: transparent;
  border: 1px solid #B7A054;
  color: #B7A054;
  font-size: 3.05vw;
  font-weight: 700;
  border-radius: 999px;
  padding: 0.45em 0;
  white-space: nowrap;
}

.staff-text {
  font-size: 3.45vw;
  line-height: 1.8;
  color: #2c2c2c;
  font-weight: 500;
}

/* ---- もっと見る / 閉じる ---- */
.staff-toggle {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 4.5vw;
  padding: 2.6vw 0;
  background: #000;
  border: 1px solid #000;
  border-radius: 999px;
  color: #fff;
  font-family: inherit;
  font-size: 3.2vw;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.staff-toggle .t-close {
  display: none;
}
.staff-toggle:hover {
  background: #333;
  color: #fff;
}

/* 通常は「もっと見る」＝表示／「閉じる」＝非表示 */
.staff-toggle .t-more {
  display: inline-flex;
  align-items: center;
}

.staff-toggle .t-close {
  display: none;
  align-items: center;
}

/* 開いている時は反転 */
.staff-card.is-open .staff-toggle .t-more {
  display: none;
}

.staff-card.is-open .staff-toggle .t-close {
  display: inline-flex;
}

/* ＋ / − アイコン（ボタン右端に配置・丸線なし） */
.staff-toggle .t-more::after,
.staff-toggle .t-close::after {
  position: absolute;
  right: 5vw;
  top: 50%;
  transform: translateY(-50%);
  font-size: 5vw;
  font-weight: 400;
  line-height: 1;
}

.staff-toggle .t-more::after {
  content: "+";
}

.staff-toggle .t-close::after {
  content: "−"; /* minus */
}

/* =========================================================
   PC（768px 以上）— 詳細は常時表示・写真は左
   ========================================================= */
@media only screen and (min-width: 768px) {
  .se-header-staff {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 320px;
    margin-bottom: 5rem;
  }
  .se-header-staff .tit-wrap {
    position: relative;
    z-index: 2;
    min-width: 0;
    overflow: visible;
    flex: 0 0 32%;
    text-align: left;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 0 0 5%;
  }
  .se-header-staff .tit-wrap .tit-logo {
    position: absolute;
    top: 40px;
    left: 0;
    right: 0;
    margin-bottom: 0;
  }
  .se-header-staff .tit-wrap .tit-en {
    font-size: min(3.82vw, 55px);
    white-space: nowrap;
  }
  .se-header-staff .tit-wrap h2 {
    font-size: 1.7rem;
  }
  .se-header-staff .se-head-pic {
    flex: 1 1 auto;
  }
  .se-header-staff .se-head-pic img {
    aspect-ratio: 3/2;
    height: auto;
  }
  .staff-wrap {
    padding: 6rem 0 15rem;
  }
  .staff-group + .staff-group {
    margin-top: 12rem;
  }
  .staff-group .tit-dept {
    flex-direction: row;
    align-items: baseline;
    gap: 2em;
    padding-bottom: 1rem;
    margin-bottom: 3rem;
  }
  .staff-group .tit-dept .dept-en {
    font-size: 1.9rem;
  }
  .staff-list {
    gap: 3.5rem;
  }
  .staff-card {
    display: flex;
    align-items: flex-start;
    gap: 56px;
    padding: 50px 80px;
  }
  .staff-photo {
    flex: 0 0 25%;
    width: auto;
    margin: 0;
  }
  .staff-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    object-position: center bottom;
    background: #ece9da;
  }
  .staff-body {
    flex: 1 1 auto;
    min-width: 0;
  }
  .staff-head {
    align-items: baseline;
    margin-bottom: 16px;
    padding-bottom: 14px;
  }
  .staff-head .staff-name {
    font-size: 27px;
  }
  .staff-head .staff-romaji {
    font-size: 14px;
    margin-left: 10px;
  }
  .staff-head .staff-pos {
    font-size: 15px;
    margin-left: auto;
  }
  .staff-desc {
    font-size: 16px;
    line-height: 2;
    margin-bottom: 36px;
  }
  /* PCは常時展開・開閉ボタン非表示 */
  .staff-detail {
    max-height: none;
    opacity: 1;
    overflow: visible;
    margin-top: 0;
  }
  .staff-meta {
    display: flex;
    align-items: flex-start;
    gap: 22px;
  }
  .staff-meta + .staff-meta {
    margin-top: 18px;
  }
  .staff-badge-col {
    flex: 0 0 130px;
    margin: -1.75px 0 0;
  }
  .staff-badge {
    height: 32px;
    padding: 0;
    font-size: 14px;
    line-height: 30px;
  }
  .staff-text {
    flex: 1 1 auto;
    font-size: 15px;
    line-height: 1.9;
  }
  .staff-toggle {
    display: none;
  }
}
/* =========================================================
   フッター  — モバイルファースト
   ========================================================= */
.site-footer {
  background: #1a1a1a;
  color: #fff;
  padding: 12vw 6vw 7vw;
  font-size: 3.7vw;
  line-height: 1.4;
}

.ft-inner {
  max-width: 1040px;
  margin: 0 auto;
}

/* --- 上段ヘッド（ロゴ＋SNS） --- */
.ft-top-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4vw;
}

.ft-logo img {
  width: 32vw;
  max-width: 147px;
}

.ft-sns {
  display: flex;
  gap: 4vw;
  margin-top: 3vw;
}
.ft-sns a {
  color: #fff;
  font-size: 5vw;
  line-height: 1;
  transition: opacity 0.2s;
}
.ft-sns a:hover {
  opacity: 0.6;
}

/* --- 連絡先・住所の行 --- */
.ft-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  margin-bottom: 2vw;
}
.ft-row .lb {
  flex: 0 0 16vw;
  margin-right: 2vw;
  color: #fff;
}
.ft-row .lb-sp {
  flex: 0 0 auto;
  margin-left: 3vw;
}
.ft-row .vl {
  flex: 0 1 auto;
}

@media only screen and (max-width: 767px) {
  .ft-row:has(.lb-sp) > .lb:first-child {
    flex-basis: auto;
  }
}
.ft-info {
  margin-top: 8vw;
}

/* --- ナビ --- */
.ft-nav {
  display: flex;
  gap: 2vw;
  margin-top: 9vw;
  padding: 0 3vw;
}
.ft-nav ul {
  flex: 1 1 0;
}
.ft-nav li {
  margin-bottom: 3.5vw;
}
.ft-nav a {
  color: #fff;
  transition: opacity 0.2s;
}
.ft-nav a:hover {
  opacity: 0.6;
}
.ft-nav .sub {
  color: #fff;
}

@media only screen and (max-width: 767px) {
  .ft-nav .sub {
    display: inline-block;
    padding-left: 3vw;
  }
  .ft-nav li:has(> .sub) + li:not(:has(> .sub)) {
    margin-top: 6vw;
  }
}
/* --- 区切り線 --- */
.ft-bottom {
  margin-top: 10vw;
  padding-top: 9vw;
  border-top: 1px solid #3a3a3a;
}

.ft-logo2 img {
  width: 56vw;
  max-width: 230px;
}

.ft-info2 {
  margin-top: 6vw;
}

/* --- コピーライト --- */
.ft-copy {
  margin-top: 10vw;
  text-align: center;
  font-size: 3.1vw;
  color: #fff;
}

/* =========================================================
   フッター  — PC（1025px 以上で4カラム横並び・折り返し回避）
   ========================================================= */
@media only screen and (min-width: 1025px) {
  .site-footer {
    padding: 60px 40px 30px;
    font-size: 14.5px;
    line-height: 1.5;
  }
  .ft-logo img {
    width: 147px;
  }
  .ft-sns {
    gap: 24px;
    margin-top: 6px;
  }
  .ft-sns a {
    font-size: 20px;
  }
  .ft-row {
    flex-wrap: nowrap;
    white-space: nowrap;
    margin-bottom: 14px;
  }
  .ft-row .lb {
    flex-basis: 56px;
    margin-right: 14px;
  }
  .ft-row .lb-sp {
    flex: 0 0 auto;
    margin-left: 24px;
    margin-right: 18px;
  }
  .ft-row .vl {
    flex: 0 0 auto;
  }
  /* 上段：連絡先（左）＋ナビ（右） */
  .ft-body {
    display: flex;
    margin-top: 36px;
  }
  .ft-inner {
    width: 90%;
    max-width: none;
  }
  .ft-info {
    flex: 0 0 360px;
    margin-top: 0;
    padding-right: 40px;
  }
  .ft-nav {
    flex: 0 1 760px;
    margin-left: auto;
    margin-top: 0;
    gap: 12px;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
  }
  .ft-nav ul {
    column-count: 2;
    column-gap: 40px;
  }
  .ft-nav {
    /* 各ulを内容幅に収め、列間が均等になるよう調整 */
  }
  .ft-nav ul:first-child {
    flex: 0 0 auto;
  }
  .ft-nav ul:last-child {
    flex: 0 0 auto;
  }
  .ft-nav li {
    margin-bottom: 14px;
    white-space: nowrap;
  }
  .ft-bottom {
    margin-top: 40px;
    padding-top: 40px;
  }
  .ft-logo2 img {
    width: 230px;
  }
  .ft-info2 {
    margin-top: 28px;
  }
  .ft-copy {
    margin-top: 44px;
    font-size: 13px;
  }
}
/* =========================================================
   page-about（会社概要）  — モバイルファースト
   ========================================================= */
/* ヘッダー（se-header）は全ページ共通スタイル（.se-header-staff）を使用 */
/* 共通インナー */
.about-inner,
.msg-inner,
.ov-inner {
  width: 86%;
  max-width: 1040px;
  margin: 0 auto;
}

.about-message .msg-inner {
  width: 90%;
  max-width: 1500px;
}

/* --- キャッチ --- */
.about-catch {
  padding: 14vw 0 18vw;
}
.about-catch .about-inner {
  width: 90%;
  max-width: 1500px;
}
.about-catch .catch-tit {
  font-size: min(5.6vw, 45px);
  font-weight: 700;
  line-height: 1.5;
  color: #2c2c2c;
  margin-bottom: 6vw;
}
.about-catch .catch-txt {
  font-size: 3.85vw;
  line-height: 2;
  color: #4a4a4a;
  text-align: justify;
}

/* --- 代表挨拶（ダーク） --- */
.about-message {
  position: relative;
  color: #fff;
  padding: 13vw 0;
  background-image: linear-gradient(rgba(20, 20, 20, 0.55), rgba(20, 20, 20, 0.55)), url("assets/images/bg_greet_sp.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.msg-photo {
  width: 58vw;
  max-width: 280px;
  margin: 0 auto 9vw;
}
.msg-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  background: #444;
}
.msg-photo figcaption {
  margin-top: 3vw;
  font-size: 3.3vw;
  line-height: 1.9;
  color: #fff;
}
.msg-photo .msg-name {
  font-size: 1.25em;
}

.sp-only {
  display: inline;
}

.pc-only {
  display: none;
}

.msg-lead {
  font-size: 5.6vw;
  font-weight: 700;
  line-height: 1.7;
  margin-bottom: 6vw;
}

.msg-txt {
  font-size: 3.6vw;
  line-height: 2;
  color: #fff;
  text-align: justify;
}
.msg-txt + .msg-txt {
  margin-top: 1.4em;
}

/* --- 会社概要テーブル --- */
.about-overview {
  padding: 14vw 0 16vw;
}

.ov-tit {
  font-size: 6vw;
  font-weight: 700;
  color: #2c2c2c;
  margin-bottom: 7vw;
}

.ov-row {
  display: flex;
  flex-direction: column;
}
.ov-row dt {
  background: #958D7C;
  border-bottom: 1px solid rgba(255, 255, 255, 0.6);
  color: #fff;
  font-weight: 700;
  font-size: 3.3vw;
  padding: 3.4vw 5vw;
}
.ov-row dd {
  margin: 0;
  border-bottom: 1px solid #d9d9d9;
  font-size: 3.3vw;
  line-height: 1.85;
  color: #3a3a3a;
  padding: 4vw 5vw;
}
.ov-row:last-child dt {
  border-bottom: 0;
}
.ov-row:last-child dd {
  border-bottom: 0;
}

/* =========================================================
   page-about  — PC（768px 以上）
   ========================================================= */
@media only screen and (min-width: 768px) {
  .about-catch {
    padding: 110px 0 140px;
  }
  .about-catch .catch-tit {
    font-size: min(3.125vw, 45px);
    margin-bottom: 30px;
  }
  .about-catch .catch-txt {
    font-size: 16px;
    line-height: 2.1;
  }
  .about-message {
    padding: 140px 70px 140px 0;
    background-image: linear-gradient(rgba(20, 20, 20, 0.5), rgba(20, 20, 20, 0.5)), url("assets/images/bg_greet.jpg");
    background-attachment: scroll;
  }
  .msg-inner {
    display: flex;
    align-items: flex-start;
    gap: 64px;
  }
  .msg-photo {
    flex: 0 0 280px;
    width: 280px;
    max-width: none;
    margin: 0;
  }
  .msg-photo figcaption {
    margin-top: 14px;
    font-size: 14px;
  }
  .msg-body {
    flex: 1 1 auto;
  }
  .sp-only {
    display: none;
  }
  .pc-only {
    display: inline;
  }
  .msg-lead {
    font-size: min(3.26vw, 25px);
    margin-bottom: 28px;
  }
  .msg-txt {
    font-size: 15px;
    line-height: 2.1;
  }
  .about-overview {
    padding: 96px 0 120px;
  }
  .ov-tit {
    font-size: 32px;
    margin-bottom: 36px;
  }
  .ov-row {
    flex-direction: row;
  }
  .ov-row dt {
    flex: 0 0 238px;
    font-size: 15px;
    line-height: 1.9;
    padding: 22px 30px;
  }
  .ov-row dd {
    flex: 1 1 auto;
    font-size: 15px;
    line-height: 1.9;
    padding: 22px 52px;
  }
}
/* =========================================================
   page-privacy（プライバシーポリシー）  — モバイルファースト
   ========================================================= */
/* 英字タイトルは改行させない（右の画像に被ってOK・画像幅は固定） */
.se-header-privacy .tit-wrap {
  /* flex の min-width:auto による画像の押し縮めを防ぐ */
  min-width: 0;
  position: relative;
  z-index: 2;
  overflow: visible;
}
.se-header-privacy .tit-en {
  white-space: nowrap;
}

.privacy-inner {
  width: 86%;
  max-width: 1040px;
  margin: 0 auto;
  padding: 6vw 0 16vw;
}

.pv-block + .pv-block {
  margin-top: 11vw;
}

.pv-tit {
  font-size: min(4vw, 28px);
  font-weight: 700;
  color: #2c2c2c;
  line-height: 1.5;
  padding-bottom: 3.4vw;
  margin-bottom: 5vw;
  border-bottom: 1px solid #d8d5c4;
}

.pv-txt {
  font-size: 3.3vw;
  line-height: 1.75;
  color: #2c2c2c;
  text-align: justify;
}
.pv-txt + .pv-txt {
  margin-top: 1.6em;
}

/* 番号付き条項（折り返し時は番号の右＝本文先頭にぶら下げ揃え） */
.pv-ol {
  list-style: none;
  padding: 0;
  margin: 0;
  line-height: 1.7;
  counter-reset: pv;
}
.pv-ol li {
  /* 番号ぶんを字下げし、続き行を本文先頭に揃える */
  padding-left: 2.3em;
  text-indent: -1.3em;
  counter-increment: pv;
}
.pv-ol li::before {
  content: counter(pv) ".";
  display: inline-block;
  width: 1.3em;
  text-indent: 0;
}

/* ※注（ベースカラー） */
.pv-note {
  font-size: 3vw;
  color: #2c2c2c;
}

/* =========================================================
   page-privacy  — PC（768px 以上）
   ========================================================= */
@media only screen and (min-width: 768px) {
  .privacy-inner {
    padding: 64px 0 120px;
  }
  .pv-block + .pv-block {
    margin-top: 72px;
  }
  .pv-tit {
    font-size: 24px;
    padding-bottom: 16px;
    margin-bottom: 28px;
  }
  .pv-txt {
    font-size: 15px;
    line-height: 1.85;
  }
  .pv-ol {
    line-height: 1.85;
  }
  .pv-note {
    font-size: 14px;
  }
}
/* =========================================================
   ハンバーガーメニュー（fatNav）
   ========================================================= */
.hamburger {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  background: #2c2c2c;
  text-decoration: none;
  cursor: pointer;
}

.hamburger__icon {
  position: relative;
  width: 28px;
  height: 26px;
  background: linear-gradient(#ffffff, #ffffff) no-repeat right center;
  background-size: 20px 2px;
  transition: background-size 0.2s ease;
}
.hamburger__icon::before, .hamburger__icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  margin-top: -1px;
  height: 2px;
  background: #ffffff;
  border-radius: 2px;
  transition: transform 0.6s ease, width 0.3s ease;
}
.hamburger__icon::before {
  width: 11px;
  transform: translateY(-12px) rotate(0deg);
}
.hamburger__icon::after {
  width: 28px;
  transform: translateY(12px) rotate(0deg);
}

.hamburger.active .hamburger__icon {
  background-size: 0 2px;
}
.hamburger.active .hamburger__icon::before {
  width: 28px;
  transform: translateY(0) rotate(45deg);
}
.hamburger.active .hamburger__icon::after {
  width: 28px;
  transform: translateY(0) rotate(495deg);
}

.side-band {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 64px;
  background: #fff;
  z-index: 9950;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  padding-bottom: 22px;
  pointer-events: none;
}

.side-band__sns {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  pointer-events: auto;
}
.side-band__sns li {
  margin: 0;
}
.side-band__sns a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 20px;
  color: #2c2c2c;
  font-size: 20px;
  line-height: 1;
  transition: opacity 0.2s ease;
}
.side-band__sns a:hover {
  opacity: 0.55;
}

.fat-nav-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 9800;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

body.nav-open .fat-nav-overlay {
  opacity: 1;
  visibility: visible;
}

body.nav-open {
  overflow: hidden;
}

.fat-nav {
  position: fixed;
  top: 0;
  right: 0;
  width: 60vw;
  max-width: 100%;
  height: 100%;
  background: rgba(23, 23, 23, 0.8);
  z-index: 9900;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.4s ease;
}

.fat-nav.is-open {
  transform: translateX(0);
}

.fat-nav__inner {
  min-height: 100%;
  padding: 84px 7% 64px;
}

.gnav {
  display: flex;
  gap: 7%;
  align-items: flex-start;
}

.gnav__col {
  flex: 1 1 0;
  list-style: none;
  min-width: 0;
}

.gnav__item {
  margin-bottom: 42px;
}
.gnav__item > a {
  position: relative;
  display: inline-block;
  line-height: 0.4;
}
.gnav__item > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.6em;
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}
.gnav__item > a:hover::after {
  transform: scaleX(1);
}

.gnav__en {
  display: block;
  font-family: "Jost", sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.1;
  color: #fff;
  text-transform: uppercase;
}

.gnav__jp {
  display: block;
  margin-top: 7px;
  font-size: 1.25rem;
  color: #fff;
}

.gnav__sub {
  list-style: none;
  margin-top: 16px;
}
.gnav__sub li {
  margin-top: 9px;
}
.gnav__sub a {
  position: relative;
  display: inline-block;
  font-size: 1.45rem;
  color: #fff;
}
.gnav__sub a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.3em;
  width: 100%;
  height: 1px;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.35s ease;
}
.gnav__sub a:hover::after {
  transform: scaleX(1);
}

.gnav__contact {
  margin-top: 6px;
}

.gnav__contact-box {
  display: block;
  border: 1px solid #fff;
  padding: 26px 30px 30px;
  transition: background 0.3s ease;
}
.gnav__contact-box:hover {
  background: rgba(255, 255, 255, 0.04);
}

.gnav__contact-en {
  display: block;
  font-family: "Jost", sans-serif;
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1;
  color: #fff;
  text-transform: uppercase;
}

.gnav__contact-jp {
  display: block;
  margin-top: 4px;
  font-size: 1.25rem;
  line-height: 1;
  color: #fff;
}

.gnav__contact-divider {
  display: block;
  height: 1px;
  background: #fff;
  margin: 18px 0 20px;
}

.gnav__contact-foot {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gnav__contact-foot i {
  font-size: 24px;
  color: #fff;
  line-height: 1;
}

.gnav__contact-tel {
  font-family: "Jost", sans-serif;
  font-size: 2.3rem;
  font-weight: 400;
  color: #fff;
  line-height: 1;
  white-space: nowrap;
}
.gnav__contact-tel .lbl {
  font-size: 1.3rem;
  margin-right: 5px;
  vertical-align: 2px;
}

@media only screen and (max-width: 767px) {
  .side-band {
    display: none;
  }
  .fat-nav {
    width: 100%;
  }
  .fat-nav__inner {
    padding: 80px 30px 56px;
  }
  .gnav {
    flex-direction: column;
    gap: 0;
  }
  .gnav__col {
    width: 100%;
  }
  .gnav__sub {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 26px;
  }
  .se-header-staff .tit-wrap {
    text-align: left;
    padding-left: 5%;
  }
  .se-header-staff .tit-wrap .tit-logo {
    text-align: left;
    margin-left: 0;
  }
  .se-header-staff .tit-wrap .tit-en {
    margin-top: 25vw;
  }
  .se-header-staff .se-head-pic {
    margin-left: 5%;
  }
  .tit-dept .dept-jp {
    font-size: min(9.5vw, 45px);
  }
  .tit-dept .dept-en {
    font-size: 3vw;
  }
  .staff-head .staff-pos {
    font-size: 3.25vw;
  }
  .fa-line {
    font-size: 1.2em;
  }
}
@media only screen and (min-width: 768px) and (max-width: 1024px) {
  .se-header-staff .tit-wrap .tit-logo img {
    max-width: 110px;
  }
  .site-footer {
    font-size: 1.55vw;
    line-height: 1.5;
    padding: 6vw 88px 3vw 3vw;
  }
  .ft-logo img {
    width: 10vw;
  }
  .ft-sns {
    gap: 2vw;
    margin-top: 0.6vw;
  }
  .ft-sns a {
    font-size: 2vw;
  }
  .ft-row {
    flex-wrap: nowrap;
    white-space: nowrap;
    margin-bottom: 1.4vw;
  }
  .ft-row .lb {
    flex-basis: 5vw;
    margin-right: 1.2vw;
  }
  .ft-row .lb-sp {
    flex: 0 0 auto;
    margin-left: 2vw;
    margin-right: 1.5vw;
  }
  .ft-row .vl {
    flex: 0 0 auto;
  }
  .ft-body {
    display: flex;
    margin-top: 3.6vw;
  }
  .ft-info {
    flex: 0 0 30vw;
    margin-top: 0;
    padding-right: 2vw;
  }
  .ft-nav {
    flex: 1 1 auto;
    margin-top: 0;
    gap: 0.5vw;
    padding: 0 1vw;
    display: flex;
    justify-content: space-between;
  }
  .ft-nav ul {
    column-count: 2;
    column-gap: 1.5vw;
  }
  .ft-nav ul:first-child {
    flex: 0 0 auto;
  }
  .ft-nav ul:last-child {
    flex: 0 0 auto;
  }
  .ft-nav li {
    margin-bottom: 1.4vw;
    white-space: nowrap;
  }
  .ft-bottom {
    margin-top: 4vw;
    padding-top: 4vw;
  }
  .ft-logo2 img {
    width: 22vw;
  }
  .ft-info2 {
    margin-top: 2.8vw;
  }
  .ft-copy {
    margin-top: 4.4vw;
    font-size: 1.3vw;
  }
}
@media only screen and (min-width: 768px) {
  .fat-nav__inner {
    padding: 8vw 10vw 6vw;
  }
  .gnav {
    gap: 0vw;
  }
  .gnav__item {
    margin-bottom: 3vw;
  }
  .gnav__en {
    font-size: min(1.8vw, 24px);
  }
  .gnav__jp {
    margin-top: 0.5vw;
    font-size: min(1vw, 14px);
  }
  .gnav__sub {
    margin-top: 1.1vw;
  }
  .gnav__sub a {
    font-size: min(1.1vw, 14px);
  }
  .gnav__sub li {
    margin-top: 0.6vw;
  }
  .gnav__contact-box {
    padding: 2vw 2.2vw 2.2vw;
  }
  .gnav__contact-en {
    font-size: min(1.8vw, 24px);
  }
  .gnav__contact-jp {
    font-size: min(1vw, 14px);
  }
  .gnav__contact-divider {
    margin: 1.4vw 0 1.5vw;
  }
  .gnav__contact-foot {
    gap: 0.9vw;
  }
  .gnav__contact-foot i {
    font-size: 1.8vw;
  }
  .gnav__contact-tel {
    font-size: min(1.8vw, 24px);
  }
  .gnav__contact-tel .lbl {
    font-size: 1vw;
  }
}
@media only screen and (min-width: 1025px) {
  .hamburger {
    width: 70px;
    height: 70px;
  }
  .side-band {
    width: 70px;
  }
  .se-header-staff .tit-wrap .tit-logo img {
    max-width: 110px;
  }
  .se-header-staff .tit-wrap .tit-main {
    padding-left: 2.5vw;
  }
}
@media only screen and (min-width: 1440px) {
  .se-header-staff .tit-wrap .tit-logo img {
    max-width: 130px;
  }
}
/* =========================================================
   TOP（front-page.php）  — XD: sp_top – 1(393) / pc_top(1366)
   SP はデザイン幅 393 を vw 換算、PC は 1366 を上限に vw で縮む
   ========================================================= */
.tp {
  overflow-x: clip;
  font-weight: 500;
  color: #000;
}
.tp a {
  color: inherit;
}

/* ---- 共通：見出し（EVENTS / WORKS / LINE UP） ---- */
.tp-inner {
  width: min(507.2px, 80.661601vw);
  margin: 0 auto;
}

.tp-tit {
  display: flex;
  flex-direction: column;
  margin-bottom: min(48px, 7.63359vw);
}
.tp-tit__en {
  font-size: min(96px, 15.26718vw);
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1;
}
.tp-tit__jp {
  margin-top: min(9.6px, 1.526718vw);
  font-size: min(20.8px, 3.307889vw);
  font-weight: 700;
  color: #242424;
}

/* タグ「木材 ／ 軽量鉄骨」 */
.tp-tags {
  display: flex;
  flex-wrap: wrap;
  font-size: min(20.8px, 3.307889vw);
  color: #646464;
}
.tp-tags li + li::before {
  content: "／";
  margin: 0 0.7em;
}

/* 矢印（→）・二重山形（>>）・丸矢印 */
.tp-arrow {
  position: relative;
  display: inline-block;
  width: 23px;
  height: 1px;
  background: currentColor;
}
.tp-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transform: rotate(35deg);
  transform-origin: right center;
}

.tp-chev {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 12px;
}
.tp-chev::before, .tp-chev::after {
  content: "";
  position: absolute;
  top: 2px;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
}
.tp-chev::before {
  left: 0;
}
.tp-chev::after {
  left: 7px;
}

.tp-circle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(67.2px, 10.687026vw);
  height: min(67.2px, 10.687026vw);
  border-radius: 50%;
  background: #fff;
  color: #2C2C2C;
  transition: transform 0.3s ease;
}
.tp-circle::before {
  content: "";
  width: 15px;
  height: 9px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M0 4.5h14M10 .5l4 4-4 4' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center/contain;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 9'%3E%3Cpath d='M0 4.5h14M10 .5l4 4-4 4' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") no-repeat center/contain;
}

/* VIEW MORE（黒の角丸ボタン） */
.tp-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(464px, 73.79137vw);
  height: min(91.2px, 14.503821vw);
  margin: min(88px, 13.994915vw) auto 0;
  padding: 0 min(48px, 7.63359vw);
  border-radius: 999px;
  background: #000;
  color: #fff !important;
  font-size: min(24px, 3.816795vw);
  transition: opacity 0.3s ease;
}
.tp-more .tp-arrow {
  width: 20px;
}
.tp-more .tp-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transform: rotate(-35deg);
  transform-origin: right center;
}
.tp-more {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid #000;
  transition: color 0.5s cubic-bezier(0.7, 0, 0.2, 1);
}
.tp-more::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #fff;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.6s cubic-bezier(0.7, 0, 0.2, 1);
}
.tp-more:hover {
  color: #000 !important;
}
.tp-more:hover::before {
  transform: scaleX(1);
  transform-origin: left center;
}
.tp-more:hover .tp-arrow {
  animation: tp-arrow-pass 0.7s cubic-bezier(0.7, 0, 0.2, 1) 0.1s;
}

@keyframes tp-arrow-pass {
  0% {
    transform: translateX(0);
    opacity: 1;
  }
  45% {
    transform: translateX(16px);
    opacity: 0;
  }
  46% {
    transform: translateX(-16px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}
/* 横スクロール（SPのイベント・施工事例・商品紹介） */
.tp-scroller {
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
}
.tp-scroller::-webkit-scrollbar {
  display: none;
}

.tp-cards {
  display: flex;
  gap: min(25.6px, 4.071248vw);
  padding: 0 min(60.8px, 9.669214vw);
  width: max-content;
}
.tp-cards > li {
  flex: 0 0 min(496px, 78.88043vw);
  scroll-snap-align: center;
}

/* ---- メインビジュアル ---- */
.tp-mv {
  position: relative;
  padding-top: min(31.2px, 4.9618335vw);
}
.tp-mv__logo {
  margin-left: min(32px, 5.08906vw);
  line-height: 1;
}
.tp-mv__logo img {
  display: block;
  width: min(346.4px, 55.0890745vw);
}
.tp-mv__body {
  padding: min(96px, 15.26718vw) 0 0 min(52.8px, 8.396949vw);
}
.tp-mv__catch {
  margin-left: -0.1em;
  font-size: min(48px, 7.63359vw);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
}
.tp-mv__sub {
  width: 80vw;
  margin-top: min(22.4px, 3.562342vw);
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 1.6666666667;
}
.tp-mv__nowrap {
  white-space: nowrap;
}
.tp-mv__more {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-top: min(59.2px, 9.414761vw);
  font-size: min(24px, 3.816795vw);
}
.tp-mv__more .tp-chev {
  overflow: hidden;
  padding-right: 2px;
  width: 18px;
}
.tp-mv__more:hover .tp-chev::before {
  animation: tp-chev-pass 0.7s cubic-bezier(0.7, 0, 0.2, 1);
}
.tp-mv__more:hover .tp-chev::after {
  animation: tp-chev-pass 0.7s cubic-bezier(0.7, 0, 0.2, 1) 0.08s;
}
.tp-mv__pic {
  position: relative;
  margin: min(48px, 7.63359vw) 0 0 min(52.8px, 8.396949vw);
  height: min(635.2px, 101.017841vw);
}
.tp-mv__pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tp-mv__scroll {
  position: absolute;
  left: min(43.2px, 6.870231vw);
  top: min(296px, 47.073805vw);
  padding-bottom: min(240px, 38.16795vw);
  writing-mode: vertical-rl;
  font-size: min(20.8px, 3.307889vw);
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.05em;
}
.tp-mv__scroll::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 1px;
  height: min(224px, 35.62342vw);
  background: currentColor;
  animation: tp-scroll 2s ease-in-out infinite;
  transform-origin: top;
}

@keyframes tp-chev-pass {
  0% {
    transform: translateX(0) rotate(45deg);
    opacity: 1;
  }
  45% {
    transform: translateX(12px) rotate(45deg);
    opacity: 0;
  }
  46% {
    transform: translateX(-12px) rotate(45deg);
    opacity: 0;
  }
  100% {
    transform: translateX(0) rotate(45deg);
    opacity: 1;
  }
}
@keyframes tp-scroll {
  0% {
    transform: scaleY(0);
  }
  50% {
    transform: scaleY(1);
    transform-origin: top;
  }
  51% {
    transform-origin: bottom;
  }
  100% {
    transform: scaleY(0);
    transform-origin: bottom;
  }
}
/* ---- 開催中イベントのお知らせ（右下に固定） ---- */
.tp-pop {
  position: fixed;
  right: min(17.6px, 2.798983vw);
  bottom: min(25.6px, 4.071248vw);
  z-index: 9000;
  width: min(464.16px, 73.8168153vw);
  border-radius: 5px;
  background: rgba(187, 166, 97, 0.9);
  color: #fff;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.tp-pop.is-hidden {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
}
.tp-pop__link {
  display: flex;
  align-items: center;
  gap: min(21.44px, 3.4096702vw);
  padding: min(17.92px, 2.8498736vw) min(25.12px, 3.9949121vw) min(21.44px, 3.4096702vw) min(23.36px, 3.7150138vw);
  color: #fff !important;
}
.tp-pop__pic {
  flex: 0 0 min(161.28px, 25.6488624vw);
  height: min(161.28px, 25.6488624vw);
  border-radius: 50%;
  overflow: hidden;
}
.tp-pop__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tp-pop__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.tp-pop__date {
  padding-bottom: min(7.2px, 1.1450385vw);
  border-bottom: 1px solid #fff;
  font-size: min(26.88px, 4.2748104vw);
  font-weight: 700;
}
.tp-pop__date small {
  font-size: 0.75em;
}
.tp-pop__title {
  margin-top: min(8.96px, 1.4249368vw);
  font-size: min(25.12px, 3.9949121vw);
  font-weight: 700;
  line-height: 1.3;
}
.tp-pop__btn {
  position: relative;
  align-self: flex-start;
  margin-top: min(12.48px, 1.9847334vw);
  padding: min(7.2px, 1.1450385vw) min(53.76px, 8.5496208vw) min(7.2px, 1.1450385vw) min(21.44px, 3.4096702vw);
  border-radius: 999px;
  background: #000;
  font-size: min(21.44px, 3.4096702vw);
  font-weight: 700;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.tp-pop__btn::after {
  content: "→";
  position: absolute;
  right: min(17.92px, 2.8498736vw);
}
.tp-pop__close {
  position: absolute;
  top: min(10.72px, 1.7048351vw);
  right: min(10.72px, 1.7048351vw);
  width: min(35.84px, 5.6997472vw);
  height: min(35.84px, 5.6997472vw);
  border: 0;
  background: none;
  cursor: pointer;
}
.tp-pop__close::before, .tp-pop__close::after {
  content: "";
  position: absolute;
  left: min(3.52px, 0.5597966vw);
  top: calc(50% - 1px);
  width: min(28.64px, 4.5547087vw);
  height: 2px;
  background: #fff;
  transform: rotate(45deg);
}
.tp-pop__close::after {
  transform: rotate(-45deg);
}

/* ---- コンセプト ---- */
.tp-concept {
  padding: min(112px, 17.81171vw) 0 min(160px, 25.4453vw);
  text-align: center;
}
.tp-concept__txt p {
  font-size: min(25.6px, 4.071248vw);
  line-height: 2.53;
  letter-spacing: 0.05em;
}
.tp-concept__lead {
  margin-top: min(57.6px, 9.160308vw);
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 2.24;
  letter-spacing: 0.1em;
}
.tp-concept__end {
  margin-top: min(44.8px, 7.124684vw);
  font-size: min(24px, 3.816795vw);
  letter-spacing: 0.05em;
}

.tp-arrow-link {
  display: inline-flex;
  align-items: center;
  gap: min(32px, 5.08906vw);
  margin-top: min(80px, 12.72265vw);
  font-size: min(25.6px, 4.071248vw);
}
.tp-arrow-link .tp-arrow {
  width: min(108.8px, 17.302804vw);
}
.tp-arrow-link:hover .tp-arrow {
  animation: tp-line-redraw 0.9s cubic-bezier(0.7, 0, 0.2, 1);
}

@keyframes tp-line-redraw {
  0% {
    clip-path: inset(-8px 0 -8px 0);
  }
  45% {
    clip-path: inset(-8px 0 -8px 100%);
  }
  46% {
    clip-path: inset(-8px 100% -8px 0);
  }
  100% {
    clip-path: inset(-8px 0 -8px 0);
  }
}
/* 初めての方へ（若葉マーク＋本文の白い箱） */
.tp-concept--top {
  padding: min(160px, 25.4453vw) 0 min(136px, 21.628505vw);
}

.tp-first {
  position: relative;
  width: min(512px, 81.42496vw);
  margin: 0 auto;
  padding: min(70.4px, 11.195932vw) min(41.6px, 6.615778vw) min(80px, 12.72265vw);
  background: #fff;
  text-align: left;
}
.tp-first__head {
  text-align: center;
}
.tp-first__icon {
  display: block;
  width: min(45.76px, 7.2773558vw);
  height: auto;
  margin: 0 auto;
}
.tp-first__tit {
  margin-top: min(16px, 2.54453vw);
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
}
.tp-first__txt {
  margin-top: min(22.4px, 3.562342vw);
}
.tp-first__txt p {
  font-size: min(25.6px, 4.071248vw);
  line-height: 1.43;
  letter-spacing: 0.08em;
}
.tp-first__txt p + p {
  margin-top: 1.43em;
}

/* ---- セクション共通 ---- */
.tp-sec {
  padding: min(176px, 27.98983vw) 0 min(112px, 17.81171vw);
}

.tp-events {
  background: #fff;
}

/* イベントカード（タイトルのリンクをカード全体に広げる。予約ボタンはその上で別リンク） */
.tp-event {
  position: relative;
  display: flex;
  flex-direction: column;
}
.tp-event__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
.tp-event__pic {
  position: relative;
  overflow: hidden;
}
.tp-event__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.tp-event:hover .tp-event__pic img {
  transform: scale(1.05);
}
.tp-event__badge {
  position: absolute;
  top: 0;
  left: min(24px, 3.816795vw);
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(116.8px, 18.575069vw);
  height: min(108.8px, 17.302804vw);
  background: #242424;
  color: #fff;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  line-height: 1.33;
  text-align: center;
}
.tp-event__badge.is-open {
  background: #B7A054;
}
.tp-event__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: min(35.2px, 5.597966vw) min(30.4px, 4.834607vw) min(38.4px, 6.106872vw);
  border: 1px solid #B1B1B1;
  border-top: 0;
  background: #fff;
}
.tp-event__tit {
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  color: #2C2C2C;
}
.tp-event__date {
  margin-top: min(16px, 2.54453vw);
  font-size: min(24px, 3.816795vw);
  line-height: 1.47;
  color: #454545;
}
.tp-event .tp-tags {
  margin-top: min(24px, 3.816795vw);
}
.tp-event__btn {
  position: relative;
  z-index: 2;
  display: block;
  margin: auto min(8px, 1.272265vw) 0;
  padding: min(8px, 1.272265vw) 0;
  border-radius: 999px;
  background: #000;
  color: #fff !important;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  transition: opacity 0.3s ease;
}
.tp-event__btn:hover {
  opacity: 0.75;
}
.tp-tags + .tp-event__btn {
  margin-top: min(80px, 12.72265vw);
}

/* ---- 性能 / モデルハウス（写真の帯） ---- */
.tp-band {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: min(516.8px, 82.188319vw);
  overflow: hidden;
  color: #fff !important;
}
.tp-band::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.4);
}
.tp-band__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 1s ease;
}
.tp-band:hover .tp-band__bg {
  transform: scale(1.04);
}
.tp-band__box {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: min(473.6px, 75.318088vw);
  height: min(388.8px, 61.832079vw);
  border: 1px solid #fff;
}
.tp-band__en {
  font-size: min(48px, 7.63359vw);
  letter-spacing: 0.07em;
  line-height: 1.2;
}
.tp-band__jp {
  margin-top: min(6.4px, 1.017812vw);
  font-size: min(24px, 3.816795vw);
  letter-spacing: 0.1em;
}
.tp-band .tp-circle {
  margin-top: min(28.8px, 4.580154vw);
  background: none;
  border: 1px solid #fff;
  color: #fff;
}
.tp-band:hover .tp-circle {
  transform: translateX(4px);
}

.tp-band--perf {
  height: min(1120px, 178.1171vw);
}
.tp-band--perf .tp-perf {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.tp-band--perf .tp-band__jp {
  margin-top: min(3.2px, 0.508906vw);
}
.tp-band--perf .tp-perf__list {
  display: grid;
  grid-template-columns: repeat(2, min(240px, 38.16795vw));
  justify-content: center;
  gap: min(48px, 7.63359vw) min(32px, 5.08906vw);
  margin-top: min(76.8px, 12.213744vw);
}
.tp-band--perf .tp-perf__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
}
.tp-band--perf .tp-perf__item:last-child {
  grid-column: 1/-1;
}
.tp-band--perf .tp-perf__item:nth-child(odd):not(:last-child) {
  position: relative;
}
.tp-band--perf .tp-perf__item:nth-child(odd):not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: calc(min(32px, 5.08906vw) / -2);
  border-right: 1px solid #fff;
}
.tp-band--perf .tp-perf__icon {
  width: min(var(--w) * 1.048px, var(--w) * 0.166666715vw);
  height: auto;
}
.tp-band--perf .tp-perf__label {
  margin-top: min(19.2px, 3.053436vw);
  font-size: min(32px, 5.08906vw);
  font-weight: 700;
  letter-spacing: 0.05em;
}
.tp-band--perf .tp-perf__more {
  display: inline-flex;
  align-items: center;
  gap: min(38.4px, 6.106872vw);
  margin-top: min(76.8px, 12.213744vw);
  font-size: min(24px, 3.816795vw);
}
.tp-band--perf .tp-perf__btn {
  display: grid;
  place-items: center;
  width: min(80px, 12.72265vw);
  height: min(80px, 12.72265vw);
  border-radius: 50%;
  background: #fff;
  color: #000;
  overflow: hidden;
}
.tp-band--perf .tp-perf__btn .tp-arrow {
  width: 18px;
}
.tp-band--perf .tp-perf__btn .tp-arrow::before {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transform: rotate(-35deg);
  transform-origin: right center;
}
.tp-band--perf:hover .tp-perf__btn .tp-arrow {
  animation: tp-arrow-pass 0.7s cubic-bezier(0.7, 0, 0.2, 1);
}

/* ---- 商品紹介 ---- */
.tp-lineup {
  background: #EAEAE8;
}
.tp-lineup .tp-cards {
  gap: 0;
  padding: 0;
}
.tp-lineup .tp-cards > li {
  flex: 0 0 100vw;
  padding: 0 min(60.8px, 9.669214vw);
}

.tp-item__card {
  display: block;
  color: inherit;
}
.tp-item__head {
  position: relative;
  height: min(160px, 25.4453vw);
  margin-top: min(64px, 10.17812vw);
  padding: min(35.2px, 5.597966vw) 0 0 min(30.4px, 4.834607vw);
  color: #fff;
}
.tp-item__label {
  padding-left: min(17.6px, 2.798983vw);
  border-left: 1px solid #fff;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 700;
  line-height: 1.4;
}
.tp-item__name {
  margin-top: min(9.6px, 1.526718vw);
  font-size: min(35.2px, 5.597966vw);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.tp-item__house {
  position: absolute;
  right: min(19.2px, 3.053436vw);
  bottom: min(36.8px, 5.852419vw);
  width: min(160px, 25.4453vw);
  height: auto;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.25));
}
.tp-item__pic {
  position: relative;
  height: min(585.6px, 93.129798vw);
  overflow: hidden;
}
.tp-item__pic > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.tp-item__pic::after {
  content: "";
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.75));
}
.tp-item__tags {
  position: absolute;
  left: min(30.4px, 4.834607vw);
  bottom: min(76.8px, 12.213744vw);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: min(19.2px, 3.053436vw);
}
.tp-item__tags li {
  padding: min(4.8px, 0.763359vw) min(16px, 2.54453vw);
  background: #fff;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.tp-item__btn {
  position: absolute;
  right: min(27.2px, 4.325701vw);
  bottom: min(46.4px, 7.379137vw);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(198.4px, 31.552172vw);
  height: min(73.6px, 11.704838vw);
  border-radius: 999px;
  color: #fff !important;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 700;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  transition: opacity 0.3s ease;
}
.tp-item__card:hover .tp-item__pic > img {
  transform: scale(1.05);
}
.tp-item__card:hover .tp-item__btn {
  opacity: 0.8;
}
.tp-item--select .tp-item__head {
  background: #9F9A8A;
}
.tp-item--select .tp-item__tags li {
  color: #9F9A8A;
}
.tp-item--select .tp-item__btn {
  background: #9F9A8A;
}
.tp-item--full .tp-item__head {
  background: #605D51;
}
.tp-item--full .tp-item__tags li {
  color: #605D51;
}
.tp-item--full .tp-item__btn {
  background: #605D51;
}
.tp-item--casa .tp-item__head {
  background: #B7A054;
}
.tp-item--casa .tp-item__tags li {
  color: #B7A054;
}
.tp-item--casa .tp-item__btn {
  background: #B7A054;
}
.tp-item--select .tp-item__tags li {
  color: #A09A8A;
}

.tp-dots {
  display: flex;
  justify-content: center;
  gap: min(14.4px, 2.290077vw);
  margin-top: min(44.8px, 7.124684vw);
}
.tp-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 1px solid #2c2c2c;
  border-radius: 50%;
  background: none;
  cursor: pointer;
}
.tp-dots button.is-active {
  background: #2c2c2c;
}

/* ---- スタッフ / コラム ---- */
.tp-links {
  display: flex;
  flex-direction: column;
  gap: min(25.6px, 4.071248vw);
  width: min(457.6px, 72.773558vw);
  margin: min(144px, 22.90077vw) auto 0;
}

.tp-link {
  position: relative;
  display: block;
  height: min(209.6px, 33.333343vw);
  overflow: hidden;
  color: #fff !important;
}
.tp-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s ease;
}
.tp-link::after {
  content: "";
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
}
.tp-link:hover img {
  transform: scale(1.05);
}
.tp-link__txt {
  position: absolute;
  left: min(33.6px, 5.343513vw);
  bottom: min(27.2px, 4.325701vw);
  z-index: 1;
  display: flex;
  flex-direction: column;
}
.tp-link__en {
  font-size: min(33.6px, 5.343513vw);
  letter-spacing: 0.07em;
  line-height: 1.2;
}
.tp-link__jp {
  font-size: min(20.8px, 3.307889vw);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.tp-link .tp-circle {
  position: absolute;
  right: min(32px, 5.08906vw);
  bottom: min(22.4px, 3.562342vw);
  z-index: 1;
  width: min(62.4px, 9.923667vw);
  height: min(62.4px, 9.923667vw);
}
.tp-link:hover .tp-circle {
  transform: translateX(4px);
}

/* ---- LINE バナー / SNS ---- */
.tp-line {
  padding: min(144px, 22.90077vw) 0 min(176px, 27.98983vw);
}
.tp-line__bnr {
  position: relative;
  display: flex;
  align-items: center;
  width: min(507.2px, 80.661601vw);
  height: min(150.4px, 23.918582vw);
  margin: 0 auto;
  padding-left: min(208px, 33.07889vw);
  background: #53D05D;
  color: #fff !important;
}
.tp-line__bnr::before, .tp-line__bnr::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: min(233.6px, 37.150138vw);
  width: min(19.2px, 3.053436vw);
  border-left: 1px solid #fff;
  transform: skewX(-18deg);
  transform-origin: top;
  clip-path: inset(0 0 50% 0);
}
.tp-line__bnr::after {
  transform: skewX(18deg);
  transform-origin: bottom;
  clip-path: inset(50% 0 0 0);
}
.tp-line__phone {
  position: absolute;
  left: min(32px, 5.08906vw);
  bottom: 0;
  width: min(176px, 27.98983vw);
  height: min(195.2px, 31.043266vw);
  overflow: hidden;
}
.tp-line__frame {
  display: block;
  width: 100%;
  height: auto;
}
.tp-line__scan, .tp-line__qr {
  display: none;
}
.tp-line__icon {
  position: absolute;
  left: min(32px, 5.08906vw);
  top: min(83.2px, 13.231556vw);
  width: min(176px, 27.98983vw);
  color: #53D05D;
  font-size: min(86.4px, 13.740462vw);
  text-align: center;
}
.tp-line__txt {
  display: flex;
  flex-direction: column;
  padding-left: min(86.4px, 13.740462vw);
}
.tp-line__sub {
  font-size: min(19.2px, 3.053436vw);
  font-weight: 700;
  line-height: 1.25;
}
.tp-line__main {
  margin-top: min(9.6px, 1.526718vw);
  font-size: min(38.4px, 6.106872vw);
  font-weight: 700;
  line-height: 1;
}

.tp-sns {
  display: flex;
  justify-content: center;
  gap: min(54.4px, 8.651402vw);
  margin-top: min(64px, 10.17812vw);
}
.tp-sns a {
  font-size: 30px;
  color: #121212;
  transition: opacity 0.3s ease;
}
.tp-sns a:hover {
  opacity: 0.6;
}

/* =========================================================
   TOP — PC（768px 以上）
   ========================================================= */
@media only screen and (min-width: 768px) {
  .tp {
    --band: 64px;
  }
  .tp-inner {
    width: min(1118px, 86.5%);
  }
  .tp-mv,
  .tp-concept,
  .tp-sec,
  .tp-links,
  .tp-line {
    padding-right: var(--band);
  }
  .tp-tit {
    flex-direction: row;
    align-items: flex-end;
    margin-bottom: min(50px, 3.66032vw);
  }
  .tp-tit__en {
    font-size: min(75px, 5.49048vw);
  }
  .tp-tit__jp {
    margin: 0 0 min(4px, 0.2928256vw) min(48px, 3.5139072vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-tags {
    font-size: min(13px, 0.9516832vw);
  }
  .tp-circle {
    width: min(62px, 4.5387968vw);
    height: min(62px, 4.5387968vw);
  }
  .tp-more {
    width: min(327px, 23.9384928vw);
    height: min(71px, 5.1976544vw);
    margin: min(60px, 4.392384vw) 0 0 auto;
    padding: 0 min(40px, 2.928256vw) 0 min(36px, 2.6354304vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-scroller {
    overflow: visible;
    width: min(1118px, 86.5%);
    margin: 0 auto;
  }
  .tp-cards {
    width: auto;
    padding: 0;
  }
  .tp-cards > li {
    flex: 1 1 0;
    min-width: 0;
  }
  /* MV */
  .tp-mv {
    padding-top: 0;
    height: 100vh;
    height: 100svh;
    min-height: min(600px, 43.92384vw);
  }
  .tp-mv__logo {
    position: absolute;
    top: min(49px, 3.5871136vw);
    left: min(67px, 4.9048288vw);
    z-index: 2;
    margin: 0;
  }
  .tp-mv__logo img {
    width: min(138.45px, 10.13542608vw);
  }
  .tp-mv__body {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: min(81px, 5.9297184vw);
    z-index: 2;
    padding: 0;
  }
  .tp-mv__catch {
    font-size: min(57.5px, 3.66032vw);
    line-height: 1.4;
    letter-spacing: 0;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.8);
  }
  .tp-mv__sub {
    width: auto;
    margin-top: min(14.95px, 0.9516832vw);
    font-size: min(20.7px, 1.3177152vw);
    line-height: 1.7777777778;
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.8);
  }
  .tp-mv__more {
    margin-top: min(59.8px, 3.8067328vw);
    font-size: min(19.55px, 1.2445088vw);
  }
  .tp-mv__pic {
    margin: 0 0 0 24.2%;
    height: 100%;
  }
  .tp-mv__pic::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.5);
  }
  .tp-mv__scroll {
    position: absolute;
    left: calc(min(81px, 5.9297184vw) - 31.926%);
    top: auto;
    bottom: 0;
    padding-bottom: min(90px, 6.588576vw);
    font-size: min(13px, 0.9516832vw);
    color: #2C2C2C;
  }
  .tp-mv__scroll::after {
    height: min(78px, 5.7100992vw);
  }
  /* お知らせ */
  .tp-pop {
    right: calc(var(--band) + min(20px, 1.464128vw));
    bottom: min(20px, 1.464128vw);
    width: min(299px, 21.8887136vw);
    background: rgba(183, 160, 84, 0.9);
  }
  .tp-pop__link {
    gap: min(14px, 1.0248896vw);
    padding: min(14px, 1.0248896vw) min(24px, 1.7569536vw) min(12px, 0.8784768vw) min(13px, 0.9516832vw);
  }
  .tp-pop__pic {
    flex-basis: min(105px, 7.686672vw);
    height: min(105px, 7.686672vw);
  }
  .tp-pop__date {
    font-size: min(19px, 1.3909216vw);
    padding-bottom: min(5px, 0.366032vw);
  }
  .tp-pop__title {
    font-size: min(17px, 1.2445088vw);
    margin-top: min(6px, 0.4392384vw);
  }
  .tp-pop__btn {
    font-size: min(13px, 0.9516832vw);
    margin-top: min(8px, 0.5856512vw);
    padding: min(5px, 0.366032vw) min(36px, 2.6354304vw) min(5px, 0.366032vw) min(17px, 1.2445088vw);
  }
  .tp-pop__btn::after {
    right: min(12px, 0.8784768vw);
  }
  .tp-pop__close {
    top: min(4px, 0.2928256vw);
    right: min(4px, 0.2928256vw);
    width: min(16px, 1.1713024vw);
    height: min(16px, 1.1713024vw);
  }
  .tp-pop__close::before, .tp-pop__close::after {
    left: min(2px, 0.1464128vw);
    width: min(12px, 0.8784768vw);
    height: 1px;
    top: calc(50% - 0.5px);
  }
  /* コンセプト */
  .tp-concept {
    padding-top: min(70px, 5.124448vw);
    padding-bottom: min(137px, 10.0292768vw);
  }
  .tp-concept__txt p {
    font-size: min(16px, 1.1713024vw);
    line-height: min(40px, 2.928256vw);
    letter-spacing: 0.1em;
  }
  .tp-concept__lead {
    margin-top: min(36px, 2.6354304vw);
    font-size: min(18px, 1.3177152vw);
    line-height: min(40px, 2.928256vw);
  }
  .tp-concept__end {
    margin-top: min(35px, 2.562224vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-concept--top {
    padding-top: min(130px, 9.516832vw);
    padding-bottom: min(120px, 8.784768vw);
  }
  .tp-arrow-link {
    margin-top: min(55px, 4.026352vw);
    font-size: min(16px, 1.1713024vw);
    gap: min(18px, 1.3177152vw);
  }
  .tp-arrow-link .tp-arrow {
    width: min(68px, 4.9780352vw);
  }
  .tp-first {
    display: grid;
    grid-template-columns: min(244px, 17.8623616vw) 1fr;
    align-items: stretch;
    width: min(920px, 67.349888vw);
    padding: min(46px, 3.3674944vw) min(50px, 3.66032vw) min(42px, 3.0746688vw) 0;
  }
  .tp-first__head {
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-right: 1px solid #d1d1d1;
  }
  .tp-first__icon {
    width: min(40px, 2.928256vw);
  }
  .tp-first__tit {
    margin-top: min(12px, 0.8784768vw);
    font-size: min(20px, 1.464128vw);
  }
  .tp-first__txt {
    align-self: center;
    margin-top: 0;
    padding: min(22px, 1.6105408vw) 0 min(22px, 1.6105408vw) min(49px, 3.5871136vw);
  }
  .tp-first__txt p {
    font-size: min(16px, 1.1713024vw);
  }
  /* セクション */
  .tp-sec {
    padding: min(128px, 9.3704192vw) 0 min(98px, 7.1742272vw);
  }
  .tp-event-list {
    gap: min(25px, 1.83016vw);
  }
  .tp-event__badge {
    left: min(12px, 0.8784768vw);
    width: min(92px, 6.7349888vw);
    height: min(89px, 6.5153696vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-event__body {
    padding: min(18px, 1.3177152vw) min(24px, 1.7569536vw) min(25px, 1.83016vw);
  }
  .tp-event__tit {
    font-size: min(18px, 1.3177152vw);
  }
  .tp-event__date {
    margin-top: min(10px, 0.732064vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-event .tp-tags {
    margin-top: min(22px, 1.6105408vw);
  }
  .tp-event__btn {
    margin: auto 0 0;
    padding: min(4px, 0.2928256vw) 0;
    font-size: min(15px, 1.098096vw);
  }
  .tp-tags + .tp-event__btn {
    margin-top: min(40px, 2.928256vw);
  }
  .tp-works .tp-cards {
    flex-wrap: wrap;
    gap: min(54px, 3.9531456vw) min(33px, 2.4158112vw);
  }
  .tp-works .tp-cards > li {
    flex: 0 0 calc((100% - min(33px, 2.4158112vw) * 2) / 3);
  }
  /* 帯 */
  .tp-band {
    height: min(503px, 36.8228192vw);
    margin-right: var(--band);
  }
  .tp-band__box {
    width: min(636px, 46.5592704vw);
    height: min(277px, 20.2781728vw);
  }
  .tp-band__en {
    font-size: min(50px, 3.66032vw);
  }
  .tp-band__jp {
    margin-top: min(6px, 0.4392384vw);
    font-size: min(15px, 1.098096vw);
  }
  .tp-band .tp-circle {
    margin-top: min(22px, 1.6105408vw);
    background: #fff;
    border: 0;
    color: #2C2C2C;
  }
  .tp-band--perf {
    height: min(671px, 49.1214944vw);
  }
  .tp-band--perf .tp-perf__list {
    grid-template-columns: repeat(5, min(200px, 14.64128vw));
    gap: 0;
    margin-top: min(60px, 4.392384vw);
  }
  .tp-band--perf .tp-perf__item {
    padding: min(20px, 1.464128vw) 0 min(42px, 3.0746688vw);
  }
  .tp-band--perf .tp-perf__item + .tp-perf__item {
    border-left: 1px solid #fff;
  }
  .tp-band--perf .tp-perf__item:nth-child(odd):not(:last-child)::after {
    content: none;
  }
  .tp-band--perf .tp-perf__item:last-child {
    grid-column: auto;
  }
  .tp-band--perf .tp-perf__icon {
    width: min(var(--w) * 1px, var(--w) * 0.0732064vw);
  }
  .tp-band--perf .tp-perf__label {
    margin-top: min(28px, 2.0497792vw);
    font-size: min(25px, 1.83016vw);
  }
  .tp-band--perf .tp-perf__more {
    gap: min(28px, 2.0497792vw);
    margin-top: min(76px, 5.5636864vw);
    font-size: min(16px, 1.1713024vw);
  }
  .tp-band--perf .tp-perf__btn {
    width: min(62px, 4.5387968vw);
    height: min(62px, 4.5387968vw);
  }
  /* 商品紹介 */
  .tp-lineup {
    padding-bottom: min(91px, 6.6617824vw);
  }
  .tp-lineup .tp-cards {
    gap: min(11px, 0.8052704vw);
  }
  .tp-lineup .tp-cards > li {
    flex: 1 1 0;
    padding: 0;
  }
  .tp-item__head {
    height: min(100px, 7.32064vw);
    margin-top: min(44px, 3.2210816vw);
    padding: min(30px, 2.196192vw) 0 0 min(19px, 1.3909216vw);
  }
  .tp-item__label {
    font-size: min(14px, 1.0248896vw);
    padding-left: min(11px, 0.8052704vw);
  }
  .tp-item__name {
    margin-top: min(6px, 0.4392384vw);
    font-size: min(23px, 1.6837472vw);
  }
  .tp-item__house {
    width: min(114px, 8.3455296vw);
    right: min(21px, 1.5373344vw);
    bottom: min(15px, 1.098096vw);
  }
  .tp-item--full .tp-item__house {
    width: min(119px, 8.7115616vw);
    right: min(27px, 1.9765728vw);
    bottom: min(12px, 0.8784768vw);
  }
  .tp-item--casa .tp-item__house {
    width: min(131px, 9.5900384vw);
    right: min(31px, 2.2693984vw);
    bottom: min(25px, 1.83016vw);
  }
  .tp-item__pic {
    height: min(444px, 32.5036416vw);
  }
  .tp-item__tags {
    left: min(19px, 1.3909216vw);
    bottom: min(105px, 7.686672vw);
    gap: min(12px, 0.8784768vw);
  }
  .tp-item__tags li {
    font-size: min(16px, 1.1713024vw);
    padding: min(1px, 0.0732064vw) min(10px, 0.732064vw);
  }
  .tp-item__btn {
    right: min(29px, 2.1229856vw);
    bottom: min(28px, 2.0497792vw);
    width: min(165px, 12.079056vw);
    height: min(54px, 3.9531456vw);
    font-size: min(16px, 1.1713024vw);
  }
  .tp-dots {
    display: none;
  }
  /* スタッフ / コラム */
  .tp-links {
    flex-direction: row;
    justify-content: center;
    gap: min(40px, 2.928256vw);
    width: auto;
    margin-top: min(145px, 10.614928vw);
  }
  .tp-link {
    flex: 0 1 min(492px, 36.0175488vw);
    height: min(280px, 20.497792vw);
  }
  .tp-link__txt {
    left: min(30px, 2.196192vw);
    bottom: min(38px, 2.7818432vw);
  }
  .tp-link__en {
    font-size: min(33px, 2.4158112vw);
  }
  .tp-link__jp {
    font-size: min(15px, 1.098096vw);
  }
  .tp-link .tp-circle {
    right: min(30px, 2.196192vw);
    bottom: min(28px, 2.0497792vw);
    width: min(62px, 4.5387968vw);
    height: min(62px, 4.5387968vw);
  }
  /* LINE */
  .tp-line {
    padding-top: min(145px, 10.614928vw);
    padding-bottom: min(100px, 7.32064vw);
  }
  .tp-line__bnr {
    width: min(718px, 52.5621952vw);
    height: min(118px, 8.6383552vw);
    padding-left: min(301px, 22.0351264vw);
  }
  .tp-line__bnr::before, .tp-line__bnr::after {
    left: min(250px, 18.3016vw);
    width: min(18px, 1.3177152vw);
  }
  .tp-line__phone {
    left: min(37px, 2.7086368vw);
    width: min(180px, 13.177152vw);
    height: min(195px, 14.275248vw);
  }
  .tp-line__scan {
    display: block;
    position: absolute;
    top: min(56px, 4.0995584vw);
    left: 0;
    right: 0;
    color: #53D05D;
    font-family: "Helvetica Neue", Arial, sans-serif;
    font-size: min(15px, 1.098096vw);
    font-weight: 700;
    text-align: center;
  }
  .tp-line__qr {
    display: block;
    position: absolute;
    top: min(81px, 5.9297184vw);
    left: 50%;
    width: min(92px, 6.7349888vw);
    transform: translateX(-50%);
  }
  .tp-line__icon {
    position: static;
    width: auto;
    margin-left: auto;
    margin-right: min(20px, 1.464128vw);
    color: #fff;
    font-size: min(78px, 5.7100992vw);
  }
  .tp-line__txt {
    padding-left: 0;
  }
  .tp-line__sub {
    font-size: min(20px, 1.464128vw);
  }
  .tp-line__main {
    margin-top: min(8px, 0.5856512vw);
    font-size: min(30px, 2.196192vw);
  }
  .tp-sns {
    gap: min(40px, 2.928256vw);
    margin-top: min(60px, 4.392384vw);
  }
}
@media only screen and (min-width: 1025px) {
  .tp {
    --band: 70px;
  }
}
/* =========================================================
   LINE UP（page-lineup.php）— XD: LINE_UP(393) / pc_LINE UP(1366)
   見出しは .se-header-staff、下のバナーは TOP の .tp-link を流用
   ========================================================= */
.se-header-lineup .tit-wrap {
  text-align: left;
  padding: 4vw min(32px, 5.08906vw) min(41.6px, 6.615778vw);
}
.se-header-lineup .tit-wrap .tit-logo {
  text-align: left;
  margin-left: 0;
}
.se-header-lineup .tit-wrap .tit-en {
  font-size: min(72px, 11.450385vw);
}
.se-header-lineup .tit-wrap h2 {
  font-size: min(24px, 3.816795vw);
  letter-spacing: 0.1em;
  margin-bottom: 0;
}
.se-header-lineup .se-head-pic {
  margin-left: min(32px, 5.08906vw);
}

.lu-list {
  padding: min(112px, 17.81171vw) 0 min(176px, 27.98983vw);
}

.lu-scroller {
  overflow-x: auto;
  scrollbar-width: none;
  scroll-snap-type: x mandatory;
}
.lu-scroller::-webkit-scrollbar {
  display: none;
}

.lu-cards {
  display: flex;
  gap: min(16px, 2.54453vw);
  width: max-content;
  padding: 0 min(32px, 5.08906vw);
}

.lu-card {
  flex: 0 0 min(494.4px, 78.625977vw);
  display: flex;
  flex-direction: column;
  scroll-snap-align: center;
}
.lu-card__head {
  position: relative;
  height: min(115.2px, 18.320616vw);
  padding: min(20.8px, 3.307889vw) 0 0 min(33.6px, 5.343513vw);
  color: #fff;
}
.lu-card__label {
  padding-left: min(17.6px, 2.798983vw);
  border-left: 1px solid #fff;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 700;
  line-height: 1.4;
}
.lu-card__name {
  margin-top: min(6.4px, 1.017812vw);
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.lu-card__house {
  position: absolute;
  right: min(24px, 3.816795vw);
  bottom: min(24px, 3.816795vw);
  width: min(169.6px, 26.972018vw);
  height: auto;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, 0.25));
}
.lu-card__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 366/229;
  object-fit: cover;
}
.lu-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: min(48px, 7.63359vw) min(33.6px, 5.343513vw) min(57.6px, 9.160308vw);
  background: #fff;
}
.lu-card__type {
  padding-left: min(1.6px, 0.254453vw);
  font-size: min(25.6px, 4.071248vw);
  font-weight: 700;
  line-height: 1.7;
  color: #242424;
  white-space: pre-line;
}
.lu-card__spec-tit {
  margin-top: min(32px, 5.08906vw);
  padding: 0 min(27.2px, 4.325701vw);
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  line-height: min(64px, 10.17812vw);
  color: #fff;
}
.lu-card__specs {
  margin-bottom: min(80px, 12.72265vw);
}
.lu-card__specs li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(92.8px, 14.758274vw);
  padding: min(16px, 2.54453vw) min(24px, 3.816795vw);
  border-bottom: 1px solid #C3C3C3;
  font-size: min(25.6px, 4.071248vw);
  color: #303030;
  line-height: 1.5;
}
.lu-card__specs small {
  font-size: min(22.4px, 3.562342vw);
  line-height: 1.4;
}
.lu-card__btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(198.4px, 31.552172vw);
  height: min(73.6px, 11.704838vw);
  margin: auto auto 0;
  border-radius: 999px;
  color: #fff !important;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 700;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  transition: color 0.5s cubic-bezier(0.7, 0, 0.2, 1);
}
.lu-card__btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #fff;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 0.6s cubic-bezier(0.7, 0, 0.2, 1);
}
.lu-card__btn:hover::before {
  transform: scaleX(1);
  transform-origin: left center;
}
.lu-card--select .lu-card__head, .lu-card--select .lu-card__spec-tit, .lu-card--select .lu-card__btn {
  background: #A09A8A;
}
.lu-card--select .lu-card__btn {
  border: 1px solid #A09A8A;
}
.lu-card--select .lu-card__btn:hover {
  color: #A09A8A !important;
}
.lu-card--full .lu-card__head, .lu-card--full .lu-card__spec-tit, .lu-card--full .lu-card__btn {
  background: #605D51;
}
.lu-card--full .lu-card__btn {
  border: 1px solid #605D51;
}
.lu-card--full .lu-card__btn:hover {
  color: #605D51 !important;
}
.lu-card--casa .lu-card__head, .lu-card--casa .lu-card__spec-tit, .lu-card--casa .lu-card__btn {
  background: #B7A054;
}
.lu-card--casa .lu-card__btn {
  border: 1px solid #B7A054;
}
.lu-card--casa .lu-card__btn:hover {
  color: #B7A054 !important;
}

.lu-links {
  margin-top: 0;
  padding-bottom: min(160px, 25.4453vw);
}

@media only screen and (min-width: 768px) {
  .se-header-lineup .tit-wrap {
    padding: 0 0 0 5%;
  }
  .se-header-lineup .tit-wrap .tit-en {
    font-size: min(3.82vw, 55px);
  }
  .se-header-lineup .tit-wrap h2 {
    font-size: 1.6rem;
  }
  .se-header-lineup .se-head-pic {
    margin-left: 0;
    margin-right: var(--band, 64px);
  }
  .lu-list {
    padding: min(124px, 9.0775936vw) var(--band) min(118px, 8.6383552vw) 0;
  }
  .lu-scroller {
    overflow: visible;
  }
  .lu-cards {
    width: min(1118px, 86.5%);
    margin: 0 auto;
    padding: 0;
    gap: min(10px, 0.732064vw);
  }
  .lu-card {
    flex: 1 1 0;
    min-width: 0;
  }
  .lu-card__head {
    height: min(95px, 6.954608vw);
    padding: min(22px, 1.6105408vw) 0 0 min(32px, 2.3426048vw);
  }
  .lu-card__label {
    font-size: min(14px, 1.0248896vw);
    padding-left: min(11px, 0.8052704vw);
  }
  .lu-card__name {
    margin-top: min(6px, 0.4392384vw);
    font-size: min(20px, 1.464128vw);
  }
  .lu-card__house {
    width: min(106px, 7.7598784vw);
    right: min(28px, 2.0497792vw);
    bottom: min(21px, 1.5373344vw);
  }
  .lu-card--full .lu-card__house {
    width: min(115px, 8.418736vw);
    right: min(38px, 2.7818432vw);
    bottom: min(25px, 1.83016vw);
  }
  .lu-card--casa .lu-card__house {
    width: min(124px, 9.0775936vw);
    right: min(27px, 1.9765728vw);
    bottom: min(16px, 1.1713024vw);
  }
  .lu-card__body {
    padding: min(36px, 2.6354304vw) min(15px, 1.098096vw) min(36px, 2.6354304vw);
  }
  .lu-card__type {
    padding-left: min(17px, 1.2445088vw);
    font-size: min(17px, 1.2445088vw);
    font-weight: 500;
    line-height: 1.63;
  }
  .lu-card__spec-tit {
    margin-top: min(26px, 1.9033664vw);
    padding: 0 min(17px, 1.2445088vw);
    font-size: min(15px, 1.098096vw);
    line-height: min(40px, 2.928256vw);
  }
  .lu-card__specs {
    margin-bottom: min(70px, 5.124448vw);
  }
  .lu-card__specs li {
    min-height: min(58px, 4.2459712vw);
    padding: min(10px, 0.732064vw) min(15px, 1.098096vw);
    font-size: min(16px, 1.1713024vw);
  }
  .lu-card__specs small {
    font-size: min(14px, 1.0248896vw);
  }
  .lu-card__btn {
    width: min(165px, 12.079056vw);
    height: min(54px, 3.9531456vw);
    font-size: min(16px, 1.1713024vw);
  }
  .lu-links {
    margin-top: 0;
    padding-bottom: min(116px, 8.4919424vw);
  }
}
.se-header-lineup {
  --band: 64px;
}

@media only screen and (min-width: 1025px) {
  .se-header-lineup {
    --band: 70px;
  }
}
/* =========================================================
   CONCEPT（page-concept.php）— XD: sp_コンセプト(393) / pc_コンセプト(1366)
   本文・商品紹介・バナーは TOP の部品を流用
   ========================================================= */
.cc-concept {
  padding: min(80px, 12.72265vw) min(40px, 6.361325vw) min(128px, 20.35624vw);
  text-align: left;
}

.cc-catch {
  margin: 0 0 min(57.6px, 9.160308vw) -0.08em;
  font-size: min(52.8px, 8.396949vw);
  font-weight: 700;
  line-height: 1.64;
  letter-spacing: 0.06em;
}

@media only screen and (max-width: 767px) {
  .cc-catch {
    font-size: 7.6vw;
    white-space: nowrap;
  }
  .cc-concept .tp-concept__txt p {
    font-size: 3.7vw;
    white-space: nowrap;
  }
}
/* 写真コラージュ：1組 = 縦長 / 小2＋横長 / 横長2。2周分を並べて -50% 流し続ける */
.cc-gallery {
  --h: min(704px, 111.95932vw);
  --gap: 8px;
  overflow: hidden;
}
.cc-gallery__track {
  display: flex;
  width: max-content;
  animation: cc-marquee 90s linear infinite;
}
.cc-gallery__set {
  display: flex;
  gap: var(--gap);
  height: var(--h);
  margin-right: var(--gap);
}
.cc-gallery__col {
  display: grid;
  gap: var(--gap);
}
.cc-gallery__col img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
.cc-gallery__col--tall {
  width: calc(var(--h) * 0.528);
}
.cc-gallery__col--mid {
  width: calc(var(--h) * 0.759);
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
}
.cc-gallery__col--mid .is-wide {
  grid-column: 1/-1;
}
.cc-gallery__col--side {
  width: calc(var(--h) * 0.715);
  grid-template-rows: 6fr 4fr;
}

@keyframes cc-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .cc-gallery__track {
    animation: none;
  }
}
/* 見出し「CRESの 商品紹介」「性能と保証」 */
.cc-tit {
  margin-bottom: min(48px, 7.63359vw);
  font-size: min(44.8px, 7.124684vw);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: #242424;
}
.cc-tit__sub {
  display: block;
  font-size: min(25.6px, 4.071248vw);
}

.cc-lineup .tp-tit {
  display: none;
}

.cc-more span {
  font-weight: 700;
  letter-spacing: 0.1em;
}

/* 性能と保証 */
.cc-pw {
  padding: min(144px, 22.90077vw) 0 min(176px, 27.98983vw);
}
.cc-pw__tit {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto min(48px, 7.63359vw);
}

.cc-links,
.lu-links {
  width: min(564.8px, 89.821909vw);
  margin-top: 0;
}
.cc-links .tp-link,
.lu-links .tp-link {
  height: min(272px, 43.25701vw);
}

.cc-links {
  padding-bottom: 0;
}

@media only screen and (min-width: 768px) {
  .cc-concept {
    padding: min(130px, 9.516832vw) var(--band) min(110px, 8.052704vw) 0;
    text-align: center;
  }
  .cc-catch {
    margin: 0 0 min(70px, 5.124448vw);
    font-size: min(45px, 3.294288vw);
    line-height: min(70px, 5.124448vw);
    letter-spacing: 0.04em;
  }
  .cc-gallery {
    --h: min(638px, 46.7056832vw);
    margin-right: var(--band);
  }
  .cc-tit {
    margin-bottom: min(50px, 3.66032vw);
    font-size: min(35px, 2.562224vw);
  }
  .cc-tit__sub {
    font-size: min(20px, 1.464128vw);
    margin-bottom: min(6px, 0.4392384vw);
  }
  .cc-lineup {
    padding-top: min(150px, 10.98096vw);
    padding-bottom: min(141px, 10.3221024vw);
  }
  .cc-pw {
    padding: min(132px, 9.6632448vw) var(--band) min(150px, 10.98096vw) 0;
  }
  .cc-pw__tit {
    width: min(1024px, 74.9633536vw);
    margin-bottom: min(45px, 3.294288vw);
  }
  .cc-links,
  .lu-links {
    width: auto;
  }
  .cc-links .tp-link,
  .lu-links .tp-link {
    height: min(280px, 20.497792vw);
  }
  .cc-links {
    padding-right: 0;
  }
}
/* =========================================================
   PERFORMANCE（page-performance.php）— XD: sp_性能(393) / pc_性能(1366)
   見出しは .se-header-lineup を流用。目次 → 5項目（PC は写真が右・左と交互）
   ========================================================= */
html:has(.pf) {
  scroll-behavior: smooth;
}

/* ---- 目次 ---- */
.pf-index {
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: min(48px, 7.63359vw);
  width: min(566.4px, 90.076362vw);
  margin: 0 auto;
  padding: min(80px, 12.72265vw) 0 min(224px, 35.62342vw);
  list-style: none;
}
.pf-index li {
  border-left: 1px solid #4E4E4E;
}
.pf-index li:nth-child(2n), .pf-index li:last-child {
  border-right: 1px solid #4E4E4E;
}
.pf-index a {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: min(168px, 26.717565vw);
  padding-top: min(6.4px, 1.017812vw);
  color: #454545;
  text-decoration: none;
}
.pf-index__icon {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: min(54.4px, 8.651402vw);
}
.pf-index__icon img {
  width: min(var(--w) * 0.576px, var(--w) * 0.09160308vw);
  height: auto;
}
.pf-index__name {
  margin-top: min(12.8px, 2.035624vw);
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 1.3;
  color: #292929;
}
.pf-index__arrow {
  position: relative;
  width: min(48px, 7.63359vw);
  height: min(48px, 7.63359vw);
  margin-top: auto;
  border-radius: 50%;
  background: #454545;
  transition: transform 0.4s ease;
}
.pf-index__arrow::before {
  content: "";
  position: absolute;
  top: 42%;
  left: 50%;
  width: 22%;
  height: 22%;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}
a:hover .pf-index__arrow {
  transform: translateY(4px);
}

/* ---- 各項目 ---- */
.pf-list {
  display: grid;
  gap: min(128px, 20.35624vw);
  padding-bottom: min(160px, 25.4453vw);
}

.pf-item {
  scroll-margin-top: 20px;
}
.pf-item__body {
  position: relative;
  z-index: 0;
  padding: 0 min(32px, 5.08906vw);
}
.pf-item__no {
  display: none;
}
.pf-item__head {
  position: relative;
}
.pf-item__icon {
  display: block;
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: 0;
  width: min(153.6px, 24.427488vw);
  height: min(140.8px, 22.391864vw);
  background: #eaeae8;
  -webkit-mask: no-repeat center bottom/calc(var(--w) * 100% / 120) auto;
  mask: no-repeat center bottom/calc(var(--w) * 100% / 120) auto;
  pointer-events: none;
}
.pf-item__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(102.4px, 16.284992vw);
  height: min(43.2px, 6.870231vw);
  margin: 0;
  background: #B7A054;
  color: #fff;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 1;
}
.pf-item__tit {
  margin: min(12.8px, 2.035624vw) 0 0;
  font-size: min(33.6px, 5.343513vw);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.1em;
  color: #242424;
}
.pf-item__txt {
  margin-top: min(19.2px, 3.053436vw);
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #242424;
}
.pf-item__txt p {
  margin: 0;
}
.pf-item__txt ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pf-item__txt ul {
  margin-top: 1.4em;
}
.pf-item__txt li::before {
  content: "・";
}
.pf-item__note {
  margin: min(9.6px, 1.526718vw) 0 0;
  font-size: min(20.8px, 3.307889vw);
  font-weight: 500;
  line-height: 1.5;
  color: #242424;
}
.pf-item__pic {
  margin: min(38.4px, 6.106872vw) min(32px, 5.08906vw) 0;
}
.pf-item__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 353/214;
  object-fit: cover;
}
.pf-item__pic--fig img {
  aspect-ratio: auto;
  object-fit: contain;
}

@media only screen and (min-width: 768px) {
  .pf {
    padding-right: var(--band);
  }
  .pf-index {
    grid-template-columns: repeat(5, 1fr);
    width: 83.455296vw;
    padding: 9.516832vw 0 10.614928vw;
  }
  .pf-index li:nth-child(2n) {
    border-right: 0;
  }
  .pf-index li:last-child {
    border-right: 1px solid #4E4E4E;
  }
  .pf-index a {
    height: 14.9341056vw;
    padding-top: 1.7569536vw;
  }
  .pf-index__icon {
    height: 4.0995584vw;
  }
  .pf-index__icon img {
    width: calc(var(--w) * 0.04392384vw);
  }
  .pf-index__name {
    margin-top: 1.0248896vw;
    font-size: min(23px, 1.6837472vw);
  }
  .pf-index__arrow {
    width: 3.5139072vw;
    height: 3.5139072vw;
    margin: auto 0 1.5373344vw;
  }
  .pf-list {
    gap: 2.6354304vw;
    padding-bottom: 10.8345472vw;
  }
  .pf-item {
    display: grid;
    grid-template-columns: 1fr 43.0453632vw;
    align-items: center;
  }
  .pf-item__body {
    padding: 0 4.392384vw 0 6.4421632vw;
  }
  .pf-item--rev {
    grid-template-columns: 43.0453632vw 1fr;
  }
  .pf-item--rev .pf-item__body {
    order: 2;
    padding-left: 6.0761312vw;
  }
  .pf-item__no {
    display: none;
  }
  .pf-item__head {
    position: relative;
  }
  .pf-item__icon {
    display: block;
    position: absolute;
    z-index: -1;
    right: -0.732064vw;
    bottom: 0;
    width: 8.784768vw;
    height: 8.052704vw;
    background: #eaeae8;
    -webkit-mask: no-repeat center bottom/calc(var(--w) * 100% / 120) auto;
    mask: no-repeat center bottom/calc(var(--w) * 100% / 120) auto;
    pointer-events: none;
  }
  .pf-item__badge {
    width: 4.5387968vw;
    height: 2.3426048vw;
    font-size: min(18px, 1.3177152vw);
  }
  .pf-item__tit {
    margin-top: 0.732064vw;
    font-size: min(25px, 1.83016vw);
    line-height: 1.6;
  }
  .pf-item__txt {
    margin-top: 1.464128vw;
    font-size: min(16px, 1.1713024vw);
  }
  .pf-item__note {
    margin-top: 0.5856512vw;
    font-size: min(14px, 1.0248896vw);
  }
  .pf-item__pic {
    margin: 0;
  }
  .pf-item__pic img {
    aspect-ratio: 3/2;
  }
  .pf-item__pic--fig img {
    aspect-ratio: auto;
  }
}
/* =========================================================
   WARRANTY（page-warranty.php）— XD: sp_保証(393) / pc_保証(1366)
   見出しは .se-header-lineup を流用。白カード5枚（PC は2列）
   ========================================================= */
.wr-list {
  display: grid;
  gap: min(32px, 5.08906vw);
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding: min(92.8px, 14.758274vw) 0 min(128px, 20.35624vw);
  list-style: none;
}

.wr-card {
  padding: min(44.8px, 7.124684vw) min(43.2px, 6.870231vw) min(48px, 7.63359vw);
  background: #fff;
  color: #242424;
}
.wr-card__en {
  margin: 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 500;
  line-height: 1.2;
  color: #B7A054;
}
.wr-card__head {
  display: flex;
  align-items: baseline;
  gap: min(19.2px, 3.053436vw);
  margin: 0;
  font-weight: 700;
}
.wr-card__no {
  font-size: min(128px, 20.35624vw);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.01em;
}
.wr-card__tit {
  font-size: min(32px, 5.08906vw);
  letter-spacing: 0.1em;
}
.wr-card__txt {
  margin-top: min(28.8px, 4.580154vw);
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: 0.05em;
  text-align: justify;
}
.wr-card__txt p {
  margin: 0;
}

@media only screen and (min-width: 768px) {
  .wr {
    padding-right: var(--band);
  }
  .wr-list {
    grid-template-columns: 1fr 1fr;
    gap: min(24px, 1.7569536vw);
    width: min(1090px, 79.794976vw);
    padding: min(126px, 9.2240064vw) 0 min(154px, 11.2737856vw);
  }
  .wr-card {
    min-height: min(386px, 28.2576704vw);
    padding: min(62px, 4.5387968vw) min(50px, 3.66032vw) min(70px, 5.124448vw) min(45px, 3.294288vw);
  }
  .wr-card__en {
    font-size: min(18px, 1.3177152vw);
  }
  .wr-card__head {
    gap: min(14px, 1.0248896vw);
  }
  .wr-card__no {
    font-size: min(94px, 6.8814016vw);
  }
  .wr-card__tit {
    font-size: min(25px, 1.83016vw);
  }
  .wr-card__txt {
    margin-top: min(24px, 1.7569536vw);
    padding-left: min(3px, 0.2196192vw);
    font-size: min(16px, 1.1713024vw);
  }
}
/* =========================================================
   EVENT 一覧（page-event.php）— XD: sp_イベント(393) / イベント(1366)
   カードは TOP の .tp-event をそのまま使う
   ========================================================= */
.evl-list {
  display: grid;
  gap: min(49.6px, 7.888043vw);
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding: min(136px, 21.628505vw) 0 0;
  list-style: none;
}
.evl-list .tp-event__date {
  font-size: min(24px, 3.816795vw);
  color: #000;
}
.evl-list .tp-event__note {
  font-size: min(20.8px, 3.307889vw);
}
.evl-list .tp-event__tit {
  line-height: 1.35;
}
.evl-list .tp-event__body > :has(+ .tp-event__btn) {
  margin-bottom: min(48px, 7.63359vw);
}
.evl-list .tp-event .tp-event__btn {
  margin-top: auto;
}
.evl-list .tp-tags {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  letter-spacing: 0;
}
.evl-list .tp-tags li {
  display: inline;
}
.evl-list .tp-tags li + li::before {
  margin: 0 0.4em;
}

/* ページ送り：← 1 2 3 … 8 → */
.evl-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(510.4px, 81.170507vw);
  margin: min(108.8px, 17.302804vw) auto 0;
  padding-bottom: min(128px, 20.35624vw);
}
.evl-pager__nums {
  display: flex;
  gap: min(22.4px, 3.562342vw);
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: "Jost", sans-serif;
  font-size: min(28.8px, 4.580154vw);
  color: #C1C1C1;
}
.evl-pager__nums li {
  min-width: 1em;
  text-align: center;
}
.evl-pager__nums a {
  color: inherit;
  text-decoration: none;
  transition: color 0.3s;
}
.evl-pager__nums a:hover, .evl-pager__nums .is-current {
  color: #454545;
}
.evl-pager__nums .is-dots {
  color: #C9C9C9;
  letter-spacing: -0.1em;
}
.evl-pager__arrow {
  position: relative;
  flex: none;
  width: min(76.8px, 12.213744vw);
  height: min(76.8px, 12.213744vw);
  border-radius: 50%;
  background: #000;
  transition: opacity 0.3s;
}
.evl-pager__arrow::before, .evl-pager__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
}
.evl-pager__arrow::before {
  width: min(25.6px, 4.071248vw);
  height: 1px;
  background: #fff;
  transform: translate(-50%, -50%);
}
.evl-pager__arrow::after {
  width: 6px;
  height: 6px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate(calc(min(12.8px, 2.035624vw) - 100%), -50%) rotate(45deg);
}
.evl-pager__arrow.is-prev {
  transform: scaleX(-1);
}
.evl-pager__arrow.is-disabled {
  border: 1px solid #B4B4B4;
  background: transparent;
}
.evl-pager__arrow.is-disabled::before {
  background: #B4B4B4;
}
.evl-pager__arrow.is-disabled::after {
  border-color: #B4B4B4;
}
.evl-pager__arrow:not(.is-disabled):hover {
  opacity: 0.7;
}

@media only screen and (min-width: 768px) {
  .evl {
    padding-right: var(--band);
  }
  .evl-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: min(70px, 5.124448vw) min(25px, 1.83016vw);
    width: min(1118px, 86.5%);
    padding-top: min(140px, 10.248896vw);
  }
  .evl-list .tp-event__date {
    font-size: min(15px, 1.098096vw);
    line-height: 1.4;
    color: #000;
  }
  .evl-list .tp-event__note {
    font-size: min(13px, 0.9516832vw);
  }
  .evl-list .tp-event__body > :has(+ .tp-event__btn) {
    margin-bottom: min(30px, 2.196192vw);
  }
  .evl-pager {
    width: min(364px, 26.6471296vw);
    margin-top: min(92px, 6.7349888vw);
    padding-bottom: min(118px, 8.6383552vw);
  }
  .evl-pager__nums {
    gap: min(18px, 1.3177152vw);
    font-size: min(18px, 1.3177152vw);
  }
  .evl-pager__arrow {
    width: min(48px, 3.5139072vw);
    height: min(48px, 3.5139072vw);
  }
  .evl-pager__arrow::before {
    width: min(16px, 1.1713024vw);
  }
  .evl-pager__arrow::after {
    transform: translate(calc(min(8px, 0.5856512vw) - 100%), -50%) rotate(45deg);
  }
}
/* =========================================================
   EVENT 詳細（page-event-detail.php）— XD: sp_イベント詳細(393) / pc_イベント詳細(1366)
   ========================================================= */
.ed-arrow {
  position: relative;
  display: inline-block;
  width: 24px;
  height: 1px;
  background: currentColor;
}
.ed-arrow::before, .ed-arrow::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 8px;
  height: 1px;
  background: currentColor;
  transform-origin: right center;
}
.ed-arrow::before {
  transform: rotate(35deg);
}
.ed-arrow::after {
  transform: rotate(-35deg);
}

/* ---- 概要（グレーの帯） ---- */
.ed-main {
  background: #EAEAE8;
  margin-top: 0;
  padding: min(80px, 12.72265vw) 0 min(80px, 12.72265vw);
}
.ed-main__inner {
  display: grid;
  gap: min(48px, 7.63359vw);
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
}

.ed-info__tit {
  margin: 0;
  font-size: min(41.6px, 6.615778vw);
  font-weight: 700;
  line-height: 1.3;
  color: #000;
}
.ed-info__sub {
  display: block;
  margin: min(9.6px, 1.526718vw) 0 0 -0.5em;
  font-size: min(25.6px, 4.071248vw);
}
.ed-info__tags.tp-tags {
  margin-top: min(19.2px, 3.053436vw);
  padding-bottom: min(19.2px, 3.053436vw);
  border-bottom: 2px solid #848484;
  color: #000;
}
.ed-info__dl {
  display: grid;
  gap: min(22.4px, 3.562342vw);
  margin: min(32px, 5.08906vw) 0 0;
}
.ed-info__dl > div {
  display: flex;
  align-items: flex-start;
  gap: min(16px, 2.54453vw);
}
.ed-info__dl dt {
  flex: none;
  width: min(116.8px, 18.575069vw);
  line-height: min(46.4px, 7.379137vw);
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 500;
  text-align: center;
}
.ed-info__dl dd {
  margin: 0;
  padding-top: min(6.4px, 1.017812vw);
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  line-height: 1.4;
}
.ed-info__date {
  display: block;
  margin-top: min(-6.4px, -1.017812vw);
  font-size: min(32px, 5.08906vw);
}
.ed-info__note {
  display: block;
}

.ed-gallery__main img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.ed-gallery__thumbs {
  display: flex;
  gap: min(8px, 1.272265vw);
  margin: min(14.4px, 2.290077vw) calc(50% - 50vw) 0 0;
  padding: 0 min(32px, 5.08906vw) 0 0;
  overflow-x: auto;
  scrollbar-width: none;
  list-style: none;
}
.ed-gallery__thumbs::-webkit-scrollbar {
  display: none;
}
.ed-gallery__thumbs li {
  flex: 0 0 min(118.4px, 18.829522vw);
}
.ed-gallery__thumbs button {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  transition: opacity 0.3s;
}
.ed-gallery__thumbs button:hover {
  opacity: 0.7;
}
.ed-gallery__thumbs img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}

.ed-gallery__main {
  position: relative;
  overflow: hidden;
}
.ed-gallery__main.is-changing > img {
  animation: edg-out 1.3s cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

.ed-gallery__next {
  position: absolute;
  inset: 0;
}
.ed-gallery__next span {
  position: absolute;
  inset: 0;
  clip-path: inset(100% var(--r) 0 var(--l));
  animation: edg-mask 1s cubic-bezier(0.77, 0, 0.18, 1) forwards;
}
.ed-gallery__next img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  animation: edg-zoom 1.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes edg-mask {
  to {
    clip-path: inset(0 var(--r) 0 var(--l));
  }
}
@keyframes edg-zoom {
  from {
    transform: scale(1.25);
  }
  to {
    transform: scale(1);
  }
}
@keyframes edg-out {
  to {
    transform: scale(1.08);
    filter: brightness(0.55);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ed-gallery__next span, .ed-gallery__next img, .ed-gallery__main.is-changing > img {
    animation-duration: 0.01s !important;
    animation-delay: 0s !important;
  }
}
.ed-txt {
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #000;
}
.ed-txt p {
  margin: 0;
}
.ed-txt p + p {
  margin-top: 1.4em;
}

/* ---- MAP ---- */
.ed-map {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding: min(128px, 20.35624vw) 0 0;
}
.ed-map__tit {
  margin: 0;
  font-size: min(64px, 10.17812vw);
  font-weight: 500;
  line-height: 1;
}
.ed-map__name {
  margin: min(22.4px, 3.562342vw) 0 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
}
.ed-map__addr {
  margin: min(9.6px, 1.526718vw) 0 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 1.6;
}
.ed-map__frame {
  margin-top: min(44.8px, 7.124684vw);
}
.ed-map__frame iframe {
  display: block;
  width: 100%;
  height: min(443.2px, 70.483481vw);
  border: 0;
}

/* ---- 予約お申し込み ---- */
.ed-form {
  width: min(564.8px, 89.821909vw);
  margin: min(128px, 20.35624vw) auto 0;
  scroll-margin-top: 20px;
}
.ed-form__tit {
  margin: 0;
  background: #000;
  color: #fff;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  line-height: min(105.6px, 16.793898vw);
  text-align: center;
}
.ed-form__body {
  padding: min(65.6px, 10.432573vw) min(30.4px, 4.834607vw) min(67.2px, 10.687026vw);
  background: #fff;
}
.ed-form__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(464px, 73.79137vw);
  height: min(91.2px, 14.503821vw);
  margin: 0 auto;
  border-radius: 999px;
  background: #FC9C2D;
  color: #fff !important;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: opacity 0.3s;
}
.ed-form__btn:hover {
  opacity: 0.8;
}
.ed-form__btn .ed-arrow {
  position: absolute;
  right: min(48px, 7.63359vw);
  top: 50%;
  transition: transform 0.3s;
}
.ed-form__btn:hover .ed-arrow {
  transform: translateX(5px);
}
.ed-form__line {
  margin: min(48px, 7.63359vw) 0 0;
  padding-top: min(48px, 7.63359vw);
  border-top: 2px solid #EEE;
  color: #53D05D;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 700;
  text-align: center;
}

.tp-line.ed-line {
  padding: min(44.8px, 7.124684vw) 0 0;
}
.tp-line.ed-line .tp-line__bnr {
  width: 100%;
}

/* ---- 一覧へ戻る ---- */
.ed-back {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(48px, 7.63359vw);
  margin: min(80px, 12.72265vw) auto 0;
  padding-bottom: min(67.2px, 10.687026vw);
  color: #000 !important;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  letter-spacing: 0.05em;
  text-decoration: none;
}
.ed-back__circle {
  position: relative;
  width: min(76.8px, 12.213744vw);
  height: min(76.8px, 12.213744vw);
  border-radius: 50%;
  background: #000;
  transition: transform 0.3s;
}
.ed-back__circle::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 46%;
  width: 7px;
  height: 7px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}
.ed-back:hover .ed-back__circle {
  transform: translateX(5px);
}

@media only screen and (min-width: 768px) {
  .ed {
    padding-right: var(--band);
  }
  .ed-main {
    margin: 0 calc(var(--band) * -1) 0 0;
    padding: min(54px, 3.9531456vw) var(--band) min(97px, 7.1010208vw) 0;
  }
  .ed-main__inner {
    grid-template-columns: minmax(0, 1fr) 50%;
    grid-template-rows: auto 1fr;
    column-gap: min(54px, 3.9531456vw);
    row-gap: min(36px, 2.6354304vw);
    width: 95%;
    margin: 0 0 0 auto;
  }
  .ed-gallery {
    grid-column: 2;
    grid-row: 1/3;
  }
  .ed-info, .ed-txt {
    grid-column: 1;
  }
  .ed-info__tit {
    font-size: min(35px, 2.562224vw);
  }
  .ed-info__sub {
    margin-top: min(10px, 0.732064vw);
    font-size: min(18px, 1.3177152vw);
  }
  .ed-info__tags.tp-tags {
    margin-top: min(14px, 1.0248896vw);
    padding-bottom: min(14px, 1.0248896vw);
    border-bottom-width: 1px;
  }
  .ed-info__dl {
    gap: min(14px, 1.0248896vw);
    margin-top: min(36px, 2.6354304vw);
    padding-bottom: min(36px, 2.6354304vw);
    border-bottom: 1px solid #848484;
  }
  .ed-info__dl > div {
    align-items: center;
    gap: min(17px, 1.2445088vw);
  }
  .ed-info__dl dt {
    width: min(73px, 5.3440672vw);
    line-height: min(29px, 2.1229856vw);
    font-size: min(15px, 1.098096vw);
  }
  .ed-info__dl dd {
    padding-top: 0;
    font-size: min(17px, 1.2445088vw);
  }
  .ed-info__date {
    display: inline;
    margin: 0 min(16px, 1.1713024vw) 0 0;
    font-size: min(25px, 1.83016vw);
  }
  .ed-info__note {
    display: inline;
    font-size: min(18px, 1.3177152vw);
  }
  .ed-info__note + .ed-info__note {
    display: block;
  }
  .ed-main .ed-gallery__main img {
    aspect-ratio: 643/453;
  }
  .ed-gallery__thumbs {
    flex-wrap: wrap;
    gap: min(4.5px, 0.3294288vw);
    margin: min(9px, 0.6588576vw) 0 0;
    padding: 0;
    overflow: visible;
  }
  .ed-gallery__thumbs li {
    flex: 0 0 min(69px, 5.0512416vw);
  }
  .ed-txt {
    font-size: min(15px, 1.098096vw);
  }
  .ed-map {
    display: grid;
    grid-template-columns: 1fr min(617px, 45.1683488vw);
    align-items: center;
    width: min(1162px, 85.0658368vw);
    padding-top: min(98px, 7.1742272vw);
  }
  .ed-map__txt {
    padding-left: min(116px, 8.4919424vw);
  }
  .ed-map__tit {
    font-size: min(45px, 3.294288vw);
  }
  .ed-map__name {
    margin-top: min(40px, 2.928256vw);
    font-size: min(17px, 1.2445088vw);
  }
  .ed-map__addr {
    margin-top: min(8px, 0.5856512vw);
    font-size: min(15px, 1.098096vw);
    line-height: 1.95;
  }
  .ed-map__frame {
    margin: 0;
  }
  .ed-map__frame iframe {
    height: min(325px, 23.79208vw);
  }
  .ed-form {
    width: min(1162px, 85.0658368vw);
    margin-top: min(103px, 7.5402592vw);
  }
  .ed-form__tit {
    font-size: min(25px, 1.83016vw);
    line-height: min(66px, 4.8316224vw);
  }
  .ed-form__body {
    padding: min(72px, 5.2708608vw) min(95px, 6.954608vw) min(112px, 8.1991168vw);
  }
  .ed-form__btn {
    width: min(327px, 23.9384928vw);
    height: min(71px, 5.1976544vw);
    font-size: min(20px, 1.464128vw);
  }
  .ed-form__btn .ed-arrow {
    right: min(38px, 2.7818432vw);
  }
  .ed-form__line {
    margin-top: min(54px, 3.9531456vw);
    padding-top: min(58px, 4.2459712vw);
    font-size: min(20px, 1.464128vw);
  }
  .tp-line.ed-line {
    padding-top: min(78px, 5.7100992vw);
  }
  .tp-line.ed-line .tp-line__bnr {
    width: min(718px, 52.5621952vw);
  }
  .ed-back {
    gap: min(20px, 1.464128vw);
    margin-top: min(93px, 6.8081952vw);
    padding-bottom: min(95px, 6.954608vw);
    font-size: min(18px, 1.3177152vw);
  }
  .ed-back__circle {
    width: min(48px, 3.5139072vw);
    height: min(48px, 3.5139072vw);
  }
}
/* =========================================================
   セレクト住宅（page-select.php）— XD: セレクト(393) / pc_セレクト住宅(1366)
   商品ページ共通で使えるよう hs- で組む（セミオーダー / フルオーダーでも流用予定）
   ========================================================= */
.se-header-house .tit-wrap .tit-en {
  margin: 0;
  font-size: min(56px, 8.905855vw);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.05em;
  color: #242424;
}
.se-header-house .tit-wrap .tit-sub {
  margin: min(6.4px, 1.017812vw) 0 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 500;
  color: #242424;
}

.hs {
  color: #000;
}

.hs-txt {
  margin: 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.87;
  letter-spacing: 0.05em;
}

.hs-en {
  display: flex;
  align-items: baseline;
  gap: min(28.8px, 4.580154vw);
  margin: 0 0 min(25.6px, 4.071248vw);
  font-weight: 700;
}
.hs-en__en {
  font-size: min(72px, 11.450385vw);
  font-weight: 400;
  line-height: 1;
}
.hs-en__jp {
  font-size: min(28.8px, 4.580154vw);
  letter-spacing: 0.15em;
}

.hs-tit {
  margin: 0 0 min(28.8px, 4.580154vw);
  font-size: min(40px, 6.361325vw);
  font-weight: 700;
  line-height: 1.3;
}
.hs-tit__sub {
  display: block;
  margin-top: min(22.4px, 3.562342vw);
  font-size: min(25.6px, 4.071248vw);
  letter-spacing: 0.1em;
}

.hs-lead {
  margin: 0;
  padding: min(96px, 15.26718vw) min(32px, 5.08906vw) min(64px, 10.17812vw);
  font-size: min(28.8px, 4.580154vw);
  font-weight: 500;
  line-height: 2.1;
  letter-spacing: 0.05em;
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .hs-lead {
    font-size: 4.4vw;
    white-space: nowrap;
  }
}
.hs-feature__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 393/257;
  object-fit: cover;
  object-position: center 12%;
}
.hs-feature__body {
  padding: min(70.4px, 11.195932vw) min(32px, 5.08906vw) 0;
}
.hs-feature__body .hs-en__en {
  font-size: min(72px, 11.450385vw);
}
.hs-feature__body .hs-txt {
  margin-top: min(44.8px, 7.124684vw);
  line-height: 1.87;
}

.hs-md {
  display: grid;
  gap: min(19.2px, 3.053436vw);
  width: min(564.8px, 89.821909vw);
  margin: min(128px, 20.35624vw) auto 0;
}
.hs-md__box {
  padding: min(57.6px, 9.160308vw) min(59.2px, 9.414761vw) min(48px, 7.63359vw);
  background: #fff;
}
.hs-md__box .hs-en {
  margin-bottom: min(16px, 2.54453vw);
}
.hs-md__box .hs-en__en {
  font-size: min(60.8px, 9.669214vw);
}
.hs-md__box--merit {
  background: #A09A8A;
  color: #fff;
}

.hs-spec {
  width: min(564.8px, 89.821909vw);
  margin: min(112px, 17.81171vw) auto 0;
}
.hs-spec__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.hs-spec__list li {
  padding: min(9.6px, 1.526718vw) 0 min(12.8px, 2.035624vw);
  border-bottom: 1px solid #C9C6B8;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.95;
}

.hs-structure {
  width: min(564.8px, 89.821909vw);
  margin: min(144px, 22.90077vw) auto 0;
}
.hs-structure__body .hs-tit__sub {
  margin-bottom: min(48px, 7.63359vw);
}
.hs-structure .hs-txt {
  line-height: 1.7;
}
.hs-structure__pic {
  margin-top: min(41.6px, 6.615778vw);
}
.hs-structure__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}

.hs-structure--multi .hs-structure__row + .hs-structure__row {
  margin-top: min(89.6px, 14.249368vw);
}
.hs-structure--multi .hs-structure__body {
  margin-top: min(38.4px, 6.106872vw);
}
.hs-structure--multi .hs-structure__name {
  margin: 0 0 min(19.2px, 3.053436vw);
  font-size: min(32px, 5.08906vw);
  font-weight: 700;
  line-height: 1.5;
}

.hs-plan {
  width: min(564.8px, 89.821909vw);
  margin: min(120px, 19.083975vw) auto 0;
  padding: min(70.4px, 11.195932vw) min(52.8px, 8.396949vw) min(57.6px, 9.160308vw);
  border: 1px solid #A09A8A;
  background: #fff;
  text-align: center;
}
.hs-plan__tit {
  margin: 0;
  font-size: min(40px, 6.361325vw);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.hs-plan__sub {
  margin: min(16px, 2.54453vw) 0 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
}
.hs-plan__list {
  display: flex;
  justify-content: center;
  gap: min(17.6px, 2.798983vw);
  margin: min(28.8px, 4.580154vw) 0 0;
  padding: 0;
  list-style: none;
}
.hs-plan__list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(140.8px, 22.391864vw);
  color: #A09A8A;
  font-weight: 700;
}
.hs-plan__type {
  width: 100%;
  background: #A09A8A;
  color: #fff;
  font-size: min(24px, 3.816795vw);
  line-height: min(44.8px, 7.124684vw);
}
.hs-plan__num {
  margin-top: min(12.8px, 2.035624vw);
  font-size: min(64px, 10.17812vw);
  line-height: 1;
}
.hs-plan__unit {
  font-size: min(22.4px, 3.562342vw);
  letter-spacing: 0.15em;
}

.hs > :last-child {
  margin-bottom: min(128px, 20.35624vw);
}

@media only screen and (min-width: 768px) {
  .se-header-house .tit-wrap .tit-en {
    font-size: min(2.93vw, 40px);
  }
  .se-header-house .tit-wrap .tit-sub {
    margin-top: min(10px, 0.732064vw);
    font-size: min(20px, 1.464128vw);
  }
  .hs {
    padding-right: var(--band);
  }
  .hs-txt {
    font-size: min(16px, 1.1713024vw);
    line-height: 2;
  }
  .hs-en {
    gap: min(30px, 2.196192vw);
    margin-bottom: min(14px, 1.0248896vw);
  }
  .hs-en__en {
    font-size: min(49px, 3.5871136vw);
  }
  .hs-en__jp {
    font-size: min(18px, 1.3177152vw);
  }
  .hs-tit {
    margin-bottom: min(22px, 1.6105408vw);
    font-size: min(30px, 2.196192vw);
  }
  .hs-tit__sub {
    margin-top: min(16px, 1.1713024vw);
    font-size: min(18px, 1.3177152vw);
  }
  .hs-lead {
    padding: min(113px, 8.2723232vw) 0 min(80px, 5.856512vw);
    font-size: min(20px, 1.464128vw);
    line-height: 2;
  }
  .hs-feature {
    display: grid;
    grid-template-columns: 50% 1fr;
    align-items: center;
  }
  .hs-feature__pic img {
    aspect-ratio: 645/424;
  }
  .hs-feature__body {
    padding: 0 min(87px, 6.3689568vw) 0 min(94px, 6.8814016vw);
  }
  .hs-feature__body .hs-en__en {
    font-size: min(49px, 3.5871136vw);
  }
  .hs-feature__body .hs-txt {
    margin-top: min(26px, 1.9033664vw);
    line-height: 2;
  }
  .hs-md {
    grid-template-columns: 1fr 1fr;
    gap: min(27px, 1.9765728vw);
    width: min(1029px, 75.3293856vw);
    margin-top: min(107px, 7.8330848vw);
  }
  .hs-md__box {
    padding: min(52px, 3.8067328vw) min(66px, 4.8316224vw) min(40px, 2.928256vw) min(60px, 4.392384vw);
  }
  .hs-md__box .hs-en {
    margin-bottom: min(14px, 1.0248896vw);
  }
  .hs-md__box .hs-en__en {
    font-size: min(49px, 3.5871136vw);
  }
  .hs-spec {
    width: min(917px, 67.1302688vw);
    margin-top: min(112px, 8.1991168vw);
  }
  .hs-spec .hs-tit {
    margin-bottom: min(18px, 1.3177152vw);
  }
  .hs-spec__list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    column-gap: min(35px, 2.562224vw);
  }
  .hs-spec__list li {
    padding: min(6px, 0.4392384vw) 0 min(8px, 0.5856512vw);
    font-size: min(16px, 1.1713024vw);
  }
  .hs-spec__list--rows5 {
    grid-template-rows: repeat(5, auto);
  }
  .hs-structure {
    display: grid;
    grid-template-columns: 1fr min(441px, 32.2840224vw);
    gap: min(66px, 4.8316224vw);
    align-items: center;
    width: min(917px, 67.1302688vw);
    margin-top: min(99px, 7.2474336vw);
  }
  .hs-structure__body .hs-tit__sub {
    margin-bottom: min(30px, 2.196192vw);
  }
  .hs-structure .hs-txt {
    line-height: 1.75;
  }
  .hs-structure__pic {
    margin: 0;
  }
  .hs-structure--multi {
    display: block;
  }
  .hs-structure--multi .hs-structure__row {
    display: grid;
    grid-template-columns: 1fr min(441px, 32.2840224vw);
    gap: min(59px, 4.3191776vw);
    align-items: center;
  }
  .hs-structure--multi .hs-structure__row.is-rev {
    grid-template-columns: min(441px, 32.2840224vw) 1fr;
  }
  .hs-structure--multi .hs-structure__row.is-rev .hs-structure__pic {
    order: -1;
  }
  .hs-structure--multi .hs-structure__row + .hs-structure__row {
    margin-top: min(39px, 2.8550496vw);
  }
  .hs-structure--multi .hs-structure__body {
    margin-top: 0;
  }
  .hs-structure--multi .hs-structure__name {
    margin-bottom: min(18px, 1.3177152vw);
    font-size: min(20px, 1.464128vw);
  }
  .hs-structure--multi > .hs-tit {
    margin-bottom: min(10px, 0.732064vw);
  }
  .hs-plan {
    width: min(742px, 54.3191488vw);
    margin-top: min(143px, 10.4685152vw);
    padding: min(64px, 4.6852096vw) 0 min(64px, 4.6852096vw);
  }
  .hs-plan__tit {
    font-size: min(30px, 2.196192vw);
  }
  .hs-plan__sub {
    margin-top: min(14px, 1.0248896vw);
    font-size: min(15px, 1.098096vw);
  }
  .hs-plan__list {
    gap: min(50px, 3.66032vw);
    margin-top: min(26px, 1.9033664vw);
  }
  .hs-plan__list li {
    width: min(109px, 7.9794976vw);
  }
  .hs-plan__type {
    font-size: min(16px, 1.1713024vw);
    line-height: min(31px, 2.2693984vw);
  }
  .hs-plan__num {
    margin-top: min(14px, 1.0248896vw);
    font-size: min(46px, 3.3674944vw);
  }
  .hs-plan__unit {
    font-size: min(16px, 1.1713024vw);
  }
  .hs > :last-child {
    margin-bottom: min(120px, 8.784768vw);
  }
}
/* =========================================================
   MODELHOUSE（page-modelhouse.php）— XD: モデルハウス(393 / 1366)
   VIEW MORE は TOP の .tp-more を小さくして流用
   ========================================================= */
.mh-list {
  display: grid;
  gap: min(48px, 7.63359vw);
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding: min(105.6px, 16.793898vw) 0 min(134.4px, 21.374052vw);
  list-style: none;
}

.mh-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  color: #242424 !important;
  text-decoration: none;
}
.mh-card__pic {
  position: relative;
  overflow: hidden;
}
.mh-card__pic img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.mh-card:hover .mh-card__pic img {
  transform: scale(1.05);
}
.mh-card__badge {
  position: absolute;
  top: 0;
  left: min(25.6px, 4.071248vw);
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(124.8px, 19.847334vw);
  padding: min(12.8px, 2.035624vw) min(9.6px, 1.526718vw) min(14.4px, 2.290077vw);
  background: #B7A054;
  color: #fff;
  font-size: min(20.8px, 3.307889vw);
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
}
.mh-card__badge-main {
  width: 100%;
  margin-bottom: min(11.2px, 1.781171vw);
  padding-bottom: min(8px, 1.272265vw);
  border-bottom: 1px solid #fff;
  font-size: min(27.2px, 4.325701vw);
  line-height: 1.2;
}
.mh-card__body {
  padding: min(35.2px, 5.597966vw) min(36.8px, 5.852419vw) min(44.8px, 7.124684vw);
}
.mh-card__area {
  margin: 0;
  padding-bottom: min(19.2px, 3.053436vw);
  font-size: min(22.4px, 3.562342vw);
  font-weight: 500;
  letter-spacing: 0.05em;
}
.mh-card__area::after {
  content: "";
  display: block;
  width: min(41.6px, 6.615778vw);
  margin-top: min(19.2px, 3.053436vw);
  border-top: 1px solid #707070;
}
.mh-card__tit {
  margin: 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.05em;
}
.mh-card__more.tp-more {
  width: min(320px, 50.8906vw);
  height: min(73.6px, 11.704838vw);
  margin: min(25.6px, 4.071248vw) 0 0 min(-4.8px, -0.763359vw);
  padding: 0 min(48px, 7.63359vw) 0 min(57.6px, 9.160308vw);
  font-size: min(24px, 3.816795vw);
}
.mh-card:hover .mh-card__more {
  color: #000 !important;
}
.mh-card:hover .mh-card__more::before {
  transform: scaleX(1);
  transform-origin: left center;
}

@media only screen and (min-width: 768px) {
  .mh {
    padding-right: var(--band);
  }
  .mh-list {
    gap: min(40px, 2.928256vw);
    width: min(1027px, 75.1829728vw);
    padding: min(100px, 7.32064vw) 0 min(133px, 9.7364512vw);
  }
  .mh-card {
    flex-direction: row;
    align-items: center;
  }
  .mh-card__pic {
    flex: 0 0 min(410px, 30.014624vw);
    align-self: stretch;
    min-height: min(274px, 20.0585536vw);
  }
  .mh-card__pic img {
    position: absolute;
    inset: 0;
    height: 100%;
    aspect-ratio: auto;
  }
  .mh-card__badge {
    left: min(18px, 1.3177152vw);
    width: min(78px, 5.7100992vw);
    padding: min(8px, 0.5856512vw) min(6px, 0.4392384vw) min(9px, 0.6588576vw);
    font-size: min(13px, 0.9516832vw);
  }
  .mh-card__badge-main {
    margin-bottom: min(7px, 0.5124448vw);
    padding-bottom: min(5px, 0.366032vw);
    font-size: min(17px, 1.2445088vw);
  }
  .mh-card__body {
    padding: min(38px, 2.7818432vw) min(40px, 2.928256vw) min(38px, 2.7818432vw) min(82px, 6.0029248vw);
  }
  .mh-card__area {
    padding-bottom: min(14px, 1.0248896vw);
    font-size: min(16px, 1.1713024vw);
  }
  .mh-card__area::after {
    width: min(33px, 2.4158112vw);
    margin-top: min(14px, 1.0248896vw);
  }
  .mh-card__tit {
    font-size: min(24px, 1.7569536vw);
    letter-spacing: 0.1em;
  }
  .mh-card__more.tp-more {
    width: min(178px, 13.0307392vw);
    height: min(41px, 3.0014624vw);
    margin: min(26px, 1.9033664vw) 0 0;
    padding: 0 min(26px, 1.9033664vw) 0 min(32px, 2.3426048vw);
    font-size: min(13px, 0.9516832vw);
  }
}
/* =========================================================
   MODELHOUSE 詳細（page-modelhouse-detail.php）— XD: モデルハウス – 2(393) / モデルハウス 詳細(1366)
   見出し帯なし（ロゴのみ）。ギャラリー・MAP・一覧へ戻るはイベント詳細（.ed-*）を流用
   ========================================================= */
.mhd-logo {
  padding: min(31.2px, 4.9618335vw) 0 0 min(32px, 5.08906vw);
  line-height: 1;
}
.mhd-logo img {
  display: block;
  width: min(346.4px, 55.0890745vw);
  height: auto;
}
.mhd-logo a {
  display: inline-block;
}
.mhd-logo--band {
  background: #EAEAE8;
}

.mhd {
  color: #000;
}
.mhd .mhd-tit {
  margin: 0;
  font-size: min(36.8px, 5.852419vw);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.1em;
}

.mhd-hero {
  padding-top: min(102.4px, 16.284992vw);
}
.mhd-hero__head {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
}
.mhd-hero__area {
  margin: min(41.6px, 6.615778vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  letter-spacing: 0.05em;
}
.mhd-hero__area::after {
  content: "";
  display: block;
  width: min(48px, 7.63359vw);
  margin-top: min(19.2px, 3.053436vw);
  border-top: 1px solid #000;
}
.mhd-hero__tit {
  margin: min(22.4px, 3.562342vw) 0 0;
  font-size: min(41.6px, 6.615778vw);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.05em;
}
.mhd-hero__pic {
  margin: min(64px, 10.17812vw) 0 0 min(32px, 5.08906vw);
}
.mhd-hero__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 373/245;
  object-fit: cover;
}

.mhd-badge {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0 min(22.4px, 3.562342vw) 0 0;
  background: #B7A054;
  color: #fff;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 700;
  line-height: min(60.8px, 9.669214vw);
  letter-spacing: 0.05em;
}
.mhd-badge__main {
  position: relative;
  margin-right: min(25.6px, 4.071248vw);
  padding: 0 min(22.4px, 3.562342vw) 0 min(19.2px, 3.053436vw);
  font-size: min(25.6px, 4.071248vw);
}
.mhd-badge__main::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  height: min(38.4px, 6.106872vw);
  border-right: 1px solid #fff;
  transform: translateY(-50%);
}

.mhd-body {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding-bottom: min(128px, 20.35624vw);
}

.mhd-lead {
  padding-top: min(112px, 17.81171vw);
}
.mhd-lead__tit {
  margin: 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  letter-spacing: 0.1em;
}
.mhd-lead p {
  margin: min(38.4px, 6.106872vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}

.mhd-sec {
  padding-top: min(102.4px, 16.284992vw);
}

.mhd-spec {
  margin: min(28.8px, 4.580154vw) 0 0;
  font-size: min(24px, 3.816795vw);
  line-height: 1.7;
  letter-spacing: 0.05em;
}
.mhd-spec > div {
  padding: min(25.6px, 4.071248vw) 0;
}
.mhd-spec > div + div {
  border-top: 1px solid #D5D5D5;
}
.mhd-spec dt {
  font-weight: 700;
}
.mhd-spec dd {
  margin: 0;
  font-weight: 500;
}

.ed-gallery.mhd-gallery {
  margin-top: min(38.4px, 6.106872vw);
}
.ed-gallery.mhd-gallery .ed-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: min(4.8px, 0.763359vw);
  margin: min(9.6px, 1.526718vw) 0 0;
  padding: 0;
  overflow: visible;
}
.ed-gallery.mhd-gallery .ed-gallery__thumbs img {
  aspect-ratio: 3/2;
}

.mhd-point__pic {
  margin-top: min(38.4px, 6.106872vw);
}
.mhd-point__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
.mhd-point__pic + .mhd-point__pic {
  margin-top: min(16px, 2.54453vw);
}
.mhd-point__txt {
  margin: min(28.8px, 4.580154vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: 0.05em;
}

.mhd-plan {
  margin-top: min(38.4px, 6.106872vw);
}
.mhd-plan img {
  display: block;
  width: 100%;
  height: auto;
}

.mhd-movie {
  display: block;
  margin-top: min(32px, 5.08906vw);
}
.mhd-movie img {
  display: block;
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  transition: opacity 0.3s;
}
.mhd-movie:hover img {
  opacity: 0.85;
}
.mhd-movie__sub {
  margin: min(9.6px, 1.526718vw) 0 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
}

.mhd-reserve {
  padding: min(102.4px, 16.284992vw) 0 min(112px, 17.81171vw);
  background: #fff;
}
.mhd-reserve__tit.mhd-tit {
  text-align: center;
}
.mhd-reserve__embed {
  width: min(600px, 95.419875vw);
  margin: min(44.8px, 7.124684vw) auto 0;
}
.mhd-reserve__embed img {
  display: block;
  width: 100%;
  height: auto;
}
.mhd-reserve__txt {
  width: min(564.8px, 89.821909vw);
  margin: min(57.6px, 9.160308vw) auto 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}

.mhd-access {
  padding: min(102.4px, 16.284992vw) 0 min(16px, 2.54453vw);
  background: #F7F7F7;
}
.mhd-access .ed-map.mhd-map {
  width: min(500.8px, 79.643789vw);
  padding: 0;
}
.mhd-access .ed-map__name {
  margin-top: min(32px, 5.08906vw);
  letter-spacing: 0.05em;
}
.mhd-access .ed-map__frame {
  margin-top: min(35.2px, 5.597966vw);
}
.mhd-access .ed-map__frame iframe {
  height: min(392px, 62.340985vw);
}
.mhd-access .ed-back {
  margin-top: min(64px, 10.17812vw);
  font-weight: 400;
}

@media only screen and (min-width: 768px) {
  .mhd-logo {
    padding: min(49px, 3.5871136vw) 0 0 min(67px, 4.9048288vw);
  }
  .mhd-logo img {
    width: min(138.45px, 10.13542608vw);
  }
  .mhd {
    padding-right: var(--band);
  }
  .mhd .mhd-tit {
    font-size: min(28px, 2.0497792vw);
  }
  .mhd-hero {
    padding-top: min(104px, 7.6134656vw);
  }
  .mhd-hero__head {
    width: auto;
    margin: 0 0 0 min(124px, 9.0775936vw);
  }
  .mhd-hero__area {
    margin-top: min(36px, 2.6354304vw);
    font-size: min(20px, 1.464128vw);
  }
  .mhd-hero__area::after {
    width: min(40px, 2.928256vw);
    margin-top: min(12px, 0.8784768vw);
  }
  .mhd-hero__tit {
    margin-top: min(18px, 1.3177152vw);
    font-size: min(35px, 2.562224vw);
  }
  .mhd-hero__pic {
    margin: min(110px, 8.052704vw) 0 0 min(124px, 9.0775936vw);
  }
  .mhd-hero__pic img {
    aspect-ratio: 1168/590;
  }
  .mhd-badge {
    padding-right: min(18px, 1.3177152vw);
    font-size: min(15px, 1.098096vw);
    line-height: min(38px, 2.7818432vw);
  }
  .mhd-badge__main {
    margin-right: min(16px, 1.1713024vw);
    padding: 0 min(16px, 1.1713024vw) 0 min(18px, 1.3177152vw);
    font-size: min(18px, 1.3177152vw);
  }
  .mhd-badge__main::after {
    height: min(24px, 1.7569536vw);
  }
  .mhd-body {
    width: min(800px, 58.56512vw);
    margin: 0 auto;
    padding-bottom: min(120px, 8.784768vw);
  }
  .mhd-lead {
    padding-top: min(110px, 8.052704vw);
  }
  .mhd-lead__tit {
    font-size: min(20px, 1.464128vw);
  }
  .mhd-lead p {
    margin-top: min(32px, 2.3426048vw);
    font-size: min(16px, 1.1713024vw);
  }
  .mhd-sec {
    padding-top: min(110px, 8.052704vw);
  }
  .mhd-point__pic {
    margin-top: min(36px, 2.6354304vw);
  }
  .mhd-point__pic + .mhd-point__pic {
    margin-top: min(20px, 1.464128vw);
  }
  .mhd-point__txt {
    margin-top: min(22px, 1.6105408vw);
    font-size: min(16px, 1.1713024vw);
    line-height: 2;
  }
  .mhd-spec {
    margin-top: min(16px, 1.1713024vw);
    font-size: min(16px, 1.1713024vw);
  }
  .mhd-spec > div {
    display: flex;
    padding: min(20px, 1.464128vw) 0;
  }
  .mhd-spec dt {
    flex: 0 0 min(139px, 10.1756896vw);
  }
  .ed-gallery.mhd-gallery {
    margin-top: min(36px, 2.6354304vw);
  }
  .ed-gallery.mhd-gallery .ed-gallery__thumbs {
    grid-template-columns: repeat(6, 1fr);
    gap: min(5px, 0.366032vw);
    margin-top: min(9px, 0.6588576vw);
  }
  .mhd-plan {
    margin-top: min(36px, 2.6354304vw);
  }
  .mhd-movie {
    margin-top: min(24px, 1.7569536vw);
  }
  .mhd-movie__sub {
    margin-top: min(8px, 0.5856512vw);
    font-size: min(20px, 1.464128vw);
  }
  .mhd-reserve {
    margin-right: calc(var(--band) * -1);
    padding: min(110px, 8.052704vw) var(--band) min(110px, 8.052704vw) 0;
  }
  .mhd-reserve__embed {
    width: min(706px, 51.6837184vw);
    margin-top: min(36px, 2.6354304vw);
  }
  .mhd-reserve__txt {
    width: min(706px, 51.6837184vw);
    margin-top: min(48px, 3.5139072vw);
    font-size: min(15px, 1.098096vw);
  }
  .mhd-access {
    margin-right: calc(var(--band) * -1);
    padding: min(110px, 8.052704vw) var(--band) min(10px, 0.732064vw) 0;
  }
  .mhd-access .ed-map.mhd-map {
    grid-template-columns: 1fr min(660px, 48.316224vw);
    column-gap: min(60px, 4.392384vw);
    width: min(1200px, 87.84768vw);
    margin: 0 auto;
  }
  .mhd-access .ed-map__tit, .mhd-access .mhd-tit {
    font-size: min(28px, 2.0497792vw);
  }
  .mhd-access .ed-map__name {
    margin-top: min(40px, 2.928256vw);
  }
  .mhd-access .ed-map__frame iframe {
    height: min(325px, 23.79208vw);
  }
  .mhd-access .ed-back {
    margin-top: min(110px, 8.052704vw);
    font-weight: 400;
  }
}
/* =========================================================
   下層ページ見出しのロゴを TOP（.tp-mv__logo）と同じ位置・サイズにそろえる
   SP：上19.5 / 左20 / 幅216.5（2026-10-20 横組みの新ロゴ logo_sp.svg）　PC：上49 / 左67 / 幅138.45（2026-10-20 の新ロゴ logo.svg）
   ========================================================= */
.se-header-staff {
  position: relative;
}
.se-header-staff .tit-wrap {
  padding-top: calc(min(31.2px, 4.9618335vw) + min(43.52px, 6.9211216vw) + 8vw);
}
.se-header-staff .tit-wrap .tit-logo {
  position: absolute;
  top: min(31.2px, 4.9618335vw);
  left: min(32px, 5.08906vw);
  margin: 0;
  line-height: 1;
}
.se-header-staff .tit-wrap .tit-logo img {
  display: block;
  width: min(346.4px, 55.0890745vw);
  max-width: none;
}

@media only screen and (min-width: 768px) {
  .se-header-staff .tit-wrap {
    padding-top: 0;
  }
  .se-header-staff .tit-wrap .tit-logo {
    top: min(49px, 3.5871136vw);
    left: 0;
    right: 0;
    text-align: center;
  }
  .se-header-staff .tit-wrap .tit-logo img {
    display: inline-block;
    width: min(138.45px, 10.13542608vw);
    max-width: none;
  }
}
@media only screen and (min-width: 768px) {
  .hs--liquid .hs-feature {
    grid-template-columns: 47.218128vw 1fr;
  }
}
/* =========================================================
   フルオーダー住宅 / CRES CASA（page-fullorder.php / page-casa.php）
   セレクト住宅（.hs-*）との差分だけ
   ========================================================= */
.hs--full .hs-md__box--merit {
  background: #605D51;
}

.hs--casa .hs-md__box--merit {
  background: #B7A054;
}

.hs-spec__list small {
  display: block;
  font-size: min(20.8px, 3.307889vw);
}

.hs-official {
  margin: min(96px, 15.26718vw) 0 0;
  text-align: center;
}
.hs-official__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: min(35.2px, 5.597966vw);
  width: min(480px, 76.3359vw);
  height: min(110.4px, 17.557257vw);
  border-radius: 999px;
  background: #B7A054;
  color: #fff !important;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-decoration: none;
  transition: opacity 0.3s;
}
.hs-official__btn:hover {
  opacity: 0.8;
}
.hs-official__btn .ed-arrow {
  width: 24px;
  transition: transform 0.3s;
}
.hs-official__btn:hover .ed-arrow {
  transform: translateX(5px);
}

@media only screen and (min-width: 768px) {
  .hs-spec__list small {
    display: inline;
    margin-left: 1.2em;
    font-size: min(13px, 0.9516832vw);
  }
  .hs-official {
    margin-top: min(130px, 9.516832vw);
  }
  .hs-official__btn {
    gap: min(28px, 2.0497792vw);
    width: min(349px, 25.5490336vw);
    height: min(69px, 5.0512416vw);
    font-size: min(16px, 1.1713024vw);
  }
}
/* =========================================================
   WORKS 一覧（page-works.php）— XD: sp_施工事例(393) / pc_施工事例(1366)
   並び・ページ送りはイベント一覧（.evl-*）を流用
   ========================================================= */
.evl-list.wkl-list {
  gap: min(80px, 12.72265vw);
  width: min(532.8px, 84.732849vw);
}

.wk-card__link {
  display: block;
  color: #292929 !important;
  text-decoration: none;
}
.wk-card__pic {
  position: relative;
  overflow: hidden;
}
.wk-card__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 351/256;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.wk-card__link:hover .wk-card__pic img {
  transform: scale(1.05);
}
.wk-card__cat {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  min-width: 86px;
  padding: 0 1.3em;
  font-size: 13px;
  font-weight: 700;
  line-height: 29px;
  text-align: center;
  color: #fff;
  background: #a09a8a;
  box-shadow: 5px 0 0 #f8f8f8, 0 5px 0 #f8f8f8, 5px 5px 0 #f8f8f8;
}
.wk-card__cat.is-full {
  background: #605d51;
}
.wk-card__cat.is-casa {
  background: #b7a054;
}
.wk-card__body {
  display: flex;
  align-items: flex-start;
  gap: min(22.4px, 3.562342vw);
  margin-top: min(22.4px, 3.562342vw);
}
.wk-card__ext {
  flex: 0 0 min(123.2px, 19.592881vw);
}
.wk-card__ext img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.wk-card__txt {
  flex: 1 1 auto;
  min-width: 0;
}
.wk-card__tit {
  margin: 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 1.42;
  letter-spacing: 0.03em;
}
.wk-card .tp-tags {
  margin-top: min(12.8px, 2.035624vw);
}

@media only screen and (min-width: 768px) {
  .evl-list.wkl-list {
    gap: min(72px, 5.2708608vw) min(33px, 2.4158112vw);
    width: min(1119px, 86.6%);
  }
  .wk-card__body {
    gap: min(15px, 1.098096vw);
    margin-top: min(18px, 1.3177152vw);
  }
  .wk-card__ext {
    flex-basis: min(90px, 6.588576vw);
  }
  .wk-card__tit {
    font-size: min(18px, 1.3177152vw);
  }
  .wk-card .tp-tags {
    margin-top: min(10px, 0.732064vw);
    font-size: min(13px, 0.9516832vw);
  }
}
/* =========================================================
   WORKS 詳細（page-works-detail.php）— XD: sp_施工事例　詳細(393) / 施工事例_詳細(1366)
   ギャラリー・一覧に戻るはイベント詳細、関連カードは一覧（.wk-card）を流用
   ========================================================= */
.wkd-main {
  margin-top: 0;
  padding: min(112px, 17.81171vw) 0 min(102.4px, 16.284992vw);
  background: #EAEAE8;
}
.wkd-main__inner {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
}
.wkd-main__tit {
  margin: 0;
  font-size: min(35.2px, 5.597966vw);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #000;
}
.wkd-main .tp-tags {
  margin-top: min(16px, 2.54453vw);
  font-size: min(22.4px, 3.562342vw);
}

.ed-gallery.wkd-gallery {
  margin-top: min(57.6px, 9.160308vw);
}
.ed-gallery.wkd-gallery .ed-gallery__main img {
  aspect-ratio: 353/258;
}
.ed-gallery.wkd-gallery .ed-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: min(6.4px, 1.017812vw);
  margin: min(12.8px, 2.035624vw) 0 0;
  padding: 0;
  overflow: visible;
}

.wkd-txt {
  width: min(532.8px, 84.732849vw);
  margin: min(89.6px, 14.249368vw) auto 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.1em;
  color: #454545;
  word-break: break-all;
}
.wkd-txt p {
  margin: 0;
}
.wkd-txt p + p {
  margin-top: 1.35em;
}

.ed-back.wkd-back {
  gap: min(22.4px, 3.562342vw);
  margin-top: min(89.6px, 14.249368vw);
  padding-bottom: 0;
  font-weight: 500;
}
.ed-back.wkd-back .ed-back__circle {
  width: min(57.6px, 9.160308vw);
  height: min(57.6px, 9.160308vw);
}
.ed-back.wkd-back .ed-back__circle::before {
  left: 50%;
  width: min(19.2px, 3.053436vw);
  height: 1px;
  border: 0;
  background: #fff;
  transform: translate(-50%, -50%);
}
.ed-back.wkd-back .ed-back__circle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translate(calc(min(9.6px, 1.526718vw) - 100%), -50%) rotate(45deg);
}

.wkd-points {
  width: min(532.8px, 84.732849vw);
  margin: min(128px, 20.35624vw) auto 0;
  color: #000;
}
.wkd-points__head {
  display: flex;
  align-items: baseline;
  gap: min(19.2px, 3.053436vw);
  margin: 0;
}
.wkd-points__en {
  font-size: min(64px, 10.17812vw);
  font-weight: 400;
  line-height: 1;
}
.wkd-points__jp {
  font-size: min(25.6px, 4.071248vw);
  font-weight: 700;
}
.wkd-points__list {
  display: grid;
  gap: min(76.8px, 12.213744vw);
  margin: min(48px, 7.63359vw) 0 0;
  padding: 0;
  list-style: none;
}

.wkd-point__pic img {
  display: block;
  width: 100%;
  aspect-ratio: 360/241;
  object-fit: cover;
}
.wkd-point__body {
  margin-top: min(28.8px, 4.580154vw);
}
.wkd-point__tit {
  margin: 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  line-height: 1.6666666667;
}
.wkd-point__txt {
  margin: min(16px, 2.54453vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.5;
}

.wkd-voice {
  display: grid;
  gap: 0;
  width: min(532.8px, 84.732849vw);
  margin: min(128px, 20.35624vw) auto 0;
  padding: min(70.4px, 11.195932vw) min(38.4px, 6.106872vw);
  background: #fff;
  color: #000;
}
.wkd-voice__head {
  text-align: center;
}
.wkd-voice__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(80px, 12.72265vw);
  height: min(80px, 12.72265vw);
}
.wkd-voice__icon.is-user {
  border-radius: 50%;
  background: #000;
  color: #fff;
  font-size: min(36.8px, 5.852419vw);
}
.wkd-voice__tit {
  margin: min(16px, 2.54453vw) 0 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
}
.wkd-voice__txt {
  margin: min(25.6px, 4.071248vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 1.6;
}

.wkd-related {
  padding: min(128px, 20.35624vw) 0 min(144px, 22.90077vw);
}
.wkd-related__tit {
  width: min(532.8px, 84.732849vw);
  margin: 0 auto;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #000;
}
.wkd-related .evl-list.wkd-related__list {
  padding-top: min(32px, 5.08906vw);
}

@media only screen and (min-width: 768px) {
  .wkd .wkd-main {
    margin: 0 calc(var(--band) * -1) 0 0;
    padding: min(100px, 7.32064vw) var(--band) min(84px, 6.1493376vw) 0;
  }
  .wkd .wkd-main__inner {
    width: min(895px, 65.519728vw);
  }
  .wkd .wkd-main__tit {
    font-size: min(30px, 2.196192vw);
  }
  .wkd .wkd-main .tp-tags {
    margin-top: min(12px, 0.8784768vw);
    font-size: min(13px, 0.9516832vw);
  }
  .ed-gallery.wkd-gallery {
    margin-top: min(30px, 2.196192vw);
  }
  .ed-gallery.wkd-gallery .ed-gallery__main img {
    aspect-ratio: 895/546;
  }
  .ed-gallery.wkd-gallery .ed-gallery__thumbs {
    grid-template-columns: repeat(10, 1fr);
    gap: min(4px, 0.2928256vw);
    margin-top: min(6px, 0.4392384vw);
  }
  .wkd-txt {
    width: min(895px, 65.519728vw);
    margin-top: min(84px, 6.1493376vw);
    font-size: min(16px, 1.1713024vw);
    line-height: 2;
  }
  .ed-back.wkd-back {
    gap: min(22px, 1.6105408vw);
    margin-top: min(120px, 8.784768vw);
    font-size: min(20px, 1.464128vw);
  }
  .ed-back.wkd-back .ed-back__circle {
    width: min(48px, 3.5139072vw);
    height: min(48px, 3.5139072vw);
  }
  .ed-back.wkd-back .ed-back__circle::before {
    width: min(16px, 1.1713024vw);
  }
  .ed-back.wkd-back .ed-back__circle::after {
    width: 6px;
    height: 6px;
    transform: translate(calc(min(8px, 0.5856512vw) - 100%), -50%) rotate(45deg);
  }
  .wkd-points {
    width: min(897px, 65.6661408vw);
    margin-top: min(150px, 10.98096vw);
  }
  .wkd-points__head {
    gap: min(14px, 1.0248896vw);
  }
  .wkd-points__en {
    font-size: min(49px, 3.5871136vw);
  }
  .wkd-points__jp {
    font-size: min(18px, 1.3177152vw);
  }
  .wkd-points__list {
    gap: min(50px, 3.66032vw);
    margin-top: min(40px, 2.928256vw);
  }
  .wkd-point {
    display: grid;
    grid-template-columns: min(360px, 26.354304vw) 1fr;
    align-items: center;
    gap: min(36px, 2.6354304vw);
  }
  .wkd-point:nth-child(even) {
    grid-template-columns: 1fr min(360px, 26.354304vw);
  }
  .wkd-point:nth-child(even) .wkd-point__pic {
    order: 2;
  }
  .wkd-point__body {
    margin-top: 0;
  }
  .wkd-point__tit {
    font-size: min(18px, 1.3177152vw);
  }
  .wkd-point__txt {
    margin-top: min(12px, 0.8784768vw);
    font-size: min(16px, 1.1713024vw);
  }
  .wkd-voice .wkd-voice__row + .wkd-voice__row {
    position: relative;
    margin-top: min(40px, 2.928256vw);
    padding-top: min(40px, 2.928256vw);
    border-top: 0;
  }
  .wkd-voice .wkd-voice__row + .wkd-voice__row::before {
    content: "";
    position: absolute;
    top: 0;
    left: min(50px, 3.66032vw);
    right: calc(min(50px, 3.66032vw) - min(76px, 5.5636864vw));
    border-top: 1px dashed #bdbdbd;
  }
  .wkd-voice {
    width: min(901px, 65.9589664vw);
    margin-top: min(123px, 9.0043872vw);
    padding: min(64px, 4.6852096vw) min(76px, 5.5636864vw) min(64px, 4.6852096vw) 0;
  }
  .wkd-voice__row {
    display: grid;
    grid-template-columns: min(252px, 18.4480128vw) 1fr;
    align-items: center;
  }
  .wkd-voice__icon {
    width: min(60px, 4.392384vw);
    height: min(60px, 4.392384vw);
  }
  .wkd-voice__icon.is-user {
    font-size: min(28px, 2.0497792vw);
  }
  .wkd-voice__tit {
    margin-top: min(12px, 0.8784768vw);
    font-size: min(20px, 1.464128vw);
  }
  .wkd-voice__txt {
    margin-top: 0;
    font-size: min(16px, 1.1713024vw);
  }
  .wkd-related {
    padding: min(130px, 9.516832vw) 0 min(120px, 8.784768vw);
  }
  .wkd-related__tit {
    width: min(1119px, 86.6%);
    font-size: min(25px, 1.83016vw);
  }
  .wkd-related .evl-list.wkd-related__list {
    padding-top: min(28px, 2.0497792vw);
  }
}
.lu .tp-lineup.lu-cardlist {
  background: none;
  padding: min(64px, 10.17812vw) 0 min(112px, 17.81171vw);
}

@media only screen and (max-width: 767px) {
  .tp-scroller.is-stack {
    overflow: visible;
  }
  .tp-scroller.is-stack .tp-cards {
    flex-direction: column;
    gap: min(48px, 7.63359vw);
    width: auto;
  }
  .tp-scroller.is-stack .tp-cards > li {
    flex: none;
  }
}
@media only screen and (min-width: 768px) {
  .lu .tp-lineup.lu-cardlist {
    padding: min(40px, 2.928256vw) 0 min(110px, 8.052704vw);
  }
}
.tp-events .tp-event__body > :has(+ .tp-event__btn) {
  margin-bottom: min(57.6px, 9.160308vw);
}

@media only screen and (min-width: 768px) {
  .tp-events .tp-event__body > :has(+ .tp-event__btn) {
    margin-bottom: min(36px, 2.6354304vw);
  }
}
.tp-mv__slides {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tp-mv__slides li {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.2s ease, visibility 0s 1.2s;
}
.tp-mv__slides li.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 1.2s ease;
}
.tp-mv__slides picture {
  display: block;
  height: 100%;
}

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

.tp-pop__pic img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.mhd .mhd-content {
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}
.mhd .mhd-content > :first-child {
  margin-top: 0;
}
.mhd .mhd-content p {
  margin: min(32px, 5.08906vw) 0 0;
  font-size: inherit !important;
}
.mhd .mhd-content h2 {
  margin: min(102.4px, 16.284992vw) 0 0;
  font-size: min(36.8px, 5.852419vw);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.1em;
}
.mhd .mhd-content h2 strong {
  font-weight: inherit;
}
.mhd .mhd-content h3 {
  margin: min(48px, 7.63359vw) 0 0;
  font-size: min(27.2px, 4.325701vw) !important;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-align: left !important;
}
.mhd .mhd-content h2 + *, .mhd .mhd-content h3 + * {
  margin-top: min(32px, 5.08906vw);
}
.mhd .mhd-content figure {
  margin: min(38.4px, 6.106872vw) 0 0;
}
.mhd .mhd-content img {
  display: block;
  width: 100%;
  height: auto;
}
.mhd .mhd-content p img {
  margin: 0;
}
.mhd .mhd-content .wp-block-spacer {
  display: none;
}
.mhd .mhd-content .wp-block-embed__wrapper iframe {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
}
.mhd .mhd-content a {
  word-break: break-all;
}

.mhd-lead.mhd-content h3:first-child {
  margin-top: 0;
}

.mhd .mhd-content--body > h2:first-child {
  margin-top: min(102.4px, 16.284992vw);
}

.mhd-reserve .mhd-content--reserve {
  width: min(564.8px, 89.821909vw);
  margin: min(44.8px, 7.124684vw) auto 0;
  font-size: min(24px, 3.816795vw);
}
.mhd-reserve .mhd-content--reserve iframe {
  display: block;
  max-width: 100%;
  margin: 0 auto;
}

@media only screen and (min-width: 768px) {
  .mhd .mhd-content {
    font-size: min(16px, 1.1713024vw);
  }
  .mhd .mhd-content p {
    margin-top: min(24px, 1.7569536vw);
  }
  .mhd .mhd-content h2 {
    margin-top: min(110px, 8.052704vw);
    font-size: min(28px, 2.0497792vw);
  }
  .mhd .mhd-content h3 {
    margin-top: min(40px, 2.928256vw);
    font-size: min(20px, 1.464128vw) !important;
  }
  .mhd .mhd-content h2 + *, .mhd .mhd-content h3 + * {
    margin-top: min(32px, 2.3426048vw);
  }
  .mhd .mhd-content figure {
    margin-top: min(36px, 2.6354304vw);
  }
  .mhd .mhd-content--body > h2:first-child {
    margin-top: min(110px, 8.052704vw);
  }
  .mhd-reserve .mhd-content--reserve {
    width: min(706px, 51.6837184vw);
    margin-top: min(36px, 2.6354304vw);
    font-size: min(15px, 1.098096vw);
  }
}
@media only screen and (max-width: 767px) {
  .ed-info__tit + .ed-info__dl {
    margin-top: min(32px, 5.08906vw);
    padding-top: min(41.6px, 6.615778vw);
    border-top: 2px solid #848484;
  }
  .ed-info__dl {
    padding-bottom: min(41.6px, 6.615778vw);
    border-bottom: 2px solid #848484;
  }
  .ed-info__dl > div:not(:first-child) dd {
    font-size: min(27.2px, 4.325701vw);
  }
}
@media only screen and (min-width: 768px) {
  .ed-info__tit + .ed-info__dl {
    margin-top: min(20px, 1.464128vw);
    padding-top: min(36px, 2.6354304vw);
    border-top: 1px solid #848484;
  }
  .ed-info__dl > div:first-child {
    align-items: flex-start;
  }
  .ed-info__dl > div:first-child dt {
    margin-top: min(5px, 0.366032vw);
  }
}
.ed-form__end {
  margin: 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  text-align: center;
}

@media only screen and (min-width: 768px) {
  .ed-form__end {
    font-size: min(20px, 1.464128vw);
  }
}
.wkd-voice__row + .wkd-voice__row {
  margin-top: min(35.2px, 5.597966vw);
  padding-top: min(35.2px, 5.597966vw);
  border-top: 1px dashed #bdbdbd;
}

.cl-cats.wkl-cats {
  grid-template-columns: repeat(2, 1fr);
}

.wkd-txt > * + * {
  margin-top: 1.35em;
}
.wkd-txt h2, .wkd-txt h3 {
  margin: 2em 0 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #292929;
}
.wkd-txt h2 + p, .wkd-txt h3 + p {
  margin-top: 0.6em;
}
.wkd-txt figure {
  margin-left: 0;
  margin-right: 0;
}
.wkd-txt figure.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wkd-txt img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.wkd-txt p:empty {
  display: none;
}

.wkd-point.is-noimage .wkd-point__body {
  margin-top: 0;
}

.wkd-voice__txt p {
  margin: 0;
}
.wkd-voice__txt p + p {
  margin-top: 1em;
}

.wkd-voice__lead {
  font-weight: 700;
}

.wkd-store {
  width: min(532.8px, 84.732849vw);
  margin: min(96px, 15.26718vw) auto 0;
}
.wkd-store__tit {
  margin: 0;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #d1d1d1;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
}
.wkd-store__list {
  margin: 0;
  font-size: min(24px, 3.816795vw);
  line-height: 1.7;
}
.wkd-store__list > div {
  display: grid;
  grid-template-columns: min(128px, 20.35624vw) 1fr;
  gap: min(16px, 2.54453vw);
  padding: min(19.2px, 3.053436vw) 0;
  border-bottom: 1px solid #e5e5e5;
}
.wkd-store__list dt {
  font-weight: 700;
}
.wkd-store__list dd {
  margin: 0;
  word-break: break-all;
}

@media only screen and (min-width: 768px) {
  .cl-cats.wkl-cats {
    grid-template-columns: repeat(4, min(220px, 16.105408vw));
    justify-content: center;
  }
  .wkd-txt h2, .wkd-txt h3 {
    font-size: min(20px, 1.464128vw);
  }
  .wkd-txt img {
    max-width: min(594px, 43.4846016vw);
  }
  .wkd-point.is-noimage {
    grid-template-columns: 1fr;
  }
  .wkd-store {
    width: min(895px, 65.519728vw);
    margin-top: min(100px, 7.32064vw);
  }
  .wkd-store__tit {
    font-size: min(20px, 1.464128vw);
  }
  .wkd-store__list {
    font-size: min(15px, 1.098096vw);
  }
  .wkd-store__list > div {
    grid-template-columns: min(140px, 10.248896vw) 1fr;
    gap: min(20px, 1.464128vw);
    padding: min(16px, 1.1713024vw) 0;
  }
}
@media only screen and (min-width: 768px) {
  .ft-nav {
    gap: 40px;
  }
  .ft-nav ul,
  .ft-nav ul:first-child,
  .ft-nav ul:last-child {
    flex: 1 1 0;
    min-width: 0;
    column-gap: 40px;
  }
}
.contact-page {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
  padding: min(64px, 10.17812vw) 0 min(160px, 25.4453vw);
  color: #000;
}
.contact-page__lead {
  margin: 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.05em;
}
.contact-page__lead a {
  color: inherit;
}
.contact-page__notice {
  margin: min(32px, 5.08906vw) 0 min(64px, 10.17812vw);
  padding: min(22.4px, 3.562342vw) min(25.6px, 4.071248vw);
  border: 1px solid #E60000;
  color: #E60000;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 700;
  line-height: 1.7;
}

.contact-thanks {
  text-align: center;
}
.contact-thanks__tit {
  margin: 0 0 min(38.4px, 6.106872vw);
  font-size: min(32px, 5.08906vw);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}
.contact-thanks__note {
  margin: min(38.4px, 6.106872vw) 0 0;
  font-size: min(22.4px, 3.562342vw);
  line-height: 1.9;
}
.contact-thanks__note a {
  color: inherit;
}
.contact-thanks__back {
  margin: min(76.8px, 12.213744vw) 0 0;
}
.contact-thanks__back a {
  display: inline-block;
  padding: min(22.4px, 3.562342vw) min(64px, 10.17812vw);
  border: 1px solid #292929;
  color: #292929;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 500;
  text-decoration: none;
  transition: background 0.3s, color 0.3s;
}
.contact-thanks__back a:hover {
  background: #292929;
  color: #fff;
}

@media only screen and (min-width: 768px) {
  .contact-page {
    width: min(790px, 57.833056vw);
    padding: min(64px, 4.6852096vw) 0 min(140px, 10.248896vw);
  }
  .contact-page__lead {
    font-size: min(16px, 1.1713024vw);
    text-align: center;
  }
  .contact-page__notice {
    margin: min(30px, 2.196192vw) 0 min(60px, 4.392384vw);
    padding: min(16px, 1.1713024vw) min(24px, 1.7569536vw);
    font-size: min(15px, 1.098096vw);
    text-align: center;
  }
  .contact-thanks__tit {
    margin-bottom: min(30px, 2.196192vw);
    font-size: min(24px, 1.7569536vw);
  }
  .contact-thanks__note {
    margin-top: min(30px, 2.196192vw);
    font-size: min(15px, 1.098096vw);
  }
  .contact-thanks__back {
    margin-top: min(60px, 4.392384vw);
  }
  .contact-thanks__back a {
    padding: min(16px, 1.1713024vw) min(56px, 4.0995584vw);
    font-size: min(15px, 1.098096vw);
  }
}
/* =========================================================
   フォーム（Snow Monkey Forms）の見た目。外側に .cres-smf を付けた所で効く（お問い合わせ page-contact.php）
   2026-10-20：イベント予約のシートは予約サイト（ie-miru）へのリンクに変えたので撤去し、見た目だけ共通化
   ========================================================= */
.cres-smf .snow-monkey-form {
  color: #000;
}
.cres-smf .snow-monkey-form .smf-form {
  display: grid;
  gap: min(28.8px, 4.580154vw);
}
.cres-smf .snow-monkey-form .smf-item {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
}
.cres-smf .snow-monkey-form .smf-item__col--label {
  padding: 0;
  margin-bottom: min(12.8px, 2.035624vw);
}
.cres-smf .snow-monkey-form .smf-item__label {
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  letter-spacing: 0.1em;
}
.cres-smf .snow-monkey-form .is-required .smf-item__label__text::before {
  content: "*";
  color: #E60000;
}
.cres-smf .snow-monkey-form .smf-item__col--controls {
  padding: 0;
}
.cres-smf .snow-monkey-form .smf-text-control__control {
  width: 100%;
  height: min(76.8px, 12.213744vw);
  padding: 0 min(22.4px, 3.562342vw);
  border: 1px solid transparent;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  font-size: 16px;
}
.cres-smf .snow-monkey-form .smf-text-control__control:focus {
  outline: none;
  border-color: #000;
  background: #fff;
}
.cres-smf .snow-monkey-form .smf-textarea-control__control {
  width: 100%;
  padding: min(19.2px, 3.053436vw) min(22.4px, 3.562342vw);
  border: 1px solid transparent;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  font-size: 16px;
  line-height: 1.7;
}
.cres-smf .snow-monkey-form .smf-textarea-control__control:focus {
  outline: none;
  border-color: #000;
  background: #fff;
}
.cres-smf .snow-monkey-form .smf-select-control {
  width: auto;
}
.cres-smf .snow-monkey-form .smf-select-control__control {
  height: min(76.8px, 12.213744vw);
  padding: 0 min(64px, 10.17812vw) 0 min(22.4px, 3.562342vw);
  border: 1px solid transparent;
  border-radius: 0;
  background-color: #fff;
  box-shadow: none;
  font-size: 16px;
}
.cres-smf .snow-monkey-form .smf-select-control__control:focus {
  outline: none;
  border-color: #000;
}
.cres-smf .snow-monkey-form .smf-item__controls > * + * {
  margin-top: min(12.8px, 2.035624vw);
}
.cres-smf .snow-monkey-form .smf-radio-buttons-control__control,
.cres-smf .snow-monkey-form .smf-checkboxes-control__control {
  gap: min(12.8px, 2.035624vw) min(32px, 5.08906vw);
}
.cres-smf .snow-monkey-form .smf-radio-button-control__label,
.cres-smf .snow-monkey-form .smf-checkbox-control__label {
  font-size: min(24px, 3.816795vw);
}
.cres-smf .snow-monkey-form .cres-form-privacy {
  height: min(416px, 66.15778vw);
  margin-top: min(35.2px, 5.597966vw);
  padding: min(22.4px, 3.562342vw) min(22.4px, 3.562342vw);
  overflow-y: auto;
  border: 1px solid #999;
  font-size: min(20.8px, 3.307889vw);
  line-height: 1.85;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-block + .pv-block {
  margin-top: 1.5em;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-tit {
  margin: 0;
  font-size: 1.1em;
  font-weight: 700;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-txt {
  margin: 0.3em 0 0;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-ol {
  padding-left: 2.6em;
  list-style: none;
  counter-reset: pv;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-ol li {
  counter-increment: pv;
  text-indent: -2.6em;
}
.cres-smf .snow-monkey-form .cres-form-privacy .pv-ol li::before {
  content: "（" counter(pv) "）";
  display: inline-block;
  width: 2.6em;
  text-indent: 0;
}
.cres-smf .snow-monkey-form .cres-form-privacy:focus {
  outline: 1px solid #000;
}
.cres-smf .snow-monkey-form .cres-form-agree {
  margin-top: min(16px, 2.54453vw);
  text-align: center;
}
.cres-smf .snow-monkey-form .cres-form-agree .smf-item__col--label {
  display: none;
}
.cres-smf .snow-monkey-form .cres-form-agree .smf-checkboxes-control__control {
  justify-content: center;
}
.cres-smf .snow-monkey-form .cres-form-agree .smf-checkbox-control__label {
  font-size: min(22.4px, 3.562342vw);
  letter-spacing: 0.1em;
}
.cres-smf .snow-monkey-form .smf-error-messages {
  margin-top: min(9.6px, 1.526718vw);
  color: #E60000;
  font-size: min(20.8px, 3.307889vw);
}
.cres-smf .snow-monkey-form .smf-action {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: min(22.4px, 3.562342vw);
  margin-top: min(57.6px, 9.160308vw);
}
.cres-smf .snow-monkey-form .smf-button-control {
  margin: 0;
}
.cres-smf .snow-monkey-form .smf-button-control__control {
  min-width: min(416px, 66.15778vw);
  height: min(102.4px, 16.284992vw);
  padding: 0 min(38.4px, 6.106872vw);
  border: 0;
  border-radius: 0;
  background: #FC9C2D;
  background-image: none;
  box-shadow: none;
  color: #fff;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: opacity 0.3s;
}
.cres-smf .snow-monkey-form .smf-button-control__control:hover {
  opacity: 0.8;
}
.cres-smf .snow-monkey-form .smf-button-control__control[data-action=back] {
  background: #A0A0A0;
}

.cres-smf .snow-monkey-form:not([data-screen=input]) .cres-form-privacy {
  display: none;
}
.cres-smf .snow-monkey-form:not([data-screen=input]) .cres-form-agree {
  text-align: left;
}
.cres-smf .snow-monkey-form:not([data-screen=input]) .cres-form-agree .smf-item__col--label {
  display: block;
}

.cres-smf .smf-complete-content {
  font-size: min(24px, 3.816795vw);
  line-height: 2;
  text-align: center;
}

@media only screen and (min-width: 768px) {
  .cres-smf .snow-monkey-form .smf-form {
    gap: min(20px, 1.464128vw);
  }
  .cres-smf .snow-monkey-form .smf-item {
    display: grid;
    grid-template-columns: min(208px, 15.2269312vw) 1fr;
    align-items: center;
  }
  .cres-smf .snow-monkey-form .smf-item__col--label {
    margin: 0;
  }
  .cres-smf .snow-monkey-form .smf-item__label {
    font-size: min(16px, 1.1713024vw);
  }
  .cres-smf .snow-monkey-form .smf-text-control__control {
    height: min(48px, 3.5139072vw);
    font-size: min(16px, 1.1713024vw);
  }
  .cres-smf .snow-monkey-form .smf-textarea-control__control {
    font-size: min(16px, 1.1713024vw);
  }
  .cres-smf .snow-monkey-form .smf-select-control__control {
    height: min(48px, 3.5139072vw);
    font-size: min(16px, 1.1713024vw);
  }
  .cres-smf .snow-monkey-form .smf-item__controls > * + * {
    margin-top: min(10px, 0.732064vw);
  }
  .cres-smf .snow-monkey-form .smf-item {
    align-items: start;
  }
  .cres-smf .snow-monkey-form .smf-item__col--label {
    padding-top: min(12px, 0.8784768vw);
  }
  .cres-smf .snow-monkey-form .cres-form-agree .smf-item__col--label {
    padding-top: 0;
  }
  .cres-smf .snow-monkey-form .smf-radio-button-control__label,
  .cres-smf .snow-monkey-form .smf-checkbox-control__label {
    font-size: min(15px, 1.098096vw);
  }
  .cres-smf .snow-monkey-form .cres-form-privacy {
    height: min(325px, 23.79208vw);
    margin-top: min(52px, 3.8067328vw);
    padding: min(16px, 1.1713024vw) min(14px, 1.0248896vw);
    font-size: min(15px, 1.098096vw);
  }
  .cres-smf .snow-monkey-form .cres-form-agree {
    display: block;
    margin-top: min(30px, 2.196192vw);
  }
  .cres-smf .snow-monkey-form .cres-form-agree .smf-checkbox-control__label {
    font-size: min(14px, 1.0248896vw);
  }
  .cres-smf .snow-monkey-form .smf-action {
    gap: min(20px, 1.464128vw);
    margin-top: min(40px, 2.928256vw);
  }
  .cres-smf .snow-monkey-form .smf-button-control__control {
    min-width: min(349px, 25.5490336vw);
    height: min(82px, 6.0029248vw);
    font-size: min(16px, 1.1713024vw);
  }
  .cres-smf .snow-monkey-form:not([data-screen=input]) .cres-form-agree {
    display: grid;
  }
}
.cres-smf .snow-monkey-form .smf-button-control__control:disabled {
  background: #C8C8C8;
  cursor: not-allowed;
  opacity: 1;
}

/* =========================================================
   COLUMN 一覧・詳細（archive-column.php / single-column.php）— XD: コラム / コラム 詳細（2026-10-19、PC のみ）
   一覧の並び・ページ送りはイベント一覧（.evl-*）、詳細の枠はモデルハウス詳細（.mhd）を流用
   ========================================================= */
.cl-cats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: min(9.6px, 1.526718vw);
  width: min(564.8px, 89.821909vw);
  margin: min(80px, 12.72265vw) auto 0;
  padding: 0;
  list-style: none;
}
.cl-cats a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: min(70.4px, 11.195932vw);
  padding: 0 min(6.4px, 1.017812vw);
  font-size: min(19.2px, 3.053436vw);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0;
  white-space: nowrap;
  text-align: center;
  color: #292929;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease;
}
.cl-cats a:hover {
  background: #eaeae8;
}
.cl-cats a.is-current {
  background: #292929;
  color: #fff;
}

.evl-list.cl-list {
  gap: min(80px, 12.72265vw);
  width: min(532.8px, 84.732849vw);
  padding-top: min(80px, 12.72265vw);
}

.cl > .cl-list:last-child, .cl > .cl-empty:last-child,
.wkl > .wkl-list:last-child, .wkl > .cl-empty:last-child {
  margin-bottom: min(240px, 38.16795vw);
}

.wkd > .wkd-back:last-child {
  margin-bottom: min(240px, 38.16795vw);
}

.cl-card {
  color: #292929;
}
.cl-card__link {
  display: block;
  color: inherit !important;
  text-decoration: none;
}
.cl-card__pic {
  overflow: hidden;
  aspect-ratio: 351/256;
  background: #fff;
}
.cl-card__pic img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.cl-card__pic.is-noimage {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cl-card__pic.is-noimage img {
  width: 30%;
  height: auto;
  object-fit: contain;
}
.cl-card__link:hover .cl-card__pic:not(.is-noimage) img {
  transform: scale(1.05);
}
.cl-card__date {
  display: block;
  margin-top: min(22.4px, 3.562342vw);
  font-size: min(22.4px, 3.562342vw);
  font-weight: 500;
  color: #646464;
}
.cl-card__tit {
  margin: min(6.4px, 1.017812vw) 0 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 1.45;
}
.cl-card__cats {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: min(16px, 2.54453vw) 0 0;
  padding: 0;
  list-style: none;
}
.cl-card__cats a {
  display: inline-block;
  padding: 0 12px;
  border: 1px solid #292929;
  font-size: 13px;
  font-weight: 500;
  line-height: 25px;
  color: #646464;
  text-decoration: none;
  transition: background 0.3s ease;
}
.cl-card__cats a:hover {
  background: #eaeae8;
}

.cl-empty {
  margin: min(96px, 15.26718vw) 0;
  text-align: center;
}

.cld .cld-article {
  width: min(564.8px, 89.821909vw);
  margin: min(96px, 15.26718vw) auto 0;
}
.cld .cld-head__meta {
  display: flex;
  align-items: baseline;
  gap: 1em;
  margin: 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  color: #646464;
}
.cld .cld-head__label {
  font-size: min(19.2px, 3.053436vw);
  color: #c1c1c1;
}
.cld .cld-head__tit {
  margin: min(16px, 2.54453vw) 0 0;
  font-size: min(38.4px, 6.106872vw);
  font-weight: 700;
  line-height: 1.5;
}
.cld .cld-eyecatch {
  margin-top: min(38.4px, 6.106872vw);
}
.cld .cld-eyecatch img {
  display: block;
  width: 100%;
  height: auto;
}
.cld .cld-body {
  margin-top: min(48px, 7.63359vw);
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 2;
}
.cld .cld-body > * + * {
  margin-top: 1.6em;
}
.cld .cld-body p {
  margin-bottom: 0;
}
.cld .cld-body h2 {
  margin: min(96px, 15.26718vw) 0 0;
  padding-bottom: 0.5em;
  border-bottom: 1px solid #d1d1d1;
  font-size: min(35.2px, 5.597966vw);
  font-weight: 700;
  line-height: 1.5;
}
.cld .cld-body h3 {
  margin: min(57.6px, 9.160308vw) 0 0;
  font-size: min(28.8px, 4.580154vw);
  font-weight: 700;
  line-height: 1.5;
}
.cld .cld-body h3 + p {
  margin-top: 0.6em;
}
.cld .cld-body figure {
  margin-left: 0;
  margin-right: 0;
}
.cld .cld-body figure.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.cld .cld-body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.cld .cld-back {
  margin-top: min(112px, 17.81171vw);
  padding-bottom: min(144px, 22.90077vw);
}

@media only screen and (min-width: 768px) {
  .cl {
    padding-right: var(--band);
  }
  .cl-cats {
    grid-template-columns: repeat(5, 1fr);
    gap: min(9px, 0.6588576vw) min(26px, 1.9033664vw);
    width: min(1224px, 94.7%);
    margin-top: min(87px, 6.3689568vw);
  }
  .cl-cats a {
    height: min(55px, 4.026352vw);
    padding: 0 0.5em;
    font-size: min(14px, 1.0248896vw);
    letter-spacing: 0.1rem;
    white-space: normal;
  }
  .evl-list.cl-list {
    gap: min(72px, 5.2708608vw) min(33px, 2.4158112vw);
    width: min(1119px, 86.6%);
    padding-top: min(86px, 6.2957504vw);
  }
  .cl > .cl-list:last-child, .cl > .cl-empty:last-child,
  .wkl > .wkl-list:last-child, .wkl > .cl-empty:last-child {
    margin-bottom: min(230px, 16.837472vw);
  }
  .wkd > .wkd-back:last-child {
    margin-bottom: min(230px, 16.837472vw);
  }
  .cl-card__date {
    margin-top: min(20px, 1.464128vw);
    font-size: min(14px, 1.0248896vw);
  }
  .cl-card__tit {
    margin-top: min(6px, 0.4392384vw);
    font-size: min(18px, 1.3177152vw);
  }
  .cl-card__cats {
    margin-top: min(14px, 1.0248896vw);
  }
  .cld .cld-article {
    width: min(800px, 58.56512vw);
    margin-top: min(130px, 9.516832vw);
  }
  .cld .cld-head__meta {
    font-size: min(20px, 1.464128vw);
  }
  .cld .cld-head__label {
    font-size: min(13px, 0.9516832vw);
  }
  .cld .cld-head__tit {
    margin-top: min(18px, 1.3177152vw);
    font-size: min(35px, 2.562224vw);
  }
  .cld .cld-eyecatch {
    margin-top: min(30px, 2.196192vw);
  }
  .cld .cld-body {
    margin-top: min(40px, 2.928256vw);
    font-size: min(16px, 1.1713024vw);
  }
  .cld .cld-body h2 {
    margin-top: min(100px, 7.32064vw);
    font-size: min(28px, 2.0497792vw);
  }
  .cld .cld-body h3 {
    margin-top: min(40px, 2.928256vw);
    font-size: min(20px, 1.464128vw);
  }
  .cld .cld-body img {
    max-width: min(594px, 43.4846016vw);
  }
  .cld .cld-back {
    margin-top: min(150px, 10.98096vw);
    padding-bottom: min(150px, 10.98096vw);
  }
}
/* =========================================================
   LAND FOR SALE 一覧・詳細（archive-land.php / single-land.php）— XD: 分譲地 / 分譲地 詳細（2026-10-19、PC のみ）
   ========================================================= */
.evl-list.ld-list {
  gap: min(70.4px, 11.195932vw);
  width: min(532.8px, 84.732849vw);
  padding: min(96px, 15.26718vw) 0 min(144px, 22.90077vw);
}

.ld-card__link {
  display: block;
  color: #292929 !important;
  text-decoration: none;
}
.ld-card__pic {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  background: #fff;
}
.ld-card__pic img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  transition: transform 0.6s ease;
}
.ld-card__link:hover .ld-card__pic img {
  transform: scale(1.04);
}
.ld-card__tit {
  margin: min(25.6px, 4.071248vw) 0 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 700;
  line-height: 1.45;
}

.ldd .ldd-hero {
  width: min(564.8px, 89.821909vw);
  margin: min(80px, 12.72265vw) auto 0;
}
.ldd .ldd-hero__city {
  margin: 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 500;
}
.ldd .ldd-hero__tit {
  margin: min(9.6px, 1.526718vw) 0 0;
  font-size: min(44.8px, 7.124684vw);
  font-weight: 700;
  line-height: 1.4;
}
.ldd .ldd-hero__near-tit {
  margin: min(32px, 5.08906vw) 0 0;
  font-size: min(24px, 3.816795vw);
  font-weight: 700;
  line-height: 2;
}
.ldd .ldd-hero__near {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 2;
}
.ldd .ldd-hero__map {
  margin-top: min(44.8px, 7.124684vw);
  padding: min(25.6px, 4.071248vw);
  background: #fff;
}
.ldd .ldd-hero__map img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.ldd .ldd-inner {
  width: min(564.8px, 89.821909vw);
  margin: 0 auto;
}
.ldd .ldd-sec {
  margin-top: min(112px, 17.81171vw);
}
.ldd .ldd-table-wrap {
  margin-top: min(32px, 5.08906vw);
  overflow-x: auto;
}
.ldd .ldd-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: min(24px, 3.816795vw);
  text-align: center;
}
.ldd .ldd-table th, .ldd .ldd-table td {
  vertical-align: middle;
}
.ldd .ldd-table th {
  height: 46px;
  padding: 0 0.5em;
  background: #707070;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}
.ldd .ldd-table td {
  height: 56px;
  padding: 0 0.5em;
  font-weight: 400;
  border-bottom: 1px solid #d1d1d1;
}
.ldd .ldd-table th + th {
  border-left: 1px solid #fff;
}
.ldd .ldd-table td + td {
  border-left: 1px solid #d1d1d1;
}
.ldd .ldd-table th:first-child, .ldd .ldd-table td:first-child {
  width: 13.375%;
}
.ldd .ldd-table--sub th {
  background: #e5e5e5;
  color: #191919;
}
.ldd .ldd-unsold-tit {
  margin: min(57.6px, 9.160308vw) 0 0;
  font-size: min(27.2px, 4.325701vw);
  font-weight: 500;
}
.ldd .ldd-facility {
  max-width: min(464px, 73.79137vw);
  margin: min(32px, 5.08906vw) 0 0;
  padding: 0;
  list-style: none;
  font-size: min(24px, 3.816795vw);
  font-weight: 500;
  line-height: 2;
}
.ldd .ldd-facility li {
  display: flex;
  align-items: baseline;
  gap: 0.5em;
}
.ldd .ldd-facility__dots {
  flex: 1 1 auto;
  min-width: 2em;
  height: 1px;
  background: radial-gradient(circle, currentColor 1px, transparent 1.2px) left center/6px 3px repeat-x;
  opacity: 0.6;
  transform: translateY(-0.3em);
}
.ldd .ldd-facility__dist {
  flex: none;
}
.ldd .ldd-gmap {
  margin-top: min(32px, 5.08906vw);
}
.ldd .ldd-gmap iframe {
  display: block;
  width: 100%;
  height: min(416px, 66.15778vw);
  border: 0;
}
.ldd .ldd-outline {
  margin: min(38.4px, 6.106872vw) 0 0;
}
.ldd .ldd-outline div {
  display: grid;
  grid-template-columns: min(176px, 27.98983vw) 1fr;
  gap: min(19.2px, 3.053436vw);
  padding: min(19.2px, 3.053436vw) 0;
  border-bottom: 1px solid #d1d1d1;
}
.ldd .ldd-outline dt, .ldd .ldd-outline dd {
  margin: 0;
  font-size: min(24px, 3.816795vw);
  line-height: 1.6;
}
.ldd .ldd-outline dt {
  font-weight: 700;
}
.ldd .ldd-outline dd {
  font-weight: 500;
}
.ldd .ldd-note {
  margin: min(25.6px, 4.071248vw) 0 0;
  font-size: min(20.8px, 3.307889vw);
  line-height: 1.5;
}
.ldd .ldd-txt {
  margin: min(32px, 5.08906vw) 0 0;
  font-size: min(25.6px, 4.071248vw);
  font-weight: 500;
  line-height: 2;
}
.ldd .mhd-tit + * {
  margin-top: min(22.4px, 3.562342vw);
}
.ldd .ldd-attention {
  margin-top: min(64px, 10.17812vw);
  padding: min(38.4px, 6.106872vw) min(32px, 5.08906vw);
  background: #eaeae8;
  font-size: min(22.4px, 3.562342vw);
  font-weight: 500;
  line-height: 2;
}
.ldd .ldd-attention p {
  margin: 0;
}
.ldd .wkd-back {
  margin-top: min(112px, 17.81171vw);
  padding-bottom: min(144px, 22.90077vw);
}

@media only screen and (min-width: 768px) {
  .ld {
    padding-right: var(--band);
  }
  .evl-list.ld-list {
    gap: min(76px, 5.5636864vw) min(34px, 2.4890176vw);
    width: min(1118px, 86.5%);
    padding: min(120px, 8.784768vw) 0 min(150px, 10.98096vw);
  }
  .ld-card__tit {
    margin-top: min(20px, 1.464128vw);
    font-size: min(18px, 1.3177152vw);
  }
  .ldd .ldd-hero {
    display: grid;
    grid-template-columns: 1fr 54.2459424vw;
    align-items: center;
    gap: min(40px, 2.928256vw);
    width: auto;
    margin: min(130px, 9.516832vw) 0 0 min(113px, 8.2723232vw);
  }
  .ldd .ldd-hero__city {
    font-size: min(20px, 1.464128vw);
  }
  .ldd .ldd-hero__tit {
    margin-top: min(30px, 2.196192vw);
    font-size: min(35px, 2.562224vw);
  }
  .ldd .ldd-hero__near-tit {
    margin-top: min(30px, 2.196192vw);
    font-size: min(15px, 1.098096vw);
  }
  .ldd .ldd-hero__near {
    font-size: min(15px, 1.098096vw);
  }
  .ldd .ldd-hero__map {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 43.191776vw;
    margin: 0;
    padding: 1.464128vw;
  }
  .ldd .ldd-hero__map img {
    max-height: 100%;
    width: auto;
  }
  .ldd .ldd-inner {
    width: min(800px, 58.56512vw);
  }
  .ldd .ldd-sec {
    margin-top: min(100px, 7.32064vw);
  }
  .ldd .ldd-table-wrap {
    margin-top: min(30px, 2.196192vw);
    overflow: visible;
  }
  .ldd .ldd-table {
    min-width: 0;
    font-size: min(16px, 1.1713024vw);
  }
  .ldd .ldd-unsold-tit {
    margin-top: min(46px, 3.3674944vw);
    font-size: min(18px, 1.3177152vw);
  }
  .ldd .ldd-facility {
    max-width: min(400px, 29.28256vw);
    margin-top: min(30px, 2.196192vw);
    font-size: min(15px, 1.098096vw);
  }
  .ldd .ldd-gmap {
    margin-top: min(30px, 2.196192vw);
  }
  .ldd .ldd-gmap iframe {
    height: min(455px, 33.308912vw);
  }
  .ldd .ldd-outline {
    margin-top: min(40px, 2.928256vw);
  }
  .ldd .ldd-outline div {
    grid-template-columns: min(174px, 12.7379136vw) 1fr;
    gap: 0;
    padding: min(20px, 1.464128vw) 0;
  }
  .ldd .ldd-outline dt, .ldd .ldd-outline dd {
    font-size: min(16px, 1.1713024vw);
  }
  .ldd .ldd-note {
    margin-top: min(10px, 0.732064vw);
    font-size: min(14px, 1.0248896vw);
  }
  .ldd .ldd-txt {
    margin-top: min(30px, 2.196192vw);
    font-size: min(16px, 1.1713024vw);
  }
  .ldd .ldd-attention {
    margin-top: min(30px, 2.196192vw);
    padding: min(30px, 2.196192vw) min(36px, 2.6354304vw);
    font-size: min(15px, 1.098096vw);
  }
  .ldd .wkd-back {
    margin-top: min(130px, 9.516832vw);
    padding-bottom: min(150px, 10.98096vw);
  }
  .ldd .mhd-tit + * {
    margin-top: min(18px, 1.3177152vw);
  }
}
