@charset "UTF-8";
/******************************************************************
Theme Name: 石山花壇 Theme
Theme URI: https://ishiyamakadan.magritte.co.jp/
Description: 石山花壇様葬儀サイト用のオリジナルテーマです。
Version: 1.0.0
Author: VALUEPAGE
Author URI: https://vpage.co.jp/
******************************************************************/
/* ========================================
   CSS Variables
======================================== */
:root {
  --black: #333;
  --neutral: #59544b;
  --gray: #bdbbb7;
  --gray02: #eeeeee;
  --gray03: #eee6e8;
  --gray04: #ece5e7;
  --gray05: #e5e5e5;
  --gray06: #fbfaf9;
  --gray07: #707070;
  --primary: #eb5e6b;
  --primary-vivid: #ff2457;
  --primary-soft: #ff99cc;
  --primary-40: #f7bfc4;
  --primary-25: #fad7da;
  --secondary: #f9ecef;
  --secondary-40: color-mix(in srgb, var(--secondary) 40%, transparent);
  --key: #f6000e;
  --success: #41bc5d;
  --chokuso: #009d94;
  --heya: #5f6ab1;
  --kazoku: #9d7d10;
  --accent-yellow: #f8f357;
  --accent-yellow-strong: #ffdf20;
  --gold: #b57e10;
  --gold-dark: #b8960c;
  --surface: #fafaf8;
  --surface-pink: #f9f6f7;
  --surface-gray: #f4f4f4;
}
.bg-primary {
  background-color: var(--primary);
}
.text-primary {
  color: var(--primary);
}
.bg-primary-vivid {
  background-color: var(--primary-vivid);
}
.text-primary-vivid {
  color: var(--primary-vivid);
}
.bg-primary-40 {
  background-color: var(--primary-40);
}
.bg-primary-25 {
  background-color: var(--primary-25);
}
.bg-secondary {
  background-color: var(--secondary);
}
.bg-secondary-40 {
  background-color: var(--secondary-40);
}
.text-secondary {
  color: var(--secondary);
}
.text-neutral {
  color: var(--neutral);
}
.text-key {
  color: var(--key);
}
.text-chokuso {
  color: var(--chokuso);
}
.text-jiin {
  color: var(--success);
}
.text-kazoku {
  color: var(--kazoku);
}
.text-heya {
  color: var(--heya);
}
/* ========================================
   Theme Default Classes
======================================== */
html {
  overflow-x: hidden;
}

body {
  color: var(--black);
  background-color: var(--bs-white);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic Pro", "Hiragino Sans", Meiryo, "メイリオ", sans-serif;
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  word-wrap: break-word;
  overflow-x: hidden;
  position: relative;
  margin: 0;
  padding-top: 84px;
  padding-bottom: 61px;
}

.number-font {
  font-family: Arial, Helvetica, sans-serif;
}

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 {
  font-weight: 700;
}
a:hover {
  opacity: .75;
}

.fs-sm {
  font-size: 14px;
}
.fs-lg {
  font-size: calc(1.325rem + 0.9vw);
}
#breadcrumb {
  font-size: 10px;
  margin: 7px auto 0;
}

#breadcrumb ol {
  display: flex;
  align-items: center;
  max-width: calc(100%);
  list-style: none;
  overflow: auto;
  white-space: nowrap;
  padding-left: 0;
  margin-bottom: 0;
}

#breadcrumb ol li {
  margin-left: 0.5em;
  font-weight: 400;
}

#breadcrumb ol li:first-child {
  margin-left: 0;
}

#breadcrumb ol li a::after {
  color: var(--black);
  content: "＞";
  display: inline-block;
  line-height: 1.7;
  margin-left: 5px;
}

#breadcrumb ol li a:hover {
  opacity: .5;
  filter: alpha(opacity=50);
  -ms-filter: "alpha(opacity=50)";
}

#breadcrumb li a {
  text-decoration: none;
}

button {
  cursor: pointer;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

input[type="submit"] {
  cursor: pointer;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition: 0.3s ease-in-out;
  transition: 0.3s ease-in-out;
}

input[type="text"] {
  display: block;
  padding: 10px 2%;
  font-size: 1em;
  color: var(--black);
  -webkit-transition: background-color .24s ease-in-out;
  transition: background-color .24s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  border: 1px solid var(--bs-gray-400);
}

input[type="email"] {
  display: block;
  padding: 10px 2%;
  font-size: 1em;
  color: var(--black);
  -webkit-transition: background-color .24s ease-in-out;
  transition: background-color .24s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  border: 1px solid var(--bs-gray-400);
}

input[type="url"] {
  display: block;
  padding: 10px 2%;
  font-size: 1em;
  color: var(--black);
  -webkit-transition: background-color .24s ease-in-out;
  transition: background-color .24s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  border: 1px solid var(--bs-gray-400);
}

textarea {
  display: block;
  padding: 10px 2%;
  font-size: 1em;
  color: var(--black);
  -webkit-transition: background-color .24s ease-in-out;
  transition: background-color .24s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  border: 1px solid var(--bs-gray-400);
  resize: vertical;
}

select {
  width: auto;
  border: 1px solid var(--bs-gray-400);
  padding: 10px 30px 10px 2%;
  -webkit-appearance: none;
  appearance: none;
  background-image: url(./library/images/material/select-arrow.svg);
  background-position: right 10px center;
  background-repeat: no-repeat;
  background-size: 13px 13px;
}

.asterisk {
  color: var(--bs-red);
}

input[type="search"] {
  display: block;
  padding: 10px 2%;
  font-size: 16px;
  -webkit-transition: background-color .24s ease-in-out;
  transition: background-color .24s ease-in-out;
  -webkit-appearance: none;
  appearance: none;
  width: calc(100% - 70px);
  height: 40px;
  line-height: 40px;
  border: 1px solid var(--bs-gray-400);
}

.searchform button {
  height: 40px;
  width: 50px;
  cursor: pointer;
  position: relative;
  border: none;
  border-radius: 4px;
  background: var(--bs-gray-100);
}

.searchform button::before {
  content: " ";
  background-image: url(./library/images/icon/search.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  display: inline-block;
  width: 23px;
  height: 22px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.policy ul {
  list-style: none;
  padding-left: 0;
}

.policy ul li {
  position: relative;
  padding-left: 25px;
}

.policy ul li span {
  position: absolute;
  left: 0;
}

#page-top {
  right: 10px;
  z-index: 11;
  cursor: pointer;
}

#page-top img {
  height: 34px;
  width: 34px;
  border-radius: 50%;
  box-shadow: 0px 0px 1px 1px rgba(0, 0, 0, 0.2);
  opacity: .7;
  transition: opacity .2s ease-in-out;
}

#page-top:hover img,
#page-top:active img {
  opacity: 1;
}

#not-found {
  border: 1px solid var(--primary);
  padding: 40px 20px;
  border-radius: 20px;
}

#not-found ul {
  list-style-type: disc;
  margin-left: 15px;
}

#not-found ul::marker {
  color: var(--primary);
}

#not-found ul li a {
  text-decoration: underline;
}

#not-found h2 {
  font-size: 2em;
  line-height: 1.2;
}

#not-found h3 {
  border-bottom: 2px solid var(--bs-gray-400);
  color: var(--black);
  position: relative;
  padding-left: 25px;
  line-height: 1.2;
  padding-bottom: 5px;
}

#not-found h3::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 10px 0 10px;
  border-color: var(--bs-gray-600) transparent transparent transparent;
  position: absolute;
  left: 0;
  top: calc(50% - 2.5px);
  transform: translateY(-50%);
}

#post-not-found {
  border: 1px solid var(--primary);
  padding: 40px 20px;
  border-radius: 20px;
}

#post-not-found ul {
  list-style-type: disc;
  list-style-type: disc;
  list-style-type: disc;
  margin-left: 15px;
  margin-left: 15px;
  margin-left: 15px;
}

#post-not-found ul::marker {
  color: var(--primary);
}

#post-not-found ul li a {
  text-decoration: underline;
  text-decoration: underline;
  text-decoration: underline;
}

#post-not-found h2 {
  font-size: 2em;
  line-height: 1.2;
}

#post-not-found h3 {
  border-bottom: 2px solid var(--bs-gray-400);
  color: var(--black);
  position: relative;
  padding-left: 25px;
  line-height: 1.2;
  padding-bottom: 5px;
}

#post-not-found h3::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 15px 10px 0 10px;
  border-color: var(--bs-gray-600) transparent transparent transparent;
  position: absolute;
  left: 0;
  top: calc(50% - 2.5px);
  transform: translateY(-50%);
}

table.form {
  margin-top: -15px;
}

table.form tr th {
  vertical-align: text-top;
  padding: 15px 0 0;
}

table.sp-block-table tr th {
  display: block;
  width: 100%;
  text-align: left;
}

table.sp-block-table tr td {
  display: block;
  width: 100%;
  text-align: left;
}

.contact-btn-flex-box {
  display: flex;
  justify-content: center;
  margin-left: -7.5px;
  margin-right: -7.5px;
}

.contact-btn-flex-box button {
  margin: 0 7.5px;
}

.category-name {
  padding: .2em .5em;
  opacity: .9;
  filter: alpha(opacity=90);
  -ms-filter: "alpha(opacity=90)";
  font-size: 65%;
}

@media (min-width: 768px) {
  #breadcrumb {
    font-size: 70%;
    margin: 1em auto 0;
  }
  #page-top {
    right: 20px;
  }
  #page-top img {
    height: 50px;
    width: 50px;
  }
  #not-found {
    padding: 40px;
  }
  #not-found h2 {
    font-size: 2.5em;
  }
  #post-not-found {
    padding: 40px;
  }
  #post-not-found h2 {
    font-size: 2.5em;
  }
  table.sp-block-table tr th {
    display: table-cell;
    width: auto;
  }
  table.sp-block-table tr td {
    display: table-cell;
    width: auto;
  }
  table.form.sp-block-table tr th {
    padding: 20px 10px 20px 0;
    font-size: 20px;
    line-height: 1.2;
    width: 280px;
  }
}

@media (min-width: 1200px) {
  .fs-lg {
    font-size: 3rem;
  }
}
::selection {
  color: var(--bs-white);
  background-color: var(--primary);
}
.rounded {
  border-radius: var(--bs-border-radius) !important;
}
.primary-ttl01 {
  border-left: 5px solid var(--primary);
}

table {
  border-collapse: collapse;
}

table th, table td {
  width: 100%;
  display: inline-block;
  padding: .85em 0;
  text-align: left;
}

table th + td {
  padding-top: 0;
}

table td {
  border-bottom: 1px solid var(--bs-gray-400);
}

@media print, screen and (min-width: 768px) {
  body {
    font-size: 1rem;
    padding-bottom: 101px;
  }
  table th, table td {
    display: table-cell;
    width: auto;
  }
  table tr {
    border-bottom: 1px solid var(--bs-gray-400);
  }
  table th + td {
    padding-top: .85em;
  }
  table td {
    border-bottom: none;
  }
  .company-table th {
    width: 40%;
  }
}

.bg-img-right {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-image: url(./library/images/material/sample-img-850-567.jpg);
}

.bg-img-right-inner {
  background-color: rgba(255, 255, 255, 0.7);
}

@media print, screen and (min-width: 576px) {
  .bg-img-right {
    background-position: right;
    background-size: inherit;
  }
}

@media print, screen and (min-width: 768px) {
  .bg-img-right-outer {
    flex: 0 0 75%;
    max-width: 75%;
  }
  
}
@media print, screen and (min-width: 992px) {
  body {
    padding-top: 0;
  }
}
@media print, screen and (min-width: 1200px) {
  .bg-img-right-outer {
    flex: 0 0 50%;
    max-width: 50%;
  }
}

.footer-btn {
  padding: 10px 60px 10px 20px;
  border-radius: 10px;
  text-align: left;
  min-width: 260px;
}

.footer-btn span {
  position: relative;
  padding-left: 35px;
}

.footer-btn span::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
  width: 24px;
  height: 24px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.footer-btn:hover {
  background-color: var(--secondary);
  box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
  opacity: 1;
}

.footer-menu-ttl {
  position: relative;
  padding-bottom: 10px;
  overflow: hidden;
  color: var(--primary);
  font-size: 1em;
}

.footer-menu-ttl:before {
  position: absolute;
  width: 100%;
  bottom: 0;
  content: '';
  border-bottom: 1px solid var(--primary);
}

.footer-menu-ttl:after {
  position: absolute;
  width: 100%;
  bottom: 0;
  content: '';
  border-bottom: 1px solid var(--bs-gray-400);
}

.footer-menu ul:not(.sub-menu) {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding-left: 0;
}

.footer-menu ul:not(.sub-menu) li {
  min-width: 50%;
}

.footer-menu li {
  font-size: 14px;
  padding: .2em .4em .2em 0;
}

.footer-logo img {
  height: 40px;
}

.footer-btn.beginner span::before {
  width: 23px;
  height: 23px;
  background-image: url(./library/images/icon/search.svg);
}

.footer-btn.download span::before {
  width: 23px;
  height: 23px;
  background-image: url(./library/images/icon/search.svg);
}

.footer-policy-list {
  font-size: 12px;
  letter-spacing: 0;
}

.footer-policy-list li + li {
  padding-left: 15px;
}

@media (min-width: 768px) {
  .footer-menu ul:not(.sub-menu) li {
    min-width: calc(100% / 2);
  }
  .footer-logo img {
    height: 50px;
  }
  .footer-copy {
    font-size: 14px;
  }
  .footer-policy-list {
    letter-spacing: 1px;
  }
}

/* ========================================
   Container - renewal
======================================== */
.container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.g-24.row {
  margin: calc(var(--space-24) / -2);
}
.g-24.row > * {
  padding: calc(var(--space-24) / 2);
}
.g-40.row {
  margin: calc(var(--space-40) / -2);
}
.g-40.row > * {
  padding: calc(var(--space-40) / 2);
}
.g-56.row {
  margin: calc(var(--space-56) / -2);
}
.g-56.row > * {
  padding: calc(var(--space-56) / 2);
}
@media (min-width: 768px) {
  .g-md-40.row {
    margin: calc(var(--space-40) / -2);
  }
  .g-md-40.row > * {
    padding: calc(var(--space-40) / 2);
  }
  .g-md-56.row {
    margin: calc(var(--space-56) / -2);
  }
  .g-md-56.row > * {
    padding: calc(var(--space-56) / 2);
  }
}
@media (min-width: 992px) {
  .g-lg-56.row {
    margin: calc(var(--space-56) / -2);
  }
  .g-lg-56.row > * {
    padding: calc(var(--space-56) / 2);
  }
}
.row {
  margin-left: calc(-0.5 * var(--bs-gutter-x));
  margin-right: calc(-0.5 * var(--bs-gutter-x));
}
.row > * {
  padding-left: calc(var(--bs-gutter-x) * 0.5);
  padding-right: calc(var(--bs-gutter-x) * 0.5);
}
@media (min-width: 576px) {
  .container {
    padding-left: calc(var(--bs-gutter-x) * 0.5);
    padding-right: calc(var(--bs-gutter-x) * 0.5);
  }
}
@media (min-width: 1200px) {
  .container-xl, .container-lg, .container-md, .container-sm, .container {
    max-width: 1320px;
  }
}
/*--------------------------------------------------------------------
▼お問い合わせフォーム設定
---------------------------------------------------------------------*/
.form-btn-box {
  display: block;
}
table.form {
  margin-top: -15px;
}
table.form tr {
  border-bottom: 1px solid var(--primary);
}
table.sp-block-table tr th,
table.sp-block-table tr td {
  padding: 20px 0;
}
table.form tr th {
  vertical-align: middle;
  padding: 20px 0 0;
}
table.form tr th.text-top {
  vertical-align: text-top;
}
table.sp-block-table tr th + td {
  padding-top: 10px;
}
.contact-btn-flex-box {
  display: flex;
  justify-content: center;
  margin-left: -7.5px;
  margin-right: -7.5px;
  flex-direction: column;
  gap: 10px;
}
.contact-btn-flex-box button {
  margin: 0;
}
.flex-between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
input[type="text"],
input[type="email"],
input[type="url"],
textarea,
select {
  padding: 20px 10px;
  border: none;
  background-color: var(--gray03);
  letter-spacing: 0.05rem;
}
.asterisk {
  background-color: var(--primary);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 400;
  padding: 0.25rem 0.6rem .05rem;
  line-height: 1.2;
}
.check-btn td {
  margin-top: 10px;
}
.check-btn input[type="checkbox"].check-btn-item {
  display: none;
}
.mw_wp_form .vertical-item + .vertical-item {
  margin-top: 10px;
}
.check-btn label {
  display: inline-block;
}
.check-btn .check-btn-item + span {
  padding-left: 32px;
  display: inline-block;
  position: relative;
}
.check-btn .check-btn-item + span::after,
.check-btn .check-btn-item + span::before {
  content: "";
  display: block;
  position: absolute;
  top: 2px;
}
.check-btn .check-btn-item + span::before {
  background-color: var(--gray06);
  border: 1px solid var(--gray);
  border-radius: 4px;
  left: 0;
  height: 20px;
  width: 20px;
}
.check-btn .check-btn-item + span::after {
  border: none;
  border-right: 3px solid var(--primary);
  border-bottom: 3px solid var(--primary);
  height: 12px;
  left: 6px;
  opacity: 0;
  top: 4.5px;
  transform: rotate(45deg);
  width: 7px;
}
.check-btn .check-btn-item:checked + span::after {
  opacity: 1;
}
@media print, screen and (min-width: 768px) {
  .form-btn-box + .form-btn-box {
    padding-left: 20px;
  }
  table.form.sp-block-table tr th {
    padding: 20px 20px 20px 0;
    font-size: 20px;
    line-height: 1.2;
    width: 300px;
  }
  table.sp-block-table tr th + td {
    padding-top: 20px;
  }
  .contact-btn-flex-box {
    flex-direction: row;
  }
}
@media print, screen and (min-width: 992px) {
  table.form.sp-block-table tr th {
    padding: 20px 30px 20px 0;
    width: 320px;
  }
}
/* =============================================================
header 一旦上書き用CSS
================================================================ */
.site-header {
  position: fixed;
  top: 0;
  z-index: 100;
}
.site-header-top {
  border-bottom: 1px solid var(--gray);
}
.site-header-top-inner {
  min-height: 44px;
  padding: 2px 0;
}

.site-header-logo img {
  width: 84px;
  max-width: 100%;
  height: auto;
}

.site-header-mobile-actions {
  gap: 16px;
}

.site-header-mobile-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
}
.site-header-mobile-icon-link.mobile-icon-faq {
  width: 35px;
  height: 24px;
}
.site-header-mobile-icon,
.site-header-free-dial-icon,
.site-header-home-icon,
.site-header-shortcut-icon,
.site-header-emergency-icon {
  display: inline-block;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.site-header-mobile-icon-guide {
  background-image: url("./library/images/icon/icon-guide.svg");
}
.site-header-mobile-icon-faq {
  background-image: url("./library/images/icon/icon-faq.svg");
}

.site-header-menu-toggle {
  width: 32px;
  height: 23px;
  padding: 0;
  border: none;
  background: transparent;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
}

.site-header-menu-toggle span {
  display: block;
  width: 32px;
  height: 3px;
  border-radius: 999px;
  background-color: var(--gray);
}

.site-header-shortcut {
  background-color: var(--bs-white);
}

.site-header-shortcut-inner {
  overflow-x: auto;
  white-space: nowrap;
  scrollbar-width: none;
}

.site-header-shortcut-inner::-webkit-scrollbar {
  display: none;
}

.site-header-shortcut-item {
  flex: 0 0 20%;
  max-width: calc(100% / 5);
  min-height: 40px;
  padding: 4px 6px;
  border-right: 1px solid var(--gray);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background-color: var(--bs-white);
  color: var(--black);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.site-header-shortcut-item.is-emergency {
  background-color: var(--key);
  color: var(--bs-white);
}

.site-header-shortcut-icon {
  width: 16px;
  height: 16px;
}

.site-header-shortcut-icon-emergency {
  background-image: url("./library/images/icon/emergency.svg");
}

.site-header-shortcut-icon-plan {
  background-image: url("./library/images/icon/plan.svg");
}

.site-header-shortcut-icon-hall {
  background-image: url("./library/images/icon/hall.svg");
}

.site-header-shortcut-icon-aboutus {
  background-image: url("./library/images/icon/aboutus.svg");
}

.site-header-shortcut-icon-member {
  background-image: url("./library/images/icon/member.svg");
}

.site-header-copy {
  font-size: 1rem;
  line-height: 1.5;
  color: var(--gray07);
}
.site-header-copy span {
  font-size: 12px;
}
.site-header-contact-area {
  gap: 21px;
}

.site-header-contact {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
}

.site-header-tel {
  justify-content: center;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary-vivid);
}

.site-header-free-dial-icon {
  width: 41px;
  height: 24px;
  background-image: url("./library/images/icon/free-dial.svg");
}

.site-header-tel > span:last-child,
.footer-fix-tel-number > span:last-child {
  position: relative;
  top: -0.07em;
}

.site-header-tel-note {
  padding: 1px 15px 2px;
  border-radius: 30px;
  background-color: var(--primary-vivid);
  text-align: center;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--bs-white);
}

.contact-btn,
.site-header-drawer-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.primary-btn01 a.site-header-drawer-btn {
  display: flex;
  align-items: center;
  justify-content: center;
}
.primary-btn01 a.site-header-drawer-btn > div {
  line-height: 1.3;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.site-header-drawer-btn img {
  display: block;
  width: 2rem;
  margin-right: 0.25rem;
}
.site-header-nav-wrap .container {
  position: relative;
}

.site-header-nav {
  min-height: 46px;
}

.site-header-home-link {
  width: 40px;
  height: 46px;
  flex: 0 0 auto;
  margin-right: 12px;
}

.site-header-home-icon {
  width: 20px;
  height: 19px;
  background-image: url("./library/images/icon/home.svg");
}

.site-header-pc-menu {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

.site-header-pc-menu > li {
  list-style: none;
  position: relative;
  flex-grow: 1;
}
.site-header-pc-menu > li > a {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 46px;
  padding: 0 10px;
  position: relative;
  font-size: clamp(.75rem, 1vw, .875rem);
  font-weight: 500;
  line-height: 1.2;
  color: var(--black);
  text-decoration: none;
}

.site-header-pc-menu > li > a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1px;
  height: 18px;
  background-color: var(--gray);
  transform: translateY(-50%);
}

.site-header-pc-menu .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  padding: 10px 0;
  margin: 0;
  background-color: var(--bs-white);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
  z-index: 20;
}

.site-header-pc-menu li:hover > .sub-menu {
  display: block;
}

.site-header-pc-menu .sub-menu li {
  list-style: none;
}

.site-header-pc-menu .sub-menu a {
  display: block;
  padding: 10px 16px;
  color: var(--black);
  text-decoration: none;
  font-size: 14px;
}

.site-header-pc-menu .current-menu-item > a,
.site-header-pc-menu .current-menu-ancestor > a,
.site-header-pc-menu > li > a:hover {
  color: var(--primary);
}

.site-header-emergency-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 46px;
  padding: 0 10px;
  font-size: clamp(.75rem, 1vw, .875rem);
  background-color: var(--key);
  color: var(--bs-white);
  font-weight: 700;
  white-space: nowrap;
}

.site-header-emergency-icon {
  width: 16px;
  height: 16px;
  background-image: url("./library/images/icon/emergency.svg");
}

.site-header-drawer {
  position: fixed;
  inset: 0;
  z-index: 1100;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.site-header-drawer.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.site-header-drawer-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.45);
}

.site-header-drawer-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: min(86%, 360px);
  height: 100%;
  background-color: var(--bs-white);
  padding: 4px 16px 16px;
  overflow-y: auto;
}

.site-header-drawer-head {
  min-height: 44px;
}

.site-header-drawer-logo img {
  width: 200px;
  height: auto;
}

.site-header-drawer-close {
  position: relative;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
}

.site-header-drawer-close span {
  position: absolute;
  top: 15px;
  left: 4px;
  width: 32px;
  height: 4px;
  background-color: var(--gray);
}

.site-header-drawer-close span:first-child {
  transform: rotate(45deg);
}

.site-header-drawer-close span:last-child {
  transform: rotate(-45deg);
}

.site-header-drawer-menu,
.site-header-drawer-menu .sub-menu {
  margin: 0;
  padding: 0;
}

.site-header-drawer-menu li {
  list-style: none;
  position: relative;
}

.site-header-drawer-menu > li {
  border-bottom: 1px solid var(--gray05);
}

.site-header-drawer-menu a {
  display: block;
  padding: 14px 40px 14px 0;
  color: var(--black);
  text-decoration: none;
  font-weight: 500;
}

.site-header-drawer-menu .sub-menu {
  padding-bottom: 10px;
}

.site-header-drawer-menu .sub-menu a {
  padding: 10px 0 10px 16px;
  font-size: 14px;
}

.site-header-drawer-tel {
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary-vivid);
}

.site-header-drawer-note {
  font-size: 13px;
  color: var(--neutral);
}

.primary-btn01.emergency-btn {
  background-color: var(--key);
}

body.menu-open {
  overflow: hidden;
}

@media (min-width: 992px) {
  .site-header {
    position: static
  }
  .site-header-top {
    border-bottom: 4px solid var(--primary);
  }
  .site-header-top-inner {
    min-height: 80px;
    padding: 0;
  }

  .site-header-logo img {
    width: 167px;
  }
  .site-header-contact .contact-btn img {
    width: 39px;
  }
}
@media (min-width: 1200px) {
  .site-header-tel {
    font-size: 36px;
  }
  .site-header-tel-note {
    font-size: 14px;
  }
  .site-header-pc-menu > li > a, .site-header-emergency-link {
    padding: 0 18px;
    font-size: 14px;
  }
}
/* =============================================================
footer 一旦上書き用CSS
================================================================ */
.site-footer {
  background-color: var(--bs-white);
  color: var(--black);
}

.site-footer-main {
  padding: 48px 0 24px;
}

.site-footer-brand {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.site-footer-logo {
  align-self: flex-start;
  width: 100%;
  max-width: 342px;
}

.site-footer-logo img {
  width: 100%;
  max-width: 342px;
  height: auto;
}

.site-footer-lead {
  font-size: 12px;
  letter-spacing: 0;
  line-height: 1.8;
  color: var(--gray07);
}

.site-footer-contact {
  max-width: 250px;
}

.site-footer-contact.primary-btn01 {
  height: 43px;
  line-height: normal;
}
.site-footer-tel-box {
  display: block;
  max-width: 250px;
}

@media (max-width: 991.98px) {
  .site-footer-contact.primary-btn01 {
    display: block;
  }

  .site-footer-contact {
    margin-left: auto;
    margin-right: auto;
  }

  .site-footer-tel-box {
    margin-left: auto;
    margin-right: auto;
  }

  .site-footer-sns {
    justify-content: center;
  }
}

.site-footer-tel-main {
  font-weight: 700;
}

.site-footer-tel-sub {
  margin-top: 5px;
  font-size: 12px;
  color: var(--primary);
}

.site-footer-free-dial-icon {
  display: inline-block;
  width: 41px;
  height: 24px;
  background: url("./library/images/icon/free-dial.svg") center / contain no-repeat;
  flex: 0 0 auto;
  margin-right: 8px;
}

.site-footer-sns {
  gap: 30px;
}

.site-footer-sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: auto;
}
.site-footer-sns-link.icon-youtube {
  width: 34px;
}
.site-footer-sns-icon {
  display: inline-block;
}

.site-footer-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.site-footer-heading {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--black);
}

.site-footer-menu {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 16px;
  padding: 0;
  margin: 0;
  line-height: 1;
}

.site-footer-menu li {
  list-style: none;
}

.site-footer-menu a {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--gray07);
  text-decoration: none;
}

.site-footer-menu a:hover {
  color: var(--primary);
  opacity: 1;
}

.site-footer-company {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.site-footer-company-name {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.8;
  color: var(--black);
}

.site-footer-company-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.site-footer-company-text {
  font-size: 13px;
  line-height: 1.8;
  color: var(--gray07);
}
.site-footer-map-link {
  position: relative;
  display: inline-block;
  margin-top: 0;
  padding-right: 16px;
  color: var(--primary);
}

.site-footer-map-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 12px;
  height: 12px;
  transform: translateY(-50%);
  background: var(--primary);
  -webkit-mask-image: url("library/images/icon/external-link.svg");
  mask-image: url("library/images/icon/external-link.svg");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.site-footer-bottom {
  margin-top: 48px;
  padding-top: 12px;
  border-top: 1px solid var(--gray);
}

.site-footer-copy {
  font-size: 10px;
  line-height: 1;
  color: var(--gray);
}

.site-footer-policy {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  justify-content: flex-start;
  padding: 0;
  margin: 0;
}

.site-footer-policy li {
  list-style: none;
}

.site-footer-policy a {
  font-size: 10px;
  line-height: 1;
  color: var(--gray);
  text-decoration: none;
}

.site-footer-policy a:hover {
  color: var(--primary);
  opacity: 1;
}
@media (min-width: 992px) {
  .site-footer-lead {
    padding-right: 3rem;
  }
}
@media (min-width: 1200px) {
  .site-footer-lead {
    padding-right: 5rem;
  }
}
/* fixed cta */
.footer-fix {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  background-color: var(--primary);
  padding: 5px 0 7px;
  transition: bottom .3s;
}

@media (min-width: 992px) {
  .footer-fix {
    bottom: -200px;
  }
}

.footer-fix-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
}

.footer-fix-tel {
  flex: 1 1 auto;
  min-width: 0;
}

.footer-fix-tel-main {
  gap: 8px;
}

.footer-fix-operator {
  width: 50px;
  flex: 0 0 auto;
}

.footer-fix-tel-content {
  min-width: 0;
}

.footer-fix-tel-copy {
  font-size: 13px;
  line-height: 1.2;
  background-color: var(--bs-white);
  padding: 10px 14px;
  position: relative;
}
.footer-fix-tel-copy::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: -.75rem;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: .65rem solid transparent;
  border-bottom: .65rem solid transparent;
  border-right: 1.125rem solid var(--bs-white);
  border-left: 0;
}

.footer-fix-tel-number .site-footer-free-dial-icon {
  width: 1.2em;
  height: 0.7em;
}

.footer-fix-tel-box {
  width: fit-content;
  max-width: 100%;
}

.footer-fix-tel-number {
  justify-content: center;
  font-size: 21px;
  white-space: nowrap;
}

.footer-fix-tel-note {
  display: block;
  text-align: center;
  margin-top: 2px;
  padding: 2px 8px;
  background-color: var(--bs-white);
  color: var(--key);
  font-size: 9px;
  font-weight: 500;
  line-height: 1.2;
}

.footer-fix-web {
  flex: 0 0 144px;
}

.footer-fix-web-link {
  display: flex;
  flex-direction: row;
  align-items: center;
  min-height: 35px;
  padding: 5px 10px;
  background-color: var(--success);
  color: var(--bs-white);
}

.footer-fix-web-main {
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
}

.footer-fix-web-sub {
  display: none;
}
.footer-fix-web-icon {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 1.25rem;
  width: 2rem;
  height: auto;
}
.footer-fix-separator {
  width: 1px;
  align-self: stretch;
  background-color: rgba(255, 255, 255, 0.5);
}
@media (min-width: 430px) {
  .footer-fix-inner {
    justify-content: center;
    gap: 12px;
  }
}
@media (min-width: 576px) {
  .footer-fix-tel-number {
    font-size: 26px;
  }
  .footer-fix-tel-note {
    font-size: 10.5px;
  }
  .footer-fix-web-link {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 69px;
    padding: 0;
    background-color: transparent;
  }
  .footer-fix-web {
    flex: 0 0 200px;
  }
  .footer-fix-web-main {
    display: block;
    width: 100%;
    padding: 8px 12px 8px 70px;
    background-color: var(--success);
    font-size: 16px;
    line-height: 1.1;
  }
}
@media (min-width: 768px) {
  .site-footer-main {
    padding: 72px 0 24px;
  }
  .site-footer-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .footer-fix {
    padding: 8px 0;
  }
  .footer-fix-tel-number {
    font-size: 36px;
  }
  .footer-fix-tel-note {
    font-size: 14px;
  }
  .footer-fix-web {
    flex-basis: 300px;
  }
  .footer-fix-web-main {
    font-size: 18px;
    padding: 8px 24px 8px 64px;
  }
  .footer-fix-web-sub {
    display: block;
    width: 100%;
    padding: 6px 24px 6px 64px;
    background-color: var(--bs-white);
    color: var(--success);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.2;
  }
  .footer-fix-web-icon {
    width: 2.25rem;
  }
}

@media (min-width: 992px) {
  .site-footer-main {
    padding: 96px 0 21px;
  }

  .site-footer-logo,
  .site-footer-logo img {
    max-width: 350px;
  }

  .site-footer-heading {
    font-size: 20px;
  }

  .site-footer-block {
    gap: 40px;
  }

  .site-footer-menu {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .site-footer-bottom {
    margin-top: 96px;
    padding-top: 21px;
  }

  .site-footer-policy {
    justify-content: flex-end;
    gap: 20px;
  }

  .footer-fix {
    padding: 12px 0;
  }
  .footer-fix-tel-main {
    gap: 2rem;
    justify-content: flex-end;
  }
  .footer-fix-operator-wrapper {
    gap: 1rem;
  }
  .footer-fix-operator {
    width: 77px;
  }

  .footer-fix-inner {
    gap: 43px;
  }

  .footer-fix-tel-number {
    font-size: 36px;
    letter-spacing: .04em;
  }
  .footer-fix-tel-number .site-footer-free-dial-icon {
    width: 49px;
    height: 28px;
    margin-right: 15px;
  }

  .footer-fix-tel-note {
    line-height: 1.36;
    padding: 2px 8px 3px;
  }
}
@media (min-width: 1200px) {
  .footer-fix-tel-note {
    font-size: 1rem;
  }
  .footer-fix-tel-copy {
    max-width: clamp(140px, 8vw, 143px);
  }
  .footer-fix-tel-copy {
    font-size: 16px;
  }
  .footer-fix-tel {
    flex: 0 0 auto;
  }
  .footer-fix-web {
    flex: 0 0 439px;
  }
  .footer-fix-web-main {
    font-size: 26px;
    letter-spacing: .52px;
    padding: 8px 32px 8px 110px;
  }
  .footer-fix-web-sub {
    padding: 6px 32px 6px 118px;
    font-size: 14.5px;
    letter-spacing: 0;
  }
  .footer-fix-web-icon {
    width: 4rem;
  }
}
/*--------------------------------------------------------------------
▼ボタン設定(全ページ共通で使用するボタン)
---------------------------------------------------------------------*/
.primary-btn01 {
  line-height: 60px;
  padding: 0;
  display: inline-block;
  position: relative;
  width: 100%;
  height: 60px;
  text-align: center;
  border: 1px solid var(--primary);
  font-size: 16px;
  background: var(--primary);
  color: var(--bs-white);
  transform: translateZ(0);
  transition: background-color 0.3s ease, color 0.3s ease;
}

.primary-btn01 a,
.primary-btn01 span.up {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: var(--bs-white);
  transition: color 0.3s ease;
}

.primary-btn01 a:hover,
.primary-btn01 span.up:hover {
  opacity: 1;
}
.primary-btn01 img {
  vertical-align: middle;
}
/* 枠アニメーション */
.primary-btn01::before,
.primary-btn01::after {
  position: absolute;
  content: "";
  right: 0;
  bottom: 0;
  background: var(--bs-white);
  transition: all 0.3s ease;
}

.primary-btn01::before {
  height: 0%;
  width: 2px;
}

.primary-btn01::after {
  width: 0%;
  height: 2px;
}

.primary-btn01:hover::before {
  height: 100%;
}

.primary-btn01:hover::after {
  width: 100%;
}

.primary-btn01 a::before,
.primary-btn01 a::after,
.primary-btn01 span.up::before,
.primary-btn01 span.up::after {
  position: absolute;
  content: "";
  left: 0;
  top: 0;
  background: var(--bs-white);
  transition: all 0.3s ease;
}

.primary-btn01 a::before,
.primary-btn01 span.up::before {
  width: 2px;
  height: 0%;
}

.primary-btn01 a::after,
.primary-btn01 span.up::after {
  height: 2px;
  width: 0%;
}

.primary-btn01 a:hover::before,
.primary-btn01 span.up:hover::before {
  height: 100%;
}

.primary-btn01 a:hover::after,
.primary-btn01 span.up:hover::after {
  width: 100%;
}

/* 右下三角 */
.primary-btn01 a div,
.primary-btn01 span.up span.pointer {
  position: relative;
  display: inline-block;
  width: 100%;
  height: 100%;
}

.primary-btn01 a div::after,
.primary-btn01 span.up span.pointer::after {
  content: "";
  display: inline-block;
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 10px 10px;
  border-color: transparent transparent var(--bs-white) transparent;
  transition: all 0.3s ease;
}

.primary-btn01 a:hover div::after,
.primary-btn01 span.up:hover span.pointer::after {
  border-width: 0 0 15px 15px;
  z-index: 1;
}

/* hover時：primary → vivid */
.primary-btn01:hover {
  background: var(--primary-vivid);
}

/* reverse-color */
.primary-btn01.reverse-color {
  background: var(--primary-vivid);
}

.primary-btn01.reverse-color:hover {
  background: var(--primary);
}

/* contactボタン */
.primary-btn01.contact a {
  padding-top: 10px;
}

.primary-btn01.contact a div {
  line-height: 1.2;
  letter-spacing: 1px;
}

.primary-btn01.contact a div span {
  font-size: 12px;
}

.primary-btn01.contact a div::after {
  content: none;
}
.primary-btn01.contact-btn {
  background: var(--success);
  border: 1px solid var(--success);
  display: inline-flex;
}
.primary-btn01.contact-btn:hover {
  background: var(--primary);
  border: 1px solid var(--primary);
}

@media (min-width: 768px) {
  .primary-btn01.primary-btn01--compact {
    width: 100%;
    max-width: 220px;
    min-width: 0;
    height: 44px;
    line-height: 44px;
    font-size: 14px;
  }

  .primary-btn01.primary-btn01--compact a div::after {
    border-width: 0 0 8px 8px;
  }

  .primary-btn01.primary-btn01--compact a:hover div::after {
    border-width: 0 0 10px 10px;
  }

  .primary-btn01.primary-btn01--card {
    width: 100%;
    max-width: 250px;
    min-width: 0;
    height: 45px;
    line-height: 45px;
    font-size: 14px;
  }

  .primary-btn01.primary-btn01--card a div::after {
    border-width: 0 0 8px 8px;
  }

  .primary-btn01.primary-btn01--card a:hover div::after {
    border-width: 0 0 10px 10px;
  }
}

@media print, screen and (min-width: 391px) {
  .primary-btn01:not(.primary-btn01--compact):not(.primary-btn01--card) {
    min-width: 250px;
    width: auto;
  }
  .site-header-drawer .primary-btn01 {
    min-width: inherit;
  }
}

@media print, screen and (min-width: 768px) {
  .form-btn-box .primary-btn01 {
    min-width: 190px;
    font-size: clamp(.7em, 1.5vw, 1em);
  }
  .site-header-contact-area .primary-btn01 {
    min-width: 248px;
    line-height: 58px;
  }
  .site-header-contact-area .primary-btn01 img {
    margin-bottom: .2rem;
  }
}

@media print, screen and (min-width: 992px) {
  .form-btn-box .primary-btn01 {
    min-width: 230px;
  }
}
/* =============================================================
フロントページ・共通用CSS
================================================================ */
/* ---------------------------------
  front common
--------------------------------- */
.front-page {
  overflow: hidden;
  color: var(--black);
}

.front-page img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.front-page section {
  position: relative;
}

.front-section-heading {
  margin-bottom: 32px;
}

.front-section-heading__sub {
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.front-section-heading__title {
  margin-bottom: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.front-section-heading--worry {
  display: flex;
  align-items: center;
  gap: 14px;
  justify-content: flex-start;
}

.front-section-heading__body {
  min-width: 0;
}

.front-section-heading__mark {
  width: 42px;
  flex-shrink: 0;
}

.front-section-heading--worry .front-section-heading__sub,
.front-section-heading--worry .front-section-heading__title {
  text-align: left;
}

.front-section-heading--worry .front-section-heading__sp {
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.front-section-heading--worry .front-section-heading__sp .front-section-heading__sub {
  font-size: 22px;
}

.front-section-heading--worry .front-section-heading__sp .front-section-heading__title-mark {
  display: block;
  background: linear-gradient(transparent 62%, var(--marker, #fbe98a) 62%);
}

.front-section-heading--worry .front-section-heading__pc .front-section-heading__sub {
  display: block;
  margin-bottom: 4px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.front-section-heading--worry .front-section-heading__pc {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.front-section-heading--worry .front-section-heading__pc .front-section-heading__title-mark {
  background: linear-gradient(transparent 62%, var(--marker, #fbe98a) 62%);
}

.front-feature {
  padding: 48px 0;
}

.front-feature--hall {
  padding-top: 0;
}

.front-feature__heading {
  margin-bottom: 32px;
}

.front-feature__badge {
  display: block;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
  padding: 6px 18px;
  border-radius: 9999px;
  background: var(--primary-vivid);
  color: var(--accent-yellow);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
}

.front-feature__badge-box {
  position: relative;
  display: block;
  width: fit-content;
  margin: 0 auto 20px;
  isolation: isolate;
  padding-bottom: 0.5rem;
}

.front-feature__badge-box::before {
  content: "";
  position: absolute;
  top: calc(50% + 2px);
  left: 0;
  right: 0;
  z-index: 0;
  width: 100%;
  height: 27px;
  transform: translateY(-50%);
  background: var(--primary-vivid);
  border-radius: 9999px;
  pointer-events: none;
}

.front-feature__badge-box .front-feature__badge {
  position: relative;
  z-index: 1;
  margin-bottom: 0;
  padding: 0 18px;
  line-height: 1;
  background: transparent;
  border-radius: 0;
}

.front-feature__badge-box .front-flow__heading-num {
  font-size: 32px;
  line-height: 1;
  padding-bottom: 2px;
  vertical-align: text-bottom;
  color: var(--accent-yellow);
  -webkit-text-stroke: 5px var(--primary-vivid);
  paint-order: stroke fill;
}

.front-feature__num-wrap {
  display: flex;
  align-items: flex-end;
  width: 100%;
  margin-bottom: 16px;
}

.front-feature__num-line {
  display: inline-flex;
  align-items: flex-end;
  gap: 10px;
  position: relative;
  padding-bottom: 1rem;
}

.front-feature__num-line::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 73px;
  height: 2px;
  background: var(--primary);
}

.front-feature__label {
  padding-bottom: 6px;
  font-size: 18px;
  font-weight: 700;
  color: var(--neutral);
  line-height: 1;
}

.front-feature__num {
  font-size: 40px;
  font-weight: 500;
  line-height: 0.9;
  color: var(--primary);
}

.front-feature__heading h2 {
  margin-bottom: 12px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}

.front-feature__heading h2 span {
  color: var(--primary);
}

.front-feature__lead {
  margin-bottom: 16px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--black);
}

.front-feature__text {
  margin-bottom: 4px;
  line-height: 1.6;
  color: var(--black);
}

.front-feature__text span,
.front-feature__lead span {
  color: var(--primary);
}

.front-feature__note {
  margin-bottom: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.45;
}

.front-plan-recommend {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.front-plan-recommend::before,
.front-plan-recommend::after {
  content: "";
  width: 18px;
  height: 2px;
  background: var(--black);
}

.front-plan-recommend::before { transform: rotate(60deg); }
.front-plan-recommend::after  { transform: rotate(-60deg); }

.front-plan-recommend--spacer {
  visibility: hidden;
  pointer-events: none;
}

.front-plan-card-col--niji .front-plan-recommend {
  justify-content: center;
}

@media (min-width: 992px) {
  .front-plan-card-row > .front-plan-card-col {
    display: flex;
    flex-direction: column;
  }

  .front-plan-card-row > .front-plan-card-col > .front-plan-card {
    flex: 1 1 auto;
  }
}

/* ---------------------------------
  fv
--------------------------------- */
.front-fv {
  position: relative;
  overflow: hidden;
  height: calc(100vh - 84px);
  height: calc(100svh - 120px);
}

.front-fv__image {
  position: absolute;
  inset: 0;
}

.front-fv__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.front-fv::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0) 38%,
    rgba(255, 255, 255, 0.55) 60%,
    rgba(255, 255, 255, 0.88) 80%,
    rgba(255, 255, 255, 0.97) 100%
  );
}

.front-fv__inner {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.25rem;
  z-index: 2;
}

.front-fv__fair {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 3;
  width: 300px;
  max-width: calc(100% - 4rem);
  pointer-events: none;
}

.front-fv-fair {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  max-width: 360px;
  padding: 10px;
  background: rgba(255, 255, 255, 0.9);
  color: var(--black);
  text-decoration: none;
  pointer-events: auto;
  transition: opacity 0.2s;
}

.front-fv-fair:hover {
  color: var(--black);
  opacity: 0.85;
}

.front-fv-fair__thumb {
  flex: 0 0 80px;
  width: 80px;
  height: 80px;
}

.front-fv-fair__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.front-fv-fair__body {
  display: block;
  min-width: 0;
}

.front-fv-fair__label {
  display: inline-block;
  margin-bottom: 4px;
  padding: 0 6px;
  background: var(--kazoku);
  color: var(--bs-white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.front-fv-fair__title {
  display: -webkit-box;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.front-fv-fair__text {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 2px;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: 12px;
  line-height: 1.5;
  opacity: 0.9;
}

@media (max-width: 991.98px) {
  .front-fv__fair {
    top: 0.75rem;
    left: 1.5rem;
    right: 1.5rem;
    width: auto;
    max-width: none;
  }

  .front-fv-fair {
    max-width: none;
    gap: 10px;
    padding: 8px;
  }

  .front-fv-fair__thumb {
    flex-basis: 56px;
    width: 56px;
    height: 56px;
  }

  .front-fv-fair__text {
    -webkit-line-clamp: 1;
  }
}

@media (min-width: 576px) and (max-width: 991.98px) {
  .front-fv__fair {
    left: auto;
    width: 166px;
  }

  .front-fv-fair {
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
  }

  .front-fv-fair__thumb {
    flex: none;
    width: 100%;
    height: auto;
    max-width: 150px;
    aspect-ratio: 16 / 9;
  }

  .front-fv-fair__text {
    -webkit-line-clamp: 2;
  }
}

@media (max-width: 991.98px) {
  .front-fv__inner {
    bottom: calc(var(--footer-fix-height, 90px) + 1.5rem);
  }
}

@media (max-width: 991.98px) {
  .front-fv__content {
    text-align: center;
  }

  .front-fv__head {
    justify-content: center;
  }
}

.front-fv__content {
  width: 100%;
  max-width: 100%;
  padding: 0;
}

.front-fv__label {
  display: inline-block;
  margin-bottom: 0;
  padding: 4px 12px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.front-fv__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 8px;
}

.front-fv__head-badge {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.front-fv__plan {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  margin-bottom: 16px;
}

@media (min-width: 576px) {
  .front-fv__plan {
    flex-wrap: nowrap;
    gap: 4px 8px;
  }
}

.front-fv__plan-text {
  display: flex;
  align-items: center;
  gap: 8px;
}
.front-fv__lead {
  margin-bottom: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  color: var(--neutral);
  text-shadow: 0 0 6px rgba(255, 255, 255, 1), 0 0 12px rgba(255, 255, 255, 1), 0 0 20px rgba(255, 255, 255, 0.8);
}

.front-fv__title {
  margin-bottom: 0;
  font-size: 42px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary);
  text-shadow:
    0 0 10px rgba(255, 255, 255, 1),
    0 0 20px rgba(255, 255, 255, 1),
    0 0 30px rgba(255, 255, 255, 0.8);
}

.front-fv__plan-type {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.3;
  color: var(--primary);
  margin-bottom: 0;
  white-space: nowrap;
}

.front-fv__plan-name {
  margin-bottom: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--bs-white);
  background-color: var(--primary-vivid);
  padding: 2px 8px;
  text-align: center;
  white-space: nowrap;
}

.front-fv__price-wrap {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  margin-bottom: 0;
}

.front-fv__price {
  margin-bottom: 0;
  font-variant-numeric: tabular-nums;
  font-size: 38px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary);
}

.front-fv__price-yen {
  font-size: 0.8em;
}

.front-fv__price-main {
  font-size: 1.5em;
}

.front-fv__price-sub {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding-bottom: 4px;
}

.front-fv__price-sub-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.front-fv__price-taxin {
  margin: 0;
  font-variant-numeric: tabular-nums;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--neutral);
  white-space: nowrap;
}

.front-fv__tax {
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
  color: var(--neutral);
}

.front-fv__from {
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  color: var(--primary);
}

.front-fv__text {
  max-width: 792px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--black);
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
}

@media (max-width: 767.98px) {
  .front-fv__price-wrap {
    flex-wrap: wrap;
  }

  .front-fv__price-sub {
    display: contents;
  }

  .front-fv__price-taxin {
    flex-basis: 100%;
    font-size: 14px;
  }
}

.front-fv-plan-sp {
  padding: 0 0 24px;
  background-color: var(--bs-white);
}

@media (max-width: 991.98px) {
  .front-fv-plan-sp .front-fv__plan {
    justify-content: center;
  }

  .front-fv-plan-sp .front-fv__price-wrap {
    justify-content: center;
  }

  .front-fv-plan-sp .front-fv__price-taxin {
    text-align: center;
  }

  .front-fv-plan-sp .front-fv__text {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
}

/* ---------------------------------
  contact band
--------------------------------- */
.front-contact-band {
  padding: 20px 0 24px;
  background: var(--secondary);
}

.front-contact-band__title {
  margin-bottom: 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--black);
}

.front-contact-band__emphasis {
  color: var(--primary);
  -webkit-text-emphasis: none;
  text-emphasis: none;
  background-image: radial-gradient(circle, currentColor 0.09em, transparent 0.1em);
  background-size: 1em 0.42em;
  background-position: 0 0;
  background-repeat: repeat-x;
  padding-top: 0.4em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.front-contact-band__card {
  display: block;
  padding: 0;
  text-align: center;
}

.front-contact-band__card img {
  display: block;
  width: 100%;
  max-width: 416px;
  height: auto;
  margin: 0 auto;
}

.front-contact-band__card--tel {
  background: transparent;
}

.front-contact-band__card--web {
  background: transparent;
}

.front-contact-band__sub {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--accent-yellow);
}

.front-contact-band__main {
  display: block;
  margin-bottom: 8px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--bs-white);
}

.front-contact-band__note {
  display: inline-block;
  align-self: center;
  padding: 6px 14px;
  border-radius: 9999px;
  background: var(--accent-yellow);
  color: var(--key);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.front-contact-band__note--white {
  background: var(--bs-white);
  color: var(--success);
  font-weight: 500;
}

/* ---------------------------------
  worry
--------------------------------- */
.front-worry {
  padding: 48px 0;
  overflow: visible;
}

.front-worry__lead {
  font-size: 14px;
  margin-bottom: 20px;
  line-height: 1.6;
}

.front-worry__box {
  padding: 20px 18px;
  background: var(--surface);
}

.front-worry__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.front-worry__list li {
  position: relative;
  padding: 0 0 12px 28px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--bs-white);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--neutral);
}

.front-worry__list li:last-child {
  margin-bottom: 0;
}

.front-worry__list li::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  width: 18px;
  height: 18px;
  border-radius: 3px;
  background: var(--primary);
}

.front-worry__list li::after {
  content: "";
  position: absolute;
  top: 6px;
  left: 5px;
  width: 7px;
  height: 11px;
  border: solid var(--bs-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.front-worry__list li em {
  font-style: normal;
  font-weight: 700;
  color: var(--primary);
}

.front-worry__message {
  margin-top: 20px;
}

.front-worry__message-text {
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 2px dotted var(--primary);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
  color: var(--black);
}

.front-worry__message-text span {
  color: var(--key);
  font-size: 18px;
}

.front-worry__message-title {
  margin-bottom: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary);
}

.front-worry__about {
  margin-top: 12px;
}

.front-worry__about-title {
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gray);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.front-worry__about-body {
  margin-bottom: 1rem;
}

.front-worry__about-image {
  margin-bottom: 16px;
}

.front-worry__about-image img {
  display: block;
  width: 100%;
  aspect-ratio: 285/212;
  object-fit: cover;
}

.front-worry__about-copy {
  margin: 16px 0 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.front-worry__about-text p.front-worry__about-catch {
  margin-bottom: 12px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--neutral);
}

.front-worry__about-text p {
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--neutral);
}

.front-worry__about-steps {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.front-worry__about-step {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding-bottom: 18px;
  border-bottom: 1px dotted var(--gray);
}

.front-worry__about-step-num {
  flex: 0 0 auto;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary);
}

.front-worry__about-step-body h4 {
  margin-bottom: 6px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  color: var(--primary);
}

.front-worry__about-step-body p {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--neutral);
}

/* ---------------------------------
  flow
--------------------------------- */
.front-flow {
  position: relative;
  padding: 0 0 48px;
  background: var(--secondary);
  overflow: visible;
}

.front-flow .container {
  padding-top: 48px;
}

.front-flow__heading {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0;
  text-align: center;
  transform: translateY(-50%);
  z-index: 2;
}

.front-flow__heading-box {
  position: relative;
  display: inline-block;
  isolation: isolate;
}

.front-flow__heading-box::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 0;
  width: 200px;
  height: 35px;
  transform: translate(-50%, -50%);
  background: var(--primary);
  clip-path: polygon(
    16px 0,
    calc(100% - 16px) 0,
    100% 50%,
    calc(100% - 16px) 100%,
    16px 100%,
    0 50%
  );
  pointer-events: none;
}

.front-flow__heading-box h2 {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0 0 .85rem;
  background: transparent;
  color: var(--bs-white);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}

.front-flow__heading-num {
  display: inline-block;
  font-size: 36px;
  line-height: 1.2;
  vertical-align: text-bottom;
  -webkit-text-stroke: 5px var(--primary);
  paint-order: stroke fill;
}

.front-flow__card {
  position: relative;
  height: 100%;
  padding: 10px;
  background: var(--bs-white);
  text-align: center;
  border: none;
}

.front-flow__card-inner {
  height: 100%;
  padding: 14px 10px;
  border: 2px dotted var(--primary);
}

.front-flow__card--pink .front-flow__card-inner {
  border-color: var(--primary);
}

.front-flow__card--blue .front-flow__card-inner {
  border-color: var(--heya);
}

.front-flow__card--green .front-flow__card-inner {
  border-color: var(--success);
}

.front-flow__badge {
  position: absolute;
  top: -10px;
  left: 0;
  z-index: 2;
  width: 52px;
  height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
}

.front-flow__badge-label {
  display: block;
  line-height: 1.2;
}

.front-flow__badge strong {
  font-size: 18px;
  line-height: .9;
  color: var(--accent-yellow, #f8f357);
}

.front-flow__badge::after {
  content: "";
  position: absolute;
  bottom: 4px;
  left: 62%;
  width: 0;
  height: 0;
  transform: translate(-50%, 100%) rotate(-28deg);
  border-style: solid;
  border-width: 10px 7px 0;
  border-color: var(--primary-vivid) transparent transparent;
}

.front-flow__num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-bottom: 12px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary);
}

.front-flow__num::before,
.front-flow__num::after {
  content: "";
  width: 18px;
  height: 2px;
  background: #bdbbb7;
}

.front-flow__tel-icon {
  width: 1em;
  margin-right: .2em;
  vertical-align: -.08em;
}

.front-flow__tel-link {
  color: inherit;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}

.front-flow__card h3 {
  margin-bottom: 12px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--black);
}

.front-flow__card h3 span {
  color: var(--primary);
}

.front-flow__card p {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--black);
}

.front-flow__card p.front-flow__tel {
  margin-bottom: 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary-vivid);
  display: flex;
  align-items: center;
  justify-content: center;
}

.front-flow__card p.front-flow__tel-note {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.front-flow__callout-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 32px 0 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}
.front-flow__border {
  border: 2px solid var(--primary);
}
.front-flow__callout-heading::before,
.front-flow__callout-heading::after {
  content: "";
  width: 24px;
  height: 2px;
  background: var(--primary);
}

.front-flow__callout-heading::before { transform: rotate(60deg); }
.front-flow__callout-heading::after  { transform: rotate(-60deg); }

.front-flow__callout {
  padding: 24px 20px;
  border-radius: 8px;
  background: rgba(248, 243, 87, 0.1);
}

.front-flow__callout-content {
  min-width: 0;
}

.front-flow__callout-side {
  display: flex;
  align-items: flex-end;
  gap: 8px 12px;
}

.front-flow__callout-side .front-flow__callout-illust {
  flex: 0 0 auto;
  margin-top: 0;
}

.front-flow__callout-side .front-flow__callout-illust img {
  display: block;
  width: auto;
  max-width: 110px;
  height: auto;
  margin: 0;
}

.front-flow__callout-sub {
  margin-bottom: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--black);
}

.front-flow__callout h3 {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 6px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--black);
  padding-bottom: 2px;
  border-bottom: 2px dotted var(--primary);
}

.front-flow__callout-name {
  flex: 0 0 auto;
  color: var(--primary);
  font-size: 1.35em;
}

.front-flow__callout-action {
  flex: 0 0 auto;
  font-size: 0.72em;
  line-height: 1.3;
}

.front-flow__callout-tel {
  display: flex;
  flex-direction: column;
  gap: 0;
  align-items: flex-start;
}

.front-flow__callout-tel a {
  color: var(--primary-vivid);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
}

.front-flow__callout-tel-link {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.2em;
  color: var(--primary-vivid);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-text-fill-color: var(--primary-vivid);
  user-select: none;
}

.front-flow__callout-tel-link:link,
.front-flow__callout-tel-link:visited,
.front-flow__callout-tel-link:hover,
.front-flow__callout-tel-link:active,
.front-flow__callout-tel-link:focus {
  color: var(--primary-vivid);
  text-decoration: none;
}

.front-flow__callout-tel-link .front-flow__tel-icon {
  display: block;
  flex: 0 0 auto;
  width: 1em;
  height: auto;
  margin-right: 0;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

.front-flow__callout-tel-link .number-font {
  display: inline-block;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-text-fill-color: currentColor;
  white-space: nowrap;
}

.front-flow__callout-tel > span:last-child {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 9999px;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.front-flow__callout-list {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.front-flow__callout-list li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.7;
  color: var(--neutral);
}

.front-flow__callout-list li::before {
  content: "";
  position: absolute;
  top: 4px;
  left: 0;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  background: var(--success);
}

.front-flow__callout-list li::after {
  content: "";
  position: absolute;
  top: 7px;
  left: 6px;
  width: 8px;
  height: 11px;
  border: solid var(--bs-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.front-flow__callout-illust img {
  display: block;
  width: 100%;
  max-width: 180px;
  height: auto;
  margin: 0 auto;
}
@media (max-width: 1199px) {
  .front-flow__callout-list li::before {
    top: 5px;
    left: 0;
    width: 14px;
    height: 14px;
    border-radius: 2px;
  }
  .front-flow__callout-list li::after {
    top: 7px;
    left: 4px;
    width: 5px;
    height: 8px;
  }
}

@media (max-width: 767.98px) {
  .front-worry__list li::before {
    top: 3px;
  }
  .front-worry__list li::after {
    top: 5px;
  }

  .front-flow__callout.text-start {
    padding: 20px 14px 22px;
    text-align: center !important;
  }

  .front-flow__callout-sub {
    font-size: 16px;
    line-height: 1.4;
  }

  .front-flow__callout-sub .text-primary {
    display: inline-block;
    margin-bottom: 2px;
  }

  .front-flow__callout h3 {
    justify-content: center;
    align-items: center;
    gap: 8px;
    width: fit-content;
    max-width: 100%;
    margin: 8px auto 16px;
    padding-bottom: 2px;
    line-height: 1.2;
  }

  .front-flow__callout-name {
    font-size: 42px;
    line-height: 1.1;
  }

  .front-flow__callout-action {
    font-size: 19px;
    line-height: 1.3;
    text-align: left;
  }

  .front-flow__callout-side {
    width: fit-content;
    max-width: 100%;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin: 0 auto 18px;
  }

  .front-flow__callout-list {
    flex: 0 0 auto;
    margin: 0;
  }

  .front-flow__callout-list li {
    font-size: 14px;
    line-height: 1.9;
  }

  .front-flow__callout-list li::before { top: 7px; }
  .front-flow__callout-list li::after  { top: 9px; }

  .front-flow__callout-side .front-flow__callout-illust {
    flex: 0 1 120px;
    min-width: 0;
  }

  .front-flow__callout-side .front-flow__callout-illust img {
    width: 100%;
    max-width: 120px;
    margin: 0 auto;
  }

  .front-flow__callout-tel {
    align-items: center;
    gap: 6px;
  }

  .front-flow__callout-tel a,
  .front-flow__callout-tel-link {
    font-size: 35px;
  }

  .front-flow__callout-tel > span:last-child {
    padding: 5px 14px;
    font-size: 13px;
  }
}


/* ---------------------------------
  plan feature
--------------------------------- */
.front-plan-card {
  height: 100%;
  overflow: hidden;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.front-plan-card__head {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 40px 10px 14px;
  color: var(--bs-white);
}

a.front-plan-card__head:hover {
  color: var(--bs-white);
  opacity: 0.92;
}

.front-plan-card__head::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--bs-white);
  opacity: .9;
}

.front-plan-card__head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 6px;
  height: 6px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.front-plan-card--sora .front-plan-card__head::after { color: var(--chokuso); }
.front-plan-card--niji .front-plan-card__head::after { color: var(--heya); }
.front-plan-card--gekko .front-plan-card__head::after { color: var(--kazoku); }

.front-plan-card--sora .front-plan-card__head {
  background: var(--chokuso);
}

.front-plan-card--niji .front-plan-card__head {
  background: var(--heya);
}

.front-plan-card--gekko .front-plan-card__head {
  background: var(--kazoku);
}

.front-plan-card__scale {
  flex: 0 0 auto;
  margin-bottom: 0;
  padding: 8px;
  border-radius: 4px;
  background: var(--bs-white);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.front-plan-card--sora .front-plan-card__scale {
  color: var(--chokuso);
}

.front-plan-card--niji .front-plan-card__scale {
  color: var(--heya);
}

.front-plan-card--gekko .front-plan-card__scale {
  color: var(--kazoku);
}

.front-plan-card__target {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.front-plan-card__body {
  position: relative;
  padding: 16px 16px 20px;
}

.front-plan-card__body h3 {
  margin-bottom: 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.front-plan-card--sora .front-plan-card__body h3 {
  color: var(--chokuso);
}

.front-plan-card--niji .front-plan-card__body h3 {
  color: var(--heya);
}

.front-plan-card--gekko .front-plan-card__body h3 {
  color: var(--kazoku);
}

.front-plan-card__image-wrap {
  position: relative;
  display: block;
  width: 100%;
}

.front-plan-card__recommended {
  position: absolute;
  bottom: 12px;
  right: 12px;
  display: block;
  width: 79px;
  height: auto;
}

.front-plan-card__image {
  display: block;
  width: 100%;
  margin-bottom: 14px;
}

.front-plan-card__tags {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.front-plan-card__tags li {
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  color: var(--bs-white);
}

@media (max-width: 767px) {
  .front-plan-card__tags {
    gap: 6px;
  }

  .front-plan-card__tags li {
    padding: 4px 2px;
    font-size: 12px;
  }
}

.front-plan-card__tags .is-muted {
  background: var(--gray);
}

.front-plan-card--sora .front-plan-card__tags .is-active {
  background: var(--chokuso);
}

.front-plan-card--niji .front-plan-card__tags .is-active {
  background: var(--heya);
}

.front-plan-card--gekko .front-plan-card__tags .is-active {
  background: var(--kazoku);
}

.front-plan-card__discount {
  position: relative;
  display: table;
  margin: 0 0 12px;
  padding: 6px 12px;
  border-radius: 30px;
  background: var(--key);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--bs-white);
  width: 100%;
}

.front-plan-card__discount::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 6px 5px 0;
  border-color: var(--key) transparent transparent;
}

.front-plan-card__discount-amount {
  color: var(--accent-yellow-strong);
}

.front-plan-card__price-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
}

.front-plan-card__price-meta {
  flex: 1 1 auto;
  min-width: 0;
}

.front-plan-card__regular {
  margin-bottom: 2px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: line-through;
  color: var(--gray);
}

.front-plan-card__price-note {
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--black);
}

.front-plan-card__price {
  flex: 0 0 auto;
  margin-bottom: 0;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
  text-align: right;
  color: var(--key);
}

/* ============================================================
   プラン・料金ページ（/plan/）
   ============================================================ */
.front-plan-card--chokuso .front-plan-card__head { background: var(--chokuso); }
.front-plan-card--chokuso .front-plan-card__body h3 { color: var(--chokuso); }
.front-plan-card--chokuso .front-plan-card__head::after { color: var(--chokuso); }
.front-plan-card--chokuso .front-plan-card__tags .is-active { background: var(--chokuso); }

.front-plan-card--jiin .front-plan-card__head { background: var(--success); }
.front-plan-card--jiin .front-plan-card__body h3 { color: var(--success); }
.front-plan-card--jiin .front-plan-card__head::after { color: var(--success); }
.front-plan-card--jiin .front-plan-card__tags .is-active { background: var(--success); }

.front-plan-card--heya .front-plan-card__head { background: var(--heya); }
.front-plan-card--heya .front-plan-card__body h3 { color: var(--heya); }
.front-plan-card--heya .front-plan-card__head::after { color: var(--heya); }
.front-plan-card--heya .front-plan-card__scale { color: var(--heya); }
.front-plan-card--heya .front-plan-card__tags .is-active { background: var(--heya); }

.front-plan-card--kazoku .front-plan-card__head { background: var(--kazoku); }
.front-plan-card--kazoku .front-plan-card__body h3 { color: var(--kazoku); }
.front-plan-card--kazoku .front-plan-card__head::after { color: var(--kazoku); }
.front-plan-card--kazoku .front-plan-card__scale { color: var(--kazoku); }
.front-plan-card--kazoku .front-plan-card__tags .is-active { background: var(--kazoku); }

.front-plan-card--kippan .front-plan-card__head { background: var(--primary); }
.front-plan-card--kippan .front-plan-card__body h3 { color: var(--primary); }
.front-plan-card--kippan .front-plan-card__head::after { color: var(--primary); }
.front-plan-card--kippan .front-plan-card__scale { color: var(--primary); }
.front-plan-card--kippan .front-plan-card__tags .is-active { background: var(--primary); }

.front-plan-card--heya .front-plan-card__scale,
.front-plan-card--kazoku .front-plan-card__scale,
.front-plan-card--kippan .front-plan-card__scale {
  padding: 2px 8px;
  white-space: nowrap;
}

.front-plan-card--chokuso .front-plan-card__price-note,
.front-plan-card--jiin .front-plan-card__price-note {
  text-align: right;
}

.front-plan-card--chokuso .front-plan-card__discount::after,
.front-plan-card--jiin .front-plan-card__discount::after,
.front-plan-card--heya .front-plan-card__discount::after,
.front-plan-card--kazoku .front-plan-card__discount::after,
.front-plan-card--kippan .front-plan-card__discount::after {
  bottom: -5px;
}

.front-plan-card--heya .front-plan-card__discount {
  font-size: 16px;
}

.front-plan-card--chokuso .front-plan-card__body,
.front-plan-card--jiin .front-plan-card__body,
.front-plan-card--heya .front-plan-card__body {
  padding-top: 12px;
}
.front-plan-card--chokuso .front-plan-card__body h3,
.front-plan-card--jiin .front-plan-card__body h3,
.front-plan-card--heya .front-plan-card__body h3 {
  font-size: 22px;
  margin-bottom: 10px;
}

.front-plan-card__no-discount {
  position: relative;
  display: table;
  margin: 0 0 12px;
  padding: 6px 12px;
  border-radius: 30px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--bs-white);
  width: 100%;
}
.front-plan-card__no-discount::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 6px 5px 0;
}
.chokuso-page .front-plan-card--chokuso .front-plan-card__no-discount, .chokuso-page .front-plan-card--jiin .front-plan-card__no-discount {
  line-height: 1;
}
.front-plan-card--chokuso .front-plan-card__no-discount { background: var(--chokuso); }
.front-plan-card--chokuso .front-plan-card__no-discount::after { border-color: var(--chokuso) transparent transparent; }
.front-plan-card--jiin .front-plan-card__no-discount { background: var(--success); }
.front-plan-card--jiin .front-plan-card__no-discount::after { border-color: var(--success) transparent transparent; }

.front-plan-card--chokuso .front-plan-card__price,
.front-plan-card--jiin .front-plan-card__price,
.front-plan-card--heya .front-plan-card__price,
.front-plan-card--kazoku .front-plan-card__price,
.front-plan-card--kippan .front-plan-card__price {
  font-size: 32px;
  white-space: nowrap;
}
.front-plan-card__price span {
  font-size: 24px;
}

.plan-list-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.plan-list-grid--pair {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  margin-top: 24px;
}

.plan-list-card--wide .front-plan-card__body {
  display: flex;
  align-items: stretch;
  padding: 0;
}
.plan-list-card--wide .front-plan-card__image-wrap {
  width: 34%;
  flex-shrink: 0;
}
.plan-list-card--wide .front-plan-card__image {
  height: 100%;
  object-fit: cover;
  margin-bottom: 0;
}
.plan-list-card--wide .front-plan-card__body-content {
  flex: 1;
  min-width: 0;
  padding: 16px 20px;
}
.plan-list-card--wide .front-plan-card__body h3 { font-size: 22px; margin-bottom: 2px; }
.plan-list-card--wide .front-plan-card__body h3 .sub {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: var(--neutral);
  margin-top: 2px;
}
.plan-list-card--wide .front-plan-card__tags { grid-template-columns: repeat(4, minmax(0,1fr)); margin: 10px 0 12px; }
.plan-list-card--wide .front-plan-card__discount { font-size: 16px; padding: 5px 12px; white-space: nowrap; }
.plan-list-card--wide .front-plan-card__price-row { flex-wrap: wrap; }
.plan-list-card--wide .front-plan-card__regular { font-size: 13px; }

@media (max-width: 1199px) {
  .plan-list-grid--pair {
    grid-template-columns: 1fr;
  }
}
@media  (min-width: 900px) and (max-width: 1199px) {
  .plan-list-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 900px) {
  .plan-list-grid, .plan-list-grid--pair { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; }
  .plan-list-grid--pair { margin-top: 24px; }
  .plan-list-grid .front-plan-card__body {
    display: flex;
    flex-direction: column;
    padding: 20px 16px;
  }
  .plan-list-grid .front-plan-card__image-wrap {
    grid-area: image;
  }
  .plan-list-grid .front-plan-card__image {
    height: 100%;
    object-fit: cover;
    margin-bottom: 0;
  }
  .plan-list-grid .front-plan-card__body h3 {
    align-self: flex-start;
  }
  .plan-list-grid .front-plan-card__body-content {
    grid-area: content;
    padding: 0 20px 16px;
  }
  .plan-list-grid .front-plan-card__tags { grid-template-columns: repeat(4, minmax(0,1fr)); margin: 10px 0 12px; }
  .plan-list-grid .front-plan-card__discount,
  .plan-list-grid .front-plan-card__no-discount { font-size: 16px; padding: 5px 12px; }
  .plan-list-grid .front-plan-card__price-row { flex-wrap: wrap; }
  .front-plan-card__price span {
    font-size: 20px;
  }
  .plan-list-grid .front-plan-card__regular { font-size: 13px; }
  .plan-list-grid--pair .front-plan-card__body {
    display: flex;
    flex-direction: column;
    padding: 20px 16px;
  }
  .plan-list-grid--pair .front-plan-card__image-wrap {
    width: 100%;
  }
  .plan-list-grid--pair .front-plan-card__body-content {
    display: contents;
  }
  .plan-list-grid--pair .front-plan-card__body h3 {
    order: -1;
    align-self: flex-start;
  }
}
@media (max-width: 560px) {
  .plan-list-card--wide .front-plan-card__image-wrap { width: 38%; }
  .plan-list-grid--pair .front-plan-card__image-wrap { width: 100%; }
  .plan-list-card--wide .front-plan-card__body-content { padding: 12px 14px; }
  .plan-list-card--wide .front-plan-card__body h3 { font-size: 17px; margin-bottom: 6px; }
  .plan-list-card--wide .front-plan-card__tags { gap: 4px; margin-bottom: 8px; }
  .plan-list-card--wide .front-plan-card__tags li { font-size: 12px; padding: 3px 2px; }
  .plan-list-card--wide .front-plan-card__discount { font-size: 14px; padding: 4px 10px; margin-bottom: 8px; }
  .plan-list-card--wide .front-plan-card__regular { font-size: 12px; }

  .plan-list-grid .front-plan-card__body { grid-template-columns: 38% 1fr; }
  .plan-list-grid .front-plan-card__body h3 { font-size: 18px;}
  .plan-list-grid .front-plan-card__body-content { padding: 0 14px 12px; }
  .plan-list-grid .front-plan-card__tags { gap: 4px; margin-bottom: 8px; }
  .plan-list-grid .front-plan-card__tags li { font-size: 12px; padding: 3px 2px; }
  .plan-list-grid .front-plan-card__discount,
  .plan-list-grid .front-plan-card__no-discount { font-size: 14px; padding: 4px 10px; margin-bottom: 8px; }
  .plan-list-grid .front-plan-card__regular { font-size: 12px; }

  .plan-list-card--wide .front-plan-card__price,
  .plan-list-grid .front-plan-card__price {
    font-size: 20px;
    white-space: normal;
  }
  .front-plan-card__price span {
    font-size: 14px;
  }
}
@media (min-width: 768px) {
  .chokuso-page .front-plan-card--chokuso .front-plan-card__no-discount, .chokuso-page .front-plan-card--jiin .front-plan-card__no-discount {
    font-size: 20px;
    line-height: 1;
  }
} 
@media (min-width: 992px) {
  .chokuso-page .front-plan-card--chokuso .front-plan-card__no-discount, .chokuso-page .front-plan-card--jiin .front-plan-card__no-discount {
    font-size: 24px;
    line-height: 1;
  }
} 
.front-plan-option {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--primary);
  border-bottom: 1px solid var(--primary);
  padding-bottom: 24px;
}

.front-plan-option__images {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 20px;
}

.front-plan-option__images img {
  display: block;
  width: 100%;
}

.front-plan-option__sub {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--black);
}

.front-plan-option__body h3 {
  margin-bottom: 6px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary);
}

.front-plan-option__title {
  margin-bottom: 14px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--neutral);
}

.front-plan-option__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.front-plan-option__tags li {
  padding: 4px 10px;
  border: 1px solid var(--primary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--primary);
}

.front-plan-note {
  margin-top: 24px;
}

.front-plan-note p {
  margin-bottom: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--neutral);
}

/* ---------------------------------
  hall feature
--------------------------------- */
.front-hall-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.front-hall-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.front-hall-card__image img {
  display: block;
  width: 100%;
}

.front-hall-card__body {
  padding: 20px 16px;
}

.front-hall-card__head {
  position: relative;
  margin-bottom: 12px;
  padding-bottom: 6px;
}

.front-hall-card__head::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 80px;
  height: 2px;
  background: var(--primary);
}

.front-hall-card__body h3 {
  margin-bottom: 8px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--black);
}

.front-hall-card__desc {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  color: rgba(89, 84, 75, 0.8);
}

.front-hall-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.front-hall-card__tags li {
  padding: 4px 8px;
  border: 1px solid var(--primary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  color: var(--primary);
}

.front-hall-card__info {
  margin-bottom: 18px;
  padding: 16px;
  background: var(--surface);
}

.front-hall-card__info p {
  position: relative;
  margin-bottom: 8px;
  padding-left: 26px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.36;
  color: var(--black);
}
.front-hall-card__info p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 16px;
  height: 16px;
  background: var(--primary);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.visit-list .front-hall-card__info p::before  {
  top: 2px;
}

.front-hall-card__info p.is-address::before {
  -webkit-mask-image: url("library/images/icon/map-pin.svg");
  mask-image: url("library/images/icon/map-pin.svg");
}

.front-hall-card__info p.is-capacity::before {
  -webkit-mask-image: url("library/images/icon/person.svg");
  mask-image: url("library/images/icon/person.svg");
}

.front-hall-card__info p.is-access::before {
  -webkit-mask-image: url("library/images/icon/time.svg");
  mask-image: url("library/images/icon/time.svg");
}

.front-hall-card__info p:last-child {
  margin-bottom: 0;
}

.front-hall-note {
  margin-top: 16px;
  margin-bottom: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--black);
}

/* ---------------------------------
  trust feature
--------------------------------- */
.front-feature--trust {
  position: relative;
  background: var(--secondary);
}

.front-feature--trust::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -22px;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 22px 26px 0;
  border-color: var(--secondary) transparent transparent;
}

.front-trust-metrics__item {
  height: 100%;
  padding: 20px 12px;
  background: var(--bs-white);
  border-top: 1px solid var(--primary);
  border-bottom: 1px solid var(--primary);
  text-align: center;
}

.front-trust-metrics__value {
  margin-bottom: 8px;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--primary);
}

.front-trust-metrics__value span {
  font-size: 22px;
}

.front-trust-metrics__label {
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--black);
}

.front-trust-metrics__sub {
  margin-bottom: 0;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  color: var(--neutral);
}

/* ---------------------------------
  tablet
--------------------------------- */
@media (min-width: 768px) {
  .front-fv {
    height: calc(100vh - 165px);
    height: calc(100svh - 165px);
  }
  .front-feature--hall {
    padding-top: 0;
  }

  .front-section-heading__sub {
    font-size: 20px;
  }

  .front-section-heading__title {
    font-size: 32px;
  }

  .front-section-heading__mark {
    width: 80px;
  }

  .front-feature__badge {
    font-size: 20px;
    padding: 8px 32px;
  }
  .front-feature__badge-box::before {
    height: 37px;
    top: calc(50% + 8px);
  }

  .front-feature__badge-box .front-feature__badge {
    padding: 0 32px;
  }

  .front-feature__badge-box .front-flow__heading-num {
    font-size: 48px;
    -webkit-text-stroke: 10px var(--primary-vivid);
  }

  .front-feature__label {
    font-size: 24px;
  }

  .front-feature__num {
    font-size: 80px;
  }
  .front-feature__heading h2 {
    margin-bottom: 16px;
  }

  .front-feature--trust .front-feature__heading.text-center h2 {
    font-size: 48px;
  }

  .front-feature__lead {
    font-size: 24px;
  }

  .front-feature__text {
    font-size: 16px;
    line-height: 1.45;
  }

  .front-feature__note {
    font-size: 16px;
    line-height: 1.45;
  }

  .front-plan-recommend {
  line-height: 1.2;
    font-size: 24px;
    margin-bottom: 12px;
  }
  .front-fv__plan {
    gap: 4px 8px;
  }

  .front-fv__price-taxin {
    font-size: 16px;
  }

  .front-fv__text {
    line-height: 1.2;
  }

  .front-contact-band {
    padding: 34px 0 42px;
  }

  .front-contact-band__title {
    margin-bottom: 24px;
    font-size: 30px;
  }

  .front-contact-band__sub {
    font-size: 16px;
  }

  .front-contact-band__main {
    font-size: 40px;
  }

  .front-contact-band__note {
    font-size: 14px;
  }

  .front-worry {
    padding: 96px 0;
  }

  .front-worry__box {
    padding: 24px 28px;
  }

  .front-worry__list li {
    font-size: 16px;
  }

  .front-worry__message-text {
    font-size: 16px;
  }

  .front-worry__message-text span {
    font-size: 20px;
  }

  .front-worry__message-title {
    font-size: 28px;
  }

  .front-worry__about {
    margin-top: 0;
  }

  .front-worry__about-title {
    font-size: 32px;
  }

  .front-worry__about-body {
    display: flex;
    gap: 18px;
    align-items: flex-start;
  }

  .front-worry__about-image {
    flex: 0 0 40%;
    margin-bottom: 0;
  }

  .front-worry__about-text {
    flex: 1 1 auto;
  }

  .front-worry__about-copy {
    font-size: 19px;
    text-indent: -12px;
    margin: 12px 0 0;
  }

  .front-worry__about-text p.front-worry__about-catch {
    font-size: 32px;
  }

  .front-flow {
    padding: 0 0 84px;
  }

  .front-flow .container {
    padding-top: 72px;
  }

  .front-flow__heading-box::before {
    width: 323px;
    height: 50px;
    clip-path: polygon(
      18px 0,
      calc(100% - 18px) 0,
      100% 50%,
      calc(100% - 18px) 100%,
      18px 100%,
      0 50%
    );
  }

  .front-flow__heading-box h2 {
    font-size: 32px;
    padding: 0 0 1.5rem;
  }

  .front-flow__heading-num {
    font-size: 60px;
    -webkit-text-stroke: 10px var(--primary);
  }

  .front-flow__card {
    padding: 12px;
  }

  .front-flow__badge {
    width: 64px;
    height: 64px;
  }

  .front-flow__card-inner {
    padding: 16px 10px;
  }

  .front-flow__num {
    font-size: 32px;
  }

  .front-flow__card h3 {
    font-size: 21px;
  }

  .front-flow__card p {
  line-height: 1.6;
  }

  .front-flow__tel {
    font-size: 44px;
  }
  .front-flow__card p.front-flow__tel {
    font-size: 32px;
  }

  .front-flow__tel-note {
    font-size: 14px;
  }
  .front-flow__callout {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "sub sub"
      "h3 h3"
      "info illust";
    column-gap: 12px;
    row-gap: 0;
    align-items: center;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
    padding: 18px 30px;
  }

  .front-flow__callout-content,
  .front-flow__callout-row {
    display: contents;
  }

  .front-flow__callout-sub {
    grid-area: sub;
  }

  .front-flow__callout-row h3 {
    grid-area: h3;
    margin-bottom: 16px;
  }

  .front-flow__callout-md-row {
    grid-area: info;
  }
  .front-flow__callout-list {
    flex-direction: row;
    gap: 1rem;
    margin: 0;
  }
  .front-flow__callout-illust {
    grid-area: illust;
    display: block;
    margin-top: 0;
  }

  .front-flow__callout-illust img {
    max-width: 120px;
    margin: 0;
  }

  .front-plan-card__body {
    padding: 18px 18px 22px;
  }

  .front-plan-card__body h3 {
    font-size: 28px;
  }

  .front-plan-card__discount {
    font-size: 24px;
  }

  .front-plan-card__price {
    font-size: 48px;
  }

  .front-plan-option {
    margin-top: 44px;
    padding-top: 28px;
    padding-bottom: 28px;
  }

  .front-plan-option__images {
    gap: 12px;
  }

  .front-plan-option__sub {
    font-size: 16px;
  }

  .front-plan-option__body h3 {
    font-size: 32px;
  }

  .front-plan-option__title {
    font-size: 32px;
  }

  .front-plan-option__tags li {
    font-size: 14px;
  }

  .front-plan-note p {
    font-size: 14px;
  }

  .front-hall-card__body {
    padding: 28px 24px;
  }

  .front-hall-card__body h3 {
    line-height: 1.45;
    font-size: 24px;
  }

  .front-hall-card__desc {
    line-height: 1.7;
  }

  .front-hall-card__info p {
    font-size: 15px;
  }

  .front-hall-note {
    font-size: 14px;
  }

  .front-trust-metrics__item {
    padding: 26px 14px;
  }

  .front-trust-metrics__value {
    font-size: 44px;
  }

  .front-trust-metrics__value span {
    font-size: 30px;
  }
  .front-trust-metrics__label {
  line-height: 1.45;
    font-size: 14px;
  }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .front-flow__callout-tel {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
}
@media (min-width: 1200px) {
  .front-worry__message-title {
    font-size: 32px;
  }
  .front-hall-card__body h3 {
    margin-bottom: 0;
  }
  .front-flow__badge {
    top: -16px;
    left: -8px;
    width: 96px;
    height: 96px;
    font-size: 14px;
  }

  .front-flow__badge strong {
    font-size: 45px;
  }

  .front-flow__badge::after {
    left: 60%;
    bottom: 4px;
    border-width: 12px 8px 0;
    transform: translate(-50%, 100%) rotate(-28deg);
  }
  .front-flow__card p.front-flow__tel {
    font-size: 34px;
  }
  .front-flow__card p.front-flow__tel-note {
    font-size: 13px;
  }
  .front-flow__card p {
    font-size: 16px;
  }

  .front-flow__callout {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas:
      "sub  sub  illust"
      "h3   list illust"
      "tel  tel  illust";
    column-gap: 24px;
    row-gap: 0;
    align-items: center;
    max-width: 995px;
  }

  .front-flow__callout-content,
  .front-flow__callout-row,
  .front-flow__callout-md-row,
  .front-flow__callout-side {
    display: contents;
  }

  .front-flow__callout-sub {
    grid-area: sub;
  }

  .front-flow__callout-row h3 {
    grid-area: h3;
  }

  .front-flow__callout-list {
    grid-area: list;
  }

  .front-flow__callout-tel {
    grid-area: tel;
  }

  .front-flow__callout-illust {
    grid-area: illust;
    display: block;
    margin-top: 0;
  }

  .front-flow__callout-illust img {
    max-width: 190px;
    margin: 0;
  }

  .front-flow__callout-action {
    font-size: inherit;
    line-height: inherit;
  }

  .front-flow__callout-heading {
    margin: 44px 0 14px;
    font-size: 26px;
  }

  .front-flow__callout-sub {
    font-size: 17px;
  }

  .front-flow__callout h3 {
    font-size: 34px;
  }

  .front-flow__callout-tel {
    flex-direction: row;
    align-items: baseline;
    gap: 14px;
  }

  .front-flow__callout-tel a,
  .front-flow__callout-tel-link {
    font-size: 40px;
  }

  .front-flow__callout-list {
    display: grid;
    flex: none;
    grid-template-columns: repeat(2, auto);
    justify-content: start;
    gap: 0 8px;
    margin: 0;
  }

  .front-flow__callout-list li:nth-child(3) {
    grid-column: 1;
  }

  .front-flow__callout-list li {
    font-size: 15px;
    white-space: nowrap;
  }
}
@media (min-width: 1400px) {
  .front-flow__card p.front-flow__tel {
    font-size: 44px;
  }
  .front-flow__card p.front-flow__tel-note {
    font-size: 1rem;
  }
}

/* ---------------------------------
  pc
--------------------------------- */
@media (min-width: 992px) {
  .front-feature {
    padding: 96px 0;
  }

  .front-feature--hall {
    padding-top: 0;
  }

  .front-feature__heading {
    margin-bottom: 48px;
  }
  .front-fv {
    height: calc(100vh - 130px);
    height: calc(100svh - 130px);
  }

  .front-fv__content {
    max-width: 1080px;
  }

  .front-fv__title {
    font-size: 60px;
    line-height: 1.2;
    letter-spacing: 0;
  }

  .front-fv__label {
    font-size: 16px;
    padding: 6px 12px;
  }

  .front-fv__lead {
    font-size: 24px;
  }

  .front-fv__plan-type {
    font-size: 40px;
  }

  .front-fv__plan-name {
    font-size: 20px;
    padding: 3px 8px;
  }

  .front-fv__tax {
    font-size: 14px;
  }

  .front-fv__from {
    font-size: 30px;
  }

  .front-fv__plan {
    gap: 0 24px;
  }
  .front-fv__head {
    align-items: flex-end;
    gap: 4px 8px;
  }

  .front-fv__head-badge {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  .front-fv__plan-text {
    flex-direction: row;
    gap: 0 12px;
  }
  .front-fv__price {
    font-size: 52px;
    font-weight: 500;
    line-height: 1;
  }

  .front-fv__text {
    font-size: 22px;
  }

  .front-worry__about-body {
    gap: 24px;
  }
  .front-worry__about-steps {
    gap: 30px;
  }
  .front-worry__about-step {
    padding-bottom: 30px;
  }

  .front-plan-option {
    display: flex;
    align-items: center;
    gap: 28px;
  }

  .front-plan-option__images {
    flex: 0 0 50%;
    margin-bottom: 0;
  }

  .front-plan-option__body {
    flex: 1 1 auto;
  }

  .front-hall-card {
    display: flex;
    align-items: stretch;
  }

  .front-hall-card__image {
    flex: 0 0 49%;
  }

  .front-hall-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .front-hall-card__body {
    flex: 1 1 auto;
    padding: 32px 28px;
  }

  .front-hall-card__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 14px;
  }

  .front-hall-card__desc {
    flex: 0 1 auto;
    max-width: 44%;
  }

  .front-hall-card--reverse {
    flex-direction: row-reverse;
  }
}
@media (min-width: 1200px) {
  .front-fv__content {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
    column-gap: 40px;
    row-gap: 0px;
    align-items: center;
    max-width: 1296px;
  }

  .front-fv__head {
    grid-column: 1;
    grid-row: 1 / 3;
    margin-bottom: 0;
  }
  .front-fv__plan {
    grid-column: 2;
    grid-row: 1;
    margin-bottom: 0;
    padding: 18px 28px 10px;
    border-radius: 8px 8px 0 0;
    background-color: rgba(255, 255, 255, 0.72);
  }

  .front-fv__text {
    grid-column: 2;
    grid-row: 2;
    max-width: none;
    padding: 0 28px 18px;
    border-radius: 0 0 8px 8px;
    background-color: rgba(255, 255, 255, 0.72);
  }
  .front-fv__title {
    font-size: 70px;
  }

  .front-fv__lead {
    font-size: 22px;
  }

  .front-fv__label {
    font-size: 15px;
    padding: 5px 12px;
  }

  .front-fv__plan-type {
    font-size: 30px;
  }

  .front-fv__plan-name {
    font-size: 16px;
    padding: 3px 14px;
    border-radius: 9999px;
  }
  .front-fv__price {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -0.01em;
  }
  .front-fv__price-taxin {
    padding-left: 10px;
    border-left: 1px solid var(--gray);
  }

  .front-fv__tax {
    font-size: 14px;
  }

  .front-fv__from {
    font-size: 24px;
  }

  .front-fv__price-taxin {
    font-size: 14px;
  }

  .front-fv__text {
    font-size: 16px;
    line-height: 1.6;
  }
  .front-fv__plan {
    align-self: end;
  }

  .front-fv__text {
    align-self: start;
  }
  .front-hall-card__desc {
    max-width: 52%;
  }
  .front-hall-card__desc {
    font-size: 16px;
  }
}

@media (min-width: 1200px) and (max-width: 1299.98px) {
  .front-fv__content {
    column-gap: 24px;
  }

  .front-fv__title {
    font-size: 58px;
  }

  .front-fv__plan {
    padding: 16px 20px 8px;
  }

  .front-fv__text {
    padding: 0 20px 16px;
    font-size: 15px;
  }

  .front-fv__price {
    font-size: 32px;
  }
}
/* ---------------------------------
  staff
--------------------------------- */
.front-staff {
  background: var(--bs-white);
}

.front-staff-card__image {
  width: 100%;
  max-width: 180px;
  margin: 0 auto;
}
.front-staff-card__image img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 50%;
}

.front-staff-card__position {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--primary);
}

.front-staff-card__name {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--neutral);
}

/* ---------------------------------
  safe
--------------------------------- */
.front-safe {
  background: var(--bs-white);
}

.front-safe__image img {
  display: block;
  width: 100%;
}

.front-safe__title {
  padding: 10px 16px;
  margin-bottom: 0;
  background: linear-gradient(90deg, rgba(235, 94, 107, 0) 0%, rgba(235, 94, 107, 0.9) 18%, rgba(235, 94, 107, 0.9) 82%, rgba(235, 94, 107, 0) 100%);
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--bs-white);
}
.front-safe__mini-point {
  position: relative;
  height: 100%;
  padding: 8px 10px 8px 30px;
  background: var(--surface);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--neutral);
}

.front-safe__mini-point::before {
  content: "";
  position: absolute;
  left: 11px;
  top: 12px;
  width: 6px;
  height: 11px;
  border: solid var(--primary-vivid);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.front-safe__point {
  position: relative;
  padding: 14px 12px 14px 72px;
  background: var(--surface);
  border: 1px solid var(--primary);
}

.front-safe__point[class*="icon-safe"]::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 50%;
  width: 48px;
  height: 48px;
  transform: translateY(-50%);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.front-safe__point.icon-safe01::before {
  background-image: url("./library/images/icon/icon-safe01.svg");
}

.front-safe__point.icon-safe02::before {
  background-image: url("./library/images/icon/icon-safe02.svg");
}

.front-safe__point.icon-safe03::before {
  background-image: url("./library/images/icon/icon-safe03.svg");
}

.front-safe__point.icon-safe04::before {
  background-image: url("./library/images/icon/icon-safe04.svg");
}

.front-safe__point-label {
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--neutral);
  text-align: center;
}

.front-safe__point-value {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.45;
  color: var(--primary);
  text-align: center;
}

/* ---------------------------------
  episode
--------------------------------- */
.front-episode {
  background: var(--surface);
}
.front-episode .front-feature__heading h2 {
  color: var(--primary);
  font-size: 36px;
  line-height: 1.2;
}

.front-episode-card {
  overflow: hidden;
  background: var(--bs-white);
  border: 1px solid var(--surface);
  display: flex;
  flex-direction: column;
}

.front-episode-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: var(--secondary);
}

.front-episode-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
}

.front-episode-card__meta {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.front-episode-card__name {
  margin-bottom: 0;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary);
  white-space: nowrap;
}

.front-episode-card__stars {
  flex-shrink: 0;
  font-size: 16px;
  line-height: 1;
  color: var(--gold-dark);
  letter-spacing: 0.1em;
}

.front-episode-card__body {
  padding: 20px;
  min-height: 100px;
}

.front-episode-card__body p {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  color: #000000;
  margin-bottom: 0;
}

.front-episode-card__tag-row {
  gap: 9px;
}

.front-episode-card__tag {
  display: inline-block;
  padding: 3px 8px;
  border: 1px solid currentColor;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  background: var(--bs-white);
}

.front-episode-card__tag--blue {
  color: var(--heya);
}

.front-episode-card__tag--green {
  color: var(--success);
}

.front-episode-card__tag--gold {
  color: var(--kazoku);
}

.front-episode-card__people {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--gray);
}

/* ---------------------------------
  after support
--------------------------------- */
.front-after-support {
  background: var(--bs-white);
}

.front-after-support-card {
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  --card-color: var(--heya);
}

.front-after-support-card--blue  { --card-color: var(--heya); }
.front-after-support-card--red   { --card-color: var(--primary); }
.front-after-support-card--green { --card-color: var(--success); }
.front-after-support-card--gold  { --card-color: var(--gold); }

.front-after-support-card__media {
  flex: 0 0 auto;
}

.front-after-support-card__photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.front-after-support-card__content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
}

.front-after-support-card__body {
  flex: 1 1 auto;
  padding: 20px 16px;
}

.front-after-support-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--card-color);
}

.front-after-support-card__icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.front-after-support-card__body p {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--neutral);
}

@media (min-width: 768px) {
  .front-after-support-card {
    flex-direction: row;
    align-items: stretch;
  }

  .front-after-support-card__media {
    flex: 0 0 33.333%;
  }

  .front-after-support-card__photo {
    width: 100%;
    height: 100%;
    min-height: 100%;
    aspect-ratio: auto;
  }

  .front-after-support-card__content {
    flex: 1 1 auto;
  }
}

/* ---------------------------------
  faq
--------------------------------- */
.front-faq {
  background: var(--bs-white);
}

@media (min-width: 768px) {
  .front-faq__container {
    width: min(100% - 24px, 720px);
    max-width: 720px;
  }
}
@media (min-width: 992px) {
  .front-faq__container {
    width: min(100% - 48px, 995px);
    max-width: 995px;
  }
}

.front-faq-group__title {
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--black);
}

.front-faq-item + .front-faq-item {
  margin-top: 4px;
}

.front-faq-item__q {
  position: relative;
  padding: 14px 32px 14px 44px;
  background: var(--secondary);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--primary);
  cursor: pointer;
}

.front-faq-item__q::before {
  content: "Q";
  position: absolute;
  top: 14px;
  left: 16px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  color: var(--primary);
}

.front-faq-item__q::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--primary);
  border-bottom: 2px solid var(--primary);
  transform: translateY(-65%) rotate(45deg);
  transition: transform .2s ease;
}

.front-faq-item.is-open .front-faq-item__q::after {
  transform: translateY(-35%) rotate(-135deg);
}

.front-faq-item__a {
  position: relative;
  display: none;
  padding: 16px 16px 16px 44px;
  background: var(--surface);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.36;
  color: var(--neutral);
}

.front-faq-item__a::before {
  content: "A";
  position: absolute;
  top: 16px;
  left: 16px;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  color: var(--neutral);
}

/* ---------------------------------
  bottom cta
--------------------------------- */
.front-bottom-cta {
  background: var(--surface);
}

.front-bottom-cta__box {
  padding: 20px;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.08);
}

.front-bottom-cta__image img {
  display: block;
  width: 100%;
}

/* ---------------------------------
  tablet
--------------------------------- */
@media (min-width: 768px) {
  .front-staff-card__image {
    max-width: 220px;
  }

  .front-staff-card__position {
    font-size: 14px;
  }

  .front-staff-card__name {
    font-size: 18px;
  }

  .front-safe__title {
    padding: 12px 24px;
    font-size: 24px;
  }

  .front-safe__mini-point {
  line-height: 1.2;
    font-size: 12px;
  }

  .front-safe__point {
    padding: 16px 14px 16px 72px;
  }

  .front-safe__point-label {
    font-size: 12px;
  }

  .front-safe__point-value {
  line-height: 1.45;
    font-size: 24px;
  }

  .front-episode-card__head {
    padding: 14px 20px;
  }
  .front-episode-card__icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
  }

  .front-episode-card__meta {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }

  .front-episode-card__name {
    font-size: 18px;
  }

  .front-episode-card__body {
    padding: 20px;
  }

  .front-episode-card__body p {
    font-size: 16px;
  }

  .front-episode-card__tag-row {
    gap: 13px;
  }

  .front-episode-card__tag {
    font-size: 16px;
  }

  .front-episode-card__people {
    font-size: 18px;
  }

  .front-after-support-card__body {
    padding: 20px 18px;
  }

  .front-after-support-card__title {
    font-size: 20px;
  }

  .front-after-support-card__body p {
    font-size: 14px;
  }

  .front-faq-group__title {
    font-size: 24px;
    line-height: 1.2;
  }

  .front-faq-item__q {
    padding: 14px 40px 14px 58px;
    font-size: 20px;
  }
  .front-faq-item__q::before {
    left: 24px;
    font-size: 20px;
  }

  .front-faq-item__a {
    padding: 16px 24px 16px 58px;
    font-size: 16px;
  }

  .front-faq-item__a::before {
    left: 24px;
    font-size: 20px;
  }

  .front-bottom-cta__box {
    padding: 28px;
  }
}

/* ---------------------------------
  pc
--------------------------------- */
@media (min-width: 992px) {
  .front-staff-card__image {
    max-width: 255px;
  }

  .front-safe__title {
    font-size: 24px;
  }

  .front-safe__content {
    padding-left: 8px;
  }

  .front-safe__mini-point {
  line-height: 1.2;
    min-height: 38px;
    display: flex;
    align-items: center;
  }

  .front-safe__point {
    min-height: 96px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .front-safe__point-value {
  line-height: 1.45;
    font-size: 24px;
  }

  .front-episode-card {
    height: 100%;
  }

  .front-episode-card__head {
    min-height: 72px;
    flex-shrink: 0;
  }

  .front-episode-card__meta {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }

  .front-episode-card__body {
    min-height: 100px;
    flex: 1 1 auto;
  }

  .front-after-support-card__body {
    padding: 22px 20px;
  }

  .front-after-support-card__title {
    gap: 12px;
    font-size: 20px;
  }

  .front-after-support-card__icon {
    flex-basis: 48px;
    width: 48px;
    height: 48px;
  }

  .front-bottom-cta__box {
    padding: 32px;
  }
}

/* ========================================
   はじめての方へ
======================================== */
.guide-page {
  color: var(--black);
  background: var(--bs-white);
  overflow: hidden;
}

.guide-page *,
.guide-page *::before,
.guide-page *::after {
  box-sizing: border-box;
}

.guide-page img {
  max-width: 100%;
  height: 100%;
  vertical-align: bottom;
}
.guide-page img.front-plan-card__recommended {
  height: auto;
}

.guide-container {
  width: min(100% - 48px, 1296px);
  margin: 0 auto;
}
.guide-container.guide-container--narrow {
  width: min(100% - 48px, 995px);
}
.sp-only {
  display: inline;
}
.br-pc {
  display: none;
}
@media (min-width: 768px) {
  .br-pc {
    display: inline;
  }
  .br-sp {
    display: none;
  }
}

.guide-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 250px;
  min-height: 60px;
  padding: 16px 32px;
  background: var(--primary);
  color: var(--bs-white);
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  transition: opacity 0.3s ease;
}

.guide-btn:hover {
  opacity: 0.85;
  color: var(--bs-white);
}

.guide-btn-wrap {
  margin-top: 32px;
  text-align: center;
}

.guide-heading-line {
  width: 80px;
  height: 1px;
  background: var(--primary);
}

.guide-page-title {
  margin: 0 0 16px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.guide-section {
  padding: 48px 0;
  scroll-margin-top: 100px;
}
.pt-6 {
  padding-top: 6rem !important;
}

.pb-6 {
  padding-bottom: 6rem !important;
}

.py-6 {
  padding-top: 6rem !important;
  padding-bottom: 6rem !important;
}

@media (min-width: 992px) {
  .pt-lg-6 {
    padding-top: 6rem !important;
  }

  .pb-lg-6 {
    padding-bottom: 6rem !important;
  }

  .py-lg-6 {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
  }
}

.section-heading {
  margin-bottom: 24px;
  text-align: center;
}

.section-heading h2 {
  margin: 0 0 16px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.section-heading--sm h2 {
  font-size: 22px;
}

.section-heading p {
  margin: 0;
  text-align: justify;
}

.guide-section--pink {
  background: var(--secondary);
}

.guide-section-heading {
  margin-bottom: 24px;
  text-align: center;
}

.guide-section-heading h2 {
  margin: 0 0 16px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.guide-section-heading p.guide-text {
  text-align: left;
}
.guide-section-text {
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
}
/* mv */
.guide-mv {
  position: relative;
  padding: 32px 0 0;
  background: linear-gradient(
    to bottom,
    var(--surface-pink) 0,
    var(--surface-pink) calc(100% - 48px),
    var(--bs-white) calc(100% - 48px),
    var(--bs-white) 100%
  );
}

.guide-mv > .guide-container {
  position: relative;
  z-index: 1;
}

.guide-breadcrumb {
  margin: 0 0 24px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--neutral);
}

.guide-mv__grid {
  display: grid;
  gap: 24px;
}

.guide-mv__lead {
  margin: 0 0 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.guide-mv__text {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
}

.guide-mv__image img {
  display: block;
  width: 100%;
}

/* nav */
.guide-nav {
  padding:  24px 0 48px;
}

.guide-nav__grid {
  display: grid;
  gap: 16px;
}

.guide-nav-card {
  display: grid;
  grid-template-columns: 72px 1fr 40px;
  align-items: center;
  min-height: 110px;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  text-decoration: none;
  overflow: hidden;
}

.guide-nav-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 16px 0 16px 16px;
  background: var(--secondary);
  border-radius: 8px;
}

.guide-nav-card__icon img {
  width: 28px;
  height: 28px;
}

.guide-nav-card__text {
  margin: 0;
  padding: 0 16px;
  font-weight: inherit;
  color: var(--primary);
}

.guide-nav-card__text span {
  display: block;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-nav-card__text strong {
  display: block;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-nav-card__arrow {
  position: relative;
  align-self: stretch;
  width: 40px;
  background: var(--primary);
  border-radius: 0 8px 8px 0;
}
.guide-nav-card__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 20px;
  transform: translate(-50%, -50%);
  background: var(--bs-white);
  border-radius: 50%;
}

.guide-nav-card__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--primary);
  border-right: 1px solid var(--primary);
  transform: translate(-70%, -50%) rotate(45deg);
}

.guide-after-support-list + .guide-cta-support-banner,
#guide-after-support > .guide-container--narrow {
  margin-top: 40px;
}
#guide-after-support .guide-cta-support-banner {
  margin-bottom: 0;
}

.guide-cta-support-banner-link {
  display: block;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

.guide-cta-support-banner-link:active {
  opacity: 0.92;
}

.guide-cta-support-banner-link img {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

.guide-cta-support-banner picture {
  display: block;
  width: 100%;
}

.guide-cta-support-banner img {
  display: block;
  width: 100%;
  height: auto;
}

/* support box */
.guide-support-box {
  overflow: hidden;
  border: 2px solid var(--primary);
  border-radius: 8px;
  background: var(--surface);
}

.guide-support-box__body {
  padding: 24px 20px;
}

.guide-support-box__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  background: rgba(235, 94, 107, 0.2);
  border-radius: 50%;
}

.guide-support-box__icon img {
  width: 36px;
  height: 36px;
}

.guide-support-box__content h3 {
  margin: 0 0 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary);
  text-align: center;
}

.guide-check-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.guide-check-list li {
  position: relative;
  padding-left: 30px;
  margin-bottom: 12px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--neutral);
}

.guide-check-list li:last-child {
  margin-bottom: 0;
}

.guide-check-list li::before {
  content: "";
  position: absolute;
  top: calc(0.8em - 10px);
  left: 0;
  width: 20px;
  height: 20px;
  background: var(--success);
}

.guide-support-box__image {
  margin-top: 24px;
}

.guide-support-box__image img {
  display: block;
  width: 100%;
}

.guide-support-box__footer {
  padding: 20px;
  background: var(--primary);
}

.guide-support-box__contact-title {
  margin: 0 0 16px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--bs-white);
  word-break: keep-all;
  overflow-wrap: break-word;
}

.guide-support-box__tel-wrap {
  display: grid;
  gap: 12px;
  margin-bottom: 16px;
}

.guide-support-box__tel-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 8px 12px;
  border: 1px solid var(--bs-white);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  color: var(--bs-white);
}

.guide-support-box__tel {
  margin: 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--bs-white);
}

.guide-support-box__meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.guide-support-box__meta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 12px;
  background: var(--bs-white);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--primary);
}

/* flow */
.guide-flow-image {
  margin-bottom: 32px;
}

.guide-flow-image img {
  display: block;
  width: 100%;
  aspect-ratio: 1298 / 260;
  object-fit: cover;
}

.guide-flow-list {
  display: grid;
  gap: 20px;
}
.guide-flow-item {
  position: relative;
  display: grid;
  gap: 16px;
  padding-bottom: 20px;
}

.guide-flow-item:last-child {
  padding-bottom: 0;
}

.guide-flow-item__step {
  position: relative;
  padding-left: 24px;
}

.guide-flow-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 22px;
  bottom: -26px;
  width: 2px;
  background: #bdbbb7;
  pointer-events: none;
}

.guide-flow-item__step::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 0;
  z-index: 1;
  width: 16px;
  height: 16px;
  background: var(--primary);
  border-radius: 50%;
}

.guide-flow-item__step span {
  display: block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.guide-flow-item__step h3 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-flow-item__body {
  padding-left: 24px;
}
.guide-flow-item__body h4 {
  margin: 0 0 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.guide-flow-item__body p {
  margin: 0 0 8px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--black);
}

.guide-flow-item__body p:last-child {
  margin-bottom: 0;
}

.guide-flow-item__sub {
  position: relative;
  margin-top: 10px;
  padding: 10px 14px 10px 40px;
  border-radius: 4px;
  background: var(--surface);
  font-size: 14px;
}

.guide-flow-item__sub::before {
  content: "";
  position: absolute;
  top: 14px;
  left: 14px;
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: var(--primary);
}

.guide-flow-item__sub::after {
  content: "";
  position: absolute;
  top: 17px;
  left: 19px;
  width: 5px;
  height: 8px;
  border: solid var(--bs-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* method */
.guide-method-label {
  display: flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 20px;
  margin: 0 auto 24px;
  border-radius: 9999px;
  background: var(--primary-vivid);
  color: var(--accent-yellow);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.guide-method-row {
  margin-top: 48px;
}

.guide-method-card {
  padding: 24px 20px;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.guide-method-card h3 {
  margin: 0 0 20px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
  text-align: center;
}

.guide-method-card__image {
  margin-bottom: 20px;
}

.guide-method-card__image img {
  display: block;
  width: 100%;
}

.guide-method-card__lead {
  margin: 0 0 16px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}

.guide-method-card__text {
  margin: 0 0 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--black);
}

.guide-method-card__tel {
  margin: 0 0 8px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--primary);
  text-align: center;
}

a.guide-method-card__tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0.15em;
  width: 100%;
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-text-fill-color: var(--primary);
  user-select: none;
}

a.guide-method-card__tel:link,
a.guide-method-card__tel:visited,
a.guide-method-card__tel:hover,
a.guide-method-card__tel:active,
a.guide-method-card__tel:focus {
  color: var(--primary);
  text-decoration: none;
}

.guide-method-card__tel-icon {
  display: block;
  flex: 0 0 auto;
  width: 0.85em;
  height: auto;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

.guide-method-card__tel-number {
  display: inline-block;
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-text-fill-color: currentColor;
  white-space: nowrap;
}

.guide-method-card__note {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.guide-method-card__btn-wrap {
  margin-top: 20px;
  text-align: center;
}

.guide-consult-flow {
  margin-top: 40px;
}

.guide-consult-flow__grid {
  display: grid;
  gap: 32px;
  margin-top: 32px;
}

.guide-mini-step {
  padding: 24px 20px;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  position: relative;
}

.guide-mini-step__free {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 66px;
  min-height: 30px;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  position: absolute;
  top: -1rem;
  left: 50%;
  transform: translateX(-50%);
}

.guide-mini-step__step {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--primary);
}

.guide-mini-step h3 {
  margin: 0 0 12px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-mini-step p {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
}

/* CTA */
.guide-cta-grid {
  display: grid;
  gap: 16px;
  margin-top: 32px;
}

.guide-cta {
  padding: 20px 16px;
}

.guide-cta--tel {
  background: var(--primary-vivid);
  text-align: center;
}

.guide-cta--web {
  position: relative;
  background: var(--success);
  text-align: center;
}

.guide-cta--faq {
  border: 2px solid var(--primary);
  background: var(--surface);
  text-align: center;
}

.guide-cta__sub {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--accent-yellow);
}

.guide-cta__main {
  margin: 0 0 10px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--bs-white);
}

.guide-cta__note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  background: var(--accent-yellow);
  border-radius: 9999px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--key);
}

.guide-cta__free {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 98px;
  min-height: 32px;
  margin-bottom: 12px;
  padding: 4px 12px;
  background: var(--accent-yellow);
  color: var(--success);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.guide-cta__main-text {
  margin: 0 0 14px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--bs-white);
}

.guide-cta__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 18px;
  background: var(--bs-white);
  border-radius: 9999px;
  color: var(--success);
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-cta__faq-copy {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  color: var(--neutral);
}

.guide-cta__faq-copy span {
  color: var(--primary);
  font-size: 20px;
}

.guide-cta__faq-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--primary);
  text-decoration: none;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-cta-grid--banner {
  align-items: stretch;
}

.guide-cta-grid--banner-duo .guide-cta-banner {
  width: 100%;
  max-width: 416px;
  margin: 0 auto;
}

.guide-cta-banner {
  display: block;
  padding: 0;
  text-decoration: none;
}

.guide-cta-banner img {
  display: block;
  width: 100%;
  height: auto;
}

.guide-cta-banner--tel {
  -webkit-tap-highlight-color: transparent;
}

/* plan */
.guide-plan-grid {
  display: grid;
  gap: 24px;
  margin-top: 32px;
}

.guide-plan-card {
  overflow: hidden;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.guide-plan-card__head {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px 40px 12px 16px;
  color: var(--bs-white);
}

.guide-plan-card__head::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 12px;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--bs-white);
  opacity: .9;
}

.guide-plan-card__head::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 19px;
  width: 5px;
  height: 5px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.guide-plan-card--sora .guide-plan-card__head::after { color: var(--chokuso); }
.guide-plan-card--niji .guide-plan-card__head::after { color: var(--heya); }
.guide-plan-card--gekko .guide-plan-card__head::after { color: var(--kazoku); }

.guide-plan-card--sora .guide-plan-card__head {
  background: var(--chokuso);
}

.guide-plan-card--niji .guide-plan-card__head {
  background: var(--heya);
}

.guide-plan-card--gekko .guide-plan-card__head {
  background: var(--kazoku);
}

.guide-plan-card__scale {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 6px 8px;
  background: var(--bs-white);
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}

.guide-plan-card--sora .guide-plan-card__scale {
  color: var(--chokuso);
}

.guide-plan-card--niji .guide-plan-card__scale {
  color: var(--heya);
}

.guide-plan-card--gekko .guide-plan-card__scale {
  color: var(--kazoku);
}

.guide-plan-card__target {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.guide-plan-card__body {
  position: relative;
  padding: 16px 16px 20px;
}

.guide-plan-card__body h3 {
  margin: 0 0 16px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-plan-card--sora .guide-plan-card__body h3 {
  color: var(--chokuso);
}

.guide-plan-card--niji .guide-plan-card__body h3 {
  color: var(--heya);
}

.guide-plan-card--gekko .guide-plan-card__body h3 {
  color: var(--kazoku);
}

.guide-plan-card__recommended {
  position: absolute;
  bottom: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fff3a6 0%, var(--gold) 100%);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.guide-plan-card__image {
  position: relative;
  margin-bottom: 16px;
}

.guide-plan-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.guide-plan-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.guide-plan-card__tags li {
  min-width: 72px;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
  color: var(--bs-white);
}

.guide-plan-card__tags .is-muted {
  background: rgba(189, 187, 183, 0.4);
}

.guide-plan-card--sora .guide-plan-card__tags .is-active {
  background: var(--chokuso);
}

.guide-plan-card--niji .guide-plan-card__tags .is-active {
  background: var(--heya);
}

.guide-plan-card--gekko .guide-plan-card__tags .is-active {
  background: var(--kazoku);
}

.guide-plan-card__discount {
  margin: 0 0 8px;
  padding: 6px 12px;
  border-radius: 30px;
  background: var(--key);
  color: var(--bs-white);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.guide-plan-card__regular {
  margin: 0 0 2px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--gray);
  text-decoration: line-through;
}

.guide-plan-card__price-note {
  margin: 0 0 2px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--black);
}

.guide-plan-card__price {
  margin: 0;
  font-size: 42px;
  font-weight: 700;
  line-height: 1.1;
  text-align: right;
  color: var(--key);
}

.guide-plan-note {
  margin-top: 24px;
}

.guide-plan-note p {
  margin: 0;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--neutral);
}

.guide-cta-grid--bottom {
  margin-top: 40px;
}

/* tablet */
@media (min-width: 768px) {
  .sp-only {
    display: none;
  }

  .guide-page-title {
    line-height: 1.4;
    margin: 0 0 32px;
  }
  .guide-heading-line {
    margin-bottom: 24px;
  }

  .section-heading {
    margin-bottom: 36px;
  }

  .section-heading h2 {
    font-size: 48px;
    line-height: 1.4;
  }

  .section-heading--sm h2 {
    font-size: 26px;
  }

  .section-heading p {
    text-align: center;
  }

  .guide-section-heading {
    margin-bottom: 36px;
  }

  .guide-section-heading h2 {
    font-size: 48px;
    line-height: 1.4;
  }

  .guide-section-heading p,
  .guide-section-text {
    font-size: 16px;
    line-height: 1.6;
  }

  .guide-mv {
    padding: 48px 0 0;
    background: linear-gradient(
      to bottom,
      var(--surface-pink) 0,
      var(--surface-pink) calc(100% - 48px),
      var(--bs-white) calc(100% - 48px),
      var(--bs-white) 100%
    );
    overflow: hidden;
  }

  .guide-mv__grid {
    grid-template-columns: 1fr 1.05fr;
    align-items: center;
    gap: 32px;
  }

  .guide-mv__lead {
    font-size: 32px;
    line-height: 1.4;
  }

  .guide-mv__text {
    font-size: 16px;
  }

  .guide-mv__image img {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 844 / 400;
    height: auto;
    object-fit: cover;
  }

  .guide-nav {
    padding: 48px 0;
  }

  .guide-nav__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .guide-nav-card {
    min-height: 100px;
    grid-template-columns: 96px 1fr 40px;
  }

  .guide-nav-card__icon {
    width: 72px;
    height: 72px;
    margin: 0 0 0 24px;
  }

  .guide-nav-card__icon img {
    width: 36px;
    height: 36px;
  }

  .guide-support-box__body {
    display: grid;
    grid-template-columns: 80px 1fr 220px;
    gap: 24px;
    align-items: start;
    padding: 24px 28px;
  }

  .guide-support-box__icon {
    margin: 0;
    width: 80px;
    height: 80px;
  }

  .guide-support-box__icon img {
    width: 40px;
    height: 40px;
  }

  .guide-support-box__content h3 {
    margin-bottom: 20px;
    font-size: 28px;
    text-align: left;
  }

  .guide-support-box__image {
    margin-top: 0;
  }

  .guide-support-box__footer {
    padding: 28px;
  }

  .guide-support-box__contact {
    display: grid;
    grid-template-columns: 150px 1fr auto;
    gap: 16px;
    align-items: center;
  }

  .guide-support-box__contact-title {
    margin: 0;
    font-size: 24px;
  }

  .guide-support-box__tel-wrap {
    margin-bottom: 0;
    grid-template-columns: 140px 1fr;
    align-items: center;
    gap: 12px;
  }

  .guide-support-box__tel {
    font-size: 56px;
  }

  .guide-support-box__meta {
    justify-content: flex-end;
  }

  .guide-flow-list {
    gap: 0;
  }

  .guide-flow-item {
    grid-template-columns: 280px 1fr;
    gap: 32px;
    align-items: start;
    padding: 24px 0;
  }

  .guide-flow-item:first-child {
    padding-top: 0;
  }

  .guide-flow-item:last-child {
    padding-bottom: 0;
  }

  .guide-flow-item:not(:last-child)::after {
    bottom: -31px;
  }

  .guide-flow-item__step {
    padding-left: 32px;
  }

  .guide-flow-item__step::before {
    top: 4px;
  }

  .guide-flow-item__step span {
    font-size: 16px;
  }

  .guide-flow-item__body {
    padding-left: 0;
  }

  .guide-flow-item__body h4 {
    font-size: 24px;
  }

  .guide-flow-item__body p {
    font-size: 16px;
  }

  .guide-method-label {
    min-height: 37px;
    padding: 8px 32px;
    font-size: 20px;
  }

  .guide-method-card {
    padding: 24px 24px 28px;
  }

  .guide-method-row > [class*="col-"] {
    flex: 0 0 auto;
    width: 416px;
    max-width: 100%;
  }

  .guide-method-card h3 {
    font-size: 30px;
  }

  .guide-method-card__lead {
    font-size: 20px;
  }

  .guide-method-card__text {
    font-size: 14px;
  }

  .guide-method-card__tel {
    font-size: 36px;
  }

  .guide-consult-flow__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }

  .guide-mini-step {
    min-height: 181px;
    padding: 24px 24px 28px;
  }

  .guide-mini-step h3 {
    font-size: 24px;
  }

  .guide-mini-step p {
    font-size: 16px;
  }

  .guide-cta-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: stretch;
  }

  .guide-cta-grid--banner-duo {
    grid-template-columns: repeat(2, minmax(0, 416px));
    justify-content: center;
  }

  .guide-cta {
    min-height: 122px;
  }

  .guide-cta__sub {
    font-size: 14px;
  }

  .guide-cta__main {
    font-size: 30px;
  }

  .guide-cta__main-text {
    font-size: 26px;
  }

  .guide-cta__faq-copy {
    font-size: 12px;
  }

  .guide-cta__faq-copy span {
    font-size: 14px;
  }

  .guide-cta__faq-link {
    font-size: 22px;
  }

  .guide-plan-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }

  .guide-plan-card__body {
    padding: 16px 16px 24px;
  }

  .guide-plan-card__body h3 {
    font-size: 30px;
  }

  .guide-plan-card__discount {
    font-size: 24px;
  }

  .guide-plan-card__price {
    font-size: 48px;
  }

  .guide-plan-note p {
    font-size: 14px;
    line-height: 1.8;
  }
}

/* pc */
@media (min-width: 992px) {
  .guide-page-title {
    font-size: 36px;
    margin: 0 0 48px;
  }
  .guide-nav {
    padding: 48px 0 96px;
  }

  .guide-nav__grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .guide-consult-flow {
    margin-top: 64px;
  }

  .guide-consult-flow__grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 28px;
    margin-top: 48px;
  }

  .guide-consult-flow__grid > * {
    position: relative;
  }

  .guide-consult-flow__grid > *:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -20px;
    transform: translateY(-50%);
    border-style: solid;
    border-width: 7px 0 7px 10px;
    border-color: transparent transparent transparent var(--primary);
  }

  .guide-consult-flow__grid .guide-mini-step {
    min-height: 0;
    padding: 20px 18px 22px;
  }

  .guide-consult-flow__grid .guide-mini-step h3 {
    font-size: 22px;
  }

  .guide-nav-card {
    min-height: 138px;
    grid-template-columns: 104px 1fr 40px;
  }

  .guide-nav-card__icon {
    width: 72px;
    height: 72px;
    margin: 0 0 0 32px;
  }

  .guide-nav-card__icon img {
    width: 36px;
    height: 36px;
  }

  .guide-nav-card__text {
    padding: 0 16px;
  }

  .guide-nav-card__text span {
    font-size: 15px;
  }

  .guide-nav-card__text strong {
    font-size: 21px;
  }

  .guide-nav-card__arrow {
    width: 40px;
  }

  .guide-support-box__body {
    grid-template-columns: 80px 1fr 229px;
  }

  .guide-method-card__image img,
  .guide-plan-card__image img,
  .guide-support-box__image img,
  .guide-flow-image img {
    object-fit: cover;
  }
  .guide-flow-item {
    grid-template-columns: 402px 1fr;
  }
  .guide-flow-item__step h3 {
    font-size: 30px;
  }
}
@media (min-width: 1200px) {
  .guide-page-title {
    font-size: 48px;
  }
  .guide-mv__grid {
    grid-template-columns: 1fr 1.5fr;
  }
}
@media (min-width: 1400px) {
  .guide-mv__grid {
    grid-template-columns: 1fr 2fr;
  }
}
.guide-title {
  margin: 0 0 16px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: center;
}

.guide-lead {
  margin: 0 0 20px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  color: var(--black);
  text-align: center;
}

.guide-text {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--black);
  text-align: left;
}

.btn-main {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  margin-top: 16px;
  padding: 12px 24px;
  background: var(--primary);
  color: var(--bs-white);
  font-weight: 700;
  text-decoration: none;
}

.lowcost-price {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary);
}

.lowcost-price strong {
  font-size: 1.3em;
}

@media (min-width: 768px) {
  .guide-title {
    font-size: 32px;
  }

  .guide-lead {
    font-size: 19px;
  }
  .guide-text, .guide-section-heading p.guide-text {
    text-align: center;
  }
}

/* =============================================================
はじめての方へ｜葬儀場を見学したい
================================================================ */

.visit-list .front-hall-card__body h3 small {
  font-size: 15px;
}

.visit-list .front-hall-card__info p.is-note::before {
  -webkit-mask-image: url("library/images/icon/detail.svg");
  mask-image: url("library/images/icon/detail.svg");
}

.lowcost-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 40px;
}

.lowcost-card {
  border: 1px solid #eee;
  padding: 30px;
  border-radius: 8px;
}

.lowcost-price {
  font-size: 22px;
  color: #c7002f;
  margin: 15px 0;
}

.after-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  margin-top: 40px;
}

.after-item {
  background: var(--bs-white);
  padding: 25px;
  border-radius: 8px;
  border: 1px solid #eee;
}
.guide-section--after-support {
  padding-top: 48px;
  padding-bottom: 24px;
}

#guide-after-support .guide-section-heading p {
  font-size: 24px;
  line-height: 1.5;
}

.guide-after-support-list {
  display: grid;
  gap: 24px;
  margin-top: 40px;
}

.guide-after-support-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.guide-after-support-card__image {
  flex: 0 0 auto;
}

.guide-after-support-card__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.guide-after-support-card__body {
  flex: 1 1 auto;
  min-width: 0;
  padding: 20px 16px;
}

.guide-after-support-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--primary);
}

.guide-after-support-card__icon {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.guide-after-support-list > .guide-after-support-card:nth-child(1) .guide-after-support-card__title { color: var(--heya); }
.guide-after-support-list > .guide-after-support-card:nth-child(2) .guide-after-support-card__title { color: var(--primary); }
.guide-after-support-list > .guide-after-support-card:nth-child(3) .guide-after-support-card__title { color: var(--success); }
.guide-after-support-list > .guide-after-support-card:nth-child(4) .guide-after-support-card__title { color: var(--gold); }

.guide-after-support-card__body p {
  margin: 0;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

.guide-section--faq {
  padding-top: 24px;
  padding-bottom: 0;
}

.guide-section-heading--contact {
  margin-bottom: 32px;
}

.guide-contact-block {
  position: relative;
  overflow: visible;
}

.guide-contact-block .guide-container {
  padding-top: 48px;
  padding-bottom: 48px;
}
.plan-page-section .front-flow__heading-box h2 {
  padding: 0 0 .125rem;
}
.plan-page-section .front-flow__heading-box::before {
  width: 326px;
}

.guide-contact-lead {
  margin: 0 0 24px;
  text-align: center;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}
.guide-contact-lead.text-primary {
    font-size: 18px;
    margin-top: -.5rem;
}
.guide-contact-staff {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 24px;
  margin: 0 -12px;
}

.guide-contact-staff__item {
  flex: 0 0 50%;
  padding: 0 12px;
  text-align: center;
}

.guide-contact-staff__item img {
  display: block;
  width: 100%;
  max-width: 180px;
  aspect-ratio: 1 / 1;
  margin: 0 auto 16px;
  border-radius: 50%;
  object-fit: cover;
}

.guide-contact-staff__item p {
  margin: 0;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}

.guide-contact-main {
  overflow: hidden;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
}

.guide-contact-main__head {
  padding: 14px 16px;
  text-align: center;
}

.guide-contact-main__head h3 {
  margin: 0;
  color: var(--bs-white);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-contact-main__body {
  padding: 24px 20px 28px;
  text-align: center;
}

.guide-contact-main__copy {
  margin: 0 0 8px;
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-contact-main__title {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 28px;
  font-weight: 700;
  line-height: 1.5;
}

.guide-contact-main__sub {
  margin: 0 0 24px;
  color: var(--black);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
}

.guide-contact-main__tel {
  margin-bottom: 24px;
  padding: 20px 16px;
  background: var(--bs-white);
  border: 2px solid var(--primary);
}

.guide-contact-main__tel-main {
  margin-bottom: 12px;
  color: var(--primary-vivid);
  font-size: 42px;
  font-weight: 700;
  line-height: 1.1;
}

.guide-contact-main__tel-note {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 6px 14px;
  background: var(--primary-vivid);
  border-radius: 9999px;
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.guide-contact-main__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.guide-contact-main__list li {
  position: relative;
  padding-left: 24px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
}

.guide-contact-main__list li::before {
  content: "";
  position: absolute;
  top: 6px;
  left: 0;
  width: 14px;
  height: 14px;
  background: var(--primary);
  border-radius: 50%;
}

@media (min-width: 768px) {
  .guide-after-support-card {
    flex-direction: row;
    align-items: stretch;
  }

  .guide-after-support-card__image {
    flex: 0 0 33.333%;
  }

  .guide-after-support-card__image img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    aspect-ratio: auto;
  }

  .guide-after-support-card__body {
    padding: 24px 20px;
  }

  .guide-after-support-card__title {
    font-size: 20px;
    line-height: 1.45;
  }

  .guide-after-support-card__body p {
    font-size: 15px;
  }

  .guide-contact-lead {
    font-size: 24px;
  }
  .guide-contact-lead.text-primary {
    font-size: 20px;
  }

  .guide-contact-block .guide-container {
    padding-top: 72px;
  }

  .plan-page-section .front-flow__heading-box::before {
    width: 443px;
  }
  .plan-page-section .front-flow__heading-box h2 {
    padding: 0;
  }

  .guide-section-heading--contact {
    margin-bottom: 40px;
  }

  .guide-contact-staff__item {
    flex-basis: 25%;
  }

  .guide-contact-staff__item img {
    max-width: 220px;
  }

  .guide-contact-main__head h3 {
    font-size: 32px;
  }

  .guide-contact-main__body {
    padding: 32px 32px 36px;
  }

  .guide-contact-main__title {
    font-size: 36px;
  }

  .guide-contact-main__sub {
    font-size: 22px;
  }

  .guide-contact-main__tel-main {
    font-size: 60px;
  }

  .guide-contact-main__list {
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
  }
}
@media (min-width: 992px) {
  .guide-section {
    padding: 96px 0;
  }
  .guide-section--after-support {
    padding-top: 96px;
    padding-bottom: 48px;
  }
  .guide-section--faq {
    padding-top: 48px;
    padding-bottom: 0;
  }
  .guide-after-support-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 24px;
  }
  .guide-contact-staff__item img {
    max-width: 255px;
  }
}

/* =============================================================
プラン・料金用CSS
================================================================ */
.plan-page-section {
  padding: 96px 0 0;
}

.plan-page-breadcrumb {
  margin: 0 0 24px;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.plan-list-section .front-plan-card-row {
  margin-top: 40px;
}

.plan-card-recommend {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 12px;
  color: var(--primary-vivid);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
}

.plan-card-recommend span {
  position: relative;
  display: inline-block;
  padding: 0 28px;
}

.plan-card-recommend span::before,
.plan-card-recommend span::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 18px;
  height: 8px;
  border-top: 1px solid var(--black);
}

.plan-card-recommend span::before {
  left: 0;
  transform: translateY(-50%) rotate(-25deg);
}

.plan-card-recommend span::after {
  right: 0;
  transform: translateY(-50%) rotate(25deg);
}

.plan-option-box {
  margin-top: 48px;
  padding: 24px 0 0;
  border-top: 1px solid var(--primary);
  border-bottom: 1px solid var(--primary);
}

.plan-option-box__images img {
  display: block;
  width: 100%;
  height: 139px;
  object-fit: cover;
}

.plan-option-box__content {
  padding: 24px 0;
}

.plan-option-box__sub {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-option-box__content h3 {
  margin: 0 0 8px;
  color: var(--primary);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-option-box__title {
  margin: 0 0 16px;
  color: var(--neutral);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-option-box__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.plan-option-box__tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid var(--primary);
  color: var(--primary);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}

.plan-note-block {
  margin-top: 24px;
}

.plan-note-block p {
  margin: 0;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.plan-compare-section {
  padding-top: 96px;
}

.plan-compare-head {
  margin-top: 32px;
}

.plan-compare-head__card {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  color: var(--bs-white);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-compare-head__card--sora {
  background: var(--chokuso);
}

.plan-compare-head__card--niji {
  background: var(--heya);
}

.plan-compare-head__card--gekko {
  background: var(--kazoku);
}

.plan-compare-images {
  margin-top: 0;
}

.plan-compare-images img {
  display: block;
  width: 100%;
  height: 145px;
  object-fit: cover;
}

.plan-compare-table-wrap {
  margin-top: 24px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.plan-compare-table {
  min-width: 780px;
  border-top: 1px solid var(--gray02);
  border-bottom: 1px solid var(--gray02);
}

.plan-compare-table > tbody > tr > th,
.plan-compare-table > tbody > tr > td {
  display: table-cell;
  padding: 14px 16px;
  vertical-align: top;
  border-bottom: 1px solid var(--gray02);
  background: var(--bs-white);
  color: var(--black);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-compare-table > tbody > tr > th {
  width: 220px;
  white-space: nowrap;
}

.plan-compare-table > tbody > tr:last-child > th,
.plan-compare-table > tbody > tr:last-child > td {
  border-bottom: 0;
}

.plan-compare-table > tbody > tr:last-child > td {
  font-size: 14px;
  font-weight: 500;
}

.plan-compare-table__price-sub {
  display: block;
  margin-bottom: 6px;
  color: var(--primary);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
}

.plan-compare-table__price {
  display: block;
  margin-bottom: 4px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-compare-table__price-regular {
  display: block;
  color: var(--black);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-compare-actions {
  margin-top: 20px;
}

.plan-compare-actions__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  color: var(--bs-white);
  text-decoration: none;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  position: relative;
}

.plan-compare-actions__btn::after {
  content: "";
  position: absolute;
  right: 8px;
  bottom: 8px;
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--bs-white);
  border-bottom: 2px solid var(--bs-white);
}

.plan-compare-actions__btn--sora {
  background: var(--chokuso);
}

.plan-compare-actions__btn--niji {
  background: var(--heya);
}

.plan-compare-actions__btn--gekko {
  background: var(--kazoku);
}

/* ============================================================
プラン・料金ページ「プランの比較」5プラン版
============================================================ */
.plan-compare-matrix-wrap {
  margin-top: 24px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.plan-compare-matrix {
  width: 100%;
  min-width: 1100px;
  border-collapse: collapse;
  table-layout: fixed;
}
.plan-compare-matrix col.plan-compare-matrix__col-label { width: 110px; }
.plan-compare-matrix col.plan-compare-matrix__col-plan { width: 198px; }

/* 家族葬中間ページ：3プラン比較 */
.plan-compare-matrix--cols-3 {
  min-width: 704px;
}
.plan-compare-matrix--cols-3 col.plan-compare-matrix__col-plan {
  width: calc((100% - 110px) / 3);
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__cell {
  padding: 10px 8px;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__row-label {
  padding: 8px 6px;
  font-size: 13px;
}
.plan-compare-matrix--cols-3 .front-plan-card__discount,
.plan-compare-matrix--cols-3 .front-plan-card__no-discount {
  font-size: 11px;
  padding: 4px 8px;
  margin-bottom: 6px;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__days {
  margin-bottom: 6px;
  font-size: 14px;
}
.plan-compare-matrix__item {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
}
.plan-compare-matrix__item-body {
  flex: 1 1 auto;
  min-width: 0;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__item-image {
  flex: 0 0 104px;
  width: 104px;
  height: auto;
  aspect-ratio: 4 / 3;
  margin: 0;
  object-fit: cover;
  border-radius: 4px;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__item .plan-compare-matrix__anchor {
  font-size: 13px;
  line-height: 1.45;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__item .plan-compare-matrix__anchor-sub {
  margin-top: 2px;
  font-size: 13px;
  line-height: 1.4;
}

@media (max-width: 767.98px) {
  .plan-compare-matrix__item {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .plan-compare-matrix--cols-3 .plan-compare-matrix__item-image {
    flex: 0 0 auto;
    width: 100%;
  }
}

.plan-compare-matrix__anchor-note {
  text-align: left;
}
.plan-kazoku-compare-note {
  margin: 16px 0 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  color: var(--neutral);
}

.plan-compare-matrix th, .plan-compare-matrix td {
  display: table-cell;
  width: auto;
  border: 1px solid var(--gray02);
  vertical-align: top;
}

.plan-compare-matrix__head {
  padding: 14px 8px;
  text-align: center;
  color: var(--bs-white);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
}
.plan-compare-matrix__corner { border: none; background: none; }
.plan-compare-matrix__head--chokuso { background: var(--chokuso); }
.plan-compare-matrix__head--jiin { background: var(--success); }
.plan-compare-matrix__head--heya { background: var(--heya); }
.plan-compare-matrix__head--kazoku { background: var(--kazoku); }
.plan-compare-matrix__head--kippan { background: var(--primary); }

/* プラン詳細ページの比較表：閲覧中プラン列の見出し上にビビッドカラーの吹き出し */
.plan-compare-matrix__badge-row th {
  padding: 0 8px 6px;
  border-top: none;
  border-bottom: none;
  background: transparent;
  vertical-align: bottom;
  text-align: center;
}
.plan-compare-matrix__badge-cell {
  border-left: none;
  border-right: none;
}
.plan-compare-matrix__badge-row .plan-compare-matrix__corner {
  border: none;
  background: none;
}
.plan-compare-matrix__current-badge {
  position: relative;
  display: inline-block;
  padding: 5px 12px;
  background: var(--primary-vivid);
  color: var(--accent-yellow);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.plan-compare-matrix__current-badge::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  transform: translateX(-50%);
  border-style: solid;
  border-width: 6px 5px 0;
  border-color: var(--primary-vivid) transparent transparent;
}

.plan-compare-matrix__row-label {
  padding: 12px 10px;
  background: var(--surface, #f7f5f2);
  color: var(--black);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.plan-compare-matrix__row-label.bg-primary-40 {
  background: var(--primary-40);
}
.plan-compare-matrix__cell { padding: 16px 14px; text-align: center; }

.plan-compare-matrix__image {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 4px;
  margin-bottom: 10px;
}
.plan-compare-matrix__row-label--group {
  padding: 10px 8px;
  background: var(--gray02);
  color: var(--neutral);
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}
.plan-compare-matrix__row-label--group.bg-primary {
  background: var(--primary);
  color: var(--bs-white);
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__cell.plan-compare-matrix__cell--common-body {
  text-align: left;
}
.plan-compare-matrix--cols-3 .plan-compare-matrix__cell--common-body .plan-compare-matrix__anchor {
  text-align: left;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.8;
}
.plan-compare-matrix__cell .front-plan-card__no-discount,
.plan-compare-matrix__cell .front-plan-card__discount {
  font-size: 13px;
  padding: 5px 10px;
  margin-bottom: 8px;
}
.plan-compare-matrix__cell .front-plan-card__discount-amount { font-size: 13px; }
.plan-compare-matrix__price-tax { display: block; font-size: 12px; color: var(--neutral); margin-bottom: 2px; }
.plan-compare-matrix__price-regular { display: block; font-size: 12px; color: var(--gray); text-decoration: line-through; margin-bottom: 2px; }
.plan-compare-matrix__price { margin: 0; font-size: 22px; font-weight: 700; color: var(--key); line-height: 1.2; }

/* 日程セル */
.plan-compare-matrix__days { margin: 0 0 8px; font-size: 15px; font-weight: 700; color: var(--black); }
.plan-compare-matrix__cell .front-plan-card__tags { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 4px; margin: 0; }
.plan-compare-matrix__cell .front-plan-card__tags li { font-size: 11px; padding: 3px 2px; }
@media (min-width: 1200px) {
  .plan-compare-matrix__cell .front-plan-card__tags {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
  }
  .plan-compare-matrix__cell .front-plan-card__tags li {
    font-size: 12px;
    padding: 4px 2px;
  }
}

/* ご安置・棺・骨壺・花・祭壇・会場・遺影セル(共通) */
.plan-compare-matrix__anchor { margin: 0; font-size: 14px; font-weight: 700; color: var(--black); line-height: 1.6; }
.plan-compare-matrix__anchor-sub { display: inline-block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--neutral); }
.plan-compare-matrix__anchor--none { color: var(--gray); font-weight: 500; }

.plan-compare-matrix tbody tr:last-child .plan-compare-matrix__cell {
  position: relative;
  padding-bottom: 48px;
}
.plan-compare-matrix tbody tr:last-child.no-plan-link .plan-compare-matrix__cell {
  padding-bottom: 10px;
}
.plan-compare-matrix tbody tr.align-middle .plan-compare-matrix__cell {
  vertical-align: middle;
}
.plan-compare-matrix__target { margin: 0 0 16px; font-size: 13px; font-weight: 500; color: var(--black); line-height: 1.6; text-align: left; }
.plan-compare-matrix__btn {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 16px;
  display: block;
  padding: 8px 4px;
  color: var(--bs-white);
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}
.plan-compare-matrix__btn--chokuso { background: var(--chokuso); }
.plan-compare-matrix__btn--jiin { background: var(--success); }
.plan-compare-matrix__btn--heya { background: var(--heya); }
.plan-compare-matrix__btn--kazoku { background: var(--kazoku); }
.plan-compare-matrix__btn--kippan { background: var(--primary); }

.plan-compare-matrix__btn.is-current {
  background: var(--gray);
  cursor: default;
}

.plan-select-section {
  padding-top: 96px;
}

.guide-section-heading .plan-select-section__lead {
  margin-bottom: 16px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-select-points {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
  margin-top: 48px;
  margin-bottom: 48px;
}

.plan-select-point-card {
  display: block;
  flex: 0 1 100%;
  width: 100%;
  max-width: 240px;
  overflow: hidden;
  color: inherit;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.3s ease;
}

.plan-select-point-card:hover,
.plan-select-point-card:focus-visible {
  color: inherit;
  opacity: 0.85;
}

.plan-select-point-card__image {
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.plan-select-point-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.plan-select-point-card__label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 10px 36px 10px 16px;
  background: var(--secondary);
}

.plan-select-point-card__label::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--primary);
  border-bottom: 2px solid var(--primary);
  transform: translateY(-50%) rotate(45deg);
}

.plan-select-point-card__title {
  margin: 0;
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .plan-select-point-card {
    max-width: calc(100% / 3 - 1rem);
  }
}
@media (min-width: 992px) {
  .plan-select-points {
    gap: 48px;
  }

  .plan-select-point-card {
    flex: 0 0 240px;
    width: 240px;
    max-width: 240px;
  }
}

.plan-select-blocks {
  border-top: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
}

.plan-select-block {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 32px;
  padding: 48px 0;
  scroll-margin-top: 100px;
}
#plan-select-guests.plan-select-block {
  border-top: 1px solid var(--gray);
}
#plan-select-atmosphere.plan-select-block {
  border-bottom: 1px solid var(--gray);
}

.plan-select-block__body {
  min-width: 0;
}

.plan-select-block__head {
  text-align: center;
}

.plan-select-block__image {
  margin-bottom: 16px;
}

.plan-select-block__image img {
  display: block;
  width: 100%;
  height: auto;
}

.plan-select-block__head h3 {
  margin: 0;
  color: var(--black);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-select-block__head h3 span {
  display: block;
  margin-bottom: 4px;
  font-size: 24px;
}

.plan-select-block__body p {
  margin: 0 0 24px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}
@media (min-width: 992px) {
  .plan-select-block {
    padding: 32px 0;
  }
  #plan-select-guests.plan-select-block {
    padding-top: 48px;
  }
  #plan-select-atmosphere.plan-select-block {
    padding-bottom: 48px;
  }
  .plan-select-block__image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
  }
}
.plan-select-table {
  margin: 0;
  width: 100%;
  border-collapse: collapse;
}

.plan-select-section table tr {
  border-bottom: none;
}

.plan-select-block .table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.plan-select-table th,
.plan-select-table td {
  display: table-cell;
  width: auto;
  white-space: nowrap;
}

@media print, screen and (min-width: 768px) {
  .plan-select-table--guests {
    table-layout: fixed;
  }
  .plan-select-table--guests th:first-child,
  .plan-select-table--guests td:first-child {
    width: 406px;
  }
}

.plan-select-table--guests th,
.plan-select-table--guests td,
.plan-select-table th,
.plan-select-table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--gray02);
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.plan-select-table td:nth-child(2),
.plan-select-table td:nth-child(4) {
  color: var(--black);
}

.plan-select-table td.text-primary {
  color: var(--primary);
}

.plan-select-table thead th {
  color: var(--neutral);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.plan-select-table tbody tr:last-child td {
  border-bottom: 0;
}

.plan-label-sora {
  color: var(--chokuso) !important;
  font-weight: 700 !important;
}

.plan-label-niji {
  color: var(--heya) !important;
  font-weight: 700 !important;
}

.plan-label-gekko {
  color: var(--kazoku) !important;
  font-weight: 700 !important;
}

/* プラン・料金ページ5プラン用の色ラベル（一覧カード・比較表と同じ配色） */
.plan-label-chokuso { color: var(--chokuso) !important; font-weight: 700 !important; }
.plan-label-jiin { color: var(--success) !important; font-weight: 700 !important; }
.plan-label-heya { color: var(--heya) !important; font-weight: 700 !important; }
.plan-label-kazoku { color: var(--kazoku) !important; font-weight: 700 !important; }
.plan-label-kippan { color: var(--primary) !important; font-weight: 700 !important; }

.plan-select-visuals {
  margin-top: 12px;
}

.plan-select-visual-card img {
  display: block;
  width: 100%;
  height: 127px;
  object-fit: cover;
  margin-bottom: 12px;
}

.plan-select-visual-card p {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-select-visual-label {
  margin: 24px 0 12px;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 500;
}
.plan-select-visual-row {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
}
.plan-select-visual-pair {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 16px;
  flex: 1 1 100%;
  justify-content: flex-start;
}
.plan-select-visual-names {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
}
.plan-select-visual-names p {
  margin: 0;
  white-space: nowrap;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}
.plan-select-visual-image {
  flex: 1 1 260px;
  max-width: 190px;
}
.plan-select-visual-image img {
  display: block;
  width: 100%;
  aspect-ratio: 850 / 567;
  height: auto;
  object-fit: cover;
}
@media (max-width: 767.98px) {
  .plan-select-visual-row {
    gap: 16px;
  }

  .plan-select-visual-image {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .plan-select-visual-pair {
    flex: 0 0 auto;
  }
  .plan-select-visual-image {
    max-width: 240px;
  }
}

@media (max-width: 991.98px) {
  .plan-page-section {
    padding: 48px 0 0;
  }

  .plan-card-recommend {
    font-size: 18px;
  }

  .plan-option-box__content h3,
  .plan-option-box__title {
    font-size: 24px;
  }

  .plan-compare-table > tbody > tr > th,
  .plan-compare-table > tbody > tr > td {
    min-width: 180px;
    font-size: 16px;
  }

  .plan-select-points {
    margin-top: 32px;
    margin-bottom: 32px;
  }

  .plan-select-point-card {
    min-height: auto;
  }

  .plan-select-point-card__label {
    min-height: 44px;
    padding: 8px 32px 8px 12px;
  }

  .plan-select-block {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 32px 0;
  }

}
@media (min-width: 992px) {
  .plan-select-block {
    gap: 64px;
  }
  .plan-select-visual-row {
    gap: 40px;
    justify-content: flex-start;
  }
}
@media (min-width: 1200px) {
  .plan-select-block {
    gap: 130px;
  }
}
@media (max-width: 767.98px) {
  .plan-page-breadcrumb {
    font-size: 12px;
  }

  .plan-compare-head__card {
    min-height: 48px;
    font-size: 16px;
  }

  .plan-compare-images img {
    height: auto;
  }

  .plan-compare-table > tbody > tr > th,
  .plan-compare-table > tbody > tr > td {
    padding: 12px;
    font-size: 14px;
  }

  .plan-compare-table__price {
    font-size: 20px;
  }

  .guide-section-heading .plan-select-section__lead {
    font-size: 20px;
  }

  .plan-select-point-card__title {
    font-size: 18px;
  }

  .plan-select-block__head h3 {
    font-size: 18px;
  }

  .plan-select-block__head h3 span {
    font-size: 20px;
  }

  .plan-select-table th,
  .plan-select-table td {
    font-size: 14px;
  }
  .plan-select-points {
    gap: 8px;
  }
  .plan-select-point-card {
    max-width: calc(100% / 3 - 6px);
  }
  .plan-select-point-card__label {
    min-height: 36px;
    padding: 8px 16px 8px 5px;
  }
  .plan-select-point-card__label::after {
    right: 6px;
    width: 6px;
    height: 6px;
  }
  .plan-select-point-card__title {
    font-size: 12px
  }
}
.guide-section-heading .plan-feature-section__lead,
.guide-section-heading .plan-flow-section__lead,
.guide-section-heading .membership-section__lead {
  margin-bottom: 16px;
  color: var(--black);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-feature-list {
  display: grid;
  gap: 48px;
  margin-top: 48px;
}

.plan-feature-item {
  display: grid;
  grid-template-columns: 133px 1fr 306px;
  gap: 48px;
  align-items: start;
}

.plan-feature-item__num {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 6px;
}

.plan-feature-item__num span {
  color: var(--primary);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-feature-item__num div {
  width: 24px;
  height: 1px;
  background: var(--gray);
}

.plan-feature-item__body h3 {
  margin: 0 0 16px;
  color: var(--black);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.plan-feature-item__body p {
  margin: 0;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.plan-feature-item__image img {
  display: block;
  width: 100%;
  height: 204px;
  object-fit: cover;
}

.plan-flow-section__note {
  margin: 24px 0 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.plan-flow-list {
  margin-top: 48px;
  border-left: 1px solid var(--gray);
  padding-left: 0;
}

.plan-flow-item {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 32px;
  position: relative;
  padding: 0 0 40px 48px;
}

.plan-flow-item:last-child {
  padding-bottom: 0;
}

.plan-flow-item::before {
  content: "";
  position: absolute;
  top: 4px;
  left: -8px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--primary);
}

.plan-flow-item__side {
  padding-top: 2px;
}

.plan-flow-item__step {
  display: block;
  margin-bottom: 8px;
  color: var(--primary);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-flow-item__side h3 {
  margin: 0;
  color: var(--black);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
}

.plan-flow-item__main p {
  margin: 0 0 16px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.plan-flow-item__main p:last-child {
  margin-bottom: 0;
}

.plan-flow-item__title {
  color: var(--black);
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
}

.plan-flow-item__point {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 28px;
  align-items: start;
  padding: 16px 20px;
  background: var(--surface);
}

.plan-flow-item__point span {
  position: relative;
  display: block;
  padding-left: 28px;
  color: var(--primary);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.plan-flow-item__point span::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 0;
  width: 20px;
  height: 20px;
  background: var(--primary);
}

.plan-flow-item__point p {
  margin: 0;
}

.plan-flow-item__point-note {
  font-size: 14px;
}

@media (min-width: 576px) {
  .plan-feature-item__num div {
    width: 48px;
  }
}
@media (min-width: 768px) {
  .plan-feature-item__num div {
    width: 80px;
  }
}
.membership-highlight__callout.front-feature__badge-box {
  margin: 0 auto 16px;
}

.membership-highlight {
  margin-top: 48px;
}

.membership-highlight .front-club__cta {
  margin-top: 0;
}

@media (max-width: 991.98px) {
  .guide-section-heading .plan-feature-section__lead,
  .guide-section-heading .plan-flow-section__lead,
  .guide-section-heading .membership-section__lead {
    font-size: 24px;
  }

  .plan-feature-item {
    grid-template-columns: 120px 1fr 306px;
    gap: 24px;
  }

  .plan-feature-item__image {
    grid-column: 3;
  }

  .plan-feature-item__body h3 {
    font-size: 28px;
  }

  .plan-flow-item {
    grid-template-columns: 1fr;
    gap: 20px;
    padding-left: 36px;
  }

  .plan-flow-item__side h3 {
    font-size: 24px;
  }
}

@media (max-width: 767.98px) {
  .plan-feature-item {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .plan-feature-item__image {
    grid-column: auto;
  }

  .plan-feature-item__num {
    padding-top: 0;
  }

  .plan-feature-item__body h3 {
    font-size: 22px;
  }

  .plan-feature-item__body p,
  .plan-flow-item__main p {
    font-size: 14px;
  }

  .plan-flow-item__point {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .plan-flow-item__title {
    font-size: 20px !important;
  }
}
.plan-contact-text {
  margin: 0 0 32px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

.plan-contact-main-wrap {
  padding: 40px 0 48px;
  overflow: hidden;
}

.plan-contact-main-card {
  border-radius: 8px;
  padding: 10px;
  box-shadow: none;
}

.plan-contact-main-card--banner {
  padding: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.plan-contact-main-wrap .plan-contact-main-card--banner,
.front-contact-section .plan-contact-main-card--banner {
  background: transparent;
}

.plan-contact-main-card__banner {
  display: block;
  width: 100%;
}

.plan-contact-main-card__banner-link {
  display: block;
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
}

.plan-contact-main-card__banner-link:active {
  opacity: 0.92;
}

.plan-contact-main-card__banner-link img {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}

.plan-contact-main-card__banner img {
  display: block;
  width: 100%;
  height: auto;
}

.plan-contact-main-card__outer {
  border: 2px solid var(--primary);
  border-radius: 8px;
  padding: 24px 20px;
}
.plan-contact-main-wrap .plan-contact-main-card {
  background: var(--secondary);
}

.plan-contact-main-wrap .plan-contact-main.front-flow__callout {
  border-radius: 8px;
  background: var(--bs-white);
}

.plan-contact-main-card .front-flow__callout-heading {
  margin-top: 0;
  color: var(--primary-vivid);
}

.plan-contact-main-card .front-flow__callout-heading::before,
.plan-contact-main-card .front-flow__callout-heading::after {
  background: var(--black);
}

.plan-contact-main__staff-message {
  background: var(--accent-yellow);
  border-radius: 8px;
  padding: 16px 12px;
  text-align: center;
}

.plan-contact-main__staff-message-text {
  margin: 0;
  color: var(--primary);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
}

.plan-contact-main__staff-photo {
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
}

.plan-contact-main__staff-photo--sp {
  flex: 0 0 auto;
  align-self: flex-end;
  max-width: 110px;
}

.front-contact-section {
  overflow: hidden;
}

.front-contact-section .plan-contact-main-card {
  background: var(--secondary);
  border-radius: 0;
}

.front-contact-section .plan-contact-main.front-flow__callout {
  border: none;
  padding: 0;
  background: transparent;
}

@media (min-width: 768px) {
  .front-contact-section {
    overflow: visible;
  }

  .front-contact-section .front-flow__callout.plan-contact-main {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
  }

  .front-contact-section .plan-contact-main-card__inner {
    padding: 28px 32px;
    background-color: var(--bs-white);
    border-radius: 8px;
  }
}

@media (max-width: 767.98px) {
  .plan-contact-main__callout-side {
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
  }

  .plan-contact-main__callout-side .front-flow__callout-list {
    flex: 1 1 auto;
    min-width: 0;
    margin-top: 0;
  }

  .plan-contact-main__staff-message--sp {
    flex: 0 0 100%;
    width: 100%;
    margin-top: 0;
    padding: 14px 12px;
  }

  .plan-contact-main__staff-message--sp .plan-contact-main__staff-message-text {
    font-size: 14px;
    line-height: 1.5;
  }
}

@media (min-width: 768px) {
  .plan-contact-main-wrap {
    padding: 48px 0 64px;
    overflow: visible;
  }

  .plan-contact-main-card {
    padding: 20px;
  }
  .plan-contact-main-card.plan-contact-main-card--banner {
    padding: 0;
  }
  .plan-contact-main-card__outer {
    padding: 20px 20px 30px;
  }

  .plan-contact-main-card .front-flow__callout-heading {
    margin-bottom: 16px;
    font-size: 26px;
  }

  .plan-contact-main-wrap .front-flow__callout.plan-contact-main {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    overflow: visible;
  }

  .plan-contact-main__staff {
    position: relative;
    flex: 0 0 auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    min-width: 220px;
    padding-right: 220px;
    min-height: 299px;
  }

  .plan-contact-main .front-flow__callout-row {
    flex-wrap: wrap;
  }

  .plan-contact-main__staff-message {
    padding: 24px 20px;
    min-width: 200px;
  }

  .plan-contact-main__staff-message-text {
    font-size: 20px;
  }

  .plan-contact-main__staff-photo {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 209px;
    height: 299px;
    max-width: none;
    object-fit: cover;
    object-position: top center;
    pointer-events: none;
  }
}

@media (max-width: 767.98px) {
  .plan-contact-text {
    margin-bottom: 24px;
    font-size: 14px;
  }

  .plan-contact-main-card .front-flow__callout-heading {
    font-size: 20px;
  }
}
.sora-page {
  color: var(--black);
  background: var(--bs-white);
  overflow: hidden;
}

.sora-page *,
.sora-page *::before,
.sora-page *::after {
  box-sizing: border-box;
}

.sora-page img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.sora-hero {
  padding: 48px 0 64px;
  background: var(--surface-pink);
}

.sora-breadcrumb {
  margin: 0 0 24px;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.sora-page-head {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 40px;
  align-items: center;
}

.sora-page-title {
  margin: 0;
  color: var(--black);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.sora-page-head__image img {
  display: block;
  width: 100%;
  height: 400px;
  object-fit: cover;
}

.sora-summary {
  padding: 48px 0;
}

.sora-summary__image img {
  display: block;
  width: 100%;
  height: 491px;
  object-fit: cover;
}

.sora-summary__note {
  margin: 16px 0 0;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.sora-summary__title {
  margin: 0 0 20px;
  color: var(--chokuso);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
}

.sora-summary__title span {
  font-size: 40px;
}

.sora-summary__discount {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin: 0 0 16px;
  padding: 10px 16px;
  background: var(--key);
  border-radius: 9999px;
  color: var(--bs-white);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.sora-summary__discount span {
  color: var(--accent-yellow-strong);
}

.sora-summary__price-box {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.sora-summary__price-box--single {
  grid-template-columns: 1fr;
}

.sora-summary__price-col {
  padding: 12px 16px;
  background: var(--bs-white);
  border: 1px solid var(--gray);
}

.sora-summary__price-col.is-member {
  border-color: var(--key);
}

.sora-summary__label {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.sora-summary__price {
  margin: 0;
  color: var(--black);
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
}

.sora-summary__price-col.is-member .sora-summary__price {
  color: var(--key);
  font-size: 48px;
  font-weight: 700;
  text-align: right;
}

.sora-summary__price-note {
  margin: 8px 0 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
}

.sora-summary__meta {
  margin-bottom: 24px;
}

.sora-summary__meta-row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.sora-summary__meta-row strong {
  font-weight: 700;
}

.sora-summary__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.sora-summary__tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 115px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 4px;
  color: var(--bs-white);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.sora-summary__tags .is-active {
  background: var(--chokuso);
}

.sora-summary__tags .is-muted {
  background: rgba(189, 187, 183, 0.4);
}

.sora-summary__lead {
  margin: 0 0 16px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.sora-summary__text {
  margin: 0;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.sora-selected__box {
  max-width: 860px;
  margin: 0 auto;
  padding: 32px;
  background: var(--surface);
}

.sora-selected__list li {
  padding-left: 30px;
  margin-bottom: 18px;
  border-bottom: 1px solid var(--bs-white);
}

.sora-products .guide-section-heading,
.sora-upgrade .guide-section-heading,
.sora-gallery .guide-section-heading {
  margin-bottom: 32px;
}

.sora-product-card {
  display: grid;
  grid-template-columns: 87px 1fr;
  gap: 8px;
  align-items: center;
  min-height: 60px;
  padding: 1px 8px 1px 1px;
  background: var(--bs-white);
  border: 1px solid var(--primary);
}

.sora-product-card.is-brown {
  border-color: var(--kazoku);
}

.sora-product-card.is-green {
  border-color: var(--chokuso);
}

.sora-product-card.is-blue {
  border-color: var(--heya);
}

.sora-product-card.is-neutral {
  border-color: var(--neutral);
}

.sora-product-card img {
  display: block;
  width: 87px;
  height: 58px;
  object-fit: cover;
}

.sora-product-card p {
  margin: 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

.sora-upgrade-grid {
  margin-top: 0;
}

.sora-upgrade-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 166px;
  overflow: hidden;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  border-radius: 8px;
}

.sora-upgrade-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sora-upgrade-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
}

.sora-upgrade-card__body h3 {
  margin: 0 0 12px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.sora-upgrade-card__body p {
  margin: 0;
  color: var(--black);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}

.sora-upgrade__note {
  margin-top: 24px;
}

.sora-gallery-grid img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.sora-current-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 2px 8px;
  margin-left: 8px;
  background: var(--secondary);
  color: var(--primary);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  border-radius: 9999px;
  vertical-align: middle;
}

.plan-compare-actions__btn.is-current {
  background: var(--gray);
  cursor: default;
}

.sora-faq-note {
  margin: 24px 0 0;
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

@media (max-width: 991.98px) {
  .sora-page-head {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .sora-page-title {
    font-size: 40px;
  }

  .sora-page-head__image img {
    height: 320px;
  }

  .sora-summary__image img {
    height: 360px;
  }

  .sora-summary__title {
    font-size: 40px;
  }

  .sora-summary__title span {
    font-size: 32px;
  }

  .sora-summary__discount {
    font-size: 20px;
  }

  .sora-summary__price-col.is-member .sora-summary__price {
    font-size: 40px;
  }

  .sora-selected__box {
    padding: 24px;
  }

  .sora-upgrade-card__body h3 {
    font-size: 20px;
  }

  .sora-upgrade-card__body p {
    font-size: 18px;
  }
}

@media (max-width: 767.98px) {
  .sora-hero {
    padding: 32px 0 48px;
  }

  .sora-breadcrumb {
    font-size: 12px;
  }

  .sora-page-title {
    font-size: 34px;
  }

  .sora-page-head__image img {
    height: 240px;
  }

  .sora-summary {
    padding: 40px 0;
  }

  .sora-summary__image img {
    height: 240px;
  }

  .sora-summary__title {
    font-size: 32px;
  }

  .sora-summary__title span {
    font-size: 24px;
  }

  .sora-summary__discount {
    font-size: 16px;
    min-height: 44px;
  }

  .sora-summary__price-box {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .sora-summary__price {
    font-size: 30px;
  }

  .sora-summary__price-col.is-member .sora-summary__price {
    font-size: 36px;
  }

  .sora-summary__meta-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .sora-summary__tags span {
    min-width: calc(50% - 6px);
    font-size: 14px;
  }

  .sora-summary__lead {
    font-size: 20px;
  }

  .sora-summary__text,
  .sora-summary__note {
    font-size: 14px;
  }

  .sora-selected__box {
    padding: 20px 16px;
  }

  .sora-product-card {
    grid-template-columns: 72px 1fr;
  }

  .sora-product-card img {
    width: 72px;
    height: 58px;
  }

  .sora-upgrade-card {
    grid-template-columns: 1fr;
  }

  .sora-upgrade-card__image img {
    height: 180px;
  }

  .sora-gallery-grid img {
    height: 180px;
  }

  .sora-faq-note {
    font-size: 14px;
  }
}

.plan-summary-member-price__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.plan-summary-member-price__label {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border: 1px solid var(--key);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.plan-summary-member-price__label.text-heya {
  border-color: var(--heya);
}

.plan-summary-member-price__note {
  flex-shrink: 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
}

/* プラン詳細サマリー：工程タグ間の区切り三角 */
.plan-summary-flow-tags span,
.chokuso-summary__tags span,
.kazoku-summary__tags span {
  position: relative;
}

.plan-summary-flow-tags span:not(:last-child)::after,
.chokuso-summary__tags span:not(:last-child)::after,
.kazoku-summary__tags span:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: -14px;
  transform: translateY(-50%);
  width: 7px;
  height: 10px;
  background: var(--gray);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* 直葬プラン詳細（chokuso-*） */
.chokuso-page {
  color: var(--black);
  background: var(--bs-white);
  overflow: hidden;
}

.chokuso-page *,
.chokuso-page *::before,
.chokuso-page *::after {
  box-sizing: border-box;
}

.chokuso-page img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.chokuso-hero {
  padding: 48px 0 64px;
  background: var(--surface-pink);
}

.chokuso-breadcrumb {
  margin: 0 0 24px;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.chokuso-page-head {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 40px;
  align-items: center;
}

.chokuso-page-title {
  margin: 0;
  color: var(--black);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.chokuso-page-head__image img {
  display: block;
  width: 100%;
  height: 400px;
  object-fit: cover;
}

.chokuso-summary {
  padding: 48px 0;
}

.chokuso-summary__image img {
  display: block;
  width: 100%;
  height: 491px;
  object-fit: cover;
}

.chokuso-summary__note {
  margin: 16px 0 0;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.chokuso-summary__title {
  margin: 0 0 20px;
  color: var(--chokuso);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
}

.chokuso-summary__title span {
  font-size: 40px;
}

.chokuso-summary__discount {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  margin: 0 0 16px;
  padding: 10px 16px;
  background: var(--key);
  border-radius: 9999px;
  color: var(--bs-white);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.chokuso-summary__discount span {
  color: var(--accent-yellow-strong);
}

.chokuso-summary__price-box {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.chokuso-summary__price-box--single {
  grid-template-columns: 1fr;
}

.chokuso-summary__price-col {
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 1rem;
}


.chokuso-summary__label {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.chokuso-summary__price {
  margin: 0;
  color: var(--black);
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
}

.chokuso-summary__price-col.is-member .chokuso-summary__price {
  color: var(--key);
  font-size: 48px;
  font-weight: 700;
  text-align: right;
}

.chokuso-summary__price-note {
  margin: 8px 0 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
}

.chokuso-summary__meta {
  margin-bottom: 24px;
}

.chokuso-summary__meta-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.chokuso-summary__meta-row strong {
  font-weight: 700;
}

.chokuso-summary__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.chokuso-summary__tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(100% / 4 - 16px);
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 4px;
  color: var(--bs-white);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.chokuso-summary__tags .is-active {
  background: var(--chokuso);
}

.chokuso-summary__tags .is-muted {
  background: rgba(189, 187, 183, 0.4);
}

.chokuso-summary__lead {
  margin: 0 0 16px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.chokuso-summary__text {
  margin: 0;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.chokuso-selected .front-worry__box {
  max-width: 860px;
  margin: 0 auto;
}

.chokuso-products .guide-section-heading,
.chokuso-upgrade .guide-section-heading,
.chokuso-gallery .guide-section-heading {
  margin-bottom: 32px;
}

.chokuso-product-card {
  display: grid;
  grid-template-columns: 87px 1fr;
  gap: 8px;
  align-items: center;
  min-height: 60px;
  padding: 1px 8px 1px 1px;
  background: var(--bs-white);
  border: 1px solid var(--primary);
}


.chokuso-product-card.is-teal {
  border-color: var(--chokuso);
}
.chokuso-product-card.is-brown {
  border-color: var(--kazoku);
}

.chokuso-product-card.is-green {
  border-color: var(--chokuso);
}

.chokuso-product-card.is-blue {
  border-color: var(--heya);
}

.chokuso-product-card.is-neutral {
  border-color: var(--neutral);
}

.chokuso-product-card img {
  display: block;
  width: 87px;
  height: 58px;
  object-fit: cover;
}

.chokuso-product-card p {
  margin: 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

.chokuso-upgrade-grid {
  margin-top: 0;
}

.chokuso-upgrade-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 166px;
  overflow: hidden;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  border-radius: 8px;
}

.chokuso-upgrade-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.chokuso-upgrade-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
}

.chokuso-upgrade-card__body h3 {
  margin: 0 0 12px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.chokuso-upgrade-card__body p {
  margin: 0;
  color: var(--black);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}

.chokuso-upgrade__note {
  margin-top: 24px;
}

.chokuso-gallery-grid img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.chokuso-current-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 2px 8px;
  margin-left: 8px;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  vertical-align: middle;
}

.jiin-current-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 2px 8px;
  margin-left: 8px;
  background: var(--success);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  vertical-align: middle;
}

.chokuso-page--jiin .chokuso-summary__title {
  color: var(--success);
}

.chokuso-page--jiin .chokuso-summary__tags .is-active {
  background: var(--success);
}

.chokuso-page--jiin .chokuso-product-card.is-teal,
.chokuso-page--jiin .chokuso-product-card.is-green {
  border-color: var(--success);
}

.heya-current-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 2px 8px;
  margin-left: 8px;
  background: var(--heya);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  vertical-align: middle;
}

.heya-page .kazoku-summary__title {
  color: var(--heya);
}

.heya-page .kazoku-summary__tags .is-active {
  background: var(--heya);
}

.heya-page .kazoku-product-card.is-teal,
.heya-page .kazoku-product-card.is-brown,
.heya-page .kazoku-product-card.is-green {
  border-color: var(--heya);
}

.plan-compare-actions__btn.is-current {
  background: var(--gray);
  cursor: default;
}

.chokuso-faq-note {
  margin: 24px 0 0;
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

@media (max-width: 991.98px) {
  .chokuso-page-head {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .chokuso-page-title {
    font-size: 40px;
  }

  .chokuso-page-head__image img {
    height: 320px;
  }

  .chokuso-summary__image img {
    height: 360px;
  }

  .chokuso-summary__title {
    font-size: 40px;
  }

  .chokuso-summary__title span {
    font-size: 32px;
  }

  .chokuso-summary__discount {
    font-size: 20px;
  }

  .chokuso-summary__price-col.is-member .chokuso-summary__price {
    font-size: 40px;
  }

  .chokuso-upgrade-card__body h3 {
    font-size: 20px;
  }

  .chokuso-upgrade-card__body p {
    font-size: 18px;
  }
}

@media (max-width: 767.98px) {
  .chokuso-hero {
    padding: 32px 0 48px;
  }

  .chokuso-breadcrumb {
    font-size: 12px;
  }

  .chokuso-page-title {
    font-size: 34px;
  }

  .chokuso-page-head__image img {
    height: 240px;
  }

  .chokuso-summary {
    padding: 40px 0;
  }

  .chokuso-summary__image img {
    height: 240px;
  }

  .chokuso-summary__title {
    font-size: 32px;
  }

  .chokuso-summary__title span {
    font-size: 24px;
  }

  .chokuso-summary__discount {
    font-size: 16px;
    min-height: 44px;
  }

  .chokuso-summary__price-box {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .chokuso-summary__price {
    font-size: 30px;
  }

  .chokuso-summary__price-col.is-member .chokuso-summary__price {
    font-size: 36px;
  }

  .chokuso-summary__meta-row {
    gap: 8px;
  }

  .chokuso-summary__tags span {
    min-width: calc(50% - 10px);
    font-size: 14px;
  }

  .chokuso-summary__tags span:not(:last-child)::after {
    display: none;
  }

  .chokuso-summary__lead {
    font-size: 20px;
  }

  .chokuso-summary__text,
  .chokuso-summary__note {
    font-size: 14px;
  }

  .chokuso-product-card {
    grid-template-columns: 72px 1fr;
  }

  .chokuso-product-card img {
    width: 72px;
    height: 58px;
  }

  .chokuso-upgrade-card {
    grid-template-columns: 1fr;
  }

  .chokuso-upgrade-card__image img {
    height: 180px;
  }

  .chokuso-gallery-grid img {
    height: 180px;
  }

  .chokuso-faq-note {
    font-size: 14px;
  }
}


/* 家族葬プラン55詳細（kazoku-*） */
.kazoku-page,
.kippan-page,
.heya-page {
  color: var(--black);
  background: var(--bs-white);
  overflow: hidden;
}

.kazoku-page *,
.kazoku-page *::before,
.kazoku-page *::after,
.kippan-page *,
.kippan-page *::before,
.kippan-page *::after,
.heya-page *,
.heya-page *::before,
.heya-page *::after {
  box-sizing: border-box;
}

.kazoku-page img,
.kippan-page img,
.heya-page img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.kazoku-hero {
  padding: 48px 0 64px;
  background: var(--surface-pink);
}

.kazoku-breadcrumb {
  margin: 0 0 24px;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.kazoku-page-head {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 40px;
  align-items: center;
}

.kazoku-page-title {
  margin: 0;
  color: var(--black);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.kazoku-page-head__image img {
  display: block;
  width: 100%;
  height: 400px;
  object-fit: cover;
}

.kazoku-summary {
  padding: 48px 0;
}

.kazoku-summary__image {
  position: relative;
  display: block;
  width: 100%;
}

.kazoku-summary__image img:not(.front-plan-card__recommended) {
  display: block;
  width: 100%;
  height: 491px;
  object-fit: cover;
}

.kazoku-summary__image .front-plan-card__recommended {
  position: absolute;
  bottom: 24px;
  right: 12px;
  width: 79px;
  height: auto;
}

.kazoku-summary__note {
  margin: 16px 0 0;
  color: var(--neutral);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

.kazoku-summary__title {
  margin: 0 0 20px;
  color: var(--kazoku);
  font-size: 48px;
  font-weight: 700;
  line-height: 1.4;
}

.kazoku-summary__title span {
  font-size: 40px;
}

.kazoku-summary__discount {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 16px;
  padding: 6px 12px;
  background: var(--key);
  border-radius: 9999px;
  color: var(--bs-white);
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.kazoku-summary__discount span {
  color: var(--accent-yellow-strong);
}

.kazoku-summary__price-box {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) auto minmax(0, 1.18fr);
  column-gap: 8px;
  margin-bottom: 20px;
}

.kazoku-summary__price-box::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  width: 12px;
  height: 16px;
  margin-bottom: 8px;
  background: var(--key);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.kazoku-summary__price-col:first-child {
  grid-column: 1;
}

.kazoku-summary__price-col.is-member {
  grid-column: 3;
}

.kazoku-summary__price-box--single {
  grid-template-columns: 1fr;
}

.kazoku-summary__price-box--single::before {
  display: none;
}



.kazoku-summary__label {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.kazoku-summary__price {
  margin: 0;
  color: var(--black);
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
}

.kazoku-summary__price-col.is-member .kazoku-summary__price {
  color: var(--key);
  font-size: 48px;
  font-weight: 700;
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .kazoku-summary__price {
    font-size: clamp(26px, 2.9vw, 36px);
    white-space: nowrap;
  }

  .kazoku-summary__price-col.is-member .kazoku-summary__price {
    font-size: clamp(32px, 3.5vw, 42px);
  }
}

.kazoku-summary__price-note {
  margin: 8px 0 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-align: right;
}

.kazoku-summary__meta {
  margin-bottom: 24px;
}

.kazoku-summary__meta-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.kazoku-summary__meta-row strong {
  font-weight: 700;
}

.kazoku-summary__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.kazoku-summary__tags span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: calc(100% / 4 - 16px);
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 4px;
  color: var(--bs-white);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.kazoku-summary__tags .is-active {
  background: var(--kazoku);
}

.kazoku-summary__tags .is-muted {
  background: rgba(189, 187, 183, 0.4);
}

.kazoku-summary__lead {
  margin: 0 0 16px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.kazoku-summary__text {
  margin: 0;
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.kazoku-selected .front-worry__box {
  max-width: 860px;
  margin: 0 auto;
}

.kazoku-products .guide-section-heading,
.kazoku-upgrade .guide-section-heading,
.kazoku-gallery .guide-section-heading {
  margin-bottom: 32px;
}

.kazoku-product-card {
  display: grid;
  grid-template-columns: 87px 1fr;
  gap: 8px;
  align-items: center;
  min-height: 60px;
  padding: 1px 8px 1px 1px;
  background: var(--bs-white);
  border: 1px solid var(--primary);
}


.kazoku-product-card.is-teal {
  border-color: var(--kazoku);
}
.kazoku-product-card.is-brown {
  border-color: var(--kazoku);
}

.kazoku-product-card.is-green {
  border-color: var(--kazoku);
}

.kazoku-product-card.is-blue {
  border-color: var(--heya);
}

.kazoku-product-card.is-neutral {
  border-color: var(--neutral);
}

.kazoku-product-card img {
  display: block;
  width: 87px;
  height: 58px;
  object-fit: cover;
}

.kazoku-product-card p {
  margin: 0;
  color: var(--black);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}

.kazoku-upgrade-grid {
  margin-top: 0;
}

.kazoku-upgrade-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 166px;
  overflow: hidden;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  border-radius: 8px;
}

.kazoku-upgrade-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kazoku-upgrade-card__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
}

.kazoku-upgrade-card__body h3 {
  margin: 0 0 12px;
  color: var(--black);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.kazoku-upgrade-card__body p {
  margin: 0;
  color: var(--black);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.6;
}

.kazoku-upgrade__note {
  margin-top: 24px;
}

.kazoku-gallery-grid img {
  display: block;
  width: 100%;
  height: 240px;
  object-fit: cover;
}

.kazoku-current-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 2px 8px;
  margin-left: 8px;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  vertical-align: middle;
}

.plan-compare-actions__btn.is-current {
  background: var(--gray);
  cursor: default;
}

.kazoku-faq-note {
  margin: 24px 0 0;
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

@media (max-width: 991.98px) {
  .kazoku-page-head {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .kazoku-page-title {
    font-size: 40px;
  }

  .kazoku-page-head__image img {
    height: 320px;
  }

  .kazoku-summary__image img:not(.front-plan-card__recommended) {
    height: 360px;
  }

  .kazoku-summary__title {
    font-size: 40px;
  }

  .kazoku-summary__title span {
    font-size: 32px;
  }


  .kazoku-summary__price-col.is-member .kazoku-summary__price {
    font-size: 40px;
  }

  .kazoku-upgrade-card__body h3 {
    font-size: 20px;
  }

  .kazoku-upgrade-card__body p {
    font-size: 18px;
  }
}

@media (max-width: 767.98px) {
  .kazoku-hero {
    padding: 32px 0 48px;
  }

  .kazoku-breadcrumb {
    font-size: 12px;
  }

  .kazoku-page-title {
    font-size: 34px;
  }

  .kazoku-page-head__image img {
    height: 240px;
  }

  .kazoku-summary {
    padding: 40px 0;
  }

  .kazoku-summary__image img:not(.front-plan-card__recommended) {
    height: 240px;
  }

  .kazoku-summary__title {
    font-size: 32px;
  }

  .kazoku-summary__title span {
    font-size: 24px;
  }

  .kazoku-summary__price-box {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .kazoku-summary__price-box::before {
    display: none;
  }

  .kazoku-summary__price-col:first-child,
  .kazoku-summary__price-col.is-member {
    grid-column: 1;
  }

  .kazoku-summary__price {
    font-size: 30px;
  }

  .kazoku-summary__price-col.is-member .kazoku-summary__price {
    font-size: 36px;
  }

  .kazoku-summary__meta-row {
    gap: 8px;
  }

  .kazoku-summary__tags span {
    min-width: calc(50% - 10px);
    font-size: 14px;
  }

  .kazoku-summary__tags span:not(:last-child)::after {
    display: none;
  }

  .kazoku-summary__lead {
    font-size: 20px;
  }

  .kazoku-summary__text,
  .kazoku-summary__note {
    font-size: 14px;
  }

  .kazoku-product-card {
    grid-template-columns: 72px 1fr;
  }

  .kazoku-product-card img {
    width: 72px;
    height: 58px;
  }

  .kazoku-upgrade-card {
    grid-template-columns: 1fr;
  }

  .kazoku-upgrade-card__image img {
    height: 180px;
  }

  .kazoku-gallery-grid img {
    height: 180px;
  }

  .kazoku-faq-note {
    font-size: 14px;
    text-align: left;
  }
}
.niji-page {
  --plan-accent: var(--heya);
}

.niji-recommend-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 14px;
  margin: 0 0 16px;
  background: var(--plan-accent);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  border-radius: 9999px;
}


.niji-page {
  --plan-accent: var(--heya);
}

.niji-recommend-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 14px;
  margin: 0 0 16px;
  background: var(--plan-accent);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  border-radius: 9999px;
}

.niji-page .sora-summary__title {
  color: var(--plan-accent);
}

.niji-page .sora-summary__tags .is-active {
  background: var(--plan-accent);
}

.niji-page .text-primary {
  color: var(--primary) !important;
}

.niji-page .plan-label-niji {
  color: var(--plan-accent);
  font-weight: 700;
}

.niji-page .plan-compare-head__card--niji,
.niji-page .plan-compare-actions__btn--niji {
  background: var(--plan-accent);
  border-color: var(--plan-accent);
}

.niji-page .plan-compare-actions__btn--niji {
  color: var(--bs-white);
}

.niji-page .plan-compare-actions__btn--niji.is-current {
  background: var(--gray);
  color: var(--bs-white);
}

.niji-page .plan-select-visual-card .plan-label-niji {
  color: var(--plan-accent);
}

@media (max-width: 767.98px) {
  .niji-recommend-badge {
    min-height: 28px;
    padding: 4px 12px;
    margin-bottom: 12px;
    font-size: 12px;
  }
}
.gekko-page {
  --plan-accent: var(--kazoku);
}

.gekko-page .sora-summary__title {
  color: var(--plan-accent);
}

.gekko-page .sora-summary__discount span {
  color: var(--accent-yellow-strong);
  background: transparent;
}

.gekko-page .sora-summary__tags .is-active {
  background: var(--plan-accent);
}

.gekko-page .plan-label-gekko {
  color: var(--plan-accent);
  font-weight: 700;
}

.gekko-page .plan-compare-head__card--gekko,
.gekko-page .plan-compare-actions__btn--gekko {
  background: var(--plan-accent);
  border-color: var(--plan-accent);
}

.gekko-page .plan-compare-actions__btn--gekko {
  color: var(--bs-white);
}

.gekko-page .plan-compare-actions__btn--gekko.is-current {
  background: var(--gray);
  color: var(--bs-white);
}

.gekko-page .plan-select-visual-card .plan-label-gekko {
  color: var(--plan-accent);
}

.gekko-page .sora-product-card.is-red {
  border-color: var(--primary);
}

.gekko-page .sora-product-card.is-gold {
  border-color: var(--plan-accent);
}

.gekko-page .sora-product-card.is-green {
  border-color: var(--chokuso);
}

.gekko-page .sora-product-card.is-blue {
  border-color: var(--heya);
}

.gekko-page .sora-product-card.is-neutral {
  border-color: var(--neutral);
}

.gekko-page .sora-product-card small {
  display: inline-block;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.5;
}

@media (max-width: 767.98px) {
  .gekko-page .sora-product-card small {
    font-size: 10px;
  }
}

/* =============================================================
式場案内用CSS
================================================================ */
.hall-page {
  color: var(--black);
}

.hall-hero {
  padding: 48px 0;
  background: var(--surface-pink);
}

.hall-hero__content {
  padding-top: 8px;
}

.hall-hero__eyebrow {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--neutral);
}

.hall-hero__title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
}

.hall-hero__line {
  width: 72px;
  height: 1px;
  margin-top: 20px;
  background: var(--primary);
}

.hall-hero__image img {
  width: 100%;
  aspect-ratio: 844 / 400;
  object-fit: cover;
  display: block;
}

.hall-section-lead {
  line-height: 1.6;
  margin-bottom: 8px;
  font-size: 20px;
  font-weight: 700;
}

.hall-location .section-heading {
  display: flex;
  flex-direction: column;
}

.hall-location .section-heading h2 {
  order: -1;
}

.hall-location-cards {
  margin-top: 32px;
}

.hall-location-card {
  height: 100%;
  background: var(--bs-white);
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, .16);
  overflow: hidden;
}

a.hall-location-card__top,
.hall-location-card__top {
  display: block;
  position: relative;
  padding: 14px 44px 14px 20px;
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

a.hall-location-card__top:hover {
  color: var(--bs-white);
}

.hall-location-card__top::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--bs-white);
}

.hall-location-card__top::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 23px;
  width: 5px;
  height: 5px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

.hall-location-card--magritte .hall-location-card__top::after {
  color: var(--primary);
}

.hall-location-card--hoshizora .hall-location-card__top::after {
  color: var(--heya);
}

.hall-location-card--magritte .hall-location-card__top {
  background: var(--primary);
}

.hall-location-card--hoshizora .hall-location-card__top {
  background: var(--heya);
}

.hall-location-card--renshoji .hall-location-card__top {
  background: var(--kazoku);
}

.hall-location-card__body {
  padding: 20px 20px 24px;
}

.hall-location-card__body h3 {
  margin: 0 0 16px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.hall-location-card--magritte h3 {
  color: var(--primary);
}

.hall-location-card--hoshizora h3 {
  color: var(--heya);
}

.hall-location-card--renshoji h3 {
  color: var(--kazoku);
}

.hall-location-card__image {
  margin-bottom: 20px;
}

.hall-location-card__image img {
  width: 100%;
  aspect-ratio: 367 / 245;
  object-fit: cover;
  display: block;
}

.hall-location-card__meta {
  margin: 0;
  padding: 0;
  list-style: none;
}

.hall-location-card__meta li {
  position: relative;
  padding-left: 24px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
}

.hall-location-card__meta li + li {
  margin-top: 6px;
}

.hall-location-card__meta li::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  width: 15px;
  height: 15px;
  background: var(--primary);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-image: url("library/images/icon/map-pin.svg");
  mask-image: url("library/images/icon/map-pin.svg");
}

.hall-location-card__meta li.is-access::before {
  -webkit-mask-image: url("library/images/icon/time.svg");
  mask-image: url("library/images/icon/time.svg");
}

.hall-location__note {
  margin: 28px 0 0;
  text-align: center;
  font-size: 16px;
  line-height: 1.6;
}

.hall-choice__sub {
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 700;
}

.hall-choice__lead {
  margin: 0 0 32px;
  text-align: left;
  font-size: 16px;
  line-height: 1.6;
}

.hall-choice-card {
  height: 100%;
  padding: 24px 20px;
  background: var(--bs-white);
  border: 1px solid var(--gray03);
  border-radius: 8px;
  text-align: center;
}

.hall-choice-card__icon,
.hall-tour-point__icon {
  width: 156px;
  height: 120px;
  margin: 0 auto 20px;
}

.hall-choice-card__icon img,
.hall-tour-point__icon img {
  display: block;
  width: 156px;
  height: 120px;
  object-fit: contain;
}

.hall-choice-card h3 {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.hall-choice-card p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.hall-choice-card__mini {
  margin: 16px 0 0;
  padding-top: 16px;
  border-top: 1px solid #e9e1e4;
  text-align: left;
}

.hall-choice-card__mini dt {
  margin-bottom: 6px;
  font-weight: 700;
}

.hall-choice-card__mini dd,
.hall-choice-card__mini-text {
  margin: 0;
  line-height: 1.8;
}

.hall-choice-card__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

.hall-choice-card__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 24px;
  font-weight: 700;
  color: var(--primary-vivid);
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.hall-choice-card__tel:hover,
.hall-choice-card__tel:focus {
  color: var(--primary-vivid);
}

.hall-choice-card__tel-icon {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
}

.hall-choice-card__tel-note {
  font-size: 13px;
  color: var(--neutral);
  line-height: 1.6;
}

.hall-detail + .hall-detail {
  margin-top: 72px;
}

.hall-detail[id] {
  scroll-margin-top: 100px;
}

.hall-detail .front-feature__num-wrap {
  margin-bottom: 24px;
}

.hall-detail .front-hall-card {
  margin-bottom: 28px;
}

.hall-detail__info-table {
  --hall-detail-info-label-width: 7.5rem;
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
}

.hall-detail__info-table,
.hall-detail__info-table tbody,
.hall-detail__info-table tr {
  display: block;
  width: 100%;
  border: 0;
}

.hall-detail__info-table th,
.hall-detail__info-table td {
  display: block;
  width: 100%;
  max-width: none;
  padding: 0;
  border: 0;
  background: none;
  font-weight: inherit;
  text-align: left;
  word-break: normal;
  overflow-wrap: normal;
}

.hall-detail__info-table th.hall-detail__info-label {
  position: relative;
  padding-left: 24px;
}

.hall-detail__info-table > tbody > tr + tr {
  margin-top: 16px;
}

.hall-detail__info-table > tbody > tr > td + th,
.hall-detail__info-table > tbody > tr > th + td + th {
  margin-top: 16px;
}

.hall-detail__info-row--access > td + td {
  margin-top: 16px;
}

.hall-detail__info-label,
.hall-detail__info-subtitle {
  margin: 0 0 8px;
  color: var(--black);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
}

.hall-detail__info-text {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
}

.hall-detail__info-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 2px;
  width: 15px;
  height: 15px;
  background: var(--primary);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-image: url("library/images/icon/person.svg");
  mask-image: url("library/images/icon/person.svg");
}

.hall-detail__info-label.is-access::before {
  -webkit-mask-image: url("library/images/icon/time.svg");
  mask-image: url("library/images/icon/time.svg");
}

.hall-detail__info-label.is-facility::before {
  -webkit-mask-image: url("library/images/icon/hall.svg");
  mask-image: url("library/images/icon/hall.svg");
}

.hall-detail__info-label.is-parking::before {
  -webkit-mask-image: url("library/images/icon/parking.svg");
  mask-image: url("library/images/icon/parking.svg");
}

@media (min-width: 768px) {
  .hall-detail__info-table {
    display: table;
    table-layout: fixed;
    width: 100%;
  }
  .hall-choice__lead {
    text-align: center;
  }

  .hall-detail__info-table tbody {
    display: table-row-group;
    width: 100%;
  }

  .hall-detail__info-table tr {
    display: table-row;
    border: 0;
  }

  .hall-detail__info-table > tbody > tr > th,
  .hall-detail__info-table > tbody > tr > td {
    display: table-cell;
    width: auto;
    max-width: none;
    margin-top: 0;
    padding: 0 0 16px;
    border: 0;
    vertical-align: top;
  }

  .hall-detail__info-col-label {
    width: var(--hall-detail-info-label-width);
  }

  .hall-detail__info-col-value {
    width: calc(50% - var(--hall-detail-info-label-width));
  }

  .hall-detail__info-table > tbody > tr > th.hall-detail__info-label {
    width: var(--hall-detail-info-label-width);
    padding: 0 16px 16px 24px;
    white-space: nowrap;
  }

  .hall-detail__info-table > tbody > tr > th + td,
  .hall-detail__info-table > tbody > tr > td + th {
    padding-top: 0;
  }

  .hall-detail__info-table > tbody > tr > td + th.hall-detail__info-label {
    padding-left: 24px;
  }

  .hall-detail__info-row--access > td + td {
    margin-top: 0;
    padding-left: 24px;
  }

  .hall-detail__info-row--access .hall-detail__info-subtitle:first-child {
    margin-top: 0;
  }
}

.hall-gallery {
  margin-top: 28px;
}

.hall-gallery--magritte {
  width: 100%;
  max-width: 100%;
  margin-top: 28px;
}



.hall-gallery__grid {
  display: grid;
  gap: 8px;
}

.hall-gallery__grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* マグリット｜SP: 40/60 → 全幅 → 60/40 → 全幅 … の9枚構成 */
.hall-gallery__grid--magritte {
  grid-template-columns: repeat(10, 1fr);
}

.hall-gallery__grid--magritte img {
  min-height: 140px;
}

.hall-gallery__grid--magritte img:nth-child(1) {
  grid-column: 1 / 5;
}

.hall-gallery__grid--magritte img:nth-child(2) {
  grid-column: 5 / 11;
}

.hall-gallery__grid--magritte img:nth-child(3),
.hall-gallery__grid--magritte img:nth-child(6),
.hall-gallery__grid--magritte img:nth-child(9) {
  grid-column: 1 / 11;
  min-height: 200px;
}

.hall-gallery__grid--magritte img:nth-child(4) {
  grid-column: 1 / 7;
}

.hall-gallery__grid--magritte img:nth-child(5) {
  grid-column: 7 / 11;
}

.hall-gallery__grid--magritte img:nth-child(7) {
  grid-column: 1 / 5;
}

.hall-gallery__grid--magritte img:nth-child(8) {
  grid-column: 5 / 11;
}
.hall-gallery--magritte + .container {
  margin-top: 48px;
}
/* 星空の郷｜SP: 全幅 → 全幅 → 40/60 */
.hall-gallery__grid--hoshizora {
  grid-template-columns: repeat(10, 1fr);
}

.hall-gallery__grid--hoshizora img:nth-child(1) {
  grid-column: 1 / 11;
  min-height: 220px;
}

.hall-gallery__grid--hoshizora img:nth-child(2) {
  grid-column: 1 / 11;
  min-height: 160px;
}

.hall-gallery__grid--hoshizora img:nth-child(3) {
  grid-column: 1 / 5;
  min-height: 140px;
}

.hall-gallery__grid--hoshizora img:nth-child(4) {
  grid-column: 5 / 11;
  min-height: 140px;
}

.hall-gallery__grid--c {
  grid-template-columns: 1fr;
}

.hall-tour__lead {
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 700;
}

.hall-tour-points {
  margin-top: 28px;
}

.hall-tour-point h3 {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.hall-tour-point p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.hall-tour-point__time {
  margin-top: 0;
}

.hall-tour-point__time .hall-tour-point__time-heading {
  margin-top: 0;
}

.hall-tour-point__time-value {
  font-size: 24px;
  line-height: 1.4;
}

.hall-tour__reserve {
  margin: 28px 0 0;
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.7;
}

.hall-contact__lead {
  margin: 0 0 12px;
  font-size: 24px;
  font-weight: 700;
}

.hall-contact-box {
  display: grid;
  gap: 24px;
  margin-top: 32px;
}

.hall-contact-box__left,
.hall-contact-box__right {
  padding: 24px 20px;
  background: var(--bs-white);
  border-radius: 8px;
}

.hall-contact-box__label {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
}

.hall-contact-box__label span {
  padding: 4px 10px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  border-radius: 9999px;
}

.hall-contact-box__left h3 {
  margin: 0 0 10px;
  font-size: 24px;
  font-weight: 700;
}

.hall-contact-box__left p {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.8;
}

.hall-contact-box__form-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 56px;
  padding: 12px 20px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 16px;
  font-weight: 700;
}

.hall-contact-box__tel {
  margin: 0 0 8px;
  color: var(--primary);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.2;
}

.hall-contact-box__tel-link {
  margin: 0 0 16px;
  font-size: 16px;
  font-weight: 700;
}

.hall-contact-box__list {
  margin: 0 0 16px;
  padding-left: 1.2em;
}

.hall-contact-box__list li {
  font-size: 14px;
  line-height: 1.9;
}

.hall-contact-box__note {
  margin: 0;
  color: var(--neutral);
  font-size: 13px;
  line-height: 1.7;
}

@media (min-width: 768px) {
  .hall-hero {
    padding: 48px 0 72px;
  }

  .hall-hero__title {
    font-size: 40px;
  }

  .hall-gallery__grid--magritte {
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: clamp(120px, 14vw, 200px);
  }

  .hall-gallery__grid--magritte img {
    min-height: 0;
  }

  .hall-gallery__grid--magritte img:nth-child(1) {
    grid-column: 1 / 5;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(2) {
    grid-column: 5 / 9;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(3) {
    grid-column: 9 / 13;
    grid-row: 1;
    min-height: 0;
  }

  .hall-gallery__grid--magritte img:nth-child(4) {
    grid-column: 1 / 9;
    grid-row: 2 / 4;
  }

  .hall-gallery__grid--magritte img:nth-child(5) {
    grid-column: 9 / 13;
    grid-row: 2;
  }

  .hall-gallery__grid--magritte img:nth-child(6) {
    grid-column: 9 / 13;
    grid-row: 3;
    min-height: 0;
  }

  .hall-gallery__grid--magritte img:nth-child(7) {
    grid-column: 1 / 5;
    grid-row: 4;
  }

  .hall-gallery__grid--magritte img:nth-child(8) {
    grid-column: 5 / 9;
    grid-row: 4;
  }

  .hall-gallery__grid--magritte img:nth-child(9) {
    grid-column: 9 / 13;
    grid-row: 4;
    min-height: 0;
  }

  /* 星空の郷｜PC: 左大・右上1枚・右下2枚（左は正方形） */
  .hall-gallery__grid--hoshizora {
    grid-template-columns: 1.2fr 1fr 1fr;
    grid-template-rows: minmax(170px, 1fr) auto;
    align-items: stretch;
  }

  .hall-gallery__grid--hoshizora img:nth-child(1) {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-height: 348px;
    height: 100%;
  }

  .hall-gallery__grid--hoshizora img:nth-child(2) {
    grid-column: 2 / span 2;
    grid-row: 1;
    min-height: 170px;
    height: 100%;
  }

  .hall-gallery__grid--hoshizora img:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    height: auto;
    align-self: start;
  }

  .hall-gallery__grid--hoshizora img:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
    min-height: 0;
    height: 100%;
    align-self: stretch;
  }

  .hall-gallery__grid--c {
    grid-template-columns: 1.2fr 1fr 1fr;
    grid-template-rows: minmax(170px, 1fr) auto;
    align-items: stretch;
  }

  .hall-gallery__grid--c img:first-child {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-height: 348px;
    height: 100%;
  }

  .hall-gallery__grid--c img:nth-child(2) {
    grid-column: 2 / span 2;
    grid-row: 1;
    min-height: 170px;
    height: 100%;
  }

  .hall-gallery__grid--c img:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    height: auto;
    align-self: start;
  }

  .hall-gallery__grid--c img:nth-child(4) {
    grid-column: 3;
    grid-row: 2;
    min-height: 0;
    height: 100%;
    align-self: stretch;
  }

  .hall-contact-box {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}

@media (min-width: 992px) {
  .hall-hero__title {
    font-size: 48px;
  }
  .hall-gallery--magritte + .container {
    margin-top: 96px;
  }

  .hall-location-card__body {
    min-height: 390px;
  }

  .hall-tour__reserve {
    font-size: 24px;
  }
}

@media (min-width: 1200px) {
  .hall-gallery__grid--magritte {
    grid-template-columns: repeat(30, 1fr);
    grid-template-rows: 123fr 71fr 123fr;
    grid-auto-rows: auto;
    aspect-ratio: 903 / 326;
  }

  .hall-gallery__grid--magritte img,
  .hall-gallery__grid--magritte img:nth-child(3),
  .hall-gallery__grid--magritte img:nth-child(6),
  .hall-gallery__grid--magritte img:nth-child(9) {
    min-height: 0;
  }

  /* 左の組 */
  .hall-gallery__grid--magritte img:nth-child(1) {
    grid-column: 1 / 5;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(2) {
    grid-column: 5 / 11;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(3) {
    grid-column: 1 / 11;
    grid-row: 2 / 4;
  }

  /* 中央の組（上下反転） */
  .hall-gallery__grid--magritte img:nth-child(6) {
    grid-column: 11 / 21;
    grid-row: 1 / 3;
  }

  .hall-gallery__grid--magritte img:nth-child(4) {
    grid-column: 11 / 15;
    grid-row: 3;
  }

  .hall-gallery__grid--magritte img:nth-child(5) {
    grid-column: 15 / 21;
    grid-row: 3;
  }

  /* 右の組 */
  .hall-gallery__grid--magritte img:nth-child(7) {
    grid-column: 21 / 25;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(8) {
    grid-column: 25 / 31;
    grid-row: 1;
  }

  .hall-gallery__grid--magritte img:nth-child(9) {
    grid-column: 21 / 31;
    grid-row: 2 / 4;
  }
}

/* =============================================================
スタッフ紹介用CSS
================================================================ */
.staff-page {
  color: var(--black);
}

.staff-hero {
  padding: 48px 0;
  background: var(--surface-pink);
}

.staff-hero__content {
  padding-top: 8px;
}

.staff-hero__eyebrow {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--neutral);
}

.staff-hero__title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
}

.staff-hero__line {
  width: 72px;
  height: 1px;
  margin-top: 20px;
  background: var(--primary);
}

.staff-hero__image img {
  width: 100%;
  aspect-ratio: 844 / 400;
  object-fit: cover;
  display: block;
}

.staff-intro__grid {
  margin-top: 8px;
}

.staff-intro__main-image img {
  width: 100%;
  aspect-ratio: 624 / 636;
  object-fit: cover;
  display: block;
}

.staff-intro__sub-image img {
  width: 100%;
  aspect-ratio: 396 / 264;
  object-fit: cover;
  display: block;
}

.staff-intro__sub-image--small img {
  aspect-ratio: 204 / 264;
}

.staff-intro__message {
  padding-top: 24px;
}

.staff-intro__message h3 {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .04em;
}

.staff-intro__message p {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.staff-card + .staff-card {
  margin-top: 3.5rem;
}

.staff-card {
  display: grid;
  gap: 20px;
  align-items: start;
}

.staff-card__profile {
  text-align: center;
}

.staff-card__photo {
  width: 220px;
  height: 220px;
  margin: 0 auto 16px;
  border: 2px solid var(--gray);
  border-radius: 50%;
  overflow: hidden;
}

.staff-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.staff-card__position {
  margin: 0;
  color: var(--primary);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
}

.staff-card__name-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 16px;
  margin-bottom: 24px;
}

.staff-card__name {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
}

.staff-card__ruby {
  margin: 0;
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}

.staff-card__message-box {
  padding: 24px 24px 20px;
  background: var(--surface);
  position: relative;
}

/* 吹き出しの三角（SP/TB: 上向き） */
.staff-card__message-box::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 40px;
  width: 24px;
  height: 14px;
  background: var(--surface);
  clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

.staff-card__message-box h4 {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}

.staff-card__message-box p {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.6;
}

.staff-card__meta-item {
  padding-left: 3.5rem;
}

.staff-card__meta-item h5 {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  position: relative;
}

.staff-card__meta-item h5::before {
  content: "";
  position: absolute;
  left: -3.5rem;
  top: 50%;
  transform: translateY(-50%);
  display: block;
  width: 40px;
  height: 1px;
  background: var(--gray);
}

.staff-card__meta-item p {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.staff-contact {
  position: relative;
  overflow: hidden;
}

.staff-contact__headline {
  width: fit-content;
  margin: 0 auto 28px;
  padding: 8px 24px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
}

.staff-contact__lead {
  margin: 0 0 12px;
  text-align: center;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}

.staff-contact__sub {
  margin: 0 0 36px;
  text-align: center;
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.7;
}

.staff-contact-banner {
  margin-top: 40px;
  padding: 24px;
  background: var(--primary);
}

.staff-contact-banner__inner {
  padding: 20px;
  background: var(--secondary);
  border: 2px solid var(--primary);
}

.staff-contact-banner__top {
  margin: 0 0 18px;
  text-align: center;
  color: var(--primary-vivid);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
}

.staff-contact-banner__main {
  display: grid;
  gap: 24px;
  align-items: end;
}

.staff-contact-banner__left {
  padding: 24px 20px;
  background: var(--bs-white);
  border-radius: 8px;
}

.staff-contact-banner__catch {
  margin: 0 0 8px;
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.staff-contact-banner__catch span {
  font-size: 40px;
  line-height: 1.2;
}

.staff-contact-banner__text {
  margin: 0 0 16px;
  color: var(--neutral);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.staff-contact-banner__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: 0 0 20px;
  padding: 0;
  list-style: none;
}

.staff-contact-banner__list li {
  position: relative;
  padding-left: 18px;
  color: var(--neutral);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.staff-contact-banner__list li::before {
  content: "";
  position: absolute;
  top: .45em;
  left: 0;
  width: 10px;
  height: 10px;
  background: var(--success);
}

.staff-contact-banner__tel {
  margin: 0 0 8px;
  color: var(--primary-vivid);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.2;
}

.staff-contact-banner__note {
  width: fit-content;
  margin: 0;
  padding: 4px 14px;
  background: var(--primary-vivid);
  border-radius: 30px;
  color: var(--bs-white);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}

.staff-contact-banner__right {
  display: grid;
  gap: 16px;
  align-items: end;
}

.staff-contact-banner__box {
  width: 100%;
  max-width: 260px;
  margin: 0 auto;
  padding: 18px 16px;
  background: var(--accent-yellow);
  border-radius: 8px;
  text-align: center;
}

.staff-contact-banner__box p {
  margin: 0;
  color: var(--primary);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.staff-contact-banner__person img {
  width: 100%;
  max-width: 220px;
  margin: 0 auto;
  display: block;
  object-fit: cover;
}

@media (min-width: 768px) {
  .staff-hero {
    padding: 96px 0;
  }

  .staff-hero__title {
    font-size: 40px;
  }

  .staff-card__photo {
    width: 255px;
    height: 255px;
  }

  .staff-contact-banner__main {
    grid-template-columns: 1.4fr .9fr;
  }

  .staff-contact-banner__right {
    justify-items: center;
  }
}

@media (min-width: 992px) {
  .staff-hero__title {
    font-size: 48px;
  }

  .staff-card {
    grid-template-columns: 255px 1fr;
    gap: 46px;
  }

  .staff-card + .staff-card {
    margin-top: 4rem;
  }

  .staff-card__profile {
    padding-top: 6px;
  }

  .staff-card__message-box::before {
    top: calc(24px + 19.2px);
    left: -14px;
    width: 14px;
    height: 24px;
    transform: translateY(-50%);
    clip-path: polygon(0 50%, 100% 0, 100% 100%);
  }

  .staff-intro__message h3 {
    font-size: 36px;
    line-height: 1.4;
  }

  .staff-contact__headline {
    font-size: 32px;
  }

  .staff-contact-banner {
    padding: 36px;
  }

  .staff-contact-banner__inner {
    padding: 28px 20px 18px;
  }

  .staff-contact-banner__top {
    font-size: 32px;
  }
}
@media (min-width: 992px) {
  .staff-card + .staff-card {
    margin-top: 6rem;
  }
}
/* =============================================================
実績・信頼用CSS
================================================================ */
.aboutus-hero {
  padding: 48px 0;
  background: var(--surface-pink);
}

.aboutus-hero__content {
  padding-top: 8px;
}

.aboutus-hero__eyebrow {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--neutral);
}

.aboutus-hero__title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
}

.aboutus-hero__line {
  width: 72px;
  height: 1px;
  margin-top: 20px;
  background: var(--primary);
}

.aboutus-hero__image img {
  width: 100%;
  aspect-ratio: 844 / 400;
  object-fit: cover;
  display: block;
}

.aboutus-intro__sub {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
}

.aboutus-scenes {
  padding-bottom: 32px;
}

.aboutus-scene {
  display: grid;
  gap: 8px;
}


.aboutus-scene__media img,
.aboutus-scene__thumb img {
  width: 100%;
  display: block;
  object-fit: cover;
}

.aboutus-scene__media--large img {
  aspect-ratio: 956 / 797;
  object-position: left center;
}

.aboutus-scene__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.aboutus-scene__thumb img {
  aspect-ratio: 474 / 316;
}

.aboutus-scene__content {
  padding: 16px 24px;
}

.aboutus-scene__content h3 {
  margin: 0 0 20px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.aboutus-scene__content p {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.aboutus-scene__caption {
  padding: 18px 20px 28px;
  text-align: center;
}

.aboutus-scene__caption-title {
  margin: 0 0 8px;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.5;
}

.aboutus-scene__caption-text {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.8;
}

.guide-section-heading .aboutus-message__catch {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
}

@media (min-width: 992px) {
  .guide-section-heading .aboutus-message__catch {
    font-size: 48px;
    line-height: 1.4;
  }
}

.aboutus-message__photo img {
  width: 100%;
  aspect-ratio: 524 / 717;
  object-fit: cover;
  display: block;
}

.aboutus-message__body {
  height: 100%;
}

.aboutus-message__body p {
  line-height: 1.8;
}

.aboutus-message__sign {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 20px;
  margin-top: 28px !important;
}

.aboutus-message__sign span {
  font-size: 16px;
}

.aboutus-message__sign strong {
  font-size: 20px;
  font-weight: 700;
}

@media (min-width: 992px) {
  .aboutus-message .row {
    align-items: stretch;
  }

  .aboutus-message .row > .col-lg-4 {
    display: flex;
  }

  .aboutus-message__photo {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
  }

  .aboutus-message__photo img {
    height: 100%;
    aspect-ratio: auto;
  }
}

.aboutus-episodes {
  background: var(--surface);
}

.aboutus-episodes__heading {
  margin-bottom: 40px;
  text-align: center;
}

.aboutus-episodes__heading p:first-child {
  margin: 0 0 8px;
  font-size: 20px;
  font-weight: 700;
}

.aboutus-episodes__heading h2 {
  margin: 0 0 16px;
  color: var(--primary);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
}

.aboutus-episodes__heading p:last-child {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.aboutus-episode-card {
  height: 100%;
  background: var(--bs-white);
  border: 1px solid var(--surface);
}

.aboutus-episode-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 14px 16px;
  background: var(--secondary);
}

.aboutus-episode-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex: 0 0 26px;
  border-radius: 50%;
  background: var(--primary);
}

.aboutus-episode-card__icon img {
  width: 15px;
  height: 15px;
  object-fit: contain;
  filter: brightness(0) invert(1);
}

.aboutus-episode-card__head > div:last-child {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  min-width: 0;
}

.aboutus-episode-card__head h3 {
  margin: 0;
  color: var(--primary);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}

.aboutus-episode-card__stars {
  flex-shrink: 0;
  color: var(--gold-dark);
  font-size: 14px;
  letter-spacing: .12em;
  line-height: 1;
}

.aboutus-episode-card__text {
  margin: 0;
  padding: 20px 24px 16px;
  font-size: 16px;
  line-height: 1.6;
}

.aboutus-episode-card__plan {
  display: inline-flex;
  justify-content: space-between;
  gap: 20px;
  min-width: 166px;
  margin: 0 24px 24px;
  padding: 4px 10px;
  border: 1px solid;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

.aboutus-episode-card__plan--blue {
  color: var(--heya);
  border-color: var(--heya);
}

.aboutus-episode-card__plan--green {
  color: var(--success);
  border-color: var(--success);
}

.aboutus-episode-card__plan--gold {
  color: var(--kazoku);
  border-color: var(--kazoku);
}

.aboutus-history__timeline {
  position: relative;
  display: grid;
  gap: 24px;
}

.aboutus-history__line {
  position: absolute;
  top: 14px;
  bottom: 0;
  left: 8px;
  width: 1px;
  background: var(--gray);
}

.aboutus-history__item {
  position: relative;
  display: grid;
  grid-template-columns: 16px 140px 1fr;
  gap: 14px;
  align-items: start;
}

.aboutus-history__dot { grid-area: 1 / 1; }
.aboutus-history__year { grid-area: 1 / 2; }
.aboutus-history__text { grid-area: 1 / 3; }

.aboutus-history__year {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
}

.aboutus-history__dot {
  width: 16px;
  height: 16px;
  margin-top: 4px;
  background: var(--primary);
  border-radius: 50%;
  position: relative;
  z-index: 1;
}

.aboutus-history__text {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.aboutus-company__table {
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, .16);
  border-radius: 8px;
  overflow: hidden;
  padding: 24px;
}
@media (min-width: 768px) {
  .aboutus-history__dot {
      margin-top: 7px;
  }
}
@media (min-width: 992px) {
  .aboutus-company__table {
    margin-left: auto;
    margin-right: auto;
    padding: 48px 72px;
  }
}
@media (min-width: 1200px) {
  .aboutus-company__table {
    padding: 48px 150px;
  }
}

.aboutus-company__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--gray);
}

.aboutus-company__th,
.aboutus-company__td {
  padding: 16px 0;
}

.aboutus-company__row:first-child .aboutus-company__th,
.aboutus-company__row:first-child .aboutus-company__td {
  padding-top: 0;
}

.aboutus-company__th {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.45;
}

.aboutus-company__td {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.aboutus-company__td a {
  position: relative;
  padding-right: 20px;
  color: var(--primary);
}

.aboutus-company__td a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  background: var(--gray);
  -webkit-mask-image: url("library/images/icon/external-link.svg");
  mask-image: url("library/images/icon/external-link.svg");
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: contain;
  mask-size: contain;
}

@media (min-width: 768px) {
  .aboutus-hero {
    padding: 48px 0 72px;
  }

  .aboutus-hero__title {
    font-size: 40px;
  }

  .aboutus-scene__content {
    text-align: center;
  }
  .aboutus-scene__content h3 {
    font-size: 30px;
  }

  .aboutus-history__year {
    white-space: nowrap;
  }

  .aboutus-episode-card__head > div:last-child {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }
}

@media (min-width: 992px) {
  .aboutus-hero__title {
    font-size: 48px;
  }

  .aboutus-scene {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr auto;
    align-items: stretch;
  }

  .aboutus-scene__media {
    grid-column: 1;
    grid-row: 1 / span 2;
  }

  .aboutus-scene__content {
    grid-column: 2;
    grid-row: 1;
  }

  .aboutus-scene__gallery {
    grid-column: 2;
    grid-row: 2;
  }

  .aboutus-scene__media,
  .aboutus-scene__content,
  .aboutus-scene__gallery,
  .aboutus-scene__caption {
    min-width: 0;
  }

  .aboutus-scene__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 56px 40px 32px;
  }

  .aboutus-scene__caption {
    padding: 24px 32px 0;
  }

  .aboutus-scene--reverse {
    grid-template-rows: auto 1fr;
  }

  .aboutus-scene--reverse .aboutus-scene__media {
    grid-column: 2;
  }

  .aboutus-scene--reverse .aboutus-scene__content,
  .aboutus-scene--reverse .aboutus-scene__gallery {
    grid-column: 1;
  }

  .aboutus-scene--reverse .aboutus-scene__gallery {
    grid-row: 1;
  }

  .aboutus-scene--reverse .aboutus-scene__content {
    grid-row: 2;
    padding: 32px 40px 56px;
  }

  .aboutus-history__item {
    grid-template-columns: 16px 220px 1fr;
    gap: 48px;
  }

  .aboutus-history__line {
    left: 8px;
  }
}
@media (min-width: 1200px) {
  .aboutus-scene__content h3 {
    font-size: 36px;
  }
}
@media (max-width: 767.98px) {
  .aboutus-intro .section-heading h2 {
  font-size: 28px;
}
  .aboutus-company__row {
    grid-template-columns: 1fr;
  }
  .aboutus-company__th,
  .aboutus-company__td {
    padding: 24px 0;
  }

  .aboutus-company__row:first-child .aboutus-company__th,
  .aboutus-company__row:first-child .aboutus-company__td {
    padding-top: 0;
  }

  .aboutus-company__th {
    padding-bottom: 8px;
  }

  .aboutus-company__td {
    padding-top: 0;
  }

  .aboutus-history__item {
    grid-template-columns: 16px auto 1fr;
    gap: 10px 14px;
  }

  .aboutus-history__line {
    left: 8px;
  }

  .aboutus-history__year {
    font-size: 14px;
    white-space: nowrap;
  }

  .aboutus-history__text {
    font-size: 14px;
    min-width: 0;
  }
}
/* =============================================================
実績・信頼用CSS
================================================================ */
.member-page {
  color: var(--black);
}

.member-hero {
  padding: 48px 0;
  background: var(--surface-pink);
}

.member-hero__content {
  padding-top: 8px;
}

.member-hero__eyebrow {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 500;
  color: var(--neutral);
}

.member-hero__title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .06em;
}

.member-hero__line {
  width: 72px;
  height: 1px;
  margin-top: 20px;
  background: var(--primary);
}

.member-hero__image img {
  width: 100%;
  aspect-ratio: 844 / 400;
  object-fit: cover;
  display: block;
}

.member-benefit-card + .member-benefit-card {
  margin-top: 24px;
}

.member-benefit-card {
  overflow: hidden;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0, 0, 0, .16);
  border-radius: 8px;
}

.member-benefit-card__image img {
  width: 100%;
  aspect-ratio: 624 / 324;
  object-fit: cover;
  display: block;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  -webkit-mask-image: -webkit-radial-gradient(white, black);
}

.member-benefit-card__content {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 8px;
  padding: 24px;
}

.member-benefit-card__badge {
  flex: 0 0 99px;
  width: 99px;
  height: 99px;
  background: var(--primary);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--bs-white);
}

.member-benefit-card__badge span {
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .04em;
}

.member-benefit-card__badge strong {
  margin-top: 6px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .04em;
}

.member-benefit-card__body {
  display: contents;
}

.member-benefit-card__heading {
  flex: 1 1 0%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.member-benefit-card__heading h3 {
  margin: 0;
  text-align: center;
  color: var(--black);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.member-benefit-card__heading h3 span {
  color: var(--primary);
  font-size: 24px;
}

.member-benefit-card__note {
  margin: 0;
  text-align: center;
  color: var(--primary);
  font-size: 13px;
  font-weight: 500;
}

.member-benefit-card__body p:last-child {
  flex: 1 1 100%;
  margin: 0;
  font-weight: 500;
  line-height: 1.6;
}

.member-fee__notice {
  width: fit-content;
  margin: 0 auto 24px;
  padding: 4px 20px;
  background: var(--primary-vivid);
  border-radius: 60px;
  color: var(--accent-yellow);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.member-cta-card {
  border: 2px solid var(--primary);
  border-radius: 8px;
  overflow: hidden;
  background: var(--bs-white);
}
@media (min-width: 768px) {
  .member-fee__notice {
    font-size: 20px;
  }
}
@media (min-width: 992px) {
  .member-benefit-card__heading h3 {
    font-size: 20px;
  }

  .member-benefit-card__heading h3 span {
    font-size: 32px;
  }
  .member-cta-card {
    max-width: 1030px;
    margin-left: auto;
    margin-right: auto;
  }

  .member-cta-card__sub {
    font-size: 24px;
  }

  .member-cta-card__title {
    font-size: 50px;
  }
}
@media (min-width: 1200px) {
  .member-benefit-card__heading h3 {
    font-size: 24px;
  }
}
.member-cta-card__inner {
  position: relative;
  display: grid;
  gap: 20px;
  padding: 24px 20px;
  background: rgba(248, 243, 87, .1);
}

.member-cta-card__circle {
  width: 98px;
  height: 98px;
  margin: 0 auto;
  border-radius: 50%;
  background: var(--primary);
  color: var(--surface);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.member-cta-card__circle span {
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.member-cta-card__circle strong {
  margin-top: 8px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

.member-cta-card__main {
  text-align: center;
}

.member-cta-card__sub {
  margin: 0 0 8px;
  color: var(--neutral);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

.member-cta-card__title {
  margin: 0;
  color: var(--primary);
  font-size: 34px;
  font-weight: 700;
  line-height: 1.3;
}

.member-cta-card__line {
  width: 100%;
  max-width: 555px;
  height: 3px;
  margin: 12px auto 0;
  background: var(--primary);
}

.member-cta-card__price {
  text-align: center;
}

.member-cta-card__label {
  margin: 0 0 4px;
  color: var(--primary);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
}

.member-cta-card__label span {
  color: var(--neutral);
  font-size: 14px;
  font-weight: 500;
}

.member-cta-card__value {
  margin: 0;
  color: var(--primary);
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
}

.member-cta-card__value strong {
  font-size: 60px;
  font-weight: 700;
}

.member-cta-card__corp {
  width: fit-content;
  margin: 12px auto 0;
  padding: 4px 10px;
  border: 1px solid var(--primary);
  color: var(--primary);
  font-size: 14px;
  font-weight: 500;
}

.member-cta-card__corp span {
  color: var(--primary-vivid);
}

.member-cta-card__footer {
  display: grid;
  gap: 16px;
  padding: 16px 20px;
  background: var(--primary);
  align-items: center;
}

.member-cta-card__footer p {
  margin: 0;
  color: var(--bs-white);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}

.member-cta-card__button::after {
  content: "";
  position: absolute;
  right: 16px;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--primary-vivid);
}

.member-cta-card__button::before {
  content: "";
  position: absolute;
  right: 23px;
  top: 50%;
  z-index: 1;
  width: 5px;
  height: 5px;
  border-top: 2px solid var(--bs-white);
  border-right: 2px solid var(--bs-white);
  transform: translateY(-50%) rotate(45deg);
}

.member-cta-card__button {
  position: relative;
  padding-right: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 234px;
  margin: 0 auto;
  padding: 8px 22px;
  border-radius: 60px;
  background: var(--bs-white);
  color: var(--primary-vivid);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

.member-flow__timeline {
  position: relative;
  display: grid;
  gap: 28px;
}

.member-flow__line {
  position: absolute;
  top: 12px;
  bottom: 0;
  left: 7px;
  width: 1px;
  background: var(--gray);
}

.member-flow__item {
  position: relative;
  display: grid;
  grid-template-columns: 16px 1fr;
  grid-template-areas:
    "dot  head"
    ".    text";
  gap: 8px 18px;
  align-items: start;
}

.member-flow__dot {
  grid-area: dot;
}

.member-flow__head {
  grid-area: head;
}

.member-flow__text {
  grid-area: text;
}

.member-flow__dot {
  width: 16px;
  height: 16px;
  margin-top: 4px;
  border-radius: 50%;
  background: var(--primary);
  position: relative;
  z-index: 1;
}

.member-flow__head p {
  margin: 0 0 4px;
  color: var(--primary);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
}

.member-flow__head h3 {
  margin: 0 0 10px;
  color: var(--black);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
}

.member-flow__text {
  color: var(--black);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.member-cta-card--contact {
  margin-top: 28px;
  background: #fefeee;
}

.member-cta-card--contact .member-cta-card__inner {
  background: #fefeee;
}

@media (min-width: 768px) {
  .member-hero {
    padding: 48px 0 72px;
  }

  .member-hero__title {
    font-size: 40px;
  }

  .member-flow__item {
    grid-template-columns: 16px 320px 1fr;
    grid-template-areas: "dot head text";
    gap: 48px;
  }
  .member-benefit-card__content {
    padding: 24px;
    gap: 20px;
    flex: 1;
  }
  .member-benefit-card__heading {
    gap: 16px;
  }
}

@media (min-width: 992px) {
  .member-hero__title {
    font-size: 48px;
  }

  .member-benefit-card {
    display: flex;
    grid-template-columns: 624px 1fr;
    align-items: stretch;
  }

  .member-benefit-card__image {
    height: auto;
    width: calc(100% / 2);
  }

  .member-benefit-card__image img {
    height: 100%;
    border-top-left-radius: 8px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 8px;
  }

  .member-benefit-card__content {
    padding: 36px;
  }

  .member-cta-card__inner {
    grid-template-columns: 110px 1fr 280px;
    align-items: center;
    padding: 26px 24px 20px;
  }

  .member-cta-card__main {
    text-align: left;
  }

  .member-cta-card__line {
    margin-left: 0;
  }

  .member-cta-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 7px;
    text-align: left;
  }

  .member-cta-card__label {
    margin-bottom: 0;
  }

  .member-cta-card__corp {
    flex-basis: 100%;
    margin-top: 12px;
    margin-left: 0;
  }

  .member-cta-card__footer {
    grid-template-columns: 1fr auto;
    gap: 24px;
  }

  .member-cta-card__button {
    margin: 0;
  }
}
@media (min-width: 1200px) {
  .member-benefit-card__content {
    padding: 48px;
  }
}
/* =============================================================
緊急の方へ用CSS
================================================================ */
.emergency-page {
  color: var(--black);
}

.emergency-hero {
  padding: 48px 0;
  background: var(--surface-pink);
}

.emergency-hero__eyebrow {
  letter-spacing: 0.04em;
  margin: 0 0 28px;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--black);
}

.emergency-hero__card {
  position: relative;
  display: grid;
  gap: 20px;
  padding: 24px;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0,0,0,.1);
}

.emergency-hero__badge {
  position: absolute;
  top: -18px;
  left: -10px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 112px;
  height: 112px;
  border-radius: 50%;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.emergency-hero__badge > span {
  display: block;
}

.emergency-hero__badge strong {
  font-size: 21px;
}

.emergency-hero__note {
  margin: 8px 0 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.36;
  color: var(--neutral);
}

.emergency-hero__image img {
  width: 100%;
  aspect-ratio: 850/567;
  object-fit: cover;
  border-radius: 8px;
}

@media (min-width: 768px) {
  .emergency-hero__eyebrow {
    font-size: 48px;
  }
  .emergency-hero__card {
    grid-template-columns: 1fr 240px;
    align-items: center;
    gap: 32px;
    padding: 32px 40px;
  }

  .emergency-hero__image img {
    aspect-ratio: 193/321;
  }

  .emergency-hero__tel {
    font-size: 32px;
  }
}

.emergency-hero__title {
  letter-spacing: 0.04em;
  line-height: 1.4;
  display: inline-block;
  margin: 0 0 12px;
  padding-bottom: 4px;
  border-bottom: 2px solid var(--primary);
  font-size: 32px;
  font-weight: 700;
}

.emergency-hero__lead {
  font-size: 24px;
  line-height: 1.4;
}

.emergency-hero__tel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 16px 0;
  font-size: 22px;
  font-weight: 700;
  color: var(--primary);
}

.emergency-hero__tel img {
  width: 28px;
}

.emergency-hero__tel-label,
.emergency-hero__tel-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  white-space: nowrap;
}

.emergency-hero__tel-label {
  background: var(--primary);
  color: var(--bs-white);
}

.emergency-hero__tel-badge {
  border: 1px solid var(--primary);
  background: var(--bs-white);
  color: var(--primary);
}

.emergency-callinfo .guide-section-heading h2 {
  font-size: 36px;
  line-height: 1.4;
}

.emergency-callinfo__card {
  background: var(--bs-white);
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 0 16px rgba(0,0,0,.16);
}

.emergency-callinfo__item {
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: start;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--gray);
}
.emergency-callinfo__item:first-child {
  padding-top: 0;
}
.emergency-callinfo__text p {
  line-height: 1.6;
  margin: 0;
}
@media (min-width: 768px) {
  .emergency-callinfo__card {
    padding: 48px;
  }
  .emergency-callinfo__item {
    grid-template-columns: 48px 300px 1fr;
    align-items: baseline;
  }
  .emergency-callinfo__text h3 {
    line-height: 1.2;
  }
  .emergency-callinfo__text {
    display: contents;
  }
  .emergency-callinfo__text p {
    margin: 0 0 6px;
  }

  .emergency-callinfo__text h3 {
  line-height: 1.4;
    margin: 0;
    font-size: 24px;
    font-weight: 700;
    color: var(--primary);
  }
}

.emergency-callinfo__num {
  font-weight: 700;
  color: var(--primary);
  font-size: 20px;
  line-height: 1;
  margin-top: 4px;
}

.emergency-flow__timeline {
  position: relative;
  padding-left: 20px;
}

.emergency-flow__timeline:before {
  content:"";
  position:absolute;
  left:7px;
  top:0;
  bottom:0;
  width:1px;
  background:var(--gray);
}

.emergency-flow__item {
  display:flex;
  gap:20px;
  margin-bottom:24px;
}

.emergency-flow__dot {
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--primary);
  flex-shrink:0;
  margin-top:6px;
}

.emergency-flow__step {
  margin:0;
  font-size:13px;
  font-weight:700;
  letter-spacing:.08em;
  color:var(--primary);
}

.emergency-flow__body h3 {
  font-size:30px;
  font-weight:700;
  line-height:1.2;
  margin:2px 0 8px;
}

.emergency-flow__body p:not(.emergency-flow__step) {
  margin:0;
  line-height:1.6;
}

@media (min-width: 768px) {
  .emergency-flow__body {
    display:grid;
    grid-template-columns:340px 1fr;
    column-gap:32px;
    align-items:start;
  }

  .emergency-flow__step {
    grid-column:1;
  }

  .emergency-flow__body h3 {
    grid-column:1;
    margin:2px 0 0;
  }

  .emergency-flow__body p:not(.emergency-flow__step) {
    grid-column:2;
    grid-row:1 / span 2;
  }
  .emergency-callinfo__num {
    margin-top: 0;
  }
}

.emergency-support__card {
  background:var(--bs-white);
  padding:20px;
  border-radius:8px;
  box-shadow:0 0 12px rgba(0,0,0,.1);
}

.emergency-support__card img {
  width:100%;
  aspect-ratio:850/567;
  object-fit:cover;
  margin-bottom:12px;
}

.emergency-faq__item {
  border-bottom:1px solid var(--gray);
  padding:16px 0;
}

.emergency-faq__q {
  font-weight:700;
  color:var(--primary);
}

.emergency-faq__a {
  margin-top:6px;
}
/* =============================================================
投稿用ページ用CSS
================================================================ */
.news-list .news-list-item {
  margin-top: 0 !important;
}
.news-list .news-list-link {
  color: inherit;
}
.news-list .news-list-card {
  padding: 18px 0;
  border-bottom: 1px solid var(--gray);
}
.news-list .news-list-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.news-list .news-list-date {
  line-height: 1;
  letter-spacing: 0.04em;
}
.news-list .news-list-tag,
.sidebar-post-item .news-list-tag,
.single .byline .news-list-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 12px;
  border: 1px solid currentColor;
  background-color: var(--bs-white);
  font-size: .65rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.04em;
}
.news-list .news-list-tag.tag-info,
.sidebar-post-item .news-list-tag.tag-info,
.single .byline .news-list-tag.tag-info {
  color: var(--primary);
}
.news-list .news-list-tag.tag-event,
.sidebar-post-item .news-list-tag.tag-event,
.single .byline .news-list-tag.tag-event {
  color: var(--chokuso);
}
.news-list .news-list-tag.tag-shukatsu-column,
.sidebar-post-item .news-list-tag.tag-shukatsu-column,
.single .byline .news-list-tag.tag-shukatsu-column {
  color: var(--heya);
}
.news-list .news-list-tag.tag-fair,
.sidebar-post-item .news-list-tag.tag-fair,
.single .byline .news-list-tag.tag-fair {
  color: var(--kazoku);
}
.news-list .news-list-title {
  margin: 0;
  line-height: 1.6;
  letter-spacing: 0.04em;
  transition: opacity 0.2s ease;
  flex: 1 1 0%;
  min-width: 0;
}

.news-list .news-list-link:hover .news-list-title,
.news-list .news-list-link:focus .news-list-title {
  opacity: 0.72;
}
.single-byline-date-tags {
  gap: 1.5rem;
}
@media (min-width: 768px) {
  .news-list .news-list-card {
    width: 100%;
    padding: 24px 0;
  }
  .news-list .news-list-meta {
    flex: 0 0 auto;
    gap: 12px;
    margin-bottom: 0;
  }
  .news-list .news-list-meta, .news-list .news-list-card {
    gap: 3rem;
  }
  .related-box .news-list-meta {
    margin-bottom: 8px;
  }
  .news-list .news-list-tag {
    min-width: 116px;
    padding: 6px 14px;
    font-size: .875rem;
  }
  .sidebar-post-item .news-list-tag,
  .single .byline .news-list-tag {
    min-width: 0;
    padding: 4px 8px;
    font-size: .65rem;
  }
  .news-list .news-list-title {
    line-height: 1.7;
  }
}
@media (min-width: 992px) {
  .related-box .news-list-meta {
    margin-bottom: 0;
  }
}
.pagination .page-numbers {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin: 40px 0 0;
  padding: 0;
  list-style: none;
}
.pagination .page-numbers li {
  display: flex;
}
.pagination .page-numbers a,
.pagination .page-numbers span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 40px;
  border: 1px solid var(--gray);
  color: var(--primary);
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}
.pagination .page-numbers.current {
  background: var(--primary);
  border-color: var(--primary);
  color: var(--bs-white);
}
.pagination .page-numbers.dots {
  border: none;
  font-weight: 700;
}
.pagination .page-numbers.next,
.pagination .page-numbers.prev {
  border: none;
}
/* ========================================
   サイドバー用CSS
======================================== */
/* Sidebar */
.article-sidebar {
  display: flex;
  flex-direction: column;
}
/* Recent Posts Widget */
.sidebar-recent-posts {
  position: static;
}
.sidebar-recent-posts__title {
  font-size: 1.5rem;
  margin: 0 0 1.25rem 0;
}
.sidebar-recent-posts__list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.sidebar-post-item {
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--gray);
}
.sidebar-post-item__link {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: inherit;
}
.sidebar-post-item__date-wrapper {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.sidebar-post-item__icon {
  width: 12px;
  height: 12px;
  background: var(--primary);
  flex-shrink: 0;
}
.sidebar-post-item__date {
  font-size: .875rem;
}
.sidebar-post-item__title {
  overflow: hidden;
  font-size: .875rem;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.4;
}
.sidebar-post-item__excerpt {
  font-size: .875rem;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-height: 1.5;
}
@media (min-width: 768px) {
  .sidebar-recent-posts {
    position: sticky;
    top: 138px;
  }
  .sidebar-recent-posts__title {
    font-size: 1.5rem;
  }
}
/* --------------------------------------------------
トップ｜マグリットライフクラブ 会員募集
-------------------------------------------------- */
.front-club {
  background: var(--bs-white);
}

.front-club__heading {
  margin-bottom: 28px;
}

.front-club__eyebrow {
  margin-bottom: 2px;
  font-size: 15px;
  font-weight: 700;
  color: var(--neutral);
}

.front-club__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
}

.front-club__tags li {
  line-height: 1.8;
  padding: 3px 10px;
  border: 1px solid var(--primary);
  border-radius: 2px;
  font-size: 16px;
  font-weight: 500;
  color: var(--primary);
}

.front-club__lead {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--black);
}

.front-club__benefit {
  display: flex;
  align-items: stretch;
  height: 100%;
  border-radius: 8px;
  box-shadow: 0 0 16px rgba(0, 0, 0, 0.16);
  overflow: hidden;
  background: var(--bs-white);
}

.front-club__benefit-image {
  flex: 0 0 42%;
}

.front-club__benefit-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 118px;
  object-fit: cover;
}

.front-club__benefit-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 14px 16px;
  text-align: center;
}

.front-club__benefit-label {
  margin-bottom: 2px;
  font-size: 14px;
  font-weight: 700;
  color: var(--black);
}

.front-club__benefit-value {
  margin-bottom: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.front-club__benefit-note {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--primary);
}

.front-club__require {
  line-height: 1.45;
  margin: 0 auto;
  padding: 6px 18px;
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  background: var(--primary-vivid);
  color: var(--accent-yellow);
  font-size: 20px;
  font-weight: 500;
  text-align: center;
}

.front-club__cta {
  margin-top: 18px;
  border: 2px solid var(--primary);
  border-radius: 6px;
  overflow: hidden;
  background: rgba(248, 243, 87, 0.1);
}

.front-club__cta-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  padding: 18px;
}

.front-club__cta-lead {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1 1 260px;
  min-width: 0;
}

.front-club__cta-lead-body {
  flex: 1 1 auto;
  min-width: 0;
}

.front-club__cta-badge {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}

.front-club__cta-badge span {
  font-size: 21px;
}

.front-club__cta-sub {
  margin-bottom: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--black);
}

.front-club__cta-name {
  margin-top: 4px;
  margin-bottom: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.front-club__cta-name span {
  display: inline-block;
  padding-bottom: 2px;
  border-bottom: 2px dotted var(--primary);
}

.front-club__cta-price {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  gap: 8px;
}

.front-club__cta-price-label {
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1;
  color: var(--black);
  text-align: right;
}
.front-club__cta-price-label span.front-club__cta-price-label-text {
  font-size: 16px;
  font-weight: 700;
}
.front-club__cta-price-label span {
  font-size: 10px;
  font-weight: 500;
}

.front-club__cta-price-value {
  margin-bottom: 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  color: var(--primary);
}

.front-club__cta-price-corp {
  grid-column: 1 / -1;
  margin-bottom: 0;
  padding: 2px 8px;
  border: 1px solid var(--primary);
  border-radius: 2px;
  font-size: 11px;
  font-weight: 500;
  text-align: center;
  color: var(--primary);
}

.front-club__cta-price-corp span {
  color: var(--primary);
  font-weight: 700;
}

@media (max-width: 767px) {
  .front-club__require {
    font-size: 1rem;
  }
  .front-club__cta-main {
    flex-direction: column;
    align-items: stretch;
  }

  .front-club__cta-lead {
    flex: none;
    width: 100%;
  }

  .front-club__cta-main > .front-club__cta-name {
    width: fit-content;
    max-width: 100%;
    margin-top: 0;
    align-self: center;
    text-align: center;
  }

  .front-club__cta-desc {
    text-align: center;
  }

  .front-club__cta-price {
    flex: none;
    width: 100%;
    max-width: 100%;
    grid-template-columns: 1fr auto;
    justify-content: stretch;
    justify-items: end;
    gap: 18px 12px;
  }

  .front-club__cta-price-label,
  .front-club__cta-price-value {
    text-align: right;
  }

  .front-club__cta-price-value {
    font-size: 42px;
  }

  .front-club__cta-price-corp {
    grid-column: 1 / -1;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 13px;
  }

  .front-club__cta-sub {
    font-size: 18px;
  }
}

@media (min-width: 600px) and (max-width: 767px) {
  .front-club__cta-main {
    align-items: center;
  }

  .front-club__cta-main > .front-club__cta-name {
    width: auto;
    flex: 1 1 auto;
  }

  .front-club__cta-price {
    width: auto;
    max-width: none;
    flex: 0 0 auto;
  }
}

.front-club__cta-desc {
  margin-bottom: 0;
  padding: 14px 18px;
  background: var(--bs-white);
  color: var(--primary);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
}

.front-club__cta-foot .front-club__cta-desc {
  padding: 0;
  background: transparent;
  color: var(--bs-white);
}

.front-club__cta-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 18px;
  background: var(--primary);
}

@media (max-width: 767px) {
  .front-club__cta-foot {
    justify-content: center;
  }
}


.front-club__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 3px 12px 3px 22px;
  border-radius: 999px;
  background: var(--bs-white);
  color: var(--primary-vivid);
  font-size: 14px;
  font-weight: 700;
  line-height: normal;
  margin-inline: auto;
}

.front-club__cta-btn-icon {
  position: relative;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--primary-vivid);
}

.front-club__cta-btn-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 5px;
  height: 5px;
  border-top: 1px solid var(--bs-white);
  border-right: 1px solid var(--bs-white);
  transform: translate(-60%, -55%) rotate(45deg);
}

@media (min-width: 768px) {
  .front-club__tags li {
    font-size: 16px;
  }
  .front-club__eyebrow {
    font-size: 17px;
  }
  .front-club__benefit-value {
    font-size: 2rem;
  }
  .front-club__benefit-note {
    font-size: 14px;
  }

  .front-club__cta {
    max-width: 995px;
    margin-left: auto;
    margin-right: auto;
  }

  .front-club__cta-lead {
    gap: 16px;
  }

  .front-club__cta-name {
    margin-top: 6px;
    font-size: 30px;
  }
  .front-club__cta-price-label {
    font-size: 14px;
  }

  .front-club__cta-price-value {
    font-size: 36px;
  }

  .front-club__cta-foot .front-club__cta-desc {
    font-size: 16px;
  }
  .front-club__cta-badge {
    width: 80px;
    height: 80px;
    font-size: 14px;
  }
  .front-club__cta-sub {
    font-size: 14px;
  }
  .front-club__cta-btn {
    font-size: 20px;
    padding: 6px 19px 6px 35px;
  }
}
@media (min-width: 992px) {
  .front-club__cta-badge {
    width: 98px;
    height: 98px;
    font-size: 18px;
  }
  .front-club__cta-badge span {
    font-size: 24px;
  }
  .front-club__cta-sub {
    font-size: 23px;
  }
  .front-club__cta-name {
    font-size: 48px;
  }
  .front-club__benefit-label {
    font-size: 1.25rem;
  }
  
  .front-club__cta-price {
    gap: 18px 8px;
  }
  .front-club__cta-price-value {
    font-size: 48px;
  }
  .front-club__cta-price-corp {
    font-size: 14px;
  }
}
@media (min-width: 1200px) {
  .front-club__cta-foot .front-club__cta-desc {
    font-size: 18px;
  }
  .front-club__cta-sub {
    font-size: 24px;
  }
  .front-club__cta-name {
    font-size: 50px;
  }
  .front-club__cta-price-label span {
    line-height: 1.3;
  }
  .front-club__cta-price-value {
    font-size: 60px;
  }
  .front-club__cta-price-corp {
    font-size: 14px;
  }
  .front-club__benefit-label {
    font-size: 1.5rem;
  }
}
/* --------------------------------------------------
トップ｜最後のご相談案内の見出し
-------------------------------------------------- */
.front-bottom-cta__heading {
  margin-bottom: 24px;
}

.front-bottom-cta__label {
  display: inline-block;
  margin-bottom: 12px;
  padding: 5px 22px;
  border-radius: 999px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
}

.front-bottom-cta__title {
  margin-bottom: 6px;
  font-size: 24px;
  font-weight: 700;
  color: var(--black);
}

.front-bottom-cta__title span {
  color: var(--primary);
}

.front-bottom-cta .front-contact-band__main {
  font-size: 26px;
  line-height: 1.3;
}

.front-bottom-cta__sub {
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 500;
  color: var(--black);
}

@media (min-width: 768px) {
  .front-bottom-cta__title {
    font-size: 32px;
  }

  .front-bottom-cta__sub {
    font-size: 16px;
  }
}

/* =============================================================
お問い合わせフォーム（自社プラグイン valuepage-form）
================================================================ */

.vpform-wrapper .vpform-row {
  margin-bottom: 12px;
}

form:has(.vpform-row) {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.vpform-wrapper .vpform-row .vpform-label {
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}

.vpform-wrapper .vpform-row .vpform-required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  padding: 3px 10px;
  border-radius: 9999px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.vpform-wrapper .vpform-row .vpform-input:not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  max-width: none;
  padding: 9px 14px;
  border: 1px solid var(--gray);
  border-radius: 4px;
  background: var(--surface);
  font-size: 15px;
  line-height: 1.6;
}

.vpform-wrapper .vpform-row textarea.vpform-input {
  min-height: 160px;
}

.vpform-wrapper .vpform-row input[type="checkbox"],
.vpform-wrapper .vpform-row input[type="radio"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--primary);
  cursor: pointer;
}

.vpform-wrapper .vpform-group {
  margin: 0;
  padding: 0;
  border: 0;
}

.vpform-wrapper .vpform-row .vpform-choice {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  margin-right: 0;
  font-size: 16px;
  line-height: 1.2;
}

.vpform-wrapper .vpform-row .vpform-choice label {
  margin-bottom: 0;
  font-size: inherit;
  line-height: inherit;
}

.vpform-wrapper .vpform-actions {
  margin-top: 28px;
  text-align: center;
}

.vpform-wrapper .vpform-submit {
  min-width: 280px;
  padding: 14px 32px;
  border: 0;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
}

@media (min-width: 768px) {
  .vpform-wrapper .vpform-row {
    display: grid;
    grid-template-columns: 300px 1fr;
    align-items: start;
    gap: 4px 20px;
    margin-bottom: 14px;
  }

  .vpform-wrapper .vpform-row .vpform-label {
  letter-spacing: 0.05em;
  line-height: 1.4;
    margin-bottom: 0;
    padding-top: 10px;
  }

  .vpform-wrapper .vpform-row .vpform-error {
    grid-column: 2;
  }

  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-group {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 300px 1fr;
    align-items: start;
    column-gap: 20px;
    row-gap: 6px;
  }

  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-group > .vpform-label {
    grid-column: 1;
    grid-row: 1;
    padding-top: 0;
  }

  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice {
    grid-column: 2;
  }

  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(1) { grid-row: 1; }
  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(2) { grid-row: 2; }
  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(3) { grid-row: 3; }
  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(4) { grid-row: 4; }
  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(5) { grid-row: 5; }
  .vpform-wrapper .vpform-row[data-field="subject"] .vpform-choice:nth-of-type(6) { grid-row: 6; }
}

.vpform-wrapper .vpform-row[data-field="agree"] {
  display: grid;
  grid-template-columns: 18px 1fr;
  align-items: center;
  gap: 6px 10px;
}

.vpform-wrapper .vpform-row[data-field="agree"]::before,
.vpform-wrapper .vpform-row[data-field="agree"]::after {
  grid-column: 1 / -1;
  grid-row: 1;
}

.vpform-wrapper .vpform-row[data-field="agree"]::before {
  content: "プライバシーポリシー同意";
  justify-self: start;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: var(--black);
}

.vpform-wrapper .vpform-row[data-field="agree"]::after {
  content: "必須";
  justify-self: end;
  min-width: 48px;
  padding: 3px 10px;
  border-radius: 9999px;
  background: var(--primary);
  color: var(--bs-white);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.vpform-wrapper .vpform-row[data-field="agree"] .vpform-choice {
  grid-column: 1;
  grid-row: 2;
  padding-top: 0;
  margin-bottom: 0;
}

.vpform-wrapper .vpform-row[data-field="agree"] .vpform-label {
  grid-column: 2;
  grid-row: 2;
  display: block;
  min-width: 0;
  padding-top: 0;
  margin-bottom: 0;
  font-size: 16px;
  font-weight: 500;
}

.vpform-wrapper .vpform-row[data-field="agree"] .vpform-required {
  display: none;
}

.vpform-wrapper .vpform-row[data-field="agree"] .vpform-error {
  grid-column: 1 / -1;
  grid-row: 3;
}

@media (min-width: 768px) {
  .vpform-wrapper .vpform-row[data-field="agree"] {
    grid-template-columns: 320px 18px 1fr;
    column-gap: 0;
  }

  .vpform-wrapper .vpform-row[data-field="agree"]::before,
  .vpform-wrapper .vpform-row[data-field="agree"]::after {
    grid-column: 1;
    grid-row: 1;
  }

  .vpform-wrapper .vpform-row[data-field="agree"]::after {
    margin-right: 20px;
  }

  .vpform-wrapper .vpform-row[data-field="agree"] .vpform-choice {
    grid-column: 2;
    grid-row: 1;
  }

  .vpform-wrapper .vpform-row[data-field="agree"] .vpform-label {
    grid-column: 3;
    grid-row: 1;
    padding-left: 10px;
  }

  .vpform-wrapper .vpform-row[data-field="agree"] .vpform-error {
    grid-column: 2 / -1;
    grid-row: 2;
  }
}

.contact-intro {
  margin: 0 0 48px;
  font-size: 16px;
  line-height: 1.9;
  color: var(--black);
}

.contact-tel {
  margin-bottom: 48px;
  text-align: center;
}

.contact-tel__title {
  letter-spacing: 0.04em;
  margin: 0 0 10px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}

.contact-tel__lead {
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--black);
}

.contact-tel__number {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--primary-vivid);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.1;
}

.contact-tel__number img {
  width: 46px;
}

.contact-tel__note {
  display: block;
  width: fit-content;
  margin: 10px auto 0;
  padding: 4px 16px;
  border-radius: 9999px;
  background: var(--primary-vivid);
  color: var(--bs-white);
  font-size: 13px;
  font-weight: 700;
}

@media (min-width: 768px) {
  .contact-intro {
    text-align: center;
  }

  .contact-tel__title {
  letter-spacing: 0.04em;
    font-size: 36px;
  }

  .contact-tel__number {
    font-size: 52px;
  }
}

.tel-area-number {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.1;
}

.tel-area-icon {
  width: 22px;
  flex: 0 0 auto;
}

@media (min-width: 768px) {
  .tel-area-number {
    font-size: 24px;
  }

  .tel-area-icon {
    width: 24px;
  }
}

/* =============================================================
はじめての方へ｜費用を抑えてお葬式がしたい
================================================================ */
.lowcost-list {
  display: grid;
  gap: 32px;
  margin-top: 40px;
}

.lowcost-way {
  position: relative;
  border-radius: 8px;
  background: var(--bs-white);
  box-shadow: 0 0 16px rgba(0,0,0,.16);
}

.lowcost-way__head {
  padding: 28px 24px 0;
}

.lowcost-way__head-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  width: 100%;
  padding-bottom: 18px;
  padding-left: 24px;
  border-bottom: 1px dashed var(--gray);
}

.lowcost-way__head h3 {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.lowcost-list > .lowcost-way:first-child .lowcost-way__head h3 {
  color: #009d94;
}

.lowcost-way__sub {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--black);
}

.lowcost-way__body {
  display: grid;
  gap: 20px;
  padding: 22px 24px 26px;
}

.lowcost-way__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.lowcost-way__detail h4 {
  margin: 0 0 8px;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--primary);
}

.lowcost-list > .lowcost-way:first-child .lowcost-way__detail h4 {
  color: #009d94;
}

.lowcost-way__price-info .lowcost-way__tags {
  margin-top: 0;
}

.lowcost-way__price-box {
  flex: 0 0 auto;
  min-width: 0;
}

.lowcost-way__price-box .front-plan-card__price-row {
  margin-bottom: 8px;
}
.lowcost-way__price-box .front-plan-card__price-note {
  text-align: right;
}
.lowcost-way__off {
  display: block;
  width: 100%;
  margin: 0 0 14px;
  padding: 6px 12px;
  border-radius: 30px;
  background: var(--key);
  color: var(--bs-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.lowcost-way__off-amount {
  color: var(--accent-yellow-strong);
}

.lowcost-way__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 14px 0;
  padding: 0;
  list-style: none;
}

.lowcost-way__tags li {
  padding: 4px 12px;
  border-radius: 3px;
  font-size: 13px;
  font-weight: 700;
  color: var(--bs-white);
  line-height: 1;
}

.lowcost-way__tags .is-active { background: var(--chokuso); }
.lowcost-way__tags .is-muted  { background: rgba(189, 187, 183, 0.4); color: var(--bs-white); }

.lowcost-way__include-title {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--neutral);
}

.lowcost-way__include {
  margin: 0 0 16px;
  font-size: 12px;
  line-height: 1.8;
  color: var(--neutral);
}

.lowcost-way__benefits {
  margin: 0;
  padding: 0;
  list-style: none;
}

.lowcost-way__benefits li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 6px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

.lowcost-way__benefits li::before {
  content: "";
  position: absolute;
  left: 0;
  top: calc(0.8em - 8px);
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: var(--primary);
}

.lowcost-way__benefits li::after {
  content: "";
  position: absolute;
  left: 5px;
  top: calc(0.8em - 5px);
  width: 5px;
  height: 8px;
  border: solid var(--bs-white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.lowcost-way__member-label {
  display: block;
  width: 100%;
  margin: 0 0 8px;
  padding: 3px 10px;
  border: 1px solid var(--primary);
  border-radius: 3px;
  font-size: 12px;
  color: var(--primary);
  text-align: center;
  box-sizing: border-box;
}

.lowcost-way__member-row {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 14px;
}
.lowcost-way__price-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.lowcost-way__benefits-box .lowcost-way__include-title {
  margin-bottom: 12px;
}

.lowcost-way__member-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lowcost-way__member-box .lowcost-way__price-row {
  margin-bottom: 8px;
}

.lowcost-way__member-box .front-plan-card__price-note {
  display: flex;
  align-items: center;
  margin-bottom: 4px;
  background-color: var(--secondary);
  padding: 4px 8px;
  gap: 4px;
  line-height: 1.2;
}
.lowcost-way__member-note {
  margin: 14px 0 0;
  font-size: 14px;
  line-height: 1.6;
}

.lowcost-way__text {
  margin: 0 0 16px;
  font-size: 14px;
  line-height: 1.6;
}

.lowcost-way__btn-wrap .primary-btn01 {
  width: 100%;
  max-width: 100%;
}

.lowcost-way__btn-wrap .primary-btn01.primary-btn01--compact {
  min-width: 0;
}

@media (min-width: 768px) {
  .lowcost-list .front-flow__badge {
    left: 13px;
  }
  .lowcost-way__head-inner {
    padding-left: 64px;
  }

  .lowcost-way__body {
    grid-template-columns: 367px 1fr;
    gap: 24px;
  }

  .lowcost-way__image {
    width: 367px;
    max-width: 367px;
  }

  .lowcost-way__tags li {
    font-size: 14px;
    min-width: 80px;
    text-align: center;
  }

  .lowcost-way__price-info {
    flex: 1 1 auto;
    min-width: 0;
  }

  .lowcost-way__price-info .lowcost-way__tags {
    margin-bottom: 0;
  }

  .lowcost-way__price-box {
    flex: 0 0 335px;
    width: 335px;
    max-width: 335px;
  }

  .lowcost-way__off {
    font-size: 1rem;
  }

  .lowcost-way__action {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
  }

  .lowcost-way__text {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
  }

  .lowcost-way__btn-wrap {
    flex: 1;
    width: 220px;
    max-width: 220px;
  }

  .lowcost-way__benefits-box {
    flex: 1 1 auto;
    min-width: 0;
  }
  .lowcost-way__benefits li {
    font-size: 20px;
  }

  .lowcost-way__member-box .front-plan-card__price-note {
    flex-direction: row;
    justify-content: center;
    gap: 13px;
    padding: 7px 16px;
  }
  .lowcost-way__member-box .lowcost-way__price-row .front-plan-card__price-note {
    font-size: 14px;
  }

  .lowcost-way__include {
    margin: 0 0 24px;
  }
}
@media (min-width: 992px) {
  .lowcost-way__price-box {
    width: 100%;
    max-width: inherit;
  }
}
@media (min-width: 1200px) {
  .lowcost-way__price {
    display: flex;
    justify-content: space-between;
    gap: 16px;
  }
  .lowcost-way__off {
    line-height: 1;
    margin: 0;
  }
  .lowcost-way__head-inner {
    padding-left: 112px;
  }
  .lowcost-way__action {
    flex-direction: row;
  }
  .lowcost-way__tags li {
    font-size: 16px;
    min-width: 86px;
  }
  .lowcost-way__member-row {
    flex-direction: row;
    align-items: stretch;
    gap: 16px;
  }
  .lowcost-way__member-box {
    flex: 0 0 335px;
    width: 335px;
    max-width: 335px;
  }
  .lowcost-way__member-label {
    font-size: 14px;
  }
  .lowcost-way__btn-wrap {
    flex: 0 0 220px;
  }
}

.hall-tour__points-title,
.hall-tour-point__time-heading {
  margin: 32px 0 20px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  color: var(--black);
}
@media (min-width: 768px) {
  .hall-tour__points-title,
  .hall-tour-point__time-heading {
    font-size: 32px;
  }
}
@media (min-width: 1200px) {
  .hall-tour__points-title,
  .hall-tour-point__time-heading {
    font-size: 36px;
  }
}
.emergency-support__lead {
  font-size: 15px;
  line-height: 1.6;
}

.emergency-callinfo__item {
  border-bottom-style: dotted;
}

.emergency-support__card h3 {
  line-height: 1.4;
  font-size: 20px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

@media (min-width: 768px) {
  .emergency-support__card h3 {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 68px;
  }
}

.emergency-support__card p {
  line-height: 1.8;
}

/* =============================================================
緊急の方へ｜ページ上部
================================================================ */
.emergency-hero__card {
  border: 3px solid var(--primary-pale, #f5aeb5);
  padding: 0;
}

.emergency-hero__content {
  padding: 26px 24px 0;
  text-align: center;
}

.emergency-hero__title {
  letter-spacing: 0.04em;
  line-height: 1.4;
  display: inline-block;
  border-bottom-style: dotted;
}

.emergency-hero__lead {
  line-height: 1.4;
  font-size: 24px;
  color: var(--primary);
  font-weight: 700;
}

.emergency-hero__tel {
  justify-content: center;
  margin: 20px 0 0;
  padding: 12px 20px;
  background: var(--primary);
  color: var(--bs-white);
}

.emergency-hero__tel strong {
  color: var(--bs-white);
  font-size: 24px;
}

.emergency-hero__tel-link {
  color: inherit;
  text-decoration: none;
}

.emergency-hero__tel-label {
  background: var(--bs-white);
  color: var(--primary);
}

.emergency-hero__tel-badge {
  border-color: var(--bs-white);
  background: transparent;
  color: var(--bs-white);
}

.emergency-hero__note {
  line-height: 1.36;
  font-size: 16px;
  margin-bottom: 0;
  padding-bottom: 18px;
}
.emergency-hero__message {
  margin-top: 24px;
  font-size: 1rem;
  line-height: 1.4;
  text-align: left;
}
@media (min-width: 768px) {
  .emergency-hero .guide-container > .emergency-hero__card {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
  }

  .emergency-hero__card {
    grid-template-columns: 1fr 220px;
    align-items: end;
    gap: 0;
  }

  .emergency-hero__image img {
    aspect-ratio: 220/300;
  }

  .emergency-hero__tel strong {
    font-size: 36px;
  }
  .emergency-hero__message {
    font-size: 1.25rem;
    text-align: center;
  }
}
@media (min-width: 992px) {
  .emergency-support__card img {
    aspect-ratio: 560 / 266;
  }
}
@media (min-width: 1200px) {
  .emergency-support__card h3 {
    font-size: 24px;
    min-height: 32px;
  }
  .emergency-hero__message {
    font-size: 24px;
  }
}