/* Global site rules copied verbatim from the original export so spacing,
   fonts and interactive states match exactly. */
body.ama-site,
.ama-site {
	background: #FEFEFE;
	-webkit-font-smoothing: antialiased;
	font-family: 'DM Sans', sans-serif;
	font-size: 16.5px;
	line-height: 1.65;
	color: #12181F;
}
.ama-site a {
	text-decoration: none;
}
@keyframes lp {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(.5); opacity: .35; }
}
.ama-site .courses-drop {
	display: none;
}
.ama-site .courses-nav:hover .courses-drop,
.ama-site .courses-nav:focus-within .courses-drop {
	display: block;
}

/* Make the WPForms form on the Contact page inherit the site's type &
   input styling so it matches the mock-up fields it replaces. */
.ama-wpforms-wrap,
.ama-wpforms-wrap .wpforms-container,
.ama-wpforms-wrap .wpforms-form {
	font-family: 'DM Sans', sans-serif;
}
.ama-wpforms-wrap .wpforms-field-label {
	font-size: .72rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #8695AA;
	margin-bottom: 6px;
}
.ama-wpforms-wrap input[type=text],
.ama-wpforms-wrap input[type=email],
.ama-wpforms-wrap input[type=tel],
.ama-wpforms-wrap textarea {
	width: 100%;
	padding: 11px 14px;
	border: 1.5px solid #D9E1EA !important;
	border-radius: 9px !important;
	font-family: 'DM Sans', sans-serif;
	font-size: .9rem;
	color: #12181F;
	background: #fff;
	box-sizing: border-box;
}
.ama-wpforms-wrap .wpforms-submit {
	width: 100%;
	text-align: center;
	font-weight: 600;
	font-size: .95rem;
	border-radius: 10px !important;
	padding: 15px !important;
	background: linear-gradient(135deg, #8B6914, #B8860B) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 8px 22px rgba(47, 55, 68, .28);
}

/* Elementor wraps widgets in extra containers; strip default margins so the
   pasted section markup renders exactly like the static export. */
.elementor-widget-ama_header .elementor-widget-container,
.elementor-widget-ama_footer .elementor-widget-container,
.elementor-widget-ama_html_block .elementor-widget-container {
	margin: 0;
}

/* ============================================================
   AMA Elementor Widgets - color/background lock-in
   ------------------------------------------------------------
   Some themes / Elementor's global typography apply their own
   text & background colors with higher priority than a plain
   inline style, which is why headings/paragraphs were showing
   as black instead of the original white/gold/navy design.
   These rules match each element by its ACTUAL inline style
   value (attribute selector) and force it back with !important,
   scoped to .ama-site so nothing outside these widgets is
   touched. No PHP edits needed - just load this stylesheet.
   ============================================================ */

/* -- text colors -- */
.ama-site [style*="color:#252C3E"] { color: #252C3E !important; }
.ama-site [style*="color:#2F3744"] { color: #2F3744 !important; }
.ama-site [style*="color:#4ade80"] { color: #4ade80 !important; }
.ama-site [style*="color:#56657A"] { color: #56657A !important; }
.ama-site [style*="color:#8695AA"] { color: #8695AA !important; }
.ama-site [style*="color:#B7C2D1"] { color: #B7C2D1 !important; }
.ama-site [style*="color:#B8860B"] { color: #B8860B !important; }
.ama-site [style*="color:#D4AA45"] { color: #D4AA45 !important; }
.ama-site [style*="color:#D9E1EA"] { color: #D9E1EA !important; }
.ama-site [style*="color:#E8D5F5"] { color: #E8D5F5 !important; }
.ama-site [style*="color:#F9E3A8"] { color: #F9E3A8 !important; }
.ama-site [style*="color:#fff"] { color: #fff !important; }

/* -- backgrounds (solid, gradient, rgba) -- */
.ama-site [style*="background:#0E7C7B"] { background: #0E7C7B !important; }
.ama-site [style*="background:#252C3E"] { background: #252C3E !important; }
.ama-site [style*="background:#2F3744"] { background: #2F3744 !important; }
.ama-site [style*="background:#4ade80"] { background: #4ade80 !important; }
.ama-site [style*="background:#EEF2F6"] { background: #EEF2F6 !important; }
.ama-site [style*="background:#F6F8FA"] { background: #F6F8FA !important; }
.ama-site [style*="background:#fff"] { background: #fff !important; }
.ama-site [style*="background:linear-gradient(135deg,#8B6914,#B8860B)"] { background: linear-gradient(135deg,#8B6914,#B8860B) !important; }
.ama-site [style*="background:linear-gradient(160deg,#252C3E,#2F3744 55%,#3E4759)"] { background: linear-gradient(160deg,#252C3E,#2F3744 55%,#3E4759) !important; }
.ama-site [style*="background:linear-gradient(160deg,#252C3E,#2F3744 60%,#3E4759)"] { background: linear-gradient(160deg,#252C3E,#2F3744 60%,#3E4759) !important; }
.ama-site [style*="background:linear-gradient(160deg,#252C3E,#2F3744)"] { background: linear-gradient(160deg,#252C3E,#2F3744) !important; }
.ama-site [style*="background:linear-gradient(180deg,#fff,#F6F8FA)"] { background: linear-gradient(180deg,#fff,#F6F8FA) !important; }
.ama-site [style*="background:radial-gradient(circle,rgba(184,134,11,.10),transparent 70%)"] { background: radial-gradient(circle,rgba(184,134,11,.10),transparent 70%) !important; }
.ama-site [style*="background:radial-gradient(circle,rgba(249,227,168,.22),transparent 68%)"] { background: radial-gradient(circle,rgba(249,227,168,.22),transparent 68%) !important; }
.ama-site [style*="background:radial-gradient(ellipse at top,#2F3744,#0C1520 70%)"] { background: radial-gradient(ellipse at top,#2F3744,#0C1520 70%) !important; }
.ama-site [style*="background:rgba(217,225,234,.1)"] { background: rgba(217,225,234,.1) !important; }
.ama-site [style*="background:rgba(217,225,234,.12)"] { background: rgba(217,225,234,.12) !important; }
.ama-site [style*="background:rgba(249,227,168,.14)"] { background: rgba(249,227,168,.14) !important; }
.ama-site [style*="background:rgba(255,255,255,.04)"] { background: rgba(255,255,255,.04) !important; }
.ama-site [style*="background:rgba(255,255,255,.06)"] { background: rgba(255,255,255,.06) !important; }
.ama-site [style*="background:rgba(255,255,255,.92)"] { background: rgba(255,255,255,.92) !important; }

/* ============================================================
   Fix: theme/Elementor text-split / entrance animation stacking
   the H1 letters on top of each other (garbled hero heading).
   Stronger + higher specificity than the previous attempt, and
   resets every property a split-text animation typically uses.
   ============================================================ */
html body .ama-site h1,
html body .ama-site h1 *,
html body .ama-site h1::before,
html body .ama-site h1::after,
html body .ama-site h1 *::before,
html body .ama-site h1 *::after {
	position: static !important;
	display: inline !important;
	transform: none !important;
	translate: none !important;
	rotate: none !important;
	opacity: 1 !important;
	animation: none !important;
	transition: none !important;
	text-shadow: none !important;
	-webkit-text-stroke: 0 !important;
	clip-path: none !important;
	mix-blend-mode: normal !important;
	filter: none !important;
	white-space: normal !important;
	will-change: auto !important;
}

/* Faculty grid: 4 columns desktop, 2 tablet, 1 mobile */
@media (max-width: 900px) {
	.elementor-widget-ama_faculty_grid .ama-site section > div > div {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 540px) {
	.elementor-widget-ama_faculty_grid .ama-site section > div > div {
		grid-template-columns: 1fr !important;
	}
}

/* ── Home Concept: Feature Cards responsive ── */
.elementor-widget-ama_home_concept .ama-site .ama-concept-features {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
@media (max-width: 540px) {
	.elementor-widget-ama_home_concept .ama-site .ama-concept-features {
		grid-template-columns: 1fr !important;
	}
}

/* ═══════════════════════════════════════════════════
   WPForms — Match AgeMed Asia contact form design
   (Image 2: uppercase small labels, clean rounded
   inputs, dark submit button with arrow)
   ═══════════════════════════════════════════════════ */

/* Container reset */
.ama-wpforms-wrap .wpforms-container,
.ama-wpforms-wrap .wpforms-form {
	font-family: 'DM Sans', sans-serif !important;
	font-size: .95rem !important;
	color: #12181F !important;
}

/* Field rows */
.ama-wpforms-wrap .wpforms-field {
	padding: 0 0 18px !important;
	margin: 0 !important;
}

/* Labels */
.ama-wpforms-wrap .wpforms-field-label {
	font-family: 'DM Sans', sans-serif !important;
	font-size: .72rem !important;
	font-weight: 600 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: #8695AA !important;
	margin-bottom: 7px !important;
	display: block !important;
}

/* All inputs + textarea + select */
.ama-wpforms-wrap input[type="text"],
.ama-wpforms-wrap input[type="email"],
.ama-wpforms-wrap input[type="tel"],
.ama-wpforms-wrap input[type="url"],
.ama-wpforms-wrap input[type="number"],
.ama-wpforms-wrap input[type="password"],
.ama-wpforms-wrap select,
.ama-wpforms-wrap textarea {
	width: 100% !important;
	padding: 13px 16px !important;
	border: 1.5px solid #D9E1EA !important;
	border-radius: 10px !important;
	font-family: 'DM Sans', sans-serif !important;
	font-size: .95rem !important;
	color: #12181F !important;
	background: #fff !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
	outline: none !important;
	transition: border-color .15s !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.ama-wpforms-wrap input:focus,
.ama-wpforms-wrap select:focus,
.ama-wpforms-wrap textarea:focus {
	border-color: #2F3744 !important;
	box-shadow: 0 0 0 3px rgba(47,55,68,.08) !important;
}

/* Textarea height */
.ama-wpforms-wrap textarea {
	min-height: 120px !important;
	resize: vertical !important;
}

/* Name field: side-by-side on desktop */
.ama-wpforms-wrap .wpforms-field-name .wpforms-field-row {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 14px !important;
}
@media (max-width: 540px) {
	.ama-wpforms-wrap .wpforms-field-name .wpforms-field-row {
		grid-template-columns: 1fr !important;
	}
}

/* Phone field — international flag selector */
.ama-wpforms-wrap .wpforms-smart-phone-field {
	display: flex !important;
	align-items: center !important;
	gap: 0 !important;
}
.ama-wpforms-wrap .wpforms-smart-phone-field .iti {
	width: 100% !important;
}

/* Submit button */
.ama-wpforms-wrap .wpforms-submit-container {
	padding: 0 !important;
	margin: 6px 0 0 !important;
}
.ama-wpforms-wrap button[type="submit"],
.ama-wpforms-wrap input[type="submit"],
.ama-wpforms-wrap .wpforms-submit {
	width: 100% !important;
	display: block !important;
	text-align: center !important;
	font-family: 'DM Sans', sans-serif !important;
	font-weight: 600 !important;
	font-size: 1rem !important;
	border-radius: 10px !important;
	padding: 15px 28px !important;
	background: #2F3744 !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 8px 22px rgba(47,55,68,.28) !important;
	cursor: pointer !important;
	transition: background .15s !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.ama-wpforms-wrap button[type="submit"]:hover,
.ama-wpforms-wrap .wpforms-submit:hover {
	background: #252C3E !important;
}

/* Error messages */
.ama-wpforms-wrap .wpforms-error label,
.ama-wpforms-wrap label.wpforms-error {
	color: #e53e3e !important;
	font-size: .8rem !important;
	margin-top: 4px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.ama-wpforms-wrap .wpforms-error input,
.ama-wpforms-wrap .wpforms-error textarea,
.ama-wpforms-wrap .wpforms-error select {
	border-color: #e53e3e !important;
}

/* Success/confirmation message */
.ama-wpforms-wrap .wpforms-confirmation-container-full {
	background: #F0FFF4 !important;
	border: 1.5px solid #68D391 !important;
	border-radius: 10px !important;
	padding: 18px 22px !important;
	color: #276749 !important;
	font-weight: 500 !important;
}

/* Remove WPForms default bottom border on fields */
.ama-wpforms-wrap .wpforms-field-container {
	border: none !important;
	padding: 0 !important;
}

/* Hide WPForms honeypot */
.ama-wpforms-wrap .wpforms-field-hp {
	display: none !important;
}

/* ── WPForms Name field: fix First/Last side-by-side layout ──
   WPForms splits the name field into .wpforms-field-row-block
   sub-columns, not a simple grid. Override to force side-by-side. */

/* Remove our broken grid override */
.ama-wpforms-wrap .wpforms-field-name .wpforms-field-row {
	display: block !important;
	grid-template-columns: unset !important;
	gap: unset !important;
}

/* WPForms actual name sub-field structure */
.ama-wpforms-wrap .wpforms-field-name .wpforms-field-row:after {
	content: '' !important;
	display: table !important;
	clear: both !important;
}
.ama-wpforms-wrap .wpforms-field-name .wpforms-one-half {
	width: calc(50% - 7px) !important;
	display: inline-block !important;
	vertical-align: top !important;
	box-sizing: border-box !important;
}
.ama-wpforms-wrap .wpforms-field-name .wpforms-one-half.wpforms-first {
	margin-right: 14px !important;
}
.ama-wpforms-wrap .wpforms-field-name .wpforms-one-half input {
	width: 100% !important;
}

/* Sub-field labels (First / Last) */
.ama-wpforms-wrap .wpforms-field-name .wpforms-field-row label {
	font-size: .72rem !important;
	font-weight: 600 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: #8695AA !important;
	margin-bottom: 6px !important;
	display: block !important;
}

@media (max-width: 540px) {
	.ama-wpforms-wrap .wpforms-field-name .wpforms-one-half {
		width: 100% !important;
		display: block !important;
		margin-right: 0 !important;
		margin-bottom: 12px !important;
	}
}

/* ── WPForms: remove internal overflow/width constraints ──
   WPForms wraps everything in .wpforms-container which sometimes
   gets a fixed width or overflow:auto that causes the scrollbar
   and makes fields narrower than the card. */
.ama-wpforms-wrap .wpforms-container,
.ama-wpforms-wrap .wpforms-container-full,
.ama-wpforms-wrap .wpforms-form,
.ama-wpforms-wrap .wpforms-field-container {
	width: 100% !important;
	max-width: 100% !important;
	overflow: visible !important;
	box-sizing: border-box !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Each field must also be full width */
.ama-wpforms-wrap .wpforms-field {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	overflow: visible !important;
}

/* Inputs: ensure they don't exceed card width */
.ama-wpforms-wrap input[type="text"],
.ama-wpforms-wrap input[type="email"],
.ama-wpforms-wrap input[type="tel"],
.ama-wpforms-wrap input[type="url"],
.ama-wpforms-wrap input[type="number"],
.ama-wpforms-wrap select,
.ama-wpforms-wrap textarea {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* ITI phone field wrapper — must fill container */
.ama-wpforms-wrap .iti {
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}
.ama-wpforms-wrap .iti input {
	width: 100% !important;
}

/* ── Courses Module I: responsive stacking ── */
@media (max-width: 820px) {
	.elementor-widget-ama_courses_module1 .ama-mod1-grid {
		grid-template-columns: 1fr !important;
	}
	.elementor-widget-ama_courses_module1 .ama-mod1-grid > div:first-child {
		min-height: 220px !important;
		max-height: 280px !important;
	}
	.elementor-widget-ama_courses_module1 .ama-mod1-stats {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.elementor-widget-ama_courses_module1 .ama-mod1-topics {
		grid-template-columns: 1fr !important;
	}
}

/* ── Faculty Grid: responsive ── */
@media (max-width: 900px) {
	.elementor-widget-ama_faculty_grid .ama-faculty-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}
@media (max-width: 540px) {
	.elementor-widget-ama_faculty_grid .ama-faculty-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ── Contact Page: responsive ── */
@media (max-width: 860px) {
	/* Main 2-col grid (details + form) → stack */
	.elementor-widget-ama_contact_form .ama-contact-grid {
		grid-template-columns: 1fr !important;
		gap: 36px !important;
	}
	/* Contact info rows stay readable */
	.elementor-widget-ama_contact_form .ama-contact-grid > div:first-child {
		order: 2 !important;
	}
	/* Form card goes first on mobile */
	.elementor-widget-ama_contact_form .ama-contact-grid > div:last-child {
		order: 1 !important;
	}
	/* Reduce form card padding on mobile */
	.elementor-widget-ama_contact_form #form {
		padding: 24px 20px !important;
	}
}

/* Contact Hero: heading size on mobile */
@media (max-width: 600px) {
	.elementor-widget-ama_contact_hero header {
		padding: 52px 0 56px !important;
	}
}

/* ── Header: fix sticky positioning ──
   Elementor wraps widgets in .elementor-widget-container and
   .elementor-element divs. If any ancestor has overflow:hidden
   or a fixed height, position:sticky breaks. Force them to
   allow sticky to work correctly. */
.elementor-widget-ama_header,
.elementor-widget-ama_header .elementor-widget-container,
.elementor-widget-ama_header .elementor-element {
	position: static !important;
	overflow: visible !important;
	height: auto !important;
	contain: none !important;
}
/* The nav itself needs to be sticky relative to the viewport */
.elementor-widget-ama_header nav {
	position: sticky !important;
	top: 0 !important;
	z-index: 9999 !important;
}
/* Also fix the container column/section above it */
.elementor-widget-ama_header .elementor-column,
.elementor-widget-ama_header .elementor-section,
.elementor-widget-ama_header .e-con {
	overflow: visible !important;
	contain: none !important;
}