﻿/* Shared reading scale, based on About Us. Loaded after page styles. */
:root { --site-body:17px; --site-copy:17px; --site-heading:40px; --site-card:23px; --site-space:52px; --site-gutter:96px; }
body:not(.tg-about) { font-size:var(--site-body); line-height:1.55; }
body:not(.tg-about) #main-content h1 { font-size:clamp(40px,3.7vw,54px); line-height:1.08; margin-bottom:22px; letter-spacing:-.035em; max-width:100%; }
body:not(.tg-about) #main-content h2:not([class*='eyebrow']) { font-size:var(--site-heading); line-height:1.16; white-space:normal; margin-bottom:20px; }
body:not(.tg-about) #main-content h3 { font-size:var(--site-card); line-height:1.25; white-space:normal; max-width:none; margin-bottom:12px; }
body:not(.tg-about) #main-content p:not([class*='eyebrow']) { font-size:var(--site-copy); line-height:1.6; font-family:'DM Sans',Arial,sans-serif; }
body:not(.tg-about) #main-content :is([class*='eyebrow'],.policy-kicker) { font-size:12px; line-height:1.5; margin-bottom:15px; letter-spacing:.2em; }
body:not(.tg-about) #main-content :is(.tg-button,.ip-button,.tc-button,.oi-button,.contact-button,.service-button) { min-height:59px; padding:16px 26px; font-size:16px; line-height:1.3; white-space:normal; text-align:center; }
body:not(.tg-about) #main-content > section:not([class*='hero']):not(.oi-final) { padding-block:var(--site-space); }
body:not(.tg-about) #main-content :is(.tg-container,.ip-container,.tc-container,.oi-container,.service-container,.blogs-container,.contact-container) { width:min(1350px,calc(100% - var(--site-gutter))); margin-inline:auto; }
body:not(.tg-about) #main-content :is(.tc-section-heading,.ip-section-heading,.tg-section-heading,.oi-heading-split) { gap:36px; margin-bottom:30px; align-items:center; }
body:not(.tg-about) #main-content :is(.tc-section-heading,.oi-heading-split) { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
body:not(.tg-about) #main-content :is(.tc-section-heading,.ip-section-heading,.tg-section-heading,.oi-heading) h2:after { display:none; }
body:not(.tg-about) #main-content :is(.tc-hero-copy,.oi-hero-copy,.ip-hero-copy,.tg-hero-copy) { padding-block:45px; min-width:0; }
body:not(.tg-about) #main-content :is(.tc-hero-copy,.oi-hero-copy,.ip-hero-copy,.tg-hero-copy,.contact-hero-copy)>p:not([class*='eyebrow']) { font-size:20px; line-height:1.55; max-width:100%; margin-bottom:24px; }
body:not(.tg-about) #main-content :is(.tc-hero-grid,.oi-hero-grid,.ip-hero-grid) { gap:30px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
body:not(.tg-about) #main-content :is(.tc-hero-visual,.oi-hero-visual,.ip-hero-visual) { min-width:0; }
body:not(.tg-about) #main-content :is(.tc-hero h1,.oi-hero h1,.ip-hero h1) { margin-right:0; }
body:not(.tg-about) #main-content :is(.tc-approach-grid,.tc-services-grid,.tc-process-grid,.oi-cards,.oi-process,.oi-industries-grid,.tc-industries-grid) { margin-inline:0; gap:24px; }
body:not(.tg-about) #main-content :is(.tc-approach-card,.tc-services-grid article,.oi-cards article,.vm-card,.ip-card,.tg-benefit-card) { padding:26px; min-width:0; }
body:not(.tg-about) #main-content :is(.tc-services-grid article,.oi-cards article) { display:flex; flex-direction:column; gap:16px; }
body:not(.tg-about) #main-content :is(.tc-benefits article,.mp-value-list li) { padding:16px 20px; gap:20px; }
body:not(.tg-about) #main-content :is(.tc-benefits,.oi-checklist) { gap:14px; }
body:not(.tg-about) #main-content :is(.tc-process-grid,.oi-process,.ip-process,.vm-process,.mp-process,.tg-process) { gap:16px; }
body:not(.tg-about) #main-content :is(.tc-process-grid article,.oi-process article) { clip-path:none; border-radius:14px; padding:24px; }
body:not(.tg-about) #main-content .tc-process-grid article { flex-direction:column; }
body:not(.tg-about) #main-content .oi-step { position:static; display:inline-grid; margin-right:12px; vertical-align:middle; }
body:not(.tg-about) #main-content .oi-process .oi-icon { vertical-align:middle; margin-left:0; }
body:not(.tg-about) #main-content :is(.tc-industries-grid,.mp-industry-grid) { grid-template-columns:repeat(4,minmax(0,1fr)); }
body:not(.tg-about) #main-content :is(.tc-industries-grid h3,.oi-industries-grid h3,.mp-industry-grid h3) { font-size:16px; white-space:normal; margin:10px 0 0; }
body:not(.tg-about) #main-content .oi-industries-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
body:not(.tg-about) #main-content :is(.oi-checklist li,.oi-promises li,.tc-strategy-list li,.tg-trust-list li,.ip-trust li) { font-size:16px; line-height:1.5; white-space:normal; }
body:not(.tg-about) #main-content :is(.oi-promises,.tg-trust-list) { flex-wrap:wrap; gap:18px; }
body:not(.tg-about) #main-content .tc-strategy-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr); gap:28px; }
body:not(.tg-about) #main-content .tc-strategy-list { margin:0; padding:24px; border-radius:20px; }
body:not(.tg-about) #main-content .tc-final-grid { width:min(1350px,calc(100% - var(--site-gutter))); padding:0; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto; gap:36px; }
body:not(.tg-about) #main-content .tc-final-grid>img { height:320px; }
body:not(.tg-about) #main-content .oi-final { height:auto; min-height:260px; }
body:not(.tg-about) #main-content .oi-final-panel { width:70%; min-height:260px; height:auto; padding:36px 7% 36px 48px; gap:24px; flex-wrap:wrap; border-top-right-radius:90px; }
body:not(.tg-about) #main-content .oi-final-panel>div { width:auto; flex:1 1 350px; min-width:0; }
body:not(.tg-about) #main-content .oi-final h2 { white-space:normal; }
body:not(.tg-about) #main-content .oi-outcomes { width:230px; padding:24px; }
body:not(.tg-about) #main-content .oi-outcomes li { font-size:15px; white-space:normal; }
body:not(.tg-about) #main-content .oi-approach-visual { height:100%; min-height:490px; margin-right:30px; }
body:not(.tg-about) #main-content .oi-outcomes h3 { white-space:normal; }
body:not(.tg-about) #main-content .tg-solutions-grid { grid-template-columns:1fr; }
body:not(.tg-about) #main-content .tg-feature-solution { display:grid; grid-template-columns:1fr 1fr; }
body:not(.tg-about) #main-content .tg-feature-solution>img { height:100%; min-height:260px; }
body:not(.tg-about) #main-content .tg-feature-copy { padding:30px; align-content:center; }
body:not(.tg-about) #main-content .tg-service-collection { grid-template-rows:auto; gap:24px; }
body:not(.tg-about) #main-content .tg-solution-card { padding:24px; grid-template-columns:54px minmax(0,1fr); gap:15px; }
body:not(.tg-about) #main-content .tg-solution-card h3 { font-size:22px; }
body:not(.tg-about) #main-content .tg-service-row-4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
body:not(.tg-about) #main-content .tg-hero-inner { width:min(1240px,calc(100% - var(--site-gutter))); gap:30px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
body:not(.tg-about) #main-content .tg-hero-visual { height:auto; min-height:480px; margin-inline:0; }
body:not(.tg-about) #main-content .blog-card h2 { font-size:25px; }
body:not(.tg-about) #main-content :is(.blog-card__link,.policy-sidebar a,.policy-content li,.policy-breadcrumb,.policy-effective,.contact-detail address,.contact-detail a) { font-size:16px; line-height:1.55; }
body:not(.tg-about) #main-content :is(input,select,textarea) { font-size:16px; line-height:1.5; }
body:not(.tg-about) #main-content .contact-form input { min-height:52px; }
body:not(.tg-about) #main-content .contact-form select { min-height:66px; padding-top:30px; }
body:not(.tg-about) #main-content .contact-form textarea { min-height:140px; }
body:not(.tg-about) #main-content :is(.contact-select-field label,.field-error,.form-status) { font-size:14px; }
body:not(.tg-about) :is(.tg-header) { height:84px; }
body:not(.tg-about) .tg-desktop-nav { font-size:13px; gap:26px; margin-left:24px; }
body:not(.tg-about) .tg-logo { font-size:29px; }
body:not(.tg-about) .tg-header-cta { font-size:13px; min-height:43px; }
body:not(.tg-about) :is(.company-footer,.tg-footer) { padding-block:36px 60px; }
body:not(.tg-about) :is(.company-footer-grid,.tg-footer-grid) { gap:32px; }
body:not(.tg-about) :is(.company-footer,.tg-footer) h2 { font-size:17px; margin-bottom:15px; }
body:not(.tg-about) :is(.company-footer nav a,.tg-footer nav>a,.company-footer-brand p,.tg-footer-brand p,.company-footer-contact address,.company-footer-contact>a,.tg-footer-contact address,.tg-footer-contact>a) { font-size:16px; line-height:1.55; }
body:not(.tg-about) :is(.company-footer-grid,.tg-chrome-container) { width:min(1270px,calc(100% - var(--site-gutter))); }
@media(max-width:1250px) {
    :root { --site-heading:32px; --site-card:22px; --site-gutter:64px; --site-copy:16px; }
    body:not(.tg-about) #main-content :is(.tc-hero-copy,.oi-hero-copy,.ip-hero-copy,.tg-hero-copy,.contact-hero-copy)>p:not([class*='eyebrow']) { font-size:18px; }
    body:not(.tg-about) #main-content :is(.tc-approach-grid,.oi-cards,.tc-process-grid,.oi-process,.blogs-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body:not(.tg-about) #main-content .tc-strategy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body:not(.tg-about) #main-content .tc-strategy-grid>div:first-child { grid-column:1/-1; }
    body:not(.tg-about) #main-content .tc-final-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); }
    body:not(.tg-about) #main-content .tc-final-grid>.tc-button { grid-column:2; justify-self:start; }
    body:not(.tg-about) #main-content :is(.tg-service-row-3,.tc-services-grid,.mp-services-grid,.vm-service-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body:not(.tg-about) #main-content :is(.oi-hero h1,.tc-hero h1,.ip-hero h1) br { display:none; }
}
@media(max-width:1000px) {
    body:not(.tg-about) .tg-desktop-nav,body:not(.tg-about) .tg-header-cta { display:none; }
    body:not(.tg-about) .tg-mobile-menu { display:block; }
    body:not(.tg-about) #main-content :is(.tc-hero-grid,.oi-hero-grid,.ip-hero-grid,.tg-hero-inner,.tc-value-grid,.oi-approach-grid,.mp-value-grid,.contact-message-grid) { grid-template-columns:minmax(0,1fr); }
    body:not(.tg-about) #main-content :is(.tc-hero-visual,.oi-hero-visual,.ip-hero-visual,.tg-hero-visual) { height:430px; min-height:0; margin:0 0 30px; }
    body:not(.tg-about) #main-content :is(.tc-section-heading,.oi-heading-split) { grid-template-columns:minmax(0,1fr); gap:16px; }
    body:not(.tg-about) #main-content :is(.tg-section-heading,.ip-section-heading) { flex-direction:column; align-items:flex-start; gap:16px; padding-inline:0; }
    body:not(.tg-about) #main-content :is(.tg-section-heading,.ip-section-heading)>p { max-width:100%; width:auto; }
    body:not(.tg-about) #main-content :is(.oi-handwriting,.tc-handwriting,.tg-hero-note) { display:none; }
    body:not(.tg-about) #main-content .oi-approach-visual { height:450px; min-height:0; margin:0 30px 0 0; }
    body:not(.tg-about) #main-content .oi-final-panel { width:80%; }
}
@media(max-width:760px) {
    :root { --site-heading:30px; --site-card:22px; --site-gutter:40px; --site-copy:16px; --site-space:40px; }
    body:not(.tg-about) #main-content h1 { font-size:36px; }
    body:not(.tg-about) #main-content :is(h1,h2) br { display:none; }
    body:not(.tg-about) #main-content :is(.tc-hero-copy,.oi-hero-copy,.ip-hero-copy,.tg-hero-copy) { padding-block:32px; }
    body:not(.tg-about) #main-content :is(.tc-hero-copy,.oi-hero-copy,.ip-hero-copy,.tg-hero-copy,.contact-hero-copy)>p:not([class*='eyebrow']) { font-size:17px; }
    body:not(.tg-about) #main-content :is(.tc-approach-grid,.tc-services-grid,.oi-cards,.tc-process-grid,.oi-process,.tg-service-row-3,.tg-service-row-4,.tc-strategy-grid,.tc-final-grid,.mp-services-grid,.vm-service-grid) { grid-template-columns:minmax(0,1fr); }
    body:not(.tg-about) #main-content .tc-final-grid>.tc-button { grid-column:auto; }
    body:not(.tg-about) #main-content :is(.tc-industries-grid,.oi-industries-grid,.mp-industry-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body:not(.tg-about) #main-content .tg-feature-solution { grid-template-columns:1fr; }
    body:not(.tg-about) #main-content .tg-solution-card { grid-template-columns:48px minmax(0,1fr); }
    body:not(.tg-about) #main-content :is(.tc-hero-visual,.oi-hero-visual,.ip-hero-visual,.tg-hero-visual) { height:350px; }
    body:not(.tg-about) #main-content .oi-final { padding-bottom:200px; }
    body:not(.tg-about) #main-content .oi-final-panel { width:100%; padding:30px 20px; }
    body:not(.tg-about) #main-content .oi-outcomes { width:180px; padding:20px 15px; }
    body:not(.tg-about) #main-content .oi-outcomes h3 { font-size:22px; }
    body:not(.tg-about) #main-content .oi-outcomes li { font-size:14px; }
    body:not(.tg-about) #main-content .tc-strategy-list { padding:24px; }
    body:not(.tg-about) #main-content :is(.tc-strategy-list li,.oi-checklist li) { font-size:16px; }
    body:not(.tg-about) .tg-header { height:72px; }
    body:not(.tg-about) .tg-logo { font-size:25px; }
    body:not(.tg-about) :is(.company-footer-grid,.tg-footer-grid) { gap:28px 20px; }
    body:not(.tg-about) :is(.company-footer nav a,.tg-footer nav>a) { font-size:15px; padding-block:4px; }
}
/* Keep decorative elements and enlarged labels inside the reading area. */
body:not(.tg-about) #main-content :is(.ip-handwritten,.tc-handwriting,.oi-handwriting) { right:8px; }
body:not(.tg-about) #main-content .mp-outcomes { margin-right:0; min-width:0; }
body:not(.tg-about) #main-content .tg-cta-photo { right:0; max-width:100%; }
body:not(.tg-about) #main-content :is(.ip-process li,.mp-process li,.vm-steps li,.tg-process-step) { clip-path:none; padding:24px; border-radius:14px; min-width:0; }
body:not(.tg-about) #main-content :is(.mp-industry-grid,.ip-industries,.tg-industry-list) :is(b,strong,span) { font-size:16px; line-height:1.4; white-space:normal; }
@media(min-width:941px) and (max-width:1000px) {
    body:not(.tg-about) .tg-mobile-menu summary { display:flex; align-items:center; gap:10px; padding:10px; cursor:pointer; list-style:none; }
    body:not(.tg-about) .tg-mobile-menu nav { position:absolute; top:100%; left:0; right:0; display:grid; max-height:calc(100dvh - 84px); overflow:auto; padding:20px 32px; background:#fff; box-shadow:0 12px 20px #1233; }
    body:not(.tg-about) .tg-mobile-menu nav a { display:block; padding:12px 4px; font-size:16px; }
    body:not(.tg-about) .tg-mobile-menu .tg-mobile-service-links a { font-size:15px; }
    body:not(.tg-about) .tg-mobile-menu .tg-mobile-cta { background:#005763; color:white; border-radius:6px; padding:15px; }
}
@media(max-width:1250px) {
    body:not(.tg-about) #main-content :is(.ip-process,.mp-process,.vm-steps,.tg-process) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
    body:not(.tg-about) #main-content .oi-final-panel>div { flex:none; width:100%; }
    body:not(.tg-about) #main-content :is(.ip-process,.mp-process,.vm-steps,.tg-process) { grid-template-columns:minmax(0,1fr); }
}
/* Larger header navigation across both header variants. */
html body .tg-header .tg-desktop-nav,
html body .site-header .nav { font-size:17px; }
html body .tg-header .tg-services-menu a,
html body .site-header .nav-dropdown-menu a { font-size:16px; line-height:1.45; }
html body .tg-header .tg-mobile-menu > summary,
html body .tg-header .tg-mobile-menu nav > a,
html body .tg-header .tg-mobile-services > summary { font-size:17px; }
html body .tg-header .tg-mobile-service-links a { font-size:16px; line-height:1.45; }
@media(min-width:1001px) and (max-width:1250px) {
    html body .tg-header .tg-desktop-nav { gap:18px; margin-left:0; }
    html body .tg-header .tg-header-inner { gap:18px; }
    html body .tg-header .tg-header-cta { padding-inline:12px; }
}
@media(min-width:941px) and (max-width:1000px) {
    html body.tg-about .tg-header .tg-desktop-nav { gap:16px; margin-left:0; }
    html body.tg-about .tg-header .tg-header-cta { display:none; }
}
