/* [gsdc_course_tabs] shortcode styles — self-contained, no shared/global assets */

.gsdc-addons-course-tabs {
	--gsdc-navy: #36348e;
	--gsdc-gold: #ffc53a;
	--gsdc-ink: #292929;
	--gsdc-muted: #7d7d8c;
	--gsdc-bg: #f6f6fb;
	--gsdc-border: #ececec;

	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var( --gsdc-ink );
	max-width: 1260px;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box;
	margin: 0 auto;
	overflow-x: hidden;
}

/* Elementor's column is a flex container; without an explicit width and
   min-width, a flex item sizes to fit its own content — so a wide table
   inside would silently force this whole block (and the visual card
   around it) wider than the column, rather than shrinking to fit it. The
   rules above pin this block to the column's actual width; these keep any
   nested wrapper from reintroducing the same problem. */
.gsdc-addons-course-tabs__panels,
.gsdc-addons-course-tabs__panel,
.gsdc-addons-course-tabs__main-content,
.gsdc-addons-course-tabs__site-main-content,
.gsdc-addons-course-tabs__freeform,
.gsdc-addons-course-tabs__prose,
.gsdc-addons-course-tabs__table-wrap {
	min-width: 0 !important;
	max-width: 100% !important;
}
.gsdc-addons-course-tabs{
  overflow: hidden !important;
}
.gsdc-addons-course-tabs__main-content table,
.gsdc-addons-course-tabs__main-content tr,
.gsdc-addons-course-tabs__main-content td{
  height: unset !important;
}
/* Nav — flat white card, text-only active state, no fills */
.gsdc-addons-course-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba( 41, 41, 41, 0.1 );
	border-radius: 14px;
	margin: 0 0 40px;
}
button.gsdc-addons-course-tabs__nav-btn{
  border-right: 1px solid var(--gsdc-border);
}
button.gsdc-addons-course-tabs__nav-btn:last-of-type{
  border: none;
}
.gsdc-addons-course-tabs__nav-btn{
  position: relative;
}
.gsdc-addons-course-tabs__nav-btn::after{
  content: "";
  background-color: var(--gsdc-gold);
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
  max-height: 0;
  transition: 0.3s ease-in-out;
}
.gsdc-addons-course-tabs__nav-btn:first-of-type::after{
  border-radius: 14px 0 0 14px;
}
.gsdc-addons-course-tabs__nav-btn:last-of-type::after{
  border-radius: 0 14px 14px 0;
}
.gsdc-addons-course-tabs__nav-btn:hover::after,
.gsdc-addons-course-tabs__nav-btn.is-active::after{
  max-height: 100vh;
}
.gsdc-addons-course-tabs__nav-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none !important;
    flex: 1 1 auto;
    padding: 20px 30px !important;
    background: transparent;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
}
.gsdc-addons-course-tabs__nav-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
}

.gsdc-addons-course-tabs__nav-eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var( --gsdc-ink );
	opacity: 0.6;
	transition: opacity 0.3s ease;
}
.is-active .gsdc-addons-course-tabs__nav-eyebrow{
	opacity: 1;
}
.gsdc-addons-course-tabs__nav-label {
	font-size: 14px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__nav-btn.is-active .gsdc-addons-course-tabs__nav-eyebrow,
.gsdc-addons-course-tabs__nav-btn.is-active .gsdc-addons-course-tabs__nav-label {

}

/* Chevron — only shown once the mobile stacked nav kicks in */
.gsdc-addons-course-tabs__nav-chevron {
	display: none;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__nav-chevron svg {
	width: 100%;
	height: 100%;
}

/* Back button — only shown inside a panel once mobile "drill-in" nav is active */
.gsdc-addons-course-tabs__back {
    text-decoration: none !important;
    display: none;
    align-items: center;
    gap: 6px;
    margin: 0 0 20px;
    padding: 0 !important;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: var( --gsdc-gold ) !important;
}

.gsdc-addons-course-tabs__back svg {
	width: 16px;
	height: 16px;
}

/* Panels */
.gsdc-addons-course-tabs__panel {
	display: none;
}

.gsdc-addons-course-tabs__panel.is-active {
    display: block;
    animation: gsdcCourseTabsFadeIn 0.3s ease;
}

@keyframes gsdcCourseTabsFadeIn {
	from {
		opacity: 0;
		transform: translateY( 6px );
	}
	to {
		opacity: 1;
		transform: translateY( 0 );
	}
}

.gsdc-addons-course-tabs__heading {
	margin: 0 0 40px;
	font-size: 26px !important;
	font-weight: 700 !important;
	text-align: center !important;
	color: var( --gsdc-ink ) !important;
}

.gsdc-addons-course-tabs__prose,
.gsdc-addons-course-tabs__text,
.gsdc-addons-course-tabs__subtitle {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.gsdc-addons-course-tabs__prose{
	margin-bottom: 32px;
}
.gsdc-addons-course-tabs__prose p,
.gsdc-addons-course-tabs__text {
	margin: 0 0 16px;
	line-height: 1.7;
	font-size: 16px;
}

.gsdc-addons-course-tabs__prose p:last-child,
.gsdc-addons-course-tabs__text {
	margin-bottom: 0;
}

.gsdc-addons-course-tabs__subtitle {
	margin: 0 0 32px;
	font-size: 15px;
	color: var( --gsdc-muted );
	line-height: 1.6;
}

/* Course Structure — plain bordered cards, centered content */
.gsdc-addons-course-tabs__facts {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 20px;
}

.gsdc-addons-course-tabs__fact {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 10px;
	padding: 28px 20px;
	background: #ffffff;
	border: 1px solid var( --gsdc-border );
	border-radius: 12px;
}

.gsdc-addons-course-tabs__fact-icon {
	display: inline-flex;
	width: 30px;
	height: 30px;
	color: var( --gsdc-gold );
}

.gsdc-addons-course-tabs__fact-icon svg {
	width: 100%;
	height: 100%;
}

.gsdc-addons-course-tabs__fact-label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__fact-value {
	font-size: 17px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

/* Learning Outcomes — flat checklist */
.gsdc-addons-course-tabs__outcomes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 24px;
	max-width: 900px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.gsdc-addons-course-tabs__outcome {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	line-height: 1.5;
	font-size: 15px;
}

.gsdc-addons-course-tabs__outcome-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var( --gsdc-gold );
	color: var( --gsdc-ink );
	padding: 5px;
	box-sizing: border-box;
}

.gsdc-addons-course-tabs__outcome-check svg {
	width: 100%;
	height: 100%;
}

/* Course Contents — table with colored header, zebra rows. Shrinks to fit
   its container rather than scrolling horizontally on narrow screens.
   !important throughout: Elementor's own frontend stylesheet sets table
   width/layout rules that otherwise win against a plain declaration here. */
.gsdc-addons-course-tabs__table-wrap {
	border-radius: 12px !important;
	border: 1px solid var( --gsdc-border ) !important;
	overflow: hidden !important;
	max-width: 100% !important;
}

.gsdc-addons-course-tabs__table {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: fixed !important;
	border-collapse: collapse !important;
	font-size: 15px;
	margin-bottom: 0 !important;
}

.gsdc-addons-course-tabs__table thead th {
	background: var( --gsdc-ink );
	color: #ffffff;
	text-align: left;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 20px 32px;
	overflow-wrap: break-word !important;
}

.gsdc-addons-course-tabs__table tbody td {
	padding: 20px 32px;
	vertical-align: top;
	overflow-wrap: break-word !important;
	word-break: break-word !important;
	border-top: 1px solid var( --gsdc-border );
}

.gsdc-addons-course-tabs__table tbody tr:nth-child( even ) {
	background: var( --gsdc-bg );
}

.gsdc-addons-course-tabs__table tbody td:first-child {
	width: 220px;
}

.gsdc-addons-course-tabs__module-label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var( --gsdc-gold );
	margin-bottom: 4px;
}

.gsdc-addons-course-tabs__module-title {
	font-size: 16px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__module-row {
	margin: 0 0 6px;
	line-height: 1.55;
	font-size: 14px;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__module-row:last-child {
	margin-bottom: 0;
}

/* Contact — highlighted main card + two small meta cards, centered */
.gsdc-addons-course-tabs__contact-group {
	max-width: 620px;
	margin: 0 auto 28px;
}

.gsdc-addons-course-tabs__contact-group:last-child {
	margin-bottom: 0;
}

.gsdc-addons-course-tabs__contact-main {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 6px;
	padding: 36px 32px;
	background: #ffffff;
	border: 1px solid var( --gsdc-border );
	border-radius: 16px;
	margin-bottom: 20px;
}

.gsdc-addons-course-tabs__contact-avatar,
.gsdc-addons-course-tabs__contact-headshot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	margin-bottom: 12px;
}

.gsdc-addons-course-tabs__contact-avatar {
	background: var( --gsdc-bg );
	color: var( --gsdc-navy );
	font-size: 22px;
	font-weight: 700;
}

.gsdc-addons-course-tabs__contact-headshot {
	object-fit: cover;
}

.gsdc-addons-course-tabs__contact-name {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var( --gsdc-navy );
}

.gsdc-addons-course-tabs__contact-role {
	margin: 0 0 6px;
	font-size: 14px;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__contact-line {
	font-size: 14px;
	color: var( --gsdc-ink );
	text-decoration: none;
}

.gsdc-addons-course-tabs__contact-line:hover {
	text-decoration: underline;
}

.gsdc-addons-course-tabs__contact-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 16px;
	padding: 12px 26px;
	background: var( --gsdc-navy );
	color: #ffffff;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
}

.gsdc-addons-course-tabs__contact-meta {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 16px;
}

.gsdc-addons-course-tabs__contact-meta .gsdc-addons-course-tabs__fact {
	padding: 18px 16px;
}

/* Course Fee — pricing option cards, styled to match the bordered-card
   look of .gsdc-addons-course-tabs__panel */
.gsdc-addons-course-tabs__pricing {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) );
	gap: 20px;
	margin-top: 32px;
}

.gsdc-addons-course-tabs__pricing-option {
	background: #ffffff;
	border: 1px solid var( --gsdc-border );
	border-radius: 14px;
	padding: 24px 18px;
	text-align: center;
}

.gsdc-addons-course-tabs__pricing-title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__pricing-description {
	font-size: 14px;
	line-height: 1.55;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__pricing-description p {
	margin: 0 0 10px;
}

.gsdc-addons-course-tabs__pricing-description p:last-child,
.gsdc-addons-course-tabs__pricing-description :last-child {
	margin-bottom: 0;
}

/* Admission — requirement cards + CTA */
.gsdc-addons-course-tabs__requirements {
	display: grid;
	grid-template-columns: repeat( 2, 1fr );
	gap: 20px;
	max-width: 900px;
	margin: 0 auto;
}

.gsdc-addons-course-tabs__requirement {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 22px;
	background: #ffffff;
	border: 1px solid var( --gsdc-border );
	border-radius: 12px;
}

.gsdc-addons-course-tabs__requirement-icon {
	display: inline-flex;
	width: 26px;
	height: 26px;
	flex-shrink: 0;
	color: var( --gsdc-gold );
}

.gsdc-addons-course-tabs__requirement-icon svg {
	width: 100%;
	height: 100%;
}

.gsdc-addons-course-tabs__requirement-title {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__requirement-desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__cta-wrap {
	text-align: center;
	margin-top: 32px;
}

.gsdc-addons-course-tabs__cta,.gsdc-addons-course-tabs__contact-cta {
    display: inline-flex;
    padding: 15px 36px 14px;
    background: var( --gsdc-gold );
    color: #ffffff !important;
    border-radius: 999px;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
}
.gsdc-addons-course-tabs__fact,
.gsdc-addons-course-tabs__requirement,
.gsdc-addons-course-tabs__pricing-option {
  transition: 0.3s ease-in-out;
}
.gsdc-addons-course-tabs__fact:hover,
.gsdc-addons-course-tabs__requirement:hover,
.gsdc-addons-course-tabs__pricing-option:hover{
  border-color: var(--gsdc-gold);
  transform: translateY(-5px);
}

/* Admission — "Apply" process steps */
.gsdc-addons-course-tabs__apply {
	margin-top: 48px;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.gsdc-addons-course-tabs__apply-heading {
	margin: 0 0 24px;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-align: center;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__apply-marker {
	width: 8px;
	height: 8px;
	margin: 0 auto 8px;
	border-radius: 50%;
	background: var( --gsdc-navy );
}

.gsdc-addons-course-tabs__apply-steps {
	display: grid;
}

.gsdc-addons-course-tabs__apply-step {
	display: grid;
	grid-template-columns: 64px 200px 1fr;
	gap: 24px;
	align-items: start;
	padding: 28px 0;
	border-top: 1px solid var( --gsdc-border );
}

.gsdc-addons-course-tabs__apply-step:last-child {
	border-bottom: 1px solid var( --gsdc-border );
}

.gsdc-addons-course-tabs__apply-number {
	font-size: 24px;
	font-weight: 700;
	color: var( --gsdc-muted );
}

.gsdc-addons-course-tabs__apply-title {
	margin: 0;
	font-size: 19px;
	font-weight: 700;
	color: var( --gsdc-ink );
}

.gsdc-addons-course-tabs__apply-desc {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var( --gsdc-muted );
}
.gsdc-addons-course-tabs__table tr td:first-of-type{
	border-right: 1px solid var(--gsdc-border) !important;
}
.gsdc-addons-course-tabs__table tr td{
	border:none !important;
	border-right: none !important;
	border-left: none !important;
}
.gsdc-addons-course-tabs__table tr{
	border-bottom: 1px solid var(--gsdc-border) !important;
}

/* Main Content — shared typography/table styling for both the per-tab
   "Main Content" field (rendered first within a tab) and the course-wide
   one after the whole tab block. Client content may include arbitrary
   tables. */
.gsdc-addons-course-tabs__freeform {
	/* typography/table rules below apply regardless of position */
}

/* Main Content renders first within a tab — only add a divider below it
   when structured/layout content actually follows; otherwise it's the only
   thing in the panel and needs no separating rule at all. */
.gsdc-addons-course-tabs__main-content.gsdc-addons-course-tabs__freeform--divided {
	margin-bottom: 32px;
	padding-bottom: 32px;
	border-bottom: 1px solid var( --gsdc-border );
}

/* The course-wide Main Content always follows the entire tab block, so it
   keeps its own top divider regardless. */
.gsdc-addons-course-tabs__site-main-content {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid var( --gsdc-border );
}

.gsdc-addons-course-tabs__freeform > *:first-child {
	margin-top: 0;
}

.gsdc-addons-course-tabs__freeform > *:last-child {
	margin-bottom: 0;
}

.gsdc-addons-course-tabs__freeform p {
	margin: 0 0 16px;
	line-height: 1.7;
	font-size: 16px;
}

/* Client-authored tables (from the wysiwyg field) — shrinks to fit its
   container rather than scrolling horizontally on narrow screens.
   !important throughout: Elementor's own frontend stylesheet sets table
   width/layout rules that otherwise win against a plain declaration here. */
.gsdc-addons-course-tabs__freeform table {
	width: 100% !important;
	max-width: 100% !important;
	table-layout: fixed !important;
	border-collapse: collapse !important;
	font-size: 15px;
	margin: 0 0 20px;
	border: 1px solid var( --gsdc-border ) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
}

.gsdc-addons-course-tabs__freeform thead th,
.gsdc-addons-course-tabs__freeform thead td {
	background: var( --gsdc-ink );
	color: #ffffff;
	text-align: left;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 16px 20px;
	overflow-wrap: break-word !important;
}

.gsdc-addons-course-tabs__freeform tbody th,
.gsdc-addons-course-tabs__freeform tbody td {
	padding: 14px 20px;
	vertical-align: top;
	overflow-wrap: break-word !important;
	word-break: break-word !important;
	border-top: 1px solid var( --gsdc-border );
}

.gsdc-addons-course-tabs__freeform tbody tr:nth-child( even ) {
	background: var( --gsdc-bg );
}

/* Breakpoints: in between 768 - 1077 */
@media ( min-width: 768px ) and ( max-width: 1077px ) {
	.gsdc-addons-course-tabs__nav-btn{
		border-bottom: 1px solid var(--gsdc-border);
	}
}

/* Breakpoints: tablet < 1024, mobile < 768 */

@media ( max-width: 1024px ) {
	.gsdc-addons-course-tabs__apply-step {
		grid-template-columns: 48px 140px 1fr;
		gap: 16px;
	}

	.gsdc-addons-course-tabs__facts,
	.gsdc-addons-course-tabs__requirements {
		grid-template-columns: repeat( 2, 1fr );
	}

	.gsdc-addons-course-tabs__outcomes {
		grid-template-columns: 1fr;
	}

	.gsdc-addons-course-tabs__nav {
		overflow-x: auto;
	}
}

@media ( max-width: 768px ) {
	/* Mobile nav — a stacked list of full-width rows instead of a scroll
	   strip. Tapping one drills into that panel and hides the list; the
	panel's own Back button (see .gsdc-addons-course-tabs__back) returns. */
	.gsdc-addons-course-tabs__panel.is-active {
		display: block;
		animation: gsdcCourseTabsFadeIn 0.3s ease;
		padding: 24px 18px;
		border: 1px solid var(--gsdc-border);
		border-radius: 14px;
	}

	/* Tables bleed past the panel's horizontal padding instead of being
	   squeezed by it — everything else in the panel keeps the inset. */
	.gsdc-addons-course-tabs__table-wrap,
	.gsdc-addons-course-tabs__freeform table {
		margin-left: -18px !important;
		margin-right: -18px !important;
		width: calc( 100% + 36px ) !important;
		max-width: calc( 100% + 36px ) !important;
		border-radius: 0 !important;
		border-left: none !important;
		border-right: none !important;
	}

	.gsdc-addons-course-tabs__nav {
		flex-direction: column;
		flex-wrap: nowrap;
		box-shadow: none;
		border: 1px solid var( --gsdc-border );
		border-radius: 12px;
		padding: 0;
	}

	.gsdc-addons-course-tabs__nav-btn {
		flex: 1 1 auto;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		border-right: none !important;
		border-bottom: 1px solid var( --gsdc-border );
		padding: 16px 18px !important;
	}

	.gsdc-addons-course-tabs__nav-btn:last-of-type {
		border-bottom: none;
	}

	.gsdc-addons-course-tabs__nav-btn::after {
		display: none;
	}

	.gsdc-addons-course-tabs__nav-text {
		align-items: flex-start;
	}

	.gsdc-addons-course-tabs__nav-chevron {
		display: inline-flex;
	}

	.gsdc-addons-course-tabs__panels {
		display: none;
	}

	.gsdc-addons-course-tabs.is-panel-open .gsdc-addons-course-tabs__nav {
		display: none;
	}

	.gsdc-addons-course-tabs.is-panel-open .gsdc-addons-course-tabs__panels {
		display: block;
	}

	.gsdc-addons-course-tabs__back {
		display: inline-flex;
	}

	.gsdc-addons-course-tabs__facts,
	.gsdc-addons-course-tabs__requirements,
	.gsdc-addons-course-tabs__contact-meta {
		grid-template-columns: 1fr;
	}

	.gsdc-addons-course-tabs__apply-step {
		grid-template-columns: 1fr;
		gap: 4px;
		padding: 20px 0;
	}

	.gsdc-addons-course-tabs__apply-number {
		font-size: 18px;
	}
}
