.gtc-card{background:#fff;border:1px solid #e6e6e6;border-radius:12px;padding:24px;margin:0 0 20px;box-shadow:0 2px 8px rgba(0,0,0,.05)}
.gtc-card h2{margin-top:0}
.gtc-info{border-left:4px solid #2563eb}
.gtc-success{border-left:4px solid #16a34a;background:#f0fdf4}
.gtc-error{border-left:4px solid #dc2626;background:#fef2f2}
.gtc-btn{display:inline-block;background:#d4af37;color:#1a1a1a;font-weight:600;padding:12px 22px;border:0;border-radius:8px;text-decoration:none;cursor:pointer}
.gtc-btn:hover{background:#c39f2f}
.gtc-form{display:flex;flex-direction:column;gap:10px;max-width:520px}
.gtc-form label{font-weight:600}
.gtc-form input[type=text],.gtc-form textarea,.gtc-form input[type=file]{padding:10px;border:1px solid #cbd5e1;border-radius:8px;font-size:15px}
.gtc-checks{display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:8px}
.gtc-check{font-weight:400;display:flex;align-items:center;gap:6px}
.gtc-dashboard .gtc-stats{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.gtc-stat{flex:1;min-width:120px;background:#faf7ec;border-radius:10px;padding:16px;text-align:center}
.gtc-num{display:block;font-size:32px;font-weight:700;color:#b8860b}
.gtc-lbl{display:block;font-size:13px;color:#555}
.gtc-bar{height:12px;background:#eee;border-radius:6px;overflow:hidden}
.gtc-bar span{display:block;height:100%;background:#d4af37}
.gtc-week{color:#666;font-size:13px;margin-bottom:0}
.gtc-btn-alt{background:transparent;border:1.5px solid #d4af37;color:#b8860b}
.gtc-btn-alt:hover{background:#faf7ec}
.gtc-req{color:#dc2626;font-weight:700}
.gtc-optional{color:#5b6472;font-size:13px;margin:0 0 4px}
.gtc-form hr{border:0;border-top:1px solid #e6e6e6;width:100%;margin:6px 0}
/* Winner board styles - full bleed red background */
#winners {
	padding: 0 !important;
	margin: 0 !important;
	background: #B40003 !important;
}

/* Winners container - match scan-ticket hero full-bleed approach */
.gt-winners {
	box-sizing: border-box;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
	min-height: calc(100vh - 184.48px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #B40003;
	color: #fff;
	gap: 0;
	padding: 60px 40px;
}

/* Hide winners section when no weeks visible */
.gt-winners.gt-winners-hidden {
	display: none;
}

/* Hide the entire winners Elementor section when winners are hidden */
#winners:has(.gt-winners-hidden) {
	display: none !important;
}

.gt-winners .gt-week-section {
	position: relative;
	padding: 50px 40px 70px;
	margin-bottom: 0;
	/* Everything inside aligns to one centered content column */
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.gt-winners .gt-week-section:last-child {
	margin-bottom: 0;
}

/* Title and trophy container - title left, trophy right, close together.
   The sparkle graphic is drawn by a ::before pseudo-element that is larger
   than the content box and overflows freely, so it is never clipped by the
   content padding. */
.gt-winners .gt-week-title-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-bottom: 50px;
	position: relative;
	z-index: 2;
	padding: 10px 0;
}

/* Sparkle burst graphic - sits behind the title + trophy and overflows the
   row on both sides and below without clipping. */
.gt-winners .gt-week-title-row::before {
	content: '';
	position: absolute;
	left: 50%;
	top: 30px;
	transform: translateX(-50%);
	width: 900px;
	max-width: 150%;
	height: 220px;
	background-image: url('https://media-stargoldenticket.thestar.com.my/wp-content/uploads/2026/10/02155103/spakling-bg.png');
	background-size: 100% 100%;
	background-position: center;
	background-repeat: no-repeat;
	z-index: -1;
	pointer-events: none;
}

.gt-winners .gt-week-title {
	font-family: "Squada One", Sans-serif;
	font-size: 60px;
	font-weight: 400;
	color: #FFFFFF;
	text-align: left;
	margin: 0;
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1.05;
	flex: 0 0 auto;
}

.gt-winners .gt-trophy-image {
	width: 170px;
	height: auto;
	flex-shrink: 0;
	margin: -30px 0 0 -40px;
}

.gt-winners .gt-trophy-image img {
	max-width: 100%;
	height: auto;
	display: block;
}

/* Content column - left-aligned to match title's left edge */
.gt-winners .gt-grand-prizes,
.gt-winners .gt-consolation-prizes {
	position: relative;
	z-index: 2;
	text-align: left;
}

.gt-winners .gt-prize-section {
	position: relative;
	z-index: 2;
}

.gt-winners .gt-prize-badge {
	display: inline-block;
	background: #fff;
	color: #B40003;
	padding: 12px 44px;
	border-radius: 30px;
	font-weight: 900;
	font-size: 18px;
	margin-bottom: 24px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

/* Grand Prize - 2 columns (left-aligned) */
.gt-winners .gt-grand-prizes {
	margin-bottom: 40px;
}

.gt-winners .gt-winner-names {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 32px;
	font-size: 20px;
	font-weight: 400;
	color: #fff;
	margin: 0;
	padding-left: 24px;
}

.gt-winners .gt-winner-card {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.gt-winners .gt-winner-number {
	font-weight: 700;
	color: #fff;
	min-width: 20px;
	flex-shrink: 0;
}

.gt-winners .gt-winner-info {
	flex: 1;
}

.gt-winners .gt-winner-name {
	display: block;
	font-weight: 600;
	line-height: 1.4;
	color: #fff;
	margin: 0;
	text-align: left;
}

.gt-winners .gt-winner-ic {
	display: block;
	font-size: 16px;
	color: #e8e8e8;
	line-height: 1.4;
	margin-top: 4px;
	text-align: left;
}

/* Consolation Prize - 2 column grid (left-aligned) */
.gt-winners .gt-consolation-prizes {
	margin-bottom: 0;
}

.gt-winners .gt-winner-names-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 32px;
	font-size: 20px;
	font-weight: 400;
	color: #fff;
	margin: 0;
	padding-left: 24px;
}

.gt-winners .gt-pending {
	text-align: center;
	color: #f0f0f0;
	padding: 24px;
	font-size: 18px;
	font-weight: 500;
	margin: 0;
}

/* "View Previous Week's Winners" button */
.gt-winners-button-row {
	text-align: center;
	padding: 40px 0 20px 0;
	margin-top: 30px;
}

.gt-view-previous-btn {
	display: inline-block;
	background: #FFD200;
	color: #000;
	padding: 14px 36px;
	border-radius: 50px;
	font-weight: 800;
	font-size: 16px;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 1px;
	transition: background-color 0.3s ease;
	cursor: pointer;
	border: none;
}

.gt-view-previous-btn:hover {
	background: #FFC700;
	text-decoration: none;
	color: #000;
}

/* Previous Winners Page Styles - full-bleed hero matching scan-ticket */
.gt-previous-winners {
	box-sizing: border-box;
	width: 100vw;
	max-width: 100vw;
	border-radius: 0;
	min-height: calc(100vh - 224.48px);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: #B40003;
	color: #fff;
	padding: 60px 40px;
	overflow: hidden;
}

.gt-prev-week-title {
	font-family: "Squada One", Sans-serif;
	font-size: 60px;
	font-weight: 400;
	color: #fff;
	text-align: center;
	margin: 50px 0 30px;
	text-transform: uppercase;
	letter-spacing: 2px;
	max-width: 900px;
	width: 100%;
	padding: 0 40px;
	box-sizing: border-box;
}

.gt-previous-winners .gt-grand-prizes {
	margin-bottom: 40px;
	max-width: 900px;
	width: 100%;
	padding: 0 40px;
	box-sizing: border-box;
}

.gt-previous-winners .gt-consolation-prizes {
	margin-bottom: 50px;
	max-width: 900px;
	width: 100%;
	padding: 0 40px;
	box-sizing: border-box;
}

.gt-previous-winners .gt-prize-badge {
	display: inline-block;
	background: #fff;
	color: #B40003;
	padding: 12px 44px;
	border-radius: 30px;
	font-weight: 900;
	font-size: 18px;
	margin-bottom: 24px;
	text-transform: uppercase;
	letter-spacing: 1px;
}

.gt-previous-winners .gt-winner-names {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 32px;
	font-size: 20px;
	font-weight: 400;
	color: #fff;
	margin: 0;
	padding-left: 24px;
}

.gt-previous-winners .gt-winner-name {
	display: block;
	line-height: 1.5;
	text-align: left;
}

.gt-previous-winners .gt-winner-card {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}

.gt-previous-winners .gt-winner-number {
	font-weight: 700;
	color: #fff;
	min-width: 20px;
	flex-shrink: 0;
}

.gt-previous-winners .gt-winner-info {
	flex: 1;
}

.gt-previous-winners .gt-winner-ic {
	display: block;
	font-size: 16px;
	color: #e8e8e8;
	line-height: 1.4;
	margin-top: 4px;
	text-align: left;
}

.gt-previous-winners .gt-winner-names-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 32px;
	font-size: 20px;
	font-weight: 400;
	color: #fff;
	margin: 0;
	padding-left: 24px;
}

.gt-previous-winners .gt-pending {
	text-align: center;
	color: #f0f0f0;
	font-size: 24px;
	font-weight: 500;
	line-height: 1.4;
	max-width: 800px;
	margin: 0 auto;
	padding: 60px 40px;
}

/* Hero-style pending message for consistency with scan-ticket flow */

/* Responsive design */
@media (max-width: 768px) {
	.gt-winners-button-row {
		padding: 30px 0 16px 0;
	}

	.gt-view-previous-btn {
		font-size: 14px;
		padding: 12px 28px;
	}

	.gt-prev-week-title {
		font-size: 28px;
		margin: 35px 0 24px;
		padding: 0 24px;
	}

	.gt-previous-winners .gt-winner-names,
	.gt-previous-winners .gt-winner-names-grid {
		font-size: 17px;
		gap: 10px 24px;
		padding-left: 0;
	}

	.gt-previous-winners .gt-prize-badge {
		font-size: 15px;
		padding: 10px 32px;
	}
}/* Responsive design */
@media (max-width: 1024px) {
	.gt-winners .gt-week-title-row {
		gap: 12px;
		margin-bottom: 40px;
	}

	.gt-winners .gt-week-title-row::before {
		width: 760px;
		height: 190px;
		top: 24px;
	}

	.gt-winners .gt-week-title {
		font-size: 48px;
	}

	.gt-winners .gt-trophy-image {
		width: 140px;
	}
}

@media (max-width: 768px) {
	.gt-winners {
		padding: 40px 24px;
	}

	.gt-winners .gt-week-section {
		padding: 35px 24px 50px;
	}

	.gt-winners .gt-week-title-row {
		flex-direction: column;
		gap: 15px;
		margin-bottom: 30px;
		padding: 10px 0;
	}

	.gt-winners .gt-week-title-row::before {
		width: 100%;
		max-width: 100%;
		height: 100%;
		top: 0;
	}

	.gt-winners .gt-week-title {
		font-size: 36px;
		text-align: center;
	}

	.gt-winners .gt-trophy-image {
		width: 120px;
	}

	.gt-winners .gt-winner-names,
	.gt-winners .gt-winner-names-grid {
		font-size: 17px;
		gap: 10px 24px;
		padding-left: 0;
	}

	.gt-winners .gt-prize-badge {
		font-size: 15px;
		padding: 10px 32px;
	}
}

@media (max-width: 480px) {
	.gt-winners {
		padding: 30px 16px;
	}

	.gt-winners .gt-week-section {
		padding: 25px 16px 40px;
	}

	.gt-winners .gt-week-title {
		font-size: 28px;
	}

	.gt-winners .gt-trophy-image {
		width: 100px;
	}

	.gt-winners .gt-prize-badge {
		font-size: 14px;
		padding: 8px 28px;
		margin-bottom: 18px;
	}

	.gt-winners .gt-winner-names,
	.gt-winners .gt-winner-names-grid {
		font-size: 15px;
		gap: 8px 16px;
	}

	.gt-winners .gt-grand-prizes {
		margin-bottom: 30px;
	}
}

/* Legacy table styles (for backwards compat) */
.gt-winners table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	margin-bottom: 20px;
}

.gt-winners th,
.gt-winners td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid #eee;
}

.gt-winners th {
	background: #faf7ec;
	color: #b8860b;
}

/* Header stats badge ([gt_header_stats]) */
.gt-header-stats{display:inline-block;background:#c8102e;color:#fff;border-radius:10px;padding:8px 18px;text-align:center;line-height:1.3;font-family:inherit}
.gt-header-stats .gt-hs-title{font-weight:700;font-size:14px;margin-bottom:2px}
.gt-header-stats .gt-hs-row{display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px}
.gt-header-stats .gt-hs-sep{opacity:.6}
.gt-header-stats .gt-hs-label{font-weight:600}
.gt-header-stats .gt-hs-value{font-weight:700}

/* Full-height, edge-to-edge scan heroes.
   Every scan-flow state uses one of these three containers. We make them break
   out of the theme's centred content column (full-bleed via 50vw margins) and
   fill the viewport height, vertically centring their contents. Header/footer
   are left untouched. */
.gt-hero,
.gt-found-hero,
.gt-expired-hero{
	box-sizing:border-box;
	width:100vw;
	max-width:100vw;
	margin-left:calc(50% - 50vw);
	margin-right:calc(50% - 50vw);
	border-radius:0;
	/* Fill the space between the header (109.48px) and footer (75px). */
	min-height:calc(100vh - 184.48px);
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
}

/* Expired ticket hero ([golden_ticket_scan] -> expired state) */
.gt-expired-hero{background:linear-gradient(180deg,#8f0f1e 0%,#c8102e 60%,#a50f22 100%);color:#fff;text-align:center;padding:80px 20px}
.gt-expired-hero .gt-expired-sorry{display:block;font-family:Georgia,"Times New Roman",serif;font-style:italic;font-size:44px;line-height:1;margin-bottom:14px}
.gt-expired-hero .gt-expired-title{font-size:38px;font-weight:800;line-height:1.2;margin:0 0 28px;color:#fff}
.gt-expired-hero .gt-expired-word{color:#ffd200}
.gt-expired-hero .gt-expired-sub{font-size:26px;font-weight:700;margin:0;color:#fff}
@media(max-width:600px){
  .gt-expired-hero{padding:56px 16px}
  .gt-expired-hero .gt-expired-sorry{font-size:34px}
  .gt-expired-hero .gt-expired-title{font-size:26px}
  .gt-expired-hero .gt-expired-sub{font-size:20px}
}

/* "You found a ticket" hero (valid token, not logged in) */
.gt-found-hero{background:linear-gradient(180deg,#8f0f1e 0%,#c8102e 60%,#a50f22 100%);color:#fff;text-align:center;padding:64px 20px}
.gt-found-hero .gt-found-title{font-size:34px;font-weight:800;line-height:1.2;margin:0 0 10px;color:#fff}
.gt-found-hero .gt-found-points{font-size:30px;font-weight:800;line-height:1.2;margin:0 0 28px;color:#fff}
.gt-found-hero .gt-accent{color:#ffd200}
/* Gold pill button — works for both <a> (found hero) and <button> (upload).
   !important beats theme/Elementor default button backgrounds. */
.gt-found-btn{display:inline-block;background:#ffd200 !important;color:#1a1a1a !important;font-weight:800;font-size:16px;line-height:1.2;padding:14px 32px;border:0;border-radius:40px;text-decoration:none;cursor:pointer}
.gt-found-btn:hover,.gt-found-btn:focus{background:#f5c800 !important;color:#1a1a1a !important}
@media(max-width:600px){
  .gt-found-hero{padding:48px 16px}
  .gt-found-hero .gt-found-title{font-size:24px}
  .gt-found-hero .gt-found-points{font-size:22px}
  .gt-found-hero .gt-found-btn{font-size:15px;padding:12px 24px}
}

/* Shared red hero for all scan-flow states (consistent with found/expired) */
.gt-hero{background:linear-gradient(180deg,#8f0f1e 0%,#c8102e 60%,#a50f22 100%);color:#fff;text-align:center;padding:64px 20px}
.gt-hero .gt-hero-title{font-size:34px;font-weight:800;line-height:1.2;margin:0 0 10px;color:#fff}
.gt-hero .gt-hero-points{font-size:26px;font-weight:800;line-height:1.3;margin:0 0 24px;color:#fff}
.gt-hero .gt-hero-sub{font-size:20px;font-weight:600;line-height:1.4;margin:0 0 28px;color:#fff}
.gt-hero .gt-accent{color:#ffd200}

/* Upload form on the red hero — "Next Steps" bordered box */
.gt-upload-hero .gt-upload-form{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:620px;margin:0 auto}
.gt-upload-hero .gt-steps-box{position:relative;width:100%;border:2px solid #ffd200;border-radius:16px;padding:22px 26px 40px;text-align:left;margin-bottom:8px}
.gt-upload-hero .gt-steps-title{font-weight:800;font-size:17px;margin:0 0 8px;color:#fff}
.gt-upload-hero .gt-steps-list{margin:0;padding-left:22px;color:#fff;font-size:15px;line-height:1.6}
.gt-upload-hero .gt-steps-list li{margin-bottom:6px}
/* "Upload My Ticket Now" sits centred on the bottom border of the box */
.gt-upload-hero .gt-upload-trigger{position:absolute;left:50%;bottom:0;transform:translate(-50%,50%);white-space:nowrap;margin:0}
.gt-upload-hero .gtc-upload-error{color:#ffe08a;font-weight:600;margin:16px 0 0;text-align:center}

/* First submission success message — white text for the entire heading */
.gt-hero-title.gt-first-submission,
.gt-hero-title.gt-first-submission .gt-accent{color:#fff !important}

/* Successful-submission confirmation hero ([golden_ticket_success]) */
.gt-success-hero .gt-hero-sub{margin:0 0 32px}

@media(max-width:600px){
  .gt-hero{padding:48px 16px}
  .gt-hero .gt-hero-title{font-size:24px}
  .gt-hero .gt-hero-points{font-size:20px}
  .gt-hero .gt-hero-sub{font-size:16px}
  /* Reduce padding on small screens; keep the header+footer offset. */
  .gt-hero,
  .gt-found-hero,
  .gt-expired-hero{min-height:calc(100vh - 185.39px)}
}
