/* Shared native-block layouts for solution landing pages. */
.tg-solution-page, .tg-solution-content > * { margin-block-start: 0; }
.tg-solution-columns { gap: clamp(2rem, 5vw, 4rem); align-items: center !important; }
.tg-solution-columns > .wp-block-column { min-width: 0; }
.tg-solution-columns > .wp-block-column > :first-child { margin-top: 0; }
.tg-solution-hero { background: var(--tg-section-wash); }
.tg-solution-hero h1 { margin: 1rem 0 1.25rem; font-size: clamp(2.2rem, 4vw, 3.5rem); line-height: 1.13; letter-spacing: -.045em; text-wrap: balance; }
.tg-solution-hero .tg-lead { margin-inline: 0; font-size: 1.0625rem; }
.tg-solution-hero .wp-block-buttons, .tg-solution-final .wp-block-buttons { gap: .75rem; margin-top: 1.75rem; }
.tg-solution-note { margin-top: 1.25rem; color: var(--tg-muted); font-size: .8125rem; }
.tg-solution-image { margin: 0; border: 1px solid var(--tg-line); border-radius: 18px; overflow: hidden; }
.tg-solution-image img { display: block; width: 100%; height: auto; }
.tg-solution-manufacturing .tg-solution-image img { aspect-ratio: 16 / 11; object-fit: cover; object-position: right center; }
.tg-solution-sector-hero .tg-solution-image img { aspect-ratio: 16 / 11; object-fit: cover; object-position: right center; }
.tg-solution-hero-centre .tg-solution-image img { object-position: center; }
/* Keep the transport photo at its natural proportions and a quieter desktop size. */
.page-id-44501 .tg-solution-hero .tg-solution-image { width: 100%; max-width: 480px; margin-inline: auto; }
.page-id-44501 .tg-solution-hero .tg-solution-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; object-position: center; }
.tg-section.tg-solution-benefit-band { padding-block: 2rem; border-bottom: 1px solid #edf1f6; }
.tg-solution-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.tg-solution-benefits > .tg-solution-benefit { margin: 0; padding-left: 3rem; position: relative; }
.tg-solution-benefit::before { content: ''; position: absolute; top: .1rem; left: 0; width: 28px; height: 28px; background: var(--tg-blue); mask: var(--tg-menu-icon) center / contain no-repeat; }
.tg-solution-benefit h3 { margin: 0 0 .4rem; font-size: 1rem; line-height: 1.5; }
.tg-solution-benefit p { margin: 0; color: var(--tg-muted); font-size: .8125rem; line-height: 1.7; }
.tg-solution-story h2, .tg-solution-workflow h2 { margin: 1rem 0 1.25rem; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
.tg-solution-story p:not(.tg-eyebrow), .tg-solution-story li { color: var(--tg-muted); font-size: .9375rem; line-height: 1.8; }
.tg-solution-story ul { padding-left: 1.25rem; margin-block: 1.25rem; }
.tg-solution-story li { margin-block: .5rem; padding-left: .25rem; }
.tg-solution-story a { color: var(--tg-blue); text-underline-offset: 3px; font-weight: 600; }
.tg-solution-features { background: var(--tg-section-wash); }
.tg-solution-section-heading { max-width: 800px; margin: 0 auto 2.5rem; text-align: center; }
.tg-solution-section-heading h2 { margin: .85rem 0 1rem; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
.tg-solution-section-heading > p:not(.tg-eyebrow) { max-width: 680px; margin-inline: auto; color: var(--tg-muted); font-size: .9375rem; }
.tg-solution-feature-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.tg-solution-feature-grid > .tg-solution-feature { margin: 0; padding: 1.5rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #fff; }
.tg-solution-feature::before { content: ''; display: block; width: 28px; height: 28px; margin-bottom: 1rem; background: var(--tg-blue); mask: var(--tg-menu-icon) center / contain no-repeat; }
.tg-solution-feature h3 { margin: 0 0 .65rem; font-size: 1rem; line-height: 1.45; }
.tg-solution-feature p { margin: 0; color: var(--tg-muted); font-size: .8125rem; line-height: 1.8; }
.tg-solution-workflow { background: #102239; color: #fff; }
.tg-solution-workflow .tg-eyebrow { color: #8cc5ff; }
.tg-solution-workflow-intro { color: #c3d1e1; font-size: .9375rem; line-height: 1.8; }
.tg-solution-workflow .tg-solution-image { border-color: #ffffff26; }
.tg-solution-steps { display: grid; gap: 1.15rem; margin-top: 1.75rem; }
.tg-solution-steps > .tg-solution-step { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: .9rem; margin: 0; }
.tg-solution-step > .tg-solution-step-number { display: grid; place-items: center; width: 34px; height: 34px; margin: 0; border: 1px solid #8cc5ff55; border-radius: 50%; color: #8cc5ff; font-size: .75rem; font-weight: 600; }
.tg-solution-step-copy { margin: 0; }
.tg-solution-step h3 { margin: 0 0 .3rem; font-size: .9375rem; line-height: 1.4; letter-spacing: -.01em; }
.tg-solution-step-copy p { margin: 0; color: #c3d1e1; font-size: .8125rem; line-height: 1.7; }
.tg-solution-org-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.tg-solution-org-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-solution-org-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.tg-solution-org-grid > .tg-solution-org { margin: 0; border: 1px solid var(--tg-line); border-radius: 14px; overflow: hidden; background: #fff; }
.tg-solution-org .tg-solution-image { margin: 0; border: 0; border-radius: 0; }
.tg-solution-org .tg-solution-image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.tg-solution-org > .tg-solution-org-copy { padding: 1.25rem; margin: 0; }
.tg-solution-org h3 { margin: 0 0 .65rem; font-size: 1rem; line-height: 1.4; }
.tg-solution-org h3 a { color: var(--tg-ink); text-underline-offset: 3px; }
.tg-solution-org h3 a:hover { color: var(--tg-blue); }
.tg-solution-org p { margin: 0; color: var(--tg-muted); font-size: .8125rem; line-height: 1.75; }
.tg-solution-tours { background: var(--tg-section-wash); }
.tg-solution-video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.tg-solution-video-grid > .tg-solution-video { position: relative; margin: 0; padding: 1.5rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #fff; }
.tg-solution-video h3 { margin: 0 0 .75rem; font-size: 1.125rem; line-height: 1.4; }
.tg-solution-video h3 a { color: var(--tg-ink); text-decoration: none; }
.tg-solution-video h3 a::after { content: ''; position: absolute; inset: 0; border-radius: 14px; }
.tg-solution-video:focus-within, .tg-solution-video:hover { border-color: #a8c8ff; }
.tg-solution-video h3 span { color: var(--tg-blue); }
.tg-solution-video p { margin: 0; color: var(--tg-muted); font-size: .875rem; line-height: 1.75; }
.tg-solution-faq .tg-solution-columns { align-items: start !important; }
.tg-solution-faq h2 { margin: 1rem 0; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; }
.tg-solution-faq p:not(.tg-eyebrow) { color: var(--tg-muted); font-size: .9375rem; line-height: 1.8; }
.tg-solution-faq a { color: var(--tg-blue); text-underline-offset: 3px; }
.tg-solution-faq-list { display: grid; gap: .75rem; }
.tg-solution-faq-list > .tg-solution-faq-item { margin: 0; padding: 0; border: 1px solid var(--tg-line); border-radius: 10px; background: #fff; }
.tg-solution-faq-item summary { padding: 1rem 1.15rem; color: var(--tg-ink); font-size: .9375rem; font-weight: 600; line-height: 1.6; cursor: pointer; }
.tg-solution-faq-item > p { padding: 0 1.15rem 1.15rem; margin: 0; }
.tg-solution-final { background: var(--tg-section-wash); text-align: center; }
.tg-solution-final h2 { margin: 1rem auto; font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.2; letter-spacing: -.04em; }
.tg-solution-final .wp-block-buttons { justify-content: center; }
@media (max-width: 1000px) {
  .tg-solution-feature-grid, .tg-solution-org-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 781px) {
  .tg-solution-benefits { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .tg-solution-video-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .tg-solution-feature-grid, .tg-solution-org-grid { grid-template-columns: minmax(0, 1fr); }
  .tg-solution-hero .wp-block-buttons { align-items: stretch; }
  .tg-solution-columns { gap: 2rem; }
}
