
/* =========================================================
   Kosen Talk Ring - Member Portal v1.2.0
   Existing Members / Connections UI Reuse
========================================================= */
.ktr-portal{
	--ktr-p-orange:#e88d5f;
	--ktr-p-orange-deep:#c9683b;
	--ktr-p-peach:#fef1e4;
	--ktr-p-ink:#25231f;
	--ktr-p-muted:#716b64;
	--ktr-p-line:#ece3db;
	--ktr-p-white:#fff;
	--ktr-p-shadow:0 16px 45px rgba(57,43,32,.08);
	max-width:1180px;
	margin:0 auto;
	padding:30px 22px 72px;
	color:var(--ktr-p-ink);
	font-family:inherit;
}
.ktr-portal *{box-sizing:border-box}

.ktr-portal-hero{
	overflow:hidden;
	display:grid;
	grid-template-columns:minmax(0,1.55fr) minmax(300px,.72fr);
	gap:32px;
	padding:52px;
	border:1px solid rgba(232,141,95,.22);
	border-radius:32px;
	background:
		radial-gradient(circle at 85% 8%,rgba(232,141,95,.22),transparent 25%),
		linear-gradient(135deg,#fff 0%,#fffaf5 55%,#fef1e4 100%);
	box-shadow:var(--ktr-p-shadow);
}
.ktr-portal-kicker{
	margin:0 0 10px;
	font-size:11px;
	font-weight:800;
	letter-spacing:.18em;
	color:var(--ktr-p-orange-deep);
}
.ktr-portal-hero__title{
	margin:0;
	font-size:clamp(34px,5vw,58px);
	line-height:1.12;
	letter-spacing:-.035em;
}
.ktr-portal-hero__title span{color:var(--ktr-p-orange-deep)}
.ktr-portal-hero__lead{
	max-width:700px;
	margin:22px 0 0;
	font-size:16px;
	line-height:1.9;
	color:var(--ktr-p-muted);
}
.ktr-portal-hero__actions{
	display:flex;
	gap:10px;
	flex-wrap:wrap;
	margin-top:30px;
}
.ktr-portal-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:50px;
	padding:0 20px;
	border-radius:14px;
	text-decoration:none!important;
	font-weight:800;
	transition:.2s ease;
	white-space:nowrap;
}
.ktr-portal-btn:hover{transform:translateY(-2px)}
.ktr-portal-btn--primary{
	background:var(--ktr-p-orange);
	color:#fff!important;
	box-shadow:0 10px 25px rgba(232,141,95,.24);
}
.ktr-portal-btn--ghost{
	background:#fff;
	color:var(--ktr-p-ink)!important;
	border:1px solid var(--ktr-p-line);
}
.ktr-portal-btn--points{
	background:#25231f;
	color:#fff!important;
	border:1px solid #25231f;
}

.ktr-portal-account{
	padding:24px;
	border-radius:24px;
	background:rgba(255,255,255,.84);
	border:1px solid rgba(255,255,255,.95);
	box-shadow:0 16px 36px rgba(57,43,32,.06);
}
.ktr-portal-account__head{
	display:flex;
	gap:13px;
	align-items:center;
	padding-bottom:18px;
	border-bottom:1px solid var(--ktr-p-line);
}
.ktr-portal-account__avatar{
	display:grid;
	place-items:center;
	width:48px;
	height:48px;
	border-radius:16px;
	background:var(--ktr-p-ink);
	color:#fff;
	font-weight:800;
}
.ktr-portal-account__name{margin:0;font-weight:800;font-size:16px}
.ktr-portal-account__type{margin:3px 0 0;font-size:12px;color:var(--ktr-p-muted)}
.ktr-portal-account__stats{display:grid;gap:14px;margin-top:18px}
.ktr-portal-account__stats>div{display:flex;align-items:end;justify-content:space-between;gap:10px}
.ktr-portal-account__stats span{font-size:12px;color:var(--ktr-p-muted)}
.ktr-portal-account__stats strong{font-size:21px}
.ktr-portal-account__stats small{font-size:11px;margin-left:3px}
.ktr-portal-account__number{
	margin:18px 0 0;
	padding-top:14px;
	border-top:1px solid var(--ktr-p-line);
	font-size:11px;
	color:var(--ktr-p-muted);
	letter-spacing:.1em;
}

.ktr-portal-general-note{
	display:flex;
	gap:14px;
	align-items:flex-start;
	margin:18px 0 0;
	padding:16px 18px;
	border:1px solid #f0dacb;
	border-radius:16px;
	background:#fff9f4;
}
.ktr-portal-general-note>span{
	display:grid;
	place-items:center;
	flex:0 0 26px;
	height:26px;
	border-radius:50%;
	background:var(--ktr-p-orange);
	color:#fff;
	font-weight:800;
}
.ktr-portal-general-note p{
	margin:0;
	font-size:13px;
	line-height:1.7;
	color:var(--ktr-p-muted);
}
.ktr-portal-general-note strong{color:var(--ktr-p-ink)}

/*
 * 既存ページのUIを会員ホームへ埋め込むための調整。
 * 検索フォーム・カード・横スライダー自体の見た目は
 * assets/css/app.css / components.css の既存定義をそのまま使う。
 */
.ktr-portal-existing-block{margin-top:38px}
.ktr-portal-existing-block .ktr-page{
	min-height:0;
	padding:0;
	background:transparent;
}
.ktr-portal-existing-block .ktr-main{
	width:100%;
	max-width:none;
	margin:0;
	padding:0;
}

/* 会員ホーム上部に独自ヒーローがあるため、埋め込み側のヒーローだけ非表示 */
.ktr-portal-existing-block--members .ktr-welcome,
.ktr-portal-existing-block--favorites .ktr-welcome{
	display:none!important;
}

/* 埋め込み時の先頭余白を詰める */
.ktr-portal-existing-block .ktr-main__section:first-child,
.ktr-portal-existing-block .ktr-main__section:first-child > .ktr-main__section:first-of-type{
	margin-top:0;
}

/* お気に入りは登録メンバー一覧の直下に自然につなげる */
.ktr-portal-existing-block--favorites{
	margin-top:44px;
	padding-top:34px;
	border-top:1px solid var(--ktr-p-line);
}

/* connectionsページ由来の不要な大きな上余白を抑える */
.ktr-portal-existing-block--favorites .ktr-main__section{
	margin-top:0;
}

/* STEP11.5指定：connectionsのタイトルは白 */
#connections-page-title.ktr-welcome__title{
	color:#fff!important;
}

.ktr-portal-login{
	max-width:720px;
	margin:40px auto;
	padding:34px;
	border-radius:22px;
	background:#fff7f0;
	border:1px solid #f0dacb;
	text-align:center;
}

@media(max-width:900px){
	.ktr-portal-hero{grid-template-columns:1fr}
}

@media(max-width:640px){
	.ktr-portal{padding:18px 14px 48px}
	.ktr-portal-hero{padding:30px 22px;border-radius:24px}
	.ktr-portal-hero__title{font-size:36px}
	.ktr-portal-hero__actions{
		display:grid;
		grid-template-columns:1fr;
	}
}


/* v1.2.2: seamless directory framing */
.ktr-portal-existing-block--members {
  margin-top: 46px !important;
}
.ktr-portal-existing-block--members .ktr-main__section {
  background: transparent !important;
}
.ktr-portal-existing-block--members .ktr-section-heading,
.ktr-portal-existing-block--members .ktr-main__section-heading {
  margin-bottom: 16px !important;
}


/* =========================================================
   STEP12 v1.6.1 — Membership Event Slider
========================================================= */
.ktr-portal-events{
  margin:22px 0 18px;
  padding-top:16px;
  border-top:1px solid #eadfd8;
}
.ktr-portal-events__heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom:10px;
}
.ktr-portal-events__eyebrow{
  margin:0 0 3px!important;
  color:#d1774e;
  font-size:7px!important;
  font-weight:900;
  letter-spacing:.14em;
}
.ktr-portal-events__heading h2{
  margin:0;
  color:#322a25;
  font-size:15px;
  line-height:1.3;
}
.ktr-portal-events__heading p:not(.ktr-portal-events__eyebrow){
  margin:4px 0 0!important;
  color:#8b7f77;
  font-size:7px!important;
  line-height:1.55;
}
.ktr-portal-events__heading-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}
.ktr-portal-events__all-link{
  color:#c7683f;
  font-size:7px;
  font-weight:900;
  text-decoration:none!important;
  white-space:nowrap;
}
.ktr-portal-events__arrows{
  display:flex;
  gap:4px;
}
.ktr-portal-events__arrows button{
  display:grid;
  width:23px;
  height:23px;
  place-items:center;
  padding:0;
  border:1px solid #eadbd1;
  border-radius:50%;
  background:#fff;
  color:#b86541;
  font-size:13px;
  line-height:1;
  cursor:pointer;
}
.ktr-portal-event-slider{
  display:flex;
  gap:9px;
  overflow-x:auto;
  padding:2px 2px 8px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:#d8c7bc transparent;
}
.ktr-portal-event-slider::-webkit-scrollbar{height:5px}
.ktr-portal-event-slider::-webkit-scrollbar-thumb{background:#d8c7bc;border-radius:999px}
.ktr-portal-event-card{
  flex:0 0 215px;
  scroll-snap-align:start;
  display:grid;
  gap:7px;
  min-width:0;
  padding:10px;
  border:1px solid #eadfd8;
  border-radius:12px;
  background:#fff;
  box-shadow:0 5px 16px rgba(74,49,34,.035);
}
.ktr-portal-event-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
}
.ktr-portal-event-card__category{
  max-width:130px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  padding:3px 6px;
  border-radius:999px;
  background:#fff1e8;
  color:#b9623c;
  font-size:6px;
  font-weight:900;
}
.ktr-portal-event-card__capacity{
  color:#43845a;
  font-size:6px;
  font-weight:900;
  white-space:nowrap;
}
.ktr-portal-event-card__capacity.is-full{color:#a16f62}
.ktr-portal-event-card__datetime{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  color:#625650;
}
.ktr-portal-event-card__datetime strong{font-size:8px}
.ktr-portal-event-card__datetime span{font-size:7px;font-weight:800}
.ktr-portal-event-card__datetime small{
  padding:2px 5px;
  border-radius:999px;
  background:#f7f3f0;
  color:#8a7d75;
  font-size:5px;
}
.ktr-portal-event-card h3{
  margin:0;
  min-height:30px;
  color:#332a25;
  font-size:10px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.ktr-portal-event-card__tags{
  display:flex;
  gap:4px;
  overflow:hidden;
  min-height:16px;
}
.ktr-portal-event-card__tags span{
  flex:0 0 auto;
  padding:3px 5px;
  border-radius:999px;
  background:#faf5f2;
  color:#98705c;
  font-size:5px;
  font-weight:800;
}
.ktr-portal-event-card__info{
  display:grid;
  gap:3px;
  padding:6px 7px;
  border-radius:8px;
  background:#fffaf7;
}
.ktr-portal-event-card__info p{
  display:flex;
  gap:5px;
  margin:0!important;
  min-width:0;
  color:#61554f;
  font-size:6px!important;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ktr-portal-event-card__info span{
  flex:0 0 auto;
  color:#a09289;
  font-size:5px;
}
.ktr-portal-event-card__bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin-top:auto;
}
.ktr-portal-event-card__state span{
  display:inline-flex;
  padding:3px 6px;
  border-radius:999px;
  background:#f4f1ef;
  color:#7f736c;
  font-size:5px;
  font-weight:900;
}
.ktr-portal-event-card__state .is-pending{background:#fff4dd;color:#9e6b24}
.ktr-portal-event-card__state .is-approved{background:#edf8f0;color:#39784e}
.ktr-portal-event-card__state .is-rejected,.ktr-portal-event-card__state .is-cancelled{background:#f7eeee;color:#9b5f5f}
.ktr-portal-event-card__actions form{margin:0}
.ktr-portal-event-card__actions .ktr-button{
  min-height:26px!important;
  padding:4px 7px!important;
  border-radius:7px!important;
  font-size:6px!important;
  white-space:nowrap;
}
.ktr-portal-event-card__waiting{color:#a17333;font-size:6px;font-weight:900}
.ktr-portal-events__empty{
  padding:13px;
  border:1px dashed #e7d8cf;
  border-radius:11px;
  background:#fffaf7;
}
.ktr-portal-events__empty p{margin:0!important;color:#958981;font-size:7px!important}
@media(max-width:760px){
  .ktr-portal-events__heading{align-items:flex-start}
  .ktr-portal-event-card{flex-basis:78vw;max-width:245px}
}
