/* =========================================================================
   TechnoTaau Section Slider + Timeline
   Tweak the look through these custom properties (e.g. in Elementor custom CSS):
   .technotaau-slider { --technotaau-accent: #3fbf7f; }
   ========================================================================= */

.technotaau-slider,
.technotaau-timeline {
	--technotaau-card-bg: #eff8f3;
	--technotaau-card-border: #ddefe4;
	--technotaau-radius: 18px;
	--technotaau-img-radius: 14px;
	--technotaau-title: #0d2a2a;
	--technotaau-text: #3b4846;
	--technotaau-accent: #3fbf7f;
	--technotaau-accent-hover: #0d2b2b;
	--technotaau-gap: 32px;
	--technotaau-per-view: 3;
	--technotaau-img-pos: center;
	--technotaau-font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--technotaau-arrow-size: 48px;
	/* Arrows sit on the card edge: half over the card, half outside it. */
	--technotaau-arrow-space: calc(var(--technotaau-arrow-size) / 2);
	box-sizing: border-box;
	font-family: inherit;
}
.technotaau-slider *,
.technotaau-slider *::before,
.technotaau-slider *::after,
.technotaau-timeline *,
.technotaau-timeline *::before,
.technotaau-timeline *::after { box-sizing: border-box; }

/* ---------- Slider frame ---------- */

.technotaau-slider { position: relative; width: 100%; }
/* Inner wrapper is the size container, so column counts follow the space left after the arrows. */
.technotaau-slider .technotaau-slider__stage {
	position: relative;
	padding: 0 var(--technotaau-arrow-space);
}
.technotaau-slider .technotaau-slider__frame { container-type: inline-size; container-name: technotaau-slider; }

.technotaau-slider .technotaau-slider__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	padding: 2px; /* keeps card borders and focus rings from being clipped */
	scroll-padding-inline: 2px;
	margin: -2px;
	outline: none;
}
.technotaau-slider .technotaau-slider__viewport::-webkit-scrollbar { display: none; }
.technotaau-slider .technotaau-slider__viewport:focus-visible { box-shadow: 0 0 0 3px rgba(63, 191, 127, .45); border-radius: var(--technotaau-radius); }

.technotaau-slider .technotaau-slider__track {
	display: flex;
	gap: var(--technotaau-gap);
	list-style: none;
	margin: 0;
	padding: 0;
}

.technotaau-slider .technotaau-slider__slide {
	flex: 0 0 calc((100% - (var(--technotaau-per-view) - 1) * var(--technotaau-gap)) / var(--technotaau-per-view));
	min-width: 0;
	margin: 0;
	padding: 0;
	display: flex;
	scroll-snap-align: start;
}
.technotaau-slider .technotaau-slider__slide::before,
.technotaau-slider .technotaau-slider__slide::marker { content: none; }

/* ---------- Card (matches reference) ---------- */

.technotaau-slider .technotaau-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 16px;
	background: var(--technotaau-card-bg);
	border: 1px solid var(--technotaau-card-border);
	border-radius: 16px;
}

/* 3:2 image container — fixed on every breakpoint, original file untouched. */
.technotaau-slider .technotaau-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: var(--technotaau-img-radius);
	border: 1px solid rgba(13, 42, 42, .07);
	background: linear-gradient(135deg, #e3f3ea 0%, #cfeadb 100%);
	flex: 0 0 auto;
}
.technotaau-slider .technotaau-card__media img,
.technotaau-slider .technotaau-card__media .technotaau-card__img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	object-fit: cover;
	object-position: var(--technotaau-img-pos);
}
.technotaau-slider .technotaau-pos-top    { --technotaau-img-pos: center top; }
.technotaau-slider .technotaau-pos-bottom { --technotaau-img-pos: center bottom; }
.technotaau-slider .technotaau-pos-left   { --technotaau-img-pos: left center; }
.technotaau-slider .technotaau-pos-right  { --technotaau-img-pos: right center; }

/* Fallback for browsers without aspect-ratio. */
@supports not (aspect-ratio: 3 / 2) {
	.technotaau-slider .technotaau-card__media { height: 0; padding-top: 66.6667%; }
	.technotaau-slider .technotaau-card__media img { position: absolute; top: 0; left: 0; }
}

.technotaau-slider .technotaau-card__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 0 2px;
}

.technotaau-slider .technotaau-card__title {
	margin: 30px 0 14px;
	padding: 0;
	font-family: var(--technotaau-font);
	font-size: 25px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--technotaau-title);
}

.technotaau-slider .technotaau-card__text {
	font-family: var(--technotaau-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.75;
	color: var(--technotaau-text);
}
.technotaau-slider .technotaau-card__text p { margin: 0 0 .75em; color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; }
.technotaau-slider .technotaau-card__text p:last-child { margin-bottom: 0; }

/* Button follows the paragraph with the same visible gap as heading → paragraph.
   14px margin + the paragraph's line-height leading ≈ the heading/paragraph gap. */
.technotaau-slider .technotaau-card__action { margin-top: 0; padding-top: 17px; }

.technotaau-slider .technotaau-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 15px 24px 15px 24px;
	border: 0;
	border-radius: 50px;
	background: var(--technotaau-accent);
	box-shadow: none;
	color: #fff;
	font-family: var(--technotaau-font);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	text-decoration: none !important;
	white-space: nowrap;
	transition: background-color .25s ease, transform .25s ease;
}
.technotaau-slider .technotaau-card__btn:hover,
.technotaau-slider .technotaau-card__btn:focus-visible {
	background: var(--technotaau-accent-hover);
	color: #fff;
}
/* No underline from the theme, in any state (text-decoration, border or box-shadow styles). */
.technotaau-slider .technotaau-card__btn,
.technotaau-slider .technotaau-card__btn:link,
.technotaau-slider .technotaau-card__btn:visited,
.technotaau-slider .technotaau-card__btn:hover,
.technotaau-slider .technotaau-card__btn:focus,
.technotaau-slider .technotaau-card__btn:active,
.technotaau-slider .technotaau-card__btn span {
	text-decoration: none !important;
	text-underline-offset: 0;
	border-bottom: 0 !important;
	box-shadow: none !important;
	background-image: none !important;
}
.technotaau-slider .technotaau-card__btn:focus-visible { outline: 3px solid rgba(63, 191, 127, .5); outline-offset: 3px; }
.technotaau-slider .technotaau-card__arrow { flex: 0 0 auto; transition: transform .25s ease; }
.technotaau-slider .technotaau-card__btn:hover .technotaau-card__arrow { transform: translateX(3px); }

/* ---------- Navigation ---------- */

.technotaau-slider .technotaau-slider__btn.technotaau-slider__prev,
.technotaau-slider .technotaau-slider__btn.technotaau-slider__next {
	position: absolute;
	/* slider.js sets --technotaau-arrow-top to the middle of the card image, so the
	   arrow never covers the heading or text; 50% is the no-JS fallback. */
	top: var(--technotaau-arrow-top, 50%);
	z-index: 3;
	transform: translateY(-50%);
}
.technotaau-slider .technotaau-slider__prev { left: calc(var(--technotaau-arrow-space) - var(--technotaau-arrow-size) / 2); }
.technotaau-slider .technotaau-slider__next { right: calc(var(--technotaau-arrow-space) - var(--technotaau-arrow-size) / 2); }
.technotaau-slider.is-static .technotaau-slider__btn { visibility: hidden; }

.technotaau-slider .technotaau-slider__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--technotaau-arrow-size);
	height: var(--technotaau-arrow-size);
	padding: 0;
	margin: 0;
	border: 1px solid var(--technotaau-card-border);
	border-radius: 50%;
	background: #fff;
	color: var(--technotaau-title);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(13, 42, 42, .14);
	transition: background-color .2s ease, color .2s ease, opacity .2s ease, box-shadow .2s ease;
}
.technotaau-slider .technotaau-slider__btn:hover:not(:disabled),
.technotaau-slider .technotaau-slider__btn:focus-visible {
	background: var(--technotaau-accent);
	border-color: var(--technotaau-accent);
	color: #fff;
}
.technotaau-slider .technotaau-slider__btn:focus-visible { outline: 3px solid rgba(63, 191, 127, .45); outline-offset: 2px; }
.technotaau-slider .technotaau-slider__btn:disabled { cursor: default; color: #b9c6c1; box-shadow: 0 3px 10px rgba(13, 42, 42, .08); } /* stays opaque so the card never shows through */
.technotaau-slider .technotaau-slider__btn svg { display: block; }

/* ---------- Responsive ----------
   Columns follow the width of the slider's own container (works in narrow
   Elementor columns too). Viewport media queries are the fallback for
   browsers without container queries. */

@media (max-width: 1024px) {
	.technotaau-slider .technotaau-slider__track { --technotaau-per-view: 2; --technotaau-gap: 24px; }
}
@media (max-width: 767px) {
	.technotaau-slider .technotaau-slider__track { --technotaau-per-view: 1; --technotaau-gap: 16px; }
}
@supports (container-type: inline-size) {
	@container technotaau-slider (min-width: 0px) {
		.technotaau-slider .technotaau-slider__track { --technotaau-per-view: 1; --technotaau-gap: 16px; }
	}
	@container technotaau-slider (min-width: 600px) {
		.technotaau-slider .technotaau-slider__track { --technotaau-per-view: 2; --technotaau-gap: 24px; }
	}
	@container technotaau-slider (min-width: 960px) {
		.technotaau-slider .technotaau-slider__track { --technotaau-per-view: 3; --technotaau-gap: 32px; }
	}
}
/* Tablet and phone: slightly smaller arrows, still half over the card edge. */
@media (max-width: 1024px) {
	.technotaau-slider { --technotaau-arrow-size: 44px; }
}
@media (max-width: 767px) {
	.technotaau-slider { --technotaau-arrow-size: 40px; }
	.technotaau-slider .technotaau-slider__btn svg { width: 18px; height: 18px; }
}
@media (prefers-reduced-motion: reduce) {
	.technotaau-slider .technotaau-slider__viewport { scroll-behavior: auto; }
	.technotaau-slider .technotaau-card__btn,
	.technotaau-slider .technotaau-card__arrow { transition: none; }
}

/* ---------- Timeline ---------- */

.technotaau-timeline { width: 100%; }
.technotaau-timeline .technotaau-timeline__list {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 8px 0;
}
.technotaau-timeline .technotaau-timeline__list::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	transform: translateX(-50%);
	background: linear-gradient(to bottom, transparent, var(--technotaau-card-border) 24px, var(--technotaau-card-border) calc(100% - 24px), transparent);
}
.technotaau-timeline .technotaau-timeline__item {
	position: relative;
	width: 50%;
	margin: 0;
	padding: 0 48px 40px 0;
}
.technotaau-timeline .technotaau-timeline__item::before,
.technotaau-timeline .technotaau-timeline__item::marker { content: none; }
.technotaau-timeline .technotaau-timeline__item:nth-child(even) { margin-left: 50%; padding: 0 0 40px 48px; }
.technotaau-timeline .technotaau-timeline__item:last-child { padding-bottom: 0; }

.technotaau-timeline .technotaau-timeline__marker {
	position: absolute;
	top: 20px;
	right: -20px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--technotaau-accent);
	color: #fff;
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 0 0 6px #fff, 0 0 0 7px var(--technotaau-card-border);
}
.technotaau-timeline .technotaau-timeline__item:nth-child(even) .technotaau-timeline__marker { right: auto; left: -20px; }

.technotaau-timeline .technotaau-timeline__card {
	padding: 26px 28px;
	background: var(--technotaau-card-bg);
	border: 1px solid var(--technotaau-card-border);
	border-radius: var(--technotaau-radius);
}
.technotaau-timeline .technotaau-timeline__title {
	margin: 0 0 10px;
	padding: 0;
	font-family: inherit;
	font-size: clamp(20px, 1.7vw, 26px);
	font-weight: 700;
	line-height: 1.3;
	color: var(--technotaau-title);
}
.technotaau-timeline .technotaau-timeline__text {
	font-size: clamp(15px, 1.05vw, 17px);
	line-height: 1.8;
	color: var(--technotaau-text);
}
.technotaau-timeline .technotaau-timeline__text p { margin: 0 0 .75em; color: inherit; font-size: inherit; line-height: inherit; }
.technotaau-timeline .technotaau-timeline__text p:last-child { margin-bottom: 0; }

@media (max-width: 767px) {
	.technotaau-timeline .technotaau-timeline__list::before { left: 19px; transform: none; }
	.technotaau-timeline .technotaau-timeline__item,
	.technotaau-timeline .technotaau-timeline__item:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 28px 60px; }
	.technotaau-timeline .technotaau-timeline__item:last-child { padding-bottom: 0; }
	.technotaau-timeline .technotaau-timeline__marker,
	.technotaau-timeline .technotaau-timeline__item:nth-child(even) .technotaau-timeline__marker { left: 0; right: auto; top: 18px; }
	.technotaau-timeline .technotaau-timeline__card { padding: 20px; }
}

/* Admin-only empty notice */
.technotaau-empty-notice { padding: 16px 20px; border: 1px dashed #9cc9b0; border-radius: 12px; background: #f5fbf8; color: #3b4846; font-size: 14px; }
