/**
 * StudySA Design Phase 3 — complete site-owned UI/UX polish.
 * Excludes banner artwork replacement. Preserves Elementor editability.
 */

/* ---- Global rhythm & alignment ---- */
.elementor-widget-heading .elementor-heading-title {
	overflow-wrap: anywhere;
	line-height: 1.4;
}
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
	color: var(--ssa-color-text);
	line-height: 1.8;
	overflow-wrap: anywhere;
}

/* Service / trust cards: consistent borders & hover */
.elementor-widget-image-box .elementor-image-box-wrapper,
.elementor-widget-icon-box .elementor-icon-box-wrapper,
.e-con.e-child:has(.elementor-widget-heading) {
	/* soft structural cue without inventing card chrome everywhere */
}
body .elementor-widget-image-box .elementor-image-box-wrapper {
	border: 1px solid var(--ssa-color-border);
	border-radius: 12px;
	padding: 1.25rem 1.35rem;
	background: #fff;
	height: 100%;
	transition: border-color .18s ease, box-shadow .18s ease;
}
body .elementor-widget-image-box .elementor-image-box-wrapper:hover,
body .elementor-widget-image-box .elementor-image-box-wrapper:focus-within {
	border-color: var(--ssa-color-primary);
	box-shadow: 0 6px 20px rgba(38, 34, 97, 0.08);
}
body .elementor-widget-icon-box .elementor-icon-box-wrapper {
	border: 1px solid var(--ssa-color-border);
	border-radius: 12px;
	padding: 1.15rem 1.25rem;
	background: #fff;
	height: 100%;
	transition: border-color .18s ease;
}
body .elementor-widget-icon-box .elementor-icon-box-wrapper:hover {
	border-color: var(--ssa-color-accent);
}

/* Icon color consistency */
.elementor-icon-box-icon .elementor-icon,
.elementor-view-stacked .elementor-icon {
	color: var(--ssa-color-primary);
}
.elementor-icon-box-icon .elementor-icon i,
.elementor-icon-box-icon .elementor-icon svg {
	fill: currentColor;
}

/* Buttons: primary default + accent hover clarity */
.elementor-location-header .elementor-widget-button a.elementor-button {
	background-color: var(--ssa-color-primary) !important;
	color: #fff !important;
	border-color: var(--ssa-color-primary) !important;
}
.elementor-location-header .elementor-widget-button a.elementor-button:hover,
.elementor-location-header .elementor-widget-button a.elementor-button:focus {
	background-color: var(--ssa-color-accent) !important;
	border-color: var(--ssa-color-accent) !important;
	color: #fff !important;
}

/* Accent-filled CTAs always white text */
a.elementor-button[style*="EE4036"],
a.elementor-button[style*="ee4036"],
a.elementor-button[style*="238, 64, 54"] {
	color: #fff !important;
}

/* ---- Nav dropdown polish ---- */
.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown.elementor-nav-menu__container {
	border: 1px solid var(--ssa-color-border) !important;
	border-radius: 10px !important;
	box-shadow: 0 10px 28px rgba(38, 34, 97, 0.12) !important;
	overflow: hidden;
}
.elementor-nav-menu--dropdown a.elementor-item,
.elementor-nav-menu--dropdown a.elementor-sub-item {
	color: var(--ssa-color-text) !important;
	padding-block: 0.65rem !important;
	line-height: 1.45 !important;
	overflow-wrap: anywhere;
}
.elementor-nav-menu--dropdown a.elementor-item:hover,
.elementor-nav-menu--dropdown a.elementor-sub-item:hover,
.elementor-nav-menu--dropdown a.elementor-item:focus,
.elementor-nav-menu--dropdown a.elementor-sub-item:focus {
	background: var(--ssa-color-bg-alt) !important;
	color: var(--ssa-color-primary) !important;
}
.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
.elementor-nav-menu--main .elementor-item.elementor-item-active {
	color: var(--ssa-color-primary) !important;
}

/* Mobile menu panel */
@media (max-width: 1024px) {
	.elementor-menu-toggle {
		min-width: 44px;
		min-height: 44px;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}
	.elementor-nav-menu--dropdown.elementor-nav-menu__container {
		max-height: min(70vh, 520px);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Ultra-narrow: denser header */
@media (max-width: 380px) {
	.elementor-location-header .elementor-widget-image img,
	.elementor-location-header img[src*="study-logo"] {
		max-height: 42px !important;
		max-width: 72px !important;
	}
	.elementor-location-header .elementor-widget-button a.elementor-button {
		padding: 0.45em 0.55em !important;
		font-size: 0.72rem !important;
		letter-spacing: 0;
	}
	.elementor-location-header .e-con,
	.elementor-location-header .elementor-container {
		column-gap: 0.25rem !important;
		row-gap: 0.25rem !important;
	}
}

/* ---- Footer (superseded by footer-critical.css for layout/contrast) ---- */
.elementor-location-footer {
	overflow-x: clip;
}

/* ---- Homepage sections (non-banner) ---- */
body.home .elementor-widget-image-box .elementor-image-box-title {
	font-size: clamp(1.05rem, 1.2vw, 1.2rem);
	color: var(--ssa-color-primary);
}
body.home .elementor-widget-image-box .elementor-image-box-description {
	font-size: 0.95rem;
}
body.home .elementor-widget-button a.elementor-button {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ---- Service landings & CPT ---- */
body.page-child .elementor-widget-heading .elementor-heading-title,
body.single-ssa_service .elementor-widget-heading .elementor-heading-title,
body.single-ssa_service .elementor-widget-theme-post-title .elementor-heading-title,
body.page-parent .elementor-widget-heading .elementor-heading-title {
	color: var(--ssa-color-primary);
	overflow-wrap: anywhere;
}
body.single-ssa_service .elementor-widget-theme-post-content,
body.page-child .elementor-widget-text-editor {
	max-width: 75ch;
}
.ssa-related-services,
.ssa-service-internal-links,
.ssa-hub-landings {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--ssa-color-border);
}
.ssa-related-services ul,
.ssa-service-internal-links ul,
.ssa-hub-landings ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.65rem;
}
.ssa-related-services a,
.ssa-service-internal-links a,
.ssa-hub-landings a {
	display: block;
	padding: 0.75rem 1rem;
	border: 1px solid var(--ssa-color-border);
	border-radius: 10px;
	background: #fff;
	color: var(--ssa-color-primary);
	font-weight: 600;
	line-height: 1.45;
	overflow-wrap: anywhere;
	transition: border-color .15s ease, color .15s ease;
}
.ssa-related-services a:hover,
.ssa-service-internal-links a:hover,
.ssa-hub-landings a:hover {
	border-color: var(--ssa-color-accent);
	color: var(--ssa-color-accent);
}

/* CPT / landing CTA strip */
.ssa-service-cta,
.elementor-location-single .elementor-widget-button {
	margin-top: 0.5rem;
}

/* ---- Blog ---- */
.elementor-pagination,
nav.elementor-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: center;
	align-items: center;
	margin-block: 1.5rem;
}
.elementor-pagination .page-numbers,
.elementor-pagination a,
.elementor-pagination span {
	min-width: 40px;
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ssa-color-border);
	border-radius: 8px;
	padding: 0.35rem 0.65rem;
	color: var(--ssa-color-primary);
	font-weight: 600;
	line-height: 1.2;
}
.elementor-pagination .page-numbers.current,
.elementor-pagination span.current {
	background: var(--ssa-color-primary);
	border-color: var(--ssa-color-primary);
	color: #fff;
}
.elementor-pagination a:hover,
.elementor-pagination a:focus {
	border-color: var(--ssa-color-accent);
	color: var(--ssa-color-accent);
}

/* Featured image aspect */
.elementor-posts-container .elementor-post__thumbnail img,
.elementor-loop-container .elementor-widget-theme-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 8px;
}

/* Author / meta */
.elementor-post-info,
.elementor-post__meta-data,
.ssa-post-meta {
	color: var(--ssa-color-text-muted);
	font-size: 0.92rem;
}

/* ---- Forms ---- */
.elementor-field-group {
	margin-bottom: 1rem;
}
.elementor-field-group .elementor-field-label {
	font-weight: 600;
	color: var(--ssa-color-primary);
	margin-bottom: 0.35rem;
}
.elementor-field-group .elementor-field,
.elementor-message,
.elementor-form .elementor-button[type="submit"] {
	font-family: inherit;
}
.elementor-field-group .elementor-field {
	min-height: 44px;
	padding: 0.65rem 0.85rem !important;
	border: 1px solid var(--ssa-color-border) !important;
	border-radius: 8px !important;
	background: #fff;
	width: 100%;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.elementor-field-group textarea.elementor-field {
	min-height: 120px;
}
.elementor-field-group .elementor-field:focus {
	border-color: var(--ssa-color-primary) !important;
	box-shadow: 0 0 0 3px rgba(38, 34, 97, 0.15);
	outline: none;
}
.elementor-field-group .elementor-field:invalid:not(:placeholder-shown):not(:focus) {
	border-color: var(--ssa-color-accent) !important;
}
.elementor-form-fields-wrapper .elementor-field-required .elementor-field-label::after,
.elementor-mark-required .elementor-field-label::after {
	content: " *";
	color: var(--ssa-color-accent);
}
.elementor-message.elementor-message-danger,
.elementor-error-message,
.elementor-form .elementor-message.elementor-error {
	color: var(--ssa-color-accent);
	background: #FFF5F4;
	border: 1px solid #F5C2BD;
	border-radius: 8px;
	padding: 0.75rem 1rem;
}
.elementor-message.elementor-message-success,
.elementor-form .elementor-message.elementor-success {
	color: #166534;
	background: #F0FDF4;
	border: 1px solid #BBF7D0;
	border-radius: 8px;
	padding: 0.75rem 1rem;
}
.elementor-form .elementor-button[type="submit"] {
	background: var(--ssa-color-primary) !important;
	color: #fff !important;
	min-height: 48px;
	padding-inline: 1.5rem !important;
	border-radius: 8px !important;
	font-weight: 700;
}
.elementor-form .elementor-button[type="submit"]:hover,
.elementor-form .elementor-button[type="submit"]:focus {
	background: var(--ssa-color-accent) !important;
}

/* Search forms */
.search-form input[type="search"],
.elementor-search-form__input {
	border: 1px solid var(--ssa-color-border) !important;
	border-radius: 8px !important;
	min-height: 44px;
}
.search-form input[type="search"]:focus,
.elementor-search-form__input:focus {
	border-color: var(--ssa-color-primary) !important;
	outline: none;
	box-shadow: 0 0 0 3px rgba(38, 34, 97, 0.12);
}

/* ---- Institutional pages ---- */
body.page .elementor-widget-theme-page-title .elementor-heading-title,
body.page .elementor-page-title {
	color: var(--ssa-color-primary);
	overflow-wrap: anywhere;
}

/* ---- Responsive grids ---- */
@media (max-width: 767px) {
	body .elementor-widget-image-box .elementor-image-box-wrapper,
	body .elementor-widget-icon-box .elementor-icon-box-wrapper {
		padding: 1rem 1.05rem;
	}
	.elementor-widget-heading .elementor-heading-title {
		font-size: clamp(1.15rem, 5.5vw, 1.65rem) !important;
	}
	/* Avoid oversized section padding on mobile */
	.e-con.e-parent {
		--padding-top: max(var(--padding-top, 20px), 16px);
	}
	/* Reduce letterbox whitespace around contained banner art without changing artwork */
	.elementor-widget-slides .elementor-slides-wrapper,
	.elementor-widget-slides .swiper,
	.elementor-widget-slides .swiper-slide {
		min-height: 160px !important;
	}
	/* Tighter vertical rhythm on service landings */
	body.page-child .elementor-top-section,
	body.page-child .e-con.e-parent,
	body.single-ssa_service .elementor-top-section,
	body.single-ssa_service .e-con.e-parent {
		padding-block: clamp(1.25rem, 4vw, 2rem) !important;
	}
	body.page-child .elementor-widget-heading,
	body.single-ssa_service .elementor-widget-heading {
		margin-bottom: 0.35rem !important;
	}
}

@media (max-width: 360px) {
	html {
		font-size: 15px;
	}
	.elementor-button {
		max-width: 100%;
		white-space: normal !important;
		text-align: center;
	}
	.elementor-widget-image-box .elementor-image-box-title {
		font-size: 1rem !important;
	}
}

/* ---- Skip link / a11y ---- */
.skip-link:focus {
	top: 8px;
}

/* WhatsApp / tel / mailto affordances */
a[href^="tel:"],
a[href^="mailto:"] {
	overflow-wrap: anywhere;
}
a.ssa-btn-whatsapp:hover,
.ssa-btn-whatsapp:hover {
	filter: brightness(0.95);
}
