/* Top Class Helpers – home page / shared sections */
:root {
	--tc-navy: #091F31;
	--tc-teal: #0E6165;
	--tc-gold: #C89320;
	--tc-ink: #4A5A68;
	--tc-soft: #F2F7F7;
}

.tc-hero { background: radial-gradient(1200px 600px at 85% 20%, rgba(14,97,101,.55), transparent 60%), var(--tc-navy); }
.tc-hero h1 { color: #fff; font-size: clamp(30px, 4.2vw, 54px); line-height: 1.12; margin: 0 0 14px; }
.tc-hero .tc-offer { color: var(--tc-gold); font-weight: 700; font-size: 20px; margin-bottom: 18px; }
.tc-hero .tc-trust img { max-height: 34px; width: auto; margin-right: 18px; }

.tc-form { background: #fff; border-radius: 18px; padding: 28px; box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.tc-form p { margin: 0 0 12px; }
.tc-form input, .tc-form select { width: 100%; border: 1px solid #d5dde3; border-radius: 10px; padding: 12px 14px; font-size: 15px; background: #fff; }
.tc-form input:focus, .tc-form select:focus { border-color: var(--tc-teal); outline: 0; box-shadow: 0 0 0 3px rgba(14,97,101,.15); }
.tc-form input[type=submit] { background: var(--tc-gold); color: var(--tc-navy); font-weight: 800; border: 0; cursor: pointer; letter-spacing: .02em; transition: transform .2s, background .2s; }
.tc-form input[type=submit]:hover { background: #e0a82b; transform: translateY(-2px); }

.tc-kicker { color: var(--tc-teal); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 13px; }
.tc-title h2, h2.tc-title { color: var(--tc-navy); font-size: clamp(26px, 3vw, 40px); line-height: 1.2; }
.tc-center { text-align: center; }
.tc-light h2, .tc-light h3, .tc-light p, .tc-light li { color: #fff; }

.tc-card { background: #fff; border: 1px solid #e3ebee; border-radius: 16px; padding: 28px; height: 100%; transition: transform .25s, box-shadow .25s, border-color .25s; }
.tc-card:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(9,31,49,.12); border-color: var(--tc-teal); }
.tc-card h3, .tc-card .elementor-image-box-title { color: var(--tc-navy); font-size: 20px; margin: 10px 0 8px; }
.tc-card p, .tc-card .elementor-image-box-description { color: var(--tc-ink); margin: 0; }
.tc-card .elementor-image-box-img img { max-width: 72px; }
.tc-num { display: inline-flex; width: 44px; height: 44px; border-radius: 50%; background: var(--tc-teal); color: #fff; font-weight: 800; align-items: center; justify-content: center; margin-bottom: 8px; }

.tc-soft { background: var(--tc-soft); }
.tc-navy { background: var(--tc-navy); }
.tc-band-teal { background: linear-gradient(100deg, var(--tc-teal), #0b4b4e); }
.tc-band-teal h2, .tc-band-teal h3 { color: #fff; margin: 0; }
.tc-btn .elementor-button { background: var(--tc-gold); color: var(--tc-navy); font-weight: 800; border-radius: 40px; padding: 14px 30px; transition: transform .2s, box-shadow .2s; }
.tc-btn .elementor-button:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(200,147,32,.4); color: var(--tc-navy); }
.tc-btn-outline .elementor-button { background: transparent; color: #fff; border: 2px solid #fff; border-radius: 40px; padding: 12px 28px; font-weight: 700; }
.tc-btn-outline .elementor-button:hover { background: #fff; color: var(--tc-navy); }

.tc-stat .elementor-counter-number-wrapper { color: var(--tc-gold); font-weight: 800; }
.tc-stat .elementor-counter-title { color: #fff; }

.tc-review { background: #fff; border-radius: 16px; padding: 24px; height: 100%; box-shadow: 0 10px 30px rgba(9,31,49,.07); border-top: 4px solid var(--tc-gold); }
.tc-review img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; }
.tc-review p { color: var(--tc-ink); font-style: italic; margin: 0; }
.tc-stars { color: var(--tc-gold); letter-spacing: 3px; margin-bottom: 8px; }

.tc-logos img { max-height: 70px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; margin: 0 14px; }
.tc-logos img:hover { filter: none; opacity: 1; }

.tc-faq .elementor-accordion-item { border: 1px solid #e3ebee; border-radius: 12px; margin-bottom: 12px; overflow: hidden; }
.tc-faq .elementor-tab-title { padding: 18px 22px; background: #fff; }
.tc-faq .elementor-tab-title a { color: var(--tc-navy); font-weight: 700; }
.tc-faq .elementor-tab-content { color: var(--tc-ink); padding: 0 22px 18px; border: 0; }

.tc-disclaimer { font-size: 13px; color: #6b7a86; text-align: center; }

/* Floating actions */
.tc-float-wa { position: fixed; right: 20px; bottom: 20px; z-index: 999; background: #25D366; color: #fff; border-radius: 50px; padding: 12px 20px; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,.25); animation: tcPulse 2.2s infinite; text-decoration: none; }
.tc-float-wa:hover { color: #fff; }
@keyframes tcPulse { 0% { box-shadow: 0 0 0 0 rgba(37,211,102,.5); } 70% { box-shadow: 0 0 0 16px rgba(37,211,102,0); } 100% { box-shadow: 0 0 0 0 rgba(37,211,102,0); } }

@media (prefers-reduced-motion: reduce) {
	.tc-card, .tc-btn .elementor-button, .tc-float-wa { transition: none; animation: none; }
}
@media (max-width: 767px) {
	.tc-form { padding: 20px; }
}

/* Header top bar + footer */
.tc-topbar, .tc-topbar a { color: #fff; font-size: 13px; }
.tc-topbar-l span { margin-left: 18px; color: #F5D78A; font-weight: 600; }
.tc-topbar-r { text-align: right; }
.tc-topbar-r a { margin-left: 18px; }
.tc-topbar a:hover { color: var(--tc-gold); }
.tc-foot, .tc-foot p, .tc-foot li, .tc-foot a { color: #cfd9e0; font-size: 15px; }
.tc-foot-links { list-style: none; margin: 0; padding: 0; }
.tc-foot-links li { margin-bottom: 10px; }
.tc-foot a:hover { color: var(--tc-gold); }
.tc-foot-title h4 { color: #fff; font-size: 18px; margin-bottom: 14px; }
.tc-foot-bottom, .tc-foot-bottom p { color: #9fb0bd; font-size: 13px; margin: 0 0 6px; }
.tc-foot-disc { max-width: 900px; margin: 8px auto 0; opacity: .8; }
/* long Online Exams dropdown: two columns */
.navbar-nav .dropdown-menu li.menu-item-has-children > .dropdown-menu { column-count: 2; min-width: 520px; }

/* Header sizing */
.elementor-widget-apus_element_logo img { max-height: 58px; width: auto; }
.tc-foot-logo img, footer .elementor-widget-apus_element_logo img { max-height: 70px; }
.elementor-location-header .navbar-nav, header .navbar-nav { flex-wrap: nowrap; }
header .navbar-nav > li > a { white-space: nowrap; font-size: 15px; padding-left: 10px; padding-right: 10px; }
.tc-foot a, .tc-foot a:visited { color: #cfd9e0 !important; }
.tc-foot a:hover { color: var(--tc-gold) !important; }

/* Inner page heroes + link cards */
.tc-page-hero h1 { text-align: center; }
.tc-sub { color: #cfe3e4; font-size: 18px; max-width: 760px; margin: 0 auto; }
.tc-link-card h3 { margin-top: 0; }
.tc-link-card h3 a { color: var(--tc-navy); }
.tc-link-card h3 a:hover { color: var(--tc-teal); }
.tc-more { display: inline-block; margin-top: 14px; color: var(--tc-teal); font-weight: 700; }
.tc-more:hover { color: var(--tc-gold); }
.tc-contact-card { background: #fff; border: 1px solid #e3ebee; border-radius: 16px; padding: 22px 26px; margin-bottom: 16px; }
.tc-contact-card h3 { margin: 0 0 6px; color: var(--tc-navy); font-size: 18px; }
.tc-contact-card p, .tc-contact-card a { margin: 0; color: var(--tc-ink); font-size: 17px; }
.tc-contact-card a:hover { color: var(--tc-teal); }

/* Discount tab + modal */
.tc-discount-tab { position: fixed; right: 0; top: 45%; z-index: 998; transform-origin: right bottom; transform: rotate(-90deg) translate(100%, 0); background: var(--tc-gold); color: var(--tc-navy); font-weight: 800; letter-spacing: .03em; border: 0; padding: 10px 22px; border-radius: 10px 10px 0 0; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.tc-discount-tab:hover { background: #e0a82b; }
.tc-modal[hidden] { display: none; }
.tc-modal { position: fixed; inset: 0; z-index: 10000; background: rgba(9,31,49,.72); display: flex; align-items: center; justify-content: center; padding: 16px; }
.tc-modal-box { position: relative; background: #fff; border-radius: 18px; max-width: 460px; width: 100%; padding: 32px; max-height: 92vh; overflow: auto; animation: tcPop .25s ease-out; }
.tc-modal-box h2 { color: var(--tc-navy); font-size: 24px; margin: 0 0 18px; text-align: center; }
.tc-modal-box .tc-form { box-shadow: none; padding: 0; }
.tc-modal-close { position: absolute; right: 14px; top: 10px; background: none; border: 0; font-size: 30px; line-height: 1; color: var(--tc-navy); cursor: pointer; }
html.tc-modal-open { overflow: hidden; }
@keyframes tcPop { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { .tc-discount-tab { top: auto; bottom: 90px; transform: none; right: 0; border-radius: 10px 0 0 10px; padding: 8px 14px; font-size: 12px; } }
@media (prefers-reduced-motion: reduce) { .tc-modal-box { animation: none; } }
@media (max-width: 767px) { .tc-float-wa { right: 12px; bottom: 12px; padding: 9px 14px; font-size: 13px; } .tc-discount-tab { bottom: 70px; } }

/* Home 2 based layout */
.tc-h2-title h1, h1.tc-h2-title, .tc-h2-title .elementor-heading-title { font-size: clamp(34px, 4.4vw, 58px); line-height: 1.1; color: #fff; }
.text-green, .text-underline.text-green { color: var(--tc-gold); }
.tc-hero-features .elementor-image img { max-width: 56px; margin-bottom: 6px; }
.tc-hero-features h3 { color: #fff; font-size: 20px; }
.tc-photo img { border-radius: 24px; box-shadow: 0 30px 60px rgba(9,31,49,.18); }
.tc-light-title h2, .tc-light-title .elementor-heading-title { color: #fff; }
.tc-btn-solid .elementor-button { background: var(--tc-teal); color: #fff; font-weight: 700; border-radius: 40px; padding: 12px 26px; }
.tc-btn-solid .elementor-button:hover { background: var(--tc-navy); color: #fff; }
.elementor-widget-apus_element_address_box .title a, .elementor-widget-apus_element_address_box .title { color: var(--tc-navy); }
.text-green, .text-underline.text-green, h1 .text-green { color: #C89320 !important; }
.tc-hero .tc-trust, .elementor-section .tc-trust { display: inline-flex; align-items: center; gap: 18px; background: #fff; border-radius: 12px; padding: 10px 18px; }
.tc-trust img { margin: 0 !important; max-height: 30px; }
.tc-hero .tc-offer { color: #F2C14E; }
.tc-offer, .elementor-widget-text-editor .tc-offer { color: #F2C14E !important; font-weight: 700; font-size: 20px; margin: 0 0 14px; }

/* mobile overflow fixes */
.elementor-widget-apus_element_brands, .elementor-widget-apus_element_brands .elementor-widget-container { overflow: hidden; max-width: 100%; }
@media (max-width: 767px) {
	.tc-trust { flex-wrap: wrap; gap: 10px 14px; max-width: 100%; justify-content: center; }
	.tc-trust img { max-height: 24px; }
	.tc-hero-features .elementor-column { width: 50% !important; }
}

/* Quote form: no stray space under the button */
.tc-form .wpcf7-response-output:empty, .tc-form .wpcf7-response-output[aria-hidden="true"]:empty { display: none; margin: 0; padding: 0; border: 0; }
.tc-form .wpcf7-response-output { margin: 8px 0 0; padding: 8px 12px; font-size: 14px; border-radius: 8px; }
.tc-form .wpcf7-spinner { position: absolute; margin: 0; }
.tc-form form > p:last-of-type { margin-bottom: 0; }
.tc-form .wpcf7 { margin: 0; }
.tc-hero .elementor-widget-shortcode { margin-bottom: 0; }
.tc-hero .elementor-widget-wrap { align-content: center; }
.tc-page-hero h1 { margin: 0; }

/* Blog / archive banner (matches the page heroes) */
.tc-blog-banner { position: relative; background-color: #091F31; background-size: cover; background-position: center; background-repeat: no-repeat; padding: 80px 0; margin: 0; }
.tc-blog-banner::before { content: ""; position: absolute; inset: 0; background: rgba(9,31,49,.84); }
.tc-blog-banner .container { position: relative; z-index: 1; }
.tc-blog-banner .tc-banner-title { color: #fff; text-align: center; font-size: clamp(30px, 4vw, 52px); line-height: 1.12; margin: 0 0 12px; font-weight: 700; }
.tc-blog-banner .breadcrumb { justify-content: center; margin: 0; padding: 0; background: transparent; }
.tc-blog-banner .breadcrumb a, .tc-blog-banner .breadcrumb li, .tc-blog-banner .breadcrumb .breadcrumb-item { color: #cfe3e4; }
.tc-blog-banner .breadcrumb li.active, .tc-blog-banner .breadcrumb .active { color: #F2C14E; }
.tc-blog-banner .wrapper-breads-inner, .tc-blog-banner .wrapper-breads { text-align: center; }
.tc-blog-banner ol.breadcrumb { display: flex !important; justify-content: center !important; float: none !important; }
body.tc-inline-img-post .single-info .entry-thumb { display: none; }
.single-post .entry-content img, .single-post .entry-content .alignnone { max-width: 100%; height: auto; border-radius: 12px; }

/* equal-height card rows */
.tc-cards-row .elementor-column > .elementor-widget-wrap, .tc-cards-row .elementor-column > .elementor-column-wrap, .tc-cards-row .elementor-column > .elementor-column-wrap > .elementor-widget-wrap { height: 100%; }
.tc-cards-row .elementor-widget, .tc-cards-row .elementor-widget > .elementor-widget-container { height: 100%; }
.tc-cards-row .elementor-widget-wrap { align-content: stretch; }

/* ---------- Responsive ---------- */
.tc-foot-bottom .tc-foot-disc { margin: 8px auto 0; max-width: 900px; text-align: center; }
.tc-foot-bottom, .tc-foot-bottom p { text-align: center; }

.tc-mobile-strip { display: none; }
@media (max-width: 1199.98px) {
	/* the theme's mobile header is position:fixed, so the strip is fixed too and the header sits right under it */
	.tc-mobile-strip { position: fixed; top: 0; left: 0; right: 0; z-index: 1032; height: 34px; display: flex; align-items: center; justify-content: center; gap: 14px; white-space: nowrap; overflow: hidden; background: var(--tc-teal); color: #fff; font-size: 12.5px; transition: transform .25s ease; }
	.tc-mobile-strip a { color: #fff; font-weight: 600; }
	.tc-mobile-strip .tc-strip-offer { color: #F5D78A; font-weight: 600; }
	#apus-header-mobile { top: 34px !important; transition: top .25s ease; }
	#wrapper-container { padding-top: 34px; }
	html.tc-scrolled .tc-mobile-strip { transform: translateY(-100%); }
	html.tc-scrolled #apus-header-mobile { top: 0 !important; }
}
@media (max-width: 359px) { .tc-mobile-strip .tc-strip-offer { display: none; } }
@media (prefers-reduced-motion: reduce) { .tc-mobile-strip, #apus-header-mobile { transition: none; } }

/* hero: text above, form below on tablets/phones, centred */
@media (max-width: 1024px) {
	.tc-hero .elementor-widget-heading, .tc-hero .elementor-widget-text-editor { text-align: center; }
	.tc-hero .tc-trust { justify-content: center; }
	.tc-hero .elementor-widget-shortcode { max-width: 560px; margin-left: auto; margin-right: auto; }
	.tc-hero .elementor-widget-wrap { justify-content: center; }
	.tc-hero .tc-hero-features .elementor-column { width: 50% !important; }
}
@media (max-width: 767px) {
	.tc-hero h1, .tc-h2-title .elementor-heading-title { font-size: clamp(28px, 8vw, 38px); }
	.tc-band-teal .elementor-column { text-align: center; }
	.tc-band-teal .elementor-widget-button .elementor-button-wrapper { text-align: center !important; }
	.tc-btn .elementor-button, .tc-btn-outline .elementor-button { padding: 12px 22px; }
	.tc-card { padding: 22px; }
	.tc-discount-tab { padding: 8px 12px; font-size: 12px; }
}
@media (min-width: 1700px) {
	.tc-hero h1, .tc-h2-title .elementor-heading-title { font-size: 64px; }
}
@media (min-width: 1700px) {
	[data-elementor-type="wp-page"] > .elementor-section-boxed > .elementor-container,
	[data-elementor-type="wp-page"] .elementor-top-section.elementor-section-boxed > .elementor-container { max-width: 1400px; }
}

/* phones: compact logo strip, floating buttons side by side instead of stacked over the form */
@media (max-width: 575px) {
	.tc-trust { flex-wrap: nowrap; gap: 8px; padding: 8px 10px; width: 100%; box-sizing: border-box; justify-content: space-between; }
	.tc-trust img { max-height: 20px; max-width: 31%; width: auto; object-fit: contain; }
	.tc-discount-tab { top: auto; bottom: 12px; left: 0; right: auto; transform: none; border-radius: 0 10px 10px 0; padding: 9px 12px; font-size: 12px; }
	.tc-float-wa { right: 10px; bottom: 12px; padding: 9px 12px; font-size: 12.5px; }
}
@media (max-width: 767px) { .tc-foot-bottom { padding-bottom: 76px; } }

/* laptops (1200-1439px): keep menu + quote button on one line */
@media (min-width: 1200px) and (max-width: 1439px) {
	#apus-header .elementor-widget-apus_element_primary_menu { margin-right: 10px !important; }
	#apus-header .navbar-nav > li > a { padding-left: 8px !important; padding-right: 8px !important; font-size: 14px !important; white-space: nowrap; }
	#apus-header .elementor-widget-button .elementor-button { padding: 10px 16px; font-size: 14px; white-space: nowrap; }
	#apus-header .elementor-column .elementor-widget-wrap { flex-wrap: nowrap; align-items: center; }
	#apus-header .tc-topbar-l span { margin-left: 10px; }
}

/* ---------- Home 2 style header (transparent over the hero) + footer ---------- */
.elementor-widget-apus_element_logo img { max-height: 52px; width: auto; }
.tc-footer-main .elementor-widget-apus_element_logo img { max-height: 64px; }
@media (min-width: 1200px) {
	/* the header floats over the hero, so leave room for the top bar + menu */
	.tc-hero.elementor-section { padding-top: 215px !important; }
	.tc-hero.tc-page-hero.elementor-section { padding-top: 190px !important; padding-bottom: 80px !important; }
}
@media (max-width: 1199.98px) {
	.tc-hero.elementor-section { padding-top: 70px !important; }
}
.tc-topbar .elementor-widget-text-editor { margin: 0; }

/* footer 2 */
.tc-footer-main .tc-foot-title h4 { font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin: 0 0 16px; font-weight: 600; }
.tc-foot-pill { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,.08); border-radius: 40px; padding: 8px 8px 8px 24px; max-width: 460px; color: #cfd9e0; }
.tc-foot-pill button { width: 42px; height: 42px; border-radius: 50%; border: 0; background: var(--tc-gold); color: var(--tc-navy); font-size: 20px; font-weight: 700; cursor: pointer; transition: transform .2s; }
.tc-foot-pill button:hover { transform: translateX(3px); }
.tc-foot-label { color: #9fb0bd; font-size: 14px; margin-bottom: 4px; }
.tc-foot-big, .tc-foot-big a { color: #fff !important; font-size: 18px; font-weight: 600; }
.tc-foot-copy, .tc-foot-copy a { color: #9fb0bd !important; font-size: 13px; margin: 0; }
.tc-foot-right { text-align: right; }
.tc-foot-disc { color: #7f93a3; font-size: 13px; line-height: 1.7; margin: 0 auto; max-width: 980px; text-align: center; }
@media (max-width: 767px) { .tc-foot-right { text-align: left; } .tc-foot-pill { max-width: 100%; } }

/* header menu stays white (the theme link colour is teal) */
#apus-header .navbar-nav > li > a, #apus-header .navbar-nav > li > a .caret, #apus-header .navbar-nav > li > a i { color: #fff !important; }
#apus-header .navbar-nav > li:hover > a, #apus-header .navbar-nav > li.active > a, #apus-header .navbar-nav > li.current-menu-item > a, #apus-header .navbar-nav > li.current-menu-ancestor > a { color: #C89320 !important; }
#apus-header .navbar-nav .dropdown-menu a { color: #091F31 !important; }
#apus-header .navbar-nav .dropdown-menu a:hover { color: #0E6165 !important; }

/* ---------- Floating elements (final layout) ----------
   bottom-right: Tawk.to chat bubble, scroll-to-top button just above it
   bottom-left : WhatsApp quote button
   right edge  : vertical "Get 30% Discount" tab                          */
.tc-float-wa { left: 20px !important; right: auto !important; bottom: 20px !important; }
#back-to-top.add-fix-top { bottom: 110px !important; right: 30px !important; z-index: 9990; }
@media (max-width: 1199.98px) { #back-to-top.add-fix-top { bottom: 90px !important; right: 18px !important; } }
@media (max-width: 767px) {
	.tc-float-wa { left: 10px !important; bottom: 12px !important; padding: 9px 12px; font-size: 12.5px; }
	.tc-discount-tab { top: 50% !important; bottom: auto !important; left: auto !important; right: 0 !important; transform-origin: right bottom; transform: rotate(-90deg) translate(100%, 0) !important; border-radius: 10px 10px 0 0 !important; padding: 7px 12px !important; font-size: 11.5px !important; }
}
