/*
 * videos.css — Videos archive page styles (/videos/)
 * Generated by Claude Code Phase 2B — Developer review required
 *
 * Compiled from (SCSS → CSS, variables resolved):
 *   _base.scss               → .row.gap-24 (negative-margin gutter system)
 *   _home_design.scss        → .pagination-container, .pagination-button
 *   _featured_video.scss     → banner bookmark button
 *
 * Loaded AFTER blog.css (which provides .home-recent-blog-wrap, .blog-item,
 * .video-btn, .save-video, .home-banner-wrap, .blog-category-page-title,
 * .banner-slider-pagination, .subscribe-banner).
 *
 * Variable values used:
 *   $primary   = #e78125
 *   $secondary = #19263a
 *   $color_shark = #232528
 *   $color_raven = #7b7c7e
 *   $color_nile_blue = #173055
 *   $white = #ffffff
 *   $black = #000000
 */


/* ============================================================
   GAP-24 GRID GUTTER
   Source: frontend-nextjs/src/assets/scss/_base.scss — .row.gap-24
   This is the original custom gutter system (NOT Bootstrap 5's --bs-gutter-x).
   .row.gap-24 uses negative margins + column padding to create 24px column gaps.
   Note: blog.css had the Bootstrap 5 version commented out — this is the correct one.
   ============================================================ */

.row.gap-24 {
	margin-left: -12px;
	margin-right: -12px;
}

.row.gap-24 [class*="col-"] {
	padding-left: 12px;
	padding-right: 12px;
}


/* ============================================================
   PAGINATION
   Source: frontend-nextjs/src/assets/scss/components/_home_design.scss
   Classes: .pagination-container, .wrapper, .pagination-button, .pagination-ellipsis
   ============================================================ */

.pagination-container {
	max-width: 100%;
	margin-top: 32px;
	width: 100%;
}

.pagination-container .wrapper {
	display: flex;
	flex-direction: row;
	gap: 8px;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
}

.pagination-button {
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	color: #000000;
	border-radius: 8px;
	border: 2px solid #e68125;
	background: transparent;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	flex: 0 1 auto;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

a.pagination-button:hover {
	background: rgba(230, 129, 37, 0.12);
	color: #e68125;
	text-decoration: none;
}

.pagination-button.active {
	background: #e68125;
	color: #ffffff;
	cursor: default;
	pointer-events: none;
}

.pagination-button.disabled {
	cursor: default;
	filter: saturate(0);
	opacity: 0.6;
	pointer-events: none;
}

.pagination-ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 40px;
	color: #7b7c7e;
	font-size: 16px;
	letter-spacing: 1px;
}

@media screen and (max-width: 575px) {
	.pagination-container .wrapper {
		gap: 6px;
	}

	.pagination-button {
		min-width: 32px;
		height: 36px;
		padding: 0 8px;
		font-size: 13px;
	}

	.pagination-ellipsis {
		height: 36px;
	}
}


/* ============================================================
   BOOKMARK BUTTON — banner + card context
   Source: _featured_video.scss + _blog_list.scss
   blog.css already has .save-video .bookmark base styles.
   These are active-state and positioning overrides.
   ============================================================ */

/* Banner-level bookmark positioning (banner area is larger) */
.home-banner-wrap .save-video {
	position: absolute;
	right: 20px;
	top: 20px;
	z-index: 2;
}

.home-banner-wrap .save-video .bookmark {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	font-size: 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #e78125;
	border: 0;
	background: #ffffff;
	box-shadow: 0px 3px 11px rgba(0, 0, 0, 0.08);
	border-radius: 100%;
	cursor: pointer;
	transition: box-shadow 0.2s ease;
}

.home-banner-wrap .save-video .bookmark:hover,
.blog-item .save-video .bookmark:hover {
	box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.18);
}

.home-banner-wrap .save-video .bookmark.active,
.blog-item .save-video .bookmark.active {
	color: #e78125;
	background: #fff8f2;
}


/* ============================================================
   VIDEO LIST SECTION — .home-recent-blog-wrap on videos page
   Removes the bottom padding added by the section to avoid
   excess whitespace before pagination. The pagination-container
   margin-top handles its own spacing.
   ============================================================ */

#video-list.home-recent-blog-wrap {
	padding-bottom: 60px;
}


/* ============================================================
   BLOG ITEM TAG — h6 utility class override for category label
   Source: React uses className="blog-item__tag h6" on the tag div.
   The h6 heading class sets font-size and line-height from main.css.
   Override to ensure tag remains small and matches design spec:
   14px / 17px (matches _featured_video.scss __tag styles).
   ============================================================ */

.blog-item__tag.h6 {
	font-size: 14px;
	line-height: 17px;
	font-weight: 600;
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.blog-item__tag.h6 {
		font-size: 10px;
		line-height: 12px;
	}
}


/* ============================================================
   VIDEO BANNER — .home-banner-wrap--boxed adjustments
   blog.css already has the base styles.
   These ensure the banner displays at the correct height and the
   gradient overlay is applied for the video-category page context.
   ============================================================ */

.home-banner-wrap--boxed .banner-wrap {
	border-radius: 8px;
}

/* Ensure the banner content anchor text is visible on the gradient */
.home-banner-wrap--boxed .banner-content .tag {
	display: inline-block;
	margin-bottom: 12px;
}


/* ============================================================
   SUBSCRIBE BANNER (small variant) — inserted in video list after row 9
   Source: frontend-nextjs/src/components/sections/SubscribeCta/_subscribe_cta.scss
   Compiled from: services.css (shared styles — not loaded on video archive page).
   These styles are self-contained so the subscribe CTA renders correctly inside
   the .blog-list grid even when services.css is not enqueued.
   ============================================================ */

.subscribe-banner .subscribe-banner-box {
	background: #d0e9ee;
	padding: 62px 0;
}

@media (max-width: 991px) {
	.subscribe-banner .subscribe-banner-box {
		padding: 40px 0;
	}
}

.subscribe-banner .subscribe-banner-box h3 {
	font-size: 36px;
	color: #19263a;
	font-family: "DM Serif Display", Georgia, serif;
	padding-bottom: 2px;
}

@media (max-width: 767px) {
	.subscribe-banner .subscribe-banner-box h3 {
		font-size: 18px;
		line-height: 24px;
	}
}

.subscribe-banner .subscribe-banner-box p {
	font-size: 14px;
	line-height: 147%;
	color: #19263a;
	margin-bottom: 0;
}

@media (max-width: 767px) {
	.subscribe-banner .subscribe-banner-box p {
		font-size: 10px;
		line-height: 14px;
	}
}

/* Small variant — used inside the video list grid */
.subscribe-banner--small {
	padding: 6px 0 26px;
}

@media (max-width: 991px) {
	.subscribe-banner--small {
		padding: 0;
	}
}

.subscribe-banner--small .subscribe-banner-box {
	padding: 21px 24px 21px 42px;
	border-radius: 4px;
	max-width: 990px;
	margin: 0 auto;
}

@media (max-width: 991px) {
	.subscribe-banner--small .subscribe-banner-box {
		padding: 40px 20px;
	}
}

.subscribe-banner--small .subscribe-banner-box h3 {
	font-size: 22px;
}

@media (max-width: 767px) {
	.subscribe-banner--small .subscribe-banner-box h3 {
		font-size: 18px;
	}
}

@media (max-width: 767px) {
	.subscribe-banner--small .subscribe-form {
		margin-top: 16px;
	}
}

@media (min-width: 991px) {
	.subscribe-banner--small .subscribe-form .form-control {
		height: 44px;
	}
}

.subscribe-banner--small .subscribe-form .subscribe-submit {
	right: 20px;
}

.subscribe-banner--small .subscribe-form .subscribe-submit svg {
	margin-left: 6px;
	width: 11px;
	height: 10px;
}

/* Subscribe form base */
.subscribe-form {
	position: relative;
}

@media (max-width: 991px) {
	.subscribe-form {
		margin-top: 24px;
	}
}

.subscribe-form .form-control {
	height: 72px;
	border: 0;
	box-shadow: none;
	background: #ffffff;
	color: #232528;
	font-size: 16px;
	line-height: 19px;
	padding: 0 100px 0 21px;
	border-radius: 4px;
	width: 100%;
	display: block;
}

.subscribe-form .form-control::placeholder {
	color: rgba(35, 37, 40, 0.5);
}

.subscribe-form .form-control:focus {
	box-shadow: none;
	outline: none;
}

@media (max-width: 767px) {
	.subscribe-form .form-control {
		height: 56px;
		padding-left: 15px;
		font-size: 14px;
		line-height: 14px;
		padding-right: 90px;
	}
}

.subscribe-submit {
	position: absolute;
	right: 30px;
	top: 50%;
	margin-top: -20px;
	height: 40px;
	border: 0;
	display: flex;
	align-items: center;
	background: transparent;
	font-size: 16px;
	line-height: 20px;
	font-weight: 600;
	color: #e78125;
	cursor: pointer;
	transition: all 0.3s ease-in-out;
}

.subscribe-submit svg {
	margin-left: 17px;
}

.subscribe-submit:hover {
	color: #19263a;
}

@media (max-width: 767px) {
	.subscribe-submit {
		font-size: 14px;
		line-height: 17px;
	}

	.subscribe-submit svg {
		margin-left: 7px;
		width: 13px;
		height: 12px;
	}
	.blog-cta-box{
		margin-top: 0;
	}
}

/* Gravity Forms overrides — match .subscribe-form design inside video list */
.subscribe-banner--small .gform_wrapper {
	margin: 0;
}

.subscribe-banner--small .gform_wrapper .gform_fields {
	position: relative;
	display: flex;
	align-items: center;
}

.subscribe-banner--small .gform_wrapper .gfield {
	flex: 1;
	padding: 0;
	margin: 0;
}

.subscribe-banner--small .gform_wrapper .gfield input[type="email"] {
	height: 44px;
	border: 0;
	box-shadow: none;
	background: #ffffff;
	color: #232528;
	font-size: 16px;
	padding: 0 120px 0 21px;
	border-radius: 4px;
	width: 100%;
}

.subscribe-banner--small .gform_wrapper .gfield input[type="email"]::placeholder {
	color: rgba(35, 37, 40, 0.5);
}

.subscribe-banner--small .gform_wrapper .gform_footer,
.subscribe-banner--small .gform_wrapper .gform_button {
	position: absolute;
	right: 20px;
	top: 50%;
	transform: translateY(-50%);
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	font-size: 16px;
	font-weight: 600;
	color: #e78125;
	cursor: pointer;
	transition: color 0.3s ease-in-out;
}

.subscribe-banner--small .gform_wrapper .gform_button:hover {
	color: #19263a;
}

.subscribe-banner--small .gform_wrapper .gfield_description,
.subscribe-banner--small .gform_wrapper .gfield_label {
	display: none;
}

.subscribe-banner--small .gform_wrapper .validation_message {
	font-size: 12px;
	color: #dc3545;
	margin-top: 4px;
}

/* Fallback form (when Gravity Forms is not active) */
.gp-subscribe-fallback-form {
	position: relative;
	display: flex;
}

.gp-subscribe-fallback-form .form-control {
	flex: 1;
}


/* ============================================================
   RESPONSIVE FIXES
   ============================================================ */

@media (max-width: 575px) {
	.row.gap-24 {
		margin-left: -10px;
		margin-right: -10px;
	}

	.row.gap-24 [class*="col-"] {
		padding-left: 10px;
		padding-right: 10px;
	}
}
