/* Visitor Management: outcome, workflow, proof, capabilities and conversion. */
.tg-visitor-hero { text-align: left; }
.tg-visitor-hero h1 { margin-inline: 0; font-size: clamp(2rem,3.5vw,3rem); line-height: 1.15; }
.tg-visitor-hero .wp-block-buttons { justify-content: flex-start; }
.tg-visitor-note { margin-top: 1.25rem; color: var(--tg-muted); font-size: .8125rem; line-height: 1.8; }
.tg-visitor-jump { margin-top: 1rem; font-size: .875rem; }
.tg-visitor-jump a, .tg-visitor-buying a:not(.wp-element-button) { color: var(--tg-blue); text-underline-offset: 3px; }
.tg-visitor-hero-image, .tg-visitor-workflow-image { margin: 0; border-radius: 20px; overflow: hidden; }
.tg-visitor-hero-image img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.tg-visitor-hero-reception img { aspect-ratio: 1672/941; object-fit: contain; }
.tg-visitor-workflow-image img { display: block; width: 100%; height: auto; }
.tg-visitor-step { display: flex; gap: 1.25rem; align-items: flex-start; margin-top: 1.5rem; }
.tg-visitor-step-number { flex: 0 0 2.25rem; margin: 0 !important; font-weight: 700; color: var(--tg-blue) !important; font-size: .875rem !important; }
.tg-visitor-step-copy { margin: 0; }
.tg-visitor-step h3 { margin: 0 0 .5rem; font-size: 1.125rem; line-height: 1.5; }
.tg-visitor-step-copy p { margin: 0; }
.tg-visitor-proof { background: #102239; color: #fff; }
.tg-visitor-proof-card { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 3rem; align-items: center; max-width: 1000px; margin: 0 auto; }
.tg-visitor-quote-logo { margin: 0; padding: 1rem; border-radius: 12px; background: #fff; }
.tg-visitor-quote-logo img { display: block; width: 100%; height: auto; }
.tg-visitor-quote { margin: 0; padding: 0; border: 0; }
.tg-visitor-quote p { margin: 0 0 1.5rem; color: #fff; font-size: clamp(1.125rem,2vw,1.5rem); line-height: 1.7; }
.tg-visitor-quote cite { display: block; color: #cfdaeb; font-style: normal; font-size: .875rem; line-height: 1.8; }
.tg-visitor-proof-actions { max-width: 1000px; margin: 2.5rem auto 0; padding-top: 2rem; border-top: 1px solid #ffffff26; text-align: center; }
.tg-visitor-proof-actions > p { color: #d4e0ee; font-size: .9375rem; margin-top: 0; }
.tg-visitor-proof-actions .wp-block-buttons { justify-content: center; gap: .75rem; }
.tg-visitor-proof-actions .wp-block-button.is-style-outline > .wp-block-button__link { border-color: #a9c9ff; color: #dbe9ff; }
.tg-visitor-proof-actions .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #233d5c; color: #fff; }
.tg-visitor-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.tg-visitor-feature { margin: 0 !important; padding: 1.75rem; border: 1px solid var(--tg-line); border-radius: 16px; }
.tg-visitor-feature::before { content: ''; display: block; width: 30px; height: 30px; margin-bottom: 1.5rem; background: var(--tg-blue); mask: var(--tg-menu-icon) center / contain no-repeat; }
.tg-visitor-feature h3 { margin: 0 0 .75rem; font-size: 1.125rem; line-height: 1.5; }
.tg-visitor-feature p { margin: 0; color: var(--tg-muted); font-size: .9375rem; line-height: 1.85; }
.tg-visitor-all-features { margin: 2rem 0 0 !important; padding: 1.5rem; border: 1px solid var(--tg-line); border-radius: 14px; background: #f7faff; }
.tg-visitor-all-features summary { font-weight: 700; font-size: 1rem; cursor: pointer; }
.tg-visitor-all-features > p { color: var(--tg-muted); font-size: .875rem; line-height: 1.8; }
.tg-visitor-all-features .tgpm-module-feature-list { margin-top: 1.5rem; }
.tg-visitor-all-features .tgpm-module-feature-list > ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; list-style: none; padding: 0; }
.tg-visitor-all-features .tgpm-module-feature-list li { min-width: 0; font-size: .875rem; }
.tg-visitor-all-features .tgpm-module-feature-list li p { color: var(--tg-muted); font-size: .8125rem; line-height: 1.8; }
.tg-visitor-operations { background: var(--tg-section-wash); }
.tg-visitor-operations ul { padding-left: 1.25rem; color: var(--tg-muted); font-size: .9375rem; line-height: 1.85; }
.tg-visitor-operations li { margin-bottom: .5rem; }
.tg-visitor-dashboard { margin: 0; }
.tg-visitor-dashboard img { display: block; width: 100%; height: auto; border-radius: 14px; }
.tg-visitor-dashboard figcaption { margin-top: .75rem; color: var(--tg-muted); font-size: .75rem; text-align: center; }
.tg-visitor-buying-columns { gap: clamp(2rem,5vw,4rem); align-items: flex-start !important; }
.tg-visitor-buying-columns > .wp-block-column { min-width: 0; }
.tg-visitor-buying-columns > .wp-block-column > :first-child { margin-top: 0; }
.tg-visitor-plan-copy { margin-bottom: 1.75rem; }
.tg-visitor-buying .wp-block-buttons { gap: .75rem; }
.tg-visitor-questions { margin: 0; }
.tg-visitor-questions > h2 { margin: 0 0 1.5rem; font-size: 1.5rem; line-height: 1.4; }
.tg-visitor-faq { margin: 0 0 .75rem; padding: 1rem 1.25rem; border: 1px solid var(--tg-line); border-radius: 12px; background: #fff; }
.tg-visitor-faq summary { font-size: .9375rem; line-height: 1.7; font-weight: 700; cursor: pointer; }
.tg-visitor-faq p:last-child { margin-bottom: 0; }
.tg-visitor-faq summary:focus-visible, .tg-visitor-all-features summary:focus-visible { outline: 2px solid var(--tg-blue); outline-offset: 4px; }
@media (max-width: 1000px) { .tg-visitor-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
  .tg-visitor-feature-grid, .tg-visitor-all-features .tgpm-module-feature-list > ul { grid-template-columns: minmax(0,1fr); }
  .tg-visitor-proof-card { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
  .tg-visitor-quote-logo { max-width: 100px; }
  .tg-visitor-all-features { padding: 1.25rem; }
}

/* CMS fields use the same funnel layouts as the original design. */
.tg-visitor-image-left .tg-visitor-image-column { order: -1; }
.tg-visitor-pricing { background: var(--tg-section-wash); }
.tg-visitor-pricing .tgpm-product-pricing-output { max-width: 850px; margin-inline: auto; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
@media (max-width:781px) { .tg-visitor-image-left .tg-visitor-image-column { order: initial; } }
.tg-visitor-hero .wp-block-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }

.tg-product-workflow{align-items:start!important}
.tg-product-overview-copy{max-width:850px;margin-inline:auto}
.tg-product-related .tgpm-related-modules>h2{text-align:center;margin-bottom:2rem}
.tg-product-related .tgpm-related-modules{margin:0}
.tg-product-buying-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem)}
.tg-product-buying-grid>div{min-width:0;margin:0}
.tg-product-buying-grid h2{font-size:clamp(1.6rem,3vw,2.25rem);line-height:1.25;letter-spacing:-.035em}
.tg-product-buying-grid p{color:var(--tg-muted);font-size:.9375rem;line-height:1.85}
@media(max-width:781px){.tg-product-buying-grid{grid-template-columns:1fr}}

/* Shared alternating surfaces for catalogue product funnels. */
.tg-product-funnel .tg-company-content > section.tg-section{background:#fff}
.tg-product-funnel .tg-company-content > section.tg-section:nth-of-type(even){background:var(--tg-section-wash)}
.tg-product-funnel .tg-visitor-feature,
.tg-product-funnel .tg-visitor-all-features{background:#fff}

.tg-contractor-preview{margin-top:2rem;padding:1.5rem;border:1px solid var(--tg-line);border-radius:16px;background:#fff;box-shadow:0 12px 32px #10223908;font-size:.8125rem}
.tg-contractor-preview-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.tg-contractor-preview-head>strong{font-size:.9375rem}.tg-contractor-preview-head>span{background:#eff6ff;color:var(--tg-blue);border-radius:20px;padding:4px 9px;font-size:.625rem}
.tg-contractor-preview-person{display:flex;align-items:center;gap:12px;margin:1.5rem 0 1rem}.tg-contractor-preview-person>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#dceafe;color:#28578a;font-weight:700}.tg-contractor-preview-person>div{display:flex;flex-direction:column;gap:4px}.tg-contractor-preview-person>div>span{font-size:.75rem;color:var(--tg-muted)}
.tg-contractor-preview-status{display:inline-block;color:#896110;background:#fff5d8;padding:5px 9px;border-radius:6px;font-size:.6875rem;font-weight:600}
.tg-contractor-preview>ul{list-style:none;padding:0;margin:1rem 0 0}.tg-contractor-preview li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 0;border-bottom:1px solid var(--tg-line);font-size:.75rem;color:var(--tg-muted)}.tg-contractor-preview li>strong{color:#147c55;background:#ecfaf3;padding:3px 7px;border-radius:5px;font-size:.625rem}
.tg-company-story .tg-contractor-preview>p{font-size:.625rem;line-height:1.7;margin:1rem 0 0;color:var(--tg-muted)}
.tg-document-hero h1{max-width:900px;font-size:clamp(2rem,3.5vw,3rem);line-height:1.15}.tg-document-hero .tg-lead{max-width:750px}

@media(max-width:600px){.tg-visitor-hero h1,.tg-document-hero h1{font-size:2rem}}

/* Keep the next product section visible beneath the hero on laptop screens. */
.tg-visitor-hero,.tg-document-hero{padding-top:clamp(2rem,4vw,3rem);padding-bottom:2rem}
.tg-visitor-hero .wp-block-columns{margin-bottom:0}
.tg-visitor-copy-column>:last-child{margin-bottom:0}
.tg-visitor-hero+.tg-visitor-benefits{padding-top:2rem}
.tg-visitor-hero+.tg-visitor-benefits .tg-company-section-heading>h2{margin-top:0}
/* Keep the complete landscape booking screen visible in the Room Booking hero. */
.page-id-30267 .tg-visitor-hero-image img{aspect-ratio:3/2;object-fit:contain}
/* Preserve the full mining scene and foreground phone in the Asset Booking hero. */
.tg-asset-booking .tg-visitor-hero-image img{aspect-ratio:3/2;object-fit:contain}
/* Keep the emergency response phone and evacuation scene fully visible. */
.tg-broadcast-messaging .tg-visitor-hero-image img{aspect-ratio:3/2;object-fit:contain}
/* Preserve the complete iPad feedback screen and reception scene. */
.tg-surveys-sentiment .tg-visitor-hero-image img{aspect-ratio:3/2;object-fit:contain}
