@charset "UTF-8";
:root {
  /* 固定ナビの高さ（必要に応じて調整） */
  --nav-h:80px;
}

/* アンカーリンクでのずれ防止（#features 等） */
html {
  scroll-padding-top: var(--nav-h);
}

.BBB {
  border: 6px solid #91a0de;
}

.concept-section {
  width: 99.95%;
  overflow: hidden;
}

@media (min-width: 768px) {
  .concept-section {
    aspect-ratio: 1327/514;
  }
}
.concept-text {
  width: 40%;
  min-width: 420px;
  position: sticky;
  top: 0;
  height: 100vh;
}

.object-fit-cover {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.swiper-button-next,
.swiper-button-prev {
  color: #fff;
  opacity: 0.6;
  transition: opacity 0.3s;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
  opacity: 1;
}

.concept-slider {
  width: 100%;
  height: 100%;
}

/* STORIESスライダーのスキマ対策 */
.concept-visual {
  overflow: hidden;
}

.concept-slider .swiper-wrapper {
  height: 100%;
}

/* Swiperのサブピクセル誤差で画像間に1pxラインが出るため、
   スライドをわざと103%に拡大してはみ出しをoverflow:hiddenでカットするハック */
.concept-slider .swiper-slide {
  width: 103%;
  height: 103%;
  overflow: hidden;
}

.concept-slider .swiper-slide img,
.concept-slider .swiper-slide picture {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.grade-black {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.05) 90%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-black-reverse {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.05) 90%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-gray {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(63, 58, 58) 0%, rgba(63, 0, 58, 0.5) 50%, rgba(63, 58, 58, 0.05) 90%, rgba(63, 58, 58, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-gray-reverse {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(63, 58, 58) 0%, rgba(63, 0, 58, 0.5) 50%, rgba(63, 58, 58, 0.05) 90%, rgba(63, 58, 58, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-red {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(220, 0, 0) 0%, rgba(220, 0, 0, 0.5) 50%, rgba(220, 0, 0, 0.05) 90%, rgba(220, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-red-reverse {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(220, 0, 0) 0%, rgba(220, 0, 0, 0.5) 50%, rgba(220, 0, 0, 0.05) 90%, rgba(220, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-deep-red {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(205, 0, 0) 0%, rgba(205, 0, 0, 0.5) 50%, rgba(205, 0, 0, 0.05) 90%, rgba(205, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-deep-red-reverse {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(205, 0, 0) 0%, rgba(205, 0, 0, 0.5) 50%, rgba(205, 0, 0, 0.05) 90%, rgba(205, 0, 0, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-light-gray {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(245, 245, 245) 0%, rgba(245, 245, 245, 0.5) 50%, rgba(245, 245, 245, 0.05) 90%, rgba(245, 245, 245, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-light-gray-reverse {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(245, 245, 245) 0%, rgba(245, 245, 245, 0.5) 50%, rgba(245, 245, 245, 0.05) 90%, rgba(245, 245, 245, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-white {
  position: absolute;
  top: 0;
  right: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to left, rgb(255, 255, 255) 0%, rgba(220, 255, 255, 0.5) 50%, rgba(220, 255, 255, 0.05) 90%, rgba(220, 255, 255, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-white-reverse {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0.8) 30%, rgba(220, 255, 255, 0.5) 60%, rgba(220, 255, 255, 0.05) 90%, rgba(220, 255, 255, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

.grade-light_muted-reverse {
  position: absolute;
  top: 0;
  left: 0;
  width: 30%;
  height: 100%;
  background: linear-gradient(to right, rgb(250, 250, 250) 0%, rgba(250, 250, 250, 0.8) 30%, rgba(250, 250, 250, 0.5) 60%, rgba(250, 250, 250, 0.05) 90%, rgba(250, 250, 250, 0) 100%);
  pointer-events: none;
  z-index: 5;
}

/* swiper上書き */
.swiper-button-next,
.swiper-button-prev {
  top: 0 !important;
  margin-top: 15px !important;
  transform: none !important;
}

@media (max-width: 767px) {
  .swiper-button-next,
  .swiper-button-prev {
    top: auto !important;
    bottom: 40% !important;
  }
}
/*reason*/
.reasons-section {
  font-family: "Noto Sans JP", sans-serif;
  overflow: hidden;
}

/* Header */
.reason-header {
  background: url("../img/header_bg.jpg") center/cover no-repeat;
  height: 38vh;
  min-height: 250px;
  position: relative;
}

@media (max-width: 767px) {
  .reason-header {
    height: 13vh !important;
    min-height: 80px;
  }
}
.reason-header .overlay {
  background: rgba(0, 0, 0, 0.4);
  height: 100%;
}

.reason-header .jp {
  font-size: 1.2rem;
  letter-spacing: 0.05em;
}

.reason-header .en {
  font-size: 2.4rem;
}

.reason-header .en-sub {
  font-size: 0.9rem;
  opacity: 0.9;
}

/* Common block */
.reason-block {
  height: 35vh;
  display: flex;
}

.reason-text {
  flex: 1;
  text-align: center;
}

.reason-num {
  font-family: "Poppins", sans-serif;
  font-style: italic;
  font-weight: 500;
  letter-spacing: 0.25em !important;
  opacity: 0.3;
}

.bg-deep-red {
  background-color: #cd0000;
}

.bg-red {
  background-color: #dc0000;
}

.bg-light_red {
  background-color: #f00000;
}

.text-light_red {
  color: #f00000;
}

.bg-dark {
  background-color: #2d2d2d;
}

.bg-gray {
  background-color: #3f3a3a;
}

.bg-deep_gray {
  background-color: #2f2f2f;
}

.bg-light_gray {
  background-color: #f5f5f5;
}

.bg-light_muted {
  background-color: #fafafa;
}

/* Images */
.bg-awards {
  background: url("../img/awards.jpg") center/cover no-repeat;
}

.bg-room {
  background: url("../img/room.jpg") center/cover no-repeat;
}

/* Responsive */
@media (max-width: 767px) {
  .reason-block {
    height: auto;
  }
  .reason-text {
    padding: 3rem 1rem;
  }
}
@media (max-width: 767px) {
  #nav.navbar {
    height: auto !important;
    min-height: 70px !important; /* navは最低70px。collapseで伸びる */
    padding-left: 1rem;
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
  }
  #nav.navbar ul {
    padding-top: 4rem;
    padding-bottom: 2rem;
  }
  #nav.navbar li {
    font-size: 1.2rem;
    text-align: center;
  }
  .navbar-brand {
    height: 50px !important; /* ロゴエリアを確保（絶対縮まない） */
  }
  .navbar-brand img {
    height: 100% !important; /* brand が 70px → ロゴも70px */
    width: auto;
    -o-object-fit: contain;
       object-fit: contain;
  }
}
/* PCだけ：HTML背景画像を背面に敷く（.hero の背景指定と同じ挙動にする） */
.hero-bg-pc {
  position: absolute;
  inset: 0;
  z-index: 0; /* 背景 */
  display: none; /* デフォルトは隠す（SPで表示しない） */
  pointer-events: none;
}
.hero-bg-pc img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; /* background-size: cover 相当 */
  -o-object-position: right center;
     object-position: right center; /* .hero の background-position と同じ */
  display: block;
}

/* PCでだけ表示 */
@media (min-width: 768px) {
  .hero-bg-pc {
    display: block;
  }
}
/* 既存の重なり順を活かす（あなたのコードだとこれでOK）
   ::before が z-index:1、hero > * が z-index:2 なので
   picture(z:0) → グラデ(z:1) → テキスト(z:2) の順になる */
.hero {
  z-index: 99999;
  /* フォールバック（image-set非対応や不具合時） */
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  min-height: calc(var(--real-vh, 100svh) - var(--nav-h));
  margin-top: var(--nav-h);
  position: relative;
  color: #fff;
  overflow: hidden;
}

@media (max-width: 767px) {
  .hero {
    /* フォールバック（image-set非対応や不具合時） */
    background-image: url("../img/sp/1x/hero_bg_sp@1x.jpg");
    /* DEBUG: ?debughero=1 が付いたときだけ SPヒーロー背景を1枚固定にする */
    /* iOS Safari 対策 */
    background-image: -webkit-image-set(url("../img/sp/1x/hero_bg_sp@1x.webp") 1x, url("../img/sp/2x/hero_bg_sp@2x.webp") 2x, url("../img/sp/3x/hero_bg_sp@3x.webp") 3x, url("../img/sp/1x/hero_bg_sp@1x.jpg") 1x, url("../img/sp/2x/hero_bg_sp@2x.jpg") 2x, url("../img/sp/3x/hero_bg_sp@3x.jpg") 3x);
    /* 標準 */
    background-image: image-set(url("../img/sp/1x/hero_bg_sp@1x.webp") 1x, url("../img/sp/2x/hero_bg_sp@2x.webp") 2x, url("../img/sp/3x/hero_bg_sp@3x.webp") 3x, url("../img/sp/1x/hero_bg_sp@1x.jpg") 1x, url("../img/sp/2x/hero_bg_sp@2x.jpg") 2x, url("../img/sp/3x/hero_bg_sp@3x.jpg") 3x);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    /* 高さ保険 */
    min-height: calc(var(--real-vh, 100svh) - var(--nav-h));
    height: auto;
    margin-top: var(--nav-h);
  }
}
/* 左から黒グラデーションを乗算で重ねる */
.hero::before {
  content: "";
  position: absolute;
  inset: 0; /* top, right, bottom, left全部0 */
  background: linear-gradient(to right, rgb(0, 0, 0) 0%, rgba(0, 0, 0, 0.05) 60%, rgba(0, 0, 0, 0) 100%);
  mix-blend-mode: multiply; /* ← 乗算 */
  z-index: 1;
  pointer-events: none;
}

@media (max-width: 767px) {
  .hero::before {
    background: rgba(0, 0, 0, 0);
  }
}
.hero > *:not(.hero-bg-pc) {
  position: relative;
  z-index: 2;
}

@media (max-width: 1024px) {
  .hero {
    background-position: 80% center;
  }
}
/* オーバーレイ（暗くしたい場合） */
.hero .inner {
  position: relative;
  z-index: 2;
  padding: 3rem 1rem;
}

/*//////////////////////////*/
.contact-banner {
  transition: all 0.3s ease;
}
.contact-banner:hover {
  opacity: 0.7;
}

@media (max-width: 767px) {
  .contact-banner .arrow-icon {
    transform: rotate(90deg);
  }
}
/*//////////////future_area専用////////////*/
/* SP（〜767px） iphone 11 */
@media (max-width: 767px) {
  .ratio-custom-height {
    min-height: 440px;
  }
}
/* iPhone X or SE(2/3) など 375px 以下 */
@media (max-width: 375px) {
  .ratio-custom-height {
    min-height: 420px; /* ←好みで調整 */
  }
}
/* iPhone SE(1) など 320px 以下 */
@media (max-width: 320px) {
  .ratio-custom-height {
    min-height: 370px; /* ←好みで調整 */
  }
}
/* md（768〜991px） */
@media (min-width: 768px) and (max-width: 991px) {
  .ratio-custom-height {
    min-height: 500px;
  }
}
/* lg（992〜1199px） */
@media (min-width: 992px) and (max-width: 1199px) {
  .ratio-custom-height {
    min-height: 540px;
  }
}
/* xl（1200〜1399px） */
@media (min-width: 1200px) {
  .ratio-custom-height {
    min-height: 580px;
  }
}
/* xxl（1400px〜） */
/*///////////句読点詰め///////////////*/
.kuten-fix {
  display: inline-block;
  margin-right: -0.45em;
}

/* 全体に句読点詰め（palt）適用 */
body {
  font-feature-settings: "palt";
}

:not(.en) {
  letter-spacing: 0.05em;
  line-height: 1.6em;
}

/*///////////future point aspect///////////////*/
/* SP（〜767px）だけ 375:215 の比率を適用 */
@media (max-width: 767px) {
  .ratio-sp-375-215 {
    aspect-ratio: 375/215;
    width: 100%;
  }
}
.kv-bg-light {
  background: #fafafa;
}

.kv-left {
  position: relative;
  background: #fafafa;
  isolation: isolate;
}
.kv-left > * {
  position: relative;
  z-index: 1;
}
.kv-left::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #eef0f3;
  transform: skewX(-15deg);
  transform-origin: top right;
  z-index: 0;
}

.kv-left-with-photo {
  position: relative;
  background: #fafafa;
  overflow: hidden;
  isolation: isolate;
  /* ▼ grayバージョン：after をグレーに */
  /* ▼ SP（〜767px）まとめ：赤帯を消し、比率固定 */
}
.kv-left-with-photo > * {
  position: relative;
  z-index: 1;
}
.kv-left-with-photo::after {
  content: "";
  position: absolute;
  width: 40%;
  top: 0;
  left: 100%;
  right: 0;
  bottom: 0;
  background: #dc0000;
  transform: skewX(-15deg);
  transform-origin: top right;
  z-index: 0;
}
.kv-left-with-photo.gray::after {
  background: #2f2f2f;
}
@media (max-width: 767px) {
  .kv-left-with-photo {
    aspect-ratio: 375/215;
    width: 100%;
    height: auto;
  }
  .kv-left-with-photo::after {
    display: none !important;
  }
}

.kv-right-with-photo {
  position: relative;
  background: #fafafa;
  overflow: hidden;
  isolation: isolate;
  /* ▼ SP（〜767px）まとめ：赤帯を消し、比率固定 */
}
.kv-right-with-photo > * {
  position: relative;
  z-index: 1;
}
.kv-right-with-photo::after {
  content: "";
  position: absolute;
  width: 40%;
  top: 0;
  right: 100%;
  bottom: 0;
  background: #f5f5f5;
  transform: skewX(-15deg);
  transform-origin: bottom left;
  z-index: 0;
}
@media (max-width: 767px) {
  .kv-right-with-photo {
    aspect-ratio: 375/215;
    width: 100%;
    height: auto;
  }
  .kv-right-with-photo::after {
    display: none !important;
  }
}

.kv-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center top;
     object-position: center top;
  z-index: 0;
  mix-blend-mode: multiply;
}

.kv-bg_sp {
  position: absolute;
  top: 0;
  width: 100%;
  height: auto;
  z-index: 0;
  mix-blend-mode: multiply;
}

.kv-right {
  position: relative;
  background: #dc0000;
  overflow: hidden;
  height: 100%;
  isolation: isolate;
}
.kv-right > * {
  position: relative;
  z-index: 1;
}
.kv-right::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 30%;
  left: -30%;
  background: #fafafa;
  transform: skewX(-15deg);
  transform-origin: bottom left;
  z-index: 1;
}

@media (max-width: 991.98px) {
  .kv-left::after,
  .kv-right::after {
    transform: none;
    width: 100%;
  }
  /* SP時は赤背景と背景画像を全面に */
  .kv-right {
    background: #dc0000 !important;
  }
  .kv-right::after {
    display: none !important;
  }
  .kv-bg {
    width: 100% !important;
    height: 100% !important;
    inset: 0 !important;
    -o-object-fit: cover !important;
       object-fit: cover !important;
    -o-object-position: center top !important;
       object-position: center top !important;
  }
}
/* debug: diagonal line */
.box {
  position: relative;
  width: auto;
  height: 120px;
  background: transparent;
}

.slash {
  height: 100%;
  position: relative;
}

.slash::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) rotate(15deg);
  transform-origin: top center;
  width: 1px;
  height: 100%;
  background: #000;
  z-index: 2;
  pointer-events: none;
}

/* for future min-h-md */
@media (min-width: 768px) {
  .min-h-md {
    min-height: 470px;
    height: 470px;
  }
}
#mw_wp_form_mw-wp-form-4654 .mwform-radio-field {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  position: relative;
  top: 2px;
}

/* 建築予定地：ラベル文字を fw-300 text-black-75 相当に */
#mw_wp_form_mw-wp-form-4654 .mwform-radio-field-text {
  font-weight: 300;
  color: #4d4d4d;
  font-size: inherit;
  line-height: 1;
  /* 数値は微調整 */
  display: inline-block; /* ←ここが重要 */
  transform: translateY(-0.15em); /* マイナスで上に移動。数値は微調整 */
}

@media (min-width: 768px) {
  #mw_wp_form_mw-wp-form-4654 .form-check-input {
    margin-top: 0.1em !important;
  }
}
#mw_wp_form_mw-wp-form-4654 .form-check-input {
  margin-top: 0;
}

/* LP の MWフォーム(ID:4619) 送信ボタン */
#mw_wp_form_mw-wp-form-4654 input[type=submit] {
  background-color: #cd0000;
  color: #fff;
  border-radius: 0;
  font-weight: 700;
  padding: 1rem 3rem; /* = py-4 px-5 相当 */
  max-width: 400px;
  width: 100%;
  cursor: pointer !important;
}

/* テキスト中央寄せ（親の .text-center は効いているはず）*/
#mw_wp_form_mw-wp-form-4654 .text-center {
  text-align: center;
}

/* 郵便番号の placeholder を小さく・細く */
#mw_wp_form_mw-wp-form-4654 input[name=zipcode]::-moz-placeholder {
  font-size: 20px !important;
  font-weight: 300 !important;
  color: #999;
}
#mw_wp_form_mw-wp-form-4654 input[name=zipcode]::placeholder {
  font-size: 20px !important;
  font-weight: 300 !important;
  color: #999;
}

/* Safari など古いブラウザ向け（念のため） */
#mw_wp_form_mw-wp-form-4654 input[name=zipcode]::-webkit-input-placeholder {
  font-size: 20px !important;
  font-weight: 300 !important;
  color: #999;
}

/* お問い合わせ内容テキストエリアの placeholder を小さく・細く */
#mw_wp_form_mw-wp-form-4654 textarea[name=message]::-moz-placeholder {
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #999;
}
#mw_wp_form_mw-wp-form-4654 textarea[name=message]::placeholder {
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #999;
}

/* Safari / 古いブラウザ用（念のため） */
#mw_wp_form_mw-wp-form-4654 textarea[name=message]::-webkit-input-placeholder {
  font-size: 16px !important;
  font-weight: 300 !important;
  color: #999;
}

/*//////////*/
/*//////////*/
/* ラベル側は元のまま、値だけ大きくしたい場合（PC基準） */
#mw_wp_form_mw-wp-form-4654.mw_wp_form_confirm .input-group {
  align-items: center;
}

#mw_wp_form_mw-wp-form-4654.mw_wp_form_confirm .input-group > span:not(.input-group-text) {
  font-size: 22px !important;
  font-weight: 300;
}

/* SP（〜767px）は少し小さく */
@media (max-width: 767px) {
  #mw_wp_form_mw-wp-form-4654.mw_wp_form_confirm .input-group > span:not(.input-group-text) {
    font-size: 15px !important;
  }
  /* 郵便番号の placeholder を小さく・細く */
  #mw_wp_form_mw-wp-form-4654 input[name=zipcode]::-moz-placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
  #mw_wp_form_mw-wp-form-4654 input[name=zipcode]::placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
  /* Safari など古いブラウザ向け（念のため） */
  #mw_wp_form_mw-wp-form-4654 input[name=zipcode]::-webkit-input-placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
  /* お問い合わせ内容テキストエリアの placeholder を小さく・細く */
  #mw_wp_form_mw-wp-form-4654 textarea[name=message]::-moz-placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
  #mw_wp_form_mw-wp-form-4654 textarea[name=message]::placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
  /* Safari / 古いブラウザ用（念のため） */
  #mw_wp_form_mw-wp-form-4654 textarea[name=message]::-webkit-input-placeholder {
    font-size: 12px !important;
    font-weight: 300 !important;
    color: #999;
  }
}
/*//////////*/
/*//////////*/
/* 施工エリアモーダルのフッターの線を消す */
#serviceAreaModal .modal-footer {
  border-top: none !important;
}

/* =====================================
   COMPILE CHECK
   If lp/dist/style.css looks uncompiled, search for "--lp-dist-compiled".
   ===================================== */
:root {
  --lp-dist-compiled: "2025-12-23";
}

.ms-n1 {
  margin-left: -0.25rem !important;
}

.ms-n2 {
  margin-left: -0.5rem !important;
}

.ms-n3 {
  margin-left: -1rem !important;
}

.ms-n4 {
  margin-left: -1.5rem !important;
}

.ms-n5 {
  margin-left: -3rem !important;
}

@media (min-width: 576px) {
  .ms-sm-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-sm-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-sm-n3 {
    margin-left: -1rem !important;
  }
  .ms-sm-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-sm-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 768px) {
  .ms-md-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-md-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-md-n3 {
    margin-left: -1rem !important;
  }
  .ms-md-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-md-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 992px) {
  .ms-lg-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-lg-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-lg-n3 {
    margin-left: -1rem !important;
  }
  .ms-lg-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-lg-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 1200px) {
  .ms-xl-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-xl-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-xl-n3 {
    margin-left: -1rem !important;
  }
  .ms-xl-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-xl-n5 {
    margin-left: -3rem !important;
  }
}
@media (min-width: 1400px) {
  .ms-xxl-n1 {
    margin-left: -0.25rem !important;
  }
  .ms-xxl-n2 {
    margin-left: -0.5rem !important;
  }
  .ms-xxl-n3 {
    margin-left: -1rem !important;
  }
  .ms-xxl-n4 {
    margin-left: -1.5rem !important;
  }
  .ms-xxl-n5 {
    margin-left: -3rem !important;
  }
}
.me-n1 {
  margin-right: -0.25rem !important;
}

.me-n2 {
  margin-right: -0.5rem !important;
}

.me-n3 {
  margin-right: -1rem !important;
}

.me-n4 {
  margin-right: -1.5rem !important;
}

.me-n5 {
  margin-right: -3rem !important;
}

@media (min-width: 576px) {
  .me-sm-n1 {
    margin-right: -0.25rem !important;
  }
  .me-sm-n2 {
    margin-right: -0.5rem !important;
  }
  .me-sm-n3 {
    margin-right: -1rem !important;
  }
  .me-sm-n4 {
    margin-right: -1.5rem !important;
  }
  .me-sm-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 768px) {
  .me-md-n1 {
    margin-right: -0.25rem !important;
  }
  .me-md-n2 {
    margin-right: -0.5rem !important;
  }
  .me-md-n3 {
    margin-right: -1rem !important;
  }
  .me-md-n4 {
    margin-right: -1.5rem !important;
  }
  .me-md-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 992px) {
  .me-lg-n1 {
    margin-right: -0.25rem !important;
  }
  .me-lg-n2 {
    margin-right: -0.5rem !important;
  }
  .me-lg-n3 {
    margin-right: -1rem !important;
  }
  .me-lg-n4 {
    margin-right: -1.5rem !important;
  }
  .me-lg-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 1200px) {
  .me-xl-n1 {
    margin-right: -0.25rem !important;
  }
  .me-xl-n2 {
    margin-right: -0.5rem !important;
  }
  .me-xl-n3 {
    margin-right: -1rem !important;
  }
  .me-xl-n4 {
    margin-right: -1.5rem !important;
  }
  .me-xl-n5 {
    margin-right: -3rem !important;
  }
}
@media (min-width: 1400px) {
  .me-xxl-n1 {
    margin-right: -0.25rem !important;
  }
  .me-xxl-n2 {
    margin-right: -0.5rem !important;
  }
  .me-xxl-n3 {
    margin-right: -1rem !important;
  }
  .me-xxl-n4 {
    margin-right: -1.5rem !important;
  }
  .me-xxl-n5 {
    margin-right: -3rem !important;
  }
}
.fs-10 {
  font-size: 10px !important;
}

.fs-11 {
  font-size: 11px !important;
}

.fs-12 {
  font-size: 12px !important;
}

.fs-13 {
  font-size: 13px !important;
}

.fs-14 {
  font-size: 14px !important;
}

.fs-15 {
  font-size: 15px !important;
}

.fs-16 {
  font-size: 16px !important;
}

.fs-17 {
  font-size: 17px !important;
}

.fs-18 {
  font-size: 18px !important;
}

.fs-19 {
  font-size: 19px !important;
}

.fs-20 {
  font-size: 20px !important;
}

.fs-21 {
  font-size: 21px !important;
}

.fs-22 {
  font-size: 22px !important;
}

.fs-23 {
  font-size: 23px !important;
}

.fs-24 {
  font-size: 24px !important;
}

.fs-25 {
  font-size: 25px !important;
}

.fs-26 {
  font-size: 26px !important;
}

.fs-27 {
  font-size: 27px !important;
}

.fs-28 {
  font-size: 28px !important;
}

.fs-29 {
  font-size: 29px !important;
}

.fs-30 {
  font-size: 30px !important;
}

.fs-31 {
  font-size: 31px !important;
}

.fs-32 {
  font-size: 32px !important;
}

.fs-33 {
  font-size: 33px !important;
}

.fs-34 {
  font-size: 34px !important;
}

.fs-35 {
  font-size: 35px !important;
}

.fs-36 {
  font-size: 36px !important;
}

.fs-37 {
  font-size: 37px !important;
}

.fs-38 {
  font-size: 38px !important;
}

.fs-39 {
  font-size: 39px !important;
}

.fs-40 {
  font-size: 40px !important;
}

.fs-41 {
  font-size: 41px !important;
}

.fs-42 {
  font-size: 42px !important;
}

.fs-43 {
  font-size: 43px !important;
}

.fs-44 {
  font-size: 44px !important;
}

.fs-45 {
  font-size: 45px !important;
}

.fs-46 {
  font-size: 46px !important;
}

.fs-47 {
  font-size: 47px !important;
}

.fs-48 {
  font-size: 48px !important;
}

.fs-49 {
  font-size: 49px !important;
}

.fs-50 {
  font-size: 50px !important;
}

.fs-51 {
  font-size: 51px !important;
}

.fs-52 {
  font-size: 52px !important;
}

.fs-53 {
  font-size: 53px !important;
}

.fs-54 {
  font-size: 54px !important;
}

.fs-55 {
  font-size: 55px !important;
}

.fs-56 {
  font-size: 56px !important;
}

.fs-57 {
  font-size: 57px !important;
}

.fs-58 {
  font-size: 58px !important;
}

.fs-59 {
  font-size: 59px !important;
}

.fs-60 {
  font-size: 60px !important;
}

.fs-61 {
  font-size: 61px !important;
}

.fs-62 {
  font-size: 62px !important;
}

.fs-63 {
  font-size: 63px !important;
}

.fs-64 {
  font-size: 64px !important;
}

.fs-65 {
  font-size: 65px !important;
}

.fs-66 {
  font-size: 66px !important;
}

.fs-67 {
  font-size: 67px !important;
}

.fs-68 {
  font-size: 68px !important;
}

.fs-69 {
  font-size: 69px !important;
}

.fs-70 {
  font-size: 70px !important;
}

.fs-71 {
  font-size: 71px !important;
}

.fs-72 {
  font-size: 72px !important;
}

.fs-73 {
  font-size: 73px !important;
}

.fs-74 {
  font-size: 74px !important;
}

.fs-75 {
  font-size: 75px !important;
}

.fs-76 {
  font-size: 76px !important;
}

.fs-77 {
  font-size: 77px !important;
}

.fs-78 {
  font-size: 78px !important;
}

.fs-79 {
  font-size: 79px !important;
}

.fs-80 {
  font-size: 80px !important;
}

@media (min-width: 576px) {
  .fs-sm-10 {
    font-size: 10px !important;
  }
  .fs-sm-11 {
    font-size: 11px !important;
  }
  .fs-sm-12 {
    font-size: 12px !important;
  }
  .fs-sm-13 {
    font-size: 13px !important;
  }
  .fs-sm-14 {
    font-size: 14px !important;
  }
  .fs-sm-15 {
    font-size: 15px !important;
  }
  .fs-sm-16 {
    font-size: 16px !important;
  }
  .fs-sm-17 {
    font-size: 17px !important;
  }
  .fs-sm-18 {
    font-size: 18px !important;
  }
  .fs-sm-19 {
    font-size: 19px !important;
  }
  .fs-sm-20 {
    font-size: 20px !important;
  }
  .fs-sm-21 {
    font-size: 21px !important;
  }
  .fs-sm-22 {
    font-size: 22px !important;
  }
  .fs-sm-23 {
    font-size: 23px !important;
  }
  .fs-sm-24 {
    font-size: 24px !important;
  }
  .fs-sm-25 {
    font-size: 25px !important;
  }
  .fs-sm-26 {
    font-size: 26px !important;
  }
  .fs-sm-27 {
    font-size: 27px !important;
  }
  .fs-sm-28 {
    font-size: 28px !important;
  }
  .fs-sm-29 {
    font-size: 29px !important;
  }
  .fs-sm-30 {
    font-size: 30px !important;
  }
  .fs-sm-31 {
    font-size: 31px !important;
  }
  .fs-sm-32 {
    font-size: 32px !important;
  }
  .fs-sm-33 {
    font-size: 33px !important;
  }
  .fs-sm-34 {
    font-size: 34px !important;
  }
  .fs-sm-35 {
    font-size: 35px !important;
  }
  .fs-sm-36 {
    font-size: 36px !important;
  }
  .fs-sm-37 {
    font-size: 37px !important;
  }
  .fs-sm-38 {
    font-size: 38px !important;
  }
  .fs-sm-39 {
    font-size: 39px !important;
  }
  .fs-sm-40 {
    font-size: 40px !important;
  }
  .fs-sm-41 {
    font-size: 41px !important;
  }
  .fs-sm-42 {
    font-size: 42px !important;
  }
  .fs-sm-43 {
    font-size: 43px !important;
  }
  .fs-sm-44 {
    font-size: 44px !important;
  }
  .fs-sm-45 {
    font-size: 45px !important;
  }
  .fs-sm-46 {
    font-size: 46px !important;
  }
  .fs-sm-47 {
    font-size: 47px !important;
  }
  .fs-sm-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 768px) {
  .fs-md-10 {
    font-size: 10px !important;
  }
  .fs-md-11 {
    font-size: 11px !important;
  }
  .fs-md-12 {
    font-size: 12px !important;
  }
  .fs-md-13 {
    font-size: 13px !important;
  }
  .fs-md-14 {
    font-size: 14px !important;
  }
  .fs-md-15 {
    font-size: 15px !important;
  }
  .fs-md-16 {
    font-size: 16px !important;
  }
  .fs-md-17 {
    font-size: 17px !important;
  }
  .fs-md-18 {
    font-size: 18px !important;
  }
  .fs-md-19 {
    font-size: 19px !important;
  }
  .fs-md-20 {
    font-size: 20px !important;
  }
  .fs-md-21 {
    font-size: 21px !important;
  }
  .fs-md-22 {
    font-size: 22px !important;
  }
  .fs-md-23 {
    font-size: 23px !important;
  }
  .fs-md-24 {
    font-size: 24px !important;
  }
  .fs-md-25 {
    font-size: 25px !important;
  }
  .fs-md-26 {
    font-size: 26px !important;
  }
  .fs-md-27 {
    font-size: 27px !important;
  }
  .fs-md-28 {
    font-size: 28px !important;
  }
  .fs-md-29 {
    font-size: 29px !important;
  }
  .fs-md-30 {
    font-size: 30px !important;
  }
  .fs-md-31 {
    font-size: 31px !important;
  }
  .fs-md-32 {
    font-size: 32px !important;
  }
  .fs-md-33 {
    font-size: 33px !important;
  }
  .fs-md-34 {
    font-size: 34px !important;
  }
  .fs-md-35 {
    font-size: 35px !important;
  }
  .fs-md-36 {
    font-size: 36px !important;
  }
  .fs-md-37 {
    font-size: 37px !important;
  }
  .fs-md-38 {
    font-size: 38px !important;
  }
  .fs-md-39 {
    font-size: 39px !important;
  }
  .fs-md-40 {
    font-size: 40px !important;
  }
  .fs-md-41 {
    font-size: 41px !important;
  }
  .fs-md-42 {
    font-size: 42px !important;
  }
  .fs-md-43 {
    font-size: 43px !important;
  }
  .fs-md-44 {
    font-size: 44px !important;
  }
  .fs-md-45 {
    font-size: 45px !important;
  }
  .fs-md-46 {
    font-size: 46px !important;
  }
  .fs-md-47 {
    font-size: 47px !important;
  }
  .fs-md-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 992px) {
  .fs-lg-10 {
    font-size: 10px !important;
  }
  .fs-lg-11 {
    font-size: 11px !important;
  }
  .fs-lg-12 {
    font-size: 12px !important;
  }
  .fs-lg-13 {
    font-size: 13px !important;
  }
  .fs-lg-14 {
    font-size: 14px !important;
  }
  .fs-lg-15 {
    font-size: 15px !important;
  }
  .fs-lg-16 {
    font-size: 16px !important;
  }
  .fs-lg-17 {
    font-size: 17px !important;
  }
  .fs-lg-18 {
    font-size: 18px !important;
  }
  .fs-lg-19 {
    font-size: 19px !important;
  }
  .fs-lg-20 {
    font-size: 20px !important;
  }
  .fs-lg-21 {
    font-size: 21px !important;
  }
  .fs-lg-22 {
    font-size: 22px !important;
  }
  .fs-lg-23 {
    font-size: 23px !important;
  }
  .fs-lg-24 {
    font-size: 24px !important;
  }
  .fs-lg-25 {
    font-size: 25px !important;
  }
  .fs-lg-26 {
    font-size: 26px !important;
  }
  .fs-lg-27 {
    font-size: 27px !important;
  }
  .fs-lg-28 {
    font-size: 28px !important;
  }
  .fs-lg-29 {
    font-size: 29px !important;
  }
  .fs-lg-30 {
    font-size: 30px !important;
  }
  .fs-lg-31 {
    font-size: 31px !important;
  }
  .fs-lg-32 {
    font-size: 32px !important;
  }
  .fs-lg-33 {
    font-size: 33px !important;
  }
  .fs-lg-34 {
    font-size: 34px !important;
  }
  .fs-lg-35 {
    font-size: 35px !important;
  }
  .fs-lg-36 {
    font-size: 36px !important;
  }
  .fs-lg-37 {
    font-size: 37px !important;
  }
  .fs-lg-38 {
    font-size: 38px !important;
  }
  .fs-lg-39 {
    font-size: 39px !important;
  }
  .fs-lg-40 {
    font-size: 40px !important;
  }
  .fs-lg-41 {
    font-size: 41px !important;
  }
  .fs-lg-42 {
    font-size: 42px !important;
  }
  .fs-lg-43 {
    font-size: 43px !important;
  }
  .fs-lg-44 {
    font-size: 44px !important;
  }
  .fs-lg-45 {
    font-size: 45px !important;
  }
  .fs-lg-46 {
    font-size: 46px !important;
  }
  .fs-lg-47 {
    font-size: 47px !important;
  }
  .fs-lg-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 1200px) {
  .fs-xl-10 {
    font-size: 10px !important;
  }
  .fs-xl-11 {
    font-size: 11px !important;
  }
  .fs-xl-12 {
    font-size: 12px !important;
  }
  .fs-xl-13 {
    font-size: 13px !important;
  }
  .fs-xl-14 {
    font-size: 14px !important;
  }
  .fs-xl-15 {
    font-size: 15px !important;
  }
  .fs-xl-16 {
    font-size: 16px !important;
  }
  .fs-xl-17 {
    font-size: 17px !important;
  }
  .fs-xl-18 {
    font-size: 18px !important;
  }
  .fs-xl-19 {
    font-size: 19px !important;
  }
  .fs-xl-20 {
    font-size: 20px !important;
  }
  .fs-xl-21 {
    font-size: 21px !important;
  }
  .fs-xl-22 {
    font-size: 22px !important;
  }
  .fs-xl-23 {
    font-size: 23px !important;
  }
  .fs-xl-24 {
    font-size: 24px !important;
  }
  .fs-xl-25 {
    font-size: 25px !important;
  }
  .fs-xl-26 {
    font-size: 26px !important;
  }
  .fs-xl-27 {
    font-size: 27px !important;
  }
  .fs-xl-28 {
    font-size: 28px !important;
  }
  .fs-xl-29 {
    font-size: 29px !important;
  }
  .fs-xl-30 {
    font-size: 30px !important;
  }
  .fs-xl-31 {
    font-size: 31px !important;
  }
  .fs-xl-32 {
    font-size: 32px !important;
  }
  .fs-xl-33 {
    font-size: 33px !important;
  }
  .fs-xl-34 {
    font-size: 34px !important;
  }
  .fs-xl-35 {
    font-size: 35px !important;
  }
  .fs-xl-36 {
    font-size: 36px !important;
  }
  .fs-xl-37 {
    font-size: 37px !important;
  }
  .fs-xl-38 {
    font-size: 38px !important;
  }
  .fs-xl-39 {
    font-size: 39px !important;
  }
  .fs-xl-40 {
    font-size: 40px !important;
  }
  .fs-xl-41 {
    font-size: 41px !important;
  }
  .fs-xl-42 {
    font-size: 42px !important;
  }
  .fs-xl-43 {
    font-size: 43px !important;
  }
  .fs-xl-44 {
    font-size: 44px !important;
  }
  .fs-xl-45 {
    font-size: 45px !important;
  }
  .fs-xl-46 {
    font-size: 46px !important;
  }
  .fs-xl-47 {
    font-size: 47px !important;
  }
  .fs-xl-48 {
    font-size: 48px !important;
  }
}
@media (min-width: 1400px) {
  .fs-xxl-10 {
    font-size: 10px !important;
  }
  .fs-xxl-11 {
    font-size: 11px !important;
  }
  .fs-xxl-12 {
    font-size: 12px !important;
  }
  .fs-xxl-13 {
    font-size: 13px !important;
  }
  .fs-xxl-14 {
    font-size: 14px !important;
  }
  .fs-xxl-15 {
    font-size: 15px !important;
  }
  .fs-xxl-16 {
    font-size: 16px !important;
  }
  .fs-xxl-17 {
    font-size: 17px !important;
  }
  .fs-xxl-18 {
    font-size: 18px !important;
  }
  .fs-xxl-19 {
    font-size: 19px !important;
  }
  .fs-xxl-20 {
    font-size: 20px !important;
  }
  .fs-xxl-21 {
    font-size: 21px !important;
  }
  .fs-xxl-22 {
    font-size: 22px !important;
  }
  .fs-xxl-23 {
    font-size: 23px !important;
  }
  .fs-xxl-24 {
    font-size: 24px !important;
  }
  .fs-xxl-25 {
    font-size: 25px !important;
  }
  .fs-xxl-26 {
    font-size: 26px !important;
  }
  .fs-xxl-27 {
    font-size: 27px !important;
  }
  .fs-xxl-28 {
    font-size: 28px !important;
  }
  .fs-xxl-29 {
    font-size: 29px !important;
  }
  .fs-xxl-30 {
    font-size: 30px !important;
  }
  .fs-xxl-31 {
    font-size: 31px !important;
  }
  .fs-xxl-32 {
    font-size: 32px !important;
  }
  .fs-xxl-33 {
    font-size: 33px !important;
  }
  .fs-xxl-34 {
    font-size: 34px !important;
  }
  .fs-xxl-35 {
    font-size: 35px !important;
  }
  .fs-xxl-36 {
    font-size: 36px !important;
  }
  .fs-xxl-37 {
    font-size: 37px !important;
  }
  .fs-xxl-38 {
    font-size: 38px !important;
  }
  .fs-xxl-39 {
    font-size: 39px !important;
  }
  .fs-xxl-40 {
    font-size: 40px !important;
  }
  .fs-xxl-41 {
    font-size: 41px !important;
  }
  .fs-xxl-42 {
    font-size: 42px !important;
  }
  .fs-xxl-43 {
    font-size: 43px !important;
  }
  .fs-xxl-44 {
    font-size: 44px !important;
  }
  .fs-xxl-45 {
    font-size: 45px !important;
  }
  .fs-xxl-46 {
    font-size: 46px !important;
  }
  .fs-xxl-47 {
    font-size: 47px !important;
  }
  .fs-xxl-48 {
    font-size: 48px !important;
  }
}
.ls-1 {
  letter-spacing: 0.01em !important;
}

.ls-2 {
  letter-spacing: 0.02em !important;
}

.ls-3 {
  letter-spacing: 0.03em !important;
}

.ls-4 {
  letter-spacing: 0.04em !important;
}

.ls-5 {
  letter-spacing: 0.05em !important;
}

.ls-6 {
  letter-spacing: 0.06em !important;
}

.ls-7 {
  letter-spacing: 0.07em !important;
}

.ls-8 {
  letter-spacing: 0.08em !important;
}

.ls-9 {
  letter-spacing: 0.09em !important;
}

.ls-10 {
  letter-spacing: 0.1em !important;
}

.ls-11 {
  letter-spacing: 0.11em !important;
}

.ls-12 {
  letter-spacing: 0.12em !important;
}

.ls-13 {
  letter-spacing: 0.13em !important;
}

.ls-14 {
  letter-spacing: 0.14em !important;
}

.ls-15 {
  letter-spacing: 0.15em !important;
}

.ls-16 {
  letter-spacing: 0.16em !important;
}

.ls-17 {
  letter-spacing: 0.17em !important;
}

.ls-18 {
  letter-spacing: 0.18em !important;
}

.ls-19 {
  letter-spacing: 0.19em !important;
}

.ls-20 {
  letter-spacing: 0.2em !important;
}

.ls-21 {
  letter-spacing: 0.21em !important;
}

.ls-22 {
  letter-spacing: 0.22em !important;
}

.ls-23 {
  letter-spacing: 0.23em !important;
}

.ls-24 {
  letter-spacing: 0.24em !important;
}

.ls-25 {
  letter-spacing: 0.25em !important;
}

.ls-26 {
  letter-spacing: 0.26em !important;
}

.ls-27 {
  letter-spacing: 0.27em !important;
}

.ls-28 {
  letter-spacing: 0.28em !important;
}

.ls-29 {
  letter-spacing: 0.29em !important;
}

.ls-30 {
  letter-spacing: 0.3em !important;
}

.lh-100 {
  line-height: 1 !important;
}

.lh-110 {
  line-height: 1.1 !important;
}

.lh-120 {
  line-height: 1.2 !important;
}

.lh-130 {
  line-height: 1.3 !important;
}

.lh-140 {
  line-height: 1.4 !important;
}

.lh-150 {
  line-height: 1.5 !important;
}

.lh-160 {
  line-height: 1.6 !important;
}

.lh-170 {
  line-height: 1.7 !important;
}

.lh-180 {
  line-height: 1.8 !important;
}

.lh-190 {
  line-height: 1.9 !important;
}

.lh-200 {
  line-height: 2 !important;
}

.lh-210 {
  line-height: 2.1 !important;
}

.lh-220 {
  line-height: 2.2 !important;
}

.lh-230 {
  line-height: 2.3 !important;
}

.lh-240 {
  line-height: 2.4 !important;
}

.lh-250 {
  line-height: 2.5 !important;
}

.bg-333 {
  background-color: #333333 !important;
}

.fw-100 {
  font-weight: 100 !important;
}

.fw-200 {
  font-weight: 200 !important;
}

.fw-300 {
  font-weight: 300 !important;
}

.fw-400 {
  font-weight: 400 !important;
}

.fw-500 {
  font-weight: 500 !important;
}

.fw-600 {
  font-weight: 600 !important;
}

.fw-700 {
  font-weight: 700 !important;
}

.fw-800 {
  font-weight: 800 !important;
}

.fw-900 {
  font-weight: 900 !important;
}

/* Base text color (non-responsive) */
.text-red {
  color: #dc0000 !important;
}

/* Custom semi-black text (75% opacity based on body color) */
.text-black-75 {
  color: rgba(0, 0, 0, 0.75) !important;
}

/* Custom radio design (neutral circle with black dot) */
.form-check-input.form-radio-circle {
  position: relative;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: none;
  background-color: #e5e5e5;
  box-shadow: none;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  outline: none;
  cursor: pointer;
  margin-top: 2%;
}

/* MW WP Form: radio text */
.form-check-input.form-radio-circle + .mwform-radio-field-text {
  display: inline-block;
  position: relative;
  top: 1px; /* 1〜3pxでOK */
}

.form-check-input.form-radio-circle::before {
  content: "";
  position: absolute;
  inset: 8px;
  border-radius: 50%;
  background-color: transparent;
  transition: background-color 0.15s ease-in-out;
}

@media (max-width: 767px) {
  .form-check-input.form-radio-circle {
    width: 20px;
    height: 20px;
  }
  .form-check-input.form-radio-circle::before {
    inset: 5px;
  }
}
.form-check-input.form-radio-circle:checked::before {
  background-color: #000000;
}

/* キーボード操作用フォーカス枠 */
.form-check-input.form-radio-circle:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.25);
  outline-offset: 2px;
}

/* Scroll reveal: fade-in + slight upward motion */
.scroll-fadein {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

/* 表示状態（IntersectionObserverで付与） */
.scroll-fadein.is-inview {
  opacity: 1;
  transform: translateY(0);
}

/* アニメーションを好まないユーザー向け */
@media (prefers-reduced-motion: reduce) {
  .scroll-fadein {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
@media (min-width: 576px) {
  .text-sm-white {
    color: #fff !important;
  }
  .text-sm-black {
    color: #000 !important;
  }
  .text-sm-dark {
    color: #212529 !important;
  }
  .text-sm-primary {
    color: #0d6efd !important;
  }
  .text-sm-secondary {
    color: #6c757d !important;
  }
  .text-sm-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-sm-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 768px) {
  .text-md-white {
    color: #fff !important;
  }
  .text-md-black {
    color: #000 !important;
  }
  .text-md-dark {
    color: #212529 !important;
  }
  .text-md-primary {
    color: #0d6efd !important;
  }
  .text-md-secondary {
    color: #6c757d !important;
  }
  .text-md-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-md-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 992px) {
  .text-lg-white {
    color: #fff !important;
  }
  .text-lg-black {
    color: #000 !important;
  }
  .text-lg-dark {
    color: #212529 !important;
  }
  .text-lg-primary {
    color: #0d6efd !important;
  }
  .text-lg-secondary {
    color: #6c757d !important;
  }
  .text-lg-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-lg-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 1200px) {
  .text-xl-white {
    color: #fff !important;
  }
  .text-xl-black {
    color: #000 !important;
  }
  .text-xl-dark {
    color: #212529 !important;
  }
  .text-xl-primary {
    color: #0d6efd !important;
  }
  .text-xl-secondary {
    color: #6c757d !important;
  }
  .text-xl-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-xl-red {
    color: #dc0000 !important;
  }
}
@media (min-width: 1400px) {
  .text-xxl-white {
    color: #fff !important;
  }
  .text-xxl-black {
    color: #000 !important;
  }
  .text-xxl-dark {
    color: #212529 !important;
  }
  .text-xxl-primary {
    color: #0d6efd !important;
  }
  .text-xxl-secondary {
    color: #6c757d !important;
  }
  .text-xxl-muted {
    color: var(--bs-secondary-color) !important;
  }
  .text-xxl-red {
    color: #dc0000 !important;
  }
}
.text-justify {
  text-align: justify;
  text-justify: inter-ideograph;
}

/* Pは自動で両端揃え*/
p {
  text-align: justify;
  text-justify: inter-ideograph;
}

/* ===================================
   fs-xxsm-(size) : iPhone X / SE / 8（〜375px）
   =================================== */
@media (max-width: 375px) {
  .fs-xxsm-10 {
    font-size: 10px !important;
  }
  .fs-xxsm-11 {
    font-size: 11px !important;
  }
  .fs-xxsm-12 {
    font-size: 12px !important;
  }
  .fs-xxsm-13 {
    font-size: 13px !important;
  }
  .fs-xxsm-14 {
    font-size: 14px !important;
  }
  .fs-xxsm-15 {
    font-size: 15px !important;
  }
  .fs-xxsm-16 {
    font-size: 16px !important;
  }
  .fs-xxsm-17 {
    font-size: 17px !important;
  }
  .fs-xxsm-18 {
    font-size: 18px !important;
  }
  .fs-xxsm-19 {
    font-size: 19px !important;
  }
  .fs-xxsm-20 {
    font-size: 20px !important;
  }
  .fs-xxsm-21 {
    font-size: 21px !important;
  }
  .fs-xxsm-22 {
    font-size: 22px !important;
  }
  .fs-xxsm-23 {
    font-size: 23px !important;
  }
  .fs-xxsm-24 {
    font-size: 24px !important;
  }
  .fs-xxsm-25 {
    font-size: 25px !important;
  }
  .fs-xxsm-26 {
    font-size: 26px !important;
  }
  .fs-xxsm-27 {
    font-size: 27px !important;
  }
  .fs-xxsm-28 {
    font-size: 28px !important;
  }
  .fs-xxsm-29 {
    font-size: 29px !important;
  }
  .fs-xxsm-30 {
    font-size: 30px !important;
  }
  .fs-xxsm-31 {
    font-size: 31px !important;
  }
  .fs-xxsm-32 {
    font-size: 32px !important;
  }
  .fs-xxsm-33 {
    font-size: 33px !important;
  }
  .fs-xxsm-34 {
    font-size: 34px !important;
  }
  .fs-xxsm-35 {
    font-size: 35px !important;
  }
  .fs-xxsm-36 {
    font-size: 36px !important;
  }
  .fs-xxsm-37 {
    font-size: 37px !important;
  }
  .fs-xxsm-38 {
    font-size: 38px !important;
  }
  .fs-xxsm-39 {
    font-size: 39px !important;
  }
  .fs-xxsm-40 {
    font-size: 40px !important;
  }
  .fs-xxsm-41 {
    font-size: 41px !important;
  }
  .fs-xxsm-42 {
    font-size: 42px !important;
  }
  .fs-xxsm-43 {
    font-size: 43px !important;
  }
  .fs-xxsm-44 {
    font-size: 44px !important;
  }
  .fs-xxsm-45 {
    font-size: 45px !important;
  }
  .fs-xxsm-46 {
    font-size: 46px !important;
  }
  .fs-xxsm-47 {
    font-size: 47px !important;
  }
  .fs-xxsm-48 {
    font-size: 48px !important;
  }
  .fs-xxsm-49 {
    font-size: 49px !important;
  }
  .fs-xxsm-50 {
    font-size: 50px !important;
  }
  .fs-xxsm-51 {
    font-size: 51px !important;
  }
  .fs-xxsm-52 {
    font-size: 52px !important;
  }
  .fs-xxsm-53 {
    font-size: 53px !important;
  }
  .fs-xxsm-54 {
    font-size: 54px !important;
  }
  .fs-xxsm-55 {
    font-size: 55px !important;
  }
  .fs-xxsm-56 {
    font-size: 56px !important;
  }
  .fs-xxsm-57 {
    font-size: 57px !important;
  }
  .fs-xxsm-58 {
    font-size: 58px !important;
  }
  .fs-xxsm-59 {
    font-size: 59px !important;
  }
  .fs-xxsm-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-se-(size) : iPhone SE / 5系（〜320px）
   =================================== */
@media (max-width: 320px) {
  .fs-se-10 {
    font-size: 10px !important;
  }
  .fs-se-11 {
    font-size: 11px !important;
  }
  .fs-se-12 {
    font-size: 12px !important;
  }
  .fs-se-13 {
    font-size: 13px !important;
  }
  .fs-se-14 {
    font-size: 14px !important;
  }
  .fs-se-15 {
    font-size: 15px !important;
  }
  .fs-se-16 {
    font-size: 16px !important;
  }
  .fs-se-17 {
    font-size: 17px !important;
  }
  .fs-se-18 {
    font-size: 18px !important;
  }
  .fs-se-19 {
    font-size: 19px !important;
  }
  .fs-se-20 {
    font-size: 20px !important;
  }
  .fs-se-21 {
    font-size: 21px !important;
  }
  .fs-se-22 {
    font-size: 22px !important;
  }
  .fs-se-23 {
    font-size: 23px !important;
  }
  .fs-se-24 {
    font-size: 24px !important;
  }
  .fs-se-25 {
    font-size: 25px !important;
  }
  .fs-se-26 {
    font-size: 26px !important;
  }
  .fs-se-27 {
    font-size: 27px !important;
  }
  .fs-se-28 {
    font-size: 28px !important;
  }
  .fs-se-29 {
    font-size: 29px !important;
  }
  .fs-se-30 {
    font-size: 30px !important;
  }
  .fs-se-31 {
    font-size: 31px !important;
  }
  .fs-se-32 {
    font-size: 32px !important;
  }
  .fs-se-33 {
    font-size: 33px !important;
  }
  .fs-se-34 {
    font-size: 34px !important;
  }
  .fs-se-35 {
    font-size: 35px !important;
  }
  .fs-se-36 {
    font-size: 36px !important;
  }
  .fs-se-37 {
    font-size: 37px !important;
  }
  .fs-se-38 {
    font-size: 38px !important;
  }
  .fs-se-39 {
    font-size: 39px !important;
  }
  .fs-se-40 {
    font-size: 40px !important;
  }
  .fs-se-41 {
    font-size: 41px !important;
  }
  .fs-se-42 {
    font-size: 42px !important;
  }
  .fs-se-43 {
    font-size: 43px !important;
  }
  .fs-se-44 {
    font-size: 44px !important;
  }
  .fs-se-45 {
    font-size: 45px !important;
  }
  .fs-se-46 {
    font-size: 46px !important;
  }
  .fs-se-47 {
    font-size: 47px !important;
  }
  .fs-se-48 {
    font-size: 48px !important;
  }
  .fs-se-49 {
    font-size: 49px !important;
  }
  .fs-se-50 {
    font-size: 50px !important;
  }
  .fs-se-51 {
    font-size: 51px !important;
  }
  .fs-se-52 {
    font-size: 52px !important;
  }
  .fs-se-53 {
    font-size: 53px !important;
  }
  .fs-se-54 {
    font-size: 54px !important;
  }
  .fs-se-55 {
    font-size: 55px !important;
  }
  .fs-se-56 {
    font-size: 56px !important;
  }
  .fs-se-57 {
    font-size: 57px !important;
  }
  .fs-se-58 {
    font-size: 58px !important;
  }
  .fs-se-59 {
    font-size: 59px !important;
  }
  .fs-se-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-xsm-(size) : iPhone 12〜15（376〜390px）
   =================================== */
@media (min-width: 376px) and (max-width: 390px) {
  .fs-xsm-10 {
    font-size: 10px !important;
  }
  .fs-xsm-11 {
    font-size: 11px !important;
  }
  .fs-xsm-12 {
    font-size: 12px !important;
  }
  .fs-xsm-13 {
    font-size: 13px !important;
  }
  .fs-xsm-14 {
    font-size: 14px !important;
  }
  .fs-xsm-15 {
    font-size: 15px !important;
  }
  .fs-xsm-16 {
    font-size: 16px !important;
  }
  .fs-xsm-17 {
    font-size: 17px !important;
  }
  .fs-xsm-18 {
    font-size: 18px !important;
  }
  .fs-xsm-19 {
    font-size: 19px !important;
  }
  .fs-xsm-20 {
    font-size: 20px !important;
  }
  .fs-xsm-21 {
    font-size: 21px !important;
  }
  .fs-xsm-22 {
    font-size: 22px !important;
  }
  .fs-xsm-23 {
    font-size: 23px !important;
  }
  .fs-xsm-24 {
    font-size: 24px !important;
  }
  .fs-xsm-25 {
    font-size: 25px !important;
  }
  .fs-xsm-26 {
    font-size: 26px !important;
  }
  .fs-xsm-27 {
    font-size: 27px !important;
  }
  .fs-xsm-28 {
    font-size: 28px !important;
  }
  .fs-xsm-29 {
    font-size: 29px !important;
  }
  .fs-xsm-30 {
    font-size: 30px !important;
  }
  .fs-xsm-31 {
    font-size: 31px !important;
  }
  .fs-xsm-32 {
    font-size: 32px !important;
  }
  .fs-xsm-33 {
    font-size: 33px !important;
  }
  .fs-xsm-34 {
    font-size: 34px !important;
  }
  .fs-xsm-35 {
    font-size: 35px !important;
  }
  .fs-xsm-36 {
    font-size: 36px !important;
  }
  .fs-xsm-37 {
    font-size: 37px !important;
  }
  .fs-xsm-38 {
    font-size: 38px !important;
  }
  .fs-xsm-39 {
    font-size: 39px !important;
  }
  .fs-xsm-40 {
    font-size: 40px !important;
  }
  .fs-xsm-41 {
    font-size: 41px !important;
  }
  .fs-xsm-42 {
    font-size: 42px !important;
  }
  .fs-xsm-43 {
    font-size: 43px !important;
  }
  .fs-xsm-44 {
    font-size: 44px !important;
  }
  .fs-xsm-45 {
    font-size: 45px !important;
  }
  .fs-xsm-46 {
    font-size: 46px !important;
  }
  .fs-xsm-47 {
    font-size: 47px !important;
  }
  .fs-xsm-48 {
    font-size: 48px !important;
  }
  .fs-xsm-49 {
    font-size: 49px !important;
  }
  .fs-xsm-50 {
    font-size: 50px !important;
  }
  .fs-xsm-51 {
    font-size: 51px !important;
  }
  .fs-xsm-52 {
    font-size: 52px !important;
  }
  .fs-xsm-53 {
    font-size: 53px !important;
  }
  .fs-xsm-54 {
    font-size: 54px !important;
  }
  .fs-xsm-55 {
    font-size: 55px !important;
  }
  .fs-xsm-56 {
    font-size: 56px !important;
  }
  .fs-xsm-57 {
    font-size: 57px !important;
  }
  .fs-xsm-58 {
    font-size: 58px !important;
  }
  .fs-xsm-59 {
    font-size: 59px !important;
  }
  .fs-xsm-60 {
    font-size: 60px !important;
  }
}
/* ===================================
   fs-sm-(size) : iPhone 11 / 16、12max（391〜414px）
   =================================== */
@media (min-width: 391px) and (max-width: 428px) {
  .fs-sm-10 {
    font-size: 10px !important;
  }
  .fs-sm-11 {
    font-size: 11px !important;
  }
  .fs-sm-12 {
    font-size: 12px !important;
  }
  .fs-sm-13 {
    font-size: 13px !important;
  }
  .fs-sm-14 {
    font-size: 14px !important;
  }
  .fs-sm-15 {
    font-size: 15px !important;
  }
  .fs-sm-16 {
    font-size: 16px !important;
  }
  .fs-sm-17 {
    font-size: 17px !important;
  }
  .fs-sm-18 {
    font-size: 18px !important;
  }
  .fs-sm-19 {
    font-size: 19px !important;
  }
  .fs-sm-20 {
    font-size: 20px !important;
  }
  .fs-sm-21 {
    font-size: 21px !important;
  }
  .fs-sm-22 {
    font-size: 22px !important;
  }
  .fs-sm-23 {
    font-size: 23px !important;
  }
  .fs-sm-24 {
    font-size: 24px !important;
  }
  .fs-sm-25 {
    font-size: 25px !important;
  }
  .fs-sm-26 {
    font-size: 26px !important;
  }
  .fs-sm-27 {
    font-size: 27px !important;
  }
  .fs-sm-28 {
    font-size: 28px !important;
  }
  .fs-sm-29 {
    font-size: 29px !important;
  }
  .fs-sm-30 {
    font-size: 30px !important;
  }
  .fs-sm-31 {
    font-size: 31px !important;
  }
  .fs-sm-32 {
    font-size: 32px !important;
  }
  .fs-sm-33 {
    font-size: 33px !important;
  }
  .fs-sm-34 {
    font-size: 34px !important;
  }
  .fs-sm-35 {
    font-size: 35px !important;
  }
  .fs-sm-36 {
    font-size: 36px !important;
  }
  .fs-sm-37 {
    font-size: 37px !important;
  }
  .fs-sm-38 {
    font-size: 38px !important;
  }
  .fs-sm-39 {
    font-size: 39px !important;
  }
  .fs-sm-40 {
    font-size: 40px !important;
  }
  .fs-sm-41 {
    font-size: 41px !important;
  }
  .fs-sm-42 {
    font-size: 42px !important;
  }
  .fs-sm-43 {
    font-size: 43px !important;
  }
  .fs-sm-44 {
    font-size: 44px !important;
  }
  .fs-sm-45 {
    font-size: 45px !important;
  }
  .fs-sm-46 {
    font-size: 46px !important;
  }
  .fs-sm-47 {
    font-size: 47px !important;
  }
  .fs-sm-48 {
    font-size: 48px !important;
  }
  .fs-sm-49 {
    font-size: 49px !important;
  }
  .fs-sm-50 {
    font-size: 50px !important;
  }
  .fs-sm-51 {
    font-size: 51px !important;
  }
  .fs-sm-52 {
    font-size: 52px !important;
  }
  .fs-sm-53 {
    font-size: 53px !important;
  }
  .fs-sm-54 {
    font-size: 54px !important;
  }
  .fs-sm-55 {
    font-size: 55px !important;
  }
  .fs-sm-56 {
    font-size: 56px !important;
  }
  .fs-sm-57 {
    font-size: 57px !important;
  }
  .fs-sm-58 {
    font-size: 58px !important;
  }
  .fs-sm-59 {
    font-size: 59px !important;
  }
  .fs-sm-60 {
    font-size: 60px !important;
  }
}
html {
  scroll-behavior: smooth;
}

body {
  color: #212529;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* Page loader (covers menu + hero + content) */
.page-loader {
  position: fixed;
  inset: 0;
  /* MUST be above .hero (currently z-index: 99999) */
  z-index: 100000;
  /* Prevent blend/stacking side effects bleeding through */
  isolation: isolate;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s ease, visibility 0.4s ease;
}

.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.page-loader__spinner {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 3px solid #ddd;
  border-top-color: #dc0000;
  animation: page-spin 0.7s linear infinite;
}

/* reCAPTCHA badge (bring to front) */
.grecaptcha-badge {
  z-index: 10000 !important;
}

@keyframes page-spin {
  to {
    transform: rotate(360deg);
  }
}
.jp {
  font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

/* English (Poppins) utilities */
/* .en 自体と、その中の子要素すべてを英語フォントにする */
.en,
.en * {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
} /* 基本 */
.en-400, .en-500, .en-600, .en-700, .en-800 {
  font-family: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: 0.02em;
}

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

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

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

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

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

.en-up {
  text-transform: uppercase;
} /* CONTACT など大文字化 */
.section {
  padding-block: 80px;
}

@media (max-width: 767.98px) {
  .section {
    padding-block: 64px;
  }
}
.badge-kv {
  letter-spacing: 0.15em;
}

.smart-navbar {
  height: var(--nav-h);
  transition: transform 0.28s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}
.smart-navbar.navbar-hidden {
  transform: translateY(calc(-1 * var(--nav-h)));
}
.smart-navbar.navbar-scrolled {
  background-color: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
  -webkit-backdrop-filter: saturate(140%) blur(6px);
          backdrop-filter: saturate(140%) blur(6px);
}

.point-icon {
  font-size: 2rem;
  line-height: 1;
}

.ratio-21x9 {
  --bs-aspect-ratio: calc(9 / 21 * 100%);
}

@media (min-width: 992px) {
  .ratio-400x720 {
    --bs-aspect-ratio: calc(400 / 720 * 100%);
    max-height: 720px;
  }
  .ratio-450x720 {
    --bs-aspect-ratio: calc(450 / 720 * 100%);
    max-height: 720px;
  }
}
.cta-band {
  background: linear-gradient(90deg, #1f6feb, #5ea1ff);
  color: #fff;
}
.cta-band .btn {
  background: #fff;
  color: #0d6efd;
  border: none;
}

footer {
  background: #0c1320;
  color: #c9d1d9;
}
footer a {
  color: #c9d1d9;
}

.BB {
  border: 3px solid #0d6efd;
}

/* ふわっと表示（CSS only） */
@keyframes fadeUp {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fade-up {
  opacity: 0;
  animation: fadeUp 0.9s ease forwards;
}

/* 少し遅らせたいとき */
.fade-up.delay-1 {
  animation-delay: 0.3s;
}

/* =========================
   iPhone X / XS / 11 Pro 専用メディアクエリ
   （375 × 812 / DPR3 縦向き）
   ========================= */
@media only screen and (min-device-width: 375px) and (max-device-width: 375px) and (min-device-height: 812px) and (max-device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
  /* ▼ iPhone X 専用調整を書く ▼ */
  .iphone-x-test {
    outline: 2px solid red;
  } /* 動作確認用 */
}
/* __FORCE_COMPILE_TEST__ */
.__force_compile_test__ {
  outline: 10px solid red !important;
}

/* __FORCE_COMPILE_TEST2__ */
.__force_compile_test2__ {
  outline: 10px solid red !important;
}/*# sourceMappingURL=style.css.map */