:root {
	--tx-brand-deep: #082c31;
	--tx-brand-teal: #006e71;
	--tx-brand-aqua: #00a9a5;
	--tx-brand-lime: #c4c932;
	--tx-brand-cloud: #f6f7f3;
	--tx-brand-mineral: #e7ece7;
}

html { background: var(--tx-brand-cloud); }

body {
	background: var(--tx-brand-cloud);
	color: var(--tx-brand-deep);
	font-family: Manrope, Arial, sans-serif;
	font-size: 1rem;
	letter-spacing: -0.012em;
}

body .wp-site-blocks { overflow: clip; }
body :is(h1, h2, h3, h4) { font-family: Outfit, Arial, sans-serif; }
body p { max-width: 68ch; }
body a { text-underline-offset: .22em; }

header.wp-block-group {
	background: rgba(255, 255, 252, .94);
	border-bottom: 1px solid rgba(8, 44, 49, .10);
	box-shadow: 0 10px 30px rgba(8, 44, 49, .04);
	position: relative;
	z-index: 20;
}

.tx-brand-logo { display: inline-flex; align-items: center; line-height: 0; }
.tx-brand-logo img { display: block; height: clamp(3rem, 4vw, 4.25rem); max-width: min(19rem, 45vw); width: auto; }

.wp-block-navigation .wp-block-navigation-item__content {
	color: var(--tx-brand-deep) !important;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .045em;
	text-transform: uppercase;
}

.wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--tx-brand-teal) !important; }

.tx-video-hero {
	background-color: var(--tx-brand-deep);
	min-height: min(900px, calc(100svh - 80px));
}

.tx-video-hero__shade {
	background:
		linear-gradient(90deg, rgba(4, 29, 34, .96) 0%, rgba(4, 39, 44, .82) 42%, rgba(0, 110, 113, .28) 78%),
		linear-gradient(180deg, rgba(8, 44, 49, 0) 50%, rgba(8, 44, 49, .62) 100%);
}

.tx-video-hero__content { margin-bottom: clamp(3rem, 8vh, 7rem); max-width: 1180px; }
.tx-video-hero h1 { font-weight: 700; max-width: 12ch; }
.tx-video-hero .tx-eyebrow { color: var(--tx-brand-lime); }
.tx-video-hero p:not(.tx-eyebrow) { font-size: clamp(1.08rem, 1.7vw, 1.35rem); line-height: 1.6; }

.tx-button, .wp-block-button__link {
	background: var(--tx-brand-lime) !important;
	border-radius: 0 !important;
	color: var(--tx-brand-deep) !important;
	font-family: Outfit, Arial, sans-serif;
	font-weight: 700 !important;
	letter-spacing: .025em;
	padding: 1rem 1.45rem !important;
	text-decoration: none;
}

.tx-button--outline {
	background: transparent !important;
	border-color: rgba(255, 255, 255, .72) !important;
	color: #fff !important;
}

.tx-stat {
	border-left-color: rgba(196, 201, 50, .55);
	font-size: .95rem;
	line-height: 1.55;
	padding: .65rem 2rem;
}
.tx-stat strong { color: var(--tx-brand-lime); font-family: Outfit, Arial, sans-serif; font-size: clamp(1.65rem, 2.7vw, 2.65rem); }

.tx-eyebrow {
	color: var(--tx-brand-teal);
	font-family: Outfit, Arial, sans-serif;
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .17em;
}

.has-sand-background-color { background-color: var(--tx-brand-mineral) !important; }

.tx-card,
.tx-project-card {
	background: transparent;
	border: 0;
	border-radius: 0;
	border-top: 1px solid rgba(8, 44, 49, .24);
	box-shadow: none;
	padding: clamp(1.2rem, 2vw, 1.75rem) 0;
}

.tx-card:hover,
.tx-project-card:hover { box-shadow: none; transform: none; }
.tx-card h3 { font-size: clamp(1.35rem, 1.8vw, 1.85rem); margin: 1.3rem 0 .8rem; }
.tx-card p:last-child { margin-bottom: 0; }

.tx-project-card { border-color: rgba(8, 44, 49, .19); }
.tx-project-card a { color: var(--tx-brand-deep); text-decoration: none; }
.tx-project-card a:hover { color: var(--tx-brand-teal); }

.tx-project-grid { gap: clamp(1.25rem, 2.5vw, 3rem); }
.tx-project-grid .tx-project-card { padding: 1.5rem 0 0; }
.tx-project-card__link { color: var(--tx-brand-teal) !important; font-family: Outfit, Arial, sans-serif; letter-spacing: .02em; }

/* Projects are presented as a running delivery record, not a small card grid. */
.tx-project-register { margin: clamp(3rem, 6vw, 5rem) auto 0; max-width: 1480px; }
.tx-project-register__list,
.tx-project-rail__list { list-style: none; margin: 0; padding: 0; }
.tx-project-register__item { align-items: start; border-top: 1px solid rgba(8, 44, 49, .22); display: grid; gap: clamp(1rem, 2.4vw, 3rem); grid-template-columns: clamp(3.5rem, 7vw, 7rem) minmax(10rem, .7fr) minmax(18rem, 2fr) minmax(9rem, .6fr); padding: clamp(2rem, 3.5vw, 3.4rem) 0; }
.tx-project-register__item:last-child { border-bottom: 1px solid rgba(8, 44, 49, .22); }
.tx-project-register__number { color: rgba(0, 110, 113, .42); font-family: Outfit, Arial, sans-serif; font-size: clamp(2.3rem, 4vw, 4.6rem); font-weight: 700; letter-spacing: -.07em; line-height: .8; }
.tx-project-register__meta .tx-eyebrow { margin: .15rem 0 .8rem; }
.tx-project-register__status { color: var(--tx-brand-teal); font-family: Outfit, Arial, sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.tx-project-register__body h2 { font-size: clamp(1.8rem, 3vw, 3.35rem); line-height: .98; margin: 0 0 .8rem; max-width: 17ch; }
.tx-project-register__body h2 a { color: var(--tx-brand-deep); text-decoration: none; }
.tx-project-register__body h2 a:hover { color: var(--tx-brand-teal); }
.tx-project-register__body p { font-size: clamp(.98rem, 1.25vw, 1.1rem); margin: 0; }
.tx-project-register__action { align-items: start; display: flex; flex-direction: column; font-size: .8rem; gap: 1.15rem; line-height: 1.45; padding-top: .25rem; }
.tx-project-register__action > span { color: rgba(8, 44, 49, .65); font-weight: 700; }
.tx-project-register__action a,
.tx-project-rail__link { color: var(--tx-brand-teal); font-family: Outfit, Arial, sans-serif; font-weight: 700; text-decoration: none; }

.tx-project-rail { margin: clamp(3.4rem, 6vw, 5.25rem) auto 0; max-width: 1480px; position: relative; }
.tx-project-rail__controls { inset: 0; pointer-events: none; position: absolute; z-index: 3; }
.tx-project-rail__status { color: rgba(8, 44, 49, .68); font-family: Outfit, Arial, sans-serif; font-size: .76rem; font-weight: 700; letter-spacing: .13em; position: absolute; right: 0; top: -2rem; text-transform: uppercase; }
.tx-project-rail__buttons { inset: 0; position: absolute; }
.tx-project-rail__control { align-items: center; background: #fff; border: 1px solid rgba(8, 44, 49, .14); border-radius: 50%; box-shadow: 0 14px 36px rgba(8, 44, 49, .14); color: var(--tx-brand-teal); cursor: pointer; display: inline-flex; height: 3.25rem; justify-content: center; padding: 0; pointer-events: auto; position: absolute; top: calc(50% - .5rem); transform: translateY(-50%); transition: background-color .2s ease, border-color .2s ease, color .2s ease, opacity .2s ease, transform .2s ease; width: 3.25rem; }
.tx-project-rail__control--previous { left: -1.625rem; }
.tx-project-rail__control--next { right: -1.625rem; }
.tx-project-rail__control:hover:not(:disabled) { background: var(--tx-brand-lime); border-color: var(--tx-brand-lime); color: var(--tx-brand-deep); transform: translateY(-50%) scale(1.06); }
.tx-project-rail__control:focus-visible { outline: 3px solid rgba(196, 201, 50, .7); outline-offset: 3px; }
.tx-project-rail__control:disabled { box-shadow: none; cursor: not-allowed; opacity: .28; }
.tx-project-rail__control > span[aria-hidden="true"] { font-size: 1.45rem; line-height: 1; transform: translateY(-.04em); }
.tx-project-rail__control > span:not([aria-hidden="true"]) { clip: rect(1px, 1px, 1px, 1px); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
.tx-project-rail__list { -ms-overflow-style: none; display: flex; gap: clamp(1rem, 2vw, 2rem); overflow-x: auto; padding: 0 0 1rem; scrollbar-width: none; scroll-snap-type: x mandatory; }
.tx-project-rail__list:focus-visible { outline: 3px solid rgba(196, 201, 50, .65); outline-offset: 4px; }
.tx-project-rail__list::-webkit-scrollbar { display: none; }
.tx-project-rail__item { background: rgba(255, 255, 255, .64); border-top: 2px solid var(--tx-brand-lime); flex: 0 0 clamp(18rem, 34vw, 29rem); scroll-snap-align: start; }
.tx-project-rail__item article { display: flex; flex-direction: column; min-height: 22rem; padding: clamp(1.5rem, 2.8vw, 2.5rem); }
.tx-project-rail__top { align-items: baseline; display: flex; justify-content: space-between; margin-bottom: clamp(2.8rem, 6vw, 5.5rem); }
.tx-project-rail__top span { color: rgba(0, 110, 113, .46); font-family: Outfit, Arial, sans-serif; font-size: clamp(2.2rem, 3.6vw, 3.75rem); font-weight: 700; letter-spacing: -.07em; line-height: .8; }
.tx-project-rail__top p { color: var(--tx-brand-teal); font-family: Outfit, Arial, sans-serif; font-size: .72rem; font-weight: 700; letter-spacing: .1em; margin: 0; text-transform: uppercase; }
.tx-project-rail__item .tx-eyebrow { margin: 0 0 .85rem; }
.tx-project-rail__item h3 { font-size: clamp(1.65rem, 2.4vw, 2.45rem); line-height: .98; margin: 0 0 .9rem; max-width: 13ch; }
.tx-project-rail__item h3 a { color: var(--tx-brand-deep); text-decoration: none; }
.tx-project-rail__item h3 a:hover { color: var(--tx-brand-teal); }
.tx-project-rail__item > article > p:not(.tx-eyebrow) { font-size: .96rem; margin: 0; }
.tx-project-rail__link { margin-top: auto; padding-top: 1.75rem; }

body .tx-credibility {
	background: #fff;
	border-bottom: 1px solid rgba(8, 44, 49, .13);
	border-top: 1px solid rgba(8, 44, 49, .13);
	box-sizing: border-box;
	margin: 0;
	max-width: none;
	padding: clamp(4rem, 6vw, 6rem) clamp(1.25rem, 4vw, 4rem);
	width: 100%;
}
.home .wp-site-blocks > .tx-credibility + .wp-block-group { margin-block-start: 0; }
.tx-credibility__inner { margin: 0 auto; max-width: 1480px; }
.tx-credibility__header { display: grid; gap: 1.15rem; grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr); margin-bottom: clamp(2rem, 4vw, 3rem); }
.tx-credibility__header .tx-eyebrow { grid-column: 1 / -1; margin-bottom: -.55rem; }
.tx-credibility__header h2 { font-size: clamp(2.35rem, 3.2vw, 3.5rem); line-height: 1.02; margin: 0; max-width: 18ch; }
.tx-credibility__header p:not(.tx-eyebrow) { align-self: end; margin: 0; }
.tx-client-logos { border-top: 1px solid rgba(8, 44, 49, .16); display: grid; gap: clamp(.75rem, 1.5vw, 1.25rem); grid-template-columns: repeat(5, minmax(0, 1fr)); padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.tx-client-logo { align-items: center; background: transparent; border: 0; box-shadow: none; display: flex; justify-content: center; min-height: 8rem; padding: .5rem; }
.tx-client-logo img { display: block; height: 6rem; max-width: 100%; object-fit: contain; width: 12rem; }

.tx-assurance { background: var(--tx-brand-mineral); border-top: 1px solid rgba(8, 44, 49, .15); padding: clamp(2.75rem, 5vw, 4rem) clamp(1.25rem, 4vw, 4rem); }
.tx-assurance__inner { align-items: center; display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(16rem, 1fr) minmax(13rem, .54fr); margin: 0 auto; max-width: 1480px; }
.tx-assurance .tx-eyebrow { margin-bottom: .8rem; }
.tx-assurance h2 { font-size: clamp(1.8rem, 2.8vw, 2.8rem); line-height: 1; margin: 0 0 .9rem; }
.tx-assurance p:not(.tx-eyebrow) { font-size: .88rem; line-height: 1.55; margin: 0; max-width: 49ch; }
.tx-assurance img { filter: saturate(.88); justify-self: center; max-height: 4.5rem; max-width: 100%; object-fit: contain; }

/* The home template is parsed with its final sand-colour content group around
   the footer template part. Break the footer back out and remove that group's
   trailing padding so its assurance strip matches every interior page. */
body.home footer.wp-block-template-part:has(.tx-assurance) {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
	width: 100% !important;
}
body.home .wp-site-blocks > .has-sand-background-color:has(> footer.wp-block-template-part .tx-assurance) {
	padding-bottom: 0 !important;
}

.tx-page-hero {
	background-color: var(--tx-brand-teal);
	background-image:
		linear-gradient(105deg, rgba(0, 110, 113, .80), rgba(0, 110, 113, .74)),
		url('../media/tirex-legacy-offshore-drilling.jpg');
	background-position: center 53%;
	background-size: cover;
	min-height: 268px;
	padding-bottom: clamp(3.25rem, 5.5vw, 5.25rem);
	padding-top: clamp(4.75rem, 7vw, 6.75rem);
	position: relative;
}

/* The homepage video hero must meet the site header directly. WordPress applies
   a default block gap to consecutive template children, which otherwise leaves
   an unintended strip above the first section. */
.home .wp-site-blocks > .tx-video-hero { margin-top: 0 !important; }

.tx-page-hero h1 {
	font-size: clamp(2.65rem, 4.25vw, 4.45rem) !important;
	line-height: .98;
	max-width: 14ch;
}
.tx-page-hero::after {
	background: var(--tx-brand-lime);
	bottom: 0;
	content: "";
	display: block;
	height: 5px;
	left: clamp(1.25rem, 4vw, 4rem);
	position: absolute;
	width: clamp(4rem, 9vw, 9rem);
}

.tirex-theme-asset { margin-bottom: clamp(2rem, 4vw, 4rem); }
.tirex-theme-asset img { filter: saturate(.88) contrast(1.04); }
.wp-block-columns:has(.tx-sustainability-card) { align-items: flex-start; gap: clamp(1.5rem, 2.8vw, 3rem); }
.tx-sustainability-card { display: block !important; margin: 0 !important; padding: 0 0 1.75rem; }
.tx-sustainability-card .tirex-theme-asset { margin: 0 0 1.75rem; }
.tx-sustainability-card .tirex-theme-asset img { aspect-ratio: 4 / 3; border-radius: 1rem; display: block; object-fit: cover; width: 100%; }

/* About-page editorial panels: purposeful imagery with the same restrained
   radius used across the sustainability cards. */
.tx-about-feature { border-top: 1px solid rgba(8, 44, 49, .2); padding-top: 1.25rem; }
.tx-about-feature .tirex-theme-asset { margin: 0 0 1.85rem; }
.tx-about-feature .tirex-theme-asset img { aspect-ratio: 4 / 3; border-radius: 1rem; display: block; object-fit: cover; width: 100%; }
.tx-about-feature--leadership .tirex-theme-asset img { object-position: 75% center; }
.tx-about-feature h2 { font-size: clamp(2rem, 2.7vw, 3.15rem); max-width: 12ch; }

.tx-vacancy-grid { display: grid; gap: clamp(1.25rem, 2.5vw, 2.25rem); grid-template-columns: repeat(2, minmax(0, 1fr)); margin: clamp(3rem, 6vw, 5rem) auto; max-width: 1480px; }
.tx-vacancy-card,
.tx-vacancy-empty { border-top: 1px solid rgba(8, 44, 49, .25); padding: 1.6rem 0; }
.tx-vacancy-card h2,
.tx-vacancy-empty h2 { font-size: clamp(1.5rem, 2vw, 2rem); margin: .8rem 0; }
.tx-vacancy-card__closing { font-size: .9rem; }

.tirex-project-facts {
	background: rgba(0, 110, 113, .2);
	border-top: 2px solid var(--tx-brand-lime);
	gap: 1px;
	max-width: none;
}
.tirex-project-facts div { background: var(--tx-brand-cloud); }
.tirex-project-facts dt { color: var(--tx-brand-teal); }

.tirex-enquiry-form { max-width: none; }
.tirex-enquiry-form input:not([type=hidden]),
.tirex-enquiry-form select,
.tirex-enquiry-form textarea {
	background: transparent;
	border: 0;
	border-bottom: 1px solid rgba(8, 44, 49, .4);
	border-radius: 0;
	padding: .9rem .1rem;
}
.tirex-enquiry-form button { background: var(--tx-brand-lime); border-radius: 0; color: var(--tx-brand-deep); font-family: Outfit, Arial, sans-serif; padding: 1rem 1.45rem; }

.tx-footer { background: var(--tx-brand-deep) !important; }
.tx-footer.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }
.tx-footer > .wp-block-columns,
.tx-footer > .wp-block-group { margin-left: auto; margin-right: auto; max-width: 1480px; padding-left: clamp(1.25rem, 4vw, 4rem); padding-right: clamp(1.25rem, 4vw, 4rem); }
.tx-footer h3 { color: var(--tx-brand-lime); letter-spacing: .1em; }
.tx-footer a:hover { color: var(--tx-brand-lime) !important; }
.tx-footer .tx-brand-logo--inverse { margin-bottom: 1.6rem; max-width: 14.5rem; }
.tx-footer .tx-brand-logo--inverse img { height: auto; max-width: 100%; width: 100%; }

.tx-home-hse,
.tx-contact-cta {
	background-position: center;
	background-size: cover;
	position: relative;
	overflow: hidden;
}

.tx-home-hse {
	background-image:
		linear-gradient(90deg, rgba(8, 44, 49, .96) 0%, rgba(8, 44, 49, .84) 48%, rgba(8, 44, 49, .24) 100%),
		url('../media/tirex-legacy-hse.jpg') !important;
}

.tx-contact-cta {
	background-image:
		linear-gradient(90deg, rgba(4, 33, 39, .95) 0%, rgba(4, 33, 39, .78) 52%, rgba(4, 33, 39, .25) 100%),
		url('../media/tirex-legacy-offshore-drilling.jpg');
}

.tx-home-hse .tx-eyebrow,
.tx-contact-cta .tx-eyebrow { color: var(--tx-brand-lime); }
.tx-home-hse h2,
.tx-contact-cta h2 { max-width: 15ch; }
.tx-contact-cta p:not(.tx-eyebrow) { max-width: 57ch; }

@media (max-width: 781px) {
	.tx-video-hero { min-height: 710px; }
	.tx-video-hero h1 { font-size: clamp(3.1rem, 15vw, 4.6rem); }
	.tx-page-hero h1 { font-size: clamp(2.55rem, 11vw, 3.45rem) !important; }
	.tx-stat { border-left: 0; border-top: 1px solid rgba(196, 201, 50, .4); padding: 1.1rem 0; }
	.tx-credibility__header { grid-template-columns: 1fr; }
	.tx-client-logos { gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tx-client-logo { min-height: 7.5rem; padding: .75rem; }
	.tx-client-logo:last-child { grid-column: 1 / -1; }
	.tx-client-logo img { height: 5rem; width: 10rem; }
	.tx-assurance__inner { grid-template-columns: 1fr; }
	.tx-assurance img { justify-self: start; }
	.tx-vacancy-grid { grid-template-columns: 1fr; }
	.tx-project-register__item { grid-template-columns: 3.5rem 1fr; }
	.tx-project-register__meta { grid-column: 2; }
	.tx-project-register__body { grid-column: 2; }
	.tx-project-register__action { grid-column: 2; flex-direction: row; flex-wrap: wrap; padding-top: 0; }
	.tx-project-rail { display: flex; flex-direction: column; margin-top: 3rem; }
	.tx-project-rail__list { order: 1; }
	.tx-project-rail__controls { align-items: center; display: flex; inset: auto; justify-content: space-between; margin-top: .85rem; order: 2; pointer-events: auto; position: static; }
	.tx-project-rail__status { position: static; }
	.tx-project-rail__buttons { display: flex; gap: .65rem; position: static; }
	.tx-project-rail__control { height: 2.85rem; position: static; transform: none; width: 2.85rem; }
	.tx-project-rail__control:hover:not(:disabled) { transform: scale(1.05); }
	.tx-project-rail__item { flex-basis: min(82vw, 27rem); }
	.tx-home-hse,
	.tx-contact-cta { background-position: 62% center; }
	.tx-footer > .wp-block-columns,
	.tx-footer > .wp-block-group { padding-left: 1.25rem; padding-right: 1.25rem; }
	.wp-block-navigation__responsive-container.is-menu-open { background: var(--tx-brand-deep) !important; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { color: #fff !important; font-size: 1rem; }
}
