/* Homepage and product category pages (all languages). Scoped by the body class "tipa-ui". */

.tipa-ui #content { overflow: hidden; }

.tipa-ui h1,
.tipa-ui h2,
.tipa-ui h3 {
	font-weight: 500;
	color: var(--tipa-ink);
	letter-spacing: -.035em;
}

.tipa-ui h2 {
	font-size: 52px;
	line-height: 1.08;
	margin-bottom: 42px;
}

/* Homepage hero slider */
.tipa-hero-slider { margin: 0; }

/* Primary buttons on TIPA pages */
.tipa-ui .button.primary:not(.is-outline) {
	background: var(--tipa-green) !important;
	border: 0 !important;
	padding: 0 30px;
	min-height: 54px;
	line-height: 54px;
	text-transform: none;
	font-weight: 500;
	font-size: 17px;
}

/* Tablet */
@media (max-width: 849px) {
	.tipa-ui h2 { font-size: 38px; }
}

/* Products and Solutions: centred heading + image cards (UX Builder "Image Box") */
.tipa-ui .tipa-eyebrow {
	margin: 0 0 8px;
	color: var(--tipa-green);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.tipa-ui .tipa-section-title {
	margin: 0 0 48px;
	font-size: 36px;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.tipa-solutions__grid > .col {
	display: flex;
	padding-bottom: 30px;
}

.tipa-solutions__grid > .col > .col-inner {
	display: flex;
	width: 100%;
}

.tipa-solution-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(15, 43, 12, .06);
	transition: transform .3s ease, box-shadow .3s ease;
}

.tipa-solution-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 18px 40px rgba(15, 43, 12, .12);
}

/* Flatsome centres .box-image with auto margins, which collapses it inside a flex column */
.tipa-solution-card .box-image {
	width: 100%;
	margin: 0;
}

.tipa-solution-card .box-image img {
	transition: transform .6s ease;
}

.tipa-solution-card .box-text {
	flex: 1;
	padding: 24px 28px 28px;
}

.tipa-ui .tipa-solution-card .tipa-solution-card__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	color: var(--tipa-ink);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.01em;
	transition: color .2s ease;
}

/* Arrow in a circle, slides on hover */
.tipa-solution-card__title::after {
	content: "→";
	display: inline-flex;
	flex: 0 0 32px;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border: 1px solid rgba(15, 43, 12, .12);
	border-radius: 50%;
	font-size: 14px;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

.tipa-ui .tipa-solution-card:hover .tipa-solution-card__title {
	color: var(--tipa-green);
}

.tipa-solution-card:hover .tipa-solution-card__title::after {
	background: var(--tipa-green);
	border-color: var(--tipa-green);
	color: #fff;
	transform: translateX(4px);
}

@media (max-width: 849px) {
	.tipa-ui .tipa-section-title { margin-bottom: 32px; font-size: 30px; }
}

@media (max-width: 549px) {
	.tipa-solutions__grid > .col { padding-bottom: 20px; }
	.tipa-solution-card .box-text { padding: 20px 20px 24px; }
	.tipa-ui .tipa-section-title { font-size: 26px; }
	.tipa-ui .tipa-solution-card .tipa-solution-card__title { font-size: 16px; }
}

/* Services: 2x2 cards with image, text and an outline button pinned to the bottom */
.tipa-services__grid > .col {
	display: flex;
	padding-bottom: 30px;
}

.tipa-services__grid > .col > .col-inner {
	display: flex;
	width: 100%;
}

.tipa-service-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	background: var(--tipa-white);
	transition: border-color .3s ease, box-shadow .3s ease;
}

.tipa-service-card:hover {
	border-color: transparent;
	box-shadow: 0 18px 40px rgba(15, 43, 12, .10);
}

/* Same fix as the solution cards: keep the image full width in a flex column */
.tipa-service-card .box-image {
	width: 100%;
	margin: 0;
}

.tipa-service-card .box-image img {
	transition: transform .6s ease;
}

.tipa-service-card .box-text {
	display: flex;
	flex: 1;
	padding: 32px 36px 36px;
}

.tipa-service-card .box-text-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.tipa-ui .tipa-service-card .tipa-service-card__title {
	margin: 0 0 12px;
	color: var(--tipa-ink);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-service-card .tipa-service-card__text {
	margin: 0 0 28px;
	color: var(--tipa-text);
	font-size: 1em;
	line-height: 1.65;
}

/* Button sits at the bottom so buttons line up across a row.
 * Width follows the text; equal side padding keeps text + arrow centred. */
.tipa-service-card .tipa-service-card__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	align-self: flex-start;
	box-sizing: border-box;
	max-width: 100%;
	min-height: 44px;
	margin: auto 0 0;
	padding: 0 24px;
	border-width: 1px;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	text-align: center;
	text-transform: none;
	white-space: nowrap;
}

.tipa-service-card .tipa-service-card__btn span {
	margin: 0;
	padding: 0;
}

.tipa-service-card .tipa-service-card__btn::after {
	content: "→";
	flex: 0 0 auto;
	line-height: 1;
	transition: transform .2s ease;
}

.tipa-service-card:hover .tipa-service-card__btn {
	background: var(--tipa-green);
	border-color: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-service-card:hover .tipa-service-card__btn::after {
	transform: translateX(4px);
}

@media (max-width: 849px) {
	.tipa-service-card .box-text { padding: 28px; }
	.tipa-ui .tipa-service-card .tipa-service-card__title { font-size: 19px; }
}

@media (max-width: 549px) {
	.tipa-services__grid > .col { padding-bottom: 20px; }
	.tipa-service-card .box-text { padding: 24px 20px; }
	.tipa-ui .tipa-service-card .tipa-service-card__title { font-size: 18px; }
	.tipa-service-card .tipa-service-card__text { margin-bottom: 24px; }
	.tipa-service-card .tipa-service-card__btn { white-space: normal; }
}

/* Section head with title on the left and a link on the right */
.tipa-section-head .tipa-section-title {
	margin-bottom: 0;
}

.tipa-section-head .col {
	padding-bottom: 40px;
}

.tipa-section-head p:last-child {
	margin-bottom: 0;
}

.tipa-link-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	white-space: nowrap;
	color: var(--tipa-green);
	font-size: 15px;
	font-weight: 600;
}

.tipa-link-arrow::after,
.tipa-post__more::after {
	content: "→";
	transition: transform .2s ease;
}

.tipa-link-arrow:hover {
	color: var(--tipa-green-700);
}

.tipa-link-arrow:hover::after,
.tipa-post:hover .tipa-post__more::after {
	transform: translateX(4px);
}

/* Handbook: one featured post, then a 2x2 list */
.tipa-handbook {
	display: grid;
	gap: 30px;
}

.tipa-handbook__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 30px;
}

.tipa-post {
	display: grid;
	grid-template-columns: 38% 1fr;
	overflow: hidden;
	border-radius: 12px;
	background: var(--tipa-white);
	box-shadow: 0 1px 2px rgba(15, 43, 12, .06);
	transition: transform .3s ease, box-shadow .3s ease;
}

.tipa-post--featured {
	grid-template-columns: 58% 1fr;
}

.tipa-post:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(15, 43, 12, .12);
}

.tipa-post__media {
	position: relative;
	display: block;
	overflow: hidden;
	min-height: 200px;
}

.tipa-post--featured .tipa-post__media {
	min-height: 380px;
}

.tipa-post__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.tipa-post:hover .tipa-post__media img {
	transform: scale(1.05);
}

.tipa-post__body {
	display: flex;
	flex-direction: column;
	padding: 24px 28px;
}

.tipa-post--featured .tipa-post__body {
	justify-content: center;
	padding: 40px 48px;
}

.tipa-post__date {
	display: inline-block;
	align-self: flex-start;
	margin-bottom: 12px;
	padding: 2px 10px;
	border-radius: 99px;
	background: var(--tipa-green-100);
	color: var(--tipa-green-700);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
}

.tipa-ui .tipa-post__title {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.01em;
}

.tipa-ui .tipa-post--featured .tipa-post__title {
	margin-bottom: 12px;
	font-size: 24px;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-post__title a {
	color: var(--tipa-ink);
	transition: color .2s ease;
}

.tipa-post:hover .tipa-post__title a {
	color: var(--tipa-green);
}

.tipa-post__excerpt {
	margin: 0;
	color: var(--tipa-text);
	font-size: 15px;
	line-height: 1.6;
}

.tipa-post--featured .tipa-post__excerpt {
	margin-bottom: 24px;
	font-size: 1em;
}

.tipa-post__more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--tipa-green);
	font-size: 15px;
	font-weight: 600;
}

/* CTA banner: rounded, dark green overlay, white button */
.tipa-cta {
	overflow: hidden;
	border-radius: 16px;
}

.tipa-cta .tipa-eyebrow {
	color: var(--tipa-green-100);
}

.tipa-ui .tipa-cta .tipa-cta__title {
	margin: 0 0 16px;
	color: var(--tipa-white);
	font-size: 40px;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.tipa-cta .tipa-cta__text {
	max-width: 560px;
	margin: 0 auto 32px;
	color: rgba(255, 255, 255, .86);
	font-size: 1em;
	line-height: 1.65;
}

.tipa-cta .tipa-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	margin: 0;
	padding: 0 28px;
	border: 0;
	background: var(--tipa-white);
	color: var(--tipa-green-900);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: none;
}

.tipa-cta .tipa-cta__btn::after {
	content: "→";
	transition: transform .2s ease;
}

.tipa-cta .tipa-cta__btn:hover {
	background: var(--tipa-green-100);
	color: var(--tipa-green-900);
	box-shadow: none;
}

.tipa-cta .tipa-cta__btn:hover::after {
	transform: translateX(4px);
}

@media (max-width: 849px) {
	.tipa-post--featured { grid-template-columns: 1fr; }
	.tipa-post--featured .tipa-post__media { min-height: 0; aspect-ratio: 16 / 9; }
	.tipa-post--featured .tipa-post__body { padding: 28px; }
	.tipa-handbook__list { grid-template-columns: 1fr; }
	.tipa-ui .tipa-cta .tipa-cta__title { font-size: 32px; }
}

@media (max-width: 549px) {
	.tipa-section-head .col { padding-bottom: 16px; }
	.tipa-section-head .col:last-child { padding-bottom: 32px; text-align: left; }
	.tipa-handbook,
	.tipa-handbook__list { gap: 20px; }
	.tipa-post { grid-template-columns: 1fr; }
	.tipa-post__media { min-height: 0; aspect-ratio: 16 / 9; }
	.tipa-post__body,
	.tipa-post--featured .tipa-post__body { padding: 20px; }
	.tipa-ui .tipa-post--featured .tipa-post__title { font-size: 20px; }
	.tipa-ui .tipa-cta .tipa-cta__title { font-size: 26px; }
}

/* Page hero title + lead (contact and other inner pages) */
.tipa-ui .tipa-page-title {
	margin: 0 0 16px;
	font-size: 44px;
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -.03em;
}

.tipa-lead {
	max-width: 640px;
	margin: 0 auto;
	color: var(--tipa-text);
	font-size: 17px;
	line-height: 1.7;
}

/* Contact page */
.tipa-ui .tipa-contact__heading {
	margin: 0 0 24px;
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-contact-cards {
	display: grid;
	gap: 16px;
}

.tipa-contact-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px 24px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	background: var(--tipa-white);
}

.tipa-contact-card p {
	margin: 0;
}

.tipa-contact-card__icon {
	flex: 0 0 44px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--tipa-green-100);
	position: relative;
}

.tipa-contact-card__icon::before {
	content: "";
	position: absolute;
	inset: 12px;
	background: var(--tipa-green-700);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

.tipa-contact-card__icon--phone { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.tipa-contact-card__icon--mail { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }
.tipa-contact-card__icon--company { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21h18M5 21V7l7-4 7 4v14M9 9h1m4 0h1M9 13h1m4 0h1M9 17h1m4 0h1'/%3E%3C/svg%3E"); }
.tipa-contact-card__icon--clock { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E"); }

.tipa-contact-card__label {
	color: var(--tipa-gray);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.tipa-contact-card__value {
	color: var(--tipa-ink);
	font-size: 16px;
	line-height: 1.6;
}

.tipa-contact-card__value a {
	color: var(--tipa-ink);
}

.tipa-contact-card__value a:hover {
	color: var(--tipa-green);
}

.tipa-contact-panel {
	height: 100%;
	padding: 40px;
	border-radius: 16px;
	background: var(--tipa-green-50);
}

.tipa-contact-panel p {
	color: var(--tipa-text);
}

.tipa-contact-panel__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 24px 0 0;
}

.tipa-ui .tipa-contact-panel .button.tipa-contact-panel__btn {
	margin: 0;
	padding: 0 24px;
	min-height: 48px;
	border-radius: 99px;
	font-size: 15px;
	font-weight: 600;
	line-height: 46px;
	text-transform: none;
}

.tipa-contact__row > .col > .col-inner {
	height: 100%;
}

@media (max-width: 849px) {
	.tipa-ui .tipa-page-title { font-size: 34px; }
	.tipa-contact__row > .col:first-child { padding-bottom: 40px; }
}

@media (max-width: 549px) {
	.tipa-ui .tipa-page-title { font-size: 28px; }
	.tipa-lead { font-size: 16px; }
	.tipa-contact-panel { padding: 28px 20px; }
}

/* Contact form (Contact Form 7, markup in the form: .tipa-form) */
.tipa-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 8px;
}

.tipa-form__field--full,
.tipa-form__submit {
	grid-column: 1 / -1;
}

.tipa-form label {
	display: block;
	margin-bottom: 8px;
	color: var(--tipa-ink);
	font-size: 14px;
	font-weight: 600;
}

.tipa-form label span {
	color: var(--tipa-green);
}

.tipa-form .wpcf7-form-control-wrap {
	display: block;
}

.tipa-form input[type="text"],
.tipa-form input[type="tel"],
.tipa-form input[type="email"],
.tipa-form textarea {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 10px;
	background: var(--tipa-white);
	box-shadow: none;
	color: var(--tipa-ink);
	font-size: 15px;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.tipa-form textarea {
	height: auto;
	min-height: 140px;
	padding: 12px 16px;
	line-height: 1.6;
	resize: vertical;
}

.tipa-form input::placeholder,
.tipa-form textarea::placeholder {
	color: var(--tipa-gray);
	opacity: 1;
}

.tipa-form input:focus,
.tipa-form textarea:focus {
	border-color: var(--tipa-green);
	box-shadow: 0 0 0 3px var(--tipa-green-100);
	outline: none;
}

.tipa-form .wpcf7-not-valid {
	border-color: #b20000;
}

.tipa-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	color: #b20000;
	font-size: 13px;
}

.tipa-ui .tipa-form .wpcf7-submit.button {
	margin: 4px 0 0;
	padding: 0 32px;
	min-height: 48px;
	border-radius: 99px;
	font-size: 15px;
	font-weight: 600;
	line-height: 48px;
	text-transform: none;
}

.tipa-ui .tipa-form .wpcf7-submit.button:hover {
	background: var(--tipa-green-700) !important;
}

.tipa-form__submit {
	display: flex;
	align-items: center;
	gap: 12px;
}

.tipa-contact-panel .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 16px !important;
	border-radius: 10px;
	font-size: 14px;
}

.tipa-contact-panel .wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--tipa-green) !important;
	background: var(--tipa-green-100);
	color: var(--tipa-green-700);
}

@media (max-width: 549px) {
	.tipa-form { grid-template-columns: 1fr; }
	.tipa-ui .tipa-form .wpcf7-submit.button { width: 100%; }
}

/* Contact hero: dark green, title left, intro right, curved bottom (Flatsome divider) */
.tipa-ui .tipa-contact-hero .tipa-contact-hero__title {
	margin: 0;
	color: var(--tipa-white);
	font-size: 50px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: -.03em;
}

.tipa-contact-hero .tipa-contact-hero__text {
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: 17px;
	line-height: 1.75;
}

/* Heading with a thin rule above */
.tipa-ui .tipa-rule-title {
	margin: 0 0 32px;
	padding-top: 24px;
	border-top: 1px solid var(--tipa-green-100);
	color: var(--tipa-ink);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

/* Heading row above the enquiry cards: no extra column spacing */
.tipa-enquiries .row:first-child > .col {
	padding-bottom: 0;
}

/* Enquiry cards: whole card clickable (link stretched over the card) */
.tipa-enquiries__grid > .col {
	padding-bottom: 30px;
}

.tipa-enquiries__grid > .col > .col-inner,
.tipa-enquiry-card {
	height: 100%;
}

.tipa-enquiry-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 280px;
	padding: 32px 32px 88px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	background: var(--tipa-green-50);
	transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

.tipa-enquiry-card:hover {
	border-color: transparent;
	box-shadow: 0 18px 40px rgba(15, 43, 12, .10);
	transform: translateY(-4px);
}

.tipa-enquiry-card__icon {
	position: relative;
	display: block;
	width: 48px;
	height: 48px;
	margin-bottom: 24px;
	border-radius: 12px;
	background: var(--tipa-green-100);
}

.tipa-enquiry-card__icon::before {
	content: "";
	position: absolute;
	inset: 12px;
	background: var(--tipa-green-700);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

.tipa-enquiry-card__icon--product { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8 12 3 3 8v8l9 5 9-5V8z'/%3E%3Cpath d='m3 8 9 5 9-5M12 13v8'/%3E%3C/svg%3E"); }
.tipa-enquiry-card__icon--service { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a4 4 0 0 0-5.4 5.4L3 18l3 3 6.3-6.3a4 4 0 0 0 5.4-5.4l-2.5 2.5-2.4-.6-.6-2.4 2.5-2.5z'/%3E%3C/svg%3E"); }

.tipa-ui .tipa-enquiry-card .tipa-enquiry-card__title {
	margin: 0 0 12px;
	color: var(--tipa-ink);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-enquiry-card .tipa-enquiry-card__text {
	margin: 0;
	color: var(--tipa-text);
	line-height: 1.65;
}

/* Whole card is the link: ::after covers the card, ::before is the arrow button */
.tipa-enquiry-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: inherit;
}

.tipa-enquiry-card__link::before {
	content: "→";
	position: absolute;
	right: 32px;
	bottom: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--tipa-green);
	color: var(--tipa-white);
	font-size: 18px;
	line-height: 1;
	transition: background-color .2s ease, transform .2s ease;
}

.tipa-enquiry-card:hover .tipa-enquiry-card__link::before {
	background: var(--tipa-green-700);
	transform: translateX(4px);
}

.tipa-enquiry-card__link:focus-visible {
	outline: none;
}

.tipa-enquiry-card:has(.tipa-enquiry-card__link:focus-visible) {
	outline: 2px solid var(--tipa-green);
	outline-offset: 3px;
}

.tipa-contact {
	scroll-margin-top: 90px;
}

@media (max-width: 849px) {
	.tipa-ui .tipa-contact-hero .tipa-contact-hero__title { font-size: 42px; margin-bottom: 20px; }
}

@media (max-width: 549px) {
	.tipa-ui .tipa-contact-hero .tipa-contact-hero__title { font-size: 32px; }
	.tipa-contact-hero .tipa-contact-hero__text { font-size: 16px; }
	.tipa-enquiry-card { min-height: 0; padding: 24px 24px 84px; }
	.tipa-enquiry-card__link::before { right: 24px; bottom: 24px; }
}

/* Careers: same card as enquiries, shorter, extra icons, external-link arrow */
.tipa-enquiry-card--job {
	min-height: 240px;
}

.tipa-enquiry-card__icon--team { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E"); }
.tipa-enquiry-card__icon--mail { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }
.tipa-enquiry-card__icon--handshake { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17 2 2a1 1 0 1 0 3-3'/%3E%3Cpath d='m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.9-3.9a3 3 0 0 0-4.2 0l-.9.9a1 1 0 1 1-3-3l2.8-2.8a5.8 5.8 0 0 1 7 .9l.2.2L21 7'/%3E%3Cpath d='m21 3 1 11h-2M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3M3 4h8'/%3E%3C/svg%3E"); }

.tipa-enquiry-card--external .tipa-enquiry-card__link::before {
	content: "↗";
}

.tipa-enquiry-card--external:hover .tipa-enquiry-card__link::before {
	transform: translate(2px, -2px);
}

/* Offices: dark headquarters card + light support cards (content centred) */
.tipa-office-card {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
	min-height: 280px;
	padding: 32px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	background: var(--tipa-green-50);
	text-align: center;
}

.tipa-ui .tipa-office-card .tipa-office-card__title {
	margin: 0 0 16px;
	color: var(--tipa-ink);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-office-card__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tipa-ui .tipa-office-card__list li {
	margin: 0 0 8px;
	color: var(--tipa-text);
	line-height: 1.6;
	list-style: none;
}

.tipa-office-card__list a {
	color: var(--tipa-ink);
	font-weight: 600;
}

.tipa-office-card__list a:hover {
	color: var(--tipa-green);
}

.tipa-office-card--dark {
	justify-content: flex-start;
	border-color: var(--tipa-green-900);
	background: var(--tipa-green-900);
	text-align: left;
}

.tipa-ui .tipa-office-card--dark .tipa-office-card__title {
	color: var(--tipa-white);
	margin-bottom: 24px;
}

.tipa-ui .tipa-office-card--dark .tipa-office-card__list li {
	color: rgba(255, 255, 255, .8);
}

.tipa-office-card--dark .tipa-office-card__list a {
	color: var(--tipa-white);
}

.tipa-office-card--dark .tipa-office-card__list a:hover {
	color: var(--tipa-green-100);
}

.tipa-office-card__map {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	padding-top: 24px;
	color: var(--tipa-green-100);
	font-size: 15px;
	font-weight: 600;
}

.tipa-office-card__map::after {
	content: "↗";
	transition: transform .2s ease;
}

.tipa-office-card__map:hover {
	color: var(--tipa-white);
}

.tipa-office-card__map:hover::after {
	transform: translate(2px, -2px);
}

@media (max-width: 849px) {
	.tipa-office-card { min-height: 0; padding: 28px 24px; }
	.tipa-enquiry-card--job { min-height: 200px; }
}

/* "About TIPA" banner on the contact page: reuses the CTA banner, text left-aligned */
.tipa-about-banner .tipa-cta__text {
	max-width: 520px;
	margin-left: 0;
}

@media (max-width: 549px) {
	.tipa-about-banner .text-box { text-align: center; }
	.tipa-about-banner .tipa-cta__text { margin-left: auto; }
}

/* Contact form modal (Flatsome lightbox #contact-form).
 * Two equal-padding panels: info (left) + form (right). Form first on tablet/mobile. */
.tipa-contact-modal {
	--modal-pad: 32px;
	overflow: hidden;
	border-radius: 16px;
}

.tipa-contact-modal .tipa-contact .section-content > .row,
.tipa-contact-modal .tipa-contact__row {
	display: flex;
	max-width: none;
	margin: 0;
}

.tipa-contact-modal .tipa-contact__row > .col {
	padding: 0;
}

.tipa-contact-modal .tipa-contact__row > .col > .col-inner {
	height: 100%;
}

/* Info panel */
.tipa-contact-modal .tipa-contact__row > .col:first-child > .col-inner {
	padding: var(--modal-pad);
}

.tipa-ui .tipa-contact-modal .tipa-contact__heading {
	margin: 0 0 20px;
	font-size: 20px;
}

.tipa-contact-modal .tipa-contact-cards {
	gap: 0;
}

.tipa-contact-modal .tipa-contact-card {
	align-items: center;
	gap: 14px;
	padding: 14px 0;
	border: 0;
	border-bottom: 1px solid var(--tipa-green-100);
	border-radius: 0;
	background: transparent;
}

.tipa-contact-modal .tipa-contact-card:first-child {
	padding-top: 0;
}

.tipa-contact-modal .tipa-contact-card:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.tipa-contact-modal .tipa-contact-card__icon {
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
}

.tipa-contact-modal .tipa-contact-card__icon::before {
	inset: 10px;
}

.tipa-contact-modal .tipa-contact-card__label {
	font-size: 12px;
}

.tipa-contact-modal .tipa-contact-card__value {
	font-size: 15px;
	line-height: 1.5;
}

/* Form panel: fills the column height */
.tipa-contact-modal .tipa-contact-panel {
	padding: var(--modal-pad);
	border-radius: 0;
}

.tipa-contact-modal .tipa-contact-panel > p:first-of-type {
	margin-bottom: 20px;
}

.tipa-contact-modal .tipa-form {
	gap: 16px;
	margin-top: 0;
}

.tipa-contact-modal .tipa-form textarea {
	min-height: 110px;
}

/* Tablet: form first, info below in two columns */
@media (max-width: 849px) {
	.tipa-contact-modal {
		--modal-pad: 24px;
		border-radius: 12px;
	}

	.tipa-contact-modal .tipa-contact__row {
		flex-direction: column;
	}

	.tipa-contact-modal .tipa-contact__row > .col {
		max-width: 100%;
		flex-basis: 100%;
	}

	.tipa-contact-modal .tipa-contact__row > .col:first-child {
		order: 2;
		padding-bottom: 0;
	}

	.tipa-contact-modal .tipa-contact-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 24px;
	}

	.tipa-contact-modal .tipa-contact-card,
	.tipa-contact-modal .tipa-contact-card:first-child,
	.tipa-contact-modal .tipa-contact-card:last-child {
		padding: 12px 0;
		border-bottom: 1px solid var(--tipa-green-100);
	}
}

/* Mobile: one column, smaller padding */
@media (max-width: 549px) {
	.tipa-contact-modal {
		--modal-pad: 20px;
	}

	.tipa-contact-modal .tipa-contact-cards {
		grid-template-columns: 1fr;
	}

	.tipa-contact-modal .tipa-contact-card:last-child {
		border-bottom: 0;
	}
}

/* Page intro: left-aligned title + lead (Handbook page) */
.tipa-page-intro .tipa-lead {
	margin: 0;
	max-width: none;
}

.tipa-news-section {
	padding-bottom: 96px !important;
}

/* Handbook "news" layout: featured post left (image on top), compact list right */
.tipa-handbook--news {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: start;
}

.tipa-handbook--news .tipa-handbook__list {
	grid-template-columns: 1fr;
	gap: 24px;
}

.tipa-handbook--news .tipa-post,
.tipa-handbook--news .tipa-post:hover {
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transform: none;
}

.tipa-handbook--news .tipa-post__media {
	border-radius: 12px;
}

/* Title first, date under it (like a news list) */
.tipa-handbook--news .tipa-post__body {
	padding: 0;
}

.tipa-handbook--news .tipa-post__date {
	order: 3;
	margin: 8px 0 0;
	padding: 0;
	background: transparent;
	color: var(--tipa-gray);
	font-size: 13px;
	font-weight: 500;
}

/* Featured */
.tipa-handbook--news .tipa-post--featured {
	grid-template-columns: 1fr;
}

.tipa-handbook--news .tipa-post--featured .tipa-post__media {
	min-height: 0;
	aspect-ratio: 16 / 9;
	margin-bottom: 24px;
}

.tipa-handbook--news .tipa-post--featured .tipa-post__body {
	padding: 0;
}

.tipa-ui .tipa-handbook--news .tipa-post--featured .tipa-post__title {
	font-size: 26px;
}

.tipa-handbook--news .tipa-post--featured .tipa-post__excerpt {
	margin-bottom: 0;
}

/* List items: image left, title + date right */
.tipa-handbook--news .tipa-handbook__list .tipa-post {
	grid-template-columns: 44% 1fr;
	gap: 20px;
	align-items: start;
}

.tipa-handbook--news .tipa-handbook__list .tipa-post__media {
	min-height: 0;
	aspect-ratio: 16 / 10;
}

.tipa-ui .tipa-handbook--news .tipa-handbook__list .tipa-post__title {
	margin: 0;
	font-size: 18px;
	line-height: 1.45;
}

@media (max-width: 849px) {
	.tipa-handbook--news { grid-template-columns: 1fr; gap: 40px; }
	.tipa-news-section { padding-bottom: 64px !important; }
}

@media (max-width: 549px) {
	.tipa-handbook--news .tipa-handbook__list .tipa-post { grid-template-columns: 40% 1fr; gap: 14px; }
	.tipa-ui .tipa-handbook--news .tipa-handbook__list .tipa-post__title { font-size: 15px; }
	.tipa-ui .tipa-handbook--news .tipa-post--featured .tipa-post__title { font-size: 21px; }
	.tipa-news-section { padding-bottom: 48px !important; }
}

/* Breadcrumb (shared: page bar, product category head) */
.tipa-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	line-height: 1.5;
}

.tipa-breadcrumb li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	color: var(--tipa-gray);
}

.tipa-breadcrumb li + li::before {
	content: "";
	width: 6px;
	height: 6px;
	margin: 0 12px;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: .6;
}

.tipa-breadcrumb a {
	color: var(--tipa-gray);
	transition: color .2s ease;
}

.tipa-breadcrumb a:hover {
	color: var(--tipa-green);
}

.tipa-breadcrumb [aria-current] {
	color: var(--tipa-ink);
	font-weight: 600;
}

/* "Request a quote" button (shared) */
.tipa-ui .tipa-quote-btn.button.primary {
	flex: 0 0 auto;
	margin: 0;
	padding: 0 28px;
	min-height: 48px;
	border-radius: 99px;
	font-size: 15px;
	font-weight: 600;
	line-height: 48px;
}

.tipa-ui .tipa-quote-btn.button.primary:hover {
	background: var(--tipa-green-700) !important;
}

/* Flatsome indents list items inside columns (.col-inner ol li) */
nav.tipa-breadcrumb ol li {
	margin: 0;
}

/* Page bar: breadcrumb left, quote button right, thin rule below */
.tipa-page-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
	padding: 16px 0;
}

.tipa-page-bar-section {
	border-bottom: 1px solid var(--tipa-green-100);
}

.tipa-page-bar-section .col {
	padding-bottom: 0;
}

@media (max-width: 549px) {
	.tipa-page-bar { flex-wrap: wrap; }
	.tipa-ui .tipa-page-bar .tipa-quote-btn.button.primary { min-height: 42px; padding: 0 20px; font-size: 14px; line-height: 42px; }
}

/* Photo gallery (Handbook preview + Gallery page) */
.tipa-gallery-section {
	padding-bottom: 96px !important;
}

.tipa-gallery-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 40px;
}

/* Chip style shared with the product filter */
.tipa-gallery-filter .tipa-chip {
	margin: 0;
	padding: 0 18px;
	min-height: 40px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 99px;
	background: var(--tipa-white);
	color: var(--tipa-ink);
	font-size: 14px;
	font-weight: 500;
	line-height: 38px;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.tipa-gallery-filter .tipa-chip:hover {
	border-color: var(--tipa-green);
	color: var(--tipa-green);
}

.tipa-gallery-filter .tipa-chip.is-active {
	border-color: var(--tipa-green);
	background: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-gallery__item.is-hidden {
	display: none;
}

.tipa-gallery__item {
	padding-bottom: 40px;
}

.tipa-gallery-card .box-image {
	overflow: hidden;
	border-radius: 12px;
}

.tipa-gallery-card .box-image a {
	position: relative;
	display: block;
	cursor: zoom-in;
}

/* Expand icon on hover */
.tipa-gallery-card .box-image a::after {
	content: "";
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--tipa-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f6118' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center / 18px no-repeat;
	box-shadow: 0 6px 16px rgba(15, 43, 12, .15);
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .2s ease, transform .2s ease;
}

.tipa-gallery-card:hover .box-image a::after {
	opacity: 1;
	transform: none;
}

.tipa-gallery-card .box-text {
	padding: 20px 0 0;
}

.tipa-gallery-card .tipa-gallery-card__caption {
	margin: 0;
	color: var(--tipa-ink);
	font-size: 18px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: -.01em;
	transition: color .2s ease;
}

.tipa-gallery-card:hover .tipa-gallery-card__caption {
	color: var(--tipa-green);
}

/* Lightbox caption */
.mfp-title {
	padding-right: 0;
	color: rgba(255, 255, 255, .9);
	font-size: 15px;
	line-height: 1.5;
}

@media (max-width: 849px) {
	.tipa-gallery-section { padding-bottom: 64px !important; }
}

@media (max-width: 549px) {
	.tipa-gallery-section { padding-bottom: 48px !important; }
	.tipa-gallery__item { padding-bottom: 28px; }
	.tipa-gallery-filter {
		flex-wrap: nowrap;
		margin-right: -15px;
		padding-right: 15px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.tipa-gallery-filter .tipa-chip { flex: 0 0 auto; }
	.tipa-gallery-card .tipa-gallery-card__caption { font-size: 16px; }
}

/* Product data panel (Handbook page): centred title, category chips, note */
.tipa-product-data-section {
	padding-bottom: 96px !important;
}

.tipa-product-data {
	padding: 56px 40px;
	border-radius: 16px;
	background: var(--tipa-green-50);
	text-align: center;
}

.tipa-ui .tipa-product-data .tipa-section-title {
	margin-bottom: 28px;
}

.tipa-cat-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin: 0 auto 28px;
	padding: 0;
	max-width: 90%;
	list-style: none;
}

.tipa-ui .tipa-cat-links li {
	margin: 0;
	list-style: none;
}

.tipa-cat-links .tipa-chip {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 20px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 99px;
	background: var(--tipa-white);
	color: var(--tipa-ink);
	font-size: 15px;
	font-weight: 500;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.tipa-cat-links .tipa-chip:hover {
	border-color: var(--tipa-green);
	background: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-product-data .tipa-product-data__note {
	margin: 0;
	color: var(--tipa-gray);
	font-size: 15px;
	font-style: italic;
}

@media (max-width: 849px) {
	.tipa-product-data-section { padding-bottom: 64px !important; }
	.tipa-product-data { padding: 40px 24px; }
}

@media (max-width: 549px) {
	.tipa-product-data-section { padding-bottom: 48px !important; }
	.tipa-product-data { padding: 32px 20px; }
	.tipa-cat-links { gap: 8px; }
	.tipa-cat-links .tipa-chip { min-height: 38px; padding: 0 14px; font-size: 14px; }
}

/* Services page: page title above the shared service cards */
.tipa-ui .tipa-services-page .tipa-page-title {
	margin-bottom: 40px;
}

.tipa-services-page {
	padding-bottom: 66px !important;
}

/* About section (Services page): text left, video thumbnail right (Flatsome Video Button opens a lightbox) */
.tipa-about-section {
	padding-bottom: 96px !important;
}

/* Thin rule above the two columns (title + text | video) */
.tipa-about__row {
	padding-top: 48px;
	border-top: 1px solid var(--tipa-green-100);
}

.tipa-ui .tipa-about__text .tipa-about__title {
	margin: 0 0 20px;
	color: var(--tipa-ink);
	font-size: 36px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.tipa-about__text p {
	color: var(--tipa-text);
	font-size: 17px;
	line-height: 1.75;
}

.tipa-about__text p:last-child {
	margin-bottom: 0;
}

.tipa-video-banner {
	overflow: hidden;
	border-radius: 16px;
}

.tipa-video-banner .video-button-wrapper .button.open-video {
	width: 88px;
	height: 88px;
	margin: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tipa-green);
	box-shadow: 0 0 0 10px rgba(255, 255, 255, .2);
	color: var(--tipa-white);
	line-height: 88px;
	transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.tipa-video-banner .video-button-wrapper .button.open-video i {
	font-size: 28px !important;
	margin-left: 4px;
}

.tipa-video-banner:hover .video-button-wrapper .button.open-video {
	background: var(--tipa-green-700);
	box-shadow: 0 0 0 16px rgba(255, 255, 255, .25);
	transform: scale(1.05);
}

@media (max-width: 849px) {
	.tipa-about-section { padding-bottom: 64px !important; }
	.tipa-about__row > .col:first-child { padding-bottom: 32px; }
	.tipa-about__row { padding-top: 40px; }
	.tipa-ui .tipa-about__text .tipa-about__title { font-size: 30px; }
}

@media (max-width: 549px) {
	.tipa-about-section { padding-bottom: 48px !important; }
	.tipa-about__row { padding-top: 32px; }
	.tipa-ui .tipa-about__text .tipa-about__title { font-size: 26px; margin-bottom: 16px; }
	.tipa-about__text p { font-size: 16px; }
	.tipa-video-banner .video-button-wrapper .button.open-video { width: 68px; height: 68px; line-height: 68px; }
	.tipa-video-banner .video-button-wrapper .button.open-video i { font-size: 22px !important; }
}

/* Homepage hero slider: readable sizes on every device.
 * Text and images are managed in UX Builder; sizes here override the ux_text scale. */
.tipa-hero-slider .banner .text-box {
	max-width: 900px;
}

.tipa-ui .tipa-hero-slider .banner h1,
.tipa-ui .tipa-hero-slider .banner h2,
.tipa-ui .tipa-hero-slider .banner h3 {
	margin: 0 0 16px;
	color: var(--tipa-white);
	font-size: 48px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.01em;
}

.tipa-hero-slider .banner h3 strong {
	font-weight: inherit;
}

.tipa-hero-slider .banner p {
	max-width: 720px;
	text-wrap: balance;
	margin: 0 auto 28px;
	color: rgba(255, 255, 255, .88);
	font-size: 18px;
	line-height: 1.6;
}

.tipa-ui .tipa-hero-slider .banner .button {
	margin: 0;
	max-width: 100%;
	white-space: nowrap;
}

/* Dots: brand colours */
.tipa-hero-slider .flickity-page-dots .dot {
	border-color: var(--tipa-white);
	opacity: .6;
}

.tipa-hero-slider .flickity-page-dots .dot.is-selected {
	background: var(--tipa-white);
	opacity: 1;
}

@media (max-width: 849px) {
	.tipa-ui .tipa-hero-slider .banner h1,
	.tipa-ui .tipa-hero-slider .banner h2,
	.tipa-ui .tipa-hero-slider .banner h3 { font-size: 36px; }
	.tipa-hero-slider .banner p { font-size: 16px; margin-bottom: 24px; }
}

@media (max-width: 549px) {
	.tipa-ui .tipa-hero-slider .banner h1,
	.tipa-ui .tipa-hero-slider .banner h2,
	.tipa-ui .tipa-hero-slider .banner h3 { font-size: 26px; margin-bottom: 12px; }
	.tipa-hero-slider .banner p { font-size: 15px; margin-bottom: 20px; }
	.tipa-ui .tipa-hero-slider .banner .button {
		min-height: 46px;
		padding: 0 22px;
		font-size: 14px;
		line-height: 46px;
		white-space: normal;
	}
}

/* Post cards ([tipa_post_cards]): balanced grid on 6 columns.
 * Each card gets tipa-size-half (2 per row), -third (3 per row) or -full from PHP,
 * so no row ends with a single card. */
.tipa-post-cards {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 30px;
}

.tipa-post-cards > .tipa-size-half { grid-column: span 3; }
.tipa-post-cards > .tipa-size-third { grid-column: span 2; }
.tipa-post-cards > .tipa-size-full { grid-column: 1 / -1; }

/* Smaller cards: tighter text */
.tipa-ui .tipa-post-cards > .tipa-size-third .tipa-service-card__title { font-size: 19px; }
.tipa-post-cards > .tipa-size-third .box-text { padding: 24px 28px 28px; }

.tipa-post-card .tipa-service-card__title a {
	color: inherit;
}

.tipa-post-cards__more {
	margin-top: 40px;
	text-align: center;
}

.tipa-post-cards__more .tipa-service-card__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0 28px;
	min-height: 46px;
	border-width: 1px;
	border-radius: 99px;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
}

.tipa-post-cards__more .tipa-service-card__btn::after {
	content: "→";
	transition: transform .2s ease;
}

.tipa-post-cards__more .tipa-service-card__btn:hover {
	background: var(--tipa-green);
	border-color: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-post-cards__more .tipa-service-card__btn:hover::after {
	transform: translateX(4px);
}

/* Tablet: 2 columns; with an odd number of cards the first one is full width, horizontal */
@media (max-width: 849px) {
	.tipa-post-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.tipa-post-cards > .tipa-size-half,
	.tipa-post-cards > .tipa-size-third { grid-column: span 1; }
	.tipa-post-cards.is-odd > .tipa-post-card:first-child {
		grid-column: 1 / -1;
		flex-direction: row;
	}
	.tipa-post-cards.is-odd > .tipa-post-card:first-child .box-image { width: 50%; }
	.tipa-post-cards.is-odd > .tipa-post-card:first-child .box-text { width: 50%; }
}

@media (max-width: 549px) {
	.tipa-post-cards { grid-template-columns: 1fr; }
	.tipa-post-cards.is-odd > .tipa-post-card:first-child { flex-direction: column; }
	.tipa-post-cards.is-odd > .tipa-post-card:first-child .box-image,
	.tipa-post-cards.is-odd > .tipa-post-card:first-child .box-text { width: 100%; }
}

/* Buttons in automatic post cards (no UX Builder radius attribute) */
.tipa-post-card .tipa-service-card__btn {
	border-radius: 99px;
}

/* Post category archive */
.tipa-archive .tipa-page-bar-section {
	border-bottom: 1px solid var(--tipa-green-100);
}

.tipa-archive__intro {
	padding-top: 56px;
	padding-bottom: 40px;
}

.tipa-archive__intro .tipa-lead {
	margin: 0;
	max-width: none;
}

.tipa-archive__intro .tipa-lead p:last-child {
	margin-bottom: 0;
}

.tipa-archive__chips {
	justify-content: flex-start;
	margin: 32px 0 0;
	max-width: none;
}

.tipa-archive__chips .tipa-chip.is-active {
	border-color: var(--tipa-green);
	background: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-archive__list {
	padding-bottom: 96px;
}

.tipa-archive__featured {
	margin-bottom: 30px;
}

.tipa-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.tipa-archive__grid .tipa-post-card {
	height: 100%;
}

.tipa-ui .tipa-archive__grid .tipa-service-card__title {
	font-size: 19px;
}

.tipa-archive__grid .tipa-service-card .box-text {
	padding: 24px 28px 28px;
}

.tipa-archive__empty {
	color: var(--tipa-gray);
}

/* Numbered pagination links (WordPress paginate_links) */
.tipa-pagination--links {
	margin-top: 48px;
}

.tipa-pagination--links .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 50%;
	background: var(--tipa-white);
	color: var(--tipa-ink);
	font-size: 14px;
	font-weight: 600;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.tipa-pagination--links a.page-numbers:hover {
	border-color: var(--tipa-green);
	color: var(--tipa-green);
}

.tipa-pagination--links .page-numbers.current {
	border-color: var(--tipa-green);
	background: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-pagination--links .page-numbers.dots {
	border: 0;
	background: transparent;
}

@media (max-width: 849px) {
	.tipa-archive__intro { padding-top: 40px; padding-bottom: 32px; }
	.tipa-archive__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.tipa-archive__list { padding-bottom: 64px; }
}

@media (max-width: 549px) {
	.tipa-archive__intro { padding-top: 32px; }
	.tipa-archive__grid { grid-template-columns: 1fr; }
	.tipa-archive__list { padding-bottom: 48px; }
	.tipa-archive__chips { flex-wrap: nowrap; overflow-x: auto; margin-right: -15px; padding-right: 15px; scrollbar-width: none; }
	.tipa-archive__chips li { flex: 0 0 auto; }
}

/* Featured post on a white page: thin border like the grid cards */
.tipa-archive__featured .tipa-post {
	border: 1px solid var(--tipa-green-100);
	box-shadow: none;
}

.tipa-archive__featured .tipa-post:hover {
	border-color: transparent;
}

/* Document download page: form left, contact info right */
.tipa-document-section {
	padding-bottom: 96px !important;
}

.tipa-document__row > .col > .col-inner {
	height: 100%;
}

.tipa-document__info {
	padding: 40px 0 0;
}

.tipa-document__note {
	margin: 20px 0 0;
	color: var(--tipa-gray);
	font-size: 14px;
	font-style: italic;
}

/* Consent checkbox */
.tipa-form__consent .wpcf7-list-item {
	margin: 0;
}

.tipa-form__consent label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	color: var(--tipa-text);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
}

.tipa-form__consent input[type="checkbox"] {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 2px 0 0;
	accent-color: var(--tipa-green);
}

@media (max-width: 849px) {
	.tipa-document-section { padding-bottom: 64px !important; }
	.tipa-document__row > .col:first-child { padding-bottom: 0; }
}

@media (max-width: 549px) {
	.tipa-document-section { padding-bottom: 48px !important; }
	.tipa-document__info { padding-top: 32px; }
}

/* Product data page: one section per product category, document cards in 3 columns */
.tipa-data-section {
	padding-bottom: 96px !important;
}

.tipa-data-group {
	scroll-margin-top: 110px;
}

.tipa-data-group + .tipa-data-group {
	margin-top: 64px;
}

.tipa-ui .tipa-data-group__title {
	margin: 0 0 28px;
	padding-top: 24px;
	border-top: 1px solid var(--tipa-green-100);
	color: var(--tipa-ink);
	font-size: 28px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: -.02em;
}

.tipa-data-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
}

.tipa-doc-card {
	height: 100%;
}

.tipa-ui .tipa-doc-card .tipa-service-card__title {
	font-size: 19px;
}

.tipa-doc-card .box-text {
	padding: 24px 28px 28px;
}

@media (max-width: 849px) {
	.tipa-data-section { padding-bottom: 64px !important; }
	.tipa-data-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
	.tipa-data-group + .tipa-data-group { margin-top: 48px; }
}

@media (max-width: 549px) {
	.tipa-data-section { padding-bottom: 48px !important; }
	.tipa-data-grid { grid-template-columns: 1fr; }
	.tipa-ui .tipa-data-group__title { font-size: 23px; }
}

/* Automatic cards (documents, services, archives, related): text area fills the card
 * and the button sits at the bottom, so buttons line up whatever the title length. */
.tipa-post-card.tipa-service-card .box-text {
	display: flex;
	flex: 1 1 auto;
}

.tipa-post-card.tipa-service-card .box-text-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.tipa-post-card.tipa-service-card .box-text-inner .tipa-service-card__btn {
	align-self: flex-start;
	margin: auto 0 0;
}

/* Careers page ------------------------------------------------------------ */

/* Hero: full-width photo, title in a frosted box */
.tipa-careers-hero__box {
	padding: 28px 40px;
	border-radius: 16px;
	background: rgba(255, 255, 255, .78);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.tipa-ui .tipa-careers-hero .tipa-careers-hero__title {
	margin: 0;
	color: var(--tipa-ink);
	font-size: 44px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.02em;
}

/* Job openings slider: 4 cards visible, round arrows on the sides */
.tipa-jobs {
	position: relative;
}

.tipa-jobs__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 90px) / 4);
	column-gap: 30px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	cursor: grab;
}

.tipa-jobs__track::-webkit-scrollbar {
	display: none;
}

.tipa-jobs__track.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
	scroll-behavior: auto;
	user-select: none;
}

.tipa-job-card {
	scroll-snap-align: start;
}

.tipa-job-card__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	margin-bottom: 20px;
	border-radius: 12px;
}

.tipa-job-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.tipa-job-card:hover .tipa-job-card__media img {
	transform: scale(1.05);
}

.tipa-ui .tipa-job-card__title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
}

.tipa-job-card__title a {
	color: var(--tipa-ink);
	transition: color .2s ease;
}

.tipa-job-card:hover .tipa-job-card__title a {
	color: var(--tipa-green);
}

.tipa-job-card__meta {
	margin: 0 0 12px;
	color: var(--tipa-text);
	font-size: 15px;
	line-height: 1.5;
}

.tipa-job-card__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--tipa-green);
	font-size: 15px;
	font-weight: 600;
}

.tipa-job-card__more::after {
	content: "›";
	font-size: 18px;
	line-height: 1;
	transition: transform .2s ease;
}

.tipa-job-card__more:hover::after {
	transform: translateX(3px);
}

.tipa-jobs__arrow {
	position: absolute;
	top: calc((100% - 120px) / 2);
	z-index: 2;
	width: 44px;
	height: 44px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--tipa-green-100);
	border-radius: 50%;
	background: var(--tipa-white);
	box-shadow: 0 6px 16px rgba(15, 43, 12, .12);
	color: var(--tipa-ink);
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}

.tipa-jobs__arrow::before {
	content: "‹";
	font-size: 24px;
	line-height: 40px;
}

.tipa-jobs__arrow--next::before {
	content: "›";
}

.tipa-jobs__arrow--prev { left: -22px; }
.tipa-jobs__arrow--next { right: -22px; }

.tipa-jobs__arrow:hover:not(:disabled) {
	background: var(--tipa-green);
	color: var(--tipa-white);
}

.tipa-jobs__arrow:disabled,
.tipa-hslider.is-static .tipa-jobs__arrow {
	opacity: 0;
	pointer-events: none;
}

/* Application form: photo left, form right */
.tipa-career-form__row {
	align-items: stretch;
}

.tipa-career-form__row > .col {
	padding-bottom: 0;
}

.tipa-career-form__row > .col > .col-inner {
	height: 100%;
}

.tipa-career-form__image,
.tipa-career-form__image .img-inner {
	height: 100%;
	margin: 0;
}

.tipa-career-form__image img {
	width: 100%;
	height: 100%;
	min-height: 360px;
	object-fit: cover;
}

.tipa-career-form {
	padding: 56px 48px;
}

.tipa-ui .tipa-career-form .tipa-career-form__title {
	margin: 0 0 12px;
	color: var(--tipa-ink);
	font-size: 34px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.tipa-career-form__lead {
	margin: 0 0 28px;
	color: var(--tipa-text);
}

/* Select + file inputs in TIPA forms */
.tipa-form select {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 10px;
	background-color: var(--tipa-white);
	box-shadow: none;
	color: var(--tipa-ink);
	font-size: 15px;
}

.tipa-form select:focus {
	border-color: var(--tipa-green);
	box-shadow: 0 0 0 3px var(--tipa-green-100);
	outline: none;
}

.tipa-form__file input[type="file"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px dashed var(--tipa-green-100);
	border-radius: 10px;
	background: var(--tipa-white);
	font-size: 14px;
}

.tipa-form__file input[type="file"]::file-selector-button {
	margin-right: 12px;
	padding: 6px 14px;
	border: 0;
	border-radius: 99px;
	background: var(--tipa-green-100);
	color: var(--tipa-green-700);
	font-weight: 600;
	cursor: pointer;
}

.tipa-form__file small {
	display: block;
	margin-top: 6px;
	color: var(--tipa-gray);
	font-size: 13px;
}

@media (max-width: 849px) {
	.tipa-ui .tipa-careers-hero .tipa-careers-hero__title { font-size: 32px; }
	.tipa-jobs__track { grid-auto-columns: calc((100% - 30px) / 2.3); column-gap: 20px; }
	.tipa-jobs__arrow { display: none; }
	.tipa-career-form { padding: 40px 24px; }
	.tipa-career-form__image img { min-height: 280px; max-height: 420px; }
}

@media (max-width: 549px) {
	.tipa-careers-hero__box { padding: 20px 22px; }
	.tipa-ui .tipa-careers-hero .tipa-careers-hero__title { font-size: 24px; }
	.tipa-jobs__track { grid-auto-columns: 78%; column-gap: 16px; }
	.tipa-career-form { padding: 32px 20px; }
	.tipa-ui .tipa-career-form .tipa-career-form__title { font-size: 26px; }
}

/* Careers form: spacing from the job slider above and the footer below,
 * photo + form in a rounded light-green card */
.tipa-career-form-section {
	padding-bottom: 96px !important;
}

.tipa-career-form-section .tipa-career-form__row {
	overflow: hidden;
	width: calc(100% - 30px);
	max-width: 1340px;
	margin-right: auto;
	margin-left: auto;
	border-radius: 16px;
	background: var(--tipa-green-50);
}

.tipa-career-form-section .tipa-career-form__row > .col {
	padding: 0;
}

@media (max-width: 849px) {
	.tipa-career-form-section { padding-bottom: 64px !important; }
}

@media (max-width: 549px) {
	.tipa-career-form-section { padding-bottom: 48px !important; }
}

/* About TIPA ------------------------------------------------------------- */

/* Human resources */
.tipa-ui .tipa-hr__title {
	margin: 0 0 16px;
	color: var(--tipa-ink);
	font-size: 36px;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -.02em;
}

.tipa-hr__text {
	margin: 0;
	color: var(--tipa-text);
	font-size: 17px;
	line-height: 1.75;
}

.tipa-hr__stat p {
	display: flex;
	align-items: baseline;
	justify-content: flex-end;
	gap: 12px;
	margin: 0;
}

.tipa-hr__stat strong {
	color: var(--tipa-green);
	font-size: 72px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.03em;
}

.tipa-hr__stat span {
	color: var(--tipa-text);
	font-size: 17px;
}

.tipa-table {
	width: 100%;
	margin: 16px 0 0;
	overflow: hidden;
	border: 1px solid var(--tipa-green-100);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 12px;
}

.tipa-table th,
.tipa-table td,
.tipa-table th:first-child,
.tipa-table td:first-child,
.tipa-table th:last-child,
.tipa-table td:last-child {
	padding: 18px 24px;
	border: 0;
	text-align: left;
	vertical-align: middle;
}

.tipa-table th {
	background: var(--tipa-green);
	color: var(--tipa-white);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: none;
}

.tipa-table td {
	border-top: 1px solid var(--tipa-green-100);
	color: var(--tipa-text);
	font-size: 16px;
	line-height: 1.6;
}

.tipa-table tbody tr:nth-child(even) td {
	background: var(--tipa-green-50);
}

.tipa-table td:first-child {
	color: var(--tipa-ink);
	font-weight: 600;
}

.tipa-table td:nth-child(2),
.tipa-table th:nth-child(2) {
	width: 120px;
	text-align: center;
}

.tipa-table td:nth-child(2) {
	color: var(--tipa-green);
	font-size: 20px;
	font-weight: 700;
}

@media (max-width: 849px) {
	.tipa-hr__stat p { justify-content: flex-start; margin-top: 16px; }
}

@media (max-width: 549px) {
	.tipa-ui .tipa-hr__title { font-size: 28px; }
	.tipa-hr__stat strong { font-size: 56px; }

	/* Table becomes stacked cards */
	.tipa-table,
	.tipa-table tbody,
	.tipa-table tr,
	.tipa-table td { display: block; width: 100%; }
	.tipa-table { border: 0; border-radius: 0; }
	.tipa-table thead { display: none; }
	.tipa-table tr { margin-bottom: 16px; overflow: hidden; border: 1px solid var(--tipa-green-100); border-radius: 12px; }
	.tipa-table td,
	.tipa-table td:first-child,
	.tipa-table td:last-child,
	.tipa-table tbody tr:nth-child(even) td { padding: 12px 16px; background: transparent; }
	.tipa-table tbody tr td:first-child { border-top: 0; background: var(--tipa-green); color: var(--tipa-white); }
	.tipa-table td:nth-child(2) { width: 100%; text-align: left; }
	.tipa-table td:not(:first-child)::before { content: attr(data-label); display: block; color: var(--tipa-gray); font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
}


/* About TIPA: "What we do" block (areas 01-02, services 03-05, CTA bar) */
.tipa-num {
	display: inline-block;
	color: var(--tipa-green);
	font-size: 40px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -.03em;
}

.tipa-areas__main > .col,
.tipa-areas__services > .col {
	display: flex;
}

.tipa-area-card > .col-inner,
.tipa-step-card > .col-inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--tipa-green-100);
	border-radius: 16px;
	background: var(--tipa-white);
	transition: box-shadow .3s ease, transform .3s ease;
}

.tipa-area-card > .col-inner:hover,
.tipa-step-card > .col-inner:hover {
	box-shadow: 0 18px 40px rgba(15, 43, 12, .10);
	transform: translateY(-4px);
}

.tipa-area-card__image {
	margin: 0;
}

.tipa-area-card__image .img-inner {
	margin: 0;
}

.tipa-area-card__body {
	flex: 1;
	padding: 28px 32px 32px;
}

.tipa-ui .tipa-area-card .tipa-area-card__title {
	margin: 12px 0 20px;
	color: var(--tipa-ink);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-area-card__text {
	margin: 0 0 20px;
	color: var(--tipa-text);
	font-size: 16px;
	line-height: 1.7;
}

/* Equipment as tags */
.tipa-tag-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tipa-ui .tipa-tag-list li {
	margin: 0;
	padding: 8px 16px;
	border-radius: 99px;
	background: var(--tipa-green-50);
	border: 1px solid var(--tipa-green-100);
	color: var(--tipa-ink);
	font-size: 14px;
	line-height: 1.4;
	list-style: none;
}

.tipa-tag-list strong {
	color: var(--tipa-green-700);
}

/* Chemical benefits with check marks */
.tipa-benefit-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tipa-ui .tipa-benefit-list li {
	position: relative;
	margin: 0 0 12px;
	padding-left: 34px;
	color: var(--tipa-ink);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	list-style: none;
}

.tipa-benefit-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--tipa-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* Services 03-05 */
.tipa-areas__services {
	margin-top: 10px;
}

.tipa-step-card > .col-inner {
	padding: 28px 28px 32px;
}

.tipa-step-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.tipa-step-card .tipa-num {
	font-size: 32px;
}

.tipa-ui .tipa-step-card .tipa-step-card__title {
	margin: 0 0 10px;
	color: var(--tipa-ink);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
}

.tipa-step-card__text {
	margin: 0;
	color: var(--tipa-text);
	font-size: 15px;
	line-height: 1.65;
}

.tipa-circle__icon {
	position: relative;
	display: block;
	width: 48px;
	height: 48px;
	margin-bottom: 14px;
	border-radius: 50%;
	background: var(--tipa-green-100);
}

.tipa-circle__icon::before {
	content: "";
	position: absolute;
	inset: 12px;
	background: var(--tipa-green-700);
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

.tipa-circle__icon--build { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20h20M4 20V10l8-6 8 6v10M9 20v-6h6v6'/%3E%3C/svg%3E"); }

.tipa-circle__icon--gear { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z'/%3E%3C/svg%3E"); }

.tipa-circle__icon--bulb { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.6.5 1 1.3 1 2.3h6c0-1 .4-1.8 1-2.3A7 7 0 0 0 12 2z'/%3E%3C/svg%3E"); }

.tipa-circle__icon {
	margin-bottom: 0;
}

/* CTA bar */
.tipa-areas__cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: 10px;
	padding: 32px 40px;
	border-radius: 16px;
	background: var(--tipa-green-900);
}

.tipa-areas__cta p {
	margin: 0;
}

.tipa-areas__cta .tipa-areas__cta-title {
	color: var(--tipa-white);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
}

.tipa-areas__cta .tipa-areas__cta-url {
	margin-top: 4px;
	color: var(--tipa-green-100);
	font-size: 15px;
}

.tipa-areas__cta .tipa-cta__btn {
	flex: 0 0 auto;
}

@media (max-width: 849px) {
	.tipa-area-card__body { padding: 24px; }
	.tipa-ui .tipa-area-card .tipa-area-card__title { font-size: 21px; }
	.tipa-areas__cta { flex-direction: column; align-items: flex-start; padding: 28px 24px; }
}

@media (max-width: 549px) {
	.tipa-num { font-size: 32px; }
	.tipa-ui .tipa-tag-list li { font-size: 13px; padding: 6px 12px; }
	.tipa-areas__cta .tipa-areas__cta-title { font-size: 19px; }
}

/* Same image ratio in both area cards, whatever the original photo size */
.tipa-area-card__image .img-inner {
	aspect-ratio: 16 / 9;
	overflow: hidden;
}

.tipa-area-card__image .img-inner img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.tipa-area-card > .col-inner:hover .tipa-area-card__image img {
	transform: scale(1.04);
}

/* CTA bar button: same pill as the "Connect with TIPA" banner */
.tipa-areas__cta .tipa-cta__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	margin: 0;
	padding: 0 28px;
	border: 0;
	border-radius: 99px;
	background: var(--tipa-white);
	color: var(--tipa-green-900);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: none;
}

.tipa-areas__cta .tipa-cta__btn::after {
	content: "→";
	transition: transform .2s ease;
}

.tipa-areas__cta .tipa-cta__btn:hover {
	background: var(--tipa-green-100);
	color: var(--tipa-green-900);
}

.tipa-areas__cta .tipa-cta__btn:hover::after {
	transform: translateX(4px);
}

/* About TIPA: icons for areas 03-04 and the three values */
.tipa-circle__icon--drop { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2.7s-6 6.6-6 11.3a6 6 0 0 0 12 0c0-4.7-6-11.3-6-11.3z'/%3E%3C/svg%3E"); }

.tipa-circle__icon--wrench { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.8-3.8a6 6 0 0 1-7.9 7.9l-6.9 6.9a2.1 2.1 0 0 1-3-3l6.9-6.9a6 6 0 0 1 7.9-7.9z'/%3E%3C/svg%3E"); }

.tipa-circle__icon--target { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E"); }

.tipa-circle__icon--chart { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18M7 15l4-4 3 3 6-6'/%3E%3C/svg%3E"); }

.tipa-circle__icon--handshake { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E"); }

/* About TIPA: hero paragraphs, values intro */
.tipa-about-hero .tipa-contact-hero__text + .tipa-contact-hero__text {
	margin-top: 16px;
}

.tipa-values .tipa-lead {
	margin: -24px 0 40px;
}

/* HR section on a light green background: keep the table rows readable */
@media (min-width: 550px) {
	.tipa-hr-section--tint .tipa-table tbody tr:nth-child(odd) td { background: var(--tipa-white); }
}

/* "Trusted engineering partner" closing box (dark green CTA bar) */
.tipa-ui .tipa-partner__box .tipa-areas__cta-title {
	margin: 0 0 16px;
	color: var(--tipa-white);
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.tipa-partner__box {
	padding: 48px;
}

.tipa-partner__box .tipa-areas__cta-text {
	max-width: 760px;
}

.tipa-areas__cta .tipa-partner__text {
	margin-bottom: 12px;
	color: var(--tipa-green-100);
	font-size: 16px;
	line-height: 1.7;
}

.tipa-areas__cta .tipa-partner__tagline {
	margin-top: 20px;
	color: var(--tipa-white);
	font-size: 17px;
	font-weight: 600;
}

@media (max-width: 849px) {
	.tipa-partner__box { padding: 32px 24px; }
	.tipa-ui .tipa-partner__box .tipa-areas__cta-title { font-size: 24px; }
}

@media (max-width: 549px) {
	.tipa-hr-section--tint .tipa-table tbody tr td:not(:first-child) { background: var(--tipa-white); }
}

/* Legal pages (page template "TIPA – Legal page") */
.tipa-legal .tipa-page-bar-section {
	border-bottom: 1px solid var(--tipa-green-100);
}

.tipa-legal__body {
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(0, 3fr);
	gap: 64px;
	padding-top: 56px;
	padding-bottom: 96px;
}

.tipa-legal__body::before,
.tipa-legal__body::after {
	display: none;
}

.tipa-ui .tipa-legal .tipa-page-title {
	margin-bottom: 8px;
}

.tipa-legal__updated {
	margin: 0 0 32px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--tipa-green-100);
	color: var(--tipa-gray);
	font-size: 14px;
}

.tipa-legal__content {
	color: var(--tipa-text);
	font-size: 16px;
	line-height: 1.8;
}

.tipa-ui .tipa-legal__content h2 {
	margin: 36px 0 12px;
	color: var(--tipa-ink);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: -.01em;
}

.tipa-legal__content ul li {
	margin-bottom: 6px;
}

.tipa-legal__aside {
	align-self: start;
	position: sticky;
	top: 110px;
	padding: 24px;
	border-radius: 16px;
	background: var(--tipa-green-50);
}

.tipa-legal__aside-title {
	margin: 0 0 12px;
	color: var(--tipa-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.tipa-legal__nav {
	margin: 0;
	padding: 0;
	list-style: none;
}

.tipa-ui .tipa-legal__nav li {
	margin: 0;
	list-style: none;
}

.tipa-legal__nav a {
	display: block;
	padding: 10px 12px;
	border-radius: 8px;
	color: var(--tipa-text);
	font-size: 15px;
	transition: background-color .15s ease, color .15s ease;
}

.tipa-legal__nav a:hover,
.tipa-legal__nav .current-menu-item > a {
	background: var(--tipa-green-100);
	color: var(--tipa-green-700);
}

@media (max-width: 849px) {
	.tipa-legal__body { grid-template-columns: 1fr; gap: 40px; padding-top: 40px; padding-bottom: 64px; }
	.tipa-legal__aside { position: static; }
}

/* Search form (search results + 404) */
.tipa-search-form {
	display: flex;
	gap: 12px;
	max-width: 640px;
	margin: 24px 0 40px;
}

.tipa-search-form input[type="search"] {
	flex: 1;
	height: 50px;
	margin: 0;
	padding: 0 20px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 99px;
	background: var(--tipa-white);
	box-shadow: none;
	font-size: 15px;
}

.tipa-search-form input[type="search"]:focus {
	border-color: var(--tipa-green);
	box-shadow: 0 0 0 3px var(--tipa-green-100);
	outline: none;
}

.tipa-ui .tipa-search-form .button.primary {
	margin: 0;
	min-height: 50px;
	padding: 0 28px;
	border-radius: 99px;
	font-size: 15px;
	font-weight: 600;
	line-height: 50px;
}

/* Search results */
.tipa-search-page .tipa-page-bar-section {
	border-bottom: 1px solid var(--tipa-green-100);
}

.tipa-search-page__body {
	padding-top: 56px;
	padding-bottom: 96px;
}

.tipa-ui .tipa-search-page .tipa-page-title {
	margin-bottom: 4px;
}

.tipa-search-page__count,
.tipa-search-page__empty {
	margin: 0;
	color: var(--tipa-gray);
}

.tipa-search-results {
	display: grid;
	gap: 16px;
}

.tipa-search-result {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr);
	gap: 24px;
	align-items: center;
	padding: 16px;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	transition: box-shadow .2s ease;
}

.tipa-search-result:hover {
	box-shadow: 0 12px 28px rgba(15, 43, 12, .08);
}

.tipa-search-result__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	background: var(--tipa-green-50);
}

.tipa-search-result__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tipa-search-result__type {
	display: inline-block;
	margin-bottom: 6px;
	padding: 2px 10px;
	border-radius: 99px;
	background: var(--tipa-green-100);
	color: var(--tipa-green-700);
	font-size: 12px;
	font-weight: 600;
}

.tipa-ui .tipa-search-result__title {
	margin: 0 0 6px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
}

.tipa-search-result__title a {
	color: var(--tipa-ink);
}

.tipa-search-result__title a:hover {
	color: var(--tipa-green);
}

.tipa-search-result__excerpt {
	margin: 0;
	color: var(--tipa-text);
	font-size: 15px;
	line-height: 1.6;
}

/* 404 */
.tipa-404__body {
	padding-top: 96px;
	padding-bottom: 120px;
	text-align: center;
}

.tipa-404__code {
	margin: 0;
	color: var(--tipa-green-100);
	font-size: 160px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.04em;
}

.tipa-404 .tipa-search-form {
	margin-right: auto;
	margin-left: auto;
}

.tipa-404__actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
}

.tipa-ui .tipa-404__actions .tipa-quote-btn.button.primary {
	margin: 0;
}

@media (max-width: 549px) {
	.tipa-search-form { flex-direction: column; }
	.tipa-search-result { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 12px; }
	.tipa-ui .tipa-search-result__title { font-size: 16px; }
	.tipa-search-result__excerpt { display: none; }
	.tipa-404__code { font-size: 110px; }
	.tipa-404__actions { flex-direction: column; gap: 16px; }
}

/* Product card (category grid, related products on the product page) */
.tipa-product-card {
	display: flex;
}

.tipa-product-card__link {
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	border: 1px solid var(--tipa-green-100);
	border-radius: 12px;
	background: var(--tipa-white);
	transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

.tipa-product-card__link:hover {
	border-color: transparent;
	box-shadow: 0 18px 40px rgba(15, 43, 12, .10);
	transform: translateY(-4px);
}

.tipa-product-card__media {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--tipa-green-50);
}

.tipa-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s ease;
}

.tipa-product-card__link:hover .tipa-product-card__media img {
	transform: scale(1.05);
}

.tipa-product-card__body {
	padding: 20px 24px 24px;
}

.tipa-ui .tipa-product-card__title {
	margin: 0 0 8px;
	color: var(--tipa-ink);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.01em;
	transition: color .2s ease;
}

.tipa-product-card__link:hover .tipa-product-card__title {
	color: var(--tipa-green);
}

.tipa-product-card__text {
	margin: 0;
	color: var(--tipa-text);
	font-size: 14px;
	line-height: 1.6;
}


/* Cards in the related products slider: same height, text colours not links */
.tipa-product-related .tipa-hslider__slide {
	display: flex;
}

.tipa-product-card__link,
.tipa-product-card__link:hover {
	color: inherit;
}

@media (max-width: 549px) {
	.tipa-product-card__body { padding: 16px; }
	.tipa-ui .tipa-product-card__title { font-size: 15px; }
	.tipa-product-card__text { display: none; }
}

/* Several lines in one contact card value (e.g. company + tax code) */
.tipa-contact-card__line {
	display: block;
}
