@layer tushal.components {
	.tushal-button {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: .55rem;
		min-height: 50px;
		padding: .75rem 1.35rem;
		border: 2px solid transparent;
		border-radius: var(--tushal-radius-control);
		font-weight: 800;
		line-height: 1;
		text-decoration: none;
		box-shadow: var(--tushal-shadow-sm);
		transition: transform var(--tushal-duration-fast) var(--tushal-ease), background var(--tushal-duration-standard) var(--tushal-ease), color var(--tushal-duration-standard) var(--tushal-ease), border-color var(--tushal-duration-standard) var(--tushal-ease), box-shadow var(--tushal-duration-standard) var(--tushal-ease);
	}

	.tushal-button:hover,
	.tushal-button:focus-visible {
		transform: translateY(-2px);
		box-shadow: var(--tushal-shadow-card);
	}

	.tushal-button--primary {
		background: var(--tushal-color-primary);
		color: var(--tushal-color-ink);
	}

	.tushal-button--primary:hover,
	.tushal-button--primary:focus-visible {
		background: var(--tushal-color-primary-hover);
		color: var(--tushal-color-white);
	}

	.tushal-button--secondary {
		background: var(--tushal-color-violet-500);
		color: var(--tushal-color-white);
	}

	.tushal-button--secondary:hover,
	.tushal-button--secondary:focus-visible {
		background: var(--tushal-color-blue-600);
		color: var(--tushal-color-white);
	}

	.tushal-button--outline {
		border-color: var(--tushal-color-orange-500);
		background: var(--tushal-color-white);
		color: var(--tushal-color-ink);
	}

	.tushal-button--outline:hover,
	.tushal-button--outline:focus-visible {
		border-color: var(--tushal-color-blue-600);
		background: var(--tushal-color-blue-600);
		color: var(--tushal-color-white);
	}

	.tushal-button--whatsapp {
		background: #17b968;
		color: var(--tushal-color-white);
	}

	.tushal-button--whatsapp:hover,
	.tushal-button--whatsapp:focus-visible {
		background: #0f8f50;
		color: var(--tushal-color-white);
	}

	.tushal-card {
		min-width: 0;
		padding: clamp(1rem, 2vw, 2rem);
		border: 2px solid var(--tushal-card-border, var(--tushal-color-border-strong));
		border-radius: var(--tushal-radius-card);
		background: var(--tushal-card-bg, var(--tushal-color-white));
		box-shadow: var(--tushal-shadow-card);
		transition: transform var(--tushal-duration-standard) var(--tushal-ease), box-shadow var(--tushal-duration-standard) var(--tushal-ease), border-color var(--tushal-duration-standard) var(--tushal-ease);
	}

	.tushal-card:hover {
		transform: translateY(-5px);
		border-color: var(--tushal-color-orange-500);
		box-shadow: var(--tushal-shadow-elevated);
	}

	.tushal-card--warm { --tushal-card-bg: var(--tushal-color-cream); --tushal-card-border: #f4a340; }
	.tushal-card--cool { --tushal-card-bg: var(--tushal-color-sky); --tushal-card-border: #5b8eff; }
	.tushal-card--lilac { --tushal-card-bg: var(--tushal-color-lilac); --tushal-card-border: #8c76ff; }
	.tushal-card--aqua { --tushal-card-bg: var(--tushal-color-aqua); --tushal-card-border: #29b99a; }
	.tushal-card--dark { --tushal-card-bg: var(--tushal-color-navy-900); --tushal-card-border: #6d82ff; color: rgb(255 255 255 / 86%); }
	.tushal-card--dark h3 { color: var(--tushal-color-white); }

	.tushal-badge {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: .45rem;
		min-height: 34px;
		padding: .45rem .85rem;
		border: 1px solid rgb(55 108 255 / 30%);
		border-radius: var(--tushal-radius-pill);
		background: var(--tushal-color-white);
		box-shadow: var(--tushal-shadow-sm);
		color: var(--tushal-color-blue-600);
		font-size: .78rem;
		font-weight: 800;
		letter-spacing: .08em;
		text-transform: uppercase;
	}

	.tushal-section-header {
		display: grid;
		justify-items: center;
		gap: var(--tushal-space-3);
		max-width: 850px;
		margin: 0 auto clamp(1.75rem, 4vw, 3rem);
		text-align: center;
	}

	.tushal-section-header p {
		max-width: 68ch;
		margin: 0;
		color: var(--tushal-color-copy);
	}

	.tushal-section-title {
		text-align: center;
	}

	.tushal-section-intro {
		text-align: center;
	}

	.tushal-icon-box {
		display: inline-grid;
		place-items: center;
		width: 46px;
		height: 46px;
		border-radius: 14px;
		background: linear-gradient(145deg, var(--tushal-color-orange-500), #ffb85f);
		box-shadow: var(--tushal-shadow-sm);
		color: var(--tushal-color-ink);
		font-weight: 900;
	}

	.tushal-stat {
		display: grid;
		place-items: center;
		min-height: 122px;
		padding: 1rem;
		border: 2px solid var(--tushal-color-border-strong);
		border-radius: var(--tushal-radius-card);
		background: var(--tushal-color-white);
		box-shadow: var(--tushal-shadow-sm);
		text-align: center;
	}

	.tushal-stat strong {
		color: var(--tushal-color-violet-500);
		font-size: clamp(1.8rem, 3vw, 3rem);
		line-height: 1;
	}

	.tushal-chip-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: .55rem;
	}

	.tushal-chip {
		display: inline-flex;
		align-items: center;
		gap: .4rem;
		padding: .58rem .8rem;
		border: 1px solid rgb(55 108 255 / 28%);
		border-radius: var(--tushal-radius-pill);
		background: rgb(255 255 255 / 88%);
		box-shadow: var(--tushal-shadow-sm);
		color: var(--tushal-color-ink);
		font-size: .88rem;
		font-weight: 700;
	}

	.tushal-field {
		display: grid;
		gap: .45rem;
	}

	.tushal-field label {
		color: var(--tushal-color-ink);
		font-weight: 800;
	}

	.tushal-field input,
	.tushal-field textarea,
	.tushal-field select {
		width: 100%;
		min-height: 50px;
		padding: .75rem .9rem;
		border: 2px solid #26334e;
		border-radius: var(--tushal-radius-control);
		background: var(--tushal-color-white);
		color: var(--tushal-color-ink);
	}

	.tushal-field textarea { min-height: 145px; resize: vertical; }

	.tushal-field input:focus,
	.tushal-field textarea:focus,
	.tushal-field select:focus {
		border-color: var(--tushal-color-orange-500);
		outline: 0;
		box-shadow: var(--tushal-shadow-focus);
	}

	.tushal-form {
		display: grid;
		gap: var(--tushal-space-4);
	}

	.tushal-floating-whatsapp {
		position: fixed;
		right: 12px;
		bottom: 14px;
		z-index: 900;
		display: grid;
		place-items: center;
		width: 50px;
		height: 50px;
		border: 2px solid var(--tushal-color-white);
		border-radius: 50%;
		background: #17b968;
		box-shadow: 0 12px 28px rgb(16 125 71 / 28%);
		color: var(--tushal-color-white);
		text-decoration: none;
		transition: transform var(--tushal-duration-fast) var(--tushal-ease), background var(--tushal-duration-standard) var(--tushal-ease);
	}

	.tushal-floating-whatsapp:hover,
	.tushal-floating-whatsapp:focus-visible {
		transform: translateY(-3px) scale(1.03);
		background: #0f8f50;
		color: var(--tushal-color-white);
	}

	.tushal-floating-whatsapp svg {
		width: 24px;
		height: 24px;
		fill: currentColor;
	}
}

/* Testimonial carousel */
.tushal-testimonial-carousel {
	position: relative;
}

.tushal-testimonial {
	min-width: 0;
}

.tushal-testimonial__role {
	display: block;
	font-size: .875rem;
	color: var(--tushal-copy-muted);
	margin-bottom: .2rem;
}

.tushal-testimonial__avatar:is(img) {
	object-fit: cover;
}

.tushal-carousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 44px;
	height: 44px;
	border: 2px solid var(--tushal-border-strong);
	border-radius: 999px;
	background: #fff;
	color: var(--tushal-navy);
	font-size: 1.8rem;
	line-height: 1;
	box-shadow: var(--shadow-card);
	transform: translateY(-50%);
	cursor: pointer;
}

.tushal-carousel__arrow:hover,
.tushal-carousel__arrow:focus-visible {
	background: var(--tushal-blue);
	color: #fff;
}

.tushal-carousel__arrow--prev { left: -22px; }
.tushal-carousel__arrow--next { right: -22px; }

.tushal-carousel__dots {
	display: flex;
	justify-content: center;
	gap: .5rem;
	margin-top: var(--space-4);
}

.tushal-carousel__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--tushal-border-strong);
	cursor: pointer;
}

.tushal-carousel__dot[aria-current="true"] {
	width: 28px;
	background: var(--tushal-orange);
}

.tushal-notice {
	margin-bottom: var(--space-6);
	padding: .9rem 1rem;
	border: 2px solid;
	border-radius: var(--radius-control);
	font-weight: 700;
}

.tushal-notice--success { border-color: #15803d; background: #ecfdf3; color: #14532d; }
.tushal-notice--error { border-color: #b91c1c; background: #fef2f2; color: #7f1d1d; }
.tushal-form .tushal-honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

@media (max-width: 767px) {
	.tushal-carousel__arrow { top: auto; bottom: -2px; transform: none; width: 40px; height: 40px; }
	.tushal-carousel__arrow--prev { left: calc(50% - 64px); }
	.tushal-carousel__arrow--next { right: calc(50% - 64px); }
	.tushal-carousel__dots { padding-bottom: 48px; }
}

.tushal-search-form {
	display: flex;
	gap: var(--space-3);
	max-width: 720px;
	margin-inline: auto;
}

.tushal-search-form input {
	min-width: 0;
	flex: 1 1 auto;
	min-height: 52px;
	border: 2px solid var(--tushal-border-strong);
	border-radius: var(--radius-control);
	padding: .75rem 1rem;
	font: inherit;
}

.tushal-entry-meta { color: var(--tushal-copy-muted); font-size: .9rem; }
.tushal-comments { margin-top: var(--space-10); }
.tushal-comments .comment-list { display: grid; gap: var(--space-4); padding: 0; list-style: none; }
.tushal-comments .comment-body { border: 2px solid var(--tushal-border); border-radius: var(--radius-card); padding: var(--space-5); background: #fff; }

@media (max-width: 560px) {
	.tushal-search-form { flex-direction: column; }
}

@layer tushal.components {
  .tushal-card-style-outlined .tushal-card { box-shadow: var(--tushal-shadow-sm); }
  .tushal-card-style-flat .tushal-card { box-shadow: none; }
  .tushal-heading-left .tushal-section-header { justify-items: start; margin-inline: 0; text-align: left; }
  .tushal-heading-left .tushal-section-header p { text-align: left; }

  .tushal-reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity var(--tushal-duration-reveal) var(--tushal-ease), transform var(--tushal-duration-reveal) var(--tushal-ease);
  }
  .tushal-reveal.is-visible { opacity: 1; transform: none; }
  .tushal-motion-disabled .tushal-reveal { opacity: 1; transform: none; transition: none; }

  .tushal-footer-widget { min-width: 0; }
  .tushal-footer-widget__title { color: #fff; font-size: 1.05rem; }
  .tushal-footer-widget ul { margin: 0; padding: 0; list-style: none; }
  .tushal-footer-widget a { color: #fff; }
}

@layer tushal.components {
	.tushal-menu-toggle,
	.tushal-carousel__arrow,
	.tushal-carousel__dot,
	.tushal-carousel__pause {
		min-width: 44px;
		min-height: 44px;
	}

	.tushal-field [aria-invalid="true"] {
		border-color: #b42318;
		box-shadow: 0 0 0 3px rgb(180 35 24 / 18%);
	}

	.tushal-field__error {
		min-height: 1.25em;
		color: #8f1d13;
		font-size: .875rem;
		font-weight: 700;
	}

	.tushal-carousel__controls {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: .75rem;
		margin-top: var(--space-4);
	}

	.tushal-carousel__pause {
		padding: .55rem .85rem;
		border: 2px solid var(--tushal-border-strong);
		border-radius: var(--radius-control);
		background: #fff;
		color: var(--tushal-navy);
		font-weight: 800;
	}

	.tushal-carousel__pause:hover,
	.tushal-carousel__pause:focus-visible {
		border-color: var(--tushal-blue);
		background: var(--tushal-blue);
		color: #fff;
	}

	.tushal-accordion summary {
		min-height: 44px;
		cursor: pointer;
	}

	.tushal-accordion summary:focus-visible {
		outline: 3px solid var(--tushal-color-blue-500);
		outline-offset: 4px;
	}
}

/* Final button readability corrections. */
@layer tushal.components {
  .tushal-site .tushal-button--primary,
  .tushal-site .tushal-mobile-nav__actions .tushal-button--primary,
  .tushal-site #services .tushal-service-card .tushal-button {
    border-color: #f59e0b;
    background: linear-gradient(135deg, #f59e0b, #ffad32);
    color: #111827;
  }
  .tushal-site .tushal-button--primary:hover,
  .tushal-site .tushal-button--primary:focus-visible,
  .tushal-site .tushal-mobile-nav__actions .tushal-button--primary:hover,
  .tushal-site #services .tushal-service-card .tushal-button:hover {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
  }
  .tushal-site .tushal-button--outline,
  .tushal-site .tushal-mobile-nav__actions .tushal-button--outline {
    border-color: #f59e0b;
    background: #fffdf8;
    color: #172033;
  }
  .tushal-site .tushal-button--outline:hover,
  .tushal-site .tushal-button--outline:focus-visible,
  .tushal-site .tushal-mobile-nav__actions .tushal-button--outline:hover {
    border-color: #2563eb;
    background: #2563eb;
    color: #fff;
  }
}


/* Form-result notices disappear after the JavaScript removes their one-time URL state. */
.tushal-notice {
  transition: opacity .32s ease, transform .32s ease, max-height .32s ease, margin .32s ease, padding .32s ease;
  overflow: hidden;
}
.tushal-notice.is-hiding {
  opacity: 0;
  transform: translateY(-8px);
  max-height: 0;
  margin-block: 0;
  padding-block: 0;
  border-width: 0;
}
