/* Content completion: application-first resources, shared FAQ library and technical diagrams. */
.gtl-resources-hub__intro,
.gtl-resources-hub__cards,
.gtl-material-guide__intro,
.gtl-material-selector,
.gtl-material-detail,
.gtl-material-supplied,
.gtl-material-safety,
.gtl-material-comparison,
.gtl-capabilities-hub__intro,
.gtl-capabilities-hub__list,
.gtl-capabilities-hub__combinations,
.gtl-capabilities-hub__materials,
.gtl-solution-depth { padding-block: var(--gtl-section-space, 72px); }
.gtl-material-guide__narrow { max-width: 920px; }
.gtl-resources-hub__cards,
.gtl-material-selector,
.gtl-material-detail--soft,
.gtl-capabilities-hub__list,
.gtl-capabilities-hub__materials,
.gtl-solution-depth--soft { background: rgba(217,217,217,.25); }
.gtl-resources-hub__grid,
.gtl-material-selector__grid,
.gtl-material-detail__grid,
.gtl-capability-materials,
.gtl-capability-combinations,
.gtl-solution-depth__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.gtl-resources-hub__grid article,
.gtl-material-selector__grid article,
.gtl-capabilities-hub__grid > article { padding: 28px; background: #FFFFFF; border-top: 3px solid #E2001A; }
.gtl-resources-hub__grid a,
.gtl-material-guide a,
.gtl-capabilities-hub a,
.gtl-solution-depth a,
.gtl-faq-item__links a,
.gtl-faq-section__all a { color: #111111; font-weight: 700; text-decoration-color: #E2001A; text-underline-offset: 4px; }
.gtl-resources-hub__grid a:hover,
.gtl-material-guide a:hover,
.gtl-capabilities-hub a:hover,
.gtl-solution-depth a:hover,
.gtl-faq-item__links a:hover,
.gtl-faq-section__all a:hover { color: #E2001A; }
.gtl-material-guide .gtl-button,
.gtl-capabilities-hub .gtl-button { color: inherit; }
.gtl-material-guide .gtl-button--primary,
.gtl-capabilities-hub .gtl-button--primary { color: #FFFFFF; }
.gtl-material-selector__grid { margin-top: 28px; }
.gtl-material-selector__grid nav,
.gtl-solution-depth__grid nav { display: grid; gap: 10px; }
.gtl-material-selector__grid h3 { font-size: 1.2rem; }
.gtl-material-selector__grid p { margin-top: 18px; font-size: .88rem; color: #666666; }
.gtl-material-detail,
.gtl-material-supplied,
.gtl-material-safety { scroll-margin-top: 110px; }
.gtl-material-detail__heading { display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 36px; align-items: center; margin-bottom: 36px; }
.gtl-material-detail__tagline { max-width: 65ch; font-size: 1.15rem; }
.gtl-material-detail__grid { row-gap: 36px; }
.gtl-material-detail__grid article { min-width: 0; }
.gtl-material-detail__grid h3 { font-size: 1.14rem; }
.gtl-material-detail__grid h3:not(:first-child) { margin-top: 24px; }
.gtl-material-detail__grid ul,
.gtl-solution-depth__grid ul,
.gtl-capabilities-hub__columns ul { padding-left: 1.15rem; margin-bottom: 0; }
.gtl-material-detail__grid li,
.gtl-solution-depth__grid li,
.gtl-capabilities-hub__columns li { margin-block: 7px; }
.gtl-material-detail__links,
.gtl-solution-depth__links,
.gtl-capabilities-hub__grid nav { display: flex; flex-wrap: wrap; gap: 16px 24px; padding-top: 24px; margin-top: 28px; border-top: 1px solid #D9D9D9; }
.gtl-material-safety { background: rgba(217,217,217,.3); }
.gtl-material-safety .gtl-container { border-left: 3px solid #666666; }
.gtl-table-scroll { overflow-x: auto; margin-top: 28px; border: 1px solid #D9D9D9; }
.gtl-table-scroll:focus-visible { outline: 3px solid #E2001A; outline-offset: 4px; }
.gtl-table-scroll table { border-collapse: collapse; width: 100%; min-width: 1050px; font-size: .88rem; }
.gtl-table-scroll th,
.gtl-table-scroll td { padding: 14px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid #D9D9D9; }
.gtl-table-scroll thead { color: #FFFFFF; background: #111111; }
.gtl-table-scroll tbody tr:nth-child(even) { background: rgba(217,217,217,.2); }
.gtl-material-comparison__note { color: #666666; font-size: .92rem; margin-top: 20px; }
.gtl-material-swatch { position: relative; margin: 0; height: 138px; padding: 10px; border: 1px solid #D9D9D9; background: #FFFFFF; }
.gtl-material-swatch > span { display: block; height: 90px; border: 1px solid #666666; transform: skewY(-3deg); background: #D9D9D9; }
.gtl-material-swatch figcaption { margin-top: 10px; font-size: .74rem; color: #666666; }
.gtl-material-swatch--laminate > span { background: linear-gradient(#111111 0 18%,#FFFFFF 18% 78%,#666666 78%); }
.gtl-material-swatch--acrylic > span { background: linear-gradient(125deg,rgba(255,255,255,.3),rgba(217,217,217,.2) 45%,rgba(102,102,102,.22)); box-shadow: 5px 5px 0 #D9D9D9; }
.gtl-material-swatch--stainless > span { background: repeating-linear-gradient(0deg,#D9D9D9 0 2px,rgba(102,102,102,.32) 2px 3px,#D9D9D9 3px 5px); }
.gtl-material-swatch--aluminium > span { background: #666666; box-shadow: inset 0 -5px 0 #D9D9D9; }
.gtl-material-swatch--aluminium > span::after { content: "ID 001"; display: block; padding: 26px; color: #FFFFFF; font-weight: 700; }
.gtl-material-swatch--brass > span { background: linear-gradient(110deg,rgba(102,102,102,.28),rgba(217,217,217,.4),rgba(102,102,102,.5)); }
.gtl-material-swatch--brass > span::after { content: "BRASS · SCHEMATIC"; display: block; padding: 28px 10px; font-size: .75rem; text-align: center; }
.gtl-material-swatch--wood > span { background: repeating-radial-gradient(ellipse at 15% 50%,rgba(102,102,102,.12) 0 5px,rgba(102,102,102,.4) 6px 7px,rgba(217,217,217,.45) 8px 14px); }
.gtl-material-swatch--plywood > span { background: repeating-linear-gradient(0deg,#D9D9D9 0 8px,#666666 8px 10px,rgba(217,217,217,.6) 10px 17px); }
.gtl-material-swatch--glass > span { background: linear-gradient(125deg,transparent 30%,rgba(217,217,217,.6) 31% 36%,transparent 37% 60%,rgba(217,217,217,.6) 61% 64%,transparent 65%); border: 3px solid #D9D9D9; box-shadow: 4px 4px 0 rgba(102,102,102,.15); }
.gtl-capabilities-hub__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; }
.gtl-capabilities-hub__columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 24px; }
.gtl-capabilities-hub__columns h4 { font-size: 1rem; }
.gtl-capability-materials { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 28px; }
.gtl-capability-materials article,
.gtl-capability-combinations article { padding: 24px; border-left: 3px solid #D9D9D9; }
.gtl-capability-materials h3,
.gtl-capability-combinations h3 { font-size: 1.25rem; }
.gtl-solution-depth__problem { max-width: 75ch; font-size: 1.15rem; margin-bottom: 30px; }
.gtl-solution-depth__grid h3 { font-size: 1.15rem; }

/* One FAQ source, complete global browser and small contextual subsets. */
.gtl-faq-jump { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 28px; }
.gtl-faq-jump a { padding: 10px 14px; border: 1px solid #D9D9D9; color: #111111; font-size: .9rem; font-weight: 700; text-decoration: none; }
.gtl-faq-jump a:hover,
.gtl-faq-jump a:focus-visible { color: #FFFFFF; background: #E2001A; border-color: #E2001A; }
.gtl-faq-search { max-width: 620px; margin-block: 28px 36px; }
.gtl-faq-search label { display: block; margin-bottom: 8px; font-weight: 700; }
.gtl-faq-search input { width: 100%; min-height: 48px; border: 1px solid #666666; padding: 12px 14px; color: #111111; background: #FFFFFF; font: inherit; }
.gtl-faq-search input:focus-visible { outline: 3px solid #E2001A; outline-offset: 3px; }
.gtl-faq-search__status { margin-top: 9px; color: #666666; font-size: .88rem; }
.gtl-faq-section__group { scroll-margin-top: 110px; }
.gtl-faq-section--global .gtl-faq-section__group + .gtl-faq-section__group { margin-top: 42px; }
.gtl-faq-item[hidden],
.gtl-faq-section__group[hidden] { display: none !important; }
.gtl-faq-item__links { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 15px; }
.gtl-faq-item__links a { display: inline-block; padding-block: 5px; }
.gtl-faq-section__all { margin-top: 26px; }

/* Static completed states are the default; motion is opt-in after intersection. */
.gtl-process-diagram { min-width: 0; margin: 0; padding: 18px; border: 1px solid #D9D9D9; background: #FFFFFF; }
.gtl-process-diagram svg { display: block; width: 100%; height: auto; }
.gtl-process-diagram__stages { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 0; margin: 0 0 14px; list-style: none; counter-reset: stage; }
.gtl-process-diagram__stages li { border-top: 2px solid #E2001A; padding-top: 8px; font-size: .72rem; font-weight: 700; text-transform: uppercase; }
.gtl-process-diagram__stages li::before { counter-increment: stage; content: counter(stage) ". "; }
.gtl-process-diagram figcaption,
.gtl-process-diagram__note { margin: 14px 0 0; color: #666666; font-size: .82rem; }
.gtl-process-diagram .process-label { fill: #111111; font: 700 18px sans-serif; letter-spacing: .03em; }
.gtl-process-diagram .process-bed { fill: rgba(217,217,217,.4); stroke: #666666; stroke-width: 2; }
.gtl-process-diagram .process-bed-lines { fill: none; stroke: #D9D9D9; stroke-width: 1; }
.gtl-process-diagram .process-nonmetal { fill: #FFFFFF; stroke: #D9D9D9; stroke-width: 2; }
.gtl-process-diagram .process-hole { fill: #FFFFFF; stroke: #666666; stroke-width: 2; }
.gtl-process-diagram .process-beam { stroke: #E2001A; stroke-width: 2; }
.gtl-process-diagram .process-point { fill: #E2001A; }
.co2-piece { transform: translateY(-2px); }
.co2-kerf { fill: #666666; }
.co2-raster { fill: #111111; }
.co2-score { fill: none; stroke: #666666; stroke-width: 2; stroke-linecap: round; }
.co2-cut { fill: none; stroke: #666666; stroke-width: 2; }
.co2-head { fill: #111111; transform: translate(500px,80px); }
.co2-head .process-beam,
.co2-head .process-point { opacity: 0; }
.co2-gantry { stroke: #666666; stroke-width: 8; transform: translateY(80px); }
.fibre-fixed-head { fill: #111111; }
.fibre-lens { fill: #666666; }
.fibre-logo,
.fibre-code { fill: #111111; }
.fibre-hatch { fill: none; stroke: #666666; stroke-width: 1; opacity: 0; }
.fibre-serial { fill: #111111; font: 700 25px monospace; letter-spacing: .06em; }
.fibre-beams path { fill: none; stroke: #E2001A; stroke-width: 1.5; opacity: 0; }
.fibre-points circle { fill: #E2001A; opacity: 0; }
.fibre-data-old { opacity: 0; }
.fibre-data-new { opacity: 1; }
.uv-table-surface { fill: #D9D9D9; stroke: #666666; stroke-width: 2; }
.uv-item { fill: #111111; stroke: #666666; stroke-width: 2; }
.uv-white-pass { fill: #FFFFFF; }
.uv-colour-pass circle { fill: #E2001A; }
.uv-colour-pass path { fill: #666666; }
.uv-rail { stroke: #666666; stroke-width: 8; }
.uv-carriage { transform: translate(500px,210px); }
.uv-head { fill: #111111; }
.uv-nozzles { stroke: #666666; stroke-width: 7; }
.uv-cure { fill: rgba(226,0,26,.18); opacity: 0; }
.uv-index-arrow { fill: none; stroke: #666666; stroke-width: 2; }
.gtl-mark-types { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 20px; }
.gtl-mark-types strong,
.gtl-mark-types small { display: block; font-size: .7rem; line-height: 1.45; }
.gtl-mark-types small { color: #666666; margin-top: 5px; }
.gtl-mark-types span { display: block; width: 100%; height: 34px; margin-bottom: 8px; background: #D9D9D9; }
.gtl-mark-types span::after { content: "ID"; display: block; text-align: center; font-size: 20px; font-weight: 700; color: #111111; }
.gtl-mark-types .gtl-mark-types__coating { background: #111111; }
.gtl-mark-types .gtl-mark-types__coating::after { color: #D9D9D9; }
.gtl-mark-types .gtl-mark-types__engraved::after { color: #666666; text-shadow: 1px 1px 0 #FFFFFF,-1px -1px 0 #111111; }
.gtl-print-layers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin-top: 20px; }
.gtl-print-layers strong { display: block; font-size: .75rem; margin-bottom: 8px; }
.gtl-print-layers span { display: block; border: 1px solid #D9D9D9; padding: 5px 8px; font-size: .68rem; font-weight: 700; }
.gtl-print-layers span:nth-of-type(2) { background: rgba(217,217,217,.4); }
.gtl-process-diagram__replay { margin-top: 16px; border: 1px solid #666666; padding: 9px 14px; color: #111111; background: #FFFFFF; font: inherit; font-size: .84rem; cursor: pointer; }
.gtl-process-diagram__replay:hover,
.gtl-process-diagram__replay:focus-visible { background: #E2001A; border-color: #E2001A; color: #FFFFFF; }
.gtl-process-diagram__replay[hidden] { display: none; }

@media (prefers-reduced-motion: no-preference) {
	.is-playing .co2-head { animation: gtl-co2-head 16s linear 1 both; }
	.is-playing .co2-gantry { animation: gtl-co2-gantry 16s linear 1 both; }
	.is-playing .co2-head .process-beam,
	.is-playing .co2-head .process-point { animation: gtl-co2-beam 16s linear 1 both; }
	.is-playing .co2-raster { animation: gtl-co2-raster 16s linear 1 both; }
	.is-playing .co2-score { stroke-dasharray: 1; animation: gtl-co2-score 16s linear 1 both; }
	.is-playing .co2-cut { stroke: #E2001A; stroke-dasharray: 1; animation: gtl-co2-cut 16s linear 1 both; }
	.is-playing .co2-piece { animation: gtl-co2-lift 16s linear 1 both; }
	.is-playing .co2-kerf { animation: gtl-co2-kerf 16s linear 1 both; }
	.is-playing .fibre-logo { animation: gtl-fibre-logo 12s linear 1 both; }
	.is-playing .fibre-hatch { animation: gtl-fibre-hatch 12s linear 1 both; }
	.is-playing .fibre-serial { animation: gtl-fibre-serial 12s linear 1 both; }
	.is-playing .fibre-code { animation: gtl-fibre-code 12s linear 1 both; }
	.is-playing .fibre-data-old { animation: gtl-fibre-old 12s steps(1) 1 both; }
	.is-playing .fibre-data-new { animation: gtl-fibre-new 12s steps(1) 1 both; }
	.is-playing .fibre-ray--1,
	.is-playing .fibre-ray--2 { animation: gtl-fibre-pulse .32s steps(1) 12; }
	.is-playing .fibre-ray--2 { animation-delay: .16s; }
	.is-playing .fibre-ray--3 { animation: gtl-fibre-pulse .32s steps(1) 9; animation-delay: 4.32s; }
	.is-playing .fibre-ray--4,
	.is-playing .fibre-ray--5 { animation: gtl-fibre-pulse .32s steps(1) 11; animation-delay: 7.32s; }
	.is-playing .fibre-ray--5 { animation-delay: 7.48s; }
	.is-playing .uv-table { animation: gtl-uv-table 16s linear 1 both; }
	.is-playing .uv-carriage { animation: gtl-uv-carriage 16s linear 1 both; }
	.is-playing .uv-white-pass { animation: gtl-uv-white 16s linear 1 both; }
	.is-playing .uv-colour-pass { animation: gtl-uv-colour 16s linear 1 both; }
	.is-playing .uv-cure { animation: gtl-uv-cure 16s linear 1 both; }
}
@keyframes gtl-co2-head {
	0% { transform: translate(205px,147px); } 5% { transform: translate(370px,147px); } 6% { transform: translate(370px,156px); } 10% { transform: translate(205px,156px); } 11% { transform: translate(205px,165px); } 15% { transform: translate(370px,165px); } 16% { transform: translate(370px,174px); } 20% { transform: translate(205px,174px); } 21% { transform: translate(205px,183px); } 25% { transform: translate(370px,183px); } 26% { transform: translate(370px,192px); } 30% { transform: translate(205px,192px); } 31% { transform: translate(205px,201px); } 35% { transform: translate(370px,201px); } 36% { transform: translate(370px,210px); } 40% { transform: translate(205px,210px); } 45% { transform: translate(185px,259px); } 60% { transform: translate(415px,259px); } 65% { transform: translate(140px,101px); } 73% { transform: translate(460px,101px); } 80% { transform: translate(460px,321px); } 88% { transform: translate(140px,321px); } 95% { transform: translate(140px,101px); } 100% { transform: translate(500px,80px); }
}
@keyframes gtl-co2-gantry {
	0%,5% { transform: translateY(147px); } 6%,10% { transform: translateY(156px); } 11%,15% { transform: translateY(165px); } 16%,20% { transform: translateY(174px); } 21%,25% { transform: translateY(183px); } 26%,30% { transform: translateY(192px); } 31%,35% { transform: translateY(201px); } 36%,40% { transform: translateY(210px); } 45%,60% { transform: translateY(259px); } 65%,73% { transform: translateY(101px); } 80%,88% { transform: translateY(321px); } 95% { transform: translateY(101px); } 100% { transform: translateY(80px); }
}
@keyframes gtl-co2-beam { 0%,40% { opacity: 1; } 41%,44% { opacity: 0; } 45%,60% { opacity: 1; } 61%,64% { opacity: 0; } 65%,95% { opacity: 1; } 96%,100% { opacity: 0; } }
@keyframes gtl-co2-raster { 0% { clip-path: inset(0 0 100% 0); } 40%,100% { clip-path: inset(0); } }
@keyframes gtl-co2-score { 0%,45% { stroke-dashoffset: 1; } 60%,100% { stroke-dashoffset: 0; } }
@keyframes gtl-co2-cut { 0%,65% { stroke-dashoffset: 1; } 95%,100% { stroke-dashoffset: 0; } }
@keyframes gtl-co2-lift { 0%,95% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes gtl-co2-kerf { 0%,95% { opacity: 0; } 100% { opacity: 1; } }
@keyframes gtl-fibre-logo { 0% { clip-path: inset(0 100% 0 0); } 32%,100% { clip-path: inset(0); } }
@keyframes gtl-fibre-hatch { 0%,32% { opacity: .8; } 33%,100% { opacity: 0; } }
@keyframes gtl-fibre-serial { 0%,36% { clip-path: inset(0 100% 0 0); } 60%,100% { clip-path: inset(0); } }
@keyframes gtl-fibre-code { 0%,61% { clip-path: inset(0 0 100% 0); } 92%,100% { clip-path: inset(0); } }
@keyframes gtl-fibre-old { 0% { opacity: 1; } 36%,100% { opacity: 0; } }
@keyframes gtl-fibre-new { 0% { opacity: 0; } 36%,100% { opacity: 1; } }
@keyframes gtl-fibre-pulse { 0%,45% { opacity: .8; } 50%,100% { opacity: 0; } }
@keyframes gtl-uv-table { 0%,6% { transform: translateY(0); } 7%,12% { transform: translateY(-18px); } 13%,18% { transform: translateY(-36px); } 19%,24% { transform: translateY(-54px); } 25%,30% { transform: translateY(-72px); } 31%,42% { transform: translateY(-90px); } 48%,54% { transform: translateY(0); } 55%,60% { transform: translateY(-18px); } 61%,66% { transform: translateY(-36px); } 67%,72% { transform: translateY(-54px); } 73%,78% { transform: translateY(-72px); } 79%,90% { transform: translateY(-90px); } 100% { transform: translateY(0); } }
@keyframes gtl-uv-carriage { 0% { transform: translate(140px,210px); } 6%,7% { transform: translate(460px,210px); } 12%,13% { transform: translate(140px,210px); } 18%,19% { transform: translate(460px,210px); } 24%,25% { transform: translate(140px,210px); } 30%,31% { transform: translate(460px,210px); } 37%,48% { transform: translate(140px,210px); } 54%,55% { transform: translate(460px,210px); } 60%,61% { transform: translate(140px,210px); } 66%,67% { transform: translate(460px,210px); } 72%,73% { transform: translate(140px,210px); } 78%,79% { transform: translate(460px,210px); } 85%,90% { transform: translate(140px,210px); } 100% { transform: translate(500px,210px); } }
@keyframes gtl-uv-white { 0% { clip-path: inset(0 0 100% 0); } 38%,100% { clip-path: inset(0); } }
@keyframes gtl-uv-colour { 0%,48% { clip-path: inset(0 0 100% 0); } 86%,100% { clip-path: inset(0); } }
@keyframes gtl-uv-cure { 0%,37% { opacity: .85; } 38%,47% { opacity: 0; } 48%,85% { opacity: .85; } 86%,100% { opacity: 0; } }

@media (max-width: 900px) {
	.gtl-resources-hub__grid,
	.gtl-material-selector__grid,
	.gtl-material-detail__grid,
	.gtl-solution-depth__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.gtl-capabilities-hub__grid { grid-template-columns: 1fr; }
	.gtl-capability-combinations { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.gtl-resources-hub__intro,
	.gtl-resources-hub__cards,
	.gtl-material-guide__intro,
	.gtl-material-selector,
	.gtl-material-detail,
	.gtl-material-supplied,
	.gtl-material-safety,
	.gtl-material-comparison,
	.gtl-capabilities-hub__intro,
	.gtl-capabilities-hub__list,
	.gtl-capabilities-hub__combinations,
	.gtl-capabilities-hub__materials,
	.gtl-solution-depth { padding-block: var(--gtl-section-space-compact, 48px); }
	.gtl-resources-hub__grid,
	.gtl-material-selector__grid,
	.gtl-material-detail__grid,
	.gtl-capability-materials,
	.gtl-capabilities-hub__columns,
	.gtl-solution-depth__grid { grid-template-columns: 1fr; }
	.gtl-material-detail__heading { grid-template-columns: 1fr; gap: 20px; }
	.gtl-material-swatch { max-width: 240px; }
	.gtl-resources-hub__grid article,
	.gtl-material-selector__grid article,
	.gtl-capabilities-hub__grid > article { padding: 22px; }
	.gtl-process-diagram { padding: 10px; }
	.gtl-process-diagram__stages li { font-size: .67rem; }
	.gtl-faq-jump a { flex: 1 1 140px; }
}
@media (prefers-reduced-motion: reduce) {
	.gtl-process-diagram * { animation: none !important; transition: none !important; }
	.gtl-process-diagram__replay { display: none; }
}
