@charset "UTF-8";
/* ==================================================
 style.scss
 蜷гcss繝輔ぃ繧､繝ｫ繧貞ｮ夂ｾｩ
================================================== */
/* ==================================================
 base繝輔か繝ｫ繝
================================================== */
/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
 _variables.scss
 変数 定義
================================================== */
/* ==================================================
 カラー変数定義
================================================== */
/* ==== サイト基本カラー定義 ==== */
/* ==== 白黒カラー定義 ==== */
/* ==================================================
 background-imageディレクトリ 変数定義
================================================== */
/* ==================================================
 _font.scss
 フォント・文字サイズ 定義
================================================== */
/* ==================================================
 _function.scss
 関数 定義
================================================== */
/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
 _mq.scss
 メディアクエリ 定義
================================================== */
/* ==================================================
 メディアクエリ 基本サイズ
================================================== */
/* ==================================================
 メディアクエリ mixin定義
 ※以下は定義方法
.class {
 width: 50%;
 @include tab {
		width: 100%
 }
}
================================================== */
/* ==================================================
 デバイス非表示・表示
================================================== */
.is-pc {
  display: none;
}

.is-tab {
  display: none;
}

.is-sp {
  display: none;
}

/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
 フォントのvw単位計算
 ※定義方法
 p {
	font-size: responsiveFontSizeClamp(最小フォントサイズ,最大フォントサイズ,最小ウィンドウサイズ,最大ウィンドウサイズ);
 }
================================================== */
/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
明朝フォント
================================================== */
.font-mincho {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
}

/* ==================================================
 英字フォント
================================================== */
.font-poppins {
  font-family: "Poppins", sans-serif;
  font-weight: 600;
}

.fs-12 {
  font-size: clamp(0.625rem, 0.572rem + 0.22vw, 0.75rem);
}

.fs-14 {
  font-size: clamp(0.688rem, 0.608rem + 0.33vw, 0.875rem);
}

.fs-16 {
  font-size: clamp(0.813rem, 0.733rem + 0.33vw, 1rem);
}

.fs-18 {
  font-size: clamp(1rem, 0.947rem + 0.22vw, 1.125rem);
}

.fs-20 {
  font-size: clamp(1.125rem, 1.072rem + 0.22vw, 1.25rem);
}

.fs-24 {
  font-size: clamp(1.25rem, 1.144rem + 0.44vw, 1.5rem);
}

.fs-26 {
  font-size: clamp(1.5rem, 1.447rem + 0.22vw, 1.625rem);
}

.fs-28 {
  font-size: clamp(1.625rem, 1.572rem + 0.22vw, 1.75rem);
}

.fs-32 {
  font-size: clamp(1.75rem, 1.644rem + 0.44vw, 2rem);
}

.fs-36 {
  font-size: clamp(2rem, 1.894rem + 0.44vw, 2.25rem);
}

.fs-40 {
  font-size: clamp(2.25rem, 2.144rem + 0.44vw, 2.5rem);
}

.fs-48 {
  font-size: clamp(2.5rem, 2.289rem + 0.89vw, 3rem);
}

.fs-52 {
  font-size: clamp(3rem, 2.894rem + 0.44vw, 3.25rem);
}

.fs-64 {
  font-size: clamp(2.375rem, 1.689rem + 2.89vw, 4rem);
}

.fs-80 {
  font-size: clamp(2.625rem, 1.622rem + 4.22vw, 5rem);
}

.fs-96 {
  font-size: clamp(3.375rem, 2.267rem + 4.67vw, 6rem);
}

.fs-140 {
  font-size: clamp(4rem, 1.994rem + 8.44vw, 8.75rem);
}

/* ==================================================
 フォントウェイト
================================================== */
.font-w300 {
  font-weight: 300;
}

.font-w400 {
  font-weight: 400;
}

.font-w500 {
  font-weight: 500;
}

.font-w600 {
  font-weight: 600;
}

.font-w700 {
  font-weight: 700;
}

.font-w800 {
  font-weight: 800;
}

.font-w900 {
  font-weight: 900;
}

/* ==================================================
 フォントスタイル
================================================== */
.font-italic {
  font-style: italic;
}

.line-h1 {
  line-height: 1;
}

.line-h11 {
  line-height: 1.1;
}

.line-h12 {
  line-height: 1.2;
}

.line-h15 {
  line-height: 1.5;
}

.line-h18 {
  line-height: 1.8;
}

.line-h20 {
  line-height: 2;
}

.letter-0 {
  letter-spacing: 0em;
}

.letter-s005 {
  letter-spacing: 0.05em;
}

.letter-s01 {
  letter-spacing: 0.1em;
}

.letter-s02 {
  letter-spacing: 0.2em;
}

.letter-s05 {
  letter-spacing: 0.5em;
}

/* ==================================================
 フォントカラー
================================================== */
.font-white {
  color: white;
}

.font-black {
  color: #443932;
}

.font-main {
  color: #ef7d39;
}

.font-accent {
  color: #57becc;
}

.font-yellow {
  color: #fff361;
}

.font-yellow-dark {
  color: #b99e0c;
}

.font-line {
  color: #62d049;
}

/* ==================================================
 テキストシャドウ
================================================== */
/* ベーシックな黒シャドウ（汎用） */
.text-shadow-base {
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* くっきり目のシャドウ（強調したいとき） */
.text-shadow-strong {
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
}

/* 柔らかく広がるシャドウ（上品） */
.text-shadow-soft {
  text-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
}

/* フチどり風（白文字に最適、強力） */
.text-shadow-outline {
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}

/* 明るいシャドウ（暗背景用に白い影） */
.text-shadow-light {
  text-shadow: 0 1px 3px rgba(255, 255, 255, 0.6);
}

/* ==================================================
 _function.scss
 関数 定義
================================================== */
/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
 _font.scss
 フォント・文字サイズ 定義
================================================== */
/* ==================================================
 _function.scss
 関数 定義
================================================== */
/* ==================================================
 _mixin.scss
 mixinスタイル 定義
================================================== */
/* ==================================================
 _base.scss
 全ページ共通のタグスタイル 定義
================================================== */
/* ==================================================
 _font.scss
 フォント・文字サイズ 定義
================================================== */
/* ==================================================
 _animation.scss
 アニメーションスタイル 定義
================================================== */
/* ==================================================
 animation基本設定
================================================== */
/* ==================================================
 ※以下は他scssファイルでの定義方法
 @mixinで定義した引数のプロパティを書き換えるだけで個別にアニメーションを指定することができる
 @include bounce(
    $name: sk-bouncedelay;
		$duration: 3s;
		$timing-function: ease-in-out,
  );
================================================== */
.c-float-badge {
  animation: u-float-badge 2.6s ease-in-out infinite;
}

@keyframes c-float-badge {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
  100% {
    transform: translateY(0);
  }
}
/* ==================================================
 画面最大幅（PC画面をレスポンシブ対応させないための横幅）
================================================== */
/* ==================================================
 コンテンツ最大幅
================================================== */
/* ==================================================
 内部コンテンツ幅
================================================== */
/* ==================================================
 タグ共通設定
================================================== */
html {
  overflow-y: scroll;
  font-size: 16px;
}

body {
  width: 100%;
  box-sizing: border-box;
  background-color: #f8f2ee;
  font-family: "Noto Sans", "Noto Sans JP", "游ゴシック", YuGothic, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
  font-weight: 500;
  line-height: 1.7;
  text-align: justify;
  margin: 0;
  padding: 0;
  color: #443932;
  overflow-x: hidden;
}

* {
  margin: 0;
  padding: 0;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
  overflow: hidden;
  border: 0;
  border-radius: 0.5rem;
}

li {
  list-style: none;
}

p {
  letter-spacing: 0.05em;
}

a {
  text-decoration: none;
}

/* ==================================================
 画面幅
================================================== */
.w-90 {
  width: 90%;
  max-width: 1190px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .w-90 {
    width: 95%;
  }
}

.w-95 {
  width: 95%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .w-95 {
    width: 95%;
  }
}

.w-80 {
  width: 80%;
  max-width: 1190px;
  margin: 0 auto;
}

.w-article {
  width: 90%;
  max-width: 880px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .w-article {
    width: 95%;
  }
}

/* ==================================================
 整列
================================================== */
.text-center {
  text-align: center;
}

.text-right {
  text-align: right;
}

.text-left {
  text-align: left;
}

.text-center-left {
  text-align: center;
}
@media screen and (max-width: 767px) {
  .text-center-left {
    text-align: justify;
  }
}

.align-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.vertical-middle {
  vertical-align: middle;
}

/* ==================================================
 余白
================================================== */
.mb-xs {
  margin-bottom: clamp(0.25rem, 2.5vw, 0.5rem);
}

.mb-sm {
  margin-bottom: clamp(1.25rem, 3.5vw, 1.875rem);
}

.mb-rg {
  margin-bottom: clamp(1.875rem, 5vw, 2.5rem);
}

.mb-md {
  margin-bottom: clamp(2.5rem, 6vw, 3.125rem);
}

.mb-lg {
  margin-bottom: clamp(3.125rem, 7vw, 3.75rem);
}

.mb-xl {
  margin-bottom: clamp(3.75rem, 8vw, 4.375rem);
}

.mb-xxl {
  margin-bottom: clamp(4.375rem, 9vw, 5rem);
}

.mg-auto {
  margin: 0 auto;
}

/* ==================================================
 ページレイアウト
================================================== */
@media screen and (min-width: 1025px) {
  .container {
    min-width: 1400px;
  }
}

@media screen and (max-width: 767px) {
  .pc-none {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .sp-none {
    display: none !important;
  }
}

.sp-on {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp-on {
    display: block !important;
  }
}

.sp-visible {
  display: none;
}
@media screen and (max-width: 767px) {
  .sp-visible {
    display: inline !important;
  }
}

/* ==================================================
 装飾
================================================== */
.highlight-yellow {
  background: linear-gradient(transparent 60%, #fff36b 60%);
}

.text-marker {
  background: linear-gradient(transparent 75%, rgba(255, 236, 128, 0.8) 75%);
}

.btn-hover {
  transition: opacity 0.4s;
}
.btn-hover:hover {
  opacity: 0.6;
}

/* ==================================================
 下線
================================================== */
/* ==================================================
 塗りつぶし
================================================== */
.bgcolor-main {
  background-color: #ef7d39;
}

.bgcolor-base {
  background-color: #f8f2ee;
}

.bgcolor-accent {
  background-color: #57becc;
}

.bgcolor-back {
  background-color: #f4e6dc;
}

.bgcolor-yellow {
  background-color: #fff361;
}

/* ==================================================
 ブロックレイアウト
================================================== */
/* ==================================================
 _reset.scss
 リセットcss
================================================== */
/*! destyle.css v4.0.0 | MIT License | https://github.com/nicolas-cusan/destyle.min.css */
*, ::before, ::after {
  box-sizing: border-box;
  border-style: solid;
  border-width: 0;
}

html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
}

main {
  display: block;
}

p, table, blockquote, address, pre, iframe, form, figure, dl {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
}

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

dt {
  font-weight: 700;
}

dd {
  margin-left: 0;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
  border-top-width: 1px;
  margin: 0;
  clear: both;
  color: inherit;
}

pre {
  font-family: monospace, monospace;
  font-size: inherit;
}

address {
  font-style: inherit;
}

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

abbr[title] {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

b, strong {
  font-weight: bolder;
}

code, kbd, samp {
  font-family: monospace, monospace;
  font-size: inherit;
}

small {
  font-size: 80%;
}

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

svg, img, embed, object, iframe {
  vertical-align: bottom;
}

button, input, optgroup, select, textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
  vertical-align: middle;
  color: inherit;
  font: inherit;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
  text-align: inherit;
  text-transform: inherit;
}

button, [type=button], [type=reset], [type=submit] {
  cursor: pointer;
}

button:disabled, [type=button]:disabled, [type=reset]:disabled, [type=submit]:disabled {
  cursor: default;
}

:-moz-focusring {
  outline: auto;
}

select:disabled {
  opacity: inherit;
}

option {
  padding: 0;
}

fieldset {
  margin: 0;
  padding: 0;
  min-width: 0;
}

legend {
  padding: 0;
}

progress {
  vertical-align: baseline;
}

textarea {
  overflow: auto;
}

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto;
}

[type=search] {
  outline-offset: -2px;
}

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

[type=number] {
  -moz-appearance: textfield;
}

label[for] {
  cursor: pointer;
}

details {
  display: block;
}

summary {
  display: list-item;
}

[contenteditable]:focus {
  outline: auto;
}

table {
  border-color: inherit;
  border-collapse: collapse;
}

caption {
  text-align: left;
}

td, th {
  vertical-align: top;
  padding: 0;
}

th {
  text-align: left;
  font-weight: 700;
}

/* ==================================================
 mixin繝輔か繝ｫ繝
================================================== */
/* ==================================================
 config繝輔か繝ｫ繝
================================================== */
/*
@use "config/setting";
*/
/* ==================================================
 module繝輔か繝ｫ繝
================================================== */
/* ==================================================
 _lead.scss
 MV下 leadセクション
================================================== */
.lead {
  position: relative;
  overflow: hidden;
  padding-top: 2rem;
  padding-bottom: 7rem;
  background: white;
}
.lead__inner {
  position: relative;
}
.lead__leadImage {
  position: absolute;
  top: -2rem;
  right: 0;
  width: 20%;
  pointer-events: none;
}
.lead__leadImage img {
  display: block;
  width: 100%;
  height: auto;
}
.lead__points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  margin-top: 34px;
}
.lead__point {
  display: grid;
  grid-template-columns: 78px 1fr;
  align-items: center;
  gap: 1rem;
  min-height: 106px;
  padding: 22px;
  background: #f7e9df;
  border-radius: 0.5rem;
  text-align: left;
}
.lead__point img {
  display: block;
  width: 70px;
  height: 70px;
  -o-object-fit: contain;
     object-fit: contain;
}
.lead__point--active {
  background: #f7e9df;
  border: 0;
}
.lead__gallery {
  width: 100%;
  margin: 5rem 0 0;
  overflow: hidden;
}
.lead__gallery .swiper-wrapper {
  align-items: flex-end;
  transition-timing-function: linear;
}
.lead__gallery-slide img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (max-width: 1024px) {
  .lead__leadImage {
    position: relative;
    top: auto;
    right: auto;
    width: 132px;
    margin: 0 auto 12px;
  }
  .lead__points {
    grid-template-columns: 1fr;
    margin-top: 30px;
  }
  .lead__point {
    min-height: auto;
  }
  .lead__gallery {
    width: 100%;
    margin-top: 42px;
    transform: none;
  }
}
@media screen and (max-width: 767px) {
  .lead {
    padding-top: 0;
  }
  .lead__leadImage {
    display: none;
  }
  .lead__text {
    text-align: left;
  }
  .lead__points {
    gap: 1rem;
  }
}
/* ==================================================
 _about.scss
 ひかり家について
================================================== */
.about {
  background: white;
}
.about__content {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 6rem);
}
.about__header {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: 2.4rem;
}
.about__heading {
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1;
  letter-spacing: 0;
}
.about__subhead {
  font-size: 0.95rem;
  letter-spacing: 0;
}
.about__wrap {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
}
.about__body {
  display: flex;
  flex-direction: column;
  row-gap: 1.2rem;
}
.about__visual {
  display: grid;
  gap: 2rem;
}
.about__price, .about__photo {
  display: block;
  width: 100%;
  height: auto;
}
.about__photo {
  aspect-ratio: 620/340;
  -o-object-fit: cover;
     object-fit: cover;
}

@media screen and (max-width: 1024px) {
  .about {
    padding: 5rem 0;
  }
  .about__content {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .about__visual {
    order: -1;
  }
}
@media screen and (max-width: 767px) {
  .about {
    padding: 4rem 0;
  }
  .about__header {
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
  }
  .about__body {
    font-size: 0.9rem;
    line-height: 1.9;
  }
  .about__button {
    width: min(100%, 16rem);
  }
}
/* ==================================================
 _news.scss
 お知らせ一覧セクション
================================================== */
.news {
  background-color: #f8f2ee;
  color: #443932;
  padding-top: clamp(4rem, 8vw, 6rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
}
.news__container {
  display: grid;
  grid-template-columns: minmax(12rem, 0.38fr) minmax(0, 1fr);
  align-items: start;
  gap: clamp(2rem, 6vw, 5rem);
}
@media screen and (max-width: 1024px) {
  .news__container {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}
.news__header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  row-gap: 0.65rem;
}
.news__title, .news__lead {
  letter-spacing: 0;
}
.news__button-wrap {
  width: min(100%, 13rem);
  margin-top: 1rem;
}
.news__button {
  max-width: 13rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}
.news__body {
  width: 100%;
}
.news__list {
  border-top: 1px solid rgba(68, 57, 50, 0.24);
}
.news__item {
  border-bottom: 1px solid rgba(68, 57, 50, 0.24);
}
.news__link {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  align-items: center;
  -moz-column-gap: clamp(1.5rem, 4vw, 3rem);
       column-gap: clamp(1.5rem, 4vw, 3rem);
  min-height: 4rem;
  color: #443932;
  transition: color 0.3s ease;
}
.news__link:hover {
  color: #ef7d39;
}
@media screen and (max-width: 767px) {
  .news__link {
    grid-template-columns: 1fr;
    row-gap: 0.35rem;
    align-items: start;
    padding: 1rem 0;
  }
}
.news__date {
  font-size: 0.92rem;
  letter-spacing: 0;
}
.news__item-title {
  letter-spacing: 0;
}
.news__empty {
  padding: 1.5rem 0;
  border-top: 1px solid rgba(68, 57, 50, 0.24);
  border-bottom: 1px solid rgba(68, 57, 50, 0.24);
  letter-spacing: 0;
}

/* ==================================================
 _event.scss
 イベント情報セクション
================================================== */
.event {
  background-color: #f8f2ee;
  overflow: hidden;
}
.event__container {
  overflow: visible;
}
.event__header {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: end;
  gap: clamp(1.5rem, 5vw, 4rem);
}
@media screen and (max-width: 1024px) {
  .event__header {
    grid-template-columns: 1fr;
  }
}
.event__heading {
  display: flex;
  flex-direction: column;
  row-gap: 0.35rem;
}
.event__title, .event__lead, .event__copy {
  letter-spacing: 0;
}
.event__copy {
  max-width: 34rem;
}
.event__slider-area {
  position: relative;
  width: calc(100vw - (100vw - 100%) / 2);
  overflow: visible;
}
.event__slider {
  width: 100%;
  overflow: hidden;
  padding-right: max(1rem, (100vw - 1190px) / 2);
}
.event__badge {
  position: absolute;
  left: -0.6rem;
  top: 0.4rem;
  z-index: 3;
  width: 2.9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: #ef7d39;
  color: white;
  font-size: 0.95rem;
  letter-spacing: 0;
}
.event__item {
  height: auto;
  min-width: 0;
  background-color: white;
  display: flex;
  flex-direction: column;
}
.event__thumb {
  position: relative;
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  background-color: white;
}
.event__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.event__thumb:hover img {
  transform: scale(1.04);
}
.event__end {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background-color: rgba(68, 57, 50, 0.45);
  color: #ef7d39;
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0;
}
.event__body {
  display: flex;
  flex-direction: column;
  row-gap: 0.5rem;
  flex: 1;
  padding: 0.75rem 0.9rem 1.1rem;
}
.event__labels {
  display: flex;
  align-items: center;
  -moz-column-gap: 0.35rem;
       column-gap: 0.35rem;
}
.event__label, .event__status {
  display: inline-flex;
  min-height: 1.15rem;
  align-items: center;
  padding: 0 0.45rem;
  background-color: #443932;
  color: white;
  font-size: 0.7rem;
  line-height: 1;
  letter-spacing: 0;
}
.event__status {
  background-color: #a1a1a1;
}
.event__item-title, .event__meta {
  letter-spacing: 0;
}
.event__item-title a {
  color: inherit;
  text-decoration: none;
}
.event__button-wrap {
  margin-top: 2rem;
}
.event__button {
  max-width: 13.5rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}
.event__empty {
  width: min(90%, 1190px);
  padding: 2rem;
  background-color: white;
}

@media screen and (max-width: 1024px) {
  .event__slider-area {
    width: 90vw;
    margin-right: auto;
  }
}
@media screen and (max-width: 767px) {
  .event__slider {
    padding-inline: 1rem;
  }
  .event__badge {
    left: 0.75rem;
  }
}
/* ==================================================
 _feature.scss
 ひかり家の特徴セクション
================================================== */
.feature {
  position: relative;
  z-index: 1;
  background-color: #f8f2ee;
  padding-top: clamp(4rem, 8vw, 6.25rem);
  padding-bottom: clamp(4.5rem, 9vw, 7.5rem);
  color: #443932;
}
.feature__container {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  row-gap: clamp(2rem, 5vw, 3.75rem);
}
.feature__header {
  row-gap: 0.75rem;
}
.feature__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 1.5rem);
}
@media screen and (max-width: 1024px) {
  .feature__list {
    grid-template-columns: 1fr;
    max-width: 30rem;
    width: 100%;
    margin: 0 auto;
  }
}
.feature__item {
  background-color: white;
  padding: clamp(1.5rem, 3vw, 2rem);
  border-radius: 0.35rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 1rem;
}
.feature__item-img {
  width: min(72%, 13rem);
}
.feature__item-img img {
  border-radius: 0;
}
.feature__point {
  color: #ef7d39;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  letter-spacing: 0;
}
.feature__item-title {
  letter-spacing: 0;
}
.feature__cost {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(22rem, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}
@media screen and (max-width: 1024px) {
  .feature__cost {
    grid-template-columns: 1fr;
    max-width: 42rem;
    width: 100%;
    margin: 0 auto;
    gap: 2rem;
  }
}
.feature__cost-body {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.feature__cost-title {
  letter-spacing: 0;
}
.feature__cost-text {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.feature__cost-text p {
  letter-spacing: 0;
}
.feature__cost-img img {
  border-radius: 0;
}
.feature__button-wrap {
  margin-top: -0.5rem;
}
.feature__button {
  max-width: 16rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}

/* ==================================================
 _works.scss
 施工事例セクション
================================================== */
.works {
  position: relative;
  overflow: hidden;
  background-color: white;
  color: #443932;
}
.works__container {
  position: relative;
  z-index: 1;
  padding-top: clamp(2rem, 5vw, 3.5rem);
  row-gap: clamp(2rem, 4vw, 3rem);
}
.works__header {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  align-items: end;
  -moz-column-gap: clamp(2rem, 6vw, 6rem);
       column-gap: clamp(2rem, 6vw, 6rem);
}
@media screen and (max-width: 1024px) {
  .works__header {
    grid-template-columns: 1fr;
    row-gap: 1rem;
  }
}
.works__heading {
  display: flex;
  flex-direction: column;
  row-gap: 0.15rem;
}
.works__title-en {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: 0;
}
.works__title {
  letter-spacing: 0;
}
.works__lead {
  max-width: 38rem;
  letter-spacing: 0;
}
.works__list-wrap {
  position: relative;
}
.works__badge {
  position: absolute;
  left: -0.45rem;
  top: -0.95rem;
  z-index: 2;
  width: 3rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: #ef7d39;
  color: white;
  font-size: 0.95rem;
  letter-spacing: 0;
}
.works__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 3.25rem) clamp(1.25rem, 3vw, 2rem);
}
@media screen and (max-width: 1024px) {
  .works__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .works__list {
    grid-template-columns: 1fr;
  }
}
.works__item {
  min-width: 0;
}
.works__thumb {
  display: block;
  aspect-ratio: 1/1;
  overflow: hidden;
  background-color: #f8f2ee;
}
.works__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.works__thumb:hover img {
  transform: scale(1.04);
}
.works__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
  margin-top: 0.6rem;
}
.works__area {
  min-width: 0;
  letter-spacing: 0;
}
.works__tags {
  flex-shrink: 0;
  display: flex;
  -moz-column-gap: 0.25rem;
       column-gap: 0.25rem;
}
.works__tags span {
  display: inline-flex;
  align-items: center;
  min-height: 1.1rem;
  padding: 0 0.45rem;
  background-color: #443932;
  color: white;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0;
}
.works__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
  margin-top: 0.35rem;
}
.works__item-title {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  letter-spacing: 0;
}
.works__detail {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 4.75rem;
  min-height: 1.6rem;
  padding: 0.2rem 0.75rem;
  border-radius: 100px;
  background-color: #ef7d39;
  color: white;
  font-size: 0.75rem;
  line-height: 1;
  letter-spacing: 0;
  transition: background-color 0.3s ease;
}
.works__detail:hover {
  background-color: #57becc;
}
.works__button-wrap {
  margin-top: 0.5rem;
}
.works__button {
  max-width: 14rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}

/* ==================================================
 _interview.scss
 お客様の声セクション
================================================== */
.interview {
  position: relative;
  overflow: visible;
  background-color: #f8f2ee;
  color: #443932;
}
.interview__container {
  position: relative;
  overflow: visible;
  row-gap: clamp(1.75rem, 4vw, 2.5rem);
}
.interview__header {
  position: relative;
  overflow: visible;
  z-index: 2;
}
.interview__heading {
  align-self: end;
  display: flex;
  flex-direction: column;
  row-gap: 0.7rem;
}
.interview__title-row {
  display: flex;
  align-items: baseline;
  -moz-column-gap: 0.35rem;
       column-gap: 0.35rem;
}
@media screen and (max-width: 767px) {
  .interview__title-row {
    flex-wrap: wrap;
  }
}
.interview__title-en {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: 0;
}
.interview__title {
  display: inline-flex;
  align-items: center;
  min-height: 1.3rem;
  letter-spacing: 0;
}
.interview__mascot {
  position: absolute;
  top: -100px;
  right: 0px;
  z-index: 3;
  width: 200px;
}
@media screen and (max-width: 767px) {
  .interview__mascot {
    top: -100px;
    right: -6px;
    width: 120px;
  }
}
.interview__mascot img {
  width: 100%;
  height: 100%;
}
.interview__list-wrap {
  position: relative;
}
.interview__badge {
  position: absolute;
  left: -0.2rem;
  top: -0.9rem;
  z-index: 2;
  width: 2.9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: #ef7d39;
  color: white;
  font-size: 0.95rem;
  letter-spacing: 0;
}
.interview__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
}
@media screen and (max-width: 1024px) {
  .interview__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .interview__list {
    grid-template-columns: 1fr;
  }
}
.interview__item {
  min-width: 0;
  background-color: white;
  border-radius: 0.25rem;
  overflow: hidden;
}
.interview__thumb {
  display: block;
  aspect-ratio: 4/3;
  overflow: hidden;
  background-color: white;
}
.interview__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.interview__thumb:hover img {
  transform: scale(1.04);
}
.interview__body {
  display: flex;
  flex-direction: column;
  row-gap: 0.9rem;
  padding: 1rem 0.85rem 1.5rem;
}

/* ==================================================
 _plan.scss
 プラン選択セクション
================================================== */
.plan {
  background-color: #f4e6dc;
}
.plan__list {
  display: flex;
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .plan__list {
    display: flex;
    flex-direction: column;
    row-gap: 3rem;
  }
}
.plan__item {
  background-color: white;
  border-radius: 0.5rem;
}
.plan__item-price {
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.plan__item-price div {
  border: 1px solid #443932;
  padding: 0.25rem;
}
.plan__item-img {
  width: 100%;
}
.plan__item-img img {
  width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0 0 0.5rem 0.5rem;
}
.plan__item-text {
  display: flex;
  flex-direction: column;
  row-gap: 0.8rem;
  justify-content: center;
  padding: 2rem 1.5rem 1rem;
}
@media screen and (max-width: 767px) {
  .plan__item-text {
    width: 100%;
    row-gap: 0.25rem;
  }
}
.plan__custom-head {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.plan__custom-wrap {
  display: flex;
  -moz-column-gap: 2.5rem;
       column-gap: 2.5rem;
}
@media screen and (max-width: 767px) {
  .plan__custom-wrap {
    flex-direction: column;
    row-gap: 1rem;
  }
}
.plan__custom-item {
  width: 50%;
  height: 100%;
  position: relative;
}
@media screen and (max-width: 767px) {
  .plan__custom-item {
    width: 100%;
  }
}
.plan__custom-item img {
  width: 100%;
  height: 100%;
}
.plan__custom-label {
  position: absolute;
  top: 2rem;
  left: 2rem;
  background-color: white;
  padding: 0.25rem 0.5rem;
}

/* ==================================================
 _facility.scss
 問題セクション
================================================== */
.facility {
  background-color: white;
}
.facility__lead {
  width: 90%;
  max-width: 1190px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 40% 1fr;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
  align-items: start;
}
@media screen and (max-width: 1024px) {
  .facility__lead {
    width: 95%;
    grid-template-columns: 1fr;
    row-gap: 2rem;
  }
}
.facility__lead-txt {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  position: relative;
  z-index: 2;
}
.facility__lead-img {
  position: relative;
  width: calc(50vw + 50%);
  margin-right: calc(50% - 50vw);
}
@media screen and (max-width: 1024px) {
  .facility__lead-img {
    width: 100%;
    margin-right: 0;
  }
}
.facility__gallery {
  position: relative;
  width: 100%;
  overflow: hidden;
  width: calc(50vw + 50%);
  margin-right: calc(50% - 50vw);
}
.facility__gallery-slider {
  overflow: visible;
}
.facility__gallery-item {
  width: auto;
  border-radius: 2rem;
  overflow: hidden;
}
@media screen and (max-width: 767px) {
  .facility__gallery-item {
    border-radius: 1.25rem;
  }
}
.facility__gallery-item figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: inherit;
}
.facility__gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: inherit;
}
@media screen and (max-width: 1024px) {
  .facility__gallery-item img {
    height: 420px;
  }
}
@media screen and (max-width: 767px) {
  .facility__gallery-item img {
    height: 280px;
  }
}
.facility__gallery-item figcaption {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  color: white;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}
@media screen and (max-width: 767px) {
  .facility__gallery-item figcaption {
    font-size: 0.9rem;
    bottom: 0.75rem;
  }
}
.facility__gallery-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media screen and (max-width: 767px) {
  .facility__gallery-nav {
    gap: 0.75rem;
    margin-top: 1rem;
  }
}
.facility__gallery-prev, .facility__gallery-next {
  position: relative;
  width: 3.5rem;
  height: 3.5rem;
  border: 1px solid #57becc;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: all 0.3s ease;
}
@media screen and (max-width: 767px) {
  .facility__gallery-prev, .facility__gallery-next {
    width: 3rem;
    height: 3rem;
  }
}
.facility__gallery-prev:hover, .facility__gallery-next:hover {
  background-color: #57becc;
}
.facility__gallery-prev::before, .facility__gallery-next::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.7rem;
  height: 0.7rem;
  border-top: 2px solid #57becc;
  border-right: 2px solid #57becc;
  transform-origin: center;
  transition: border-color 0.3s ease;
}
.facility__gallery-prev:hover::before, .facility__gallery-next:hover::before {
  border-color: white;
}
.facility__gallery-prev::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.facility__gallery-next::before {
  transform: translate(-65%, -50%) rotate(45deg);
}
.facility__table {
  width: 100%;
}
.facility__table-label {
  width: 100%;
  background-color: #57becc;
  padding: 0.25em 1em;
}
.facility__table-value {
  width: 100%;
  padding: 0.25em 1em;
  background-color: #f8f2ee;
}
.facility__table-value li {
  padding: 0.25em 0;
  list-style-type: disc;
  list-style-position: inside;
}
.facility__into {
  position: relative;
  padding-top: 4rem;
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.facility__into-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid #ccc;
}
.facility__into-table tr {
  border-bottom: 1px solid #ccc;
}
@media screen and (max-width: 767px) {
  .facility__into-table tr {
    display: block;
    padding: 1rem 0;
  }
}
.facility__into-table th,
.facility__into-table td {
  padding: 2rem 1.5rem;
  vertical-align: middle;
}
@media screen and (max-width: 767px) {
  .facility__into-table th,
  .facility__into-table td {
    display: block;
    width: 100%;
    padding: 0;
  }
}
.facility__into-table th {
  width: 200px;
  font-weight: 600;
  text-align: left;
  white-space: nowrap;
}
.facility__into-table td {
  line-height: 1.8;
  color: #555;
}
.facility__into-img {
  width: 80%;
  margin: 0 auto;
  max-width: 800px;
}
@media screen and (max-width: 767px) {
  .facility__into-img {
    width: 100%;
  }
}
.facility__into-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 1.5rem;
}
.facility__into-list li {
  text-align: center;
}
.facility__into-list div {
  width: 100%;
  border-radius: 0.5rem;
  overflow: hidden;
  margin-bottom: 1rem;
}
.facility__into-list div img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.facility__into-top {
  position: absolute;
  top: 0;
  right: 0;
  width: 15%;
  max-width: 200px;
}
@media screen and (max-width: 767px) {
  .facility__into-top {
    width: 30%;
  }
}
.facility__into-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 15%;
  max-width: 200px;
}
@media screen and (max-width: 767px) {
  .facility__into-bottom {
    width: 30%;
    transform: translateY(80%);
  }
}

/* ==================================================
 _price.scss
 比較表セクション
================================================== */
.price {
  background-color: #f8f2ee;
  color: #443932;
  position: relative;
}
.price::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-95%);
  display: block;
  width: 100%;
  aspect-ratio: 12262/793;
  transition: transform 0.6s var(--ease-out-back);
  background-size: 100% 100%;
  z-index: 1;
  background-image: url(../../images/town_back.png?5);
}
.price__container {
  position: relative;
  display: flex;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
@media screen and (max-width: 1024px) {
  .price__container {
    flex-direction: column;
    row-gap: 1.5rem;
  }
}
.price__head {
  width: 40%;
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
@media screen and (max-width: 1024px) {
  .price__head {
    width: 100%;
  }
}
.price__head img {
  width: 30%;
  max-width: 250px;
  margin: 1rem auto 0;
}
.price .price-tabs {
  width: 60%;
}
@media screen and (max-width: 1024px) {
  .price .price-tabs {
    width: 100%;
  }
}
.price .price-tabs__inner {
  width: min(100% - 2rem, 980px);
  margin: 0 auto;
}
.price .price-tabs__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.price .price-tabs__nav {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.125rem;
  align-items: end;
}
.price .price-tabs__tab {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.25rem;
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  background-color: #57bfcd;
  color: #fff;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.price .price-tabs__contents {
  background-color: #fff;
  border-radius: 0 0 1rem 1rem;
  padding: 2rem 2rem 1.75rem;
}
.price .price-tabs__panel {
  display: none;
}
.price .price-tabs__heading {
  margin: 0 0 1.5rem;
  color: #666;
  text-align: center;
}
.price .price-tabs__note {
  margin-top: 1.5rem;
  color: #666;
}
.price {
  /* パネル切り替え */
}
.price #tab-monthly:checked ~ .price-tabs__contents .price-tabs__panel--monthly {
  display: block;
}
.price #tab-room:checked ~ .price-tabs__contents .price-tabs__panel--room {
  display: block;
}
.price #tab-trial:checked ~ .price-tabs__contents .price-tabs__panel--trial {
  display: block;
}
.price {
  /* アクティブタブ */
}
.price #tab-monthly:checked ~ .price-tabs__nav label[for=tab-monthly],
.price #tab-room:checked ~ .price-tabs__nav label[for=tab-room],
.price #tab-trial:checked ~ .price-tabs__nav label[for=tab-trial] {
  background-color: #fff;
  color: #666;
}
.price .price-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.price .price-table th,
.price .price-table td {
  padding: 0.5rem 1rem;
}
.price .price-table th {
  width: 36%;
  background-color: #57bfcd;
  color: #fff;
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.price .price-table td {
  background-color: #efefef;
  color: #6a6a6a;
  border-bottom: 1px solid #fff;
  text-align: right;
}
.price .price-table tr:nth-child(even) th {
  background-color: #68c8d4;
}
.price .price-table tr:nth-child(even) td {
  background-color: #f5f5f5;
}
.price .price-table tr:last-child th,
.price .price-table tr:last-child td {
  border-bottom: none;
}
@media (max-width: 767px) {
  .price .price-tabs {
    padding: 3rem 0;
  }
  .price .price-tabs__nav {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
  .price .price-tabs__tab {
    min-height: auto;
    padding: 0.9rem 1rem;
    border-radius: 0.75rem;
  }
  .price .price-tabs__contents {
    margin-top: 1rem;
    border-radius: 1rem;
    padding: 1.25rem 1rem;
  }
  .price .price-tabs__heading {
    margin-bottom: 1rem;
  }
  .price .price-tabs__note {
    margin-top: 1rem;
  }
  .price .price-table,
  .price .price-table tbody,
  .price .price-table tr,
  .price .price-table th,
  .price .price-table td {
    display: block;
    width: 100%;
  }
  .price .price-table tr {
    margin-bottom: 0.75rem;
  }
  .price .price-table th {
    padding: 0.9rem 1rem;
    border-bottom: none;
  }
  .price .price-table td {
    padding: 0.9rem 1rem;
    border-bottom: none;
  }
}

/* ==================================================
 _schedule.scss
 S-STEP サポート紹介セクション
================================================== */
.schedule {
  position: relative;
  z-index: 1;
  padding-top: 4rem;
  padding-bottom: 7rem;
  background-color: white;
}
@media screen and (max-width: 767px) {
  .schedule {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
}
.schedule::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-95%);
  display: block;
  width: 100%;
  aspect-ratio: 2360/80;
  transition: transform 0.6s var(--ease-out-back);
  background-size: 100% 100%;
  z-index: 1;
  background-image: url(../../images/wave-pc_white.png);
}
.schedule__container {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  row-gap: 2.5rem;
}
.schedule__inner {
  width: 80%;
  margin: 0 auto;
}
.schedule__list {
  position: relative;
}
.schedule__list::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background-color: #443932;
  transform: translateX(-50%);
}
.schedule__item {
  position: relative;
  width: 50%;
  box-sizing: border-box;
}
.schedule__item-right {
  margin-left: auto;
}
.schedule__item-left .schedule__meta {
  justify-content: flex-end;
}
.schedule__item-start {
  position: relative;
  background-color: #ef7d39;
  border-radius: 999px;
  margin: 0 auto;
  padding: 0.5em 0.5em;
  width: 30%;
  z-index: 999;
  margin-bottom: 2rem;
}
.schedule__item-end {
  position: relative;
  background-color: #57becc;
  border-radius: 999px;
  margin: 0 auto;
  padding: 0.5em 0.5em;
  width: 30%;
  z-index: 999;
  margin-top: 2rem;
}
.schedule__meta {
  display: flex;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  padding: 0.5rem 1rem;
}
.schedule__text {
  padding: 0.5rem 1rem;
}
.schedule__line {
  position: relative;
  display: block;
  width: 100%;
  border-top: 1px solid #443932;
}
.schedule__img-left {
  position: absolute;
  top: 0;
  left: -100%;
  width: 30%;
}
.schedule__img-right {
  position: absolute;
  top: 0;
  right: -100%;
  width: 30%;
}

/* 右側（中央に向かって線 → 左端に丸） */
.schedule__item-right .schedule__line::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: #ef7f36;
  border-radius: 50%;
}

/* 左側（中央に向かって線 → 右端に丸） */
.schedule__item-left .schedule__line::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
  width: 12px;
  height: 12px;
  background: #ef7f36;
  border-radius: 50%;
}

@media screen and (max-width: 767px) {
  .schedule {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
  .schedule::before {
    background-image: url(../../images/wave-sp_white.png);
    aspect-ratio: 750/80;
  }
  .schedule__inner {
    width: 100%;
  }
  .schedule__list::before {
    left: 1.25rem;
    transform: none;
  }
  .schedule__item {
    width: 100%;
    margin-left: 0 !important;
    padding-left: 3rem;
    box-sizing: border-box;
    position: relative;
    margin-bottom: 1rem;
  }
  .schedule__item-left, .schedule__item-right {
    width: 100%;
  }
  .schedule__item-left .schedule__meta {
    justify-content: flex-start;
  }
  .schedule__item-start, .schedule__item-end {
    width: -moz-fit-content;
    width: fit-content;
    min-width: 140px;
    margin: 0 0 2rem 0;
    padding: 0.5em 1.2em;
    text-align: center;
  }
  .schedule__item-end {
    margin-top: 2rem;
  }
  .schedule__meta {
    padding: 0.5rem 0;
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
    font-size: 0.95rem;
    flex-wrap: wrap;
  }
  .schedule__text {
    padding: 0.75rem 0 0 0;
    font-size: 0.95rem;
    line-height: 1.8;
  }
  .schedule__line {
    width: calc(100% + 1.75rem);
    margin-left: -1.75rem;
  }
  .schedule__img-left, .schedule__img-right {
    position: static;
    width: 50%;
    margin: 1rem auto 0;
    display: block;
  }
  /* 右側 → SPでは左寄せ縦ライン基準 */
  .schedule__item-right .schedule__line::after,
  .schedule__item-left .schedule__line::after {
    left: 0;
    right: auto;
    transform: translate(-50%, -50%);
    width: 10px;
    height: 10px;
  }
}
/* ==================================================
 _problem.scss
 問題セクション
================================================== */
.access {
  background-color: white;
}
.access__map {
  width: 100%;
  height: 400px;
}
@media screen and (max-width: 767px) {
  .access__map {
    height: 200px;
  }
}

/* ==================================================
 _loan.scss
 住宅ローン相談CTA
================================================== */
.loan {
  padding-bottom: 7rem;
}
.loan__inner {
  width: 60%;
  margin: 0 auto;
  padding: 2rem 4rem;
  background: #fff;
  border-radius: 0.5rem;
}
.loan__content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 45%;
  align-items: center;
  gap: 54px;
}
.loan__text {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.loan__body {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.loan__image img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.5rem;
}

@media screen and (max-width: 1024px) {
  .loan {
    padding: 46px 0;
  }
  .loan__inner {
    width: calc(100% - 32px);
    padding: 36px 24px;
    border-radius: 16px;
  }
  .loan__content {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
@media screen and (max-width: 767px) {
  .loan__inner {
    padding: 28px 18px;
  }
}
/* ==================================================
 _vision.scss
 未来を作るセクション
================================================== */
.vision {
  position: relative;
  background-color: #f8f2ee;
}
@media screen and (max-width: 767px) {
  .vision {
    padding-top: 2rem;
  }
}
.vision::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-100%);
  display: block;
  width: 100%;
  aspect-ratio: 1600/168;
  transition: transform 0.6s var(--ease-out-back);
  background-size: 100% 100%;
  z-index: 1;
  background-image: url(../../images/bg_round_top_back.svg);
}
.vision__content {
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
@media screen and (max-width: 767px) {
  .vision__content {
    row-gap: 2rem;
  }
}
.vision__title {
  margin: 0;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: center;
}
.vision__text {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
  text-align: center;
  line-height: 2;
  letter-spacing: 0.5;
}
@media screen and (max-width: 767px) {
  .vision__text {
    text-align: left;
  }
}
.vision__action {
  text-align: center;
}
.vision__image {
  width: 80%;
  margin: 0 auto;
}
@media screen and (max-width: 1024px) {
  .vision__image {
    width: 100%;
  }
}
.vision__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==================================================
 _column.scss
 家づくりコラムセクション
================================================== */
.column {
  background-color: #f8f2ee;
  color: #443932;
  padding-top: clamp(4rem, 8vw, 6rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
}
.column__container {
  row-gap: clamp(1.75rem, 4vw, 2.5rem);
}
.column__header {
  display: flex;
  align-items: baseline;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
@media screen and (max-width: 767px) {
  .column__header {
    flex-direction: column;
    row-gap: 0.35rem;
  }
}
.column__title, .column__lead {
  letter-spacing: 0;
}
.column__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
}
@media screen and (max-width: 1024px) {
  .column__list {
    grid-template-columns: 1fr;
    max-width: 30rem;
    width: 100%;
    margin: 0 auto;
  }
}
.column__item {
  min-width: 0;
}
.column__link {
  display: flex;
  flex-direction: column;
  row-gap: 0.45rem;
  color: #443932;
}
.column__thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
  background-color: white;
}
.column__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.column__link:hover .column__thumb img {
  transform: scale(1.04);
}
.column__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.column__category {
  min-width: 4.5rem;
  padding: 0.12rem 0.45rem;
  background-color: #443932;
  color: white;
  font-size: 0.7rem;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0;
}
.column__date {
  margin-left: auto;
  font-size: 0.72rem;
  line-height: 1;
  letter-spacing: 0;
}
.column__item-title {
  letter-spacing: 0;
}
.column__button-wrap {
  margin-top: 0.5rem;
}
.column__button {
  max-width: 15rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}
.column__empty {
  padding: 2rem;
  background-color: white;
}

/* ==================================================
 _staffblog.scss
 スタッフブログセクション
================================================== */
.staffblog {
  background-color: #f8f2ee;
  color: #443932;
  padding-top: clamp(4rem, 8vw, 6rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
}
.staffblog__container {
  row-gap: clamp(1.75rem, 4vw, 2.5rem);
}
.staffblog__header {
  display: flex;
  align-items: baseline;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
@media screen and (max-width: 767px) {
  .staffblog__header {
    flex-direction: column;
    row-gap: 0.35rem;
  }
}
.staffblog__title, .staffblog__lead {
  letter-spacing: 0;
}
.staffblog__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
}
@media screen and (max-width: 1024px) {
  .staffblog__list {
    grid-template-columns: 1fr;
    max-width: 30rem;
    width: 100%;
    margin: 0 auto;
  }
}
.staffblog__item {
  min-width: 0;
}
.staffblog__link {
  display: flex;
  flex-direction: column;
  row-gap: 0.45rem;
  color: #443932;
}
.staffblog__thumb {
  aspect-ratio: 16/9;
  overflow: hidden;
  background-color: white;
}
.staffblog__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.staffblog__link:hover .staffblog__thumb img {
  transform: scale(1.04);
}
.staffblog__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.staffblog__category {
  min-width: 4.5rem;
  padding: 0.12rem 0.45rem;
  background-color: #443932;
  color: white;
  font-size: 0.7rem;
  line-height: 1.2;
  text-align: center;
  letter-spacing: 0;
}
.staffblog__date {
  margin-left: auto;
  font-size: 0.72rem;
  line-height: 1;
  letter-spacing: 0;
}
.staffblog__item-title {
  letter-spacing: 0;
}
.staffblog__button-wrap {
  margin-top: 0.5rem;
}
.staffblog__button {
  max-width: 14rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}
.staffblog__empty {
  padding: 2rem;
  background-color: white;
}

/* ==================================================
 _c-service.scss
 カードのスタイル定義
================================================== */
.faq {
  position: relative;
  z-index: 1;
  padding-top: 4rem;
  padding-bottom: 7rem;
  background-color: #f8f2ee;
}
@media screen and (max-width: 767px) {
  .faq {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
}
.faq::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  transform: translateY(-95%);
  display: block;
  width: 100%;
  aspect-ratio: 2360/80;
  transition: transform 0.6s var(--ease-out-back);
  background-size: 100% 100%;
  z-index: 1;
  background-image: url(../../images/wave-pc_back.png);
}
.faq__list,
.faq .fqa__list {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.faq details {
  background-color: white;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
}
.faq summary {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 700;
  font-size: 1rem;
  list-style: none;
  cursor: pointer;
  position: relative;
  padding-right: 2rem;
}
.faq summary::-webkit-details-marker {
  display: none;
}
.faq summary::before {
  content: "Q";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #ef7d39;
  color: white;
  font-weight: 700;
  flex-shrink: 0;
}
.faq summary::after {
  content: "+";
  position: absolute;
  right: 0;
  top: 0;
  color: #ef7d39;
  font-weight: 700;
  font-size: 1.1rem;
}
.faq details[open] summary::after {
  content: "–";
}
.faq details > p {
  border-top: 1px solid #c8d7da;
  position: relative;
  padding-top: 1rem;
  padding-left: 2.5rem;
  margin: 0.65rem 0 0;
  line-height: 1.6;
  color: #443932;
}
.faq details > p::before {
  content: "A";
  position: absolute;
  left: 0;
  top: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #57becc;
  color: white;
  font-weight: 700;
  flex-shrink: 0;
}

/* ==================================================
 _problem.scss
 問題セクション
================================================== */
.greeting__contents {
  display: flex;
  row-gap: 2rem;
  -moz-column-gap: 5rem;
       column-gap: 5rem;
}
@media screen and (max-width: 1024px) {
  .greeting__contents {
    flex-direction: column-reverse;
  }
}
.greeting__contents-txt {
  width: 50%;
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
}
@media screen and (max-width: 1024px) {
  .greeting__contents-txt {
    width: 100%;
  }
}
.greeting__contents-img {
  width: 50%;
}
@media screen and (max-width: 1024px) {
  .greeting__contents-img {
    width: 100%;
  }
}
.greeting__textBox {
  display: flex;
  flex-direction: column;
  row-gap: 1em;
}

/* ==================================================
 _feature.scss
 S-STEP サポート紹介セクション
================================================== */
.instagram__contents {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}

/* ==================================================
 _flow.scss
 家づくりの流れ
================================================== */
.flow {
  background-color: #f4e6dc;
}
.flow__container {
  row-gap: clamp(2rem, 4vw, 3rem);
}
.flow__header {
  row-gap: 0.4rem;
}
.flow__eyebrow {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
  letter-spacing: 0;
}
.flow__title, .flow__lead {
  letter-spacing: 0;
}
.flow__list {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.75rem, 1.5vw, 1.25rem);
  padding-top: 1rem;
}
@media screen and (max-width: 1024px) {
  .flow__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .flow__list {
    grid-template-columns: 1fr;
  }
}
.flow__card {
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: 0.65rem;
  min-width: 0;
  min-height: 100%;
  padding: 1.8rem 1rem 1.2rem;
  border: 2px solid #ef7d39;
  border-radius: 0.25rem;
  background-color: white;
}
.flow__card:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: clamp(-1rem, -0.8vw, -0.45rem);
  z-index: 2;
  width: 0;
  height: 0;
  border-top: 0.55rem solid transparent;
  border-bottom: 0.55rem solid transparent;
  border-left: 0.75rem solid #ef7d39;
  transform: translate(50%, -50%);
  pointer-events: none;
}
@media screen and (max-width: 1024px) {
  .flow__card:not(:last-child)::after {
    display: none;
  }
}
.flow__step {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 3rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #ef7d39;
  color: white;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: 0;
}
.flow__step span {
  font-size: 0.48rem;
  line-height: 1;
}
.flow__image {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 6rem;
}
.flow__image img {
  width: auto;
  max-width: 100%;
  height: 5.8rem;
  -o-object-fit: contain;
     object-fit: contain;
  border-radius: 0;
}
.flow__card-title, .flow__text {
  letter-spacing: 0;
}
.flow__cta {
  display: grid;
  grid-template-columns: minmax(10rem, 0.85fr) minmax(0, 1.35fr) minmax(14rem, 0.9fr);
  align-items: center;
  gap: clamp(1rem, 3vw, 2rem);
  padding: 1.5rem 2rem;
  background-color: white;
}
@media screen and (max-width: 1024px) {
  .flow__cta {
    grid-template-columns: minmax(9rem, 0.6fr) minmax(0, 1fr);
  }
}
@media screen and (max-width: 767px) {
  .flow__cta {
    grid-template-columns: 1fr;
  }
}
.flow__cta-img img {
  border-radius: 0;
}
.flow__cta-body {
  display: flex;
  flex-direction: column;
  row-gap: 0.65rem;
}
.flow__cta-title {
  color: #ef7d39;
  letter-spacing: 0;
}
.flow__cta-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.flow__cta-list li {
  padding: 0.15rem 0.7rem;
  border: 1px solid #443932;
  border-radius: 100px;
  background-color: white;
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0;
}
.flow__cta-text {
  letter-spacing: 0;
}
.flow__cta-contact {
  display: flex;
  flex-direction: column;
  row-gap: 0.8rem;
}
@media screen and (max-width: 1024px) {
  .flow__cta-contact {
    grid-column: 1/-1;
    max-width: 18rem;
    width: 100%;
    margin: 0 auto;
  }
}
.flow__button {
  max-width: 15rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}
.flow__tel {
  position: relative;
  display: inline-flex;
  align-items: center;
  color: #443932;
  font-size: clamp(1.25rem, 2.4vw, 1.65rem);
  line-height: 1;
  letter-spacing: 0;
}
.flow__tel::before {
  content: "";
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  margin-right: 0.35rem;
  background-color: #443932;
  mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  -webkit-mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  flex: 0 0 auto;
}

/* ==================================================
 _modelhouse.scss
 モデルハウス誘導セクション
================================================== */
.modelhouse {
  position: relative;
  overflow: visible;
  background-color: white;
}
.modelhouse__container {
  position: relative;
  z-index: 1;
  row-gap: clamp(2rem, 4vw, 3rem);
}
.modelhouse__door {
  position: absolute;
  top: -5rem;
  right: -15rem;
  width: 30%;
  z-index: 2;
}
.modelhouse__door img {
  border-radius: 0;
}
@media screen and (max-width: 767px) {
  .modelhouse__door {
    opacity: 0.45;
    right: -0.75rem;
  }
}
.modelhouse__header {
  row-gap: 0.45rem;
}
.modelhouse__sub-title, .modelhouse__title {
  letter-spacing: 0;
}
.modelhouse__content {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 5vw, 4.5rem);
}
@media screen and (max-width: 1024px) {
  .modelhouse__content {
    grid-template-columns: 1fr;
    max-width: 43rem;
    width: 100%;
    margin: 0 auto;
  }
}
.modelhouse__visual {
  position: relative;
}
.modelhouse__photo {
  display: block;
  width: 100%;
  margin-left: auto;
  border-radius: 0.5rem;
  aspect-ratio: 4/2.35;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 1024px) {
  .modelhouse__photo {
    width: 82%;
  }
}
@media screen and (max-width: 767px) {
  .modelhouse__photo {
    width: 100%;
  }
}
.modelhouse__illust {
  position: absolute;
  left: -5rem;
  bottom: -10rem;
  width: 60%;
  border-radius: 0;
}
@media screen and (max-width: 767px) {
  .modelhouse__illust {
    width: 9rem;
    left: 0.5rem;
    bottom: -1rem;
  }
}
.modelhouse__body {
  display: flex;
  flex-direction: column;
  row-gap: 1.2rem;
}
.modelhouse__text {
  display: flex;
  flex-direction: column;
  row-gap: 0.8rem;
}

/* ==================================================
 _estate.scss
 物件情報セクション
================================================== */
.estate {
  position: relative;
  overflow: hidden;
}
.estate__container {
  position: relative;
}
.estate__tabs {
  position: relative;
}
.estate__tab-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.estate__tab-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 2px solid #443932;
}
.estate__tab-button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 4rem;
  padding: 1rem;
  background-color: white;
  color: #443932;
  cursor: pointer;
  letter-spacing: 0;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.estate__tab-button::before {
  content: "";
  width: 0.35rem;
  aspect-ratio: 1;
  margin-right: 0.5rem;
  border-radius: 50%;
  background-color: #ef7d39;
}
#estate-tab-bukken:checked ~ .estate__tab-buttons .estate__tab-button--bukken, #estate-tab-owner:checked ~ .estate__tab-buttons .estate__tab-button--owner {
  background-color: #443932;
  color: white;
}
.estate__panel {
  position: relative;
  display: none;
  padding-top: clamp(2rem, 4vw, 3rem);
}
#estate-tab-bukken:checked ~ .estate__panel--bukken, #estate-tab-owner:checked ~ .estate__panel--owner {
  display: block;
}
.estate__badge {
  position: absolute;
  left: -0.6rem;
  top: 1.3rem;
  z-index: 2;
  width: 2.9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: #ef7d39;
  color: white;
  font-size: 0.95rem;
  letter-spacing: 0;
}
.estate__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2rem);
  padding-bottom: clamp(2rem, 4vw, 3rem);
}
@media screen and (max-width: 1024px) {
  .estate__list {
    grid-template-columns: 1fr;
    max-width: 30rem;
    width: 100%;
    margin: 0 auto;
  }
}
.estate__card {
  min-width: 0;
  border: 1px solid rgba(68, 57, 50, 0.28);
  background-color: white;
}
.estate__thumb {
  position: relative;
  display: block;
  aspect-ratio: 4/2.45;
  overflow: hidden;
  background-color: #f8f2ee;
}
.estate__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.estate__thumb:hover img {
  transform: scale(1.04);
}
.estate__body {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
  padding: 1rem 0.8rem 2rem;
}
.estate__meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.estate__label {
  display: inline-flex;
  align-items: center;
  min-height: 1.25rem;
  padding: 0.3rem 0.6rem;
  background-color: #443932;
  color: white;
  line-height: 1;
  letter-spacing: 0;
}
.estate__area-text {
  margin-left: auto;
}
.estate__bottom {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.35rem;
}
.estate__price {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
  width: 100%;
  line-height: 1;
  letter-spacing: 0;
}
.estate__price-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.3rem;
  min-height: 1.55rem;
  padding: 0.2rem 0.7rem;
  border: 1px solid rgba(68, 57, 50, 0.7);
  border-radius: 0.3rem;
  color: #443932;
}
.estate__price-number {
  color: #443932;
  font-style: italic;
  line-height: 0.9;
}
.estate__price-unit {
  color: #443932;
  font-size: clamp(1.2rem, 2vw, 1.6rem);
  font-weight: 900;
  line-height: 1;
}
.estate__detail {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: 0.7rem;
       column-gap: 0.7rem;
  min-width: 7.5rem;
  min-height: 2.2rem;
  padding: 0.45rem 1rem;
  border-radius: 100px;
  background-color: #ef7d39;
  color: white;
  font-size: 0.78rem;
  line-height: 1;
  letter-spacing: 0;
  transition: background-color 0.3s ease;
}
.estate__detail::after {
  content: "";
  width: 0.35rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: white;
}
.estate__detail:hover {
  background-color: #57becc;
}
.estate__empty {
  padding: 2rem;
  border: 1px solid rgba(68, 57, 50, 0.2);
  background-color: white;
}
.estate__town {
  margin-top: clamp(2.5rem, 6vw, 4rem);
}
.estate__town img {
  width: 100%;
  border-radius: 0;
}

/* ==================================================
 _company.scss
 会社案内セクション
================================================== */
.company {
  background-color: #f8f2ee;
  color: #443932;
  padding-top: 7rem;
  padding-bottom: 4rem;
}
.company__container {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  align-items: center;
  gap: clamp(2.5rem, 7vw, 6rem);
}
@media screen and (max-width: 1024px) {
  .company__container {
    grid-template-columns: 1fr;
    max-width: 44rem;
  }
}
.company__image img {
  width: 100%;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0.35rem;
}
.company__body {
  display: flex;
  flex-direction: column;
  row-gap: clamp(2rem, 5vw, 3.5rem);
}
.company__header {
  display: flex;
  flex-direction: column;
  row-gap: 0.35rem;
}
.company__title, .company__lead {
  letter-spacing: 0;
}
.company__nav {
  display: flex;
  flex-direction: column;
  row-gap: clamp(1.75rem, 4vw, 3rem);
}
.company__link {
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: 0.25rem;
  padding-right: 3rem;
  color: #443932;
  transition: color 0.3s ease;
}
.company__link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 0.75rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #ef7d39;
  transform: translateY(-50%);
  transition: transform 0.3s ease, background-color 0.3s ease;
}
.company__link:hover {
  color: #ef7d39;
}
.company__link:hover::after {
  background-color: #57becc;
  transform: translateY(-50%) scale(1.25);
}
.company__link-title, .company__link-en {
  letter-spacing: 0;
}
.company__link-en {
  font-size: 0.8rem;
}

/* ==================================================
 _movie.scss
 動画チャンネルセクション
================================================== */
.movie {
  background-color: white;
  color: #443932;
  padding-top: clamp(4.5rem, 8vw, 7rem);
  padding-bottom: clamp(4.5rem, 8vw, 7rem);
  overflow: hidden;
}
.movie__container {
  row-gap: clamp(2rem, 4vw, 3rem);
}
.movie__header {
  display: flex;
  align-items: center;
  justify-content: center;
  -moz-column-gap: clamp(1rem, 3vw, 2rem);
       column-gap: clamp(1rem, 3vw, 2rem);
  text-align: center;
}
@media screen and (max-width: 1024px) {
  .movie__header {
    flex-direction: column;
    row-gap: 0.75rem;
  }
}
.movie__title-wrap {
  display: flex;
  align-items: center;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.movie__youtube {
  width: 1.8rem;
  aspect-ratio: 16/11;
  border-radius: 0.25rem;
  background-color: #ff0000;
  position: relative;
}
.movie__youtube::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 54%;
  transform: translate(-50%, -50%);
  border-left: 0.45rem solid white;
  border-top: 0.28rem solid transparent;
  border-bottom: 0.28rem solid transparent;
}
.movie__title, .movie__lead, .movie__section-label {
  letter-spacing: 0;
}
.movie__title span {
  color: #e62117;
}
.movie__recommend {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
  align-items: center;
}
.movie__recommend-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 4vw, 2.5rem);
  max-width: 44rem;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .movie__recommend-list {
    grid-template-columns: 1fr;
  }
}
.movie__latest {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
.movie__latest-wrap {
  position: relative;
  width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
  overflow-x: auto;
  scrollbar-width: none;
}
.movie__latest-wrap::-webkit-scrollbar {
  display: none;
}
.movie__badge {
  position: absolute;
  left: calc(50vw - min(45vw, 595px) - 0.4rem);
  top: 0.2rem;
  z-index: 2;
  width: 2.9rem;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background-color: #ef7d39;
  color: white;
  font-size: 0.95rem;
  letter-spacing: 0;
}
.movie__latest-list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(14rem, 20rem);
  -moz-column-gap: clamp(1rem, 2.5vw, 2rem);
       column-gap: clamp(1rem, 2.5vw, 2rem);
  width: -moz-max-content;
  width: max-content;
  padding-left: max(5vw, (100vw - 1190px) / 2);
  padding-right: max(5vw, (100vw - 1190px) / 2);
}
.movie__item {
  min-width: 0;
}
.movie__thumb {
  position: relative;
  display: block;
  aspect-ratio: 16/9;
  overflow: hidden;
  background-color: #f8f2ee;
}
.movie__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 0;
  transition: transform 0.4s ease;
}
.movie__thumb:hover img {
  transform: scale(1.04);
}
.movie__play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: clamp(2.4rem, 5vw, 3.4rem);
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: #e62117;
  box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.18);
}
.movie__play::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 55%;
  transform: translate(-50%, -50%);
  border-left: 0.75rem solid white;
  border-top: 0.48rem solid transparent;
  border-bottom: 0.48rem solid transparent;
}
.movie__item-body {
  display: flex;
  flex-direction: column;
  row-gap: 0.35rem;
  padding-top: 0.45rem;
}
.movie__category {
  width: -moz-fit-content;
  width: fit-content;
  padding: 0.1rem 0.45rem;
  background-color: #443932;
  color: white;
  font-size: 0.7rem;
  line-height: 1.2;
  letter-spacing: 0;
}
.movie__item-title {
  letter-spacing: 0;
}
.movie__dots {
  display: flex;
  justify-content: center;
  -moz-column-gap: 0.35rem;
       column-gap: 0.35rem;
}
.movie__dots span {
  width: 0.45rem;
  aspect-ratio: 1;
  border-radius: 50%;
  background-color: rgba(239, 125, 57, 0.25);
}
.movie__dots .is-active {
  background-color: #ef7d39;
}
.movie__button-wrap {
  margin-top: -0.5rem;
}
.movie__button {
  max-width: 13.5rem;
  padding-top: 0.95em;
  padding-bottom: 0.95em;
  font-size: 0.875rem;
}

/* movie latest swiper */
.movie__latest-wrap {
  position: relative;
  width: calc(100vw - (100vw - 100%) / 2);
  margin-left: 0;
  overflow: visible;
}
.movie__latest-slider {
  width: 100%;
  overflow: hidden;
  padding-right: max(1rem, (100vw - 1190px) / 2);
}
.movie__latest-list, .movie__dots {
  display: none;
}
.movie__item {
  height: auto;
}
.movie__badge {
  left: -0.6rem;
}
.movie__nav {
  margin-top: 1.5rem;
}

@media screen and (max-width: 767px) {
  .movie__latest-wrap {
    width: 100vw;
    margin-left: calc((100% - 100vw) / 2);
  }
  .movie__latest-slider {
    padding-inline: 1rem;
  }
  .movie__badge {
    left: 0.75rem;
  }
}
/* ==================================================
 _consultation.scss
 相談誘導セクション
================================================== */
.consultation {
  background-color: #f8f2ee;
  color: #443932;
}
.consultation__container {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(16rem, 0.65fr);
  align-items: center;
  gap: 2rem;
  padding: 3rem 6rem;
  background-color: white;
}
@media screen and (max-width: 1024px) {
  .consultation__container {
    grid-template-columns: 1fr;
    max-width: 44rem;
    padding: 1rem 1.5rem;
    justify-content: center;
  }
}
.consultation__body {
  display: flex;
  flex-direction: column;
  row-gap: clamp(1.25rem, 3vw, 2rem);
}
.consultation__text {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.consultation__image {
  justify-self: center;
  width: 100%;
}
.consultation__image img {
  width: 100%;
}

/* ==================================================
 _contact.scss
 お問い合わせセクション
================================================== */
.contact {
  background-color: #f8f2ee;
  color: #443932;
}
.contact__header {
  row-gap: 1rem;
}
.contact__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 3vw, 2.5rem);
}
@media screen and (max-width: 1024px) {
  .contact__cards {
    grid-template-columns: 1fr;
    max-width: 28rem;
    width: 100%;
    margin: 0 auto;
  }
}
.contact__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: 0.45rem;
  min-width: 0;
  padding: clamp(1.25rem, 3vw, 2rem) 1.25rem 1.4rem;
  border: 2px solid rgba(239, 125, 57, 0.65);
  border-radius: 0.45rem;
  background-color: white;
}
.contact__card-img {
  width: 60%;
}
.contact__card-img img {
  border-radius: 0;
}
.contact__card-en {
  color: #a1a1a1;
  font-size: 0.7rem;
  line-height: 1;
  letter-spacing: 0;
}
.contact__tel-box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 4vw, 3rem);
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 5vw, 4rem);
  border: 2px solid rgba(239, 125, 57, 0.65);
  border-radius: 0.45rem;
  background-color: white;
}
@media screen and (max-width: 1024px) {
  .contact__tel-box {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
}
.contact__tel-body {
  display: flex;
  flex-direction: column;
  row-gap: 0.8rem;
}
.contact__tel-heading {
  display: flex;
  align-items: center;
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .contact__tel-heading {
    flex-direction: column;
    row-gap: 0.2rem;
  }
}
.contact__tel-label {
  color: #a1a1a1;
}
.contact__tel-link {
  display: inline-flex;
  align-items: center;
  -moz-column-gap: 0.8rem;
       column-gap: 0.8rem;
  color: #443932;
}
.contact__tel-link .contact__tel-icon {
  width: clamp(2rem, 5vw, 3.25rem);
  height: clamp(2rem, 5vw, 3.25rem);
  flex-shrink: 0;
  background-color: #443932;
  mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  -webkit-mask: url(../../images/tel-icon.svg) center/contain no-repeat;
}
@media screen and (max-width: 767px) {
  .contact__tel-link {
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
  }
}
.contact__tel-mascot {
  display: flex;
  flex-direction: column;
  align-items: center;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.contact__tel-mascot img {
  width: 50%;
  border-radius: 0;
}
.contact__holiday {
  padding: 0.25rem 0.9rem;
  border: 1px solid #a1a1a1;
  border-radius: 100px;
  letter-spacing: 0;
}

/* ==================================================
 _c-service.scss
 カードのスタイル定義
================================================== */
.cta {
  position: relative;
  background-color: #ef7d39;
}
.cta::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -5rem;
  width: 150%;
  height: 20rem;
  background: #ef7d39;
  border-radius: 100%;
  z-index: 0;
  pointer-events: none;
}
@media screen and (max-width: 767px) {
  .cta::before {
    top: -3rem;
    height: 10rem;
  }
}
.cta__container {
  width: 90%;
  max-width: 1190px;
  margin: 0 auto;
  background-color: white;
  border-radius: 10px;
  padding: 4rem 3rem;
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
@media screen and (max-width: 1024px) {
  .cta__container {
    padding: 2rem 0;
    width: 100%;
    row-gap: 0;
  }
}
.cta__container header {
  background-color: #fff361;
  border: 2px solid white;
  white-space: nowrap;
  border-radius: 999px;
  padding: 0.2em 3em;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -25%);
}
@media screen and (max-width: 767px) {
  .cta__container header {
    width: 95%;
    line-height: 1.2;
    text-align: center;
    padding: 0.2em 1em;
    transform: translate(-50%, -50%);
  }
}
.cta__group {
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
  width: 80%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .cta__group {
    width: 95%;
    row-gap: 1.5rem;
  }
}
.cta__menu {
  display: flex;
  border: 1px solid #ef7d39;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
  width: auto;
}
.cta__menu dt {
  background: #ef7d39;
  color: #fff;
  font-weight: 700;
  padding: 0.8rem 1.5rem;
  display: flex;
  align-items: center;
  white-space: nowrap;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .cta__menu dt {
    padding: 0 0.5rem;
  }
}
.cta__menu dd {
  flex: 1;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  padding: 0.8rem 1.5rem;
  margin: 0;
}
.cta__menu dd p {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-weight: 700;
  color: #ef7d39;
}
.cta__menu dd p::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url("../../images/done-icon.png") center/contain no-repeat;
  flex: 0 0 auto;
}
.cta__wrap {
  display: flex;
  justify-content: center;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
@media screen and (max-width: 767px) {
  .cta__wrap {
    flex-direction: column;
    row-gap: 0.5rem;
  }
}
.cta__wrap-tel {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.cta__wrap-tel::before {
  content: "";
  display: inline-block;
  width: 70px;
  height: 70px;
  background: url("../../images/tel-icon.png") center/contain no-repeat;
}
.cta__wrap-box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  border-radius: 4px; /* optional */
  border: 1px solid #ef7d39;
  padding: 0 1rem;
}
@media screen and (max-width: 767px) {
  .cta__wrap-box {
    display: inline-block;
    padding: 0.25rem 1rem;
    background-color: #d50000;
    color: #fff361;
    border: none;
  }
}
.cta__point {
  display: flex;
  justify-content: space-evenly;
}
.cta__point-block {
  background-color: #f8f2ee;
  border: 2px solid #ef7d39;
  padding: 1rem 1rem;
  border-radius: 10px;
  width: 30%;
}
@media screen and (max-width: 1024px) {
  .cta__point-block {
    width: 32%;
    padding: 0.5rem 0.2rem;
  }
}

/* ==================================================
 _ctaFixed.scss
 タブレット以下で固定表示するCTA
================================================== */
.ctaFixed {
  display: none;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 999;
  padding: 0;
  pointer-events: none;
}
@media screen and (max-width: 1024px) {
  .ctaFixed {
    display: block;
  }
}
.ctaFixed__inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  box-shadow: 0 -6px 20px rgba(0, 0, 0, 0.12);
  padding: 0;
  pointer-events: auto;
}
.ctaFixed__btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  text-align: center;
  gap: 0.25rem;
  width: 100%;
  padding: 0.85rem 0.5rem;
  border-radius: 0;
  color: white;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}
.ctaFixed__btn::before {
  flex-shrink: 0;
}
.ctaFixed__btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  opacity: 0.95;
}
.ctaFixed__btn-label {
  display: block;
  font-size: 0.95rem;
}
.ctaFixed__btn-sub {
  display: block;
  font-size: 0.85rem;
  opacity: 0.9;
  line-height: 1.1;
}
.ctaFixed__btn--mail {
  background-color: #fff361;
  color: #443932;
}
.ctaFixed__btn--tel {
  background-color: #ef7d39;
}

/* ==================================================
 _mv.scss
 ひかり家 メインビジュアル
================================================== */
@keyframes mvBadgeFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}
.mv {
  position: relative;
  min-height: 504px;
  padding-top: 68px;
  overflow: hidden;
  background: #f8f1e8 url(../../images/mv_back.jpg) center bottom/cover no-repeat;
}
.mv::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: 128vw;
  height: 112px;
  background: #fff;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  transform: translateX(-50%);
  z-index: 1;
}
.mv__inner {
  position: relative;
  z-index: 2;
  width: 95%;
  min-height: 436px;
  margin: 0 auto;
  padding-top: 0;
}
.mv__area {
  margin-top: 1rem;
}
.mv__visual {
  position: relative;
  min-height: 412px;
}
.mv__copy {
  width: 50%;
  text-align: center;
  margin: 0 auto;
  padding-top: 5rem;
  padding-bottom: 14rem;
}
.mv__copy img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.mv__badge {
  position: absolute;
  top: 42px;
  right: 132px;
  display: grid;
  place-items: center;
  align-content: center;
  width: 200px;
  height: 200px;
  border: 3px solid white;
  border-radius: 50%;
  background: #fff361;
  color: #3f342e;
  box-shadow: 0 8px 18px rgba(63, 52, 46, 0.14);
  animation: mvBadgeFloat 3.2s ease-in-out infinite;
  z-index: 5;
}
.mv__badge span,
.mv__badge strong {
  display: block;
}
.mv__family {
  position: absolute;
  left: -8px;
  bottom: 90px;
  width: 28%;
  z-index: 3;
}
.mv__family img {
  width: 100%;
  height: auto;
  display: block;
}
.mv__house {
  position: absolute;
  right: 10px;
  bottom: 90px;
  width: 28%;
  z-index: 3;
}
.mv__house img {
  width: 100%;
  height: auto;
  display: block;
}
.mv__hikariya {
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 10rem;
  z-index: 5;
  transform: translateX(-50%);
}
.mv__hikariya img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (max-width: 1024px) {
  .mv {
    min-height: 520px;
    padding-top: 58px;
  }
  .mv__inner {
    width: calc(100% - 24px);
    min-height: 462px;
  }
  .mv__copy {
    top: 74px;
    width: min(520px, 88vw);
    padding-top: 2.5rem;
  }
  .mv__badge {
    top: 16px;
    right: 6px;
    width: 92px;
    height: 92px;
    font-size: 13px;
  }
}
@media screen and (max-width: 767px) {
  .mv {
    min-height: 470px;
  }
  .mv__copy {
    top: 102px;
    width: 92vw;
  }
  .mv__badge {
    top: auto;
    bottom: 2rem;
  }
  .mv__family {
    width: 45%;
    left: -20px;
    bottom: 96px;
  }
  .mv__house {
    width: 45%;
    right: -20px;
    bottom: 104px;
  }
  .mv__hikariya {
    bottom: 24px;
    width: 33%;
  }
}
/* ==================================================
 _header.scss
 ひかり家 ヘッダー
================================================== */
.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  backdrop-filter: blur(4px);
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 95%;
  min-height: 68px;
  margin: 0 auto;
  padding: 8px 0 8px;
}
.header__brand {
  flex: 0 0 auto;
}
.header__logo {
  display: inline-flex;
  align-items: center;
  width: 224px;
}
.header__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.header__area {
  margin-top: 4px;
  color: #3f342e;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}
.header__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
}
.header__nav ul {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 34px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.header__nav a {
  color: #443932;
  line-height: 1;
  text-decoration: none;
  transition: color 0.2s ease;
}
.header__nav a:hover {
  color: #f77732;
}
.header__menu {
  display: none;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 4px;
  background: #3f342e;
  place-items: center;
  padding: 10px;
}
.header__menu span {
  display: block;
  width: 20px;
  height: 2px;
  margin: 3px auto;
  background: #fff;
  border-radius: 999px;
}

.fixedContact {
  position: fixed;
  top: 13px;
  right: 12px;
  z-index: 1100;
  display: grid;
  gap: 6px;
}
.fixedContact__item {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 4px;
  background: #3f342e;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease, opacity 0.25s ease;
}
@media (hover: hover) {
  .fixedContact__item:hover {
    transform: translateX(-3px);
    background: #ef7d39;
    box-shadow: 0 6px 16px rgba(68, 57, 50, 0.22);
  }
}
.fixedContact__item:focus-visible {
  outline: 2px solid #ef7d39;
  outline-offset: 3px;
  transform: translateX(-3px);
}
.fixedContact__item--menu span {
  display: block;
  width: 22px;
  height: 3px;
  margin: 2px auto;
  background: #fff;
  border-radius: 999px;
  transition: transform 0.25s ease;
}
@media (hover: hover) {
  .fixedContact__item--menu:hover span:nth-child(1) {
    transform: translateY(1px);
  }
  .fixedContact__item--menu:hover span:nth-child(3) {
    transform: translateY(-1px);
  }
}
.fixedContact__item--tel::before {
  content: "";
  width: 18px;
  height: 18px;
  background: #fff;
  mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  -webkit-mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  transition: transform 0.25s ease;
}
@media (hover: hover) {
  .fixedContact__item--tel:hover::before {
    transform: scale(1.12);
  }
}

.sideCta,
.cta-fixes {
  position: fixed;
  right: 0;
  top: 266px;
  bottom: auto;
  left: auto;
  z-index: 950;
  display: grid;
  grid-template-columns: 1fr;
  width: 54px;
  transform: none;
}
.sideCta__item,
.sideCta .sideCta__item,
.cta-fixes__item,
.cta-fixes .sideCta__item {
  display: grid;
  place-items: center;
  padding: 1.3rem 0.9rem;
  text-decoration: none;
  writing-mode: vertical-rl;
  transition: transform 0.25s ease, filter 0.25s ease, box-shadow 0.25s ease;
}
@media (hover: hover) {
  .sideCta__item:hover,
  .sideCta .sideCta__item:hover,
  .cta-fixes__item:hover,
  .cta-fixes .sideCta__item:hover {
    transform: translateX(-4px);
    filter: brightness(1.06);
    box-shadow: 0 8px 18px rgba(68, 57, 50, 0.22);
  }
}
.sideCta__item:focus-visible,
.sideCta .sideCta__item:focus-visible,
.cta-fixes__item:focus-visible,
.cta-fixes .sideCta__item:focus-visible {
  outline: 2px solid #fff;
  outline-offset: -4px;
  transform: translateX(-4px);
}
.sideCta__item--catalog,
.sideCta .sideCta__item--catalog,
.cta-fixes__item--catalog,
.cta-fixes .sideCta__item--catalog {
  background: #57becc;
  border-radius: 0.5rem 0 0 0;
}
.sideCta__item--reserve,
.sideCta .sideCta__item--reserve,
.cta-fixes__item--reserve,
.cta-fixes .sideCta__item--reserve {
  background: #ef7d39;
  border-radius: 0 0 0 0.5rem;
}

@media screen and (max-width: 1024px) {
  .header__inner {
    align-items: center;
    width: calc(100% - 24px);
    min-height: 58px;
  }
  .header__logo {
    width: 160px;
  }
  .header__area, .header__nav {
    display: none;
  }
  .header__menu {
    display: block;
  }
}
@media screen and (max-width: 767px) {
  .sideCta,
  .cta-fixes {
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    width: 100%;
    transform: none;
  }
  .sideCta__item,
  .sideCta .sideCta__item,
  .cta-fixes__item,
  .cta-fixes .sideCta__item {
    width: 100%;
    min-height: 54px;
    padding: 10px 8px;
    font-size: 13px;
    line-height: 1.2;
    writing-mode: horizontal-tb;
    border-radius: 0;
  }
}
@media screen and (max-width: 767px) and (hover: hover) {
  .sideCta__item:hover,
  .sideCta .sideCta__item:hover,
  .cta-fixes__item:hover,
  .cta-fixes .sideCta__item:hover {
    transform: translateY(-3px);
  }
}
@media screen and (max-width: 767px) {
  .sideCta__item:focus-visible,
  .sideCta .sideCta__item:focus-visible,
  .cta-fixes__item:focus-visible,
  .cta-fixes .sideCta__item:focus-visible {
    transform: translateY(-3px);
  }
  body {
    padding-bottom: 54px;
  }
}
/* ==================================================
 _footer.scss
 ひかり家 フッター
================================================== */
.footerNav {
  background: #fff;
  color: #3f342e;
}
.footerNav__inner {
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 56px;
  width: min(980px, 100% - 48px);
  margin: 0 auto;
  padding: 58px 0 48px;
}
.footerNav__info {
  padding-right: 48px;
  border-right: 1px solid #b9b1ab;
}
.footerNav__logo {
  display: inline-flex;
  width: 225px;
  margin-bottom: 28px;
  color: #f77732;
  font-size: 34px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}
.footerNav__logo img {
  display: block;
  width: 100%;
  height: auto;
}
.footerNav__company, .footerNav__address, .footerNav__time {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.7;
}
.footerNav__tel {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  color: #3f342e;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.2;
  text-decoration: none;
}
.footerNav__tel::before {
  content: "";
  width: 18px;
  height: 18px;
  background: #443932;
  mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  -webkit-mask: url(../../images/tel-icon.svg) center/contain no-repeat;
  flex: 0 0 auto;
}
.footerNav__jmi {
  display: block;
  width: 50%;
  margin-top: 28px;
}
.footerNav__jmi img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
}
.footerNav__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 34px;
}
.footerNav__nav ul {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  -moz-column-gap: 46px;
       column-gap: 46px;
  row-gap: 13px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.footerNav__nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #3f342e;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  text-decoration: none;
  transition: color 0.2s ease;
}
.footerNav__nav a::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #f77732;
  flex: 0 0 auto;
}
.footerNav__nav a:hover {
  color: #f77732;
}
.footerNav__cta {
  display: flex;
  align-items: center;
  gap: 30px;
}
.footerNav__button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 176px;
  min-height: 46px;
  padding: 12px 42px 12px 28px;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  text-decoration: none;
}
.footerNav__button::after {
  content: "";
  position: absolute;
  right: 22px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
  transform: translateY(-50%);
}
.footerNav__button--orange {
  background: #f77732;
}
.footerNav__button--green {
  background: #22bf52;
}
.footerNav__copyright {
  display: grid;
  place-items: center;
  min-height: 54px;
  background: #f77732;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0;
}

@media screen and (max-width: 1024px) {
  .footerNav__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    width: calc(100% - 32px);
    padding: 42px 0 36px;
  }
  .footerNav__info {
    padding-right: 0;
    border-right: 0;
    text-align: center;
  }
  .footerNav__logo, .footerNav__jmi {
    margin-left: auto;
    margin-right: auto;
  }
  .footerNav__nav ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    -moz-column-gap: 24px;
         column-gap: 24px;
  }
  .footerNav__cta {
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px;
  }
}
@media screen and (max-width: 767px) {
  .footerNav__logo {
    width: 190px;
  }
  .footerNav__nav ul {
    grid-template-columns: 1fr;
  }
  .footerNav__button {
    width: min(100%, 260px);
  }
}
/* ==================================================
 _mobileMenu.scss
 モバイルメニューのスタイル定義
================================================== */
.mobileMenu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #ef7d39;
  visibility: hidden;
  opacity: 0;
  z-index: 98;
  overflow-y: scroll;
  padding-top: 80px;
  transition: all 0.4s;
}
@media screen and (max-width: 767px) {
  .mobileMenu {
    width: 100%;
  }
}
.mobileMenu__container {
  padding: 5rem;
}
@media screen and (max-width: 767px) {
  .mobileMenu__container {
    padding: 2rem;
  }
}
.mobileMenu__nav {
  color: white;
}
.mobileMenu__nav ul.menu {
  font-weight: 700;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  row-gap: 1.5rem;
}
.mobileMenu__nav ul.menu > li {
  width: 100%;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid white;
}
.mobileMenu__nav ul.menu > li > a {
  position: relative;
  letter-spacing: 0.48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.mobileMenu__nav ul.menu > li > a::after {
  transform: rotate(45deg);
  width: 0.6rem;
  height: 0.6rem;
  border-top: 3px solid white;
  border-right: 3px solid white;
  margin-right: 0.5rem;
  content: "";
}
.mobileMenu__button {
  padding-top: 3rem;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}

.menu-open.mobileMenu {
  visibility: visible;
  opacity: 1;
}
.menu-open.header__menu-btn > span:nth-child(1) {
  transition-delay: 70ms;
  transform: translateY(11px) rotate(135deg);
}
.menu-open.header__menu-btn > span:nth-child(2) {
  transition-delay: 0s;
  transform: translateX(-18px) scaleX(0);
}
.menu-open.header__menu-btn > span:nth-child(3) {
  transition-delay: 140ms;
  transform: translateY(-11px) rotate(-135deg);
}
.menu-open.mask {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.5;
  z-index: 2;
  cursor: pointer;
}

/* ==================================================
 _subHero.scss
スタジオページひろーのスタイル定義
================================================== */
.subHero {
  width: 100%;
  padding-top: 74px;
  background-color: #f8f2ee;
}
@media screen and (max-width: 767px) {
  .subHero {
    padding-top: 60px;
  }
}
.subHero__wrap {
  width: 95%;
  margin: 0 auto;
  border-radius: 10px;
  background-color: #ef7d39;
  padding: 4rem 0;
}
@media screen and (max-width: 767px) {
  .subHero__wrap {
    padding: 2rem 0;
  }
}

/* ==================================================
 _serviceScope.scss
 サービス下層ページの対応ケース／対応内容まとめセクション
================================================== */
.serviceScope {
  background-color: #f8f2ee;
  border: 1px solid rgba(239, 125, 57, 0.2);
  border-radius: 14px;
}
.serviceScope .section__container {
  row-gap: 3rem;
  align-items: center;
}
.serviceScope__block {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
  align-items: center;
  text-align: center;
}
.serviceScope__eyebrow {
  letter-spacing: 0.08em;
}
.serviceScope__title {
  color: #ef7d39;
  line-height: 1.4;
}
.serviceScope__lead {
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.8;
}
.serviceScope__grid {
  width: 100%;
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;
}
@media screen and (max-width: 1024px) {
  .serviceScope__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media screen and (max-width: 767px) {
  .serviceScope__grid {
    grid-template-columns: 1fr;
  }
}
.serviceScope__card {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 0.75rem;
  padding: 2rem 3rem;
  border-radius: 12px;
  border: 3px solid transparent;
  background-color: white;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.04);
  min-height: clamp(140px, 18vw, 180px);
  width: 100%;
  height: 100%;
}
.serviceScope__card p {
  margin: 0;
  text-align: center;
  line-height: 1.6;
}
.serviceScope__card--warning {
  background-color: white;
  border-color: #57becc;
}
.serviceScope__card--check {
  background-color: white;
  border-color: #ef7d39;
}
.serviceScope__icon {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.serviceScope__arrow {
  display: flex;
  justify-content: center;
  padding: 0.5rem 0 1rem;
}
.serviceScope__arrow-shape {
  width: 0;
  height: 0;
  border-left: 28px solid transparent;
  border-right: 28px solid transparent;
  border-top: 30px solid #8a8a8a;
}
@media screen and (max-width: 767px) {
  .serviceScope .section__container {
    row-gap: 2.5rem;
  }
  .serviceScope__block {
    row-gap: 1rem;
  }
  .serviceScope__lead {
    text-align: left;
  }
}

/* ==================================================
 _achievement.scss
 実績・信頼セクション
================================================== */
.servicePrice {
  position: relative;
  background-color: #f8f2ee;
}
.servicePrice__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
}
.servicePrice__panel {
  width: 100%;
  background-color: white;
  border-radius: 10px;
  padding: 2rem 3rem;
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .servicePrice__panel {
    padding: 1rem 1.5rem;
  }
}
.servicePrice__panel-lead {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.servicePrice__wrap {
  position: relative;
}
.servicePrice__cards {
  display: flex;
  justify-content: center;
  -moz-column-gap: 5rem;
       column-gap: 5rem;
  align-items: stretch;
}
@media screen and (max-width: 767px) {
  .servicePrice__cards {
    flex-direction: column;
    row-gap: 5rem;
  }
}
.servicePrice__card {
  width: 50%;
  max-width: 400px;
  background-color: white;
  border: 3px solid #ef7d39;
  border-radius: 20px;
  padding: 2rem 2.4rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.4rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .servicePrice__card {
    width: 100%;
    padding: 1rem 2rem;
    max-width: none;
  }
}
.servicePrice__plus {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
}
/* ==================================================
 _c-service.scss
 カードのスタイル定義
================================================== */
.serviceFlow {
  background-color: #ef7d39;
  border-radius: 5%;
}
@media screen and (max-width: 767px) {
  .serviceFlow {
    border-radius: 2rem;
  }
}

/* ==================================================
 _c-service.scss
 カードのスタイル定義
================================================== */
/* ==================================================
 _reason.scss
 選ばれる理由セクション
================================================== */
.serviceAssist {
  position: relative;
  background-color: #f8f2ee;
  overflow: hidden;
}
.serviceAssist__container {
  position: relative;
  z-index: 1;
  background-color: #f4e6dc;
  padding-top: 6rem;
  padding-bottom: 6rem;
  border-radius: 18px;
  width: 90%;
  max-width: 1190px;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .serviceAssist__container {
    padding-top: 4rem;
    width: 100%;
  }
}
.serviceAssist__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.serviceAssist__card {
  width: 80%;
  margin: 0 auto;
  display: flex;
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
  justify-content: space-between;
  align-items: flex-start;
  align-items: stretch;
  background-color: white;
  border-radius: 20px;
  padding: 3rem 2rem;
  border: 3px solid rgba(239, 125, 57, 0.25);
}
@media screen and (max-width: 1024px) {
  .serviceAssist__card {
    width: 95%;
  }
}
@media screen and (max-width: 767px) {
  .serviceAssist__card {
    width: 98%;
    flex-direction: column-reverse;
    padding: 2rem 1rem;
    row-gap: 1rem;
  }
}
.serviceAssist__card-body {
  width: 60%;
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
}
@media screen and (max-width: 767px) {
  .serviceAssist__card-body {
    width: 100%;
  }
}
.serviceAssist__card-body--text {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.serviceAssist__card-image {
  width: 40%;
  border-radius: 10px;
  overflow: hidden;
  background-color: #f7f7f7;
  height: 100%;
  display: flex;
  align-items: stretch;
}
.serviceAssist__card-image picture {
  display: block;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 767px) {
  .serviceAssist__card-image {
    width: 100%;
    height: auto;
    aspect-ratio: 4/3;
  }
}
.serviceAssist__card-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.serviceAssist__arrow {
  background-color: #f8f2ee;
}

/* ==================================================
 _aboutPage.scss
 フローのスタイル定義
================================================== */
.aboutPage__main {
  background-color: #f8f2ee;
  padding-top: 4rem;
  padding-bottom: 7rem;
}
@media screen and (max-width: 767px) {
  .aboutPage__main {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
}
.aboutPage__main-wrap {
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
@media screen and (max-width: 767px) {
  .aboutPage__main-wrap {
    row-gap: 2rem;
  }
}
.aboutPage__main-txt {
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
  line-height: 2;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .aboutPage__main-txt {
    row-gap: 1rem;
    line-height: 1.7;
    text-align: left;
  }
}
.aboutPage__company {
  background-color: #f4e6dc;
}
.aboutPage__company table {
  width: 80%;
  margin: 0 auto;
}
@media screen and (max-width: 767px) {
  .aboutPage__company table {
    width: 100%;
  }
}
.aboutPage__company tr {
  border-bottom: 1px solid #a1a1a1;
}
.aboutPage__company tr:nth-child(1) {
  border-top: 1px solid #a1a1a1;
}
.aboutPage__company th {
  padding: 2rem;
  width: 20%;
}
@media screen and (max-width: 767px) {
  .aboutPage__company th {
    width: 30%;
    padding: 2rem 0.5rem 2rem 0;
  }
}
.aboutPage__company td {
  padding: 2rem;
  font-weight: 600;
}
@media screen and (max-width: 767px) {
  .aboutPage__company td {
    padding: 2rem 0.5rem 2rem 0;
  }
}
.aboutPage__president {
  background-color: #f8f2ee;
}
.aboutPage__president-grid {
  display: flex;
  justify-content: center;
  -moz-column-gap: 2rem;
       column-gap: 2rem;
  align-items: center;
}
@media screen and (max-width: 1024px) {
  .aboutPage__president-grid {
    flex-direction: column;
    row-gap: 1rem;
  }
}
.aboutPage__president-photo {
  width: 40%;
}
@media screen and (max-width: 1024px) {
  .aboutPage__president-photo {
    width: 100%;
  }
}
.aboutPage__president-photo img {
  width: 100%;
  max-width: 422px;
}
.aboutPage__president-table {
  width: 60%;
}
@media screen and (max-width: 1024px) {
  .aboutPage__president-table {
    width: 100%;
  }
}
.aboutPage__president-table table {
  vertical-align: middle;
}
.aboutPage__president-table table th {
  width: 25%;
  padding: 1rem 0;
  font-weight: normal;
  vertical-align: middle;
  font-weight: 600;
  border-bottom: 1px solid #a1a1a1;
}
@media screen and (max-width: 767px) {
  .aboutPage__president-table table th {
    padding: 1rem 0;
  }
}
.aboutPage__president-table table th.tr-top {
  vertical-align: top;
}
.aboutPage__president-table table td {
  width: 75%;
  padding: 1rem 2rem;
  vertical-align: middle;
  font-weight: 600;
  border-bottom: 1px solid #a1a1a1;
}
@media screen and (max-width: 767px) {
  .aboutPage__president-table table td {
    padding: 1rem 1rem;
  }
}

.cel1 {
  width: 20%;
  border-bottom: 1px solid #a1a1a1;
}
@media screen and (max-width: 767px) {
  .cel1 {
    display: block;
    width: 100%;
    padding-bottom: 0 !important;
    border-bottom: none;
  }
}

.cel2 {
  width: 80%;
  border-bottom: 1px solid #a1a1a1;
}
@media screen and (max-width: 767px) {
  .cel2 {
    display: block;
    width: 100%;
    padding-top: 0 !important;
  }
}

.cel-no-border {
  border-bottom: none !important;
}

/* ==================================================
 _recruitPosting.scss
 募集要項セクション
================================================== */
.recruitPosting {
  padding-top: 7rem;
}
@media screen and (max-width: 767px) {
  .recruitPosting {
    padding-top: 4rem;
  }
}
.recruitPosting__wrap {
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
.recruitPosting__card {
  width: 100%;
  border: 1px solid rgba(239, 125, 57, 0.35);
  border-radius: 1.2rem;
  overflow: hidden;
  background: #fff;
}
.recruitPosting__card .toggle {
  display: none;
}
.recruitPosting__card .Label {
  position: relative;
  display: block;
  padding: 2rem 5rem 2rem 2rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  background: #ef7d39;
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.recruitPosting__card .Label:hover {
  opacity: 0.85;
}
.recruitPosting__card .Label::before, .recruitPosting__card .Label::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 2rem;
  width: 1.6rem;
  height: 2px;
  background: #fff;
  transform: translateY(-50%);
  transition: transform 0.3s ease;
}
.recruitPosting__card .Label::after {
  transform: translateY(-50%) rotate(90deg);
}
.recruitPosting__card table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  display: block;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}
.recruitPosting__card table tbody {
  display: table;
  width: 100%;
}
.recruitPosting__card table tr {
  width: 100%;
  border-bottom: 1px solid rgba(239, 125, 57, 0.35);
}
.recruitPosting__card table tr:first-child {
  border-top: 1px solid rgba(239, 125, 57, 0.35);
}
.recruitPosting__card table tr:last-child {
  border-bottom: none;
}
.recruitPosting__card table th,
.recruitPosting__card table td {
  padding: 2rem;
  vertical-align: middle;
  line-height: 1.8;
  word-break: break-word;
}
.recruitPosting__card table th {
  width: 30%;
  color: #ef7d39;
  font-weight: 700;
  text-align: left;
  background: rgba(239, 125, 57, 0.08);
}
.recruitPosting__card table td {
  width: 70%;
}
.recruitPosting__card .toggle:checked + .Label::after {
  transform: translateY(-50%) rotate(0deg);
}
.recruitPosting__card .toggle:checked + .Label + table {
  max-height: 200rem;
  opacity: 1;
}

@media screen and (max-width: 767px) {
  .recruitPosting {
    padding: 10rem 0;
  }
  .recruitPosting__card .Label {
    padding: 1.6rem 4.5rem 1.6rem 1.6rem;
  }
  .recruitPosting__card table th,
  .recruitPosting__card table td {
    display: block;
    width: 100%;
    padding: 1.4rem 1.6rem;
  }
  .recruitPosting__card table th {
    border-bottom: 1px solid rgba(239, 125, 57, 0.2);
  }
}
/* 
@use "module/sidenav";
*/
/* ==================================================
 pageフォルダ
================================================== */
/* ==================================================
 _page.scss
 レッスンエリアのスタイル定義
================================================== */
.page__wrap {
  display: flex;
  flex-direction: column;
  row-gap: 4rem;
}
.page__box {
  display: flex;
  justify-content: space-between;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
@media screen and (max-width: 767px) {
  .page__box {
    flex-direction: column-reverse;
    row-gap: 1.5rem;
  }
}
.page__box-img {
  width: 45%;
}
@media screen and (max-width: 767px) {
  .page__box-img {
    width: 100%;
  }
}
.page__box-img img {
  border-radius: 1rem;
}
.page__box-txt {
  width: 55%;
  display: flex;
  flex-direction: column;
  row-gap: 0.5rem;
}
@media screen and (max-width: 767px) {
  .page__box-txt {
    width: 100%;
  }
}
.page__main {
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media screen and (max-width: 767px) {
  .page__main {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}

/* ==================================================
 singleフォルダ
================================================== */
/* ==================================================
 _single.scss
 投稿のスタイル定義
================================================== */
.single {
  padding-bottom: 8em;
}
.single__breadcrumb {
  background-color: #f8f2ee;
  padding-top: 100px;
}
.single__hero {
  width: 100%;
}
.single__hero-inner {
  padding-top: 2rem;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  row-gap: 0.25rem;
}
.single__meta {
  display: flex;
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
  justify-content: flex-start;
  align-items: center;
}
.single__meta-tag {
  display: flex;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  justify-content: flex-start;
  align-items: center;
}
.single__article {
  padding-bottom: 2rem;
}
.single__article-thumbnail img {
  width: 100% !important;
  max-height: 700px;
}
.single__article h2 {
  background-color: #ef7d39;
  color: white !important;
  padding: 1.2em 1em;
  margin-top: 5rem;
}
.single__article h3 {
  padding: 0.8em 1.2em;
  border-left: 6px solid #ef7d39;
  background-color: rgba(239, 125, 57, 0.1);
  margin-top: 2rem;
}
.single__article h4 {
  margin-top: 1rem;
  padding: 0.2em 0 0.2em 1em;
  position: relative;
  font-weight: 700;
}
.single__article h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.3em;
  width: 0.2em;
  height: calc(100% - 0.6em);
  background-color: #ef7d39;
  border-radius: 2em;
}
.single__article li {
  list-style: disc;
}
.single__article li::marker {
  color: #ef7d39; /* 丸だけ赤にする */
}
.single__customFields {
  display: flex;
  flex-direction: column;
  row-gap: 2.5rem;
  margin-top: 3rem;
}
.single__customSection h2 {
  margin-top: 0;
  margin-bottom: 1rem;
}
.single__customText, .single__customHtml {
  line-height: 1.9;
}
.single__customTable {
  width: 100%;
  border-collapse: collapse;
}
.single__customTable th,
.single__customTable td {
  padding: 1rem;
  border: 1px solid rgba(68, 57, 50, 0.18);
  line-height: 1.7;
  text-align: left;
  vertical-align: top;
}
.single__customTable th {
  width: 28%;
  background-color: rgba(239, 125, 57, 0.08);
  font-weight: 700;
}

/* ==================================================
 _sidebar.scss
 Sidebar layout and widgets.
================================================== */
.layout-with-sidebar {
  max-width: 1200px;
  display: flex;
  gap: 3rem;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 auto;
}

.layout-with-sidebar__main {
  flex: 1 1 0;
  min-width: 0;
}

.c-sidebar {
  width: 25%;
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
.c-sidebar__section {
  padding: 2rem 1rem;
}
.c-sidebar__title {
  margin: 0;
}
.c-sidebar li {
  margin-bottom: 0.65rem;
}
.c-sidebar a {
  color: #443932;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.c-sidebar a:hover {
  color: #ef7d39;
  border-color: rgba(239, 125, 57, 0.4);
}
.c-sidebar {
  /* BusinessPress widget-like styling scoped to sidebar */
}
.c-sidebar .widget {
  margin-bottom: 2.5rem;
  color: #666;
  font-size: 0.95rem;
}
.c-sidebar .widget-title {
  color: #333;
  font-size: 1.05rem;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
}
.c-sidebar .widget ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.c-sidebar .widget li {
  margin-bottom: 1em;
}
.c-sidebar .widget ul ul {
  margin-left: 1em;
  margin-top: 1em;
}
.c-sidebar .widget_recent_entries li {
  margin-bottom: 1.5em;
}
.c-sidebar .widget_recent_entries li a,
.c-sidebar .widget_recent_comments li a {
  border-bottom: solid 1px #ddd;
  padding-bottom: 2px;
}
.c-sidebar .widget_recent_entries .post-date {
  color: #999;
  display: block;
  font-size: 90%;
  margin-top: 4px;
}
.c-sidebar .widget_search input[type=search] {
  margin-top: 0;
  max-width: 300px;
  width: 100%;
  padding: 0.6rem 0.8rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 1rem;
  box-sizing: border-box;
}
.c-sidebar .widget_search .search-submit {
  display: none;
}

.search-field {
  background-color: white;
  padding: 0.2rem 0.5rem;
}

.search-submit {
  background-color: #ef7d39;
  color: white;
  padding: 0.2rem 0.5rem;
  border-radius: 5px;
}

@media screen and (max-width: 1024px) {
  .layout-with-sidebar {
    flex-direction: column;
    width: 95%;
    margin: 0 auto;
  }
  .c-sidebar {
    width: 100%;
    flex: 1 1 auto;
  }
}
/* ==================================================
 _bp-content.scss
 BusinessPress-derived content styles scoped to single/page.
================================================== */
.single,
.page {
  /* Heading */
}
.single h1,
.single h2,
.single h3,
.single h4,
.single h5,
.single h6,
.page h1,
.page h2,
.page h3,
.page h4,
.page h5,
.page h6 {
  color: #111;
  font-weight: 700;
  line-height: 1.5;
}
.single h1,
.page h1 {
  font-size: clamp(2rem, 2vw + 1.6rem, 2.6rem);
  margin-bottom: 0.5em;
  margin-top: 0.5em;
}
.single h2,
.page h2 {
  font-size: clamp(1.5rem, 1.4vw + 1rem, 2rem);
  margin-bottom: 1.5em;
  margin-top: 3em;
}
.single h3,
.page h3 {
  font-size: clamp(1.25rem, 1vw + 0.9rem, 1.7rem);
  margin-bottom: 1em;
  margin-top: 2.5em;
}
.single h4,
.page h4 {
  font-size: clamp(1.1rem, 0.6vw + 0.9rem, 1.4rem);
  margin-bottom: 1em;
  margin-top: 2em;
}
.single h5,
.page h5 {
  font-size: clamp(1rem, 0.5vw + 0.85rem, 1.25rem);
  margin-bottom: 0.5em;
  margin-top: 1.5em;
}
.single h6,
.page h6 {
  font-size: clamp(0.95rem, 0.3vw + 0.8rem, 1.1rem);
  margin-bottom: 0.5em;
  margin-top: 1em;
}
.single,
.page {
  /* Link */
}
.single a,
.page a {
  color: inherit;
  text-decoration: none;
  transition: color 0.15s ease-in-out, opacity 0.15s ease-in-out;
}
.single a:hover,
.page a:hover {
  color: #ef7d39;
}
.single cite a,
.page cite a {
  text-decoration: none;
}
.single,
.page {
  /* Text */
}
.single p,
.page p {
  margin: 0 0 1.8em;
}
.single b,
.single strong,
.page b,
.page strong {
  font-weight: 700;
}
.single dfn,
.single em,
.single i,
.page dfn,
.page em,
.page i {
  font-style: italic;
}
.single q,
.page q {
  quotes: "" "";
}
.single cite,
.page cite {
  border-bottom: dotted 1px #999;
  font-style: normal;
}
.single code,
.single kbd,
.single tt,
.single var,
.page code,
.page kbd,
.page tt,
.page var {
  background-color: #f4f5f6;
  color: #666;
  font-family: Consolas, "Courier New", monospace;
  font-size: 90%;
}
.single abbr,
.single acronym,
.page abbr,
.page acronym {
  border-bottom: 1px dotted #999;
  cursor: help;
}
.single mark,
.single ins,
.page mark,
.page ins {
  background: linear-gradient(transparent 70%, #ffff66 70%);
  text-decoration: none;
}
.single pre,
.page pre {
  background-color: #f4f5f6;
  color: #666;
  font-family: Consolas, "Courier New", monospace;
  font-size: 90%;
  line-height: 1.4;
  margin: 0 0 1.7em;
  max-width: 100%;
  overflow: auto;
  padding: 1.5em;
  word-wrap: normal;
}
.single,
.page {
  /* List */
}
.single ul,
.single ol,
.page ul,
.page ol {
  margin: 0 0 1.8em 1.5em;
  padding: 0;
}
.single li > ul,
.single li > ol,
.page li > ul,
.page li > ol {
  margin-bottom: 0;
}
.single dl,
.page dl {
  margin: 0;
}
.single dt,
.page dt {
  font-weight: 600;
  margin-bottom: 0.5em;
}
.single dd,
.page dd {
  margin: 0 0 1.8em 1.5em;
}
.single,
.page {
  /* Table */
}
.single table,
.page table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 90%;
  margin: 0 0 1.8em;
  width: 100%;
}
.single caption,
.page caption {
  margin-bottom: 0.6em;
}
.single table th,
.single table td,
.page table th,
.page table td {
  border: solid 1px #eee;
  padding: 1em 1.2em;
}
.single th,
.page th {
  background-color: #f4f5f6;
  font-weight: 600;
  text-align: left;
}
.single,
.page {
  /* Elements */
}
.single blockquote,
.page blockquote {
  color: #666;
  margin: 0 0 2em;
  padding: 12px 0 0 44px !important;
  position: relative;
}
.single blockquote:before,
.page blockquote:before {
  color: #ddd;
  content: "“";
  font-family: Georgia, serif;
  font-size: 84px;
  left: -5px;
  line-height: 1;
  position: absolute;
  top: -5px;
}
.single blockquote p,
.page blockquote p {
  margin-bottom: 0.8em;
}
.single blockquote cite,
.page blockquote cite {
  font-size: 90%;
}
.single address,
.page address {
  margin: 0 0 1.8em;
  font-style: normal;
}
.single,
.page {
  /* Alignments */
}
.single .aligncenter,
.single .alignleft,
.single .alignright,
.page .aligncenter,
.page .alignleft,
.page .alignright {
  margin-bottom: 1.8em;
}
.single .alignleft,
.page .alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em;
}
.single .alignright,
.page .alignright {
  display: inline;
  float: right;
  margin-left: 1.5em;
}
.single .aligncenter,
.page .aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.single,
.page {
  /* Caption */
}
.single .wp-caption,
.page .wp-caption {
  color: #999;
  font-size: 90%;
  margin-bottom: 1.8em;
  max-width: 100%;
}
.single .wp-caption img[class*=wp-image-],
.page .wp-caption img[class*=wp-image-] {
  display: block;
  margin: 0.4em auto 0;
}
.single .wp-caption-text,
.page .wp-caption-text {
  text-align: center;
}
.single .wp-caption .wp-caption-text,
.page .wp-caption .wp-caption-text {
  margin: 0.8em 0;
}
.single,
.page {
  /* Smiley */
}
.single .page-content img.wp-smiley,
.single .entry-content img.wp-smiley,
.single .comment-content img.wp-smiley,
.page .page-content img.wp-smiley,
.page .entry-content img.wp-smiley,
.page .comment-content img.wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* ==================================================
 contactForm7繝輔か繝ｫ繝
================================================== */
/* ==================================================
 component繝輔か繝ｫ繝
================================================== */
/* ==================================================
 _c-section.scss
 カードのスタイル定義
================================================== */
.section {
  padding-top: 7rem;
  padding-bottom: 7rem;
}
@media screen and (max-width: 767px) {
  .section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }
}
.section__top {
  padding-top: 4rem;
  padding-bottom: 0;
}
@media screen and (max-width: 767px) {
  .section__top {
    padding-top: 2rem;
    padding-bottom: 0;
  }
}
.section__middle {
  padding-top: 4rem;
  padding-bottom: 7rem;
}
@media screen and (max-width: 767px) {
  .section__middle {
    padding-top: 2rem;
    padding-bottom: 4rem;
  }
}
.section__container {
  display: flex;
  flex-direction: column;
  row-gap: 3rem;
}
@media screen and (max-width: 767px) {
  .section__container {
    row-gap: 2rem;
  }
}
.section__header-column {
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
@media screen and (max-width: 767px) {
  .section__header-column {
    row-gap: 1rem;
  }
}
.section__header-row {
  display: flex;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  align-items: center;
}
@media screen and (max-width: 767px) {
  .section__header-row {
    flex-direction: column;
    row-gap: 0.25rem;
    align-items: flex-start;
  }
}
.section__header-en::before {
  content: "●";
  margin-right: 0.5em;
}
.section__header-title {
  position: relative;
}
.section__header-title--en {
  width: 100%;
}
.section__header-title {
  opacity: 0.1;
  line-height: 1;
}
.section__header--jp {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.section__header-border {
  position: relative;
}
.section__header-border::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  width: 100px;
  height: 3px;
  margin-top: 0.3rem;
  border-top: 3px solid #ef7d39;
}
.section__header-border--white::after {
  border-top: 5px solid white;
}
.section__title {
  display: flex;
  align-items: center;
}
.section__title::before {
  content: "●";
  margin-right: 0.5em;
  font-size: 0.6em;
  color: #ef7d39;
}
.section__button {
  max-width: 20rem;
  min-width: 18rem;
  width: 100%;
}

/* ==================================================
 _c-button.scss
 ボタンのスタイル定義
================================================== */
.button {
  position: relative;
  margin: 0 auto;
  font-weight: 700;
  padding-top: 1.2em;
  padding-bottom: 1.2em;
  padding-left: 2.5em;
  padding-right: 2.5em;
  max-width: 465px;
  width: 100%;
  border-radius: 100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: white;
  background-color: #ef7d39;
  transition: color 0.4s, background-color 0.4s, border 0.4s;
}
@media screen and (max-width: 767px) {
  .button {
    font-size: 1rem;
    width: 100%;
    height: auto;
    min-height: 44px;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2rem;
    padding-right: 2rem;
  }
}
.button::after {
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background-color: white;
  content: "";
  transition: transform 0.3s ease;
}
.button:hover {
  background-color: #57becc;
}
.button:hover::after {
  transform: scale(1.3);
}
.button__border {
  border: 2px solid white;
}
.button__line {
  background-color: #62d049 !important;
}
.button__yellow {
  background-color: #fff361;
  color: #443932;
}
.button__yellow::after {
  background-color: #443932;
}
.button__yellow:hover {
  background-color: #57becc;
  color: white;
}
.button__yellow:hover::after {
  background-color: white;
}
.button__label {
  position: absolute;
  width: 50%;
  top: -1rem;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 1rem;
  padding: 0.2rem 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  background-color: #57becc;
  color: #443932;
}
@media screen and (max-width: 767px) {
  .button__label {
    padding: 0.1rem 0.6rem;
    min-width: 200px;
  }
}

.buttonLine {
  color: #62d049;
  border: 2px solid #62d049;
}
.buttonLine::after {
  border-color: #62d049;
}
.buttonLine:hover {
  background-color: #62d049;
}

.icon-before-line::before {
  content: "";
  display: inline-block;
  width: 1.3em;
  height: 1.3em;
  background-image: url(../../images/line_icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.2em;
  vertical-align: middle;
  transition: all 0.4s;
}

.icon-before-tel::before {
  content: "";
  display: inline-block;
  width: 1.3em;
  height: 1.3em;
  background-image: url(../../images/tel-icon-whiter.png);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.2em;
  vertical-align: middle;
  transition: all 0.4s;
}

/* ==================================================
 _c-button.scss
 ボタンのスタイル定義
================================================== */
.buttonMain {
  position: relative;
  margin: 0 auto;
  font-weight: 700;
  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: 3em;
  padding-right: 3em;
  min-width: 320px;
  width: auto;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background-color: #57becc;
  box-shadow: 0 4px 0 #b99e0c;
  transition: all 0.4s;
  overflow: visible;
}
@media screen and (max-width: 1024px) {
  .buttonMain {
    font-size: 1rem;
    width: 100%;
    height: auto;
    min-height: 44px;
    padding-top: 1rem;
    padding-bottom: 1rem;
    padding-left: 2rem;
    padding-right: 2rem;
    min-width: auto;
  }
}
.buttonMain::after {
  transform: rotate(45deg);
  width: 0.6rem;
  height: 0.6rem;
  border-top: 3px solid #443932;
  border-right: 3px solid #443932;
  margin-left: 0.5rem;
  content: "";
}
.buttonMain:hover {
  transform: translateY(1px);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.18);
}
.buttonMain__big {
  width: 100%;
  position: relative;
  background-image: linear-gradient(120deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.55) 50%, rgba(255, 255, 255, 0) 100%);
  background-size: 220% 100%;
  background-repeat: no-repeat;
  animation: button-shine 2.8s ease-in-out infinite;
}
.buttonMain__border {
  border: 2px solid #ef7d39;
}
.buttonMain__line {
  background-color: #62d049 !important;
  box-shadow: 0 4px 0 #00461d !important;
  color: white !important;
}
.buttonMain__line:hover {
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.18) !important;
}
.buttonMain__line::after {
  border-top: 3px solid white;
  border-right: 3px solid white;
}
.buttonMain__line .buttonMain__label {
  border-color: #62d049;
}
.buttonMain__accent {
  background-color: #57becc !important;
}
.buttonMain__label {
  position: absolute;
  width: 80%;
  top: -1rem;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 1rem;
  padding: 0.2rem 0.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
  background-color: white;
  color: #443932;
  border: 3px solid #57becc;
}
@media screen and (max-width: 767px) {
  .buttonMain__label {
    padding: 0.1rem 0.6rem;
    min-width: 200px;
  }
}
@keyframes button-shine {
  0% {
    background-position: -140% 0;
  }
  50% {
    background-position: 140% 0;
  }
  100% {
    background-position: 140% 0;
  }
}

.icon-before-comment::before {
  content: "";
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  background-image: url(../../images/comment-icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.2em;
  vertical-align: middle;
  transition: all 0.4s;
}

.icon-before-mail::before {
  content: "";
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  background-image: url(../../images/mail-icon.png);
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 0.2em;
  vertical-align: middle;
  transition: all 0.4s;
}

/* ==================================================
 _c-button.scss
 ボタンのスタイル定義
================================================== */
.telButton {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.4s;
  z-index: 5;
}
.telButton::before {
  content: "";
  display: inline-block;
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  background-image: url(../../images/tel-icon.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.telButton:hover {
  opacity: 0.8;
}
.telButton__center {
  justify-content: center;
}

/* ==================================================
 _c-accessBlock.scss
 カードのスタイル定義
================================================== */
.accessBlock__wrap {
  display: flex;
  justify-content: space-between;
  -moz-column-gap: 5rem;
       column-gap: 5rem;
}
@media screen and (max-width: 1024px) {
  .accessBlock__wrap {
    flex-direction: column-reverse;
    row-gap: 2rem;
  }
}
.accessBlock__table {
  width: 55%;
}
@media screen and (max-width: 1024px) {
  .accessBlock__table {
    width: 100%;
  }
}
.accessBlock__table tr {
  padding: 1rem 0;
  display: flex;
  border-bottom: 0.5px solid #443932;
  width: 100%;
}
.accessBlock__table tr:first-child {
  padding: 0 0 1rem 0;
}
.accessBlock__table tr:last-child {
  border-bottom: none;
  padding: 1rem 0 0 0;
}
.accessBlock__table th {
  width: 32%;
}
.accessBlock__table td {
  width: 68%;
}
.accessBlock__img {
  width: 45%;
}
@media screen and (max-width: 1024px) {
  .accessBlock__img {
    width: 100%;
  }
}
.accessBlock__img img {
  border-radius: 1rem;
}
.accessBlock__sns {
  display: flex;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  align-items: flex-end;
  justify-content: flex-end;
}
.accessBlock__sns li {
  transition: 0.4s;
}
.accessBlock__sns li:hover {
  opacity: 0.8;
}

/* ==================================================
 _breadcrumb.scss
 パンくずリストのスタイル定義
================================================== */
.breadcrumb {
  background-color: #f8f2ee;
  padding: 1rem 0;
}
.breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  gap: 0.5em;
  padding: 0;
}
.breadcrumb__item {
  position: relative;
}
.breadcrumb__item::after {
  content: ">";
  margin: 0 0.5em;
  color: #aaa;
}
.breadcrumb__item:last-child::after {
  content: "";
  margin: 0;
}
.breadcrumb__item a {
  color: #ef7d39;
  text-decoration: none;
}
.breadcrumb__item a:hover {
  text-decoration: underline;
}

/* ==================================================
 _c-studioCard.scss
 カードのスタイル定義
================================================== */
.commonCard {
  position: relative;
  width: 100%;
  display: flex;
  justify-content: space-between;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
@media screen and (max-width: 1024px) {
  .commonCard {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .commonCard {
    flex-direction: column;
    row-gap: 1rem;
  }
}
.commonCard__txt {
  width: 55%;
  display: flex;
  flex-direction: column;
  row-gap: 1.5rem;
}
@media screen and (max-width: 1024px) {
  .commonCard__txt {
    width: 100%;
    row-gap: 1rem;
  }
}
.commonCard__bunner {
  width: 50%;
}
@media screen and (max-width: 1024px) {
  .commonCard__bunner {
    width: 100%;
  }
}
.commonCard__img {
  width: 45%;
}
@media screen and (max-width: 1024px) {
  .commonCard__img {
    width: 100%;
  }
}
.commonCard__img img {
  border-radius: 1rem;
}

/* ==================================================
 _c-studioCard.scss
 カードのスタイル定義
================================================== */
.commonTextCard {
  position: relative;
  display: flex;
  flex-direction: column;
  row-gap: 2rem;
}
.commonTextCard__wrap {
  width: 100%;
  display: flex;
  justify-content: space-between;
  -moz-column-gap: 3rem;
       column-gap: 3rem;
}
@media screen and (max-width: 1024px) {
  .commonTextCard__wrap {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }
}
@media screen and (max-width: 767px) {
  .commonTextCard__wrap {
    flex-direction: column;
    row-gap: 1rem;
  }
}
.commonTextCard__header {
  width: 45%;
  display: flex;
  flex-direction: column;
  row-gap: 1rem;
}
@media screen and (max-width: 1024px) {
  .commonTextCard__header {
    width: 100%;
    row-gap: 1rem;
  }
}
.commonTextCard__txt {
  width: 55%;
}
@media screen and (max-width: 1024px) {
  .commonTextCard__txt {
    width: 100%;
  }
}
.commonTextCard__bunner {
  width: 100%;
  border-radius: 10px;
}

/* ==================================================
 _c-studioCard.scss
 カードのスタイル定義
================================================== */
.pagination {
  text-align: center;
  margin: 2em 0;
}
.pagination ul {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.5em;
  padding: 0;
  list-style: none;
}
.pagination li a,
.pagination li span {
  display: inline-block;
  padding: 0.5em 0.9em;
  border: 1px solid #ccc;
  color: #333;
  text-decoration: none;
  font-weight: 500;
  border-radius: 4px;
  transition: all 0.2s ease-in-out;
}
.pagination li a:hover,
.pagination li span:hover {
  background-color: #333;
  color: #fff;
  border-color: #333;
}
.pagination li .current {
  background-color: #000;
  color: #fff;
  pointer-events: none;
}

/* ==================================================
 _c-nextpostButton.scss
 カードのスタイル定義
================================================== */
.nextpostButton {
  width: 80%;
  display: flex;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 2rem auto;
}
@media screen and (max-width: 1024px) {
  .nextpostButton {
    width: 80%;
  }
}
@media screen and (max-width: 767px) {
  .nextpostButton {
    width: 90%;
  }
}
.nextpostButton li {
  width: 100%;
  text-align: center;
}
.nextpostButton a {
  text-align: center;
  display: inline-block;
  width: 100%;
  height: 100%;
  padding: 1rem 0;
  font-size: 1.2rem;
  font-weight: 600;
  color: #443932;
  background-color: white;
  border: 1px solid #443932;
  border-radius: 5px;
  text-decoration: none;
  transition: background-color 0.3s ease-in-out;
  position: relative;
}
.nextpostButton a:hover {
  background-color: #443932;
  color: white;
}
.nextpostButton__next::after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px;
  border-right: solid 2px;
  border-color: #443932;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  left: 90%;
  bottom: 0;
  margin: auto;
}
.nextpostButton__next:hover::after {
  border-color: white;
}
.nextpostButton__prev::after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-bottom: solid 2px;
  border-left: solid 2px;
  border-color: #443932;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 90%;
  bottom: 0;
  margin: auto;
}
.nextpostButton__prev:hover::after {
  border-color: white;
}

/* ==================================================
 _c-sns.scss
 SNSアイコンのスタイル定義
================================================== */
.sns__icon {
  height: 100%;
  width: auto;
  background-size: contain;
  background-repeat: no-repeat;
  aspect-ratio: 1/1;
  display: block;
}
.sns__icon-x {
  background-image: url("../../images/icon-x.svg");
}
.sns__icon-fb {
  background-image: url("../../images/icon-fb.svg");
}
.sns__icon-ig {
  background-image: url("../../images/icon-ig.svg");
}
.sns__icon-ig-black {
  background-image: url("../../images/icon-ig-black.svg");
}
.sns__icon-line {
  background-image: url("../../images/icon-line.svg");
}
.sns__icon-line-black {
  background-image: url("../../images/icon-line-black.svg");
}
.sns__icon-small {
  width: 1rem;
  height: 1rem;
}
.sns__icon-regular {
  width: 1.5rem;
  height: 1.5rem;
}
@media screen and (max-width: 767px) {
  .sns__icon-regular {
    width: 1rem;
    height: 1rem;
  }
}
.sns__icon-medium {
  width: 2rem;
  height: 2rem;
}
@media screen and (max-width: 767px) {
  .sns__icon-medium {
    width: 1.5rem;
    height: 1.5rem;
  }
}

/* ==================================================
 _c-accessBlock.scss
 カードのスタイル定義
================================================== */
.newsList__container {
  width: min(100% - 2rem, 1100px);
  margin: 0 auto;
}
.newsList__wrap {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2.5rem;
  align-items: center;
  padding: 2rem 2.5rem;
  background-color: white;
  border-radius: 1rem;
}
.newsList__header {
  padding-right: 2rem;
  border-right: 1px solid #a1a1a1;
}
.newsList__body {
  min-width: 0;
}
.newsList__list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.newsList__item a {
  display: grid;
  grid-template-columns: 110px 90px minmax(0, 1fr) 20px;
  align-items: center;
  -moz-column-gap: 1rem;
       column-gap: 1rem;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s ease;
}
.newsList__item a:hover {
  opacity: 0.7;
}
.newsList__item time {
  color: #a1a1a1;
  font-size: 0.95rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.newsList__item a > span:last-child {
  min-width: 0;
  overflow: hidden;
  color: #443932;
  font-size: 1.1rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.newsList__item a::after {
  content: "";
  justify-self: end;
  width: 0.55rem;
  height: 0.55rem;
  border-top: 2px solid #443932;
  border-right: 2px solid #443932;
  transform: rotate(45deg);
}
.newsList__item-category {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.25rem 0.9rem;
  border-radius: 999px;
  background-color: #57becc;
  color: white;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.newsList__more {
  margin-top: 1rem;
  text-align: right;
}
.newsList__more-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  transition: opacity 0.3s ease;
}
.newsList__more-link::after {
  content: "";
  width: 1.6rem;
  height: 0.55rem;
  border-top: 1px solid #333;
  border-right: 1px solid #333;
  transform: skewX(45deg);
}
.newsList__more-link:hover {
  opacity: 0.7;
}

@media screen and (max-width: 1024px) {
  .newsList__wrap {
    grid-template-columns: 180px 1fr;
    gap: 1.75rem;
  }
  .newsList__header {
    padding-right: 1.5rem;
  }
  .newsList__item a {
    grid-template-columns: 95px 80px minmax(0, 1fr) 16px;
    -moz-column-gap: 0.75rem;
         column-gap: 0.75rem;
  }
  .newsList__item time {
    font-size: 0.85rem;
  }
  .newsList__item a > span:last-child {
    font-size: 1rem;
  }
  .newsList__item-category {
    padding: 0.2rem 0.7rem;
    font-size: 0.75rem;
  }
}
@media screen and (max-width: 767px) {
  .newsList__header {
    display: flex;
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
    align-items: baseline;
  }
  .newsList__wrap {
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 1.25rem;
    border-radius: 1rem;
  }
  .newsList__header {
    padding-right: 0;
    padding-bottom: 0.5rem;
    border-right: none;
    border-bottom: 1px solid #a1a1a1;
    text-align: left;
  }
  .newsList__list {
    gap: 1rem;
  }
  .newsList__item a {
    grid-template-columns: auto 1fr 16px;
    grid-template-areas: "date date arrow" "category title arrow";
    row-gap: 0.5rem;
    -moz-column-gap: 0.6rem;
         column-gap: 0.6rem;
    align-items: center;
  }
  .newsList__item a::after {
    grid-area: arrow;
    display: block;
    align-self: center;
  }
  .newsList__item time {
    grid-area: date;
    font-size: 0.85rem;
  }
  .newsList__item-category {
    grid-area: category;
  }
  .newsList__item a > span:last-child {
    grid-area: title;
    min-width: 0;
    white-space: normal;
    text-overflow: clip;
    overflow: visible;
    font-size: 1rem;
  }
  .newsList__item-category {
    width: -moz-fit-content;
    width: fit-content;
  }
  .newsList__more {
    margin-top: 0.75rem;
  }
  .newsList__more-link {
    font-size: 0.95rem;
  }
}
/* ==================================================
 _c-cardSwiper.scss
 カード型Swiper共通
================================================== */
.c-cardSwiper {
  position: relative;
}
.c-cardSwiper .swiper-wrapper {
  align-items: stretch;
}
.c-cardSwiper .swiper-slide {
  height: auto;
}
.c-cardSwiper__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.4rem;
}
.c-cardSwiper__button {
  position: static;
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 0;
  border-radius: 50%;
  background-color: #ef7d39;
  color: white;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.c-cardSwiper__button::before {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
}
.c-cardSwiper__button:disabled, .c-cardSwiper__button.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
}
.c-cardSwiper__button--prev::before {
  transform: rotate(-135deg) translate(-1px, -1px);
}
.c-cardSwiper__button--next::before {
  transform: rotate(45deg) translate(-1px, 1px);
}
.c-cardSwiper__pagination {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.38rem;
  width: auto !important;
}
.c-cardSwiper__pagination .swiper-pagination-bullet {
  width: 0.45rem;
  height: 0.45rem;
  margin: 0 !important;
  background-color: rgba(239, 125, 57, 0.28);
  opacity: 1;
}
.c-cardSwiper__pagination .swiper-pagination-bullet-active {
  background-color: #ef7d39;
}
.c-cardSwiper--bleedRight .c-cardSwiper__nav {
  width: 100vw;
  margin-left: calc(100% - 100vw);
}

/*
@use "component/table";
@use "component/link";
@use "component/description";
@use "component/card";
@use "component/blog-card";
*//*# sourceMappingURL=style.css.map */
/* Preserve CTA text color on lower pages */
.single .fixedContact__item,
.page .fixedContact__item,
.single .fixedContact__item:hover,
.page .fixedContact__item:hover,
.single .sideCta__item,
.page .sideCta__item,
.single .sideCta__item:hover,
.page .sideCta__item:hover,
.single .footerNav__button,
.page .footerNav__button,
.single .footerNav__button:hover,
.page .footerNav__button:hover {
  color: #fff !important;
  text-decoration: none !important;
}
/* Contact Form 7 native choice controls */
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item label::before,
.wpcf7-form .wpcf7-checkbox .wpcf7-list-item label::after,
.wpcf7-form .wpcf7-radio .wpcf7-list-item label::before,
.wpcf7-form .wpcf7-radio .wpcf7-list-item label::after {
  content: none !important;
  display: none !important;
}

.wpcf7-form .wpcf7-checkbox input[type="checkbox"],
.wpcf7-form .wpcf7-radio input[type="radio"] {
  position: static !important;
  opacity: 1 !important;
  visibility: visible !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: 1em !important;
  min-width: 1em !important;
  height: 1em !important;
  min-height: 1em !important;
  margin: 0 0.5em 0 0 !important;
  padding: 0 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  accent-color: #ef7d39;
  appearance: auto !important;
  -webkit-appearance: auto !important;
  -moz-appearance: auto !important;
  background: initial !important;
  border: initial !important;
}

.wpcf7-form .wpcf7-checkbox .wpcf7-list-item label,
.wpcf7-form .wpcf7-radio .wpcf7-list-item label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;
  padding-left: 0 !important;
}
/* Lower page responsive media overflow fixes */
.page img,
.single img,
.page iframe,
.single iframe,
.page embed,
.single embed,
.page object,
.single object,
.page video,
.single video {
  max-width: 100%;
  box-sizing: border-box;
}

.page img,
.single img {
  height: auto;
}

@media screen and (max-width: 767px) {
  .page,
  .single {
    overflow-x: hidden;
  }

  .page #content,
  .page #content-inner,
  .page #content-frame,
  .page #work-frame,
  .page #sub-cont,
  .page #alpha,
  .page #alpha-inner,
  .page #event-frame,
  .page #apply-frame,
  .page #plan-frame,
  .single #content,
  .single #content-inner,
  .single #content-frame,
  .single #work-frame,
  .single #sub-cont,
  .single #alpha,
  .single #alpha-inner,
  .single #event-frame,
  .single #apply-frame,
  .single #plan-frame {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
  }

  .page .entry-content,
  .page .page-content,
  .single .entry-content,
  .single .page-content,
  .page .post_content,
  .single .post_content {
    max-width: 100%;
    overflow-wrap: anywhere;
    box-sizing: border-box;
  }

  .page img,
  .single img,
  .page iframe,
  .single iframe,
  .page embed,
  .single embed,
  .page object,
  .single object,
  .page video,
  .single video {
    max-width: 100% !important;
  }

  .page img,
  .single img {
    height: auto !important;
  }

  .page iframe,
  .single iframe,
  .page embed,
  .single embed,
  .page object,
  .single object,
  .page video,
  .single video {
    width: 100% !important;
  }

  .page table,
  .single table {
    max-width: 100% !important;
  }

  .page figure,
  .single figure,
  .page p,
  .single p {
    max-width: 100%;
  }

  .page [style*="width"],
  .single [style*="width"] {
    max-width: 100% !important;
    box-sizing: border-box;
  }

  #apply-otoku {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 20px 14px !important;
    background-size: 100% auto !important;
    background-position: center top !important;
    box-sizing: border-box;
    overflow: hidden;
  }

  #otoku-line,
  .otoku-cara {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  .otoku-line {
    padding: 10px 0 !important;
    font-size: clamp(1.35rem, 4.5vw, 1.65rem) !important;
    line-height: 1.65 !important;
    overflow-wrap: anywhere;
  }

  .otoku-cara img,
  #apply-botan img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}
/* lineup2 mobile card stacking */
@media screen and (max-width: 767px) {
  body.post-type-archive-lineup2 #content-frame,
  body.tax-plan_cate #content-frame,
  body.single-lineup2 #content-frame {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: visible !important;
    box-sizing: border-box;
  }

  body.post-type-archive-lineup2 .plan-boxwaku,
  body.tax-plan_cate .plan-boxwaku,
  body.single-lineup2 .plan-boxwaku {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 18px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
  }

  body.post-type-archive-lineup2 .plan-box,
  body.tax-plan_cate .plan-box,
  body.single-lineup2 .plan-box {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    float: none !important;
    box-sizing: border-box;
  }

  body.post-type-archive-lineup2 .plan-box a,
  body.tax-plan_cate .plan-box a,
  body.single-lineup2 .plan-box a {
    display: block !important;
    width: 100% !important;
  }

  body.post-type-archive-lineup2 .plan-box img,
  body.tax-plan_cate .plan-box img,
  body.single-lineup2 .plan-box img,
  body.post-type-archive-lineup2 #content-frame > div > img,
  body.tax-plan_cate #content-frame > div > img,
  body.single-lineup2 #content-frame > div > img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.post-type-archive-lineup2 .plan-tt-best,
  body.post-type-archive-lineup2 .midashi-2ldk2,
  body.post-type-archive-lineup2 .midashi-3ldk2,
  body.post-type-archive-lineup2 .midashi-4ldk2,
  body.post-type-archive-lineup2 .midashi-5ldk2,
  body.tax-plan_cate .plan-tt-best,
  body.tax-plan_cate .midashi-2ldk2,
  body.tax-plan_cate .midashi-3ldk2,
  body.tax-plan_cate .midashi-4ldk2,
  body.tax-plan_cate .midashi-5ldk2 {
    width: 100% !important;
    min-height: 0 !important;
    box-sizing: border-box;
    overflow-wrap: anywhere;
  }
}

/* single-voice mobile title layout fix */
@media screen and (max-width: 767px) {
  body.single-voice .voice-title {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 14px 16px !important;
    font-size: clamp(2rem, 7vw, 2.8rem) !important;
    line-height: 1.25 !important;
    box-sizing: border-box;
  }

  body.single-voice #work-frame,
  body.single-voice #sub-cont {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
    box-sizing: border-box;
  }

  body.single-voice .works-s-title {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 0 20px !important;
    padding: 16px !important;
    background-image: none !important;
    background-color: #f77732 !important;
    border-radius: 6px;
    box-sizing: border-box;
    overflow: visible !important;
  }

  body.single-voice .works-s-t {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: clamp(1.7rem, 6vw, 2.3rem) !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere;
    word-break: normal;
    box-sizing: border-box;
  }

  body.single-voice .voice-d-img {
    width: 100% !important;
    padding: 8px !important;
    margin-top: 16px !important;
    margin-bottom: 18px !important;
    box-sizing: border-box;
  }

  body.single-voice .voice-d-img img {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
  }

  body.single-voice .voice-f,
  body.single-voice .voice-a {
    width: 100% !important;
    padding: 14px !important;
    font-size: 1.4rem !important;
    line-height: 1.8 !important;
    box-sizing: border-box;
    overflow-wrap: anywhere;
  }
}