/*
Theme Name: TTC
Theme URI: https://www.ttc.co.tz/
Author: TTC – The Transport Company Ltd.
Author URI: https://www.ttc.co.tz/
Description: Lightweight custom Gutenberg block theme for TTC – The Transport Company Ltd. Scandinavian-minimalist B2B corporate theme. Design system lives in theme.json; business content lives in editable block patterns. Critical functionality lives in the separate ttc-functionality plugin.
Requires at least: 6.6
Tested up to: 6.9
Requires PHP: 8.1
Version: 1.8.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ttc
Tags: block-theme, full-site-editing, corporate, business, one-column, custom-colors, custom-logo, editor-style, translation-ready, accessibility-ready
*/

/*
 * The design system (colours, typography, spacing, layout) is defined in
 * theme.json. Keep this stylesheet minimal — only add rules that theme.json
 * cannot express. Do NOT put business content or heavy styling here.
 */

/* Self-hosted Inter — add the .woff2 files to /assets/fonts/inter/.
   If the files are absent, the font stack falls back gracefully. */
/* Self-hosted Inter — latin + latin-ext (Swahili). */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-Regular.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-latin-ext-400.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-SemiBold.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-latin-ext-600.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-Bold.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("./assets/fonts/inter/Inter-latin-ext-700.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Accessibility: always show a visible focus ring for keyboard users. */
:where(a, button, input, textarea, select, .wp-block-button__link):focus-visible {
	outline: 3px solid var(--wp--preset--color--ttc-blue);
	outline-offset: 2px;
}

/* Screen-reader-only utility (used by skip link and visually hidden labels). */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.skip-link:focus {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--ttc-blue);
	clip: auto;
	clip-path: none;
	display: block;
	height: auto;
	left: 8px;
	padding: 12px 20px;
	top: 8px;
	width: auto;
	z-index: 100000;
}

/* Thin rule token used by the <hr> / separator across the site. */
.wp-block-separator.is-style-ttc-rule {
	border: 0;
	border-top: 1px solid var(--wp--preset--color--line);
	opacity: 1;
	margin-block: 0;
	max-width: none;
}

/* Sticky header (kept lightweight; no shadow to preserve the flat aesthetic). */
.ttc-header.is-sticky {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--wp--preset--color--white);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

/* Limit reading measure on long-form paragraphs for legibility (~70 chars). */
.ttc-measure,
.ttc-measure p {
	max-width: 68ch;
}

/* -------------------------------------------------------------------------
 * One 1200px column. Header, hero, sections and footer share it.
 * Full-bleed bands break out of root padding without 100vw drift.
 * ------------------------------------------------------------------------- */

:root {
	--ttc-shell: 1200px;
	--ttc-space-10: 0.5rem;
	--ttc-space-20: 1rem;
	--ttc-space-30: 1.5rem;
	--ttc-space-40: 2rem;
	--ttc-space-50: 3rem;
	--ttc-space-60: 4rem;
	--ttc-space-70: 6rem;
	--ttc-space-80: 8rem;
	--ttc-gutter: var(--ttc-space-30);
}

html {
	overflow-x: clip;
}

/* WordPress 6.6+ default spacing slugs collide with ours (30 = 0.67rem).
   Pin the TTC scale on body so section padding, gutters and block-gap stay as designed. */
body {
	--wp--preset--spacing--10: var(--ttc-space-10);
	--wp--preset--spacing--20: var(--ttc-space-20);
	--wp--preset--spacing--30: var(--ttc-space-30);
	--wp--preset--spacing--40: var(--ttc-space-40);
	--wp--preset--spacing--50: var(--ttc-space-50);
	--wp--preset--spacing--60: var(--ttc-space-60);
	--wp--preset--spacing--70: var(--ttc-space-70);
	--wp--preset--spacing--80: var(--ttc-space-80);
	--wp--style--root--padding-left: var(--ttc-space-30);
	--wp--style--root--padding-right: var(--ttc-space-30);
	--wp--style--block-gap: var(--ttc-space-30);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "kern" 1, "liga" 1;
}

.wp-site-blocks {
	overflow-x: clip;
}

h1, h2, h3, .wp-block-heading {
	letter-spacing: -0.03em;
	text-wrap: balance;
}

p {
	text-wrap: pretty;
}

#ttc-main.is-layout-constrained,
#ttc-main > .wp-block-post-content.is-layout-constrained {
	max-width: none;
}

/* Page titles (Services, About, …) sat on a 760px column while sections
   used 1200px. Put both on the same shell, left-aligned with the logo. */
.wp-block-post-content > .wp-block-group.is-layout-constrained:not(.alignfull) {
	--wp--style--global--content-size: var(--ttc-shell);
	--wp--style--global--wide-size: var(--ttc-shell);
	max-width: var(--ttc-shell);
	margin-inline: auto;
	width: 100%;
	padding-inline: 0 !important;
}
.wp-block-post-content > .wp-block-group.is-layout-constrained:not(.alignfull) > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Full-bleed bands: post-content is already the layout width. Do not
   subtract root padding here — that shifts the photograph past the header. */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .wp-block-cover.alignfull,
.wp-block-post-content > .wp-block-group.alignfull,
.wp-block-post-content > .wp-block-image.alignfull {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-block: 0;
}

/* Inner 1200px for every full-bleed band */
.wp-block-group.alignfull.is-layout-constrained > .alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-columns.alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-heading.alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-buttons.alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-image.alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-separator.alignwide,
.wp-block-group.alignfull.is-layout-constrained > .wp-block-paragraph.alignwide {
	max-width: min(var(--ttc-shell), calc(100% - (2 * var(--ttc-gutter))));
	width: 100%;
	margin-inline: auto;
}

.wp-block-columns {
	margin-block: 0;
}

/* Brand flag: Nordic cross in Tanzanian colours — site signature */
.ttc-flag {
	display: block;
	height: 4px;
	background: linear-gradient(
		90deg,
		var(--wp--preset--color--ttc-blue) 0 33.333%,
		var(--wp--preset--color--ttc-green) 33.333% 66.666%,
		var(--wp--preset--color--ttc-yellow) 66.666% 100%
	);
}

/* Header */
.admin-bar .ttc-header.is-sticky {
	top: 32px;
}
@media (max-width: 782px) {
	.admin-bar .ttc-header.is-sticky {
		top: 46px;
	}
}

.ttc-header {
	position: relative;
}
.ttc-header::before { content: none; }

.ttc-header .custom-logo-link,
.ttc-header .custom-logo {
	display: block;
	line-height: 0;
	flex-shrink: 0;
}
.ttc-header .custom-logo {
	width: 56px;
	height: auto;
	max-height: 56px;
	object-fit: contain;
}

.ttc-header .wp-block-navigation-item__content,
.ttc-header .wp-block-navigation a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-transform: none;
}
.ttc-header .wp-block-navigation a:hover,
.ttc-header .wp-block-navigation .current-menu-item > a {
	color: var(--wp--preset--color--ttc-blue);
}
.ttc-header .wp-block-buttons .wp-block-button__link {
	padding: 0.75rem 1.35rem;
	font-size: 0.9375rem;
	letter-spacing: 0;
	text-transform: none;
}

@media (min-width: 782px) {
	.ttc-header .alignwide.is-layout-flex {
		flex-wrap: nowrap;
		gap: 2rem;
	}
	.ttc-header .wp-block-navigation,
	.ttc-header .wp-block-navigation__container {
		flex-wrap: nowrap;
		gap: 1.85rem;
	}
}

/* Hero — cinematic, same 1200px column as the header */
.wp-block-cover.alignfull {
	box-sizing: border-box;
	padding-inline: 0;
	padding-top: 5.5rem;
	padding-bottom: 4rem;
}
.ttc-hero.wp-block-cover.alignfull {
	min-height: 70vh;
}
.wp-block-cover .wp-block-cover__image-background,
.wp-block-cover video.wp-block-cover__video-background {
	object-fit: cover;
	object-position: center 45%;
}
.ttc-hero .wp-block-cover__image-background {
	object-position: center 62%;
}
.wp-block-cover .wp-block-cover__background.has-background-dim {
	background: linear-gradient(
		180deg,
		rgba(35, 31, 32, 0.08) 0%,
		rgba(35, 31, 32, 0.28) 48%,
		rgba(35, 31, 32, 0.78) 100%
	) !important;
	opacity: 1 !important;
}
.wp-block-cover .wp-block-cover__inner-container,
.wp-block-cover.has-custom-content-position .wp-block-cover__inner-container,
.wp-block-cover.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container {
	width: min(var(--ttc-shell), calc(100% - (2 * var(--ttc-gutter)))) !important;
	max-width: var(--ttc-shell) !important;
	margin-inline: auto !important;
	margin-bottom: 0 !important;
	padding-inline: 0 !important;
}
.wp-block-cover .wp-block-cover__inner-container {
	--wp--style--block-gap: 0.65rem;
}
.wp-block-cover .wp-block-cover__inner-container > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}
.wp-block-cover .has-caption-font-size {
	font-weight: 700;
	opacity: 0.9;
}
.wp-block-cover h1,
.ttc-hero h1.ttc-hero-name {
	max-width: 18em;
	letter-spacing: -0.04em;
	line-height: 1.05;
	margin-top: 0 !important;
	font-size: clamp(1.8rem, 1.05rem + 3.1vw, 4rem);
}
.wp-block-cover .has-lead-font-size {
	max-width: 32rem;
	font-weight: 500;
	font-size: clamp(1.05rem, 0.95rem + 0.45vw, 1.375rem);
}
.wp-block-cover .ttc-hero-close {
	width: 100%;
	max-width: 100%;
	margin-top: 2.25rem !important;
	padding-top: 1.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.22);
	gap: 1.5rem 2.5rem;
}
.wp-block-cover .ttc-hero-close > .wp-block-group {
	border-left: 3px solid var(--wp--preset--color--ttc-yellow);
	padding-left: 1rem;
}
.ttc-hero .ttc-hero-ghost .wp-block-button__link,
.ttc-hero .is-style-outline .wp-block-button__link {
	background: transparent !important;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, 0.85) !important;
}
.ttc-hero .ttc-hero-ghost .wp-block-button__link:hover,
.ttc-hero .is-style-outline .wp-block-button__link:hover {
	background: #fff !important;
	color: var(--wp--preset--color--ink) !important;
	border-color: #fff !important;
}
.wp-block-cover:not(.has-background-dim) .wp-block-cover__background {
	background-color: #231f20;
}

/* Empty / broken images must never collapse into a white hole */
.wp-block-image img:not([src]),
.wp-block-image img[src=""] {
	display: none;
}
.wp-block-image:has(img:not([src])),
.wp-block-image:has(img[src=""]) {
	min-height: 220px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
}
.ttc-photo-placeholder,
.wp-block-image.ttc-photo-placeholder img {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--muted);
	object-fit: cover;
}
.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 2px;
}
.wp-block-image.alignfull img {
	width: 100%;
	max-height: none;
	min-height: 42vh;
	height: 56vh;
	object-fit: cover;
	object-position: center 40%;
	border-radius: 0;
}

/* Buttons — sharp, corporate, not SaaS-pill */
.wp-block-button .wp-block-button__link {
	border-radius: 2px;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.wp-block-button.is-style-outline .wp-block-button__link {
	background: #fff;
	color: var(--wp--preset--color--ttc-blue);
	border: 1px solid var(--wp--preset--color--ttc-blue);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: #fff;
}
.has-ttc-blue-background-color .wp-block-button .wp-block-button__link.has-white-background-color:hover {
	background-color: var(--wp--preset--color--ink) !important;
	color: #fff !important;
	border-color: var(--wp--preset--color--ink);
}

/* Page intros — chapter mark is the eyebrow, not a decorative H1 bar */
.wp-block-post-content > .wp-block-group.alignwide h1::after,
.ttc-page-intro h1::after {
	content: none;
}
.wp-block-post-content > .wp-block-group.alignwide h1 {
	margin-bottom: 0.35rem;
}
.ttc-compliance-intro h1::after {
	background: var(--wp--preset--color--ttc-yellow);
}
.ttc-compliance-intro h1 {
	color: #fff;
}

/* Payload — prominent, not a billboard */
.ttc-display-xl {
	font-size: clamp(2.5rem, 5.2vw, 4.25rem);
	letter-spacing: -0.045em;
	line-height: 0.92;
	font-variant-numeric: tabular-nums;
	margin: 0 0 0.35rem;
}
.ttc-payload .ttc-scoreboard::after {
	content: "";
	display: block;
	width: 4.5rem;
	height: 3px;
	margin-top: 1.15rem;
	background: var(--wp--preset--color--ttc-yellow);
}
.ttc-payload .ttc-scoreboard,
.ttc-payload .wp-block-column:first-child {
	padding-right: 1rem;
}
.ttc-payload .has-display-font-size,
.wp-block-column .has-display-font-size.has-ttc-blue-color {
	font-size: clamp(3.5rem, 7vw, 5.75rem);
	letter-spacing: -0.05em;
	line-height: 0.9;
}
.ttc-payload .wp-block-separator.is-style-ttc-rule {
	max-width: 4.5rem;
	margin-left: 0;
	border-top-width: 2px;
	border-top-color: var(--wp--preset--color--line);
}

/* Proof strip — editorial, not statistic cards */
.ttc-proof .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--line);
	padding-left: var(--wp--preset--spacing--40);
}
.ttc-proof .has-caption-font-size {
	margin: 0 0 0.7rem;
}
.ttc-proof .has-stat-font-size,
.ttc-proof .has-heading-font-size {
	margin: 0;
}
.ttc-proof .has-stat-font-size + p,
.ttc-proof .has-heading-font-size + p,
.ttc-stats .has-stat-font-size + p {
	margin-top: 0.5rem;
	font-size: 0.9375rem;
}
.ttc-stats .has-stat-font-size,
.has-stat-font-size {
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.05em;
}
.has-stat-font-size + p,
.has-display-font-size + p {
	margin-top: 0.45rem;
}

/* Numbered editorial chapters */
.ttc-chapter-row {
	align-items: flex-start;
	margin-block: 0 !important;
	padding-block: 2.15rem;
}
.ttc-chapter .wp-block-separator.is-style-ttc-rule {
	margin-block: 0;
}
.ttc-chapter-row h3 {
	margin: 0.15rem 0 0;
}

/* Measured — typographic metrics, not tiles */
.ttc-measured-title {
	line-height: 0.88;
	letter-spacing: -0.055em;
	max-width: 8em;
}
.ttc-data {
	padding-block: 9rem !important;
}
.ttc-metric {
	margin: 0 !important;
	padding: 0.95rem 0;
	border-top: 1px solid #3a3637;
	font-size: 1.25rem;
}
.ttc-metrics .ttc-metric:last-child {
	border-bottom: 1px solid #3a3637;
}
.ttc-metrics > p.has-lead-font-size {
	margin-bottom: 1.75rem;
}

/* Photography captions and pair */
.wp-block-image figcaption {
	margin-top: 0.7rem;
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
	text-align: left;
}
.wp-block-image.alignfull figcaption {
	max-width: min(var(--ttc-shell), calc(100% - (2 * var(--ttc-gutter))));
	margin-inline: auto;
	padding-inline: 0;
}
.ttc-photo-pair img,
.ttc-fleet img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	height: auto;
}

/* Founder portrait plates — replace with a photo in the editor */
.ttc-portrait {
	aspect-ratio: 4 / 5;
	min-height: 22rem;
	width: 100%;
}
.ttc-portrait p {
	margin: 0;
	color: #fff;
}

/* Shared founders photograph — natural aspect, never full-bleed crop */
.ttc-founders-photo img {
	width: 100%;
	height: auto;
	max-height: none;
	min-height: 0;
	aspect-ratio: auto;
	object-fit: contain;
	object-position: center;
}

/* Service / value columns stretch if still used */
.ttc-services .wp-block-columns,
.ttc-services .wp-block-columns.alignwide {
	align-items: stretch;
}
/* Quote panel */

/* CTA band — headline left, action right */
.ttc-cta .ttc-cta-row {
	width: min(var(--ttc-shell), calc(100% - (2 * var(--ttc-gutter))));
	max-width: var(--ttc-shell);
	margin-inline: auto;
	gap: 2rem 3rem;
}
.ttc-cta .ttc-cta-row > * {
	margin-left: 0 !important;
}
.ttc-cta .ttc-cta-row .is-layout-constrained > * {
	margin-left: 0 !important;
	margin-right: auto !important;
	max-width: 100%;
}

/* Quote form — sharp corporate fields, not SaaS pills */
.ttc-quote-form {
	margin-top: var(--wp--preset--spacing--30, 1.5rem);
}
.ttc-quote-field {
	margin: 0 0 1.15rem;
}
.ttc-quote-field label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}
.ttc-quote-field .ttc-req {
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}
.ttc-quote-field input,
.ttc-quote-field textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 2px solid var(--wp--preset--color--line);
	border-radius: 2px;
	background: #fff;
	color: var(--wp--preset--color--ink);
	padding: 0.7rem 0.85rem;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--body, 1rem);
	line-height: 1.4;
}
.ttc-quote-field input:focus,
.ttc-quote-field textarea:focus {
	border-color: var(--wp--preset--color--ttc-blue);
	outline: none;
}
.ttc-quote-field textarea {
	min-height: 8rem;
	resize: vertical;
}
.ttc-quote-submit {
	appearance: none;
	border: 0;
	border-radius: 2px;
	background: var(--wp--preset--color--ttc-blue);
	color: #fff;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.95rem 1.6rem;
	cursor: pointer;
}
.ttc-quote-submit:hover {
	background: var(--wp--preset--color--ink);
}
.ttc-quote-honeypot {
	position: absolute !important;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
}
.ttc-quote-notice {
	margin: 0 0 1.25rem;
	padding: 0.85rem 1rem;
	border-radius: 2px;
	font-size: var(--wp--preset--font-size--small);
}
.ttc-quote-notice--ok {
	background: #fff;
	border-left: 3px solid var(--wp--preset--color--ttc-green);
	color: var(--wp--preset--color--ink);
}
.ttc-quote-notice--err {
	background: #fff;
	border-left: 3px solid var(--wp--preset--color--ttc-blue);
	color: var(--wp--preset--color--ink);
}

.wp-block-list {
	padding-inline-start: 1.15em;
}
.wp-block-list li + li {
	margin-top: 0.35em;
}

.has-stat-font-size,
.has-display-font-size {
	font-variant-numeric: tabular-nums;
	letter-spacing: -0.04em;
}

/* Footer — ink closer */
footer.wp-block-group {
	position: relative;
	background-color: #fff !important;
	color: #231f20 !important;
	border-top: 3px solid #034EA2 !important;
}
footer.wp-block-group::before { content: none; }
footer.wp-block-group .wp-block-heading {
	color: #fff !important;
	letter-spacing: 0.12em;
}
footer.wp-block-group .wp-block-navigation a,
footer.wp-block-group a,
footer.wp-block-group p {
	text-decoration: none;
	color: rgba(255, 255, 255, 0.78) !important;
}
footer.wp-block-group a:hover {
	color: var(--wp--preset--color--ttc-yellow) !important;
}
footer.wp-block-group .custom-logo {
	width: 52px;
	height: auto;
}

/* Values — monumental type list, not a four-up card */
.ttc-values .ttc-value-row {
	align-items: baseline;
	margin: 0 !important;
	padding: 1.15rem 0 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
}
.ttc-values .ttc-value-row:last-child {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.ttc-values .ttc-value-row h3 {
	margin: 0;
	font-size: clamp(1.5rem, 3.6vw, 2.5rem);
	letter-spacing: -0.04em;
	line-height: 1.05;
	hyphens: none;
	overflow-wrap: normal;
	word-break: keep-all;
}
.ttc-values .ttc-eyebrow {
	margin-bottom: 0;
}
footer.wp-block-group p[style*="font-weight:700"] {
	color: #fff !important;
}
footer.wp-block-group p.has-ttc-yellow-color,
footer.wp-block-group .has-ttc-yellow-color {
	color: var(--wp--preset--color--ttc-yellow) !important;
}
footer.wp-block-group .has-muted-color {
	color: rgba(255, 255, 255, 0.5) !important;
}
footer.wp-block-group .wp-block-separator {
	border-top-color: #3a3637 !important;
	opacity: 1;
}

/* Eyebrows — small, tracked, corporate */
.ttc-eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.16em !important;
	font-size: 0.75rem !important;
	line-height: 1.3;
	margin-bottom: 0.85rem;
}

/* Page introductions — editorial, not a cover block */
.ttc-page-intro h1 {
	max-width: 16em;
	letter-spacing: -0.045em;
}
.ttc-page-intro .ttc-measure {
	margin-top: 1.5rem;
}

/* Photographed service chapters */
.ttc-story-photo img {
	aspect-ratio: 5 / 4;
	object-fit: cover;
	width: 100%;
	height: auto;
	border-radius: 0;
}
.ttc-split .wp-block-heading {
	margin-top: 0.35rem;
}
.ttc-split .has-lead-font-size {
	max-width: 38ch;
}

/* Quote panel — editorial, not a grey card */
/* Quote panel — yellow rule, white commercial surface on grey band */
.ttc-quote-panel {
	background: #fff;
	padding: var(--wp--preset--spacing--50);
	border-left: 3px solid var(--wp--preset--color--ttc-yellow);
}

/* Home service plate + client reference plate */
.ttc-services-plate img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: left 45%;
	width: 100%;
	height: auto;
	border-radius: 0;
}
.ttc-reference-plate img {
	aspect-ratio: 2.35 / 1;
	object-fit: cover;
	object-position: center 48%;
	width: 100%;
	height: auto;
	min-height: 16rem;
	border-radius: 0;
}
.ttc-safety h2 {
	hyphens: none;
	overflow-wrap: normal;
	max-width: 11em;
}
.ttc-contact-plate.alignfull img,
.wp-block-image.ttc-contact-plate img {
	min-height: 42vh;
	height: 48vh;
	object-fit: cover;
	object-position: center 62%;
	border-radius: 0;
}
.ttc-index .ttc-chapter-row {
	padding-block: 0.95rem;
	margin-block: 0 !important;
}
.ttc-index .ttc-chapter-row h3 {
	margin: 0 0 0.35rem;
}
.ttc-index .ttc-chapter-row p {
	margin: 0;
}
.ttc-spec-item {
	padding: 1.05rem 0 1.15rem;
	border-top: 1px solid var(--wp--preset--color--line);
}
.ttc-spec .wp-block-column > .ttc-spec-item:last-child {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.ttc-spec-item .ttc-eyebrow {
	margin-bottom: 0.2rem;
}
.ttc-spec-item p {
	margin: 0;
}

/* Subtle image hover — no motion theatre */
@media (hover: hover) {
	.ttc-story-photo img,
	.ttc-photo-pair img,
	.ttc-fleet img,
	.ttc-services-plate img,
	.ttc-reference-plate img,
	.ttc-contact-plate img {
		transition: filter 0.25s ease;
	}
	.ttc-story-photo:hover img,
	.ttc-photo-pair figure:hover img,
	.ttc-fleet figure:hover img,
	.ttc-services-plate:hover img,
	.ttc-reference-plate:hover img,
	.ttc-contact-plate:hover img {
		filter: brightness(1.04);
	}
}

/* Mobile navigation overlay — room to tap */
.ttc-header .wp-block-navigation__responsive-container.is-menu-open {
	background: #fff;
	padding: 5.5rem 1.5rem 2rem;
}
.ttc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.85rem 0;
}
.ttc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.25rem;
	font-weight: 600;
}

/* Dark / blue band headings stay white */
.has-ink-background-color h1,
.has-ink-background-color h2,
.has-ink-background-color h3,
.has-ttc-blue-background-color h1,
.has-ttc-blue-background-color h2,
.has-ttc-blue-background-color h3 {
	color: #fff;
}

/* Mobile: designed, not collapsed */
@media (max-width: 781px) {
	.wp-block-cover.alignfull {
		padding-top: 4rem;
		padding-bottom: 3.5rem;
	}
	.ttc-hero.wp-block-cover.alignfull {
		min-height: 64vh;
		overflow: hidden;
	}
	.ttc-hero .wp-block-cover__image-background {
		inset: auto;
		width: auto;
		height: 300%;
		max-width: none;
		object-fit: fill;
		object-position: center center;
		top: -128%;
		left: 50%;
		transform: translateX(-50%);
	}
	.ttc-split-reverse {
		flex-direction: column-reverse;
	}
	.ttc-quote-panel {
		padding: var(--wp--preset--spacing--40);
		border-left: 0;
		border-top: 3px solid var(--wp--preset--color--ttc-yellow);
	}
	.ttc-services .ttc-split {
		flex-direction: column-reverse;
	}
	.ttc-services-plate img,
	.ttc-reference-plate img {
		aspect-ratio: 16 / 10;
		min-height: 0;
	}
	.ttc-reference-plate img {
		object-position: center 50%;
	}
	.ttc-contact-plate.alignfull img,
	.wp-block-image.ttc-contact-plate img {
		height: 38vh;
		min-height: 14rem;
	}
	.ttc-values .ttc-value-row h3 {
		font-size: clamp(1.35rem, 6.4vw, 1.85rem);
	}
	.ttc-header .custom-logo {
		width: 48px;
		max-height: 48px;
	}
	.wp-block-cover h1 {
		max-width: none;
	}
	.wp-block-columns {
		row-gap: var(--wp--preset--spacing--40);
	}
	.ttc-header .alignwide.is-layout-flex {
		flex-wrap: nowrap;
		gap: 0.75rem 1rem;
	}
	.ttc-proof .wp-block-column + .wp-block-column,
	.ttc-stats .wp-block-column + .wp-block-column {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--wp--preset--color--line);
		padding-top: var(--wp--preset--spacing--30);
	}
	.wp-block-image.alignfull img {
		min-height: 36vh;
		height: 42vh;
	}
	.ttc-portrait {
		min-height: 16rem;
	}
	.ttc-display-xl {
		font-size: clamp(2.25rem, 10vw, 3.25rem);
	}
	.ttc-data {
		padding-block: 5.5rem !important;
	}
}

@media (min-width: 601px) and (max-width: 960px) {
	.ttc-proof .wp-block-columns {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}
}

/* -------------------------------------------------------------------------
 * Phase 4.1 — hero crop, shorter home covers, service chapters, about open
 * ------------------------------------------------------------------------- */

.ttc-corridor-chapter h2 {
	max-width: 10em;
	letter-spacing: -0.05em;
}
.ttc-corridor-plate img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center 42%;
	width: 100%;
	height: auto;
	border-radius: 0;
}

.ttc-fleet-plate img {
	aspect-ratio: 16 / 7;
	object-fit: cover;
	object-position: center 38%;
	width: 100%;
	height: auto;
	min-height: 18rem;
	border-radius: 0;
}

.ttc-story-portrait img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center 40%;
	width: 100%;
	height: auto;
	border-radius: 0;
}
.ttc-story-wide img {
	aspect-ratio: 21 / 8;
	object-fit: cover;
	object-position: center 62%;
	width: 100%;
	height: auto;
	min-height: 14rem;
	border-radius: 0;
}
.ttc-story-strip.alignfull img,
.wp-block-image.ttc-story-strip img {
	min-height: 28vh;
	height: 32vh;
	object-fit: cover;
	object-position: center 40%;
	border-radius: 0;
}
.ttc-ch-02.wp-block-cover.alignfull {
	min-height: 52vh;
}
.ttc-ch-02 .wp-block-cover__image-background {
	object-position: center 48%;
}
.ttc-ch-02 .wp-block-cover__inner-container > * {
	max-width: 28rem;
}
.ttc-ch-index {
	font-size: clamp(2.25rem, 7vw, 3.5rem);
	letter-spacing: -0.05em;
	line-height: 0.9;
	margin: 0;
}

.ttc-about-open {
	padding-top: 3rem !important;
}
.ttc-about-founders img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center 42%;
	width: 100%;
	height: auto;
	min-height: 22rem;
	border-radius: 0;
}
.ttc-about-open + .ttc-founders {
	padding-top: 1.5rem !important;
}
.ttc-about-open + .ttc-founders .ttc-founders-photo {
	display: none;
}

.ttc-process-plate.alignfull img {
	object-position: center 55%;
}

.ttc-fleet-cover.wp-block-cover.alignfull {
	min-height: 56vh;
}
.ttc-contact-cover.wp-block-cover.alignfull {
	min-height: 48vh;
}
.ttc-contact-cover .wp-block-cover__image-background {
	object-position: center 62%;
}
.ttc-compliance-intro {
	min-height: 42vh;
	display: flex;
	align-items: flex-end;
	box-sizing: border-box;
}

@media (max-width: 781px) {
	.ttc-about-founders img {
		min-height: 16rem;
		aspect-ratio: 16 / 10;
	}
	.ttc-story-portrait img {
		aspect-ratio: 16 / 10;
	}
	.ttc-story-wide img {
		aspect-ratio: 16 / 9;
		min-height: 0;
	}
	.ttc-story-strip.alignfull img,
	.wp-block-image.ttc-story-strip img {
		height: 28vh;
		min-height: 12rem;
	}
	.ttc-ch-02.wp-block-cover.alignfull {
		min-height: 64vh;
	}
	.ttc-fleet-plate img {
		aspect-ratio: 16 / 10;
		min-height: 0;
	}
	.ttc-corridor-plate img {
		aspect-ratio: 16 / 10;
	}
	.ttc-compliance-intro {
		min-height: 0;
	}
}

/* -------------------------------------------------------------------------
 * Phase 5 — tighter home scroll, corporate footer
 * ------------------------------------------------------------------------- */

.ttc-index .ttc-chapter-row {
	padding-block: 0.7rem;
}
.ttc-spec-item {
	padding: 0.7rem 0 0.8rem;
}
.ttc-corridor-plate img {
	aspect-ratio: 16 / 10;
}
.ttc-fleet-plate img {
	aspect-ratio: 2.2 / 1;
	min-height: 14rem;
}
.ttc-data {
	padding-block: 4rem !important;
}
.ttc-metric {
	margin: 0 !important;
	padding: 0.45rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}
.ttc-metrics .has-lead-font-size {
	margin-bottom: 1.15rem;
}
.ttc-reference-plate img {
	min-height: 12rem;
}

footer.ttc-footer .wp-block-heading {
	margin: 0 0 0.75rem;
}
footer.ttc-footer .wp-block-navigation {
	gap: 0.35rem;
}
footer.ttc-footer .wp-block-navigation a {
	padding: 0.1rem 0;
}
footer.ttc-footer .wp-block-column p + p {
	margin-top: 0.65rem;
}
footer.ttc-footer .wp-block-separator {
	margin-top: 2.25rem;
	margin-bottom: 1.25rem;
}
@media (max-width: 781px) {
	footer.ttc-footer .ttc-footer-grid {
		gap: 1.75rem 0;
	}
	.ttc-data {
		padding-block: 3.25rem !important;
	}
	.ttc-fleet-plate img {
		aspect-ratio: 16 / 10;
		min-height: 0;
	}
}

/* -------------------------------------------------------------------------
 * Phase 5 final — editorial rhythm, route, trust strip, payload pair
 * ------------------------------------------------------------------------- */

.ttc-route {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 1rem;
	padding: 1.1rem 0;
	border-top: 1px solid rgba(255, 255, 255, 0.16);
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
.ttc-route > p {
	margin: 0 !important;
}
.ttc-route-line {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	letter-spacing: 0.08em;
	line-height: 1 !important;
}
.ttc-route-line::before,
.ttc-route-line::after {
	content: "";
	display: block;
	width: 2.4rem;
	height: 1px;
	background: #fff200;
}

.ttc-payload-pair {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: 1.35rem;
}
.ttc-payload-pair .has-heading-font-size {
	letter-spacing: -0.045em;
}
.ttc-payload .ttc-scoreboard::after {
	margin-top: 1.35rem;
}

.ttc-measured-title {
	font-size: clamp(1.75rem, 4vw, 3.25rem) !important;
	line-height: 1.02 !important;
	max-width: 10em;
}
.ttc-metric {
	font-size: 1.125rem;
	letter-spacing: -0.02em;
}
.ttc-metrics .ttc-metric:last-child {
	border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.ttc-trust-strip {
	border-top: 1px solid var(--wp--preset--color--line);
	padding-top: 1.5rem;
}
.ttc-trust-strip h3 {
	margin: 0.2rem 0 0;
	font-weight: 600;
	letter-spacing: -0.02em;
}
.ttc-trust-strip .ttc-eyebrow {
	margin-bottom: 0;
}
.ttc-trust-strip > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--line);
	padding-left: 1.15rem;
}

.ttc-cta h2 {
	letter-spacing: -0.045em;
	max-width: 10em;
}

footer.ttc-footer .wp-block-heading {
	color: rgba(255, 255, 255, 0.55) !important;
	font-weight: 600;
}

@media (max-width: 781px) {
	.ttc-trust .wp-block-buttons {
		justify-content: flex-start !important;
	}
	.ttc-trust-strip > .wp-block-column + .wp-block-column {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--wp--preset--color--line);
		padding-top: 0.85rem;
	}
	.ttc-route-line::before,
	.ttc-route-line::after {
		width: 1.5rem;
	}
	.ttc-page-intro h1,
	.ttc-page-intro .has-title-font-size,
	.ttc-page-intro .has-display-font-size,
	.wp-block-cover h1,
	.ttc-hero h1.ttc-hero-name {
		font-size: clamp(1.7rem, 6.2vw, 2.15rem) !important;
		line-height: 1.12 !important;
		letter-spacing: -0.03em;
	}
	.wp-block-heading.has-heading-font-size,
	.wp-block-heading.has-title-font-size {
		line-height: 1.15;
	}
	.ttc-ch-02.wp-block-cover.alignfull,
	.ttc-fleet-cover.wp-block-cover.alignfull,
	.ttc-contact-cover.wp-block-cover.alignfull {
		min-height: 48vh;
	}
}

/* Header: the logo is Home. Hide a leftover Home item if the DB header still has one. */
.ttc-header .wp-block-navigation .wp-block-navigation-item:has(> a[href="/"]),
.ttc-header .wp-block-navigation .wp-block-navigation-item:has(> a[href$="/home/"]) {
	display: none;
}

