/**
 * MYミズテック マイページ共通スタイル
 */

/* ========================================
   ベース
   ======================================== */
   :root {
    --cq-ref: 402;
  }
.container {
  max-width: 600px;
  margin: 0 auto;
  padding: 0 1rem;
}

body {
  margin: 0;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
}

main {
  padding-bottom: 5rem;
}

/* ========================================
   ページヘッダー（戻る矢印 + タイトル）
   ======================================== */

.page-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0;
  padding-block: 30px;
}

.page-header__back {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  text-decoration: none;
  font-size: 0;
  color: #2482CD;
  line-height: 1;
}

.page-header__back::before {
  content: "arrow_back_ios";
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 21px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #2482CD;
}

.page-header__title {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.022em;
  color: #3C404A;
  margin: 0;
  padding: 0;
}

/* ========================================
   サイト共通ヘッダー（ロゴ）
   ======================================== */

.mypage-site-header {
  background: #fff;
  display: flex;
  align-items: center;
  padding: 15px 17px;
}

.mypage-site-header__logo img {
  display: block;
  width: 120px;
  height: auto;
}

/* ========================================
   Memberカード
   ======================================== */

.member-card {
  position: relative;
  background: linear-gradient(135deg, #44A1EC 0%, #2482CD 100%);
  color: #fff;
  border-radius: 10px;
  padding: 24px 15px;
  margin: 0;
  box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), 0px 10px 15px -3px rgba(0, 0, 0, 0.1);
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  overflow: hidden;
}

.member-card__logo {
  position: absolute;
  top: 28px;
  right: 20px;
  width: 107px;
  height: auto;
  pointer-events: none;
  mix-blend-mode: plus-lighter;
}

.member-card__label {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: -0.024em;
  text-transform: none;
  color: #fff;
  margin: 0 0 64px;
  opacity: 1;
}

.member-card__name {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.022em;
  color: #fff;
  margin: 0 0 3px;
  width: 51%;
  display: inline-block;
  white-space: normal;
  word-break: break-all;
}

.member-card__id {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #fff;
  opacity: 0.9;
  margin: 0;
}

.member-card__settings {
  position: absolute;
  bottom: 24px;
  right: 17px;
  display: inline-flex;
  align-items: center;
  gap: 1px;
  background: #fff;
  color: #2482CD;
  text-decoration: none;
  padding: 0 15px 0 16px;
  height: 40px;
  border-radius: 100px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: -0.021em;
}

.member-card__settings:hover {
  background: #f5f5f5;
}

.member-card__settings-icon {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* ========================================
   セクション
   ======================================== */

.mypage-section {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-bottom: 30px;
}

.mypage-section__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
  margin-top: 30px;
}

.mypage-section__header h2 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.022em;
  color: #3C404A;
  margin: 0;
  padding: 0;
  border: none;
}

.mypage-section__more {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #2482CD;
  text-decoration: none;
}

.mypage-section__more:hover {
  text-decoration: underline;
}

.mypage-section > h2 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.022em;
  color: #3C404A;
  margin: 0;
  padding: 0;
  border: none;
}

/* ========================================
   施工履歴カード
   ======================================== */

.sekou-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.sekou-list--full {
  margin-bottom: 15px;
}

.sekou-card {
  display: block;
  padding: 16px 16px 10px;
  border: none;
  border-radius: 10px;
  text-decoration: none;
  color: #333;
  background: #fff;
  transition: box-shadow 0.2s;
}

.sekou-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.sekou-card__top {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #F3F4F6;
}

.sekou-card__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(241, 249, 255, 0) 0%, rgba(241, 249, 255, 1) 100%);
  border-radius: 5px;
  overflow: hidden;
}

.sekou-card__img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0;
}

.sekou-card__no-image {
  font-size: 11px;
  color: #909398;
  background: transparent;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
}

.sekou-card__category {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #3C404A;
  margin: 0;
  flex: 1;
  min-width: 0;
}

.sekou-card__warranty {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #9FA5AD;
  margin: 0;
  flex-shrink: 0;
}

.sekou-card__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
  padding-top: 0;
  border-top: none;
  gap: 10px;
}

.sekou-card__dates {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: 1;
  min-width: 0;
}

.sekou-card__date,
.sekou-card__expiry {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #9FA5AD;
  margin: 0;
}

.sekou-card__arrow {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #99A1AF;
  flex-shrink: 0;
  margin-left: 0;
}

.sekou-empty {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #9FA5AD;
  text-align: center;
  margin: 30px 0;
}

.mypage-link-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  height: 60px;
  border: none;
  border-radius: 10px;
  text-decoration: none;
  color: #3C404A;
  background: #EFEFEF;
  margin-top: 0;
  transition: background 0.2s;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
}

.mypage-link-card:hover {
  background: #e5e5e5;
}

.mypage-link-card__icon {
  width: 40px;
  height: 40px;
  background: #2482CD;
  color: #fff;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 27px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

.mypage-link-card__label {
  flex: 1;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #3C404A;
}

.mypage-link-card__arrow {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #99A1AF;
  flex-shrink: 0;
}

/* ========================================
   商品追加ボタン
   ======================================== */

.btn-add-sekou {
  position: relative;
  display: block;
  width: 100%;
  padding: 16px 24px;
  background: #2482CD;
  color: #fff;
  border: none;
  border-radius: 5px;
  text-decoration: none;
  text-align: center;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.0094em;
  box-sizing: border-box;
}

.btn-add-sekou:hover {
  background: #1d6da9;
}

.btn-add-sekou__icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(calc(-50% - 44px), -50%);
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #fff;
}

/* ========================================
   注意書き
   ======================================== */

.mypage-notice-text {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.33;
  color: #9FA5AD;
  padding: 0 4px;
}

.mypage-notice-text--archive {
  margin-top: 20px;
}

.mypage-notice-text p {
  margin: 0;
}

/* ========================================
   クーポンカード
   ======================================== */

.coupon-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.coupon-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 26px 14px;
  border: 2px solid #FFB7D5;
  border-radius: 10px;
  text-decoration: none;
  color: #3C404A;
  background: linear-gradient(180deg, #FFFFFF 0%, #FFF5F9 100%);
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  overflow: hidden;
  transition: box-shadow 0.2s;
}

.coupon-card--pink::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 46px;
  width: 86%;
  height: auto;
  background: url(../images/mypage/coupon-decoration.svg) center / contain no-repeat;
  pointer-events: none;
  z-index: 0;
  opacity: 0.3;
  aspect-ratio: 153 / 52;
}

.coupon-card > * {
  position: relative;
  z-index: 1;
}

.coupon-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.coupon-card--blue {
  border-color: rgba(87, 109, 153, 0.3);
  background: #fff;
}

.coupon-card__icon {
  flex-shrink: 0;
  width: 50px;
  height: 50px;
  padding: 10px;
  border-radius: 100px;
  background: #FFEDF4;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box;
}

.coupon-card--blue .coupon-card__icon {
  background: #CCD3E0;
}

.coupon-card__icon img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0;
}

.coupon-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.coupon-card__title {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  color: #EC4389;
  margin: 0;
}

.coupon-card--blue .coupon-card__title {
  color: #576D99;
}

.coupon-card__expiry {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 11px;
  font-weight: 300;
  line-height: 1;
  letter-spacing: -0.028em;
  color: #99A1AF;
  margin: 0;
}

.coupon-card__arrow {
  position: absolute;
  top: 50%;
  right: 7px;
  transform: translateY(-50%);
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #99A1AF;
}

/* ========================================
   クーポン詳細ページ
   ======================================== */

.coupon-detail-item {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.coupon-detail-item__body {
  background: #FFFFFF;
  border: none;
  border-radius: 10px;
  padding: 25px;
  margin: 0;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.78;
  letter-spacing: -0.01em;
  color: #3C404A;
}

.coupon-detail-item__body p {
  margin: 0 0 1em;
}

.coupon-detail-item__body p:last-child {
  margin-bottom: 0;
}

.coupon-detail-item__note {
  margin: 0;
  padding: 0 10px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.33;
  color: #9FA5AD;
}

.coupon-detail-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 65px;
  padding: 0 16px;
  margin: 0;
  border: none;
  border-radius: 10px;
  text-decoration: none;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #FFFFFF;
  box-sizing: border-box;
}

.coupon-detail-btn--pink {
  background: #EC4389;
}

.coupon-detail-btn--blue {
  background: #2482CD;
}

.coupon-detail-btn:hover {
  opacity: 0.9;
}

.coupon-detail-btn__label {
  display: inline-block;
}

.coupon-detail-btn__arrow {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #FFFFFF;
}

/* ========================================
   保証書ページ
   ======================================== */

.warranty-page {
  background: #F6F6F6;
  min-height: 100vh;
}

.warranty-page .container {
  padding: 0 16px;
  max-width: 500px;
  margin-top: 20px;
}

/* ========================================
   保証書詳細
   ======================================== */

.warranty-detail {
  background: #fff;
  border-radius: 10px;
  padding: 16px 16px 10px;
  margin: 0 auto;
  max-width: 100%;
}

.warranty-title-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 6px 10px 0 0;
  margin: 0 0 30px;
  text-align: left;
}

.warranty-title-card__logo {
  flex-shrink: 0;
  width: 72px;
  height: 67px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.warranty-title-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.warranty-title-card__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
  padding-top: 10px;
}

.warranty-title-card__label {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 28px;
  font-weight: 300;
  line-height: 0.95;
  letter-spacing: -0.014em;
  color: #5C3315;
  margin: 0;
}

.warranty-title-card__sub {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.022em;
  color: #51A64E;
  margin: 0;
}

.warranty-product {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 30px;
}

.warranty-product__heading {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.33;
  letter-spacing: -0.017em;
  color: #3C404A;
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #E1E3E5;
}

.warranty-product__row {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0;
  padding-bottom: 10px;
}

.warranty-product__thumb {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  border-radius: 5px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(241, 249, 255, 0) 0%, rgba(241, 249, 255, 1) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.warranty-product__thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.warranty-product__no-image {
  font-size: 11px;
  color: #909398;
}

.warranty-product__meta {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.warranty-product__category {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #3C404A;
  margin: 0;
}

.warranty-product__detail {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.33;
  letter-spacing: -0.01em;
  color: #3C404A;
  margin: 0;
}

.sekou-edit-fields {
  margin-bottom: 1rem;
}

.sekou-edit-field {
  margin-bottom: 0.75rem;
}

.sekou-edit-field label {
  display: block;
  font-size: 0.8125rem;
  font-weight: bold;
  margin-bottom: 0.375rem;
}

.sekou-edit-field input[type="date"],
.sekou-edit-field input[type="text"],
.sekou-edit-field select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 1rem;
  box-sizing: border-box;
}

.sekou-edit-field select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  padding-right: 2.5rem;
}

.sekou-image-delete-list {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.sekou-image-delete-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.sekou-image-delete-item__img {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 6px;
  border: 2px solid transparent;
  transition: opacity 0.2s, border-color 0.2s;
}

.sekou-image-delete-item--checked .sekou-image-delete-item__img {
  opacity: 0.5;
  border-color: #90cdf4;
}

.sekou-image-delete-item__del {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: #333;
  cursor: pointer;
}

.sekou-image-delete-item--checked .sekou-image-delete-item__del span {
  font-weight: bold;
}

.sekou-file-upload {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 0;
}

.sekou-file-upload input[type="file"] {
  display: none;
}

.sekou-edit-field .sekou-file-upload__btn {
  display: inline-block;
  padding: 0.2rem 1.1rem;
  margin: 0;
  background: #e8e8e8;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: normal;
  line-height: 1.5;
  color: #333;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
}

.sekou-file-upload__name {
  font-size: 0.875rem;
  color: #555;
  word-break: break-all;
}

.sekou-edit-field__note {
  margin-top: 0.375rem;
  font-size: 0.75rem;
  color: #888;
}

.warranty-product__save-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.75rem;
  background: #3b82f6;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: bold;
  cursor: pointer;
  box-sizing: border-box;
}

.warranty-product__save-btn:hover {
  background: #2563eb;
}

.warranty-product__change-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 100%;
  padding: 16px 15px;
  background: #909398;
  color: #fff;
  border: none;
  border-radius: 5px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.0094em;
  cursor: pointer;
  box-sizing: border-box;
}

.warranty-product__change-btn:hover {
  background: #7c7e84;
}

.warranty-product__change-btn-icon {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 19px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  color: #fff;
}

.warranty-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 0 30px;
}

.warranty-section h3 {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.33;
  letter-spacing: -0.017em;
  color: #3C404A;
  margin: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid #E1E3E5;
}

.warranty-image img {
  max-width: 100%;
  height: auto;
  border-radius: 5px;
}

.warranty-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.warranty-step {
  padding-left: 0;
  border-left: none;
}

.warranty-step__label {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #3C404A;
  margin: 0 0 4px;
}

.warranty-step__title {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #3C404A;
  margin: 0;
}

.warranty-step__desc {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #3C404A;
  margin: 0;
}

.warranty-step__link {
  margin: 6px 0 0;
}

.warranty-step__link a {
  display: inline-block;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #2482CD;
  text-decoration: underline;
  border: none;
  padding: 0;
}

.warranty-step__link a:hover {
  text-decoration: none;
}

.warranty-list {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.43;
  letter-spacing: -0.01em;
  color: #3C404A;
  padding-left: 1.2em;
  margin: 0;
}

.warranty-list li {
  margin-bottom: 4px;
}

.warranty-list--ordered {
  list-style: decimal;
}

.warranty-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: #F5F5F5;
  border: 1px solid #E1E3E5;
  border-radius: 5px;
  padding: 20px 12px;
  text-align: center;
}

.warranty-contact h3 {
  display: none;
}

.warranty-contact__label {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.21;
  letter-spacing: -0.01em;
  color: #909398;
  margin: 0;
}

.warranty-contact__tel {
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.21;
  letter-spacing: -0.01em;
  margin: 0;
}

.warranty-contact__tel a {
  color: #909398;
  text-decoration: none;
}

/* ========================================
   フォーム
   ======================================== */

.mypage-form {
  max-width: 600px;
}

.mypage-form__group {
  margin-bottom: 1.25rem;
}

.mypage-form__group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: bold;
  font-size: 0.875rem;
}

.mypage-form__group .required {
  color: #e53e3e;
}

.mypage-form__group select,
.mypage-form__group input[type='date'],
.mypage-form__group input[type='text'],
.mypage-form__group input[type='email'],
.mypage-form__group input[type='tel'] {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 1rem;
  box-sizing: border-box;
  background: #fff;
}

.mypage-form__group input[disabled],
.mypage-form__group input[readonly] {
  background: #f5f5f5;
  color: #999;
}

.mypage-form__group input.is-error {
  border-color: #e53e3e;
}

.mypage-form__group input[type='file'] {
  font-size: 0.875rem;
}

.mypage-form__hint {
  font-size: 0.75rem;
  color: #999;
  margin-top: 0.25rem;
}

.mypage-form__row {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
}

.mypage-form__row input {
  flex: 1;
}

.mypage-field-error {
  display: block;
  color: #e53e3e;
  font-size: 0.8125rem;
  margin-top: 0.25rem;
}

.mypage-form__actions {
  margin-top: 2rem;
}

/* ========================================
   ボタン
   ======================================== */

.btn-primary {
  display: inline-block;
  padding: 0.75rem 2rem;
  border: none;
  background: #e53e3e;
  color: #fff;
  font-size: 1rem;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
}

.btn-primary:hover {
  background: #c53030;
}

.btn-primary--full {
  display: block;
  width: 100%;
}

.btn-secondary {
  display: inline-block;
  padding: 0.75rem 1rem;
  border: 1px solid #ddd;
  background: #f5f5f5;
  color: #333;
  font-size: 0.875rem;
  border-radius: 8px;
  cursor: pointer;
  white-space: nowrap;
}

.btn-secondary:hover {
  background: #e8e8e8;
}

/* ========================================
   メッセージ
   ======================================== */

.mypage-message {
  padding: 1rem;
  margin-bottom: 1.5rem;
  border: 1px solid;
  border-radius: 8px;
}

.mypage-message--success {
  background: #e6f9e6;
  border-color: #a3d9a3;
  color: #1a7a1a;
}

.mypage-message--error {
  background: #fde8e8;
  border-color: #f5a3a3;
  color: #b91c1c;
}

.mypage-message p {
  margin: 0;
}

.mypage-message p + p {
  margin-top: 0.25rem;
}

/* ========================================
   新規登録（FluentForm）
   ======================================== */

.ff-zip-row {
  display: flex !important;
  gap: 0.5rem;
  align-items: stretch;
}

.ff-zip-row input {
  flex: 1;
  min-width: 0;
}

.ff-zip-search-btn {
  flex-shrink: 0;
  padding: 0 1.25rem;
  background: #4a7ec2;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: bold;
  cursor: pointer;
  white-space: nowrap;
}

.ff-zip-search-btn:hover {
  background: #3b6aa8;
}

.ff-zip-search-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}


/* ========================================
   ボトムナビゲーション
   ======================================== */

.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-around;
  align-items: flex-start;
  background: #fff;
  border-top: 1px solid #E5E7EB;
  z-index: 1000;
  padding: 13px 10px 0 40px;
  height: 80px;
  box-sizing: border-box;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  padding-bottom: env(safe-area-inset-bottom);
}

.bottom-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  padding: 0;
  text-decoration: none;
  color: #99A1AF;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.33;
  transition: color 0.2s;
}

.bottom-nav__item:hover,
.bottom-nav__item--active {
  color: #2482CD;
  font-weight: 600;
}

.bottom-nav__icon {
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bottom-nav__icon svg {
  width: 28px;
  height: 28px;
}

.bottom-nav__label {
  font-size: 12px;
  line-height: 1.33;
}

/* ========================================
   マイページ戻るリンク
   ======================================== */

.mypage-back {
  margin-top: 2rem;
}

.mypage-back a {
  color: #0066cc;
  text-decoration: none;
  font-size: 0.875rem;
}

.mypage-back a:hover {
  text-decoration: underline;
}

/* ========================================
   住まいのお困りごとサポート お問い合わせ：402px設計を基準に流動スケール（LPと同方式）
   402px以上ではカンプ通りの固定px、375px等に縮むと比例縮小する。
   登録ページ等は --cqs 未定義のため var(--cqs, 1px) が 1px となり従来通り固定pxのまま。
   ======================================== */

.sumai-inquiry-fluid {
  --cqs: calc(100vw / 402);
}

/* ========================================
   新規登録ページ ヘッダー（ロゴ + タイトル）
   ======================================== */

.register-header {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: min(35px, calc(35 * var(--cqs, 1px))) min(17px, calc(17 * var(--cqs, 1px))) min(20px, calc(20 * var(--cqs, 1px)));
}

.register-header__logo img {
  display: block;
  width: min(150px, calc(150 * var(--cqs, 1px)));
  height: auto;
}

.register-page-title {
  margin: 0;
  padding: 0 min(17px, calc(17 * var(--cqs, 1px))) min(20px, calc(20 * var(--cqs, 1px)));
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: min(18px, calc(18 * var(--cqs, 1px)));
  font-weight: 700;
  line-height: 1.55;
  color: #909398;
}

/* お問い合わせページのタイトルは1行を維持（nowrapは使わず、自身の左右paddingを外して幅を確保。
   外側20pxガター内で流動スケールし、約33pxの余白で折り返さない。テキストが長くなった場合は
   オーバーフローせず自然に折り返す） */
.sumai-inquiry-fluid .register-page-title {
  padding-inline: 0;
}

body:has(.register-page-title) .container {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}


.register-copyright {
  margin: auto 0 0;
  padding: min(20px, calc(20 * var(--cqs, 1px))) 0;
  text-align: center;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: min(10px, calc(10 * var(--cqs, 1px)));
  font-weight: 500;
  line-height: 2.8;
  letter-spacing: -0.044em;
  color: #909398;
}

/* ========================================
   新規登録（FluentForm）
   ======================================== */

.register-form-wrap {
  padding: 0 min(20px, calc(20 * var(--cqs, 1px)));
}

.register-form-wrap .fluentform,
.register-form-wrap .frm-fluent-form {
  background: #fff !important;
}

.register-form-wrap .frm-fluent-form fieldset {
  border: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
}

.register-form-wrap .ff-step-header,
.register-form-wrap .ff-el-progress-status,
.register-form-wrap .ff-el-progress,
.register-form-wrap .ff-el-progress-title {
  display: none !important;
}

.register-form-wrap .register-step-indicator {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  padding-block: 0 min(20px, calc(20 * var(--cqs, 1px))) !important;
  margin: 0 !important;
}

.register-form-wrap .register-step {
  position: relative !important;
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: min(30px, calc(30 * var(--cqs, 1px))) !important;
  height: min(30px, calc(30 * var(--cqs, 1px))) !important;
  border-radius: 50% !important;
  background: #F3F4F6 !important;
  color: #99A1AF !important;
  font-family: 'Inter', sans-serif !important;
  font-size: min(11px, calc(11 * var(--cqs, 1px))) !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
}

.register-form-wrap .register-step:not(:last-child) {
  margin-right: min(26px, calc(26 * var(--cqs, 1px))) !important;
}

.register-form-wrap .register-step:not(:last-child)::after {
  content: "" !important;
  position: absolute !important;
  left: calc(100% + 3px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: min(20px, calc(20 * var(--cqs, 1px))) !important;
  height: min(2px, calc(2 * var(--cqs, 1px))) !important;
  background: #E5E7EB !important;
  border-radius: min(4px, calc(4 * var(--cqs, 1px))) !important;
}

.register-form-wrap .register-step--current {
  background: #2482CD !important;
  color: #FFFFFF !important;
}

.register-form-wrap .ff-custom_html:has(.register-step-indicator) {
  margin-bottom: 0 !important;
}

.register-form-wrap .ff-el-group {
  margin-bottom: min(26px, calc(26 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-el-input--label {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: min(5px, calc(5 * var(--cqs, 1px))) !important;
  padding: 0 !important;
  width: 100% !important;
}

.register-form-wrap .ff-el-input--label label {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.43 !important;
  color: #3C404A !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: min(5px, calc(5 * var(--cqs, 1px))) !important;
  padding: 0 !important;
  width: 100% !important;
}

.register-form-wrap label.ff-el-input--label {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.43 !important;
  color: #3C404A !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  padding: 0 !important;
}

.register-form-wrap .ff-el-is-required.asterisk-right > label::after,
.register-form-wrap .ff-el-is-required.asterisk-right label::after {
  content: "必須" !important;
  display: inline-block !important;
  margin-left: min(8px, calc(8 * var(--cqs, 1px))) !important;
  background: #FB2C36 !important;
  color: #FFFFFF !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(10px, calc(10 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  padding: min(2px, calc(2 * var(--cqs, 1px))) min(8px, calc(8 * var(--cqs, 1px))) !important;
  border-radius: min(2px, calc(2 * var(--cqs, 1px))) !important;
  vertical-align: middle !important;
}

.register-form-wrap .ff-el-input--label.asterisk-right:not(.ff-el-is-required) > label::after,
.register-form-wrap .ff-el-input--label.asterisk-right:not(.ff-el-is-required) label::after {
  content: none !important;
}

.register-form-wrap input[type="text"],
.register-form-wrap input[type="email"],
.register-form-wrap input[type="tel"],
.register-form-wrap input[type="password"],
.register-form-wrap input[type="number"],
.register-form-wrap input[type="url"],
.register-form-wrap input[type="date"],
.register-form-wrap select,
.register-form-wrap textarea {
  width: 100% !important;
  background: #F5F5F5 !important;
  border: 1px solid #E1E3E5 !important;
  border-radius: min(5px, calc(5 * var(--cqs, 1px))) !important;
  padding: min(14px, calc(14 * var(--cqs, 1px))) min(12px, calc(12 * var(--cqs, 1px))) !important;
  height: min(53px, calc(53 * var(--cqs, 1px))) !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(15px, calc(15 * var(--cqs, 1px))) !important;
  font-weight: 400 !important;
  line-height: 1.21 !important;
  color: #3C404A !important;
  letter-spacing: -0.01em !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.register-form-wrap textarea {
  height: auto !important;
  min-height: min(80px, calc(80 * var(--cqs, 1px))) !important;
}

.register-form-wrap input::placeholder,
.register-form-wrap textarea::placeholder {
  color: #909398 !important;
  opacity: 1 !important;
}

.register-form-wrap input:focus,
.register-form-wrap select:focus,
.register-form-wrap textarea:focus {
  outline: none !important;
  border-color: #2482CD !important;
  background: #fff !important;
}

.register-form-wrap select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%233C404A' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  padding-right: min(40px, calc(40 * var(--cqs, 1px))) !important;
  cursor: pointer !important;
}

.register-form-wrap .ff-t-container {
  display: flex !important;
  gap: min(10px, calc(10 * var(--cqs, 1px))) !important;
  margin: 0 0 min(26px, calc(26 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-t-cell {
  flex: 1 !important;
  flex-basis: auto !important;
  padding: 0 !important;
}

.register-form-wrap .ff-t-cell .ff-el-group {
  margin-bottom: 0 !important;
}

.register-form-wrap .ff-custom_html {
  margin-bottom: min(5px, calc(5 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-custom_html .ff-el-input--label label {
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  color: #3C404A !important;
  margin: 0 !important;
}

.register-form-wrap input[name="prefecture"],
.register-form-wrap input[name="city"] {
  background: #F3F4F6 !important;
  border-color: #E5E7EB !important;
}

.register-form-wrap .ff-zip-row {
  display: flex !important;
  gap: min(8px, calc(8 * var(--cqs, 1px))) !important;
  align-items: stretch !important;
}

.register-form-wrap .ff-zip-row input {
  flex: 1 !important;
  min-width: 0 !important;
}

.register-form-wrap .ff-zip-search-btn {
  flex-shrink: 0 !important;
  width: min(122px, calc(122 * var(--cqs, 1px))) !important;
  height: min(53px, calc(53 * var(--cqs, 1px))) !important;
  padding: 0 !important;
  background: #2482CD !important;
  color: #fff !important;
  border: none !important;
  border-radius: min(5px, calc(5 * var(--cqs, 1px))) !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
  cursor: pointer !important;
  white-space: nowrap !important;
}

.register-form-wrap .ff-zip-search-btn:hover {
  background: #1d6da9 !important;
}

.register-form-wrap .ff-zip-search-btn:disabled {
  opacity: 0.6 !important;
  cursor: not-allowed !important;
}

.register-form-wrap .ff_file_upload_holder {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
}

.register-form-wrap .ff_upload_btn {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: min(3px, calc(3 * var(--cqs, 1px))) !important;
  width: 100% !important;
  height: auto !important;
  padding: min(16px, calc(16 * var(--cqs, 1px))) min(15px, calc(15 * var(--cqs, 1px))) !important;
  background: #2482CD !important;
  color: #fff !important;
  border: none !important;
  border-radius: min(5px, calc(5 * var(--cqs, 1px))) !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(15px, calc(15 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  cursor: pointer !important;
  line-height: 1 !important;
}

.register-form-wrap .ff_upload_btn::before {
  content: "photo_camera" !important;
  font-family: 'Material Icons' !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-size: min(19px, calc(19 * var(--cqs, 1px))) !important;
  line-height: 1 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  white-space: nowrap !important;
  word-wrap: normal !important;
  direction: ltr !important;
  -webkit-font-feature-settings: 'liga' !important;
  font-feature-settings: 'liga' !important;
  -webkit-font-smoothing: antialiased !important;
  color: #fff !important;
}

.register-form-wrap .ff_upload_btn:hover {
  background: #1d6da9 !important;
}

.register-form-wrap .ff-uploaded-list {
  font-size: min(12px, calc(12 * var(--cqs, 1px))) !important;
  color: #909398 !important;
  margin-top: min(8px, calc(8 * var(--cqs, 1px))) !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  word-break: break-all !important;
  box-sizing: border-box !important;
}

.register-form-wrap .ff-uploaded-list * {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

.register-form-wrap .ff-uploaded-list img {
  height: auto !important;
}

/* 状況写真フィールド（Figma 617-802）：ラベル右端の「複数登録可能」バッジ＋ボタン下の「※最大3枚まで送信可能です」注記。
   お問い合わせフォーム限定（[name="situation_photos"] は form 10 のみ）。--cqs で402px設計から流動スケール。 */
.register-form-wrap .ff-el-group:has([name="situation_photos"]) .ff-el-input--label.asterisk-right label::after {
  content: "複数登録可能" !important;
  display: inline-block !important;
  flex-shrink: 0 !important;
  margin-left: min(8px, calc(8 * var(--cqs, 1px))) !important;
  background: #909398 !important;
  color: #FFFFFF !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(10px, calc(10 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  padding: min(4px, calc(4 * var(--cqs, 1px))) min(9px, calc(9 * var(--cqs, 1px))) !important;
  border-radius: min(2px, calc(2 * var(--cqs, 1px))) !important;
  vertical-align: middle !important;
}

.register-form-wrap .ff-el-group:has([name="situation_photos"]) .ff-el-input--content::after {
  content: "※最大3枚まで送信可能です";
  display: block;
  color: #909398;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: min(10px, calc(10 * var(--cqs, 1px)));
  font-weight: 500;
  line-height: 2;
  letter-spacing: -0.015em;
  text-align: left;
}

/* 住まいのお困りごとサポート お問い合わせ：入力欄の背景を薄い黄色に（Figma 617-386/617-815, #FFF5D4）。
   対象＝サービスカテゴリ/問い合わせ内容/ご連絡方法(select)＋お名前/メール/郵便番号/都道府県/市区町村/町名・丁目/電話番号。
   対象外＝自由記述(textarea)・住所(マンション名=building)・状況写真ボタン。select の矢印を保つため background-color 指定。フォーカス時も黄色を維持。 */
.sumai-inquiry-fluid .register-form-wrap select,
.sumai-inquiry-fluid .register-form-wrap input[name="last_name"],
.sumai-inquiry-fluid .register-form-wrap input[name="first_name"],
.sumai-inquiry-fluid .register-form-wrap input[name="email"],
.sumai-inquiry-fluid .register-form-wrap input[name="zipcode"],
.sumai-inquiry-fluid .register-form-wrap input[name="prefecture"],
.sumai-inquiry-fluid .register-form-wrap input[name="city"],
.sumai-inquiry-fluid .register-form-wrap input[name="town"],
.sumai-inquiry-fluid .register-form-wrap input[name="phone"],
.sumai-inquiry-fluid .register-form-wrap select:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="last_name"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="first_name"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="email"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="zipcode"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="prefecture"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="city"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="town"]:focus,
.sumai-inquiry-fluid .register-form-wrap input[name="phone"]:focus {
  background-color: #FFF5D4 !important;
}

.register-form-wrap fieldset,
.register-form-wrap .fluentform,
.register-form-wrap form,
.register-form-wrap .ff-step-container,
.register-form-wrap .ff-step-body,
.register-form-wrap .fluentform-step,
.register-form-wrap .ff-el-group,
.register-form-wrap .ff-el-input--content {
  min-inline-size: 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.register-form-wrap .ff-el-tc {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

.register-form-wrap .ff_tc_label {
  display: flex !important;
  align-items: center !important;
  gap: min(10px, calc(10 * var(--cqs, 1px))) !important;
  margin: 0 !important;
  cursor: pointer !important;
}

.register-form-wrap .fluentform .ff-el-tc label.ff_tc_label > span.ff_tc_checkbox {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: min(27px, calc(27 * var(--cqs, 1px))) !important;
  height: min(27px, calc(27 * var(--cqs, 1px))) !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}

.register-form-wrap .ff_tc_checkbox input[type="checkbox"] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  opacity: 0 !important;
  cursor: pointer !important;
  z-index: 1 !important;
}

.register-form-wrap .ff_tc_checkbox::before {
  content: "check_circle" !important;
  font-family: 'Material Symbols Sharp', 'Material Icons' !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-size: min(27px, calc(27 * var(--cqs, 1px))) !important;
  line-height: 1 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  white-space: nowrap !important;
  word-wrap: normal !important;
  direction: ltr !important;
  -webkit-font-feature-settings: 'liga' !important;
  font-feature-settings: 'liga' !important;
  -webkit-font-smoothing: antialiased !important;
  color: #E1E1E1 !important;
  font-variation-settings: 'FILL' 1 !important;
}

.register-form-wrap .ff_tc_label:has(input[type="checkbox"]:checked) .ff_tc_checkbox::before {
  color: #2482CD !important;
}

.register-form-wrap .ff_t_c {
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.43 !important;
  letter-spacing: -0.01em !important;
  color: #909398 !important;
}

.register-form-wrap .ff_t_c a {
  color: #2482CD !important;
  text-decoration: underline !important;
}

.register-form-wrap .step-nav {
  display: flex !important;
  align-items: center !important;
  gap: min(10px, calc(10 * var(--cqs, 1px))) !important;
  margin-top: min(30px, calc(30 * var(--cqs, 1px))) !important;
  padding-bottom: min(20px, calc(20 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-btn-next,
.register-form-wrap .ff-btn-submit {
  flex: 1 1 auto !important;
  width: 100% !important;
  float: none !important;
  background: #2482CD !important;
  color: #fff !important;
  border: none !important;
  border-radius: min(100px, calc(100 * var(--cqs, 1px))) !important;
  padding: min(14px, calc(14 * var(--cqs, 1px))) min(36px, calc(36 * var(--cqs, 1px))) !important;
  height: auto !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(17px, calc(17 * var(--cqs, 1px))) !important;
  font-weight: 700 !important;
  line-height: 1.41 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), 0px 10px 15px -3px rgba(0, 0, 0, 0.1) !important;
  cursor: pointer !important;
}

.register-form-wrap .ff-btn-next:hover,
.register-form-wrap .ff-btn-submit:hover {
  background: #1d6da9 !important;
}

.register-form-wrap .ff-btn-prev {
  display: none !important;
  flex: 0 0 auto !important;
  float: none !important;
  background: transparent !important;
  color: #909398 !important;
  border: 1px solid #E1E3E5 !important;
  border-radius: min(100px, calc(100 * var(--cqs, 1px))) !important;
  padding: min(12px, calc(12 * var(--cqs, 1px))) min(24px, calc(24 * var(--cqs, 1px))) !important;
  height: auto !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  letter-spacing: -0.01em !important;
  cursor: pointer !important;
  box-shadow: none !important;
}

.register-form-wrap .ff-btn-prev:hover {
  background: #F5F5F5 !important;
}

.register-form-wrap .ff-step-t-container .ff-t-cell-1,
.register-form-wrap .ff-step-t-container .ff-t-column-1 {
  display: none !important;
}

.register-form-wrap .ff-step-t-container {
  display: flex !important;
  align-items: center !important;
  gap: min(10px, calc(10 * var(--cqs, 1px))) !important;
  margin-top: min(30px, calc(30 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-step-t-container .ff-t-cell-1,
.register-form-wrap .ff-step-t-container .ff-t-column-1 {
  flex: 0 0 auto !important;
  width: auto !important;
  flex-basis: auto !important;
}

.register-form-wrap .ff-step-t-container .ff-t-cell-2,
.register-form-wrap .ff-step-t-container .ff-t-column-2 {
  flex: 1 1 auto !important;
  flex-basis: auto !important;
}

.register-form-wrap .ff-step-t-container .step-nav {
  margin-top: 0 !important;
  display: block !important;
}

.register-form-wrap .ff-step-t-container .ff_submit_btn_wrapper {
  margin: 0 !important;
}

.register-form-wrap .register-login-link {
  margin: 0 !important;
  padding: 0 !important;
  text-align: center !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: min(14px, calc(14 * var(--cqs, 1px))) !important;
  font-weight: 500 !important;
  line-height: 1.43 !important;
  letter-spacing: -0.01em !important;
  color: #3C404A !important;
}

.register-form-wrap .register-login-link a {
  color: #2482CD !important;
  text-decoration: underline !important;
  font-weight: 700 !important;
}

.register-form-wrap .fluentform-step {
  padding: 0 !important;
}

.register-form-wrap .fluentform-step.active {
  display: flex !important;
  flex-direction: column !important;
}

.register-form-wrap .fluentform-step .step-nav {
  order: 98 !important;
}

.register-form-wrap .fluentform-step .ff-custom_html:has(.register-login-link) {
  margin-bottom: 0 !important;
}

.register-form-wrap .ff-el-group:has(input[name="terms"]) {
  margin-bottom: 0 !important;
}

.register-form-wrap .ff-el-datepicker {
  background: #F5F5F5 !important;
  cursor: pointer !important;
}

.register-form-wrap .ff-el-group:has(input[name="sekou_date"]) .ff-el-input--content {
  position: relative !important;
}

.register-form-wrap .ff-el-group:has(input[name="sekou_date"]) .ff-el-input--content::before {
  content: "calendar_month" !important;
  font-family: 'Material Icons' !important;
  font-weight: normal !important;
  font-style: normal !important;
  font-size: min(27px, calc(27 * var(--cqs, 1px))) !important;
  line-height: 1 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  white-space: nowrap !important;
  word-wrap: normal !important;
  direction: ltr !important;
  -webkit-font-feature-settings: 'liga' !important;
  font-feature-settings: 'liga' !important;
  -webkit-font-smoothing: antialiased !important;
  position: absolute !important;
  left: min(10px, calc(10 * var(--cqs, 1px))) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: #2482CD !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.register-form-wrap input[name="sekou_date"] {
  padding-left: min(50px, calc(50 * var(--cqs, 1px))) !important;
}

.register-form-wrap .ff-el-form-control.error,
.register-form-wrap .ff-el-form-control.has-error,
.register-form-wrap input.error {
  border-color: #FB2C36 !important;
}

.register-form-wrap .error-container,
.register-form-wrap .ff-el-input--content > .text-danger {
  color: #FB2C36 !important;
  font-size: min(12px, calc(12 * var(--cqs, 1px))) !important;
  margin-top: min(4px, calc(4 * var(--cqs, 1px))) !important;
}

/* ========================================
   お問い合わせ 確認画面（STEP3・JS生成）
   ======================================== */
.register-form-wrap .inquiry-confirm {
  margin-top: min(4px, calc(4 * var(--cqs, 1px)));
}
.register-form-wrap .inquiry-confirm__section {
  margin-top: min(28px, calc(28 * var(--cqs, 1px)));
}
.register-form-wrap .inquiry-confirm__head {
  margin: 0 0 min(18px, calc(18 * var(--cqs, 1px)));
  padding-bottom: min(12px, calc(12 * var(--cqs, 1px)));
  border-bottom: 1px solid #e1e3e5;
  text-align: center;
  font-weight: 700;
  font-size: min(18px, calc(18 * var(--cqs, 1px)));
  color: #1f2a37;
}
.register-form-wrap .inquiry-confirm__row {
  margin-bottom: min(16px, calc(16 * var(--cqs, 1px)));
}
.register-form-wrap .inquiry-confirm__label {
  margin: 0 0 min(6px, calc(6 * var(--cqs, 1px)));
  font-size: min(14px, calc(14 * var(--cqs, 1px)));
  color: #374151;
}
.register-form-wrap .inquiry-confirm__value {
  min-height: min(22px, calc(22 * var(--cqs, 1px)));
  padding: min(13px, calc(13 * var(--cqs, 1px))) min(14px, calc(14 * var(--cqs, 1px)));
  background: #f5f5f5;
  border: 1px solid #e1e3e5;
  border-radius: min(8px, calc(8 * var(--cqs, 1px)));
  font-size: min(15px, calc(15 * var(--cqs, 1px)));
  color: #1f2a37;
  word-break: break-all;
}
.register-form-wrap .inquiry-confirm__value--area {
  min-height: min(96px, calc(96 * var(--cqs, 1px)));
  white-space: pre-wrap;
}
.register-form-wrap .inquiry-confirm__value-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: min(12px, calc(12 * var(--cqs, 1px)));
}
.register-form-wrap .inquiry-confirm__thumbs {
  display: flex;
  gap: min(8px, calc(8 * var(--cqs, 1px)));
}
.register-form-wrap .inquiry-confirm__thumb {
  flex: 1 1 0;
  aspect-ratio: 4 / 3;
  border-radius: min(6px, calc(6 * var(--cqs, 1px)));
  overflow: hidden;
  background: #f5f5f5;
  border: 1px solid #e1e3e5;
}
.register-form-wrap .inquiry-confirm__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ステップ自動フォーカス時、説明ブロック（ステップ番号等）のフォーカス枠を抑制 */
.register-form-wrap .ff-custom_html:focus,
.register-form-wrap .fluentform-step:focus {
  outline: none;
}


/* ========================================
   ユーザー設定ページ
   ======================================== */

.mypage-form-card {
  background: #fff;
  border-radius: 7px;
  padding: 20px;
  margin: 0 auto;
  box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), 0px 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.mypage-form-card .register-form-wrap {
  max-width: 100%;
  padding: 0;
  margin: 0;
}

.mypage-form-card .ff-btn-submit {
  flex: 1 1 auto !important;
  width: 100% !important;
  float: none !important;
  background: #2482CD !important;
  color: #fff !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  height: auto !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.41 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), 0px 10px 15px -3px rgba(0, 0, 0, 0.1) !important;
  cursor: pointer !important;
  visibility: visible !important;
}

.mypage-form-card .ff_submit_btn_wrapper {
  margin-top: 10px !important;
}

/* ========================================
   キャンペーン CTA
   ======================================== */

.campaign-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 30px;
  background: #EC4389;
  color: #fff;
  text-decoration: none;
  padding: 0 16px;
  height: 65px;
  border-radius: 10px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.campaign-cta:hover {
  opacity: 0.9;
}

.campaign-cta__arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/* ========================================
   おすすめサービス
   ======================================== */

.recommend-category {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
}

.recommend-category__header {
  background: #2482CD;
  color: #fff;
  text-align: center;
  padding: 10px;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
}

.recommend-category__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 14px;
  padding: 15px min(13px, calc(13 * 100 / var(--cq-ref) * 1cqi));
}

.recommend-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none;
  color: #000;
}

.recommend-item:hover .recommend-item__img {
  opacity: 0.85;
}

.recommend-item__img {
  width: 100%;
  aspect-ratio: 163 / 110;
  border-radius: 20px;
  overflow: hidden;
  background: #D9D9D9;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
  transition: opacity 0.2s;
}

.recommend-item__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.recommend-item__label {
  margin: 0;
  text-align: center;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: min(14px, calc(14 * 100 / var(--cq-ref) * 1cqi));;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.032em;
  color: #000;
}

.recommend-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #2482CD;
  color: #fff;
  text-decoration: none;
  padding: 0 16px;
  height: 65px;
  border-radius: 0;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
}

.recommend-cta:hover {
  opacity: 0.9;
}

.recommend-cta:hover {
  background: #1d6da9;
}

.recommend-cta__arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 16px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/* ========================================
   下部固定ボタン
   ======================================== */

.register-form-wrap .ff-btn-next,
.register-form-wrap .ff-btn-submit,
.mypage-form-card .ff-btn-submit,
.coupon-detail-btn {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: calc(20px + env(safe-area-inset-bottom)) !important;
  width: calc(100% - 40px) !important;
  max-width: 600px !important;
  margin: 0 auto !important;
  z-index: 998 !important;
}

.register-form-wrap .fluentform-step .ff-btn-next,
.register-form-wrap .ff-step-t-container .ff-btn-submit {
  bottom: calc(64px + env(safe-area-inset-bottom)) !important;
}

body:has(.bottom-nav) .mypage-form-card .ff-btn-submit,
body:has(.bottom-nav) .coupon-detail-btn {
  bottom: calc(100px + env(safe-area-inset-bottom)) !important;
}

body:has(.mypage-form-card .ff-btn-submit) main,
body:has(.coupon-detail-btn) main {
  padding-bottom: calc(140px + env(safe-area-inset-bottom)) !important;
}

body:has(.bottom-nav):has(.mypage-form-card .ff-btn-submit) main,
body:has(.bottom-nav):has(.coupon-detail-btn) main {
  padding-bottom: calc(200px + env(safe-area-inset-bottom)) !important;
}

/* ========================================
   商品追加ページ
   ======================================== */

.add-sekou-page .mypage-form-card:not(.ff-t-container) {
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.add-sekou-page .register-form-wrap .fluentform,
.add-sekou-page .register-form-wrap .frm-fluent-form {
  background: transparent !important;
}

.add-sekou-page .ff-t-cell .ff-el-group {
  margin-bottom: 26px !important;
}

.add-sekou-page .ff-t-cell .ff-el-group:last-child {
  margin-bottom: 0 !important;
}

.add-sekou-page .mypage-form-card.ff-t-container {
  margin-bottom: 30px !important;
}

.add-sekou-page .ff-btn-submit {
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

body:has(.add-sekou-page) main {
  padding-bottom: 5rem !important;
}

body:has(.bottom-nav):has(.add-sekou-page) main {
  padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important;
}

/* ========================================
   ログインページ ヘッダー（ロゴ + タイトル）
   ======================================== */

.login-header {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 60px 17px 20px;
}

.login-header__logo img {
  display: block;
  width: 150px;
  height: auto;
}

.login-page-title {
  margin: 0;
  padding: 0 17px 30px;
  text-align: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.55;
  color: #909398;
}

.login-copyright {
  padding: 20px 0;
  text-align: center;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 10px;
  font-weight: 500;
  line-height: 2.8;
  letter-spacing: -0.044em;
  color: #909398;
}

/* ========================================
   ログインフォーム（FluentAuth [fluent_auth]）
   ======================================== */

.login-form-wrap {
  max-width: 500px;
  margin: 0 auto;
  padding-inline: 10px;
}

.login-form-wrap .fls_auth_wrapper,
.login-form-wrap .fls_login_wrapper {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.login-form-wrap form#loginform,
.login-form-wrap form.fls_reset_pass_form {
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.login-form-wrap p.login-username,
.login-form-wrap p.login-password,
.login-form-wrap .fls_field_group {
  margin: 0 0 26px !important;
  padding: 0 !important;
  display: block !important;
}

.login-form-wrap p.login-username > label,
.login-form-wrap p.login-password > label,
.login-form-wrap .fls_field_label > label {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
  margin: 0 0 5px !important;
  padding: 0 !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.43 !important;
  color: #3C404A !important;
  letter-spacing: -0.01em !important;
}

.login-form-wrap p.login-username > label::after,
.login-form-wrap p.login-password > label::after,
.login-form-wrap .fls_field_label.is-required > label::after {
  content: "必須" !important;
  display: inline-block !important;
  margin-left: 8px !important;
  flex-shrink: 0 !important;
  background: #FB2C36 !important;
  color: #FFFFFF !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  padding: 2px 8px !important;
  border-radius: 2px !important;
}

.login-form-wrap input[type="text"],
.login-form-wrap input[type="email"],
.login-form-wrap input[type="password"] {
  width: 100% !important;
  background: #F5F5F5 !important;
  border: 1px solid #E1E3E5 !important;
  border-radius: 5px !important;
  padding: 14px 12px !important;
  height: 53px !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.21 !important;
  color: #3C404A !important;
  letter-spacing: -0.01em !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
}

.login-form-wrap input::placeholder {
  color: #909398 !important;
  opacity: 1 !important;
}

.login-form-wrap input:focus {
  outline: none !important;
  border-color: #2482CD !important;
  background: #fff !important;
}

.login-form-wrap p.login-remember {
  margin: 0 0 20px !important;
  padding: 0 !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 13px !important;
  color: #3C404A !important;
}

.login-form-wrap p.login-remember label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  cursor: pointer !important;
}

.login-form-wrap p.login-remember input[type="checkbox"] {
  margin: 0 !important;
  width: 18px !important;
  height: 18px !important;
  accent-color: #2482CD !important;
}

.login-form-wrap .fls_login_wrapper > p {
  margin: 16px 0 0 !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 13px !important;
  color: #909398 !important;
}

.login-form-wrap .fls_login_wrapper > p a,
.login-form-wrap #fls_show_reset_password {
  color: #2482CD !important;
  text-decoration: underline !important;
  cursor: pointer !important;
}

.login-form-wrap p.login-submit {
  margin: 30px 0 0 !important;
  padding: 0 0 20px 0 !important;
}

.login-form-wrap p.login-submit input[type="submit"],
.login-form-wrap #wp-submit,
.login-form-wrap #fls_reset_pass {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 6px !important;
  width: 100% !important;
  background: #2482CD !important;
  color: #fff !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 14px 36px !important;
  height: auto !important;
  font-family: 'Inter', 'Noto Sans JP', sans-serif !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.41 !important;
  letter-spacing: -0.01em !important;
  box-shadow: 0px 4px 6px -4px rgba(0, 0, 0, 0.1), 0px 10px 15px -3px rgba(0, 0, 0, 0.1) !important;
  cursor: pointer !important;
  text-shadow: none !important;
}

.login-form-wrap p.login-submit input[type="submit"]:hover,
.login-form-wrap #wp-submit:hover,
.login-form-wrap #fls_reset_pass:hover {
  background: #1d6da9 !important;
}

body:has(.login-form-wrap) main {
  padding-bottom: 0 !important;
}

.login-form-wrap .fls_reset_pass_wrapper.hide {
  display: none !important;
}

.login-form-wrap .fls_field_label {
  margin-bottom: 5px !important;
}

.login-form-wrap .fls_loading_svg {
  display: none !important;
}

.login-form-wrap #fls_reset_pass.fls_loading .fls_loading_svg {
  display: inline-block !important;
}

/* 製品写真フィールド：「複数登録可能」バッジ */
.register-form-wrap .ff-el-group:has(input[name="model_photo"]) .ff-el-input--label {
  display: flex;
  align-items: center;
}
.register-form-wrap .ff-el-group:has(input[name="model_photo"]) .ff-el-input--label::after {
  content: '複数登録可能';
  display: inline-block;
  padding: 2px 10px;
  margin-left: 8px;
  background: #999;
  color: #fff;
  border-radius: 4px;
  font-size: 12px;
  font-weight: normal;
  vertical-align: middle;
  white-space: nowrap;
}

/* 製品写真フィールド：注釈テキスト */
.register-form-wrap .ff-el-group:has(input[name="model_photo"]) .ff-el-input--content::after {
  content: '※型番ラベルや本体などの写真を3枚まで登録できます。';
  display: block;
  font-size: 0.75rem;
  color: #aaa;
  margin-top: 8px;
}
