.chub-courses__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.chub-course-card {
	background: #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(46, 34, 0, 0.12);
	transition: transform .25s ease, box-shadow .25s ease;
	display: flex;
	flex-direction: column;
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
}
.chub-course-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(46, 34, 0, 0.18); }
.chub-course-card__banner { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #2E2200; }
.chub-course-card__banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chub-course-card__badge {
	position: absolute; top: 12px; right: 12px;
	padding: 6px 14px; border-radius: 50px;
	font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
	color: #fff;
	background: #2E2200;
}
.chub-course-card__badge--upcoming { background: #DEAB1A; color: #2E2200; }
.chub-course-card__badge--ongoing { background: #2E7D32; }
.chub-course-card__badge--closed { background: #9a9a9a; }

.chub-course-card__body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.chub-course-card__date { display: inline-block; font-size: 12.5px; font-weight: 600; color: #DEAB1A; margin-bottom: 8px; }
.chub-course-card__body h3 { font-size: 19px; color: #2E2200; margin: 0 0 8px; }
.chub-course-card__body p { font-size: 14px; flex: 1; color: #6B6152; margin: 0 0 12px; }
.chub-course-card__meta { display: flex; gap: 12px; font-size: 13px; font-weight: 600; color: #2A2416; margin-bottom: 10px; }

.chub-btn-small {
	display: inline-block;
	text-align: center;
	padding: 10px 20px;
	border-radius: 50px;
	font-size: 13px;
	font-weight: 600;
	background: #DEAB1A;
	color: #2E2200;
	text-decoration: none;
	margin-top: 10px;
}
.chub-btn-small:hover { background: #F2C94C; }
.chub-btn-small--outline {
	background: transparent;
	border: 1.5px solid #DEAB1A;
	color: #2E2200;
	margin-top: auto;
}
.chub-btn-small--outline:hover { background: #FBF3DF; }

.chub-empty-state {
	grid-column: 1 / -1;
	text-align: center;
	padding: 40px;
	background: #FFFFFF;
	border-radius: 16px;
	color: #6B6152;
}

@media (max-width: 780px) {
	.chub-courses__grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   HERO SECTION WIDGET
   ========================================================================== */
.chub-hero-widget {
	display: grid;
	grid-template-columns: 1.3fr .7fr;
	align-items: center;
	gap: clamp(30px, 4vw, 60px);
	padding: clamp(50px, 7vw, 130px) clamp(20px, 4vw, 70px);
	background: radial-gradient(circle at 80% 20%, #3D3005 0%, #2E2200 55%);
	border-radius: 20px;
	color: #FFFFFF;
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
	max-width: 1800px;
	margin: 0 auto;
}
.chub-hero-widget .chub-eyebrow { display: inline-block; font-size: clamp(12px, .8vw, 14px); font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #DEAB1A; margin-bottom: 12px; }
.chub-hero-widget h1 { font-size: clamp(28px, 3.2vw, 58px); color: #fff; margin: 0 0 16px; line-height: 1.2; }
.chub-hero-widget p { font-size: clamp(15px, 1.1vw, 19px); color: rgba(255,255,255,.8); max-width: 560px; margin: 0 0 28px; }
.chub-btn-primary {
	display: inline-block;
	padding: clamp(12px, 1vw, 17px) clamp(24px, 2vw, 36px);
	border-radius: 50px;
	background: #DEAB1A;
	color: #2E2200;
	font-weight: 700;
	font-size: clamp(14px, .9vw, 16px);
	text-decoration: none;
	box-shadow: 0 8px 20px rgba(222,171,26,.35);
}
.chub-btn-primary:hover { background: #F2C94C; }
.chub-hero-widget__logo { display: flex; justify-content: center; }
.chub-hero-widget__logo img { width: clamp(180px, 16vw, 360px); height: clamp(180px, 16vw, 360px); box-shadow: 0 20px 50px rgba(0,0,0,.3); object-fit: cover; }
.chub-hero-widget__logo--circle img { border-radius: 50%; }
.chub-hero-widget__logo--rounded img { border-radius: 20px; }
.chub-hero-widget__logo--square img { border-radius: 0; }

@media (max-width: 900px) {
	.chub-hero-widget { grid-template-columns: 1fr; text-align: center; padding: 50px 20px; }
	.chub-hero-widget p { margin-left: auto; margin-right: auto; }
}

/* Safety net: on large monitors, Elementor's Container defaults to a
 * "Boxed" max-width (usually ~1140-1200px) regardless of screen size,
 * which is what caused Hero/About to look "laptop-sized" on big monitors.
 * This forces those specific containers to go full width automatically.
 * (The cleaner fix is setting Content Width: Full Width on the container
 * directly in Elementor — see the guide — this is just a fallback.) */
.e-con:has(> .elementor-widget-chub_hero_section),
.e-con:has(> .elementor-widget-chub_about_section) {
	max-width: 100% !important;
	width: 100% !important;
}

/* ==========================================================================
   ABOUT SECTION WIDGET
   ========================================================================== */
.chub-about-widget {
	max-width: min(900px, 65vw);
	margin: 0 auto;
	text-align: center;
	padding: clamp(20px, 3vw, 50px);
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
}
.chub-about-widget h2 { font-size: clamp(24px, 2.6vw, 42px); color: #2E2200; margin: 0 0 16px; }
.chub-about-widget p { font-size: clamp(15px, 1.1vw, 19px); color: #6B6152; line-height: 1.7; }

@media (max-width: 900px) {
	.chub-about-widget { max-width: 92vw; }
}

/* ==========================================================================
   AUTO-GENERATED COURSE BANNER FALLBACK (used when no image is uploaded)
   ========================================================================== */
.chub-course-card__banner--auto {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #2E2200 0%, #DEAB1A 100%);
	height: 100%;
	width: 100%;
}
.chub-course-card__banner--auto span {
	font-size: 42px;
	font-weight: 800;
	color: rgba(255,255,255,.9);
	font-family: 'Poppins', sans-serif;
}

/* ==========================================================================
   SLIDE-IN TRANSITION (used by Resources + Videos load-more items)
   ========================================================================== */
.chub-slide-in {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity .5s ease, transform .5s ease;
}
.chub-slide-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* ==========================================================================
   RESOURCES ARCHIVE (PDF / Article)
   ========================================================================== */
.chub-resources__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.chub-resource-card {
	background: #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(46, 34, 0, 0.12);
	display: flex;
	flex-direction: column;
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
	transition: transform .25s ease, box-shadow .25s ease, opacity .5s ease, transform .5s ease;
}
.chub-resource-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(46, 34, 0, 0.18); }
.chub-resource-card__thumb { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #FBF3DF; }
.chub-resource-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chub-resource-card__thumb--auto { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #DEAB1A; background: #FBF3DF; }
.chub-resource-card__badge {
	position: absolute; top: 12px; right: 12px;
	padding: 6px 14px; border-radius: 50px;
	font-size: 11px; font-weight: 700; letter-spacing: .5px;
	color: #fff; background: #2E2200;
}
.chub-resource-card__body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.chub-resource-card__body h3 { font-size: 18px; color: #2E2200; margin: 0 0 8px; }
.chub-resource-card__body p { font-size: 14px; color: #6B6152; flex: 1; margin: 0 0 14px; }

/* ==========================================================================
   YOUTUBE VIDEOS
   ========================================================================== */
.chub-videos__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.chub-video-card {
	background: #FFFFFF;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 30px rgba(46, 34, 0, 0.12);
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
	transition: transform .25s ease, box-shadow .25s ease, opacity .5s ease, transform .5s ease;
}
.chub-video-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(46, 34, 0, 0.18); }
.chub-video-card__thumb { position: relative; aspect-ratio: 16/9; background: #2E2200; cursor: pointer; overflow: hidden; }
.chub-video-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chub-video-card__thumb iframe { width: 100%; height: 100%; border: 0; display: block; }
.chub-video-card__play {
	position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
	width: 60px; height: 60px; border-radius: 50%;
	background: rgba(222,171,26,.92);
	display: flex; align-items: center; justify-content: center;
	color: #2E2200;
	transition: transform .2s ease, background .2s ease;
}
.chub-video-card__thumb:hover .chub-video-card__play { transform: translate(-50%, -50%) scale(1.1); background: #DEAB1A; }
.chub-video-card__body { padding: 18px 20px; }
.chub-video-card__body h3 { font-size: 16px; color: #2E2200; margin: 0; }

/* ==========================================================================
   LOAD MORE BUTTON
   ========================================================================== */
.chub-load-more-wrap { text-align: center; margin-top: 36px; }
.chub-load-more-btn {
	padding: 14px 34px;
	border-radius: 50px;
	border: 2px solid #DEAB1A;
	background: transparent;
	color: #2E2200;
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	font-family: 'Poppins', sans-serif;
	transition: background .2s ease, color .2s ease;
}
.chub-load-more-btn:hover { background: #DEAB1A; }
.chub-load-more-btn:disabled { opacity: .6; cursor: default; }

@media (max-width: 780px) {
	.chub-resources__grid, .chub-videos__grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   CLIENTS AREA — auto-scrolling marquee, alternating direction per row
   ========================================================================== */
.chub-clients-wrap { display: flex; flex-direction: column; gap: 34px; }
.chub-clients-row__label {
	font-size: 13px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
	color: #DEAB1A; margin: 0 0 14px; font-family: 'Poppins', sans-serif;
}
.chub-marquee { overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.chub-marquee__track {
	display: flex;
	align-items: center;
	gap: 50px;
	width: max-content;
	animation-name: chub-marquee-scroll;
	animation-timing-function: linear;
	animation-iteration-count: infinite;
}
.chub-marquee--rtl .chub-marquee__track { animation-direction: reverse; }
@keyframes chub-marquee-scroll {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
.chub-marquee__logo { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.chub-marquee__logo img { height: 100%; width: auto; object-fit: contain; filter: grayscale(40%); opacity: .85; transition: filter .2s, opacity .2s; }
.chub-marquee__logo:hover img { filter: grayscale(0%); opacity: 1; }
.chub-marquee__logo span { font-weight: 700; color: #6B6152; font-family: 'Poppins', sans-serif; white-space: nowrap; }

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.chub-testimonials__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.chub-testimonial-card {
	background: #FFFFFF;
	border-radius: 16px;
	padding: 26px;
	box-shadow: 0 10px 30px rgba(46, 34, 0, 0.12);
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
	transition: transform .25s ease, box-shadow .25s ease, opacity .5s ease, transform .5s ease;
}
.chub-testimonial-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(46, 34, 0, 0.18); }
.chub-testimonial-card__quote svg { color: #DEAB1A; margin-bottom: 10px; }
.chub-testimonial-card__quote p { font-size: 15px; color: #2A2416; line-height: 1.7; margin: 0 0 20px; font-style: italic; }
.chub-testimonial-card__video { border-radius: 12px; margin-bottom: 18px; aspect-ratio: 16/9; }
.chub-testimonial-card__person { display: flex; align-items: center; gap: 12px; }
.chub-testimonial-card__photo { width: 46px; height: 46px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.chub-testimonial-card__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.chub-testimonial-card__person strong { display: block; font-size: 14.5px; color: #2E2200; }
.chub-testimonial-card__person span { display: block; font-size: 12.5px; color: #6B6152; }

@media (max-width: 780px) {
	.chub-testimonials__grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   PHOTO GALLERY + LIGHTBOX
   ========================================================================== */
.chub-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.chub-gallery__item { border-radius: 12px; overflow: hidden; aspect-ratio: 1/1; cursor: pointer; }
.chub-gallery__thumb { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.chub-gallery__item:hover .chub-gallery__thumb { transform: scale(1.08); }

.chub-lightbox {
	display: none;
	position: fixed; inset: 0;
	background: rgba(46, 34, 0, .92);
	z-index: 9999;
	align-items: center;
	justify-content: center;
	padding: 40px;
}
.chub-lightbox.is-open { display: flex; }
.chub-lightbox img { max-width: 90vw; max-height: 85vh; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.chub-lightbox__close {
	position: absolute; top: 24px; right: 30px;
	background: none; border: none; color: #fff;
	font-size: 40px; line-height: 1; cursor: pointer;
}

@media (max-width: 780px) {
	.chub-gallery__grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ==========================================================================
   SECTION TITLES (used by every Change Hub widget)
   ========================================================================== */
.chub-section-title {
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
	font-size: clamp(24px, 3.5vw, 34px);
	color: #2E2200;
	text-align: center;
	margin: 0 0 32px;
	position: relative;
	padding-bottom: 14px;
}
.chub-section-title::after {
	content: "";
	position: absolute;
	bottom: 0; left: 50%;
	transform: translateX(-50%);
	width: 60px; height: 4px;
	background: #DEAB1A;
	border-radius: 4px;
}

/* ==========================================================================
   CLOSED COURSE STATE
   ========================================================================== */
.chub-course-card--closed { opacity: .8; }
.chub-course-card--closed .chub-course-card__banner { filter: grayscale(60%); }
.chub-btn-small--disabled {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 50px;
	font-size: 13px;
	font-weight: 600;
	background: #E5DFC9;
	color: #8a8270;
	text-align: center;
	margin-top: auto;
	cursor: not-allowed;
}
.chub-course-card__closed-note {
	font-size: 12.5px;
	color: #C0392B;
	margin: 8px 0 0;
	font-style: italic;
}
.chub-btn-small--outline {
	background: transparent;
	border: 2px solid #DEAB1A;
	color: #2E2200;
}
.chub-btn-small--outline:hover { background: #DEAB1A; }

/* ==========================================================================
   KNOWLEDGE BASE GRID (reuses Resources card styling)
   ========================================================================== */
.chub-knowledge__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
.chub-knowledge__grid .chub-resource-card__body h3 a { color: inherit; text-decoration: none; }
.chub-knowledge__grid .chub-resource-card__body h3 a:hover { color: #DEAB1A; }

@media (max-width: 780px) {
	.chub-knowledge__grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   IMPORTANT NOTICE
   ========================================================================== */
.chub-notices-list { display: flex; flex-direction: column; gap: 16px; max-width: 780px; margin: 0 auto; }
.chub-notice-item {
	display: flex;
	gap: 16px;
	background: #FFFFFF;
	border-radius: 12px;
	padding: 18px 20px;
	box-shadow: 0 6px 20px rgba(46, 34, 0, 0.08);
	border-left: 5px solid #DEAB1A;
	font-family: 'Poppins', 'Hind Siliguri', sans-serif;
}
.chub-notice-item--urgent { border-left-color: #C0392B; background: #FDF3F1; }
.chub-notice-item__icon { color: #DEAB1A; flex-shrink: 0; margin-top: 2px; }
.chub-notice-item--urgent .chub-notice-item__icon { color: #C0392B; }
.chub-notice-item__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.chub-notice-item__head h3 { font-size: 16px; color: #2E2200; margin: 0; }
.chub-notice-item__date { font-size: 12px; color: #8a8270; white-space: nowrap; }
.chub-notice-item__content { font-size: 14px; color: #6B6152; margin-top: 6px; line-height: 1.6; }
.chub-notice-item__content p { margin: 0; color: inherit; }
