/* TB Loyalty — frontend styles: program page, Rewards account tab, checkout redeem box. */

/* ── Program page ─────────────────────────────────────────────── */
.tbloy-page { max-width: 860px; margin: 0 auto; font-size: 15px; line-height: 1.7; }
.tbloy-page h2 { margin: 0 0 18px; font-size: 22px; }
.tbloy-page h3 { margin: 22px 0 8px; font-size: 17px; }

/* Hero */
.tbloy-hero { background: linear-gradient(135deg,#1d1d2c 0%,#3a2f55 100%); color:#fff; border-radius:16px; padding:48px 36px; margin-bottom:36px; text-align:center; }
.tbloy-hero__inner { max-width: 580px; margin: 0 auto; }
.tbloy-hero__badge { display:inline-block; background:#ffd479; color:#1d1d2c; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; font-weight:700; padding:4px 14px; border-radius:999px; margin-bottom:14px; }
.tbloy-hero__title { font-size:32px; font-weight:800; margin:0 0 12px; color:#fff; }
.tbloy-hero__sub { color:rgba(255,255,255,.82); margin:0 0 24px; font-size:16px; }
.tbloy-btn { display:inline-block; background:#ffd479; color:#1d1d2c; font-weight:700; padding:12px 28px; border-radius:8px; text-decoration:none; font-size:15px; transition:opacity .15s; }
.tbloy-btn:hover { opacity:.88; color:#1d1d2c; }

/* Section */
.tbloy-section { margin-bottom:40px; }

/* Steps */
.tbloy-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:20px; }
.tbloy-step { border:1px solid #e6e6e6; border-radius:12px; padding:20px; text-align:center; }
.tbloy-step__num { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; background:#1d1d2c; color:#fff; border-radius:50%; font-weight:700; font-size:16px; margin-bottom:10px; }
.tbloy-step h3 { font-size:14px; margin:0 0 8px; }
.tbloy-step p { font-size:13px; color:#555; margin:0; }

/* Benefit cards */
.tbloy-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px; }
.tbloy-bcard { border:1px solid #e6e6e6; border-radius:12px; padding:24px; }
.tbloy-bcard__icon { font-size:26px; margin-bottom:10px; }
.tbloy-bcard h3 { margin:0 0 6px; font-size:16px; }
.tbloy-bcard__highlight { font-size:24px; font-weight:800; color:#1d1d2c; margin:4px 0 10px; }
.tbloy-bcard p:last-child { font-size:13px; color:#555; margin:0; }

/* Detail list */
.tbloy-list { padding-left:20px; }
.tbloy-list li { margin-bottom:8px; }

/* Example box */
.tbloy-example { background:#f7f7fa; border-radius:14px; padding:28px 32px; }
.tbloy-example h2 { margin-top:0; }
.tbloy-example__box { display:flex; align-items:center; gap:20px; justify-content:center; flex-wrap:wrap; margin:20px 0 12px; }
.tbloy-example__col { text-align:center; }
.tbloy-example__label { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:#888; margin-bottom:4px; }
.tbloy-example__val { font-size:24px; font-weight:800; color:#1d1d2c; }
.tbloy-example__arrow { font-size:22px; color:#aaa; }
.tbloy-example__note { font-size:13px; color:#666; text-align:center; margin:0; }

/* FAQ */
.tbloy-faq__list { border-top:1px solid #eee; margin-top:20px; }
.tbloy-faq__item { border-bottom:1px solid #eee; }
.tbloy-faq__item summary { cursor:pointer; padding:14px 6px; font-weight:600; font-size:15px; list-style:none; display:flex; justify-content:space-between; align-items:center; }
.tbloy-faq__item summary::-webkit-details-marker { display:none; }
.tbloy-faq__item summary::after { content:"＋"; font-size:18px; color:#aaa; transition:transform .2s; }
.tbloy-faq__item[open] summary::after { content:"－"; }
.tbloy-faq__item p { padding:0 6px 16px; margin:0; color:#555; font-size:14px; }

/* Bottom CTA */
.tbloy-cta { background:linear-gradient(135deg,#1d1d2c 0%,#3a2f55 100%); color:#fff; border-radius:16px; padding:40px; text-align:center; margin-top:40px; }
.tbloy-cta h2 { color:#fff; margin:0 0 12px; }
.tbloy-cta p { color:rgba(255,255,255,.8); margin:0 0 20px; }

@media (max-width:900px) {
  .tbloy-steps { grid-template-columns:repeat(2,1fr); }
  .tbloy-cards { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:580px) {
  .tbloy-hero { padding:30px 20px; }
  .tbloy-hero__title { font-size:24px; }
  .tbloy-steps, .tbloy-cards { grid-template-columns:1fr; }
  .tbloy-example__box { flex-direction:column; gap:10px; }
  .tbloy-example__arrow { transform:rotate(90deg); }
}

.tbloy-dashboard {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
.tbloy-dashboard .tbloy-history {
	grid-column: 1 / -1;
}
.tbloy-card {
	border: 1px solid #e6e6e6;
	border-radius: 12px;
	padding: 22px 24px;
	background: #fff;
}
.tbloy-status.is-premium {
	background: linear-gradient( 135deg, #1d1d2c 0%, #3a2f55 100% );
	color: #fff;
	border-color: transparent;
}
.tbloy-status.is-premium a { color: #ffd479; }
.tbloy-badge {
	display: inline-block;
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	background: #ffd479;
	color: #1d1d2c;
	padding: 3px 10px;
	border-radius: 999px;
	font-weight: 700;
	margin-bottom: 8px;
}
.tbloy-progress {
	height: 8px;
	background: #ededed;
	border-radius: 999px;
	overflow: hidden;
	margin: 10px 0 6px;
}
.tbloy-progress span {
	display: block;
	height: 100%;
	background: #1d1d2c;
}
.tbloy-progress__label { font-size: 13px; color: #666; margin: 0; }

.tbloy-points__balance {
	font-size: 34px;
	font-weight: 700;
	margin: 6px 0 0;
}
.tbloy-points__balance span { font-size: 15px; font-weight: 400; color: #888; }
.tbloy-points__value { color: #666; margin-top: 0; }
.tbloy-convert { margin-top: 16px; }
.tbloy-convert__row { display: flex; gap: 8px; margin-top: 6px; }
.tbloy-convert__row input { flex: 1; }
.tbloy-points__hint { font-size: 13px; color: #888; margin-top: 12px; }

.tbloy-history__table { width: 100%; border-collapse: collapse; }
.tbloy-history__table th,
.tbloy-history__table td {
	text-align: left;
	padding: 8px 10px;
	border-bottom: 1px solid #eee;
	font-size: 14px;
}
.tbloy-history__table .tbloy-pos { color: #1a8245; font-weight: 600; }
.tbloy-history__table .tbloy-neg { color: #b3261e; font-weight: 600; }

/* Checkout redeem box. */
.tbloy-redeem {
	border: 1px dashed #cfcfcf;
	border-radius: 10px;
	padding: 14px 16px;
	margin-bottom: 18px;
}
.tbloy-redeem h4 { margin: 0 0 6px; }
.tbloy-redeem__row { display: flex; gap: 8px; margin: 8px 0; }
.tbloy-redeem__row input { flex: 1; }
.tbloy-redeem__hint { font-size: 12px; color: #888; margin: 0; }

@media ( max-width: 768px ) {
	.tbloy-dashboard { grid-template-columns: 1fr; }
}
