:root {
	--ink: #172033;
	--line: 4px solid #172033;
	--shadow: 0 18px 40px rgba(23, 32, 51, .15);
}

/* Base resets & shared styles */
.cc-container *, 
.cc-bottom-container * {
	box-sizing: border-box;
}

.cc-container a, 
.cc-bottom-container a {
	text-decoration: none;
	color: inherit;
}

/* ==========================================================================
   Top Grid Widget Styles
   ========================================================================== */
.cc-container {
	margin: 0;
	color: var(--ink);
	padding: 2rem 0;
	border-radius: 34px;
	overflow: hidden;
	--default-accent-color: #ffd33d;
}

.cc-container .wrap {
	margin: auto;
}

.cc-container .hero {
	padding: 1rem 0 0.5rem;
}

.cc-container .eyebrow {
	display: inline-flex;
	padding: .45rem .75rem;
	border: 3px solid #172033;
	border-radius: 999px;
	font-weight: 1000;
	text-transform: uppercase;
	letter-spacing: .08em;
	font-size: .78rem;
}

.cc-container h1, 
.cc-container h2 {
	line-height: 1;
	margin: .5rem 0;
	font-weight: 700;
}

.cc-container h1 {
	font-size: clamp(2.8rem, 7vw, 5.8rem);
}

.cc-container p {
	font-weight: 800;
	color: #40506b;
	line-height: 1.45;
}

.cc-container .panel {
	background: #fffdf7;
	border: var(--line);
	border-radius: 34px;
	box-shadow: var(--shadow);
	padding: 1.5rem;
	margin: 1rem 0;
}

.cc-container .grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

.cc-container .card {
	background: #fff4d6;
	border: 3px solid #172033;
	border-radius: 26px;
	padding: 1rem;
	box-shadow: 6px 6px 0 rgba(23, 32, 51, .12);
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	transition: transform 0.2s ease;
}

/* Dashed Box Container for Media/Icon */
.cc-container .thumb-box {
	border: 3px dashed #172033;
	border-radius: 20px;
	background: #ffffff;
	padding: 0.5rem;
	display: grid;
	gap: 0.5rem;
	align-items: center;
	min-height: 170px;
}

.cc-container .thumb-box.slots-1 {
	grid-template-columns: 1fr;
}

.cc-container .thumb-box.slots-2 {
	grid-template-columns: 1fr 1fr;
}

/* Thumb Item Styles */
.cc-container .thumb-item {
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 12px;
	display: grid;
	place-items: center;
	font-size: 3.5rem;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

.cc-container .thumb-item.single-full {
	aspect-ratio: auto;
	height: 150px;
}

.cc-container .thumb-item.icon-only {
	font-size: 4rem;
}

/* Action Box & Buttons */
.cc-container .action-box {
	margin-top: 0;
	padding-top: 0;
}

.cc-container .btn-group {
	display: grid;
	gap: 0.5rem;
	width: 100%;
}

.cc-container .btn-group.btn-count-1 {
	grid-template-columns: 1fr;
}

.cc-container .btn-group.btn-count-2 {
	grid-template-columns: 1fr 1fr;
}

.cc-container .btn {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .6rem .8rem;
	border: 3px solid #172033;
	border-radius: 999px;
	font-weight: 1000;
	box-shadow: 4px 4px 0 rgba(23, 32, 51, .14);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	min-width: unset;
	text-align: center;
	text-decoration: unset !important;
}

.cc-container .btn:hover {
	transform: translateY(-2px);
	box-shadow: 2px 2px 0 rgba(23, 32, 51, .14);
}

.cc-container .btn.default-accent {
	background-color: var(--default-accent-color);
	color: var(--ink);
}

.cc-container .card-body {
	margin-top: 0.2rem;
}

article.card:nth-child(odd):hover {
	transform: rotate(-1.5deg);
}

article.card:nth-child(even):hover {
	transform: rotate(1.5deg);
}

/* ==========================================================================
   Bottom List Widget Styles (UNTOUCHED)
   ========================================================================== */
.cc-bottom-container {
	padding: 1rem 0;
	--default-accent-color: #ffd33d;
}

.cc-bottom-container .wrap {
	margin: auto;
	width: min(1240px, calc(100% - clamp(0px, 4vw, 0px))) !important;
}

.cc-bottom-container .card-horizontal {
	background: #fff4d6;
	border: 3px solid #172033;
	border-radius: 26px;
	padding: 1.5rem 2rem;
	box-shadow: 6px 6px 0 rgba(23, 32, 51, .12);
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 1.5rem;
}

.cc-bottom-container .card-horizontal .card-content {
	flex: 1;
}

.cc-bottom-container h2 {
	line-height: 1;
	margin: .5rem 0;
	font-weight: 700;
}

.cc-bottom-container p {
	font-weight: 800;
	color: #40506b;
	line-height: 1.45;
}

.cc-bottom-container .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .7rem 1.2rem;
	font-size: 1rem;
	border: 3px solid #172033;
	border-radius: 999px;
	font-weight: 1000;
	box-shadow: 5px 5px 0 rgba(23, 32, 51, .14);
	cursor: pointer;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	min-width: 125px;
	text-decoration: unset !important;
}

.cc-bottom-container .btn:hover {
	transform: translateY(-2px);
	box-shadow: 3px 3px 0 rgba(23, 32, 51, .14);
}

.cc-bottom-container .btn.default-accent {
	background-color: var(--default-accent-color);
	color: #172033;
}

.cc-bottom-container .btn-group {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

/* ==========================================================================
   Responsive Rules
   ========================================================================== */
@media(max-width: 840px) {
	.cc-container .grid {
		grid-template-columns: 1fr;
	}

	.cc-bottom-container .card-horizontal {
		flex-direction: column;
		align-items: flex-start;
		gap: 1rem;
		padding: 1rem;
	}
}