/* ======================================================
   Kosen Talk Ring
   Common Components v1.0
====================================================== */

/* ------------------------------
   ボタン
------------------------------ */

.ktr-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  font-family: var(--font);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.ktr-button:hover {
  transform: translateY(-1px);
}

.ktr-button:focus-visible {
  outline: 3px solid rgba(232, 141, 95, 0.25);
  outline-offset: 3px;
}

.ktr-button--primary {
  background: var(--primary);
  color: var(--surface);
  box-shadow: var(--shadow-sm);
}

.ktr-button--primary:hover {
  background: var(--primary-dark);
  box-shadow: var(--shadow-md);
}

.ktr-button--secondary {
  background: var(--surface);
  color: var(--primary-dark);
  border-color: var(--primary-light);
}

.ktr-button--secondary:hover {
  background: var(--background);
}

.ktr-button--ghost {
  background: transparent;
  color: var(--text-light);
  border-color: var(--border);
}
.ktr-button--full {
  width: 100%;
}

/* ------------------------------
   カード
------------------------------ */

.ktr-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.ktr-card__body {
  padding: 20px;
}

.ktr-card--interactive {
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.ktr-card--interactive:hover {
  transform: translateY(-3px);
  border-color: var(--primary-light);
  box-shadow: var(--shadow-md);
}

/* ------------------------------
   セクション見出し
------------------------------ */

.ktr-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.ktr-section-heading__text {
  min-width: 0;
}

.ktr-section-title {
  margin: 0;
  color: var(--text);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 800;
  line-height: 1.4;
}

.ktr-section-description {
  margin: 5px 0 0;
  color: var(--text-light);
  font-size: 14px;
  line-height: 1.7;
}

.ktr-section-link {
  flex-shrink: 0;
  color: var(--primary-dark);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}

.ktr-section-link:hover {
  text-decoration: underline;
}

/* ------------------------------
   タグ
------------------------------ */

.ktr-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ktr-tag {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.ktr-tag--neutral {
  background: #f3f4f6;
  color: var(--text-light);
}

.ktr-tag--success {
  background: rgba(48, 196, 141, 0.12);
  color: #187a58;
}

/* ------------------------------
   プロフィール画像
------------------------------ */

.ktr-avatar {
  display: block;
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border: 3px solid var(--surface);
  border-radius: 50%;
  background: var(--background);
  object-fit: cover;
  box-shadow: var(--shadow-sm);
}

.ktr-avatar--small {
  width: 44px;
  height: 44px;
}

.ktr-avatar--large {
  width: 104px;
  height: 104px;
}

/* ------------------------------
   プロフィールカード
------------------------------ */

.ktr-profile-card {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.ktr-profile-card:hover {
  transform: translateY(-4px);
  border-color: var(--primary-light);
  box-shadow: var(--shadow-md);
}

.ktr-profile-card__header {
  min-height: 82px;
  background:
    linear-gradient(
      135deg,
      var(--primary-light),
      var(--primary)
    );
}

.ktr-profile-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 0 20px 20px;
}

.ktr-profile-card__avatar {
  margin-top: -34px;
  margin-bottom: 12px;
}

.ktr-profile-card__number {
  position: absolute;
  top: 14px;
  left: 14px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
}

.ktr-profile-card__generation {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(45, 45, 45, 0.72);
  color: #ffffff;
  font-size: 12px;
  font-weight: 700;
}

.ktr-profile-card__name {
  margin: 0;
  color: var(--text);
  font-size: 20px;
  font-weight: 800;
  line-height: 1.4;
}

.ktr-profile-card__school {
  margin: 5px 0 0;
  color: var(--text-light);
  font-size: 14px;
  line-height: 1.6;
}

.ktr-profile-card__role {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
}

.ktr-profile-card__tags {
  margin-top: 14px;
}

.ktr-profile-card__bio {
  display: -webkit-box;
  margin: 14px 0 0;
  overflow: hidden;
  color: var(--text-light);
  font-size: 14px;
  line-height: 1.8;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

.ktr-profile-card__actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: auto;
  padding-top: 20px;
}

/* ------------------------------
   検索欄
------------------------------ */

.ktr-search {
  position: relative;
  width: 100%;
}

.ktr-search__input {
  width: 100%;
  min-height: 50px;
  padding: 12px 18px 12px 46px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--surface);
  color: var(--text);
  font-family: var(--font);
  font-size: 16px;
  box-sizing: border-box;
}

.ktr-search__input::placeholder {
  color: #9a9a9a;
}

.ktr-search__input:focus {
  border-color: var(--primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(232, 141, 95, 0.15);
}

.ktr-search__icon {
  position: absolute;
  top: 50%;
  left: 17px;
  color: var(--text-light);
  transform: translateY(-50%);
  pointer-events: none;
}

/* ------------------------------
   ステータスカード
------------------------------ */

.ktr-status-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 90px;
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm);
}

.ktr-status-card__icon {
  display: grid;
  flex-shrink: 0;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 14px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 20px;
}

.ktr-status-card__label {
  margin: 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.5;
}

.ktr-status-card__value {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 800;
  line-height: 1.4;
}

/* ------------------------------
   プログレスバー
------------------------------ */

.ktr-progress {
  width: 100%;
}

.ktr-progress__header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  color: var(--text-light);
  font-size: 13px;
  font-weight: 700;
}

.ktr-progress__track {
  width: 100%;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #f1e8e2;
}

.ktr-progress__bar {
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(
      90deg,
      var(--primary-light),
      var(--primary)
    );
}

/* ------------------------------
   空状態
------------------------------ */

.ktr-empty-state {
  padding: 40px 20px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
}

.ktr-empty-state__title {
  margin: 0;
  color: var(--text);
  font-size: 18px;
  font-weight: 800;
}

.ktr-empty-state__text {
  margin: 8px 0 0;
  color: var(--text-light);
  font-size: 14px;
  line-height: 1.7;
}

/* ------------------------------
   スマートフォン調整
------------------------------ */

@media (max-width: 640px) {
  .ktr-button {
    min-height: 48px;
    padding-inline: 16px;
  }

  .ktr-card__body {
    padding: 16px;
  }

  .ktr-section-heading {
    align-items: flex-start;
  }

  .ktr-section-title {
    font-size: 21px;
  }

  .ktr-profile-card__content {
    padding-inline: 16px;
    padding-bottom: 16px;
  }

  .ktr-profile-card__actions {
    grid-template-columns: 1fr;
  }

  .ktr-status-card {
    min-height: 82px;
    padding: 15px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Profile Card Complete Version
====================================================== */

.ktr-member-card {
  position: relative;
  display: flex;
  overflow: hidden;
  flex-direction: column;
  min-width: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.ktr-member-card:hover {
  border-color: rgba(232, 141, 95, 0.45);
  box-shadow: var(--shadow-md);
  transform: translateY(-5px);
}

/* 上部の背景 */

.ktr-member-card__cover {
  position: relative;
  height: 96px;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(255, 255, 255, 0.35),
      transparent 34%
    ),
    linear-gradient(
      135deg,
      var(--primary),
      var(--primary-light)
    );
}

.ktr-member-card__cover::before,
.ktr-member-card__cover::after {
  position: absolute;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
  content: "";
}

.ktr-member-card__cover::before {
  top: -42px;
  right: -22px;
  width: 120px;
  height: 120px;
}

.ktr-member-card__cover::after {
  right: 65px;
  bottom: -52px;
  width: 90px;
  height: 90px;
}

/* 会員番号・年代 */

.ktr-member-card__badges {
  position: absolute;
  top: 14px;
  right: 14px;
  left: 14px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.ktr-member-card__number,
.ktr-member-card__age {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 27px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.ktr-member-card__number {
  background: rgba(255, 255, 255, 0.94);
  color: var(--primary-dark);
}

.ktr-member-card__age {
  background: rgba(70, 54, 47, 0.76);
  color: #ffffff;
}

/* プロフィール画像 */

.ktr-member-card__avatar-wrap {
  position: relative;
  z-index: 3;
  width: 88px;
  height: 88px;
  margin: -44px auto 0;
  padding: 4px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 8px 20px rgba(57, 42, 34, 0.14);
}

.ktr-member-card__avatar {
  display: grid;
  width: 100%;
  height: 100%;
  overflow: hidden;
  place-items: center;
  border-radius: 50%;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 29px;
  font-weight: 900;
  object-fit: cover;
}

.ktr-member-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 基本情報 */

.ktr-member-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 14px 18px 18px;
}

.ktr-member-card__identity {
  text-align: center;
}

.ktr-member-card__name {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 900;
  line-height: 1.4;
}

.ktr-member-card__school {
  margin: 4px 0 0;
  color: var(--text-light);
  font-size: 13px;
  font-weight: 700;
}

.ktr-member-card__current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 9px;
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
}

/* キャリア経歴 */

.ktr-member-card__career {
  position: relative;
  display: grid;
  gap: 0;
  margin-top: 18px;
  padding: 14px 13px;
  background: #fffaf6;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: var(--radius-md);
}

.ktr-member-card__career-title {
  margin: 0 0 9px;
  color: var(--text-light);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.12em;
}

.ktr-member-card__career-item {
  position: relative;
  display: grid;
  grid-template-columns: 15px minmax(0, 1fr);
  gap: 8px;
  min-height: 31px;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.ktr-member-card__career-item:not(:last-child)::after {
  position: absolute;
  top: 13px;
  bottom: -2px;
  left: 5px;
  width: 2px;
  background: rgba(232, 141, 95, 0.3);
  content: "";
}

.ktr-member-card__career-dot {
  position: relative;
  z-index: 1;
  width: 11px;
  height: 11px;
  margin-top: 3px;
  border: 3px solid #ffe4d2;
  border-radius: 50%;
  background: var(--primary);
}

.ktr-member-card__career-item.is-current {
  color: var(--primary-dark);
  font-weight: 900;
}

/* 相談可能テーマ */

.ktr-member-card__topics {
  margin-top: 16px;
}

.ktr-member-card__label {
  margin: 0 0 8px;
  color: var(--text-light);
  font-size: 11px;
  font-weight: 800;
}

.ktr-member-card__tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ktr-member-card__tag {
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--background);
  color: var(--text-light);
  font-size: 11px;
  font-weight: 700;
}

/* 予約受付状態 */

.ktr-member-card__availability {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 15px;
  padding: 9px 11px;
  border-radius: var(--radius-sm);
  background: #f3faf5;
  color: #29733d;
  font-size: 12px;
  font-weight: 800;
}

.ktr-member-card__availability-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #38a856;
  box-shadow: 0 0 0 4px rgba(56, 168, 86, 0.12);
}

.ktr-member-card__availability.is-unavailable {
  background: #f5f5f5;
  color: #777777;
}

.ktr-member-card__availability.is-unavailable
  .ktr-member-card__availability-dot {
  background: #999999;
  box-shadow: none;
}

/* ボタン */

.ktr-member-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: auto;
  padding-top: 17px;
}

.ktr-member-card__actions .ktr-button {
  min-height: 42px;
  padding: 9px 10px;
  font-size: 12px;
  text-align: center;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-member-card__cover {
    height: 88px;
  }

  .ktr-member-card__avatar-wrap {
    width: 82px;
    height: 82px;
    margin-top: -41px;
  }

  .ktr-member-card__body {
    padding-right: 16px;
    padding-left: 16px;
  }

  .ktr-member-card__actions {
    grid-template-columns: 1fr;
  }
}

/* ======================================================
   Kosen Talk Ring
   Profile Detail Page
====================================================== */

/* ------------------------------
   プロフィール上部
------------------------------ */

.ktr-profile-hero {
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
}

.ktr-profile-hero__cover {
  position: relative;
  height: 180px;
  background:
    radial-gradient(
      circle at 82% 20%,
      rgba(255, 255, 255, 0.3),
      transparent 24%
    ),
    radial-gradient(
      circle at 15% 90%,
      rgba(255, 255, 255, 0.18),
      transparent 28%
    ),
    linear-gradient(
      135deg,
      var(--primary),
      var(--primary-light)
    );
}

.ktr-profile-hero__cover::before {
  position: absolute;
  top: -70px;
  right: -40px;
  width: 220px;
  height: 220px;
  border: 35px solid rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  content: "";
}

.ktr-profile-hero__badges {
  position: absolute;
  top: 20px;
  right: 22px;
  left: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.ktr-profile-hero__number,
.ktr-profile-hero__age {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.ktr-profile-hero__number {
  background: rgba(255, 255, 255, 0.94);
  color: var(--primary-dark);
}

.ktr-profile-hero__age {
  background: rgba(60, 43, 35, 0.72);
  color: #ffffff;
}

/* ------------------------------
   プロフィール基本情報
------------------------------ */

.ktr-profile-hero__content {
  position: relative;
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr) auto;
  gap: 26px;
  padding: 0 30px 30px;
}

.ktr-profile-hero__avatar-wrap {
  width: 132px;
  height: 132px;
  margin-top: -66px;
  padding: 5px;
  border-radius: 50%;
  background: var(--surface);
  box-shadow: 0 12px 28px rgba(57, 42, 34, 0.18);
}

.ktr-profile-hero__avatar {
  display: grid;
  width: 100%;
  height: 100%;
  overflow: hidden;
  place-items: center;
  border-radius: 50%;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 42px;
  font-weight: 900;
}

.ktr-profile-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ktr-profile-hero__identity {
  padding-top: 18px;
}

.ktr-profile-hero__name {
  margin: 0;
  color: var(--text);
  font-size: clamp(28px, 4vw, 38px);
  font-weight: 900;
  line-height: 1.25;
}

.ktr-profile-hero__school {
  margin: 7px 0 0;
  color: var(--text-light);
  font-size: 14px;
  font-weight: 700;
}

.ktr-profile-hero__current {
  display: inline-flex;
  margin-top: 12px;
  padding: 6px 13px;
  border-radius: 999px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 13px;
  font-weight: 800;
}

.ktr-profile-hero__actions {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding-top: 22px;
}

/* ------------------------------
   タグ
------------------------------ */

.ktr-profile-topic-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.ktr-profile-topic {
  padding: 6px 11px;
  border: 1px solid rgba(232, 141, 95, 0.22);
  border-radius: 999px;
  background: #fffaf6;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
}

/* ------------------------------
   詳細ページレイアウト
------------------------------ */

.ktr-profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  gap: 24px;
  margin-top: 24px;
}

.ktr-profile-content {
  display: grid;
  gap: 20px;
}

.ktr-profile-side {
  display: grid;
  align-self: start;
  gap: 16px;
}

/* ------------------------------
   共通詳細カード
------------------------------ */

.ktr-detail-card {
  padding: 26px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.ktr-detail-card__eyebrow {
  margin: 0 0 5px;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.13em;
}

.ktr-detail-card__title {
  margin: 0;
  color: var(--text);
  font-size: 21px;
  font-weight: 900;
}

.ktr-detail-card__text {
  margin: 14px 0 0;
  color: var(--text-light);
  font-size: 14px;
  line-height: 1.9;
}

/* ------------------------------
   キャリア年表
------------------------------ */

.ktr-career-timeline {
  position: relative;
  display: grid;
  gap: 0;
  margin-top: 22px;
}

.ktr-career-timeline__item {
  position: relative;
  display: grid;
  grid-template-columns: 92px 24px minmax(0, 1fr);
  gap: 12px;
  min-height: 92px;
}

.ktr-career-timeline__item:not(:last-child)::after {
  position: absolute;
  top: 22px;
  bottom: -4px;
  left: 103px;
  width: 2px;
  background: rgba(232, 141, 95, 0.24);
  content: "";
}

.ktr-career-timeline__year {
  padding-top: 2px;
  color: var(--text-light);
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}

.ktr-career-timeline__marker {
  position: relative;
  z-index: 1;
  width: 15px;
  height: 15px;
  margin-top: 3px;
  border: 4px solid #ffe5d5;
  border-radius: 50%;
  background: var(--primary);
}

.ktr-career-timeline__item.is-current
  .ktr-career-timeline__marker {
  box-shadow: 0 0 0 5px rgba(232, 141, 95, 0.13);
}

.ktr-career-timeline__content {
  padding-bottom: 24px;
}

.ktr-career-timeline__title {
  margin: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 900;
}

.ktr-career-timeline__description {
  margin: 6px 0 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.75;
}

/* ------------------------------
   相談内容
------------------------------ */

.ktr-consultation-list {
  display: grid;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.ktr-consultation-list__item {
  position: relative;
  padding: 13px 14px 13px 40px;
  border-radius: var(--radius-sm);
  background: var(--background);
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
}

.ktr-consultation-list__item::before {
  position: absolute;
  top: 13px;
  left: 14px;
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  border-radius: 50%;
  background: var(--primary);
  color: #ffffff;
  content: "✓";
  font-size: 11px;
  font-weight: 900;
}

/* ------------------------------
   記事カード
------------------------------ */

.ktr-story-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  overflow: hidden;
  margin-top: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: inherit;
  text-decoration: none;
}

.ktr-story-card__image {
  min-height: 150px;
  background:
    linear-gradient(
      135deg,
      var(--primary-light),
      var(--primary)
    );
}

.ktr-story-card__content {
  padding: 18px;
}

.ktr-story-card__category {
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.1em;
}

.ktr-story-card__title {
  margin: 7px 0 0;
  color: var(--text);
  font-size: 17px;
  font-weight: 900;
  line-height: 1.55;
}

.ktr-story-card__meta {
  margin: 8px 0 0;
  color: var(--text-light);
  font-size: 12px;
}

/* ------------------------------
   予約カード
------------------------------ */

.ktr-booking-box {
  padding: 22px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fff8f3
    );
  border: 1px solid rgba(232, 141, 95, 0.28);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.ktr-booking-box__status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #29733d;
  font-size: 12px;
  font-weight: 900;
}

.ktr-booking-box__status-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #38a856;
  box-shadow: 0 0 0 4px rgba(56, 168, 86, 0.12);
}

.ktr-booking-box__title {
  margin: 13px 0 0;
  color: var(--text);
  font-size: 19px;
  font-weight: 900;
}

.ktr-booking-box__text {
  margin: 7px 0 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.75;
}

.ktr-booking-options {
  display: grid;
  gap: 9px;
  margin-top: 16px;
}

.ktr-booking-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 12px;
  border-radius: var(--radius-sm);
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 12px;
  font-weight: 800;
}

.ktr-booking-option__time {
  color: var(--primary-dark);
}

/* ------------------------------
   モバイル
------------------------------ */

@media (max-width: 900px) {
  .ktr-profile-layout {
    grid-template-columns: 1fr;
  }

  .ktr-profile-side {
    position: static;
  }
}

@media (max-width: 760px) {
  .ktr-profile-hero__cover {
    height: 140px;
  }

  .ktr-profile-hero__content {
    display: block;
    padding: 0 18px 22px;
    text-align: center;
  }

  .ktr-profile-hero__avatar-wrap {
    width: 110px;
    height: 110px;
    margin: -55px auto 0;
  }

  .ktr-profile-hero__identity {
    padding-top: 13px;
  }

  .ktr-profile-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    padding-top: 17px;
  }

  .ktr-profile-topic-list {
    justify-content: center;
  }

  .ktr-detail-card {
    padding: 21px 17px;
  }

  .ktr-career-timeline__item {
    grid-template-columns: 61px 20px minmax(0, 1fr);
    gap: 8px;
  }

  .ktr-career-timeline__item:not(:last-child)::after {
    left: 70px;
  }

  .ktr-career-timeline__year {
    font-size: 11px;
  }

  .ktr-story-card {
    grid-template-columns: 1fr;
  }

  .ktr-story-card__image {
    min-height: 115px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Profile Detail Expansion
   余白改善・プライベート・資格表示
====================================================== */

/* 詳細ページ全体を少し広くする */

.ktr-app-layout:has(.ktr-profile-layout) {
  grid-template-columns: 190px minmax(0, 1fr);
  max-width: 1320px;
}

.ktr-app-layout:has(.ktr-profile-layout) > .ktr-aside {
  display: none;
}

/* プロフィール本文の横幅と余白 */

.ktr-profile-layout {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 30px;
  margin-top: 30px;
}

.ktr-profile-content {
  gap: 26px;
}

.ktr-profile-side {
  gap: 20px;
}

/* 上部プロフィール */

.ktr-profile-hero__content {
  grid-template-columns: 150px minmax(0, 1fr) auto;
  gap: 30px;
  padding: 0 34px 34px;
}

.ktr-profile-hero__identity {
  padding-top: 22px;
}

.ktr-profile-hero__school {
  margin-top: 9px;
  line-height: 1.7;
}

.ktr-profile-topic-list {
  gap: 9px;
  margin-top: 22px;
}

/* 共通カードをゆったり表示 */

.ktr-detail-card {
  padding: 32px;
  border-radius: 22px;
}

.ktr-detail-card__title {
  font-size: 23px;
  line-height: 1.5;
}

.ktr-detail-card__text {
  margin-top: 17px;
  font-size: 14px;
  line-height: 2;
}

/* プライベート・資格などの情報グリッド */

.ktr-personal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}

.ktr-personal-item {
  position: relative;
  min-height: 130px;
  padding: 20px;
  overflow: hidden;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: 18px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fffaf6
    );
}

.ktr-personal-item::after {
  position: absolute;
  right: -25px;
  bottom: -28px;
  width: 82px;
  height: 82px;
  border: 15px solid rgba(232, 141, 95, 0.07);
  border-radius: 50%;
  content: "";
}

.ktr-personal-item__icon {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 12px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 19px;
}

.ktr-personal-item__title {
  position: relative;
  z-index: 1;
  margin: 13px 0 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.5;
}

.ktr-personal-item__text {
  position: relative;
  z-index: 1;
  margin: 7px 0 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.8;
}

/* 資格一覧 */

.ktr-license-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}

.ktr-license-item {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 58px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: #fffdfb;
}

.ktr-license-item__icon {
  display: grid;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 10px;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 15px;
  font-weight: 900;
}

.ktr-license-item__content {
  min-width: 0;
}

.ktr-license-item__name {
  margin: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.5;
}

.ktr-license-item__meta {
  margin: 2px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.5;
}

/* 大切にしていること */

.ktr-values-box {
  position: relative;
  overflow: hidden;
  margin-top: 20px;
  padding: 24px;
  border-radius: 18px;
  background:
    linear-gradient(
      135deg,
      rgba(232, 141, 95, 0.12),
      rgba(246, 177, 139, 0.06)
    );
}

.ktr-values-box::before {
  position: absolute;
  top: -30px;
  right: -20px;
  color: rgba(232, 141, 95, 0.12);
  content: "“";
  font-family: Georgia, serif;
  font-size: 120px;
  line-height: 1;
}

.ktr-values-box__text {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 700;
  line-height: 2;
}

/* 右側予約枠も余裕を持たせる */

.ktr-booking-box {
  padding: 26px;
  border-radius: 20px;
}

.ktr-aside-card {
  padding: 23px;
}

/* タブレット */

@media (max-width: 1100px) {
  .ktr-app-layout:has(.ktr-profile-layout) {
    grid-template-columns: 190px minmax(0, 1fr);
  }

  .ktr-profile-layout {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 22px;
  }

  .ktr-personal-grid,
  .ktr-license-list {
    grid-template-columns: 1fr;
  }
}

/* スマートフォン */

@media (max-width: 900px) {
  .ktr-app-layout:has(.ktr-profile-layout) {
    display: block;
  }

  .ktr-profile-layout {
    grid-template-columns: 1fr;
  }

  .ktr-profile-side {
    order: -1;
  }
}

@media (max-width: 760px) {
  .ktr-detail-card {
    padding: 24px 18px;
  }

  .ktr-personal-grid,
  .ktr-license-list {
    grid-template-columns: 1fr;
  }

  .ktr-personal-item {
    min-height: auto;
    padding: 17px;
  }

  .ktr-values-box {
    padding: 20px 17px;
  }

  .ktr-values-box__text {
    font-size: 14px;
  }
}

/* ===== トーク実績 ===== */

.ktr-stat-card{

display:flex;

flex-direction:column;

gap:14px;

margin-top:16px;

}

.ktr-stat-score{

text-align:center;

padding:18px;

background:#fff7f2;

border-radius:16px;

}

.ktr-stat-score__value{

font-size:34px;

font-weight:900;

color:var(--primary);

}

.ktr-stat-score__label{

margin-top:6px;

font-size:13px;

color:var(--text-light);

}

.ktr-stat-item{

display:flex;

justify-content:space-between;

align-items:center;

padding:12px 14px;

background:#fafafa;

border-radius:12px;

font-size:14px;

}

.ktr-stat-item strong{

font-size:18px;

color:var(--primary-dark);

}

/* ======================================================
   Kosen Talk Ring
   Profile Reviews
====================================================== */

.ktr-review-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.ktr-review-summary {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
  padding: 12px 15px;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: 16px;
  background: #fffaf6;
}

.ktr-review-summary__score {
  color: var(--primary-dark);
  font-size: 32px;
  font-weight: 900;
  line-height: 1;
}

.ktr-review-stars {
  color: #e88d5f;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.05em;
  line-height: 1.4;
}

.ktr-review-summary__count {
  margin: 2px 0 0;
  color: var(--text-light);
  font-size: 11px;
  font-weight: 700;
}

.ktr-review-list {
  display: grid;
  gap: 16px;
  margin-top: 24px;
}

.ktr-review-item {
  padding: 21px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fffdfb;
}

.ktr-review-item__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.ktr-review-user {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.ktr-review-user__avatar {
  display: grid;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: var(--background);
  color: var(--primary-dark);
  font-size: 14px;
  font-weight: 900;
}

.ktr-review-user__name {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 900;
}

.ktr-review-user__meta {
  margin: 3px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.5;
}

.ktr-review-item__rating {
  display: grid;
  justify-items: end;
  flex: 0 0 auto;
}

.ktr-review-item__date {
  margin-top: 3px;
  color: var(--text-light);
  font-size: 10px;
}

.ktr-review-item__text {
  margin: 15px 0 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.9;
}

.ktr-review-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

.ktr-review-note {
  margin: 14px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.7;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-review-heading {
    display: grid;
  }

  .ktr-review-summary {
    width: 100%;
    justify-content: center;
  }

  .ktr-review-item {
    padding: 17px;
  }

  .ktr-review-item__header {
    display: grid;
  }

  .ktr-review-item__rating {
    justify-items: start;
    padding-left: 54px;
  }

  .ktr-review-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ktr-review-actions .ktr-button {
    width: 100%;
  }
}

/* ======================================================
   Kosen Talk Ring
   Review Form Modal
====================================================== */

/* モーダル全体 */

.ktr-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  overflow-y: auto;
  place-items: center;
  padding: 24px;
  visibility: hidden;
  opacity: 0;
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease;
}

.ktr-modal.is-open {
  visibility: visible;
  opacity: 1;
}

.ktr-modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(39, 29, 24, 0.58);
  backdrop-filter: blur(5px);
}

.ktr-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 660px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 34px;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--surface);
  box-shadow: 0 24px 70px rgba(36, 25, 20, 0.25);
}

.ktr-modal__close {
  position: absolute;
  top: 17px;
  right: 17px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--surface);
  color: var(--text-light);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.ktr-modal__close:hover {
  border-color: var(--primary-light);
  color: var(--primary-dark);
}

.ktr-modal__header {
  padding-right: 45px;
}

.ktr-modal__title {
  margin: 0;
  color: var(--text);
  font-size: 25px;
  font-weight: 900;
  line-height: 1.45;
}

.ktr-modal__description {
  margin: 10px 0 0;
  color: var(--text-light);
  font-size: 13px;
  line-height: 1.8;
}

/* フォーム共通 */

.ktr-review-form {
  display: grid;
  gap: 23px;
  margin-top: 28px;
}

.ktr-form-group {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.ktr-form-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}

.ktr-form-label {
  display: block;
  margin: 0 0 9px;
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
}

.ktr-form-required {
  display: inline-flex;
  margin-left: 5px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #fff0e7;
  color: var(--primary-dark);
  font-size: 9px;
  font-weight: 900;
  vertical-align: middle;
}

.ktr-form-control {
  width: 100%;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid var(--border);
  border-radius: 12px;
  outline: none;
  background: var(--surface);
  color: var(--text);
  font-size: 14px;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.ktr-form-control:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(232, 141, 95, 0.13);
}

.ktr-form-textarea {
  min-height: 150px;
  line-height: 1.8;
  resize: vertical;
}

.ktr-form-help {
  margin: 7px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.6;
}

.ktr-character-count {
  color: var(--text-light);
  font-size: 11px;
  font-weight: 700;
}

/* 星評価 */

.ktr-star-rating {
  display: inline-flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 5px;
}

.ktr-star-rating input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.ktr-star-rating label {
  color: #ded7d2;
  font-size: 35px;
  line-height: 1;
  cursor: pointer;
  transition:
    color 0.15s ease,
    transform 0.15s ease;
}

.ktr-star-rating label:hover,
.ktr-star-rating label:hover ~ label,
.ktr-star-rating input:checked ~ label {
  color: var(--primary);
}

.ktr-star-rating label:hover {
  transform: scale(1.08);
}

.ktr-star-rating input:focus-visible + label {
  outline: 3px solid rgba(232, 141, 95, 0.28);
  outline-offset: 3px;
  border-radius: 4px;
}

/* 同意チェック */

.ktr-form-checkbox {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: flex-start;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.75;
  cursor: pointer;
}

.ktr-form-checkbox input {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  accent-color: var(--primary);
}

/* 注意書き */

.ktr-review-form__notice {
  padding: 16px;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: 14px;
  background: #fffaf6;
}

.ktr-review-form__notice strong {
  color: var(--primary-dark);
  font-size: 12px;
}

.ktr-review-form__notice p {
  margin: 5px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.7;
}

/* 操作ボタン */

.ktr-review-form__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

.ktr-review-form__result {
  display: none;
  margin: 0;
  padding: 13px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.7;
}

.ktr-review-form__result.is-success {
  display: block;
  background: #eef9f1;
  color: #29733d;
}

.ktr-review-form__result.is-error {
  display: block;
  background: #fff0ed;
  color: #a83e2c;
}

/* モーダル表示中の背景スクロールを止める */

body.ktr-modal-open {
  overflow: hidden;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-modal {
    align-items: end;
    padding: 12px 0 0;
  }

  .ktr-modal__dialog {
    width: 100%;
    max-height: 92vh;
    padding: 28px 18px 24px;
    border-radius: 24px 24px 0 0;
  }

  .ktr-modal__close {
    top: 13px;
    right: 13px;
  }

  .ktr-modal__title {
    font-size: 22px;
  }

  .ktr-review-form__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .ktr-review-form__actions .ktr-button {
    width: 100%;
  }

  .ktr-star-rating label {
    font-size: 32px;
  }
}

/* ======================================================
   Local Review Prototype
====================================================== */

.ktr-review-item--new {
  border-color: rgba(232, 141, 95, 0.35);
  background: #fffaf6;
  animation: ktr-review-appear 0.35s ease;
}

.ktr-review-prototype-label {
  display: inline-flex;
  margin: 14px 0 0;
  padding: 4px 9px;
  border-radius: 999px;
  background: #fff0e7;
  color: var(--primary-dark);
  font-size: 9px;
  font-weight: 900;
}

@keyframes ktr-review-appear {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ======================================================
   Kosen Talk Ring
   Consultation History
====================================================== */

.ktr-detail-card__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.ktr-history-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(64, 145, 92, 0.18);
  border-radius: 999px;
  background: #eef9f1;
  color: #29733d;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.ktr-history-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}

.ktr-history-summary__item {
  display: grid;
  gap: 7px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fffaf6;
}

.ktr-history-summary__label {
  color: var(--text-light);
  font-size: 11px;
  font-weight: 700;
}

.ktr-history-summary__value {
  color: var(--primary-dark);
  font-size: 25px;
  font-weight: 900;
  line-height: 1;
}

.ktr-consultation-list {
  display: grid;
  gap: 13px;
  margin-top: 24px;
}

.ktr-consultation-item {
  display: grid;
  grid-template-columns:
    minmax(0, 1fr)
    auto;
  gap: 18px;
  align-items: center;
  padding: 17px 18px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: var(--surface);
}

.ktr-consultation-item__main {
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: 0;
}

.ktr-consultation-item__icon {
  display: grid;
  width: 43px;
  height: 43px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 13px;
  background: #fff0e7;
  color: var(--primary-dark);
  font-size: 18px;
  font-weight: 900;
}

.ktr-consultation-item__title {
  margin: 0;
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.5;
}

.ktr-consultation-item__meta {
  margin: 4px 0 0;
  color: var(--text-light);
  font-size: 10px;
  line-height: 1.6;
}

.ktr-consultation-item__side {
  display: grid;
  justify-items: end;
  gap: 5px;
}

.ktr-consultation-item__status {
  display: inline-flex;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 900;
}

.ktr-consultation-item__status--completed {
  background: #eef9f1;
  color: #29733d;
}

.ktr-consultation-item__status--cancelled {
  background: #fff0ed;
  color: #a83e2c;
}

.ktr-consultation-item__status--upcoming {
  background: #f2f3f7;
  color: #596070;
}

.ktr-consultation-item__date {
  color: var(--text-light);
  font-size: 10px;
}

.ktr-history-note {
  margin: 17px 0 0;
  color: var(--text-light);
  font-size: 10px;
  line-height: 1.7;
}

.ktr-consultation-empty {
  padding: 28px 18px;
  border: 1px dashed var(--border);
  border-radius: 16px;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-detail-card__heading {
    display: grid;
  }

  .ktr-history-status {
    width: fit-content;
  }

  .ktr-history-summary {
    grid-template-columns: 1fr;
  }

  .ktr-consultation-item {
    grid-template-columns: 1fr;
  }

  .ktr-consultation-item__side {
    justify-items: start;
    padding-left: 56px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Profile Page Navigation
====================================================== */

.ktr-profile-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  margin: 0 0 28px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(255, 253, 251, 0.94);
  box-shadow: 0 8px 24px rgba(58, 39, 29, 0.04);
  backdrop-filter: blur(12px);
}

.ktr-profile-nav__inner {
  display: flex;
  align-items: center;
  gap: 6px;
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 10px 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.ktr-profile-nav__inner::-webkit-scrollbar {
  display: none;
}

.ktr-profile-nav__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  flex: 0 0 auto;
  padding: 9px 15px;
  border-radius: 999px;
  color: var(--text-light);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease;
}

.ktr-profile-nav__link:hover {
  background: #fff0e7;
  color: var(--primary-dark);
  transform: translateY(-1px);
}

.ktr-profile-nav__link.is-active {
  background: var(--primary);
  color: #ffffff;
}

.ktr-profile-nav__link--booking {
  margin-left: auto;
  background: var(--primary-dark);
  color: #ffffff;
}

.ktr-profile-nav__link--booking:hover {
  background: var(--primary);
  color: #ffffff;
}

/*
 * 固定ナビゲーションで見出しが隠れないようにします。
 */

#profile-overview,
#career,
#experience-skills,
#personal-experience,
#skills,
#consultation-history,
#reviews,
#booking {
  scroll-margin-top: 95px;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-profile-nav {
    margin-bottom: 20px;
  }

  .ktr-profile-nav__inner {
    width: 100%;
    padding: 9px 14px;
  }

  .ktr-profile-nav__link {
    min-height: 38px;
    padding: 8px 13px;
    font-size: 11px;
  }

  .ktr-profile-nav__link--booking {
    margin-left: 0;
  }

  #profile-overview,
  #career,
  #experience-skills,
  #personal-experience,
  #skills,
  #consultation-history,
  #reviews,
  #booking {
    scroll-margin-top: 84px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Search Box
====================================================== */

.ktr-member-search-box {
  margin-top: 20px;
  padding: 20px;
  border: 1px solid rgba(232, 141, 95, 0.22);
  border-radius: 20px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fffaf6
    );
  box-shadow: 0 10px 30px rgba(67, 43, 31, 0.06);
}

.ktr-member-search-box__main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 7px 10px 7px 17px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #ffffff;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.ktr-member-search-box__main:focus-within {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(232, 141, 95, 0.13);
}

.ktr-member-search-box__icon {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  color: var(--primary-dark);
  font-size: 17px;
}

.ktr-member-search-box__input {
  width: 100%;
  min-width: 0;
  padding: 10px 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font-size: 14px;
  line-height: 1.5;
}

.ktr-member-search-box__input::placeholder {
  color: #a99d96;
}

.ktr-member-search-box__input::-webkit-search-cancel-button {
  display: none;
}

.ktr-member-search-box__clear {
  min-height: 38px;
  padding: 7px 13px;
  border: 0;
  border-radius: 999px;
  background: #fff0e7;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.ktr-member-search-box__clear:hover {
  background: var(--primary);
  color: #ffffff;
}

.ktr-member-search-box__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 12px;
}

.ktr-member-search-box__result,
.ktr-member-search-box__hint {
  margin: 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.6;
}

.ktr-member-search-box__result {
  color: var(--primary-dark);
  font-weight: 900;
}

/* スマートフォン */

@media (max-width: 760px) {
  .ktr-member-search-box {
    padding: 15px;
    border-radius: 17px;
  }

  .ktr-member-search-box__main {
    grid-template-columns: auto minmax(0, 1fr);
    padding: 7px 12px;
  }

  .ktr-member-search-box__clear {
    grid-column: 1 / -1;
    width: 100%;
  }

  .ktr-member-search-box__footer {
    display: grid;
    gap: 5px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Search Empty State
====================================================== */

.ktr-member-card[hidden] {
  display: none;
}

.ktr-member-empty {
  margin-top: 22px;
  padding: 38px 24px;
  border: 1px dashed rgba(232, 141, 95, 0.38);
  border-radius: 20px;
  background: #fffaf6;
  text-align: center;
}

.ktr-member-empty__icon {
  display: grid;
  width: 52px;
  height: 52px;
  margin: 0 auto;
  place-items: center;
  border-radius: 50%;
  background: #fff0e7;
  font-size: 22px;
}

.ktr-member-empty__title {
  margin: 16px 0 0;
  color: var(--text);
  font-size: 17px;
  font-weight: 900;
}

.ktr-member-empty__text {
  max-width: 480px;
  margin: 9px auto 18px;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.8;
}

@media (max-width: 760px) {
  .ktr-member-empty {
    padding: 30px 18px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Filters
====================================================== */

.ktr-member-filter-grid {
  display: grid;
  grid-template-columns:
    repeat(4, minmax(0, 1fr))
    auto;
  gap: 12px;
  margin-top: 16px;
}

.ktr-member-filter {
  min-width: 0;
}

.ktr-member-filter__label {
  display: block;
  margin-bottom: 7px;
  color: var(--text-light);
  font-size: 11px;
  font-weight: 800;
}

.ktr-member-filter__select {
  width: 100%;
  min-height: 46px;
  padding: 10px 34px 10px 12px;
  border: 1px solid var(--border);
  border-radius: 12px;
  outline: none;
  background-color: var(--surface);
  color: var(--text);
  font-size: 13px;
  line-height: 1.4;
  cursor: pointer;

  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;

  background-image:
    linear-gradient(
      45deg,
      transparent 50%,
      var(--text-light) 50%
    ),
    linear-gradient(
      135deg,
      var(--text-light) 50%,
      transparent 50%
    );

  background-position:
    calc(100% - 17px) 50%,
    calc(100% - 12px) 50%;

  background-size:
    5px 5px,
    5px 5px;

  background-repeat: no-repeat;

  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ktr-member-filter__select option {
  color: var(--text);
  background: #ffffff;
}

.ktr-member-filter__select:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(232, 141, 95, 0.13);
}

.ktr-member-filter--checkbox {
  display: flex;
  align-items: flex-end;
}

.ktr-member-filter__checkbox {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.ktr-member-filter__checkbox input {
  width: 17px;
  height: 17px;
  accent-color: var(--primary);
}

.ktr-member-filter-reset {
  padding: 5px 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--primary-dark);
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.ktr-member-filter-reset:hover {
  background: #fff0e7;
}

@media (max-width: 1100px) {
  .ktr-member-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ktr-member-filter--checkbox {
    align-items: stretch;
  }

  .ktr-member-filter__checkbox {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .ktr-member-filter-grid {
    grid-template-columns: 1fr;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Card Metrics
====================================================== */

.ktr-member-card__metrics {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 5px;
  margin-top: 15px;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.5;
}

.ktr-member-card__rating {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.ktr-member-card__rating strong {
  color: var(--text);
  font-size: 13px;
  font-weight: 900;
}

.ktr-member-card__stars {
  color: #e88d5f;
  font-size: 12px;
  letter-spacing: -0.08em;
}

.ktr-member-card__review-count,
.ktr-member-card__consultation-count {
  font-weight: 700;
}

.ktr-member-card__metric-divider {
  color: #c8bbb3;
}

.ktr-member-card__profile-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 11px;
}

.ktr-member-card__profile-meta-item {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(232, 141, 95, 0.18);
  border-radius: 999px;
  background: #fffaf6;
  color: var(--primary-dark);
  font-size: 10px;
  font-weight: 800;
}

@media (max-width: 760px) {
  .ktr-member-card__metrics {
    font-size: 10px;
  }

  .ktr-member-card__profile-meta {
    gap: 6px;
  }
}

/* タグ */

/* ======================================================
   Kosen Talk Ring
   Member Card Attributes
   居住地・資格・経験
====================================================== */

.ktr-member-card__attributes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px solid var(--border);
}

.ktr-member-card__attribute {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: 999px;
  background: #fffaf6;
  color: var(--primary-dark);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.4;
}

@media (max-width: 760px) {
  .ktr-member-card__attributes {
    justify-content: flex-start;
  }

  .ktr-member-card__attribute {
    font-size: 10px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Card Attributes
   居住地・資格・経験
====================================================== */

.ktr-member-card__attributes {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px;
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px solid var(--border);
}

.ktr-member-card__attribute {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(232, 141, 95, 0.2);
  border-radius: 999px;
  background: #fffaf6;
  color: var(--primary-dark);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.4;
}

@media (max-width: 760px) {
  .ktr-member-card__attributes {
    justify-content: flex-start;
  }

  .ktr-member-card__attribute {
    font-size: 10px;
  }
}

/* ======================================================
   Kosen Talk Ring
   Clickable Member Card
====================================================== */

.ktr-member-card {
  position: relative;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.ktr-member-card:hover {
  transform: translateY(-4px);
  border-color: rgba(232, 141, 95, 0.42);
  box-shadow: 0 16px 34px rgba(67, 43, 31, 0.12);
}

.ktr-member-card:focus-within {
  border-color: var(--primary);
  box-shadow:
    0 0 0 4px rgba(232, 141, 95, 0.14),
    0 16px 34px rgba(67, 43, 31, 0.1);
}

.ktr-member-card__overlay-link {
  position: absolute;
  inset: 0;
  z-index: 5;
  border-radius: inherit;
}

.ktr-member-card__overlay-link:focus {
  outline: none;
}

/*
 * 相談予約ボタンなど、カード内で個別に操作する要素を
 * 透明リンクより前面へ出します。
 */

.ktr-member-card__actions,
.ktr-member-card__actions a,
.ktr-member-card__actions button {
  position: relative;
  z-index: 10;
}

/*
 * テキスト選択や入力が必要な要素を今後追加する場合も、
 * 透明リンクより前面へ出せます。
 */

.ktr-member-card button,
.ktr-member-card input,
.ktr-member-card select,
.ktr-member-card textarea {
  position: relative;
  z-index: 10;
}

@media (prefers-reduced-motion: reduce) {
  .ktr-member-card {
    transition: none;
  }

  .ktr-member-card:hover {
    transform: none;
  }
}

/* ======================================================
   Kosen Talk Ring
   Member Card Single Action
====================================================== */

.ktr-member-card__actions--single {
  grid-template-columns: 1fr;
}

.ktr-member-card__actions--single .ktr-button {
  width: 100%;
}

/* ======================================================
   Kosen Talk Ring
   Dynamic Profile Career Timeline
   Stable Stylish Version
====================================================== */

[data-profile-list="career"] {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  gap: 14px;
  margin-top: 22px;
  padding: 4px 0 4px 38px;
  box-sizing: border-box;
}

/* 縦のタイムライン */
[data-profile-list="career"]::before {
  content: "";
  position: absolute;
  top: 18px;
  bottom: 18px;
  left: 15px;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(
    to bottom,
    rgba(246, 177, 139, 0.45),
    rgba(232, 141, 95, 0.95)
  );
}

/* 1件分の経歴 */
[data-profile-list="career"]
  .ktr-profile-career-item {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* タイムラインの丸 */
[data-profile-list="career"]
  .ktr-profile-career-item__dot {
  position: absolute;
  top: 21px;
  left: -29px;
  z-index: 2;
  display: block;
  width: 12px;
  height: 12px;
  margin: 0;
  border: 3px solid #ffffff;
  border-radius: 50%;
  background: #f6b18b;
  box-shadow:
    0 0 0 1px rgba(232, 141, 95, 0.38),
    0 4px 12px rgba(76, 48, 33, 0.12);
  box-sizing: border-box;
}

/* 経歴のカード */
[data-profile-list="career"]
  .ktr-profile-career-item__text {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 15px 18px 15px 20px;
  border: 1px solid rgba(232, 141, 95, 0.18);
  border-radius: 16px;
  background: linear-gradient(
    145deg,
    #ffffff,
    #fff9f4
  );
  color: var(--text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.7;
  text-align: left;
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
  writing-mode: horizontal-tb;
  box-sizing: border-box;
  box-shadow: 0 8px 22px rgba(76, 48, 33, 0.06);
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

/* 左側アクセント */
[data-profile-list="career"]
  .ktr-profile-career-item__text::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 4px;
  border-radius: 0 999px 999px 0;
  background: #f6b18b;
}

/* マウスを置いたとき */
[data-profile-list="career"]
  .ktr-profile-career-item:hover
  .ktr-profile-career-item__text {
  transform: translateY(-2px);
  border-color: rgba(232, 141, 95, 0.38);
  box-shadow: 0 12px 26px rgba(76, 48, 33, 0.09);
}

/* 現在の経歴 */
[data-profile-list="career"]
  .ktr-profile-career-item.is-current
  .ktr-profile-career-item__dot {
  width: 14px;
  height: 14px;
  left: -30px;
  background: var(--primary);
  box-shadow:
    0 0 0 1px rgba(232, 141, 95, 0.48),
    0 0 0 6px rgba(232, 141, 95, 0.12);
}

[data-profile-list="career"]
  .ktr-profile-career-item.is-current
  .ktr-profile-career-item__text {
  border-color: rgba(232, 141, 95, 0.48);
  background: linear-gradient(
    135deg,
    #fff8f2,
    #fef1e4
  );
  color: var(--primary-dark);
  font-weight: 900;
  box-shadow: 0 12px 28px rgba(232, 141, 95, 0.13);
}

[data-profile-list="career"]
  .ktr-profile-career-item.is-current
  .ktr-profile-career-item__text::before {
  background: var(--primary);
}

/* スマートフォン */
@media (max-width: 760px) {
  [data-profile-list="career"] {
    gap: 11px;
    margin-top: 18px;
    padding-left: 32px;
  }

  [data-profile-list="career"]::before {
    left: 12px;
  }

  [data-profile-list="career"]
    .ktr-profile-career-item__dot {
    left: -26px;
  }

  [data-profile-list="career"]
    .ktr-profile-career-item.is-current
    .ktr-profile-career-item__dot {
    left: -27px;
  }

  [data-profile-list="career"]
    .ktr-profile-career-item__text {
    padding: 13px 14px 13px 17px;
    border-radius: 14px;
    font-size: 12px;
    line-height: 1.65;
  }
}

/* ======================================================
   Kosen Talk Ring
   Dynamic Profile Topics
   Stylish Version
====================================================== */

[data-profile-list="topics"] {
  display: grid;
  grid-template-columns:
    repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.ktr-profile-topic-item {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 52px;
  margin: 0;
  padding: 12px 14px 12px 47px;
  overflow: hidden;
  border: 1px solid rgba(232, 141, 95, 0.16);
  border-radius: 16px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fff9f4
    );
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
  box-shadow:
    0 8px 20px rgba(76, 48, 33, 0.055);
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

/* 左側アイコン */
.ktr-profile-topic-item::before {
  content: "◉";
  position: absolute;
  left: 14px;
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 50%;
  background:
    linear-gradient(
      135deg,
      #f6b18b,
      var(--primary)
    );
  color: #ffffff;
  font-size: 9px;
  box-shadow:
    0 5px 12px rgba(232, 141, 95, 0.26);
}

/* 右上の淡い装飾 */
.ktr-profile-topic-item::after {
  content: "";
  position: absolute;
  top: -18px;
  right: -18px;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(232, 141, 95, 0.12);
  border-radius: 50%;
}

.ktr-profile-topic-item:hover {
  transform: translateY(-3px);
  border-color: rgba(232, 141, 95, 0.38);
  box-shadow:
    0 13px 26px rgba(76, 48, 33, 0.09);
}

/* スマートフォン */
@media (max-width: 760px) {
  [data-profile-list="career"] {
    gap: 10px;
    margin-top: 18px;
    padding-left: 30px;
  }

  [data-profile-list="career"]::before {
    left: 10px;
  }

  .ktr-profile-career-item__dot {
    left: -26px;
  }

  .ktr-profile-career-item.is-current
    .ktr-profile-career-item__dot {
    left: -27px;
  }

  .ktr-profile-career-item__text {
    padding: 13px 14px;
    border-radius: 14px;
    font-size: 12px;
  }

  [data-profile-list="topics"] {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ktr-profile-topic-item {
    min-height: 48px;
    padding:
      11px
      13px
      11px
      44px;
    border-radius: 14px;
    font-size: 12px;
  }

  .ktr-profile-topic-item::before {
    left: 12px;
    width: 21px;
    height: 21px;
  }
}

/* ======================================================
   Dynamic Private Experiences
====================================================== */

[data-profile-list="private-experiences"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 20px;
}

.ktr-profile-experience-card {
  position: relative;
  min-width: 0;
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgba(232, 141, 95, 0.18);
  border-radius: 17px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fff9f4
    );
  box-shadow:
    0 8px 22px rgba(76, 48, 33, 0.06);
}

.ktr-profile-experience-card__icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  margin-bottom: 13px;
  border-radius: 11px;
  background: #fef1e4;
  font-size: 17px;
}

.ktr-profile-experience-card__title {
  margin: 0;
  color: var(--text);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.5;
}

.ktr-profile-experience-card__text {
  margin: 8px 0 0;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.7;
}

/* ======================================================
   Dynamic Qualifications
====================================================== */

[data-profile-list="qualifications"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  margin-top: 18px;
}

.ktr-profile-qualification-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid rgba(232, 141, 95, 0.17);
  border-radius: 13px;
  background: #ffffff;
}

.ktr-profile-qualification-item__icon {
  display: grid;
  flex: 0 0 auto;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 8px;
  background: #fef1e4;
  color: var(--primary);
  font-size: 11px;
  font-weight: 900;
}

.ktr-profile-qualification-item__text {
  min-width: 0;
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.55;
}

.ktr-profile-empty-text {
  grid-column: 1 / -1;
  margin: 0;
  padding: 20px;
  border: 1px dashed rgba(232, 141, 95, 0.32);
  border-radius: 14px;
  background: #fffaf6;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 760px) {
  [data-profile-list="private-experiences"],
  [data-profile-list="qualifications"] {
    grid-template-columns: 1fr;
  }
}

/* ======================================================
   Kosen Talk Ring
   Favorite Button
====================================================== */

[data-favorite-button] {
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}

/* 気になる登録済み */
[data-favorite-button].is-favorite {
  border-color: #e5ad32;
  background: #fff4c7;
  color: #8a5a00;
  box-shadow: 0 3px 10px rgba(229, 173, 50, 0.18);
}

/* ハート */
[data-favorite-button].is-favorite::before {
  content: "♥";
  margin-right: 6px;
  color: #e0a11b;
}

[data-favorite-button]:active {
  transform: scale(0.97);
}

/* 気になる・未登録 */
[data-favorite-button]:not(.is-favorite) {
  border-color: #e5ad32;
  background: #ffffff;
  color: #9a6800;
}

[data-favorite-button]:not(.is-favorite):hover {
  background: #fff9e8;
  border-color: #d79b1b;
}

[data-favorite-button]:not(.is-favorite)::before {
  content: "♡";
  margin-right: 6px;
  color: #d79b1b;
}

/* ======================================================
   Kosen Talk Ring
   Favorite Member Card
====================================================== */

.ktr-member-card__favorite-badge {
  cursor: pointer;
  font-family: inherit;
  appearance: none;
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 9px;
  border: 1px solid #e5ad32;
  border-radius: 999px;
  background: #fff4c7;
  color: #8a5a00;
  font-size: 9px;
  font-weight: 900;
  line-height: 1;
  box-shadow:
    0 3px 9px rgba(229, 173, 50, 0.15);
}

.ktr-member-card__favorite-badge:hover {
  background: #ffeaa0;
  border-color: #d79b1b;
}

.ktr-member-card__favorite-badge:active {
  transform: scale(0.97);
}

/* 気になる登録済みカード */
.ktr-member-card.is-favorite-member {
  border-color: rgba(229, 173, 50, 0.42);
}

/* ======================================================
   Kosen Talk Ring
   Favorite Members / Connections Page
====================================================== */

.ktr-favorite-member-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 20px;
}

.ktr-favorite-member-card {
  overflow: hidden;
  border: 1px solid rgba(229, 173, 50, 0.28);
  border-radius: 20px;
  background: #ffffff;
  box-shadow:
    0 10px 28px rgba(76, 48, 33, 0.07);
  transition:
    transform 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.ktr-favorite-member-card:hover {
  transform: translateY(-3px);
  border-color: rgba(229, 173, 50, 0.55);
  box-shadow:
    0 14px 34px rgba(76, 48, 33, 0.1);
}

.ktr-favorite-member-card__main {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 16px;
  padding: 20px;
  color: inherit;
  text-decoration: none;
}

.ktr-favorite-member-card__avatar {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border: 1px solid rgba(229, 173, 50, 0.25);
  border-radius: 50%;
  background:
    linear-gradient(
      135deg,
      #fff4c7,
      #fef1e4
    );
  color: #8a5a00;
  font-size: 23px;
  font-weight: 900;
  box-shadow:
    0 7px 18px rgba(229, 173, 50, 0.12);
}

.ktr-favorite-member-card__content {
  min-width: 0;
}

.ktr-favorite-member-card__heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.ktr-favorite-member-card__number {
  display: block;
  color: var(--text-light);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.ktr-favorite-member-card__name {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.4;
}

.ktr-favorite-member-card__favorite {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 26px;
  padding: 5px 10px;
  border: 1px solid #e5ad32;
  border-radius: 999px;
  background: #fff4c7;
  color: #8a5a00;
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}

.ktr-favorite-member-card__school {
  margin: 10px 0 0;
  color: var(--primary-dark);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}

.ktr-favorite-member-card__role {
  margin: 5px 0 0;
  color: var(--text-light);
  font-size: 11px;
  line-height: 1.7;
}

.ktr-favorite-member-card__topics {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

.ktr-favorite-member-card__topics span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 5px 9px;
  border: 1px solid rgba(232, 141, 95, 0.13);
  border-radius: 999px;
  background: #fffaf6;
  color: var(--primary-dark);
  font-size: 9px;
  font-weight: 800;
}

.ktr-favorite-member-card__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 0 20px 20px;
}

.ktr-favorite-member-card__actions .ktr-button {
  width: 100%;
}

/* お気に入り0件 */
.ktr-favorite-member-empty {
  margin-top: 20px;
  padding: 46px 24px;
  border: 1px dashed rgba(229, 173, 50, 0.45);
  border-radius: 20px;
  background:
    linear-gradient(
      145deg,
      #ffffff,
      #fffdf5
    );
  text-align: center;
}

.ktr-favorite-member-empty__icon {
  display: grid;
  width: 58px;
  height: 58px;
  margin: 0 auto;
  place-items: center;
  border-radius: 50%;
  background: #fff4c7;
  color: #d79b1b;
  font-size: 27px;
  box-shadow:
    0 8px 18px rgba(229, 173, 50, 0.14);
}

.ktr-favorite-member-empty__title {
  margin: 17px 0 0;
  color: var(--text);
  font-size: 17px;
  font-weight: 900;
}

.ktr-favorite-member-empty__text {
  max-width: 460px;
  margin: 9px auto 19px;
  color: var(--text-light);
  font-size: 12px;
  line-height: 1.8;
}

/* タブレット */
@media (max-width: 1000px) {
  .ktr-favorite-member-grid {
    grid-template-columns: 1fr;
  }
}

/* スマートフォン */
@media (max-width: 760px) {
  .ktr-favorite-member-grid {
    gap: 13px;
  }

  .ktr-favorite-member-card__main {
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 12px;
    padding: 16px;
  }

  .ktr-favorite-member-card__avatar {
    width: 52px;
    height: 52px;
    font-size: 19px;
  }

  .ktr-favorite-member-card__heading {
    display: grid;
    gap: 7px;
  }

  .ktr-favorite-member-card__favorite {
    justify-self: start;
    cursor: pointer;
    font-family: inherit;
    appearance: none;
  }

  .ktr-favorite-member-card__favorite:hover {
  background: #ffeaa0;
  border-color: #d79b1b;
}

.ktr-favorite-member-card__favorite:active {
  transform: scale(0.97);
}

  .ktr-favorite-member-card__name {
    font-size: 16px;
  }

  .ktr-favorite-member-card__actions {
    grid-template-columns: 1fr;
    padding: 0 16px 16px;
  }

  .ktr-favorite-member-empty {
    padding: 36px 18px;
  }
}
/* KTR STEP3A-3G booking UI */
.ktr-booking,.ktr-availability-settings,.ktr-my-bookings{max-width:900px;margin:0 auto;padding:24px;background:#fff;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.06)}
.ktr-booking__message{padding:14px 16px;margin:16px 0;border-radius:12px;background:#f7f7f7}.ktr-booking__message--error{border-left:4px solid #b42318}.ktr-booking__message--success{border-left:4px solid #2e7d32}
.ktr-booking__form fieldset,.ktr-booking__form p{margin:18px 0}.ktr-booking__form input[type=date],.ktr-booking__form input[type=time],.ktr-booking__form select,.ktr-booking__form textarea{width:100%;max-width:520px;padding:12px;border:1px solid #d7d7d7;border-radius:10px}
.ktr-availability-settings table{width:100%;border-collapse:collapse;margin:18px 0}.ktr-availability-settings th,.ktr-availability-settings td{padding:10px;border-bottom:1px solid #eee;text-align:left}.ktr-availability-settings input[type=time]{padding:8px;border:1px solid #ddd;border-radius:8px}
.ktr-booking-list{display:grid;gap:14px}.ktr-booking-item{padding:18px;border:1px solid #eee;border-radius:14px;background:#fff}.ktr-booking-item h3{margin-top:0}
@media(max-width:640px){.ktr-booking,.ktr-availability-settings,.ktr-my-bookings{padding:16px;border-radius:14px}.ktr-availability-settings table{font-size:13px}.ktr-availability-settings th,.ktr-availability-settings td{padding:7px 4px}.ktr-availability-settings input[type=time]{max-width:95px}}

/* STEP4: booking meeting / review controls */
.ktr-booking-item .ktr-button { margin: 6px 8px 6px 0; }
.ktr-booking-review { margin-top: 12px; }
.ktr-booking-review > summary { display: inline-block; cursor: pointer; list-style: none; }
.ktr-booking-review > summary::-webkit-details-marker { display: none; }
.ktr-review-booking-form { margin-top: 12px; padding: 16px; border: 1px solid #e7e7e7; border-radius: 12px; background: #fff; }
.ktr-review-booking-form textarea, .ktr-review-booking-form select { width: 100%; max-width: 560px; }

/* =========================================================
   Kosen Talk Ring
   予約管理カード UI
   STEP4統合版-6-4 完成デザイン
========================================================= */

/* =========================
   予約一覧
========================= */

.ktr-booking-list {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
}


/* =========================
   予約カード
========================= */

.ktr-booking-item {
	position: relative;
	overflow: hidden;

	background:
		linear-gradient(
			180deg,
			#ffffff 0%,
			#fffdfb 100%
		);

	border: 1px solid #f1e8e1;
	border-radius: 18px;

	padding: 24px;

	margin: 0;

	box-shadow:
		0 8px 28px rgba(58, 42, 32, 0.055);

	transition:
		transform 0.2s ease,
		box-shadow 0.2s ease,
		border-color 0.2s ease;
}


/* 左上にKTRらしいアクセント */
.ktr-booking-item::before {
	content: "";

	position: absolute;
	top: 0;
	left: 0;

	width: 100%;
	height: 3px;

	background:
		linear-gradient(
			90deg,
			#e88d5f 0%,
			#f0ad86 55%,
			transparent 100%
		);
}


/* PCのみ軽く浮かせる */
@media (hover: hover) {

	.ktr-booking-item:hover {
		transform: translateY(-2px);

		border-color: #ead7ca;

		box-shadow:
			0 12px 34px rgba(58, 42, 32, 0.075);
	}
}


/* =========================
   相手の名前
========================= */

.ktr-booking-item__name {
	position: relative;

	margin: 0 0 20px;

	padding-left: 14px;

	font-size: clamp(19px, 2vw, 23px);
	font-weight: 750;

	line-height: 1.4;

	letter-spacing: -0.02em;

	color: #27221f;
}


/* 名前横アクセント */
.ktr-booking-item__name::before {
	content: "";

	position: absolute;
	left: 0;
	top: 50%;

	width: 4px;
	height: 22px;

	border-radius: 999px;

	background: #e88d5f;

	transform: translateY(-50%);
}


/* =========================
   予約情報グリッド
========================= */

.ktr-booking-item__details {
	display: grid;

	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(130px, 0.8fr);

	gap: 10px;

	margin-bottom: 20px;
}


/* 1項目 */
.ktr-booking-item__detail {
	display: flex;
	flex-direction: column;
	justify-content: center;

	min-height: 72px;

	padding: 13px 15px;

	background: #fef8f3;

	border: 1px solid #f3e7de;
	border-radius: 13px;
}


/* =========================
   項目名
========================= */

.ktr-booking-item__label {
	display: block;

	margin-bottom: 6px;

	font-size: 11px;
	font-weight: 700;

	line-height: 1.3;

	letter-spacing: 0.07em;

	color: #a07965;
}


/* =========================
   内容
========================= */

.ktr-booking-item__value {
	display: block;

	font-size: 14px;
	font-weight: 700;

	line-height: 1.5;

	color: #332c28;

	word-break: break-word;
}


/* =========================
   予約状況
========================= */

.ktr-booking-item__status {
	display: inline-flex;

	align-items: center;
	align-self: flex-start;

	gap: 7px;

	width: fit-content;

	padding: 6px 11px;

	border-radius: 999px;

	font-size: 12px;
	font-weight: 750;

	line-height: 1.3;

	white-space: nowrap;
}


/* 状態の丸 */
.ktr-booking-item__status::before {
	content: "";

	flex: 0 0 auto;

	width: 7px;
	height: 7px;

	border-radius: 50%;

	background: currentColor;
}


/* 申請中 */
.ktr-booking-item__status--pending {
	background: #fff4df;
	color: #a86b16;
}


/* 承認済 */
.ktr-booking-item__status--confirmed {
	background: #eaf7ee;
	color: #397c4d;
}


/* 完了 */
.ktr-booking-item__status--completed {
	background: #eff1f3;
	color: #60666b;
}


/* キャンセル */
.ktr-booking-item__status--cancelled {
	background: #fff0ed;
	color: #b45245;
}


/* =========================
   操作ボタン共通
========================= */

.ktr-booking-item .ktr-button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	min-height: 42px;

	padding: 10px 17px;

	margin:
		2px
		7px
		2px
		0;

	border: 1px solid transparent;
	border-radius: 999px;

	font-size: 13px;
	font-weight: 700;

	line-height: 1.25;

	text-decoration: none;

	cursor: pointer;

	transition:
		transform 0.18s ease,
		background-color 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease;
}


/* =========================
   メインボタン
   オンライン相談など
========================= */

.ktr-booking-item .ktr-button--primary,
.ktr-booking-item a.ktr-button--primary {
	background: #e88d5f;

	color: #ffffff;

	border-color: #e88d5f;

	box-shadow:
		0 5px 14px rgba(232, 141, 95, 0.19);
}


@media (hover: hover) {

	.ktr-booking-item .ktr-button--primary:hover,
	.ktr-booking-item a.ktr-button--primary:hover {
		background: #df7f50;

		border-color: #df7f50;

		transform: translateY(-1px);

		box-shadow:
			0 7px 18px rgba(232, 141, 95, 0.24);
	}
}


/* =========================
   通常ボタン
   承認・完了など
========================= */

.ktr-booking-item button.ktr-button:not(
	.ktr-button--primary
) {
	background: #fff7f1;

	color: #c66d40;

	border-color: #efd2c2;
}


@media (hover: hover) {

	.ktr-booking-item button.ktr-button:not(
		.ktr-button--primary
	):hover {
		background: #fceade;

		border-color: #e8bda7;

		transform: translateY(-1px);
	}
}


/* =========================
   レビュー
========================= */

.ktr-booking-review {
	margin-top: 16px;

	padding: 15px;

	background: #fffaf6;

	border: 1px solid #f1e4dc;
	border-radius: 14px;
}


.ktr-booking-review summary {
	width: fit-content;

	list-style: none;
}


.ktr-booking-review summary::-webkit-details-marker {
	display: none;
}


.ktr-review-booking-form {
	margin-top: 16px;
}


.ktr-review-booking-form label {
	font-size: 13px;
	font-weight: 650;

	color: #4b423d;
}


.ktr-review-booking-form select,
.ktr-review-booking-form textarea {
	width: 100%;

	margin-top: 7px;

	padding: 11px 12px;

	background: #ffffff;

	border: 1px solid #e5dcd5;
	border-radius: 10px;

	font-size: 14px;

	color: #332c28;
}


.ktr-review-booking-form select:focus,
.ktr-review-booking-form textarea:focus {
	outline: none;

	border-color: #e88d5f;

	box-shadow:
		0 0 0 3px rgba(232, 141, 95, 0.12);
}


/* =========================
   予約管理の見出し
========================= */

.ktr-my-bookings > h2 {
	margin-bottom: 26px;

	font-size: clamp(27px, 4vw, 36px);

	font-weight: 800;

	letter-spacing: -0.035em;

	color: #221e1b;
}


.ktr-my-bookings > h3 {
	position: relative;

	margin:
		30px
		0
		16px;

	padding-left: 14px;

	font-size: clamp(20px, 3vw, 25px);

	font-weight: 750;

	color: #27221f;
}


.ktr-my-bookings > h3::before {
	content: "";

	position: absolute;

	left: 0;
	top: 4px;

	width: 4px;
	height: calc(100% - 8px);

	border-radius: 999px;

	background: #e88d5f;
}


/* =========================
   成功・エラー
========================= */

.ktr-my-bookings [role="status"] {
	padding: 12px 14px;

	margin-bottom: 14px;

	background: #eff8f1;

	border-left: 3px solid #4d9960;
	border-radius: 9px;

	color: #376543;
}


.ktr-my-bookings [role="alert"] {
	padding: 12px 14px;

	margin-bottom: 14px;

	background: #fff1ef;

	border-left: 3px solid #c4594c;
	border-radius: 9px;

	color: #8b4037;
}


/* =========================================================
   スマートフォン
========================================================= */

@media (max-width: 767px) {

	.ktr-booking-list {
		gap: 14px;
	}

	.ktr-booking-item {
		padding: 19px 16px;

		border-radius: 16px;
	}

	.ktr-booking-item__name {
		margin-bottom: 16px;

		font-size: 20px;
	}

	.ktr-booking-item__details {
		grid-template-columns: 1fr;

		gap: 8px;

		margin-bottom: 16px;
	}

	.ktr-booking-item__detail {
		min-height: auto;

		padding: 11px 12px;
	}

	.ktr-booking-item__label {
		margin-bottom: 4px;

		font-size: 10px;
	}

	.ktr-booking-item__value {
		font-size: 14px;
	}

	/*
	 * スマホでは操作を大きくして
	 * 押し間違いを防ぐ
	 */
	.ktr-booking-item form {
		display: block !important;

		width: 100%;

		margin: 0 0 8px !important;
	}

	.ktr-booking-item .ktr-button {
		width: 100%;

		min-height: 46px;

		margin:
			0
			0
			8px;

		padding: 11px 14px;
	}

	.ktr-booking-item a.ktr-button {
		display: flex;
	}

	.ktr-booking-review {
		margin-top: 12px;

		padding: 13px;
	}

	.ktr-booking-review summary {
		width: 100%;
	}
}

/* =========================
   予約カード ヘッダー
========================= */

.ktr-booking-item__header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
}

.ktr-booking-item__relationship {
	display: inline-block;
	margin: 0 0 5px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #a07965;
}

.ktr-booking-item__header .ktr-booking-item__name {
	margin-bottom: 0;
}

.ktr-booking-item__number {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 10px;
	background: #fff4ec;
	border: 1px solid #f0d5c4;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 750;
	letter-spacing: 0.04em;
	color: #c96f43;
}

@media (max-width: 767px) {

	.ktr-booking-item__header {
		gap: 10px;
		margin-bottom: 16px;
	}

	.ktr-booking-item__number {
		padding: 5px 8px;
		font-size: 10px;
	}
}

/* =========================================================
   Kosen Talk Ring
   RESERVATION MANAGEMENT
   Final Responsive UI
========================================================= */


/* =========================================================
   01. ページ全体
========================================================= */

.ktr-my-bookings {
	width: 100%;
	max-width: 980px;
	margin: 0 auto;
	padding: 20px 4px 60px;

	color: #28231f;
}


/* =========================================================
   02. メインタイトル
========================================================= */

.ktr-my-bookings > h2 {
	position: relative;

	margin: 0 0 38px;

	padding-top: 24px;

	font-size: clamp(30px, 4vw, 42px);
	font-weight: 800;

	line-height: 1.25;

	letter-spacing: -0.04em;

	color: #241f1b;
}


/* =========================================================
   03. 申し込んだ予約・受けた予約
========================================================= */

.ktr-my-bookings > h3 {
	position: relative;

	display: flex;
	align-items: center;

	gap: 10px;

	margin:
		38px
		0
		18px;

	padding: 0;

	font-size: clamp(21px, 3vw, 27px);
	font-weight: 800;

	line-height: 1.4;

	letter-spacing: -0.025em;

	color: #2b2521;
}


/* 小さいオレンジマーク */
.ktr-my-bookings > h3::before {
	content: "";

	display: block;

	width: 7px;
	height: 7px;

	flex: 0 0 auto;

	border-radius: 50%;

	background: #e88d5f;

	box-shadow:
		0 0 0 5px rgba(232, 141, 95, 0.12);
}


/* =========================================================
   04. 予約リスト
========================================================= */

.ktr-booking-list {
	display: flex;

	flex-direction: column;

	gap: 18px;

	width: 100%;
}


/* =========================================================
   05. 予約カード
========================================================= */

.ktr-booking-item {
	position: relative;

	overflow: hidden;

	width: 100%;

	margin: 0;

	padding: 26px;

	background:
		linear-gradient(
			145deg,
			#ffffff 0%,
			#fffdfb 100%
		);

	border: 1px solid #eee7e1;
	border-radius: 20px;

	box-shadow:
		0 8px 30px rgba(58, 42, 32, 0.055);

	transition:
		transform 0.22s ease,
		box-shadow 0.22s ease,
		border-color 0.22s ease;
}


/* 上部アクセント */
.ktr-booking-item::before {
	content: "";

	position: absolute;

	top: 0;
	left: 0;

	width: 100%;
	height: 3px;

	background:
		linear-gradient(
			90deg,
			#e88d5f 0%,
			#f4b08d 45%,
			rgba(244, 176, 141, 0) 100%
		);
}


@media (hover: hover) {

	.ktr-booking-item:hover {
		transform: translateY(-3px);

		border-color: #ead9cf;

		box-shadow:
			0 14px 40px rgba(58, 42, 32, 0.08);
	}

}


/* =========================================================
   06. カード上部
========================================================= */

.ktr-booking-item__header {
	display: flex;

	align-items: flex-start;
	justify-content: space-between;

	gap: 20px;

	margin-bottom: 22px;
}


/* 相談相手 / 予約者 */
.ktr-booking-item__relationship {
	display: block;

	margin-bottom: 5px;

	font-size: 10px;
	font-weight: 800;

	line-height: 1.2;

	letter-spacing: 0.13em;

	color: #b47b5d;
}


/* 名前 */
.ktr-booking-item__name {
	position: relative;

	margin: 0 !important;
	padding: 0 !important;

	font-size: clamp(21px, 2.5vw, 27px);
	font-weight: 800;

	line-height: 1.35;

	letter-spacing: -0.025em;

	color: #25201c;
}


/* 古い疑似要素を無効化 */
.ktr-booking-item__name::before {
	display: none;
}


/* 予約番号 */
.ktr-booking-item__number {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	padding: 7px 12px;

	background: #fff3eb;

	border: 1px solid #f1d3c2;
	border-radius: 999px;

	font-size: 11px;
	font-weight: 800;

	line-height: 1;

	letter-spacing: 0.05em;

	color: #cf7448;
}


/* =========================================================
   07. 予約情報
========================================================= */

.ktr-booking-item__details {
	display: grid;

	grid-template-columns:
		minmax(0, 1.5fr)
		minmax(150px, 0.75fr);

	gap: 11px;

	margin-bottom: 22px;
}


/* 各情報BOX */
.ktr-booking-item__detail {
	position: relative;

	display: flex;

	flex-direction: column;
	justify-content: center;

	min-height: 78px;

	padding: 14px 16px;

	background: #fef8f3;

	border: 1px solid #f3e6dd;
	border-radius: 14px;
}


/* 項目名 */
.ktr-booking-item__label {
	display: block;

	margin-bottom: 7px;

	font-size: 10px;
	font-weight: 800;

	line-height: 1.2;

	letter-spacing: 0.09em;

	color: #a87b64;
}


/* 入力内容 */
.ktr-booking-item__value {
	display: block;

	font-size: 15px;
	font-weight: 750;

	line-height: 1.5;

	letter-spacing: -0.01em;

	color: #332c27;

	word-break: break-word;
}


/* =========================================================
   08. 予約状況
========================================================= */

.ktr-booking-item__status {
	display: inline-flex;

	align-items: center;

	align-self: flex-start;

	gap: 7px;

	width: fit-content;

	padding: 7px 12px;

	border-radius: 999px;

	font-size: 12px;
	font-weight: 800;

	line-height: 1.2;

	letter-spacing: 0.02em;
}


/* 状態アイコン */
.ktr-booking-item__status::before {
	content: "";

	display: block;

	width: 7px;
	height: 7px;

	flex: 0 0 auto;

	border-radius: 50%;

	background: currentColor;
}


/* 申請中 */
.ktr-booking-item__status--pending {
	background: #fff3dc;

	color: #a66c18;
}


/* 承認済 */
.ktr-booking-item__status--confirmed {
	background: #eaf6ed;

	color: #3d8050;
}


/* 完了 */
.ktr-booking-item__status--completed {
	background: #f0f1f3;

	color: #62676c;
}


/* キャンセル */
.ktr-booking-item__status--cancelled {
	background: #fff0ed;

	color: #b85347;
}


/* =========================================================
   09. ボタン
========================================================= */

.ktr-booking-item .ktr-button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	min-height: 44px;

	padding: 10px 18px;

	margin:
		3px
		8px
		3px
		0;

	border: 1px solid #edcab7;
	border-radius: 999px;

	background: #fff7f2;

	color: #c66c40;

	font-size: 13px;
	font-weight: 800;

	line-height: 1.25;

	text-decoration: none;

	cursor: pointer;

	transition:
		transform 0.18s ease,
		background-color 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease;
}


@media (hover: hover) {

	.ktr-booking-item .ktr-button:hover {
		transform: translateY(-1px);

		background: #fcece2;

		border-color: #e9bda7;
	}

}


/* =========================================================
   10. オンライン相談ボタン
========================================================= */

.ktr-booking-item .ktr-button--primary,
.ktr-booking-item a.ktr-button--primary {
	background:
		linear-gradient(
			135deg,
			#e88d5f 0%,
			#ec986d 100%
		);

	border-color: #e88d5f;

	color: #ffffff;

	box-shadow:
		0 7px 18px rgba(232, 141, 95, 0.2);
}


@media (hover: hover) {

	.ktr-booking-item .ktr-button--primary:hover,
	.ktr-booking-item a.ktr-button--primary:hover {
		background:
			linear-gradient(
				135deg,
				#df7f50 0%,
				#e68a5d 100%
			);

		border-color: #df7f50;

		box-shadow:
			0 9px 22px rgba(232, 141, 95, 0.26);
	}

}


/* =========================================================
   11. フォームの余計な幅を防ぐ
========================================================= */

.ktr-booking-item form {
	display: inline-block;

	margin-right: 7px;
}


/* =========================================================
   12. レビュー
========================================================= */

.ktr-booking-review {
	margin-top: 18px;

	padding: 17px;

	background: #fff9f5;

	border: 1px solid #f1e3da;
	border-radius: 15px;
}


.ktr-booking-review summary {
	width: fit-content;

	list-style: none;

	cursor: pointer;
}


.ktr-booking-review summary::-webkit-details-marker {
	display: none;
}


.ktr-review-booking-form {
	margin-top: 17px;
}


.ktr-review-booking-form p {
	margin-bottom: 14px;
}


.ktr-review-booking-form label {
	font-size: 13px;
	font-weight: 700;

	line-height: 1.5;

	color: #4d433d;
}


.ktr-review-booking-form select,
.ktr-review-booking-form textarea {
	width: 100%;

	margin-top: 7px;

	padding: 12px 13px;

	background: #ffffff;

	border: 1px solid #e3d9d2;
	border-radius: 10px;

	color: #322c28;

	font-size: 14px;

	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease;
}


.ktr-review-booking-form select:focus,
.ktr-review-booking-form textarea:focus {
	outline: none;

	border-color: #e88d5f;

	box-shadow:
		0 0 0 3px rgba(232, 141, 95, 0.12);
}


/* =========================================================
   13. 完了メッセージ・エラー
========================================================= */

.ktr-my-bookings [role="status"] {
	margin-bottom: 18px;

	padding: 13px 15px;

	background: #eef8f1;

	border: 1px solid #d8ecde;
	border-left: 4px solid #4b9560;
	border-radius: 10px;

	font-size: 14px;

	line-height: 1.6;

	color: #376644;
}


.ktr-my-bookings [role="alert"] {
	margin-bottom: 18px;

	padding: 13px 15px;

	background: #fff1ef;

	border: 1px solid #f2dcda;
	border-left: 4px solid #c35a4e;
	border-radius: 10px;

	font-size: 14px;

	line-height: 1.6;

	color: #8e4037;
}


/* =========================================================
   14. 予約なし
========================================================= */

.ktr-booking-list + p,
.ktr-my-bookings > p {
	line-height: 1.7;
}


/* =========================================================
   TABLET
========================================================= */

@media (
	min-width: 768px
) and (
	max-width: 1024px
) {

	.ktr-my-bookings {
		max-width: 820px;

		padding-left: 14px;
		padding-right: 14px;
	}

	.ktr-booking-item {
		padding: 23px;
	}

	.ktr-booking-item__details {
		grid-template-columns:
			minmax(0, 1.35fr)
			minmax(135px, 0.75fr);
	}

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

	.ktr-my-bookings {
		padding:
			10px
			4px
			45px;
	}

	/* タイトル */
	.ktr-my-bookings > h2 {
		margin-bottom: 30px;

		padding-top: 21px;

		font-size: 29px;
	}

	.ktr-my-bookings > h2::before {
		font-size: 9px;
	}

	/* セクション */
	.ktr-my-bookings > h3 {
		margin:
			30px
			0
			14px;

		font-size: 21px;
	}

	/* カード */
	.ktr-booking-list {
		gap: 14px;
	}

	.ktr-booking-item {
		padding:
			20px
			16px
			17px;

		border-radius: 17px;

		box-shadow:
			0 7px 24px rgba(58, 42, 32, 0.05);
	}

	/* ヘッダー */
	.ktr-booking-item__header {
		gap: 10px;

		margin-bottom: 17px;
	}

	.ktr-booking-item__relationship {
		font-size: 9px;
	}

	.ktr-booking-item__name {
		font-size: 20px;
	}

	.ktr-booking-item__number {
		padding: 6px 8px;

		font-size: 9px;
	}

	/* 情報 */
	.ktr-booking-item__details {
		grid-template-columns: 1fr;

		gap: 8px;

		margin-bottom: 17px;
	}

	.ktr-booking-item__detail {
		min-height: auto;

		padding: 11px 12px;

		border-radius: 11px;
	}

	.ktr-booking-item__label {
		margin-bottom: 5px;

		font-size: 10px;
	}

	.ktr-booking-item__value {
		font-size: 14px;

		line-height: 1.5;
	}

	.ktr-booking-item__status {
		padding: 6px 10px;

		font-size: 11px;
	}

	/* スマホ操作 */
	.ktr-booking-item form {
		display: block !important;

		width: 100%;

		margin:
			0
			0
			8px !important;
	}

	.ktr-booking-item .ktr-button {
		width: 100%;

		min-height: 47px;

		margin:
			0
			0
			8px;

		padding:
			11px
			13px;

		border-radius: 12px;

		font-size: 13px;
	}

	.ktr-booking-item a.ktr-button {
		display: flex;
	}

	/* レビュー */
	.ktr-booking-review {
		margin-top: 14px;

		padding: 14px;

		border-radius: 13px;
	}

	.ktr-booking-review summary {
		width: 100%;
	}

	.ktr-review-booking-form select,
	.ktr-review-booking-form textarea {
		font-size: 16px;
	}

}

/* =========================================================
   Kosen Talk Ring
   Booking Tabs & Status Filter
   STEP4統合版-6-10-5
========================================================= */


/* =========================================================
   予約管理ページ ヘッダー
========================================================= */

.ktr-booking-page-header {
	position: relative;
	margin: 0 0 32px;
	padding: 0;
}

.ktr-booking-page-header__eyebrow {
	display: block;
	margin: 0 0 9px;

	font-size: 10px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.16em;

	color: #e88d5f;
}

.ktr-booking-page-header__title {
	position: relative;

	margin: 0;
	padding: 0 0 17px;

	font-size: clamp(30px, 4vw, 42px);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.04em;

	color: #241f1b;
}

.ktr-booking-page-header__title::after {
	content: "";

	position: absolute;
	left: 0;
	bottom: 0;

	width: 42px;
	height: 3px;

	border-radius: 999px;

	background: #e88d5f;
}

.ktr-booking-page-header__description {
	margin: 15px 0 0;

	font-size: 14px;
	font-weight: 500;
	line-height: 1.75;

	color: #766b64;
}


/* =========================================================
   「申し込んだ予約 / 受けた予約」
   メインタブ
========================================================= */

.ktr-booking-tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));

	gap: 8px;

	width: 100%;

	margin: 0 0 20px;
	padding: 6px;

	background: #f8f3ef;

	border: 1px solid #eee3dc;
	border-radius: 17px;
}


/* タブ */
.ktr-booking-tab {
	position: relative;

	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 12px;

	width: 100%;
	min-height: 62px;

	padding: 12px 17px;

	background: transparent;

	border: 1px solid transparent;
	border-radius: 12px;

	color: #786c65;

	font-family: inherit;

	cursor: pointer;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease;
}


/* タブ名 */
.ktr-booking-tab__label {
	font-size: 14px;
	font-weight: 800;

	line-height: 1.4;

	letter-spacing: -0.01em;
}


/* 件数 */
.ktr-booking-tab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	min-width: 42px;
	height: 27px;

	padding: 0 9px;

	background: rgba(255, 255, 255, 0.75);

	border: 1px solid #eadfd8;
	border-radius: 999px;

	font-size: 11px;
	font-weight: 800;
	line-height: 1;

	color: #9a887d;
}


/* 選択中 */
.ktr-booking-tab.is-active {
	background: #ffffff;

	border-color: #efd9cc;

	color: #c96f43;

	box-shadow:
		0 5px 18px rgba(73, 50, 37, 0.07);
}

.ktr-booking-tab.is-active .ktr-booking-tab__count {
	background: #fff1e8;

	border-color: #f1d0bd;

	color: #cb7145;
}


@media (hover: hover) {

	.ktr-booking-tab:not(.is-active):hover {
		background: rgba(255, 255, 255, 0.55);

		color: #a45f3e;
	}

}


/* キーボード操作 */
.ktr-booking-tab:focus-visible {
	outline: 3px solid rgba(232, 141, 95, 0.24);
	outline-offset: 2px;
}


/* =========================================================
   タブパネル
========================================================= */

.ktr-booking-panel {
	width: 100%;
}

.ktr-booking-panel[hidden] {
	display: none !important;
}


/* =========================================================
   状態フィルター
========================================================= */

.ktr-booking-filter {
	display: flex;

	align-items: center;

	gap: 7px;

	width: 100%;

	margin: 0 0 20px;
	padding: 2px 1px;

	overflow-x: auto;

	-webkit-overflow-scrolling: touch;

	scrollbar-width: thin;
}


/* フィルターボタン */
.ktr-booking-filter__button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	flex: 0 0 auto;

	min-height: 36px;

	padding: 7px 14px;

	background: #ffffff;

	border: 1px solid #e9e0da;
	border-radius: 999px;

	color: #776d67;

	font-family: inherit;

	font-size: 12px;
	font-weight: 750;

	line-height: 1;

	white-space: nowrap;

	cursor: pointer;

	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}


/* 選択中 */
.ktr-booking-filter__button.is-active {
	background: #e88d5f;

	border-color: #e88d5f;

	color: #ffffff;

	box-shadow:
		0 5px 14px rgba(232, 141, 95, 0.2);
}


@media (hover: hover) {

	.ktr-booking-filter__button:not(.is-active):hover {
		background: #fff7f2;

		border-color: #efcdbb;

		color: #c46d42;

		transform: translateY(-1px);
	}

}


.ktr-booking-filter__button:focus-visible {
	outline: 3px solid rgba(232, 141, 95, 0.22);
	outline-offset: 2px;
}


/* =========================================================
   フィルターによって非表示になった予約
========================================================= */

.ktr-booking-item[hidden] {
	display: none !important;
}


/* =========================================================
   タブとカードの接続感
========================================================= */

.ktr-booking-panel .ktr-booking-list {
	margin-top: 0;
}


/* =========================================================
   TABLET
========================================================= */

@media (min-width: 768px) and (max-width: 1024px) {

	.ktr-booking-tabs {
		border-radius: 15px;
	}

	.ktr-booking-tab {
		min-height: 58px;

		padding: 11px 14px;
	}

	.ktr-booking-tab__label {
		font-size: 13px;
	}

	.ktr-booking-filter {
		margin-bottom: 18px;
	}

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

	/* ページ見出し */
	.ktr-booking-page-header {
		margin-bottom: 25px;
	}

	.ktr-booking-page-header__eyebrow {
		margin-bottom: 7px;

		font-size: 9px;
	}

	.ktr-booking-page-header__title {
		padding-bottom: 14px;

		font-size: 29px;
	}

	.ktr-booking-page-header__description {
		margin-top: 13px;

		font-size: 13px;
		line-height: 1.7;
	}


	/* メインタブ */
	.ktr-booking-tabs {
		gap: 5px;

		margin-bottom: 16px;
		padding: 5px;

		border-radius: 14px;
	}

	.ktr-booking-tab {
		flex-direction: column;

		align-items: flex-start;
		justify-content: center;

		gap: 5px;

		min-height: 67px;

		padding: 10px 11px;

		border-radius: 10px;
	}

	.ktr-booking-tab__label {
		font-size: 12px;

		line-height: 1.35;
	}

	.ktr-booking-tab__count {
		min-width: 0;
		height: 22px;

		padding: 0 7px;

		font-size: 9px;
	}


	/* 状態フィルター */
	.ktr-booking-filter {
		gap: 6px;

		margin-bottom: 16px;
		padding:
			1px
			1px
			5px;
	}

	.ktr-booking-filter__button {
		min-height: 34px;

		padding: 7px 12px;

		font-size: 11px;
	}

}

/* =========================================================
   Kosen Talk Ring
   Booking Empty State
   STEP4統合版-6-10-6
========================================================= */

.ktr-booking-empty {
	width: 100%;

	margin-top: 8px;
	padding: 38px 24px;

	text-align: center;

	background:
		linear-gradient(
			145deg,
			#fffdfb 0%,
			#fef8f3 100%
		);

	border: 1px dashed #ead9ce;
	border-radius: 18px;
}

.ktr-booking-empty[hidden] {
	display: none !important;
}

.ktr-booking-empty__icon {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 42px;
	height: 42px;

	margin-bottom: 13px;

	background: #fff0e6;

	border-radius: 50%;

	color: #e88d5f;

	font-size: 17px;
	font-weight: 800;
}

.ktr-booking-empty__title {
	margin: 0 0 6px;

	font-size: 16px;
	font-weight: 800;

	line-height: 1.5;

	color: #332c28;
}

.ktr-booking-empty__text {
	margin: 0;

	font-size: 13px;
	font-weight: 500;

	line-height: 1.7;

	color: #8a7c73;
}


/* スマホ */
@media (max-width: 767px) {

	.ktr-booking-empty {
		padding: 30px 17px;

		border-radius: 15px;
	}

	.ktr-booking-empty__icon {
		width: 38px;
		height: 38px;

		font-size: 15px;
	}

	.ktr-booking-empty__title {
		font-size: 15px;
	}

	.ktr-booking-empty__text {
		font-size: 12px;
	}

}

/* =========================================================
   Kosen Talk Ring
   Integrated My Page
   STEP4統合版-7-5
========================================================= */

/* =========================
   ページ全体
========================= */

.ktr-mypage {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 22px 6px 64px;
	color: #29231f;
}


/* =========================
   ヘッダー
========================= */

.ktr-mypage-header {
	margin: 0 0 30px;
	padding: 0;
}

.ktr-mypage-header__eyebrow {
	display: block;
	margin-bottom: 8px;

	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.16em;

	color: #e88d5f;
}

.ktr-mypage-header__title {
	position: relative;

	margin: 0;
	padding-bottom: 16px;

	font-size: clamp(32px, 4vw, 44px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.04em;

	color: #241f1b;
}

.ktr-mypage-header__title::after {
	content: "";

	position: absolute;
	left: 0;
	bottom: 0;

	width: 42px;
	height: 3px;

	border-radius: 999px;

	background: #e88d5f;
}

.ktr-mypage-header__welcome {
	margin: 18px 0 5px;

	font-size: 16px;
	line-height: 1.6;

	color: #4c433e;
}

.ktr-mypage-header__name {
	font-weight: 800;
	color: #26211e;
}

.ktr-mypage-header__description {
	margin: 0;

	font-size: 14px;
	line-height: 1.75;

	color: #82756d;
}


/* =========================
   ステータスカード
========================= */

.ktr-mypage-status {
	margin-bottom: 24px;
}

.ktr-mypage-status__item {
	padding: 20px;

	background:
		linear-gradient(
			145deg,
			#ffffff 0%,
			#fffaf6 100%
		);

	border: 1px solid #eee4dd;
	border-radius: 18px;

	box-shadow:
		0 8px 28px rgba(57, 42, 31, 0.05);
}

.ktr-mypage-status__label {
	display: block;
	margin-bottom: 6px;

	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.14em;

	color: #d17c50;
}

.ktr-mypage-status__title {
	display: block;
	margin-bottom: 14px;

	font-size: 16px;
	font-weight: 800;

	color: #312a26;
}


/* =========================
   プロフィール完成度
========================= */

.ktr-mypage-progress__top {
	display: flex;
	align-items: center;
	justify-content: space-between;

	gap: 15px;

	margin-bottom: 8px;

	font-size: 12px;

	color: #7d7169;
}

.ktr-mypage-progress__top strong {
	font-size: 14px;
	font-weight: 800;

	color: #d27549;
}

.ktr-mypage-progress__track {
	overflow: hidden;

	width: 100%;
	height: 9px;

	background: #f0e5dd;

	border-radius: 999px;
}

.ktr-mypage-progress__bar {
	display: block;

	height: 100%;

	border-radius: inherit;

	background:
		linear-gradient(
			90deg,
			#e88d5f 0%,
			#f0aa84 100%
		);

	transition: width 0.35s ease;
}


/* =========================
   メインナビゲーション
========================= */

.ktr-mypage-nav {
	display: grid;

	grid-template-columns:
		repeat(6, minmax(0, 1fr));

	gap: 7px;

	margin-bottom: 24px;
	padding: 6px;

	background: #f8f3ef;

	border: 1px solid #ece2dc;
	border-radius: 18px;
}

.ktr-mypage-nav__button {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;

	gap: 6px;

	min-height: 72px;

	padding: 10px 8px;

	background: transparent;

	border: 1px solid transparent;
	border-radius: 13px;

	font-family: inherit;

	font-size: 11px;
	font-weight: 750;

	line-height: 1.35;

	color: #7a6f68;

	cursor: pointer;

	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}

.ktr-mypage-nav__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 28px;
	height: 28px;

	border-radius: 50%;

	background: #fff;

	border: 1px solid #eaded6;

	font-size: 14px;
	font-weight: 800;

	color: #c47a54;
}

.ktr-mypage-nav__button.is-active {
	background: #ffffff;

	border-color: #efd6c8;

	color: #c76b3f;

	box-shadow:
		0 5px 16px rgba(67, 48, 36, 0.07);
}

.ktr-mypage-nav__button.is-active
.ktr-mypage-nav__icon {
	background: #fff1e8;
	border-color: #efd1bf;
	color: #e08153;
}

@media (hover: hover) {

	.ktr-mypage-nav__button:not(.is-active):hover {
		background: rgba(255, 255, 255, 0.6);

		color: #b8653e;

		transform: translateY(-1px);
	}

}

.ktr-mypage-nav__button:focus-visible {
	outline: 3px solid rgba(232, 141, 95, 0.22);
	outline-offset: 2px;
}


/* =========================
   パネル
========================= */

.ktr-mypage-panel {
	width: 100%;
}

.ktr-mypage-panel[hidden] {
	display: none !important;
}


/* =========================
   ダッシュボード
========================= */

.ktr-mypage-dashboard {
	padding-top: 4px;
}

.ktr-mypage-dashboard__intro {
	margin-bottom: 20px;
}

.ktr-mypage-section-label {
	display: block;
	margin-bottom: 7px;

	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.15em;

	color: #e88d5f;
}

.ktr-mypage-dashboard__intro h2 {
	margin: 0 0 7px;

	font-size: clamp(23px, 3vw, 30px);
	font-weight: 800;

	line-height: 1.35;
	letter-spacing: -0.03em;

	color: #29231f;
}

.ktr-mypage-dashboard__intro p {
	margin: 0;

	font-size: 14px;
	line-height: 1.7;

	color: #82766f;
}


/* =========================
   メニューカード
========================= */

.ktr-mypage-dashboard__grid {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap: 14px;
}

.ktr-mypage-menu-card {
	position: relative;

	display: flex;
	flex-direction: column;

	align-items: flex-start;

	min-height: 170px;

	padding: 22px;

	background:
		linear-gradient(
			145deg,
			#ffffff 0%,
			#fffdfb 100%
		);

	border: 1px solid #eee5df;
	border-radius: 18px;

	text-align: left;

	color: inherit;

	cursor: pointer;

	box-shadow:
		0 7px 26px rgba(56, 41, 31, 0.045);

	transition:
		transform 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.2s ease;
}

.ktr-mypage-menu-card::before {
	content: "";

	position: absolute;

	top: 0;
	left: 0;

	width: 100%;
	height: 3px;

	background:
		linear-gradient(
			90deg,
			#e88d5f 0%,
			#f3af8b 52%,
			transparent 100%
		);
}

.ktr-mypage-menu-card__label {
	display: block;

	margin-bottom: 8px;

	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.14em;

	color: #d17a4e;
}

.ktr-mypage-menu-card strong {
	display: block;

	margin-bottom: 8px;

	font-size: 19px;
	font-weight: 800;

	line-height: 1.4;

	color: #2b2521;
}

.ktr-mypage-menu-card p {
	max-width: 90%;

	margin: 0;

	font-size: 13px;
	line-height: 1.7;

	color: #7f746d;
}

.ktr-mypage-menu-card__arrow {
	position: absolute;

	right: 18px;
	bottom: 16px;

	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 31px;
	height: 31px;

	background: #fff1e8;

	border: 1px solid #f0d1be;
	border-radius: 50%;

	font-size: 15px;
	font-weight: 800;

	color: #d97949;
}

@media (hover: hover) {

	.ktr-mypage-menu-card:hover {
		transform: translateY(-3px);

		border-color: #ead3c5;

		box-shadow:
			0 12px 34px rgba(56, 41, 31, 0.075);
	}

}


/* =========================
   内部ショートコードとの間隔
========================= */

.ktr-mypage-panel
> .ktr-my-bookings,
.ktr-mypage-panel
> .ktr-profile-edit,
.ktr-mypage-panel
> .ktr-consultation-settings,
.ktr-mypage-panel
> .ktr-availability-settings,
.ktr-mypage-panel
> .ktr-profile-visibility-settings {
	margin-top: 6px;
}


/* =========================
   ログイン必須
========================= */

.ktr-mypage-login-required {
	max-width: 650px;

	margin: 30px auto;
	padding: 30px;

	background: #ffffff;

	border: 1px solid #eee3dc;
	border-radius: 18px;

	text-align: center;
}

.ktr-mypage-login-required h2 {
	margin: 0 0 10px;

	font-size: 24px;
	font-weight: 800;

	color: #2d2723;
}

.ktr-mypage-login-required p {
	margin: 0;

	font-size: 14px;
	line-height: 1.7;

	color: #82756d;
}


/* =========================================================
   TABLET
========================================================= */

@media (
	min-width: 768px
) and (
	max-width: 1024px
) {

	.ktr-mypage {
		padding-left: 14px;
		padding-right: 14px;
	}

	.ktr-mypage-nav {
		grid-template-columns:
			repeat(3, minmax(0, 1fr));
	}

	.ktr-mypage-nav__button {
		min-height: 66px;
	}

	.ktr-mypage-dashboard__grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}


/* =========================================================
   SMARTPHONE
========================================================= */

@media (max-width: 767px) {

	.ktr-mypage {
		padding:
			12px
			4px
			46px;
	}

	/* ヘッダー */
	.ktr-mypage-header {
		margin-bottom: 24px;
	}

	.ktr-mypage-header__eyebrow {
		margin-bottom: 6px;

		font-size: 9px;
	}

	.ktr-mypage-header__title {
		padding-bottom: 13px;

		font-size: 30px;
	}

	.ktr-mypage-header__welcome {
		margin-top: 15px;

		font-size: 15px;
	}

	.ktr-mypage-header__description {
		font-size: 13px;
	}

	/* ステータス */
	.ktr-mypage-status__item {
		padding: 17px;

		border-radius: 15px;
	}

	/* ナビ */
	.ktr-mypage-nav {
		grid-template-columns:
			repeat(3, minmax(0, 1fr));

		gap: 5px;

		padding: 5px;

		border-radius: 15px;
	}

	.ktr-mypage-nav__button {
		min-height: 66px;

		padding: 8px 5px;

		border-radius: 10px;

		font-size: 10px;
	}

	.ktr-mypage-nav__icon {
		width: 25px;
		height: 25px;

		font-size: 12px;
	}

	/* ホーム */
	.ktr-mypage-dashboard__intro {
		margin-top: 24px;
	}

	.ktr-mypage-dashboard__intro h2 {
		font-size: 23px;
	}

	.ktr-mypage-dashboard__intro p {
		font-size: 13px;
	}

	/* メニューカード */
	.ktr-mypage-dashboard__grid {
		grid-template-columns: 1fr;

		gap: 11px;
	}

	.ktr-mypage-menu-card {
		min-height: 145px;

		padding: 18px;

		border-radius: 15px;
	}

	.ktr-mypage-menu-card strong {
		font-size: 18px;
	}

	.ktr-mypage-menu-card p {
		max-width: 88%;

		font-size: 12px;
	}

	.ktr-mypage-menu-card__arrow {
		right: 15px;
		bottom: 14px;

		width: 29px;
		height: 29px;

		font-size: 14px;
	}

}

/* =========================================================
   Kosen Talk Ring
   My Page - K Point
   STEP4統合版-7-6
========================================================= */

.ktr-mypage-status {
	display: grid;
	grid-template-columns:
		repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ktr-mypage-status__item--points {
	position: relative;
	overflow: hidden;
}

.ktr-mypage-status__item--points::after {
	content: "P";

	position: absolute;
	right: 16px;
	bottom: -18px;

	font-size: 82px;
	font-weight: 900;
	line-height: 1;

	color: rgba(232, 141, 95, 0.065);

	pointer-events: none;
}

.ktr-mypage-points {
	position: relative;
	z-index: 1;
}

.ktr-mypage-points__balance {
	display: flex;
	align-items: baseline;
	gap: 5px;

	margin-bottom: 7px;

	font-size: clamp(25px, 4vw, 34px);
	font-weight: 850;
	line-height: 1.2;
	letter-spacing: -0.035em;

	color: #d47345;
}

.ktr-mypage-points__balance span {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0;
}

.ktr-mypage-points__text {
	max-width: 320px;
	margin: 0;

	font-size: 12px;
	line-height: 1.65;

	color: #81746c;
}


/* Tablet / Smartphone */
@media (max-width: 767px) {

	.ktr-mypage-status {
		grid-template-columns: 1fr;
		gap: 10px;
	}

	.ktr-mypage-points__balance {
		font-size: 28px;
	}

	.ktr-mypage-status__item--points::after {
		right: 12px;
		font-size: 70px;
	}

}

/* =========================================================
   Kosen Talk Ring
   My Page - Member ID / Public Profile
   STEP4統合版-7-7
========================================================= */

.ktr-mypage-header__meta {
	display: flex;
	align-items: stretch;

	gap: 10px;

	margin-top: 20px;
}


/* 会員番号 */
.ktr-mypage-member-number {
	display: flex;
	flex-direction: column;
	justify-content: center;

	min-width: 130px;

	padding: 11px 14px;

	background: #fff8f3;

	border: 1px solid #f0ded2;
	border-radius: 12px;
}

.ktr-mypage-member-number__label {
	margin-bottom: 4px;

	font-size: 8px;
	font-weight: 800;

	line-height: 1.2;

	letter-spacing: 0.14em;

	color: #bb7b59;
}

.ktr-mypage-member-number__value {
	font-size: 15px;
	font-weight: 800;

	line-height: 1.3;

	color: #332b27;
}


/* 公開プロフィール */
.ktr-mypage-profile-link {
	display: inline-flex;

	align-items: center;
	justify-content: space-between;

	gap: 18px;

	min-height: 52px;

	padding: 11px 15px;

	background: #ffffff;

	border: 1px solid #eaded6;
	border-radius: 12px;

	font-size: 12px;
	font-weight: 800;

	line-height: 1.4;

	color: #c46b40;

	text-decoration: none;

	transition:
		transform 0.18s ease,
		background-color 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease;
}

.ktr-mypage-profile-link__arrow {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	width: 25px;
	height: 25px;

	background: #fff0e7;

	border-radius: 50%;

	font-size: 12px;

	color: #dc7d4d;
}


@media (hover: hover) {

	.ktr-mypage-profile-link:hover {
		transform: translateY(-1px);

		background: #fffaf7;

		border-color: #e9cbbc;

		box-shadow:
			0 5px 15px rgba(63, 45, 34, 0.06);
	}

}


/* Smartphone */
@media (max-width: 767px) {

	.ktr-mypage-header__meta {
		flex-direction: column;

		gap: 8px;

		margin-top: 17px;
	}

	.ktr-mypage-member-number,
	.ktr-mypage-profile-link {
		width: 100%;
	}

	.ktr-mypage-member-number {
		min-width: 0;
	}

	.ktr-mypage-profile-link {
		min-height: 48px;
	}

}

/* =========================================================
   Kosen Talk Ring
   MY PAGE SETTINGS - FINAL CONSOLIDATED OVERRIDE
   STEP4統合版-7-12 完全版
========================================================= */

.ktr-mypage-panel {
  --ktr-mp-primary: #e88d5f;
  --ktr-mp-primary-dark: #d87749;
  --ktr-mp-primary-soft: #fff2e9;
  --ktr-mp-bg: #fffaf6;
  --ktr-mp-surface: #ffffff;
  --ktr-mp-border: #eee2da;
  --ktr-mp-border-strong: #e8cdbd;
  --ktr-mp-text: #29231f;
  --ktr-mp-text-soft: #7c7068;
  --ktr-mp-success-bg: #eef8f1;
  --ktr-mp-success: #3f7f52;
  --ktr-mp-danger-bg: #fff0ed;
  --ktr-mp-danger: #b65347;
  --ktr-mp-warning-bg: #fff5e3;
  --ktr-mp-warning: #a66e1e;
  --ktr-mp-shadow: 0 10px 34px rgba(65, 44, 32, 0.055);
  --ktr-mp-shadow-hover: 0 15px 38px rgba(65, 44, 32, 0.085);
  width: 100%;
  color: var(--ktr-mp-text);
}

.ktr-mypage-panel *,
.ktr-mypage-panel *::before,
.ktr-mypage-panel *::after {
  box-sizing: border-box;
}

.ktr-mypage-panel input,
.ktr-mypage-panel select,
.ktr-mypage-panel textarea,
.ktr-mypage-panel button {
  font-family: inherit;
}

/* 共通カード */
.ktr-mypage-panel > .ktr-profile-edit,
.ktr-mypage-panel > .ktr-consultation-settings,
.ktr-mypage-panel > .ktr-availability-settings,
.ktr-mypage-panel > .ktr-profile-visibility-settings {
  position: relative;
  width: 100%;
  margin: 6px 0 0;
  padding: 30px;
  overflow: hidden;
  background:
    radial-gradient(circle at 100% 0%, rgba(232, 141, 95, 0.07), transparent 28%),
    linear-gradient(145deg, #ffffff 0%, #fffdfb 100%);
  border: 1px solid var(--ktr-mp-border);
  border-radius: 22px;
  box-shadow: var(--ktr-mp-shadow);
}

/* 共通タイトル */
.ktr-profile-edit > .ktr-detail-card__eyebrow,
.ktr-consultation-settings > .ktr-detail-card__eyebrow,
.ktr-profile-visibility-settings > .ktr-detail-card__eyebrow {
  display: block;
  margin: 0 0 8px;
  color: var(--ktr-mp-primary);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.16em;
}

.ktr-profile-edit > .ktr-detail-card__title,
.ktr-consultation-settings > .ktr-detail-card__title,
.ktr-profile-visibility-settings > .ktr-detail-card__title {
  position: relative;
  margin: 0 0 26px;
  padding: 0 0 16px;
  color: var(--ktr-mp-text);
  font-size: clamp(28px, 3.6vw, 38px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.04em;
}

.ktr-profile-edit > .ktr-detail-card__title::after,
.ktr-consultation-settings > .ktr-detail-card__title::after,
.ktr-profile-visibility-settings > .ktr-detail-card__title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 42px;
  height: 3px;
  border-radius: 999px;
  background: var(--ktr-mp-primary);
  content: "";
}

.ktr-consultation-settings > .ktr-detail-card__text,
.ktr-profile-visibility-settings > .ktr-detail-card__text {
  max-width: 680px;
  margin: -11px 0 24px;
  color: var(--ktr-mp-text-soft);
  font-size: 13px;
  line-height: 1.8;
}

/* プロフィール編集 */
.ktr-profile-edit {
  isolation: isolate;
}

.ktr-profile-edit > p:not(.ktr-profile-edit__message) {
  width: fit-content;
  max-width: 100%;
  margin: 0 0 24px;
  padding: 8px 12px;
  border: 1px solid #f0d5c5;
  border-radius: 999px;
  background: var(--ktr-mp-primary-soft);
  color: #8b6756;
  font-size: 12px;
  line-height: 1.5;
}

.ktr-profile-edit > p:not(.ktr-profile-edit__message) strong {
  margin-left: 4px;
  color: var(--ktr-mp-primary-dark);
  font-size: 14px;
  font-weight: 900;
}

.ktr-profile-edit__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 18px;
  width: 100%;
  margin: 0;
}

.ktr-profile-edit__field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.ktr-profile-edit__field:has(#ktr_profile_image),
.ktr-profile-edit__field:has(#ktr_current_role),
.ktr-profile-edit__field:has(#ktr_introduction),
.ktr-profile-edit__field:has(#ktr_topics),
.ktr-profile-edit__field:has(#ktr_career),
.ktr-profile-edit__field:has(#ktr_private_experiences),
.ktr-profile-edit__field:has(#ktr_qualifications) {
  grid-column: 1 / -1;
}

.ktr-profile-edit__field > label {
  display: block;
  margin: 0;
  color: #453a34;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.55;
}

.ktr-profile-edit__field > p {
  margin: -1px 0 2px;
  color: #94867e;
  font-size: 11px;
  line-height: 1.7;
}

.ktr-profile-edit__field input[type="text"],
.ktr-profile-edit__field input[type="email"],
.ktr-profile-edit__field input[type="url"],
.ktr-profile-edit__field select,
.ktr-profile-edit__field textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid #dfd5cf;
  border-radius: 11px;
  outline: 0;
  background: #ffffff;
  color: #352e2a;
  font-size: 14px;
  line-height: 1.65;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.ktr-profile-edit__field textarea {
  min-height: 145px;
  resize: vertical;
}

.ktr-profile-edit__field input:hover,
.ktr-profile-edit__field select:hover,
.ktr-profile-edit__field textarea:hover {
  border-color: #d8b9a7;
}

.ktr-profile-edit__field input:focus,
.ktr-profile-edit__field select:focus,
.ktr-profile-edit__field textarea:focus {
  border-color: var(--ktr-mp-primary);
  background: #fffdfb;
  box-shadow: 0 0 0 4px rgba(232, 141, 95, 0.12);
}

.ktr-profile-edit__field input[type="file"] {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 13px;
  border: 1px dashed #e3c5b4;
  border-radius: 12px;
  background: #fff9f5;
  color: #74665e;
  font-size: 13px;
}

.ktr-profile-edit__current-image {
  width: fit-content;
  margin: 2px 0 7px;
  padding: 5px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 7px 20px rgba(66, 44, 31, 0.12);
}

.ktr-profile-edit__current-image img {
  display: block;
  width: 92px;
  height: 92px;
  border-radius: 50%;
  object-fit: cover;
}

.ktr-profile-edit__message {
  margin: 0 0 20px;
  padding: 12px 14px;
  border: 1px solid #d7eadc;
  border-left: 4px solid #4a9560;
  border-radius: 10px;
  background: var(--ktr-mp-success-bg);
  color: #376644;
  font-size: 13px;
  line-height: 1.7;
}

.ktr-profile-edit__form > .ktr-button {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 50px;
  margin: 3px 0 0;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 900;
}

/* 予約管理ヘッダー */
.ktr-my-bookings {
  max-width: 100%;
}

.ktr-booking-page-header {
  position: relative;
  isolation: isolate;
  margin: 0 0 26px;
  padding: 28px 30px;
  overflow: hidden;
  border: 1px solid var(--ktr-mp-border);
  border-radius: 22px;
  background:
    radial-gradient(circle at 92% 18%, rgba(232, 141, 95, 0.11), transparent 24%),
    linear-gradient(135deg, #ffffff, #fff8f3);
  box-shadow: var(--ktr-mp-shadow);
}

.ktr-booking-page-header::before {
  position: absolute;
  top: -42px;
  right: -22px;
  z-index: -1;
  width: 135px;
  height: 135px;
  border: 22px solid rgba(232, 141, 95, 0.055);
  border-radius: 50%;
  content: "";
}

.ktr-booking-page-header::after {
  position: absolute;
  right: 29px;
  top: 50%;
  z-index: -1;
  transform: translateY(-50%);
  color: rgba(232, 141, 95, 0.10);
  content: "◷";
  font-size: 78px;
  line-height: 1;
  pointer-events: none;
}

.ktr-booking-page-header__eyebrow {
  display: block;
  margin: 0 0 8px;
  color: var(--ktr-mp-primary);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.17em;
}

.ktr-booking-page-header__title {
  position: relative;
  max-width: 680px;
  margin: 0;
  padding: 0 0 16px;
  color: var(--ktr-mp-text);
  font-size: clamp(31px, 4vw, 43px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.045em;
}

.ktr-booking-page-header__title::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 43px;
  height: 3px;
  border-radius: 999px;
  background: var(--ktr-mp-primary);
  content: "";
}

.ktr-booking-page-header__description {
  max-width: 620px;
  margin: 15px 0 0;
  color: var(--ktr-mp-text-soft);
  font-size: 13px;
  line-height: 1.8;
}

/* 相談受付 */
.ktr-consultation-settings {
  isolation: isolate;
}

.ktr-consultation-settings::after {
  position: absolute;
  top: 19px;
  right: 25px;
  z-index: -1;
  color: rgba(232, 141, 95, 0.08);
  content: "◇";
  font-size: 68px;
  line-height: 1;
  pointer-events: none;
}

.ktr-consultation-settings__form {
  display: grid;
  gap: 12px;
  width: 100%;
  margin: 0;
}

.ktr-consultation-settings__item {
  position: relative;
  width: 100%;
  padding: 18px 19px;
  border: 1px solid #eee2da;
  border-radius: 14px;
  background: linear-gradient(145deg, #ffffff, #fffaf6);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

@media (hover: hover) {
  .ktr-consultation-settings__item:hover {
    transform: translateY(-1px);
    border-color: #e6cdbc;
    box-shadow: 0 8px 22px rgba(70, 47, 34, 0.055);
  }
}

.ktr-consultation-settings__item label {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0;
  color: #3d342f;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55;
  cursor: pointer;
}

.ktr-consultation-settings__item input[type="checkbox"] {
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  margin: 0;
  accent-color: var(--ktr-mp-primary);
  cursor: pointer;
}

.ktr-consultation-settings__item p {
  margin: 8px 0 0 30px;
  color: #91837b;
  font-size: 11px;
  line-height: 1.75;
}

.ktr-consultation-settings__message {
  margin: 0 0 17px;
  padding: 12px 14px;
  border: 1px solid #d7eadc;
  border-left: 4px solid #4a9560;
  border-radius: 10px;
  background: var(--ktr-mp-success-bg);
  color: #376644;
  font-size: 13px;
}

.ktr-consultation-settings__form > .ktr-button {
  width: fit-content;
  min-width: 165px;
  min-height: 47px;
  margin-top: 5px;
  border-radius: 11px;
  font-weight: 900;
}

/* 受付可能時間 */
.ktr-availability-settings {
  isolation: isolate;
}

.ktr-availability-settings > h2 {
  position: relative;
  margin: 0 0 27px;
  padding: 0 0 16px;
  color: var(--ktr-mp-text);
  font-size: clamp(28px, 3.6vw, 38px);
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.04em;
}

.ktr-availability-settings > h2::before {
  display: block;
  margin: 0 0 8px;
  color: var(--ktr-mp-primary);
  content: "AVAILABILITY SETTINGS";
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: 0.16em;
}

.ktr-availability-settings > h2::after {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 42px;
  height: 3px;
  border-radius: 999px;
  background: var(--ktr-mp-primary);
  content: "";
}

.ktr-availability-settings table {
  width: 100%;
  margin: 0;
  border: 1px solid #e9dfd9;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}

.ktr-availability-settings thead th {
  padding: 12px 13px;
  border-bottom: 1px solid #eadfd8;
  background: #fff7f2;
  color: #856c5f;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.4;
  text-align: left;
}

.ktr-availability-settings tbody td {
  padding: 11px 13px;
  border-bottom: 1px solid #eee7e2;
  color: #433a35;
  font-size: 13px;
  line-height: 1.5;
}

.ktr-availability-settings tbody tr:last-child td {
  border-bottom: 0;
}

.ktr-availability-settings tbody tr:hover {
  background: #fffdfb;
}

.ktr-availability-settings td:first-child {
  min-width: 48px;
  color: #3a302b;
  font-weight: 900;
}

.ktr-availability-settings input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: var(--ktr-mp-primary);
  cursor: pointer;
}

.ktr-availability-settings input[type="time"] {
  width: 100%;
  max-width: 145px;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #ded4cd;
  border-radius: 9px;
  outline: 0;
  background: #fff;
  color: #3b332f;
  font-size: 14px;
  line-height: 1.4;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.ktr-availability-settings input[type="time"]:focus {
  border-color: var(--ktr-mp-primary);
  box-shadow: 0 0 0 4px rgba(232, 141, 95, 0.11);
}

.ktr-availability-settings button[type="submit"],
.ktr-availability-settings .ktr-button {
  min-width: 150px;
  min-height: 46px;
  margin-top: 18px;
  padding: 10px 18px;
  border: 1px solid var(--ktr-mp-primary);
  border-radius: 11px;
  background: linear-gradient(135deg, var(--ktr-mp-primary), #ed986b);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 6px 17px rgba(232, 141, 95, 0.18);
}

/* 公開設定 */
.ktr-profile-visibility-settings {
  isolation: isolate;
}

.ktr-profile-visibility-settings::after {
  position: absolute;
  top: 21px;
  right: 27px;
  z-index: -1;
  color: rgba(232, 141, 95, 0.075);
  content: "◎";
  font-size: 64px;
  line-height: 1;
  pointer-events: none;
}

.ktr-profile-visibility-settings > p {
  max-width: 700px;
  margin: 0 0 10px;
  color: var(--ktr-mp-text-soft);
  font-size: 12px;
  line-height: 1.75;
}

.ktr-profile-visibility-settings > p:first-of-type {
  width: fit-content;
  max-width: 100%;
  padding: 8px 12px;
  border: 1px solid #f0d5c5;
  border-radius: 999px;
  background: var(--ktr-mp-primary-soft);
  color: #8b6756;
  font-weight: 800;
}

.ktr-profile-visibility-settings form {
  display: grid;
  gap: 13px;
  margin-top: 20px;
}

.ktr-profile-visibility-settings form label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  width: 100%;
  padding: 18px;
  border: 1px solid #eee2da;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, #fffaf6);
  color: #413731;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.6;
  cursor: pointer;
}

.ktr-profile-visibility-settings input[type="checkbox"] {
  flex: 0 0 auto;
  width: 19px;
  height: 19px;
  margin: 2px 0 0;
  accent-color: var(--ktr-mp-primary);
}

.ktr-profile-visibility-settings button[type="submit"],
.ktr-profile-visibility-settings .ktr-button {
  width: fit-content;
  min-width: 170px;
  min-height: 47px;
  margin-top: 2px;
  padding: 10px 18px;
  border: 1px solid var(--ktr-mp-primary);
  border-radius: 11px;
  background: linear-gradient(135deg, var(--ktr-mp-primary), #ed986b);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 6px 17px rgba(232, 141, 95, 0.18);
}

@media (hover: hover) {
  .ktr-profile-edit__form > .ktr-button:hover,
  .ktr-consultation-settings__form > .ktr-button:hover,
  .ktr-availability-settings button[type="submit"]:hover,
  .ktr-profile-visibility-settings button[type="submit"]:hover {
    transform: translateY(-1px);
    box-shadow: 0 9px 22px rgba(232, 141, 95, 0.23);
  }
}

/* タブレット */
@media (min-width: 768px) and (max-width: 1024px) {
  .ktr-mypage-panel > .ktr-profile-edit,
  .ktr-mypage-panel > .ktr-consultation-settings,
  .ktr-mypage-panel > .ktr-availability-settings,
  .ktr-mypage-panel > .ktr-profile-visibility-settings {
    padding: 24px;
    border-radius: 19px;
  }

  .ktr-profile-edit__form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ktr-booking-page-header {
    padding: 25px 24px;
  }

  .ktr-availability-settings input[type="time"] {
    max-width: 125px;
  }
}

/* スマートフォン */
@media (max-width: 767px) {
  .ktr-mypage-panel > .ktr-profile-edit,
  .ktr-mypage-panel > .ktr-consultation-settings,
  .ktr-mypage-panel > .ktr-availability-settings,
  .ktr-mypage-panel > .ktr-profile-visibility-settings {
    padding: 20px 16px;
    border-radius: 17px;
    box-shadow: 0 7px 24px rgba(65, 44, 32, 0.045);
  }

  .ktr-profile-edit > .ktr-detail-card__title,
  .ktr-consultation-settings > .ktr-detail-card__title,
  .ktr-profile-visibility-settings > .ktr-detail-card__title,
  .ktr-availability-settings > h2 {
    font-size: 27px;
  }

  .ktr-profile-edit__form {
    grid-template-columns: 1fr;
    gap: 17px;
  }

  .ktr-profile-edit__field,
  .ktr-profile-edit__field:has(#ktr_profile_image),
  .ktr-profile-edit__field:has(#ktr_current_role),
  .ktr-profile-edit__field:has(#ktr_introduction),
  .ktr-profile-edit__field:has(#ktr_topics),
  .ktr-profile-edit__field:has(#ktr_career),
  .ktr-profile-edit__field:has(#ktr_private_experiences),
  .ktr-profile-edit__field:has(#ktr_qualifications) {
    grid-column: 1;
  }

  .ktr-profile-edit__field input[type="text"],
  .ktr-profile-edit__field input[type="email"],
  .ktr-profile-edit__field input[type="url"],
  .ktr-profile-edit__field select,
  .ktr-profile-edit__field textarea {
    width: 100%;
    max-width: 100%;
    font-size: 16px;
  }

  .ktr-profile-edit__field textarea {
    min-height: 145px;
  }

  .ktr-profile-edit__form > .ktr-button {
    min-height: 50px;
  }

  .ktr-booking-page-header {
    padding: 22px 18px;
    border-radius: 17px;
  }

  .ktr-booking-page-header::after {
    right: 11px;
    font-size: 58px;
  }

  .ktr-booking-page-header__title {
    font-size: 29px;
  }

  .ktr-booking-page-header__description {
    padding-right: 24px;
    font-size: 12px;
  }

  .ktr-consultation-settings__item {
    padding: 15px 14px;
  }

  .ktr-consultation-settings__item p {
    margin-left: 30px;
  }

  .ktr-consultation-settings__form > .ktr-button {
    width: 100%;
    min-height: 49px;
  }

  .ktr-availability-settings {
    overflow: hidden;
  }

  .ktr-availability-settings table {
    display: block;
    width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }

  .ktr-availability-settings thead,
  .ktr-availability-settings tbody,
  .ktr-availability-settings tr {
    width: max-content;
    min-width: 100%;
  }

  .ktr-availability-settings th,
  .ktr-availability-settings td {
    min-width: 88px;
    padding: 10px;
  }

  .ktr-availability-settings input[type="time"] {
    width: 112px;
    max-width: none;
    font-size: 16px;
  }

  .ktr-availability-settings button[type="submit"],
  .ktr-availability-settings .ktr-button {
    width: 100%;
    min-height: 49px;
  }

  .ktr-profile-visibility-settings form label {
    padding: 15px 14px;
    font-size: 14px;
  }

  .ktr-profile-visibility-settings button[type="submit"],
  .ktr-profile-visibility-settings .ktr-button {
    width: 100%;
    min-height: 49px;
  }
}

/* 小型スマートフォン */
@media (max-width: 420px) {
  .ktr-mypage-panel > .ktr-profile-edit,
  .ktr-mypage-panel > .ktr-consultation-settings,
  .ktr-mypage-panel > .ktr-availability-settings,
  .ktr-mypage-panel > .ktr-profile-visibility-settings {
    padding: 18px 13px;
  }

  .ktr-profile-edit > .ktr-detail-card__title,
  .ktr-consultation-settings > .ktr-detail-card__title,
  .ktr-profile-visibility-settings > .ktr-detail-card__title,
  .ktr-availability-settings > h2 {
    font-size: 25px;
  }

  .ktr-booking-page-header {
    padding: 20px 15px;
  }

  .ktr-booking-page-header::after {
    display: none;
  }

  .ktr-booking-page-header__description {
    padding-right: 0;
  }
}

/* アクセシビリティ */
@media (prefers-reduced-motion: reduce) {
  .ktr-profile-edit__field input,
  .ktr-profile-edit__field select,
  .ktr-profile-edit__field textarea,
  .ktr-consultation-settings__item,
  .ktr-booking-page-header,
  .ktr-button {
    transition: none !important;
  }

  .ktr-consultation-settings__item:hover,
  .ktr-button:hover {
    transform: none !important;
  }
}

/* =========================================================
   Kosen Talk Ring - STEP5 Booking Complete UI
========================================================= */
.ktr-booking--step5{max-width:920px;margin:0 auto;padding:clamp(18px,3vw,34px);background:#fffaf5;border:1px solid rgba(232,141,95,.2);border-radius:28px;box-shadow:0 18px 55px rgba(72,47,32,.08)}
.ktr-booking-hero{padding:8px 4px 22px;border-bottom:1px solid rgba(232,141,95,.18)}
.ktr-booking-hero__lead{margin:8px 0 0;color:#745f52;line-height:1.8}
.ktr-booking__member{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}
.ktr-booking__member>div,.ktr-booking-price-grid>div{padding:16px 18px;background:#fff;border:1px solid rgba(232,141,95,.18);border-radius:16px}
.ktr-booking__member span,.ktr-booking-price-grid span{display:block;margin-bottom:5px;color:#8a7568;font-size:12px;font-weight:700;letter-spacing:.04em}
.ktr-booking__member strong,.ktr-booking-price-grid strong{font-size:18px;color:#3e3028}
.ktr-booking__price-info{margin:0 0 24px;padding:20px;background:#fff3e8;border-radius:20px}
.ktr-booking__price-info h3{margin:0 0 12px;font-size:18px;color:#49382f}
.ktr-booking-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.ktr-booking__form{display:grid;gap:18px}
.ktr-booking-step{display:flex;gap:13px;align-items:flex-start;margin-top:10px}
.ktr-booking-step__number{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#e88d5f;color:#fff;font-weight:800}
.ktr-booking-step h3{margin:2px 0 3px;font-size:19px;color:#3d3029}
.ktr-booking-step p{margin:0;color:#806b5f;font-size:13px;line-height:1.65}
.ktr-booking-duration-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;border:0}
.ktr-booking-duration-grid label{cursor:pointer}
.ktr-booking-duration-grid input{position:absolute;opacity:0;pointer-events:none}
.ktr-booking-duration-grid span{display:flex;justify-content:space-between;align-items:center;min-height:68px;padding:14px 18px;background:#fff;border:2px solid #eaded6;border-radius:16px;transition:.18s ease}
.ktr-booking-duration-grid input:checked+span{border-color:#e88d5f;background:#fff5ed;box-shadow:0 0 0 3px rgba(232,141,95,.1)}
.ktr-booking-duration-grid strong{font-size:18px;color:#3f3028}.ktr-booking-duration-grid small{color:#d46f3d;font-weight:800}
.ktr-booking-date-field,.ktr-booking-field{display:grid;gap:8px;color:#59463b;font-weight:700}
.ktr-booking-date-field input,.ktr-booking-field select,.ktr-booking-field textarea{width:100%;box-sizing:border-box;padding:13px 14px;background:#fff;border:1px solid #dfd3cb;border-radius:13px;font:inherit;color:#3f3028;outline:none}
.ktr-booking-date-field input:focus,.ktr-booking-field select:focus,.ktr-booking-field textarea:focus{border-color:#e88d5f;box-shadow:0 0 0 3px rgba(232,141,95,.12)}
.ktr-booking-slots{min-height:72px;padding:16px;background:#fff;border:1px solid rgba(232,141,95,.2);border-radius:18px}
.ktr-booking-slots__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.ktr-booking-slot{min-height:46px;padding:9px 8px;border:1px solid #ead7cb;border-radius:12px;background:#fff;color:#4a382f;font-weight:800;cursor:pointer;transition:.16s ease}
.ktr-booking-slot:hover{border-color:#e88d5f;background:#fff7f1;transform:translateY(-1px)}
.ktr-booking-slot.is-selected{border-color:#e88d5f;background:#e88d5f;color:#fff;box-shadow:0 6px 18px rgba(232,141,95,.22)}
.ktr-booking-slots__guide,.ktr-booking-slots__loading,.ktr-booking-slots__empty{margin:8px;color:#806b5f;text-align:center;line-height:1.7}
.ktr-booking-slots__empty{color:#9b6045}.ktr-booking-submit{min-height:52px;margin-top:6px}
.ktr-booking__message,.ktr-booking__confirmation{margin:18px 0;padding:18px;border-radius:17px}.ktr-booking__message--error{background:#fff0ed;color:#8e3e31}.ktr-booking__message--success{background:#eef9f1;color:#2f6941}
.ktr-booking__confirmation{background:#fff;border:1px solid rgba(232,141,95,.22)}
.ktr-booking-confirm-list{display:grid;gap:0;margin:14px 0}.ktr-booking-confirm-list>div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid #eee4de}.ktr-booking-confirm-list dt{color:#806b5f;font-weight:700}.ktr-booking-confirm-list dd{margin:0;color:#3f3028;font-weight:700}.ktr-booking__note{color:#8a6f60;font-size:13px}
@media(max-width:767px){.ktr-booking--step5{padding:20px 15px;border-radius:20px}.ktr-booking__member,.ktr-booking-price-grid{grid-template-columns:1fr}.ktr-booking-duration-grid{grid-template-columns:1fr 1fr}.ktr-booking-slots__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ktr-booking-confirm-list>div{grid-template-columns:1fr;gap:4px}.ktr-booking-submit{width:100%}}
@media(max-width:420px){.ktr-booking-duration-grid{grid-template-columns:1fr}.ktr-booking-slots__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ktr-booking-slot{font-size:14px}}
@media(prefers-reduced-motion:reduce){.ktr-booking-slot,.ktr-booking-duration-grid span{transition:none}.ktr-booking-slot:hover{transform:none}}


/* =========================================================
   Kosen Talk Ring - STEP5 UI Revision v0.5.1
   1) Cancel button: neutral gray
   2) Booking-complete: return-to-members action
   3) Review form: balanced wider desktop layout
========================================================= */

/* 1. Cancel is intentionally visually separated from primary orange actions. */
.ktr-booking-item .ktr-button--cancel,
.ktr-booking-action-form--cancel .ktr-button {
  background: #f2f2f2;
  color: #4f4f4f;
  border: 1px solid #d8d8d8;
  box-shadow: none;
}

@media (hover: hover) {
  .ktr-booking-item .ktr-button--cancel:hover,
  .ktr-booking-action-form--cancel .ktr-button:hover {
    background: #e7e7e7;
    color: #333333;
    border-color: #c9c9c9;
    transform: translateY(-1px);
  }
}

.ktr-booking-item .ktr-button--cancel:focus-visible,
.ktr-booking-action-form--cancel .ktr-button:focus-visible {
  outline: 3px solid rgba(95, 95, 95, 0.2);
  outline-offset: 2px;
}

/* 2. Booking complete -> members search */
.ktr-booking-success-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.ktr-booking__message--success .ktr-button--members {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  background: #ffffff;
  color: #d86f3c;
  border: 1px solid #e88d5f;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
}

@media (hover: hover) {
  .ktr-booking__message--success .ktr-button--members:hover {
    background: #fff5ed;
    color: #bd5d31;
    border-color: #d97c4d;
  }
}

/* 3. Review form: desktop only.
   A previous generic .ktr-booking-item form rule makes forms inline-block;
   explicitly reset the review form to a centered block layout. */
@media (min-width: 768px) {
  .ktr-booking-review[open] {
    padding: 22px 24px 24px;
  }

  .ktr-booking-item .ktr-review-booking-form {
    display: block;
    width: min(100%, 760px);
    max-width: 760px;
    margin: 20px auto 0;
    padding: 22px 24px;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #eadfd8;
    border-radius: 14px;
  }

  .ktr-review-booking-form p {
    width: 100%;
  }

  .ktr-review-booking-form label {
    display: block;
    width: 100%;
  }

  .ktr-review-booking-form select,
  .ktr-review-booking-form textarea {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }

  .ktr-review-booking-form textarea {
    min-height: 150px;
    resize: vertical;
  }
}

@media (max-width: 767px) {
  .ktr-booking-success-actions,
  .ktr-booking__message--success .ktr-button--members {
    width: 100%;
  }

  .ktr-booking-item .ktr-review-booking-form {
    display: block;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
  }
}


/* =========================================================
   STEP6 | Booking production rules
========================================================= */
.ktr-booking-policy {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: 12px;
  padding: 9px 14px;
  border: 1px solid rgba(232, 141, 95, .28);
  border-radius: 999px;
  background: rgba(255, 250, 246, .92);
  color: #6a5146;
  font-size: 13px;
  line-height: 1.5;
}

.ktr-booking-policy strong {
  color: #d87343;
}

@media (max-width: 640px) {
  .ktr-booking-policy {
    display: flex;
    width: 100%;
    justify-content: center;
    border-radius: 14px;
    text-align: center;
  }
}


/* =========================================================
   STEP7 - K point pricing / balance UX
========================================================= */
.ktr-booking-duration-grid label.is-disabled {
    opacity: .52;
    cursor: not-allowed;
}
.ktr-booking-duration-grid label.is-disabled span {
    background: #f5f5f3;
    border-color: #deded9;
    color: #777;
    box-shadow: none;
}
.ktr-booking-balance-warning {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid #eadfd4;
    border-radius: 16px;
    background: #fffaf5;
    color: #554c45;
}
.ktr-booking-balance-warning strong { display:block; margin-bottom:4px; }
.ktr-booking-balance-warning p { margin:0 0 12px; }
.ktr-booking-balance-warning small { display:block; color:#756b63; }


/* =========================================================
   STEP11.5 v1.3.5
   Availability bulk + exception UI
========================================================= */
.ktr-availability-v2{
	max-width:980px!important;
	padding:0!important;
	background:transparent!important;
	box-shadow:none!important
}
.ktr-availability-v2__heading{margin-bottom:20px}
.ktr-availability-v2__eyebrow{margin:0 0 6px;color:#c9683b;font-size:10px;font-weight:900;letter-spacing:.16em}
.ktr-availability-v2__heading h2{margin:0!important;font-size:28px!important;letter-spacing:-.025em}
.ktr-availability-v2__heading h2:before,.ktr-availability-v2__heading h2:after{display:none!important}
.ktr-availability-v2__heading>div>p:last-child{margin:8px 0 0;color:#756960;font-size:13px;line-height:1.75}

.ktr-availability-v2__notice{margin:0 0 16px;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:700}
.ktr-availability-v2__notice.is-success{background:#eff9f2;color:#347d4a;border:1px solid #d8efdf}
.ktr-availability-v2__notice.is-error{background:#fff2f0;color:#a7473e;border:1px solid #f4d4cf}

.ktr-availability-v2__form{display:grid;gap:18px}
.ktr-availability-v2__card{padding:22px;border:1px solid #eadfd8;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(72,46,30,.045)}
.ktr-availability-v2__card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.ktr-availability-v2__card-head>div{display:flex;align-items:center;gap:9px}
.ktr-availability-v2__card-head>div>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#fff0e7;color:#c9683b;font-size:10px;font-weight:900}
.ktr-availability-v2__card-head h3{margin:0;font-size:18px;letter-spacing:-.015em}
.ktr-availability-v2__card-head>p{max-width:490px;margin:0;color:#81746b;font-size:11px;line-height:1.65}

.ktr-availability-v2__presets{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ktr-availability-v2__preset{display:grid;grid-template-columns:minmax(120px,1.2fr) auto minmax(105px,.8fr) minmax(105px,.8fr) auto;align-items:end;gap:10px;padding:15px;border:1px solid #f0e4dc;border-radius:14px;background:#fffaf7}
.ktr-availability-v2__preset-title strong{display:block;font-size:15px}
.ktr-availability-v2__preset-title small{display:block;margin-top:3px;color:#94867c;font-size:10px}
.ktr-availability-v2__preset label:not(.ktr-availability-v2__switch-label),
.ktr-availability-v2__day label:not(.ktr-availability-v2__switch-label),
.ktr-availability-v2__exception label{display:grid;gap:5px;color:#776b62;font-size:9px;font-weight:800}
.ktr-availability-v2__preset input[type=time],
.ktr-availability-v2__day input[type=time],
.ktr-availability-v2__exception input[type=time],
.ktr-availability-v2__exception input[type=date],
.ktr-availability-v2__exception input[type=text],
.ktr-availability-v2__exception select{width:100%!important;min-height:40px;padding:7px 9px!important;border:1px solid #e5d9d0!important;border-radius:9px!important;background:#fff!important;font:inherit!important}
.ktr-availability-v2__preset .ktr-button{min-height:40px;padding:0 12px!important;white-space:nowrap}
.ktr-availability-v2__preset .ktr-button.is-applied{background:#eff9f2!important;color:#347d4a!important;border-color:#d4eadb!important}
.ktr-availability-v2__hint{margin:10px 0 0;color:#9a8b81;font-size:10px;line-height:1.6}

.ktr-availability-v2__switch-label{display:flex!important;align-items:center;gap:7px;min-height:40px;color:#5b514a!important;font-size:10px!important;font-weight:800!important}
.ktr-availability-v2__switch-label input{width:17px!important;height:17px!important;margin:0!important;accent-color:#e88d5f}

.ktr-availability-v2__week{display:grid;gap:8px}
.ktr-availability-v2__day{display:grid;grid-template-columns:72px 100px minmax(120px,1fr) minmax(120px,1fr);align-items:end;gap:12px;padding:11px 13px;border:1px solid #f0e6df;border-radius:12px;background:#fff}
.ktr-availability-v2__day:hover{background:#fffaf7}
.ktr-availability-v2__day-name{align-self:center}
.ktr-availability-v2__day-name strong{display:inline;font-size:15px}
.ktr-availability-v2__day-name small{margin-left:2px;color:#95887e;font-size:9px}

.ktr-availability-v2__exception-note{display:flex;gap:8px;align-items:center;margin:-2px 0 13px;padding:10px 12px;border-radius:10px;background:#fff7f1;color:#705f54;font-size:10px}
.ktr-availability-v2__exception-note strong{padding:3px 6px;border-radius:6px;background:#e88d5f;color:#fff}
.ktr-availability-v2__exceptions{display:grid;gap:8px}
.ktr-availability-v2__exception{display:grid;grid-template-columns:minmax(145px,1fr) minmax(115px,.8fr) minmax(100px,.7fr) minmax(100px,.7fr) minmax(180px,1.3fr) 34px;align-items:end;gap:9px;padding:12px;border:1px solid #ede2da;border-radius:12px;background:#fff}
.ktr-availability-v2__exception [hidden]{display:none!important}
.ktr-availability-v2__remove{display:grid;place-items:center;width:32px;height:40px;padding:0;border:1px solid #efdad3;border-radius:9px;background:#fff8f6;color:#b55649;font-size:19px;cursor:pointer}
.ktr-availability-v2__add{margin-top:10px;padding:9px 13px;border:1px dashed #e5bda7;border-radius:10px;background:#fffaf7;color:#bd653d;font-size:11px;font-weight:800;cursor:pointer}
.ktr-availability-v2__warning{margin-top:15px;padding:12px 14px;border-radius:12px;background:#f8f7f5;border:1px solid #ebe7e2}
.ktr-availability-v2__warning strong{font-size:11px}
.ktr-availability-v2__warning p{margin:4px 0 0;color:#786f68;font-size:10px;line-height:1.65}
.ktr-availability-v2__submit{display:flex;justify-content:flex-end}
.ktr-availability-v2__submit .ktr-button{min-width:190px;min-height:48px}

@media(max-width:980px){
	.ktr-availability-v2__presets{grid-template-columns:1fr}
	.ktr-availability-v2__preset{grid-template-columns:minmax(110px,1fr) auto 1fr 1fr auto}
	.ktr-availability-v2__exception{grid-template-columns:1fr 1fr}
	.ktr-availability-v2__exception-note-field{grid-column:1/-1}
	.ktr-availability-v2__remove{grid-column:2;justify-self:end}
}
@media(max-width:640px){
	.ktr-availability-v2__card{padding:16px}
	.ktr-availability-v2__card-head{display:block}
	.ktr-availability-v2__card-head>p{margin-top:8px}
	.ktr-availability-v2__preset{grid-template-columns:1fr 1fr}
	.ktr-availability-v2__preset-title{grid-column:1/-1}
	.ktr-availability-v2__preset .ktr-button{grid-column:1/-1}
	.ktr-availability-v2__day{grid-template-columns:1fr 1fr}
	.ktr-availability-v2__day-name{grid-column:1}
	.ktr-availability-v2__exception{grid-template-columns:1fr}
	.ktr-availability-v2__exception-note-field,.ktr-availability-v2__remove{grid-column:1}
	.ktr-availability-v2__remove{justify-self:end}
	.ktr-availability-v2__submit .ktr-button{width:100%}
}


/* =========================================================
   STEP11.5 v1.3.6
   Availability compact / overflow-safe
========================================================= */
.ktr-availability-v2{
	width:100%!important;
	max-width:100%!important;
	overflow:hidden!important;
}
.ktr-availability-v2__form,
.ktr-availability-v2__card{
	width:100%!important;
	max-width:100%!important;
	min-width:0!important;
}
.ktr-availability-v2__card{
	padding:18px!important;
}
.ktr-availability-v2__card-head{
	align-items:flex-start!important;
}
.ktr-availability-v2__presets{
	grid-template-columns:1fr!important;
}
.ktr-availability-v2__preset{
	grid-template-columns:120px 90px minmax(90px,1fr) minmax(90px,1fr) 110px!important;
	gap:8px!important;
	padding:12px!important;
}
.ktr-availability-v2__preset>*,
.ktr-availability-v2__day>*,
.ktr-availability-v2__exception>*{
	min-width:0!important;
	max-width:100%!important;
}
.ktr-availability-v2__preset input,
.ktr-availability-v2__preset select,
.ktr-availability-v2__day input,
.ktr-availability-v2__day select,
.ktr-availability-v2__exception input,
.ktr-availability-v2__exception select{
	box-sizing:border-box!important;
	max-width:100%!important;
	min-width:0!important;
}
.ktr-availability-v2__week{
	gap:6px!important;
}
.ktr-availability-v2__day{
	grid-template-columns:55px 78px minmax(90px,1fr) minmax(90px,1fr)!important;
	gap:8px!important;
	padding:9px 10px!important;
}
.ktr-availability-v2__day-name strong{
	font-size:14px!important;
}
.ktr-availability-v2__day label,
.ktr-availability-v2__preset label{
	font-size:9px!important;
}
.ktr-availability-v2__exception{
	grid-template-columns:minmax(120px,1fr) 110px minmax(88px,.8fr) minmax(88px,.8fr) minmax(140px,1.2fr) 32px!important;
	gap:7px!important;
	padding:10px!important;
}
.ktr-availability-v2__exception-note-field{
	min-width:0!important;
}
.ktr-availability-v2__exception input[type="text"]{
	width:100%!important;
}
.ktr-availability-v2__add{
	display:inline-flex!important;
	max-width:100%!important;
}
.ktr-availability-v2__warning{
	padding:10px 12px!important;
}
.ktr-availability-v2__submit{
	padding-top:4px!important;
}
.ktr-availability-v2__submit .ktr-button{
	min-width:160px!important;
}

/* Mypage narrow content area */
@media(max-width:1100px){
	.ktr-availability-v2__preset{
		grid-template-columns:100px 82px 1fr 1fr 100px!important;
	}
	.ktr-availability-v2__exception{
		grid-template-columns:1fr 1fr!important;
	}
	.ktr-availability-v2__exception-note-field{
		grid-column:1/-1!important;
	}
	.ktr-availability-v2__remove{
		grid-column:2!important;
		justify-self:end!important;
	}
}
@media(max-width:760px){
	.ktr-availability-v2__card{
		padding:14px!important;
	}
	.ktr-availability-v2__card-head{
		display:block!important;
	}
	.ktr-availability-v2__card-head>p{
		margin-top:7px!important;
	}
	.ktr-availability-v2__preset{
		grid-template-columns:1fr 1fr!important;
	}
	.ktr-availability-v2__preset-title{
		grid-column:1/-1!important;
	}
	.ktr-availability-v2__preset .ktr-button{
		grid-column:1/-1!important;
		width:100%!important;
	}
	.ktr-availability-v2__day{
		grid-template-columns:52px 72px 1fr 1fr!important;
	}
}
@media(max-width:560px){
	.ktr-availability-v2__preset,
	.ktr-availability-v2__day,
	.ktr-availability-v2__exception{
		grid-template-columns:1fr!important;
	}
	.ktr-availability-v2__preset-title,
	.ktr-availability-v2__exception-note-field,
	.ktr-availability-v2__remove{
		grid-column:1!important;
	}
	.ktr-availability-v2__remove{
		justify-self:end!important;
	}
	.ktr-availability-v2__submit .ktr-button{
		width:100%!important;
	}
}


/* =========================================================
   STEP11.5 v1.3.8
   Availability visual polish / safe inner spacing
========================================================= */

/* 外枠内に必ず余白を確保 */
.ktr-mypage-panel[data-ktr-mypage-panel="availability"]{
	padding:18px 20px 22px!important;
	overflow:visible!important;
}
.ktr-mypage-panel[data-ktr-mypage-panel="availability"] .ktr-availability-settings{
	margin:0!important;
}

/* セクション全体 */
.ktr-availability-v2{
	padding:0 2px 4px!important;
	overflow:visible!important;
}

/* 見出し周りの上下左右余白 */
.ktr-availability-v2__heading{
	margin:0 0 18px!important;
	padding:4px 2px 0!important;
}
.ktr-availability-v2__eyebrow{
	display:block!important;
	margin:0 0 7px!important;
	padding-left:1px!important;
	line-height:1.3!important;
	overflow:visible!important;
}
.ktr-availability-v2__heading h2{
	margin:0!important;
	padding:0!important;
	line-height:1.35!important;
}
.ktr-availability-v2__heading>div>p:last-child{
	margin:8px 0 0!important;
	padding:0!important;
}

/* 各カードに少し余裕を追加 */
.ktr-availability-v2__card{
	padding:18px!important;
	margin:0!important;
	overflow:visible!important;
}
.ktr-availability-v2__card-head{
	margin-bottom:15px!important;
}

/* 一括設定 */
.ktr-availability-v2__preset{
	padding:12px 13px!important;
}

/* 曜日別 */
.ktr-availability-v2__day{
	padding:9px 11px!important;
}

/* イレギュラー設定 */
.ktr-availability-v2__exception{
	padding:10px 11px!important;
}

/* 保存ボタンを外枠から十分離す */
.ktr-availability-v2__submit{
	display:flex!important;
	justify-content:flex-end!important;
	padding:6px 2px 2px!important;
	margin-top:2px!important;
}
.ktr-availability-v2__submit .ktr-button{
	margin:0!important;
	min-height:46px!important;
	border-radius:11px!important;
}

/* 小さい画面でも外枠との余白を維持 */
@media(max-width:760px){
	.ktr-mypage-panel[data-ktr-mypage-panel="availability"]{
		padding:14px 14px 18px!important;
	}
	.ktr-availability-v2__heading{
		padding-top:2px!important;
	}
	.ktr-availability-v2__card{
		padding:14px!important;
	}
}


/* =========================================================
   STEP11.5 v1.4.2
   Public Profile Career Timeline - Refined Design
========================================================= */

.ktr-career-timeline[data-profile-list="career"]{
  position:relative;
  display:grid;
  gap:14px;
  margin-top:24px;
  padding:4px 0 4px;
}

/* vertical guide line */
.ktr-career-timeline[data-profile-list="career"]::before{
  content:"";
  position:absolute;
  top:28px;
  bottom:28px;
  left:65px;
  width:2px;
  border-radius:999px;
  background:linear-gradient(
    180deg,
    rgba(232,141,95,.18) 0%,
    rgba(232,141,95,.58) 48%,
    rgba(232,141,95,.24) 100%
  );
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item{
  position:relative;
  display:grid!important;
  grid-template-columns:48px 22px minmax(0,1fr)!important;
  align-items:stretch;
  gap:10px!important;
  min-height:78px!important;
  margin:0!important;
}

/* Disable legacy connector because the container now owns the line */
.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item::after{
  display:none!important;
}

/* STEP number */
.ktr-career-timeline__step{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  padding-top:13px;
}

.ktr-career-timeline__step-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:32px;
  height:22px;
  padding:0 7px;
  border:1px solid rgba(232,141,95,.22);
  border-radius:999px;
  background:#fff8f3;
  color:#b86b43;
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
}

/* dot */
.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__marker{
  position:relative!important;
  z-index:2;
  grid-column:auto!important;
  align-self:start;
  width:14px!important;
  height:14px!important;
  margin:17px auto 0!important;
  border:3px solid #fff!important;
  border-radius:50%;
  background:#e88d5f!important;
  box-shadow:
    0 0 0 3px rgba(232,141,95,.15),
    0 3px 10px rgba(108,67,41,.10)!important;
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__marker{
  width:16px!important;
  height:16px!important;
  margin-top:16px!important;
  background:#d96f3e!important;
  box-shadow:
    0 0 0 5px rgba(232,141,95,.13),
    0 4px 12px rgba(108,67,41,.13)!important;
}

/* career card */
.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__content{
  position:relative;
  grid-column:auto!important;
  min-width:0;
  padding:14px 16px 15px!important;
  overflow:hidden;
  border:1px solid rgba(232,141,95,.17);
  border-radius:14px;
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fffaf6 100%
    );
  box-shadow:
    0 5px 16px rgba(74,48,31,.045);
  transition:
    transform .2s ease,
    box-shadow .2s ease,
    border-color .2s ease;
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__content::after{
  content:"";
  position:absolute;
  right:-28px;
  bottom:-32px;
  width:78px;
  height:78px;
  border:13px solid rgba(232,141,95,.045);
  border-radius:50%;
  pointer-events:none;
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item:hover .ktr-career-timeline__content{
  transform:translateY(-2px);
  border-color:rgba(232,141,95,.30);
  box-shadow:
    0 9px 22px rgba(74,48,31,.075);
}

/* small label */
.ktr-career-timeline__status{
  position:relative;
  z-index:1;
  display:block;
  margin-bottom:5px;
  color:#ad8b79;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
}

/* career text */
.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__title{
  position:relative;
  z-index:1;
  margin:0!important;
  color:#3a302a!important;
  font-size:14px!important;
  font-weight:850!important;
  line-height:1.6!important;
  letter-spacing:.005em;
}

/* current */
.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__content{
  border-color:rgba(232,141,95,.35);
  background:
    linear-gradient(
      135deg,
      #fff4ec 0%,
      #fffaf6 70%,
      #ffffff 100%
    );
  box-shadow:
    0 8px 22px rgba(232,141,95,.10);
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__status{
  color:#d56f3e;
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__title{
  color:#b75f37!important;
}

.ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__step-label{
  border-color:rgba(232,141,95,.34);
  background:#e88d5f;
  color:#fff;
}

/* empty */
.ktr-career-timeline[data-profile-list="career"] > .ktr-profile-empty-text{
  margin:0!important;
  padding:14px 16px;
  border:1px dashed #ead8cb;
  border-radius:12px;
  background:#fffaf6;
  color:#87786e;
  font-size:12px;
}

/* Mobile */
@media(max-width:760px){
  .ktr-career-timeline[data-profile-list="career"]{
    gap:11px;
    margin-top:18px;
  }

  .ktr-career-timeline[data-profile-list="career"]::before{
    left:43px;
    top:26px;
    bottom:26px;
  }

  .ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item{
    grid-template-columns:28px 18px minmax(0,1fr)!important;
    gap:7px!important;
    min-height:70px!important;
  }

  .ktr-career-timeline__step{
    padding-top:12px;
  }

  .ktr-career-timeline__step-label{
    min-width:25px;
    height:20px;
    padding:0 5px;
    font-size:8px;
  }

  .ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__marker{
    width:12px!important;
    height:12px!important;
    margin-top:17px!important;
  }

  .ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__item.is-current .ktr-career-timeline__marker{
    width:14px!important;
    height:14px!important;
  }

  .ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__content{
    padding:12px 13px!important;
    border-radius:12px;
  }

  .ktr-career-timeline[data-profile-list="career"] .ktr-career-timeline__title{
    font-size:13px!important;
  }
}


/* =========================================================
   STEP11.5 v1.4.3
   Public profile avatar auto-crop
========================================================= */

/*
 * アップロード画像の元サイズ・縦横比に関係なく、
 * 公開プロフィールの丸型アイコンへ自動トリミング。
 */
.ktr-profile-hero__avatar-wrap{
  position:relative!important;
  overflow:visible!important;
}

.ktr-profile-hero__avatar,
.ktr-profile-hero__avatar--image{
  position:relative!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:1 / 1!important;
  overflow:hidden!important;
  border-radius:50%!important;
  background:#fffaf6!important;
}

.ktr-profile-hero__avatar-image{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  object-position:center center!important;
  border:0!important;
  border-radius:50%!important;
  margin:0!important;
  padding:0!important;
}

/* テーマ/Elementor側のimgルールより優先 */
.ktr-profile-hero__avatar-wrap img.ktr-profile-hero__avatar-image{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:50%!important;
}

/* スマホでも同じ丸型比率を維持 */
@media(max-width:760px){
  .ktr-profile-hero__avatar,
  .ktr-profile-hero__avatar--image{
    width:100%!important;
    height:100%!important;
    aspect-ratio:1 / 1!important;
  }
}


/* =========================================================
   STEP11.5 v1.4.5
   Profile Edit - Filled / Unfilled Visual Status
========================================================= */

.ktr-profile-input-overview{
  margin:16px 0 20px;
  padding:16px 18px;
  border:1px solid #eadfd8;
  border-radius:16px;
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fffaf7 100%
    );
  box-shadow:0 6px 18px rgba(72,46,30,.04);
}

.ktr-profile-input-overview__main{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.ktr-profile-input-overview__eyebrow{
  margin:0 0 3px!important;
  color:#c9683b;
  font-size:9px!important;
  font-weight:900;
  letter-spacing:.14em;
}

.ktr-profile-input-overview__title{
  margin:0;
  color:#302925;
  font-size:16px;
  font-weight:900;
}

.ktr-profile-input-overview__text{
  margin:5px 0 0!important;
  color:#7c7068;
  font-size:10px!important;
  line-height:1.7;
}

.ktr-profile-input-overview__score{
  display:grid;
  grid-template-columns:auto auto auto;
  align-items:baseline;
  justify-content:center;
  min-width:112px;
  padding:10px 13px;
  border:1px solid #f0dfd4;
  border-radius:12px;
  background:#fff;
  color:#c9683b;
  text-align:center;
}

.ktr-profile-input-overview__score strong{
  font-size:22px;
  font-weight:900;
}

.ktr-profile-input-overview__score>span{
  margin:0 2px;
  color:#9f9188;
  font-size:12px;
}

.ktr-profile-input-overview__score small{
  grid-column:1/-1;
  margin-top:1px;
  color:#91857c;
  font-size:8px;
  font-weight:800;
}

.ktr-profile-input-overview__missing{
  margin-top:11px;
  padding:9px 11px;
  border:1px solid #f0c9b3;
  border-radius:9px;
  background:#fff3eb;
  color:#a95a35;
  font-size:10px;
  line-height:1.6;
}

.ktr-profile-input-overview__missing[hidden]{
  display:none!important;
}

/* Each field becomes a compact status card */
.ktr-profile-edit__form .ktr-profile-edit__field{
  position:relative;
  margin:0 0 11px!important;
  padding:13px 14px 14px!important;
  border:1px solid #e8dfd8;
  border-radius:13px;
  background:#fff;
  transition:
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.ktr-profile-edit__form .ktr-profile-edit__field>label{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 7px!important;
  color:#3d342f;
  font-size:11px!important;
  font-weight:900!important;
}

.ktr-profile-edit__status-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:21px;
  padding:3px 8px;
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  line-height:1;
}

.ktr-profile-edit__status-badge.is-filled{
  border:1px solid #cfe8d7;
  background:#eef8f1;
  color:#34784a;
}

.ktr-profile-edit__status-badge.is-empty{
  border:1px solid #f1ceb9;
  background:#fff2e9;
  color:#b86138;
}

/* Filled */
.ktr-profile-edit__form .ktr-profile-edit__field.is-filled{
  border-color:#d5e9db;
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #f8fcf9 100%
    );
}

.ktr-profile-edit__form .ktr-profile-edit__field.is-filled::before{
  content:"✓";
  position:absolute;
  top:14px;
  left:-6px;
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  border-radius:50%;
  background:#4e9b65;
  color:#fff;
  font-size:9px;
  font-weight:900;
  box-shadow:0 2px 8px rgba(46,114,65,.15);
}

/* Empty */
.ktr-profile-edit__form .ktr-profile-edit__field.is-empty{
  border-color:#efc9b4;
  background:
    linear-gradient(
      135deg,
      #ffffff 0%,
      #fff8f3 100%
    );
}

.ktr-profile-edit__form .ktr-profile-edit__field.is-empty::before{
  content:"!";
  position:absolute;
  top:14px;
  left:-6px;
  display:grid;
  width:18px;
  height:18px;
  place-items:center;
  border-radius:50%;
  background:#e88d5f;
  color:#fff;
  font-size:10px;
  font-weight:900;
  box-shadow:0 2px 8px rgba(232,141,95,.16);
}

/* Required empty = slightly stronger */
.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-required{
  border-color:#e9a982;
  box-shadow:0 0 0 2px rgba(232,141,95,.055);
}

/* Optional empty = softer */
.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-optional{
  border-color:#eadfd8;
  background:#fffaf7;
}

.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-optional::before{
  background:#c8b8ad;
}

/* Inputs remain clean and obvious */
.ktr-profile-edit__form .ktr-profile-edit__field input[type="text"],
.ktr-profile-edit__form .ktr-profile-edit__field input[type="file"],
.ktr-profile-edit__form .ktr-profile-edit__field select,
.ktr-profile-edit__form .ktr-profile-edit__field textarea{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.ktr-profile-edit__form .ktr-profile-edit__field.is-filled input[type="text"],
.ktr-profile-edit__form .ktr-profile-edit__field.is-filled select,
.ktr-profile-edit__form .ktr-profile-edit__field.is-filled textarea{
  border-color:#cfe4d5!important;
}

.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-required input[type="text"],
.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-required select,
.ktr-profile-edit__form .ktr-profile-edit__field.is-empty.is-required textarea{
  border-color:#e8b797!important;
}

/* Current profile image is also clearly 'filled' */
.ktr-profile-edit__current-image{
  margin-bottom:8px;
}

@media(max-width:640px){
  .ktr-profile-input-overview{
    padding:14px;
  }

  .ktr-profile-input-overview__main{
    align-items:flex-start;
    flex-direction:column;
  }

  .ktr-profile-input-overview__score{
    width:100%;
  }

  .ktr-profile-edit__form .ktr-profile-edit__field{
    padding:12px!important;
  }

  .ktr-profile-edit__form .ktr-profile-edit__field>label{
    align-items:flex-start;
  }
}


/* =========================================================
   STEP11.5 v1.4.6
   Talk Topics Hierarchical Selector
========================================================= */
.ktr-profile-edit__field--topics{padding:15px!important}
.ktr-topic-selector__description{margin:0 0 12px!important;color:#776d66;font-size:10px!important;line-height:1.7}
.ktr-topic-selector{display:grid;gap:11px}
.ktr-topic-selector__summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #e7ddd6;border-radius:11px;background:#fffaf7}
.ktr-topic-selector__summary>div{display:flex;align-items:baseline;gap:4px;color:#796d65;font-size:10px}
.ktr-topic-selector__summary strong{color:#d66f3e;font-size:18px;font-weight:900}
.ktr-topic-selector__clear{padding:5px 8px;border:0;background:transparent;color:#a66749;font-size:9px;font-weight:800;cursor:pointer}
.ktr-topic-selector__selected{display:flex;flex-wrap:wrap;gap:6px;min-height:26px}
.ktr-topic-selector__selected:empty::before{content:"まだテーマが選択されていません";display:inline-flex;align-items:center;color:#aaa099;font-size:9px}
.ktr-topic-selector__selected-chip{display:inline-flex;align-items:center;padding:6px 9px;border:1px solid #e7b99f;border-radius:999px;background:#fff3eb;color:#9e5837;font-size:9px;font-weight:800;cursor:pointer}
.ktr-topic-selector__selected-chip:hover{border-color:#dc8b60;background:#ffeadf}
.ktr-topic-selector__groups{display:grid;gap:8px}
.ktr-topic-selector__group{overflow:hidden;border:1px solid #e7dfda;border-radius:12px;background:#fff}
.ktr-topic-selector__group[open]{border-color:#efd2c1;box-shadow:0 4px 14px rgba(83,52,34,.035)}
.ktr-topic-selector__group summary{display:grid;grid-template-columns:26px minmax(0,1fr) auto 18px;align-items:center;gap:8px;padding:11px 12px;list-style:none;cursor:pointer;user-select:none}
.ktr-topic-selector__group summary::-webkit-details-marker{display:none}
.ktr-topic-selector__group summary::after{content:"＋";grid-column:4;color:#c67850;font-size:13px;font-weight:900}
.ktr-topic-selector__group[open] summary::after{content:"−"}
.ktr-topic-selector__group-icon{display:grid;width:26px;height:26px;place-items:center;border-radius:8px;background:#fff3eb;font-size:13px}
.ktr-topic-selector__group-title{color:#3b332e;font-size:11px;font-weight:900}
.ktr-topic-selector__group-selected{padding:3px 7px;border-radius:999px;background:#f6f2ef;color:#887b73;font-size:8px;font-weight:800}
.ktr-topic-selector__group-body{display:grid;gap:12px;padding:0 12px 13px;border-top:1px solid #f1e9e4}
.ktr-topic-selector__subgroup{padding-top:11px}
.ktr-topic-selector__subgroup-title{margin:0 0 7px!important;color:#8c786d;font-size:9px!important;font-weight:900}
.ktr-topic-selector__chips{display:flex;flex-wrap:wrap;gap:6px}
.ktr-topic-selector__chip{position:relative;display:inline-flex!important;margin:0!important;cursor:pointer}
.ktr-topic-selector__chip input{position:absolute;width:1px!important;height:1px!important;opacity:0;pointer-events:none}
.ktr-topic-selector__chip span{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border:1px solid #e5ddd8;border-radius:9px;background:#fff;color:#625750;font-size:9px;font-weight:750;transition:.15s ease}
.ktr-topic-selector__chip:hover span{transform:translateY(-1px);border-color:#e6b79d;background:#fff9f5}
.ktr-topic-selector__chip input:checked+span{border-color:#e88d5f;background:#fff0e7;color:#b45e36;box-shadow:inset 0 0 0 1px rgba(232,141,95,.08)}
.ktr-topic-selector__chip input:checked+span::before{content:"✓";margin-right:4px;color:#d56f3e;font-size:8px;font-weight:900}
.ktr-topic-selector__custom{padding:11px 12px;border:1px dashed #dfcec3;border-radius:11px;background:#fcfaf8}
.ktr-topic-selector__custom>label{display:block!important;margin:0 0 6px!important;color:#74685f!important;font-size:9px!important;font-weight:900!important}
.ktr-topic-selector__custom-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}
.ktr-topic-selector__custom-row input{min-width:0!important}
.ktr-topic-selector__custom-row .ktr-button{min-width:64px;padding:0 12px!important;white-space:nowrap}
.ktr-topic-selector__storage{position:absolute!important;width:1px!important;height:1px!important;min-height:1px!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
@media(max-width:640px){
  .ktr-topic-selector__group summary{grid-template-columns:26px minmax(0,1fr) 18px}
  .ktr-topic-selector__group-selected{display:none}
  .ktr-topic-selector__chip span{min-height:31px;padding:6px 9px}
  .ktr-topic-selector__custom-row{grid-template-columns:1fr}
  .ktr-topic-selector__custom-row .ktr-button{width:100%}
}


/* =========================================================
   STEP11.5 v1.4.7
   Profile Save -> Publish Journey UX
========================================================= */
.ktr-profile-publish-message{margin:10px 0!important;padding:10px 12px;border:1px solid #cfe7d7;border-radius:10px;background:#eff9f2;color:#34774a;font-size:10px!important;font-weight:800}
.ktr-profile-publish-journey{margin:14px 0 18px;overflow:hidden;border:1px solid #e8ded7;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(70,44,28,.045)}
.ktr-profile-publish-journey__steps{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr);align-items:center;gap:7px;padding:13px 15px;background:#faf8f6;border-bottom:1px solid #eee6e1}
.ktr-profile-publish-step{display:flex;align-items:center;gap:8px;min-width:0;color:#9b918a}
.ktr-profile-publish-step__number{display:grid;flex:0 0 27px;width:27px;height:27px;place-items:center;border:1px solid #ded7d2;border-radius:50%;background:#fff;font-size:9px;font-weight:900}
.ktr-profile-publish-step strong{display:block;color:inherit;font-size:10px;font-weight:900}
.ktr-profile-publish-step small{display:block;margin-top:2px;color:inherit;font-size:8px}
.ktr-profile-publish-step.is-complete{color:#47835a}
.ktr-profile-publish-step.is-complete .ktr-profile-publish-step__number{border-color:#cce5d4;background:#eef8f1;color:#34784a}
.ktr-profile-publish-step.is-active{color:#c7673c}
.ktr-profile-publish-step.is-active .ktr-profile-publish-step__number{border-color:#e88d5f;background:#fff1e8;color:#c9683b;box-shadow:0 0 0 3px rgba(232,141,95,.07)}
.ktr-profile-publish-journey__line{display:block;height:1px;background:#ddd5d0}
.ktr-profile-publish-journey.is-ready .ktr-profile-publish-journey__line,.ktr-profile-publish-journey.is-public .ktr-profile-publish-journey__line{background:linear-gradient(90deg,#9dc9aa,#e88d5f)}
.ktr-profile-publish-journey__cta{display:grid;grid-template-columns:minmax(0,1fr) 175px;align-items:center;gap:18px;padding:16px;background:radial-gradient(circle at right top,rgba(232,141,95,.10),transparent 34%),linear-gradient(135deg,#fffaf6,#fff)}
.ktr-profile-publish-journey__ready{display:inline-flex;margin-bottom:5px;color:#d26f40;font-size:8px;font-weight:900;letter-spacing:.14em}
.ktr-profile-publish-journey__cta h3{margin:0!important;color:#372f2a;font-size:14px;line-height:1.45}
.ktr-profile-publish-journey__cta p{margin:6px 0 0!important;color:#766a62;font-size:9px!important;line-height:1.7}
.ktr-profile-publish-journey__publish-form{display:grid;gap:5px}
.ktr-profile-publish-journey__publish{width:100%!important;min-height:44px!important;font-weight:900!important;box-shadow:0 7px 18px rgba(232,141,95,.16)!important}
.ktr-profile-publish-journey__publish-form small{color:#9c8e84;font-size:7px;line-height:1.45;text-align:center}
.ktr-profile-publish-journey__success{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 16px;background:linear-gradient(135deg,#f4fbf6,#fff)}
.ktr-profile-publish-journey__status{display:inline-flex;color:#3d8653;font-size:9px;font-weight:900}
.ktr-profile-publish-journey__success p{margin:5px 0 0!important;color:#6f766f;font-size:9px!important;line-height:1.65}
.ktr-profile-publish-journey__incomplete{padding:13px 15px;background:#fffaf7}
.ktr-profile-publish-journey__lock{display:inline-flex;padding:4px 8px;border-radius:999px;background:#f2ece8;color:#857970;font-size:8px;font-weight:900}
.ktr-profile-publish-journey__incomplete p{margin:6px 0 0!important;color:#84776f;font-size:9px!important}
.ktr-profile-save-actions{display:grid;gap:7px;margin-top:14px}
.ktr-profile-save-actions>.ktr-button{width:100%!important;min-height:44px!important}
.ktr-profile-save-actions>p{margin:0!important;color:#8c7f76;font-size:8px!important;line-height:1.6;text-align:center}
@media(max-width:640px){
  .ktr-profile-publish-journey__steps{grid-template-columns:1fr}
  .ktr-profile-publish-journey__line{width:1px;height:14px;margin-left:13px}
  .ktr-profile-publish-journey__cta{grid-template-columns:1fr}
  .ktr-profile-publish-journey__success{align-items:stretch;flex-direction:column}
  .ktr-profile-publish-journey__success .ktr-button{width:100%}
}


/* =========================================================
   STEP11.5 v1.4.9
   First-time Onboarding Tutorial
========================================================= */
.ktr-onboarding-guide{
  margin:0 0 18px;
}

.ktr-onboarding-guide__details{
  overflow:hidden;
  border:1px solid #eadfd8;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 25px rgba(67,43,28,.045);
}

.ktr-onboarding-guide__summary{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  list-style:none;
  cursor:pointer;
  background:
    radial-gradient(circle at right top,rgba(232,141,95,.12),transparent 32%),
    linear-gradient(135deg,#fffaf6,#fff);
}

.ktr-onboarding-guide__summary::-webkit-details-marker{
  display:none;
}

.ktr-onboarding-guide__summary-icon{
  display:grid;
  width:36px;
  height:36px;
  place-items:center;
  border-radius:12px;
  background:#e88d5f;
  color:#fff;
  font-size:16px;
  font-weight:900;
  box-shadow:0 6px 15px rgba(232,141,95,.18);
}

.ktr-onboarding-guide__eyebrow{
  display:block;
  margin-bottom:2px;
  color:#c96c40;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
}

.ktr-onboarding-guide__summary-copy strong{
  display:block;
  color:#302925;
  font-size:13px;
  font-weight:900;
}

.ktr-onboarding-guide__summary-copy p{
  margin:3px 0 0!important;
  color:#81756d;
  font-size:9px!important;
  line-height:1.55;
}

.ktr-onboarding-guide__summary-action{
  padding:6px 9px;
  border:1px solid #e7c2ae;
  border-radius:999px;
  background:#fff;
  color:#b8633d;
  font-size:8px;
  font-weight:900;
}

.ktr-onboarding-guide__details[open] .ktr-onboarding-guide__summary{
  border-bottom:1px solid #eee5df;
}

.ktr-onboarding-guide__details[open] .ktr-onboarding-guide__summary-action{
  color:#8f8178;
}

.ktr-onboarding-guide__details[open] .ktr-onboarding-guide__summary-action::before{
  content:"閉じる";
  font-size:8px;
}

.ktr-onboarding-guide__details[open] .ktr-onboarding-guide__summary-action{
  font-size:0;
}

.ktr-onboarding-guide__body{
  display:grid;
  gap:14px;
  padding:15px;
  background:#fcfbfa;
}

.ktr-onboarding-guide__route{
  padding:14px;
  border:1px solid #ebe3de;
  border-radius:14px;
  background:#fff;
}

.ktr-onboarding-guide__route--setup{
  border-color:#eed2c1;
  background:linear-gradient(135deg,#fffaf6,#fff);
}

.ktr-onboarding-guide__route--booking{
  border-color:#e3ded9;
}

.ktr-onboarding-guide__route-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.ktr-onboarding-guide__route-label{
  display:block;
  margin-bottom:3px;
  color:#c96d41;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
}

.ktr-onboarding-guide__route-head h3{
  margin:0!important;
  color:#342c27;
  font-size:13px;
  line-height:1.4;
}

.ktr-onboarding-guide__route-badge{
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:999px;
  background:#fff1e9;
  color:#b95f37;
  font-size:8px;
  font-weight:900;
}

.ktr-onboarding-guide__route-badge.is-optional{
  background:#f3f0ed;
  color:#80756e;
}

.ktr-onboarding-guide__route-badge.is-main{
  background:#f0f8f2;
  color:#477e58;
}

.ktr-onboarding-guide__steps-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}

.ktr-onboarding-guide__booking-flow{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}

.ktr-onboarding-step{
  position:relative;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:9px;
  padding:11px;
  border:1px solid #ebe4df;
  border-radius:12px;
  background:#fff;
}

.ktr-onboarding-step.is-current{
  border-color:#e6ad8c;
  box-shadow:0 0 0 2px rgba(232,141,95,.06);
}

.ktr-onboarding-step.is-complete{
  border-color:#d5e8db;
  background:#fbfefc;
}

.ktr-onboarding-step__number{
  display:grid;
  width:27px;
  height:27px;
  place-items:center;
  border-radius:9px;
  background:#fff1e9;
  color:#c96c3f;
  font-size:9px;
  font-weight:900;
}

.ktr-onboarding-step.is-complete .ktr-onboarding-step__number{
  background:#edf8f0;
  color:#3f7e53;
}

.ktr-onboarding-step__title-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:7px;
}

.ktr-onboarding-step h4{
  margin:0!important;
  color:#3b332e;
  font-size:10px;
  line-height:1.45;
}

.ktr-onboarding-step p{
  margin:5px 0 0!important;
  color:#786d66;
  font-size:8.5px!important;
  line-height:1.7;
}

.ktr-onboarding-step__status{
  flex:0 0 auto;
  padding:3px 6px;
  border-radius:999px;
  background:#f3efec;
  color:#8b7e75;
  font-size:7px;
  font-weight:900;
}

.ktr-onboarding-step__status.is-done{
  background:#eef8f1;
  color:#397c4d;
}

.ktr-onboarding-step__status.is-next{
  background:#fff1e8;
  color:#bb633b;
}

.ktr-onboarding-step__mini-flow{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  margin-top:8px;
}

.ktr-onboarding-step__mini-flow span{
  padding:4px 6px;
  border-radius:7px;
  background:#f8f4f1;
  color:#766a62;
  font-size:7px;
  font-weight:800;
}

.ktr-onboarding-step__mini-flow i{
  color:#d68a62;
  font-size:8px;
  font-style:normal;
}

.ktr-onboarding-step__action,
.ktr-onboarding-step__sub-action{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  margin-top:9px;
  padding:7px 8px;
  border:1px solid #e6c5b2;
  border-radius:8px;
  background:#fff8f3;
  color:#ae5c37;
  font-size:8px;
  font-weight:900;
  text-decoration:none!important;
  cursor:pointer;
}

.ktr-onboarding-step__sub-action{
  width:auto;
  border:0;
  padding:0;
  background:transparent;
  color:#b6613b;
  text-decoration:underline!important;
}

.ktr-onboarding-guide__general-note{
  padding:12px 13px;
  border:1px solid #dce8e0;
  border-radius:12px;
  background:#f5fbf6;
}

.ktr-onboarding-guide__general-note strong{
  color:#3d7950;
  font-size:10px;
}

.ktr-onboarding-guide__general-note p{
  margin:4px 0 0!important;
  color:#627168;
  font-size:8.5px!important;
  line-height:1.65;
}

.ktr-onboarding-guide__point-note{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:12px 13px;
  border:1px solid #eadfce;
  border-radius:12px;
  background:#fffdf7;
}

.ktr-onboarding-guide__point-icon{
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:10px;
  background:#fff0d7;
  color:#b57725;
  font-size:13px;
  font-weight:900;
}

.ktr-onboarding-guide__point-note strong{
  color:#554b44;
  font-size:9px;
}

.ktr-onboarding-guide__point-note p{
  margin:3px 0 0!important;
  color:#83766e;
  font-size:8px!important;
  line-height:1.55;
}

.ktr-onboarding-help-button{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:9998;
  display:flex;
  align-items:center;
  gap:6px;
  padding:8px 11px;
  border:1px solid rgba(208,113,67,.22);
  border-radius:999px;
  background:#fff;
  color:#b95f37;
  box-shadow:0 7px 22px rgba(55,37,25,.13);
  cursor:pointer;
}

.ktr-onboarding-help-button span{
  display:grid;
  width:20px;
  height:20px;
  place-items:center;
  border-radius:50%;
  background:#e88d5f;
  color:#fff;
  font-size:10px;
  font-weight:900;
}

.ktr-onboarding-help-button strong{
  font-size:9px;
}

@media(max-width:760px){
  .ktr-onboarding-guide__summary{
    grid-template-columns:34px minmax(0,1fr);
  }

  .ktr-onboarding-guide__summary-action{
    grid-column:2;
    justify-self:start;
  }

  .ktr-onboarding-guide__steps-grid,
  .ktr-onboarding-guide__booking-flow{
    grid-template-columns:1fr;
  }

  .ktr-onboarding-guide__point-note{
    grid-template-columns:32px minmax(0,1fr);
  }

  .ktr-onboarding-guide__point-note .ktr-button{
    grid-column:1/-1;
    width:100%;
  }

  .ktr-onboarding-help-button{
    right:12px;
    bottom:12px;
  }
}


/* =========================================================
   STEP11.5 v1.5.0 Visual Guided Tour
========================================================= */
.ktr-tour-overlay{
  position:fixed;
  inset:0;
  z-index:99990;
  background:rgba(42,34,29,.48);
  backdrop-filter:blur(1.5px);
  -webkit-backdrop-filter:blur(1.5px);
}

.ktr-tour-target{
  position:relative!important;
  z-index:99992!important;
  border-radius:12px!important;
  box-shadow:
    0 0 0 4px #fff,
    0 0 0 7px rgba(232,141,95,.95),
    0 0 0 13px rgba(232,141,95,.18),
    0 12px 34px rgba(45,31,23,.2)!important;
  animation:ktr-tour-pulse 1.35s ease-in-out infinite;
}

@keyframes ktr-tour-pulse{
  0%,100%{
    box-shadow:
      0 0 0 4px #fff,
      0 0 0 7px rgba(232,141,95,.95),
      0 0 0 13px rgba(232,141,95,.14),
      0 12px 34px rgba(45,31,23,.2);
  }
  50%{
    box-shadow:
      0 0 0 4px #fff,
      0 0 0 7px rgba(232,141,95,.95),
      0 0 0 20px rgba(232,141,95,.04),
      0 12px 34px rgba(45,31,23,.2);
  }
}

.ktr-tour-bubble{
  position:fixed;
  z-index:99993;
  padding:14px;
  border:1px solid #efc9b4;
  border-radius:15px;
  background:#fff;
  box-shadow:0 16px 42px rgba(39,28,21,.23);
  color:#3a312c;
}

.ktr-tour-bubble::before{
  content:"";
  position:absolute;
  top:-7px;
  left:50%;
  width:13px;
  height:13px;
  transform:translateX(-50%) rotate(45deg);
  border-left:1px solid #efc9b4;
  border-top:1px solid #efc9b4;
  background:#fff;
}

.ktr-tour-bubble.is-above::before{
  top:auto;
  bottom:-7px;
  border:0;
  border-right:1px solid #efc9b4;
  border-bottom:1px solid #efc9b4;
}

.ktr-tour-bubble__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}

.ktr-tour-bubble__label{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:999px;
  background:#fff0e7;
  color:#c66b40;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
}

.ktr-tour-bubble__counter{
  color:#9a8c83;
  font-size:10px;
  font-weight:800;
}

.ktr-tour-bubble__text{
  margin:0!important;
  color:#51463f!important;
  font-size:12px!important;
  font-weight:700;
  line-height:1.75!important;
}

.ktr-tour-bubble__actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
}

.ktr-tour-bubble__actions button{
  min-height:34px;
  padding:7px 11px;
  border-radius:9px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.ktr-tour-bubble__skip,
.ktr-tour-bubble__prev{
  border:1px solid #e6ddd7;
  background:#fff;
  color:#766960;
}

.ktr-tour-bubble__next{
  border:1px solid #e88d5f;
  background:#e88d5f;
  color:#fff;
}

.ktr-tour-bubble__actions > div{
  display:flex;
  gap:6px;
}

body.ktr-tour-active{
  overflow-x:hidden;
}

@media(max-width:760px){
  .ktr-tour-bubble{
    padding:12px;
  }

  .ktr-tour-bubble__text{
    font-size:11px!important;
  }

  .ktr-tour-target{
    scroll-margin-top:90px;
  }
}

@media(prefers-reduced-motion:reduce){
  .ktr-tour-target{
    animation:none!important;
  }
}


/* =========================================================
   STEP11.5 v1.5.1
   Non-blocking Visual Guided Tour
========================================================= */

/*
 * チュートリアル中も通常操作を完全に維持する。
 * 背景レイヤーは視覚効果のみでクリックを奪わない。
 */
.ktr-tour-overlay,
.ktr-tour-overlay--nonblocking{
  pointer-events:none!important;
  background:rgba(42,34,29,.08)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* 画面全体を暗くしすぎない */
body.ktr-tour-nonblocking .ktr-mypage{
  filter:none!important;
  opacity:1!important;
}

/* 案内対象だけ、控えめなオレンジの光で目立たせる */
.ktr-tour-target{
  pointer-events:auto!important;
  z-index:auto!important;
  outline:2px solid rgba(232,141,95,.92)!important;
  outline-offset:3px!important;
  box-shadow:
    0 0 0 5px rgba(232,141,95,.12),
    0 5px 18px rgba(70,44,28,.08)!important;
  animation:ktr-tour-pulse-soft 1.7s ease-in-out infinite!important;
}

@keyframes ktr-tour-pulse-soft{
  0%,100%{
    outline-color:rgba(232,141,95,.92);
    box-shadow:
      0 0 0 5px rgba(232,141,95,.10),
      0 5px 18px rgba(70,44,28,.07);
  }
  50%{
    outline-color:rgba(232,141,95,.62);
    box-shadow:
      0 0 0 10px rgba(232,141,95,.03),
      0 5px 18px rgba(70,44,28,.07);
  }
}

/*
 * 吹き出し自体は操作可能だが、
 * コンパクトにして画面を覆いすぎない。
 */
.ktr-tour-bubble{
  z-index:99993!important;
  max-width:330px!important;
  padding:12px!important;
  border-radius:13px!important;
  box-shadow:0 12px 30px rgba(39,28,21,.16)!important;
}

/* 右下に固定して作業するモード */
.ktr-tour-bubble.is-docked{
  position:fixed!important;
  top:auto!important;
  left:auto!important;
  right:18px!important;
  bottom:66px!important;
  width:min(320px,calc(100vw - 28px))!important;
}

.ktr-tour-bubble.is-docked::before{
  display:none!important;
}

.ktr-tour-bubble__dock{
  border:1px solid #eadfd8!important;
  background:#fffaf7!important;
  color:#9c6447!important;
}

/* チュートリアル中もスクロール・クリック・入力を妨げない */
body.ktr-tour-active{
  overflow:auto!important;
}

body.ktr-tour-active,
body.ktr-tour-active *{
  user-select:auto;
}

/* 右下「使い方」ボタンも通常操作を阻害しないサイズへ */
.ktr-onboarding-help-button{
  right:14px!important;
  bottom:14px!important;
  padding:7px 9px!important;
  opacity:.92;
}

.ktr-onboarding-help-button:hover{
  opacity:1;
}

/* Reduced motion */
@media(prefers-reduced-motion:reduce){
  .ktr-tour-target{
    animation:none!important;
  }
}

/* Small screens: tooltip is compact and can dock to bottom */
@media(max-width:760px){
  .ktr-tour-bubble{
    width:min(300px,calc(100vw - 24px))!important;
    max-height:42vh;
    overflow:auto;
  }

  .ktr-tour-bubble.is-docked{
    right:12px!important;
    bottom:58px!important;
  }

  .ktr-tour-bubble__actions{
    align-items:flex-start;
    flex-direction:column;
  }

  .ktr-tour-bubble__actions>div{
    width:100%;
    flex-wrap:wrap;
  }
}


/* =========================================================
   STEP11.5 v1.5.2
   Smart Tour refinements
========================================================= */

/* 強調中でもボタン本来の色を絶対に消さない */
button.ktr-tour-target,
a.ktr-tour-target,
.ktr-button.ktr-tour-target{
  color:inherit;
  background-color:revert;
}

/* KTR主要ボタンは元デザインを優先 */
.ktr-button--primary.ktr-tour-target,
button[name="ktr_save_profile"].ktr-tour-target{
  background:#e88d5f!important;
  border-color:#e88d5f!important;
  color:#fff!important;
}

.ktr-tour-bubble__note{
  margin-top:8px;
  padding:6px 8px;
  border-radius:7px;
  background:#f8f5f2;
  color:#8a7c73;
  font-size:8px;
  line-height:1.5;
}

/* 吹き出しは上端へ張り付かない。自動dock時は右下へ。 */
.ktr-tour-bubble.is-docked{
  top:auto!important;
  left:auto!important;
  right:16px!important;
  bottom:64px!important;
  width:min(310px,calc(100vw - 28px))!important;
}

.ktr-tour-bubble.is-docked::before{
  display:none!important;
}

/* 背景はごく薄く。クリックは完全透過。 */
.ktr-tour-overlay--nonblocking{
  pointer-events:none!important;
  background:rgba(61,47,39,.035)!important;
}

/* 対象の操作性を維持しつつ視線誘導だけ付与 */
.ktr-tour-target{
  pointer-events:auto!important;
  outline:2px solid rgba(232,141,95,.88)!important;
  outline-offset:3px!important;
}

/* フォーム入力中は点滅をさらに弱くする */
.ktr-profile-edit__field.ktr-tour-target{
  animation:ktr-tour-pulse-field 1.9s ease-in-out infinite!important;
}

@keyframes ktr-tour-pulse-field{
  0%,100%{
    outline-color:rgba(232,141,95,.88);
    box-shadow:0 0 0 4px rgba(232,141,95,.08)!important;
  }
  50%{
    outline-color:rgba(232,141,95,.55);
    box-shadow:0 0 0 7px rgba(232,141,95,.025)!important;
  }
}

@media(max-width:760px){
  .ktr-tour-bubble.is-docked{
    right:10px!important;
    bottom:58px!important;
  }
}


/* STEP11.5 v1.5.3 membership tutorial entry */
.ktr-tour-entry-target{
  position:relative!important;
  z-index:2!important;
  animation:ktr-tour-entry-pulse 1.8s ease-in-out infinite!important;
}
@keyframes ktr-tour-entry-pulse{
  0%,100%{box-shadow:0 0 0 3px rgba(232,141,95,.12),0 0 0 0 rgba(232,141,95,.24)!important}
  50%{box-shadow:0 0 0 3px rgba(232,141,95,.08),0 0 0 8px rgba(232,141,95,.07)!important}
}
.ktr-tour-entry-bubble{
  z-index:999999!important;
}


/* =========================================================
   STEP11.5 v1.5.6
   Natural language smart matching search
========================================================= */
.ktr-smart-search{
  display:grid;
  gap:11px;
}

.ktr-smart-search__label-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.ktr-smart-search__label{
  color:#342b26;
  font-size:12px;
  font-weight:900;
}

.ktr-smart-search__badge{
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid #f0cfbc;
  border-radius:999px;
  background:#fff4ed;
  color:#b9643e;
  font-size:8px;
  font-weight:900;
}

.ktr-member-search-box__main--natural{
  align-items:flex-start!important;
  padding:11px 12px!important;
  border:1px solid #eadbd1!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:0 5px 16px rgba(71,45,30,.04);
}

.ktr-member-search-box__textarea{
  min-height:76px!important;
  resize:vertical;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:12px!important;
  line-height:1.7!important;
}

.ktr-member-search-box__textarea::placeholder{
  color:#aaa09a;
}

.ktr-smart-search__actions{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
}

.ktr-smart-search__submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:39px;
  padding:8px 15px;
  border:1px solid #e88d5f;
  border-radius:10px;
  background:#e88d5f;
  color:#fff;
  font-size:10px;
  font-weight:900;
  box-shadow:0 7px 17px rgba(232,141,95,.15);
  cursor:pointer;
}

.ktr-smart-search__submit:hover{
  transform:translateY(-1px);
}

.ktr-smart-search__note{
  margin:0!important;
  color:#94877e;
  font-size:8px!important;
  line-height:1.6;
}

.ktr-smart-search__examples{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
}

.ktr-smart-search__examples>span{
  color:#95887f;
  font-size:8px;
  font-weight:800;
}

.ktr-smart-search__examples button{
  padding:5px 8px;
  border:1px solid #e7ddd6;
  border-radius:999px;
  background:#fff;
  color:#776a62;
  font-size:8px;
  font-weight:800;
  cursor:pointer;
}

.ktr-smart-search__examples button:hover{
  border-color:#e7b89e;
  background:#fff8f3;
  color:#b45f39;
}

.ktr-smart-match-summary{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  gap:10px;
  padding:11px 12px;
  border:1px solid #d8e8dd;
  border-radius:12px;
  background:linear-gradient(135deg,#f6fbf7,#fff);
}

.ktr-smart-match-summary[hidden]{
  display:none!important;
}

.ktr-smart-match-summary__icon{
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:9px;
  background:#e9f6ed;
  color:#438057;
  font-size:13px;
  font-weight:900;
}

.ktr-smart-match-summary strong{
  display:block;
  color:#3e5745;
  font-size:10px;
}

.ktr-smart-match-summary p{
  margin:3px 0 0!important;
  color:#718077;
  font-size:8px!important;
  line-height:1.55;
}

.ktr-member-advanced-filters{
  margin-top:3px;
  overflow:hidden;
  border:1px solid #ece3dd;
  border-radius:11px;
  background:#fcfaf8;
}

.ktr-member-advanced-filters>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  list-style:none;
  color:#655951;
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}

.ktr-member-advanced-filters>summary::-webkit-details-marker{
  display:none;
}

.ktr-member-advanced-filters>summary::after{
  content:"＋";
  color:#c97047;
  font-size:12px;
}

.ktr-member-advanced-filters[open]>summary::after{
  content:"−";
}

.ktr-member-advanced-filters>summary span{
  margin-left:auto;
  color:#a3978e;
  font-size:7px;
  font-weight:700;
}

.ktr-member-advanced-filters .ktr-member-filter-grid{
  padding:10px;
  border-top:1px solid #eee5df;
}

/* Candidate explanation inside member card */
.ktr-member-card.is-smart-match{
  border-color:rgba(232,141,95,.25)!important;
}

.ktr-member-card.is-smart-match-top{
  box-shadow:
    0 7px 22px rgba(76,49,31,.07),
    0 0 0 2px rgba(232,141,95,.08)!important;
}

.ktr-smart-match-reason{
  margin:8px 0 9px;
  padding:8px;
  border:1px solid #f0d5c4;
  border-radius:9px;
  background:#fff8f3;
}

.ktr-smart-match-reason__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin-bottom:5px;
}

.ktr-smart-match-reason__head>span{
  padding:3px 6px;
  border-radius:999px;
  background:#e88d5f;
  color:#fff;
  font-size:7px;
  font-weight:900;
}

.ktr-smart-match-reason__head>strong{
  color:#bf6a43;
  font-size:7px;
}

.ktr-smart-match-reason__items{
  display:grid;
  gap:3px;
}

.ktr-smart-match-reason__items span{
  display:block;
  overflow:hidden;
  color:#6d5f57;
  font-size:7.5px;
  line-height:1.45;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ktr-smart-match-reason__items strong{
  color:#b76540;
}

/* Portal hero: longer natural-language title */
.ktr-portal-hero__title span{
  text-wrap:balance;
}

@media(max-width:760px){
  .ktr-smart-search__label-row,
  .ktr-smart-search__actions{
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .ktr-smart-search__label-row{
    display:grid;
  }

  .ktr-smart-search__badge{
    justify-self:start;
  }

  .ktr-smart-search__submit{
    width:100%;
  }

  .ktr-member-advanced-filters>summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }

  .ktr-member-advanced-filters>summary span{
    width:100%;
    margin-left:0;
  }
}


/* =========================================================
   STEP11.5 v1.5.7
   Qualification / Skill predictive selector
========================================================= */
.ktr-profile-edit__field--qualifications{
  overflow:visible!important;
}

.ktr-qualification-selector__description{
  margin:0 0 11px!important;
  color:#7d7169;
  font-size:10px!important;
  line-height:1.7;
}

.ktr-qualification-selector{
  position:relative;
  display:grid;
  gap:10px;
}

.ktr-qualification-selector__summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  border:1px solid #e8dfd9;
  border-radius:10px;
  background:#fffaf7;
}

.ktr-qualification-selector__summary>div{
  display:flex;
  align-items:baseline;
  gap:4px;
  color:#7f736b;
  font-size:9px;
}

.ktr-qualification-selector__summary strong{
  color:#c96b40;
  font-size:17px;
  font-weight:900;
}

.ktr-qualification-selector__clear{
  border:0;
  background:transparent;
  color:#9c6d55;
  font-size:8px;
  font-weight:900;
  cursor:pointer;
}

.ktr-qualification-selector__selected{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  min-height:28px;
}

.ktr-qualification-selector__empty{
  display:inline-flex;
  align-items:center;
  color:#aca29b;
  font-size:9px;
}

.ktr-qualification-selector__chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border:1px solid #e3d8d1;
  border-radius:999px;
  background:#fff;
  color:#5d514a;
  font-size:9px;
  font-weight:800;
  cursor:pointer;
}

.ktr-qualification-selector__chip:hover{
  border-color:#e2b69d;
  background:#fff8f3;
}

.ktr-qualification-selector__chip-type{
  padding:2px 5px;
  border-radius:999px;
  background:#f4ede8;
  color:#aa6543;
  font-size:7px;
  font-weight:900;
}

.ktr-qualification-selector__search-wrap{
  position:relative;
  z-index:20;
}

.ktr-qualification-selector__search-icon{
  position:absolute;
  top:50%;
  left:12px;
  z-index:2;
  transform:translateY(-50%);
  color:#c37a55;
  font-size:16px;
  pointer-events:none;
}

.ktr-qualification-selector__search{
  width:100%!important;
  min-height:46px!important;
  padding-left:38px!important;
  border-color:#e1d6cf!important;
  border-radius:11px!important;
}

.ktr-qualification-selector__suggestions{
  position:absolute;
  top:calc(100% + 5px);
  left:0;
  right:0;
  z-index:999;
  max-height:280px;
  overflow:auto;
  padding:5px;
  border:1px solid #e7dcd5;
  border-radius:12px;
  background:#fff;
  box-shadow:0 14px 34px rgba(52,37,28,.14);
}

.ktr-qualification-selector__suggestions[hidden]{
  display:none!important;
}

.ktr-qualification-selector__suggestion{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2px 8px;
  width:100%;
  padding:9px 10px;
  border:0;
  border-bottom:1px solid #f2ece8;
  border-radius:8px;
  background:#fff;
  text-align:left;
  cursor:pointer;
}

.ktr-qualification-selector__suggestion:last-child{
  border-bottom:0;
}

.ktr-qualification-selector__suggestion:hover{
  background:#fff7f2;
}

.ktr-qualification-selector__suggestion strong{
  color:#40362f;
  font-size:10px;
  font-weight:900;
}

.ktr-qualification-selector__suggestion span{
  grid-column:1;
  color:#988a81;
  font-size:7px;
}

.ktr-qualification-selector__suggestion em{
  grid-column:2;
  grid-row:1/3;
  align-self:center;
  color:#c96b41;
  font-size:8px;
  font-style:normal;
  font-weight:900;
}

.ktr-qualification-selector__helper{
  padding:8px 10px;
  border-radius:9px;
  background:#f8f5f2;
}

.ktr-qualification-selector__helper p{
  margin:0!important;
  color:#82756d;
  font-size:8px!important;
  line-height:1.55;
}

.ktr-qualification-selector__custom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:1px dashed #ded0c8;
  border-radius:10px;
  background:#fcfaf8;
}

.ktr-qualification-selector__custom strong{
  display:block;
  color:#5e524b;
  font-size:9px;
}

.ktr-qualification-selector__custom p{
  margin:2px 0 0!important;
  color:#91847c;
  font-size:7.5px!important;
  line-height:1.5;
}

.ktr-qualification-selector__custom .ktr-button{
  min-height:34px!important;
  padding:6px 9px!important;
  white-space:nowrap;
  font-size:8px!important;
}

.ktr-qualification-selector__storage{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-height:1px!important;
  padding:0!important;
  border:0!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
}

@media(max-width:640px){
  .ktr-qualification-selector__custom{
    grid-template-columns:1fr;
  }

  .ktr-qualification-selector__custom .ktr-button{
    width:100%;
  }
}


/* =========================================================
   STEP11.5 v1.5.8
   Past booking housekeeping / completion confirmation
========================================================= */
.ktr-booking-item__status--completion_pending{
  color:#9a6418!important;
  background:#fff4d8!important;
  border-color:#efd79c!important;
}

.ktr-booking-item__status--expired{
  color:#78736f!important;
  background:#f3f1ef!important;
  border-color:#ddd8d3!important;
}

.ktr-booking-completion-pending-note{
  margin:10px 0;
  padding:10px 12px;
  border:1px solid #efd79c;
  border-radius:10px;
  background:#fffaf0;
}

.ktr-booking-completion-pending-note strong{
  display:block;
  margin-bottom:3px;
  color:#8d5a13;
  font-size:10px;
}

.ktr-booking-completion-pending-note p{
  margin:0!important;
  color:#7d7063;
  font-size:8px!important;
  line-height:1.6;
}


/* STEP11.5 v1.5.8.3 Google Meet repair notice */
.ktr-meeting-url-pending-note{
  margin:9px 0;
  padding:9px 11px;
  border:1px solid #efd8c8;
  border-radius:9px;
  background:#fff8f3;
  color:#8b6a59;
  font-size:8px!important;
  line-height:1.6;
}


/* =========================================================
   STEP11.5 v1.5.9 — General Member
========================================================= */

/* General member profile edit: show only five profile fields. */
.ktr-profile-edit--general .ktr-profile-input-overview{
  display:none!important;
}
.ktr-profile-edit--general .ktr-profile-edit__field{
  display:none!important;
}
.ktr-profile-edit--general .ktr-profile-edit__field:has(#ktr_profile_image),
.ktr-profile-edit--general .ktr-profile-edit__field:has(#ktr_nickname),
.ktr-profile-edit--general .ktr-profile-edit__field:has(#ktr_age_group),
.ktr-profile-edit--general .ktr-profile-edit__field:has(#ktr_gender),
.ktr-profile-edit--general .ktr-profile-edit__field:has(#ktr_company){
  display:block!important;
}
.ktr-general-profile-guide{
  margin:10px 0 18px;
  padding:12px 14px;
  border:1px solid #f0d2c0;
  border-radius:12px;
  background:#fff8f3;
}
.ktr-general-profile-guide strong{
  display:block;
  color:#b86640;
  font-size:12px;
}
.ktr-general-profile-guide p{
  margin:4px 0 0!important;
  color:#786b63;
  font-size:9px!important;
  line-height:1.65;
}

/* Compact general members section on membership page. */
.ktr-general-members-section{
  margin:28px 0 18px;
  padding:18px;
  border:1px solid #eadfd8;
  border-radius:16px;
  background:#fffdfb;
}
.ktr-general-members-section__head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:13px;
}
.ktr-general-members-section__eyebrow{
  margin:0 0 3px!important;
  color:#d1784e;
  font-size:8px!important;
  font-weight:900;
  letter-spacing:.13em;
}
.ktr-general-members-section__head h2{
  margin:0;
  color:#322923;
  font-size:17px;
}
.ktr-general-members-section__head p:not(.ktr-general-members-section__eyebrow){
  margin:4px 0 0!important;
  color:#8a7c73;
  font-size:8px!important;
}
.ktr-general-members-section__head>span{
  padding:4px 8px;
  border:1px solid #eee2da;
  border-radius:999px;
  color:#9c8b81;
  font-size:8px;
  white-space:nowrap;
}
.ktr-general-members-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}
.ktr-general-member-mini{
  padding:11px;
  border:1px solid #eee3dc;
  border-radius:12px;
  background:#fff;
  box-shadow:0 4px 14px rgba(76,50,34,.035);
}
.ktr-general-member-mini__top{
  display:flex;
  align-items:center;
  gap:9px;
}
.ktr-general-member-mini__avatar{
  display:grid;
  flex:0 0 38px;
  width:38px;
  height:38px;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  background:#fff1e8;
  color:#c46e45;
  font-size:13px;
  font-weight:900;
}
.ktr-general-member-mini__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ktr-general-member-mini__type{
  display:block;
  color:#b46d4b;
  font-size:7px;
  font-weight:900;
}
.ktr-general-member-mini h3{
  margin:1px 0!important;
  color:#342c27;
  font-size:11px;
}
.ktr-general-member-mini__top p{
  margin:0!important;
  color:#968980;
  font-size:7px!important;
}
.ktr-general-member-mini__company{
  min-height:25px;
  margin:8px 0!important;
  color:#6f635d;
  font-size:8px!important;
  line-height:1.5;
}
.ktr-general-member-mini__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
}
.ktr-general-member-mini__actions .ktr-button{
  min-height:30px;
  padding:5px!important;
  font-size:7px!important;
}
.ktr-general-member-mini__off{
  display:grid;
  place-items:center;
  color:#a79b94;
  font-size:7px;
}
.ktr-general-members-section__empty{
  margin:0!important;
  padding:14px;
  border-radius:10px;
  background:#faf7f5;
  color:#958981;
  font-size:9px!important;
}

/* Limited public profile for general members. */
.ktr-general-profile-page{
  max-width:820px;
  margin:0 auto;
}
.ktr-general-profile-back{
  margin-bottom:12px;
}
.ktr-general-profile-card{
  overflow:hidden;
  border:1px solid #eadfd8;
  border-radius:18px;
  background:#fff;
  box-shadow:0 8px 25px rgba(76,48,31,.05);
}
.ktr-general-profile-card__cover{
  display:flex;
  justify-content:space-between;
  padding:15px 18px 42px;
  background:linear-gradient(135deg,#f39a6d,#efb18e);
}
.ktr-general-profile-card__type,
.ktr-general-profile-card__number{
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:#a75d3c;
  font-size:8px;
  font-weight:900;
}
.ktr-general-profile-card__body{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:0 20px 20px;
}
.ktr-general-profile-card__avatar{
  display:grid;
  width:82px;
  height:82px;
  margin-top:-32px;
  place-items:center;
  overflow:hidden;
  border:5px solid #fff;
  border-radius:50%;
  background:#fff2ea;
  color:#c66e46;
  font-size:25px;
  font-weight:900;
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}
.ktr-general-profile-card__avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.ktr-general-profile-card__label{
  color:#c16c46;
  font-size:8px;
  font-weight:900;
}
.ktr-general-profile-card__identity h1{
  margin:2px 0 5px;
  font-size:22px;
}
.ktr-general-profile-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.ktr-general-profile-card__meta span{
  padding:4px 7px;
  border-radius:999px;
  background:#fff4ee;
  color:#785f52;
  font-size:8px;
}
.ktr-general-profile-card__booking{
  display:grid;
  gap:5px;
  justify-items:end;
}
.ktr-general-profile-card__status{
  color:#40865b;
  font-size:9px;
  font-weight:900;
}
.ktr-general-profile-card__status.is-off{
  color:#9e938d;
}
.ktr-general-profile-card__booking small{
  color:#9a8e87;
  font-size:8px;
}
.ktr-general-profile-info{
  margin-top:12px;
  padding:18px;
  border:1px solid #eadfd8;
  border-radius:16px;
  background:#fff;
}
.ktr-general-profile-info h2{
  margin:0 0 12px;
  font-size:15px;
}
.ktr-general-profile-info__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.ktr-general-profile-info__grid>div{
  padding:10px;
  border:1px solid #f0e6df;
  border-radius:10px;
  background:#fffaf7;
}
.ktr-general-profile-info__grid span{
  display:block;
  margin-bottom:3px;
  color:#9a8d85;
  font-size:7px;
}
.ktr-general-profile-info__grid strong{
  color:#493d36;
  font-size:10px;
}

@media(max-width:760px){
  .ktr-general-members-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ktr-general-profile-card__body{grid-template-columns:auto 1fr;}
  .ktr-general-profile-card__booking{grid-column:1/-1;justify-items:stretch;}
  .ktr-general-profile-info__grid{grid-template-columns:1fr;}
}
@media(max-width:460px){
  .ktr-general-members-grid{grid-template-columns:1fr;}
}


/* =========================================================
   STEP11.5 v1.5.11 — General member card compact refinement
========================================================= */
.ktr-general-members-section{
  padding:14px!important;
}
.ktr-general-members-section__head{
  margin-bottom:9px!important;
}
.ktr-general-members-grid{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:7px!important;
}
.ktr-general-member-mini{
  padding:8px!important;
  border-radius:10px!important;
  min-width:0;
}
.ktr-general-member-mini__top{
  gap:7px!important;
}
.ktr-general-member-mini__avatar{
  flex-basis:30px!important;
  width:30px!important;
  height:30px!important;
  font-size:10px!important;
}
.ktr-general-member-mini h3{
  margin:0!important;
  font-size:9px!important;
  line-height:1.25!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ktr-general-member-mini__type{
  font-size:6px!important;
}
.ktr-general-member-mini__top p{
  font-size:6px!important;
}
.ktr-general-member-mini__company{
  min-height:0!important;
  margin:6px 0!important;
  font-size:7px!important;
  line-height:1.35!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ktr-general-member-mini__actions{
  gap:4px!important;
}
.ktr-general-member-mini__actions .ktr-button{
  min-height:25px!important;
  padding:4px!important;
  border-radius:7px!important;
  font-size:6px!important;
}
.ktr-general-member-mini__off{
  font-size:6px!important;
}
@media(max-width:900px){
  .ktr-general-members-grid{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  .ktr-general-members-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:430px){
  .ktr-general-members-grid{
    grid-template-columns:1fr!important;
  }
}

/* Make the operation guide button easy to find without covering the UI. */
.ktr-onboarding-help-button{
  display:flex!important;
  visibility:visible!important;
  opacity:.96!important;
  z-index:99998!important;
}


/* =========================================================
   STEP12 v1.6.0 — Online Events
========================================================= */
.ktr-events-page{max-width:1040px;margin:0 auto;padding:22px 0 34px}
.ktr-events-hero{padding:22px;border:1px solid #eedfd6;border-radius:18px;background:linear-gradient(135deg,#fffaf6,#fff);box-shadow:0 8px 28px rgba(71,46,30,.04)}
.ktr-events-hero__eyebrow{margin:0 0 6px!important;color:#c86f46;font-size:9px!important;font-weight:900;letter-spacing:.12em}
.ktr-events-hero h1{margin:0;color:#342a25;font-size:26px;line-height:1.35}
.ktr-events-hero p{margin:8px 0 0!important;color:#7c7068;font-size:11px!important;line-height:1.8}
.ktr-events-notice{margin:14px 0;padding:12px 14px;border:1px solid #cfe2d5;border-radius:12px;background:#f3fbf5;color:#39744b;font-size:10px;font-weight:800}
.ktr-events-toolbar{display:grid;grid-template-columns:220px minmax(0,1fr);gap:10px;margin:16px 0}
.ktr-events-toolbar label{display:grid;gap:5px}
.ktr-events-toolbar span{color:#796d65;font-size:8px;font-weight:900}
.ktr-events-toolbar select,.ktr-events-toolbar input{min-height:42px;border:1px solid #eadfd7;border-radius:11px;background:#fff;padding:8px 10px;font-size:10px}
.ktr-events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ktr-event-card{display:grid;gap:12px;padding:16px;border:1px solid #eadfd7;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(70,45,29,.04)}
.ktr-event-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ktr-event-card__category{padding:5px 8px;border-radius:999px;background:#fff1e9;color:#b9623c;font-size:8px;font-weight:900}
.ktr-event-card__capacity{color:#43865a;font-size:8px;font-weight:900}
.ktr-event-card__capacity.is-full{color:#a36b5b}
.ktr-event-card__datetime{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ktr-event-card__datetime strong{font-size:12px;color:#3b312b}
.ktr-event-card__datetime span{font-size:11px;color:#6f625b;font-weight:800}
.ktr-event-card__datetime small{padding:3px 6px;border-radius:999px;background:#f7f3f0;color:#887b73;font-size:7px}
.ktr-event-card h2{margin:0;font-size:16px;line-height:1.45;color:#352c27}
.ktr-event-card__excerpt{margin:0!important;color:#786b64;font-size:9px!important;line-height:1.7}
.ktr-event-card__tags{display:flex;gap:5px;flex-wrap:wrap}
.ktr-event-card__tags span{padding:4px 7px;border-radius:999px;background:#faf5f2;color:#9b745f;font-size:7px;font-weight:800}
.ktr-event-card__meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.ktr-event-card__meta>div{padding:8px;border:1px solid #f0e6e0;border-radius:9px;background:#fffaf7}
.ktr-event-card__meta>div.is-wide{grid-column:1/-1}
.ktr-event-card__meta span{display:block;margin-bottom:2px;color:#9a8c84;font-size:7px}
.ktr-event-card__meta strong{display:block;color:#584b44;font-size:8px;line-height:1.5}
.ktr-event-card__footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:2px}
.ktr-event-card__status span{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f5f2f0;color:#7d7169;font-size:8px;font-weight:900}
.ktr-event-card__status .is-pending{background:#fff5df;color:#a36e20}
.ktr-event-card__status .is-approved{background:#edf8f0;color:#397c50}
.ktr-event-card__status .is-rejected,.ktr-event-card__status .is-cancelled{background:#f7eeee;color:#9f5e5e}
.ktr-event-card__actions form{margin:0}
.ktr-event-card__actions .ktr-button{min-height:34px;padding:7px 12px;font-size:8px!important}
.ktr-event-card__closed{color:#9b8d85;font-size:8px;font-weight:800}
.ktr-events-empty,.ktr-events-result-empty{grid-column:1/-1;padding:24px;border:1px dashed #e8d8ce;border-radius:14px;text-align:center;background:#fffcfa}
.ktr-my-events__list{display:grid;gap:8px}
.ktr-my-event-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid #ede2db;border-radius:11px;background:#fff}
.ktr-my-event-row span{color:#93867e;font-size:8px}
.ktr-my-event-row h3{margin:2px 0 0;font-size:10px}
.ktr-my-event-row>div:last-child{display:flex;align-items:center;gap:8px}
.ktr-my-event-row strong{font-size:8px}
@media(max-width:760px){
  .ktr-events-toolbar{grid-template-columns:1fr}
  .ktr-events-grid{grid-template-columns:1fr}
  .ktr-event-card__footer{align-items:stretch;flex-direction:column}
  .ktr-event-card__actions .ktr-button{width:100%}
  .ktr-my-event-row{align-items:flex-start;flex-direction:column}
  .ktr-my-event-row>div:last-child{width:100%;justify-content:space-between}
}


/* =========================================================
   STEP12 v1.6.2 — Account email / legacy account fixes
========================================================= */

/*
 * General-member profile remains limited to the five PUBLIC profile fields,
 * plus the private account email field used for login/notifications.
 */
.ktr-profile-edit--general .ktr-profile-edit__field--account-email{
  display:block!important;
}

.ktr-profile-edit__field--account-email{
  position:relative;
}

.ktr-profile-edit__field--account-email::after{
  content:"非公開";
  position:absolute;
  top:10px;
  right:10px;
  padding:3px 7px;
  border-radius:999px;
  background:#f5f2f0;
  color:#8a7d75;
  font-size:7px;
  font-weight:800;
}

.ktr-profile-edit__field--account-email input[type="email"]{
  width:100%;
}
