.tgn-site .tgn-text-link{background:transparent;padding:0;text-align:left}
.tgn-site .tgn-field-label{display:flex;flex-direction:column;gap:7px;width:100%;font-size:14px;font-weight:600;margin-bottom:16px}
.tgn-site .tgn-field-label input,.tgn-site .tgn-field-label select,.tgn-site .tgn-field-label textarea{width:100%;max-width:100%;min-height:46px;padding:12px;border:1px solid #bccad4;border-radius:6px;background:#fff;color:#142536;font:inherit}
.tgn-site .tgn-consent{flex-direction:row;align-items:flex-start}.tgn-site .tgn-consent input{width:20px;min-height:20px;flex:none}
.tgn-site .tgn-status{font-size:15px;font-weight:600;margin:14px 0;grid-column:1/-1}
.tgn-site .tgn-status.success{color:#08783e;background:#e9f8ed;padding:14px;border:1px solid #118744;border-radius:6px}
.tgn-site .tgn-status.error{color:#b42318}.tgn-site .tgn-validated :invalid{border:2px solid #b42318}
.tgn-site .tgn-honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}
.tgn-site .tgn-details:not(.tgn-open)>.elementor-widget:not(:first-child){display:none}.tgn-summary{cursor:pointer}.tgn-summary:after{content:' +';float:right}.tgn-open .tgn-summary:after{content:' −'}
.tgn-site .nav-services-menu{grid-template-columns:minmax(0,1fr);width:300px!important;min-width:300px;max-width:300px!important}
.tgn-site .nav-services.tgn-open .nav-services-menu,
.tgn-site .nav-services:hover .nav-services-menu,
.tgn-site .nav-services:focus-within .nav-services-menu{display:grid;grid-template-columns:minmax(0,1fr);width:300px!important;min-width:300px;max-width:300px!important;opacity:1;visibility:visible;pointer-events:auto}
.tgn-site .language-menu.tgn-open .language-options{display:grid;opacity:1;visibility:visible;pointer-events:auto}
.tgn-site .nav-services-menu .tgn-widget.elementor-widget,
.tgn-site .nav-services-menu .elementor-widget-container,
.tgn-site .nav-services-menu .elementor-button-wrapper{display:block;width:100%;min-width:0}
.tgn-site .nav-services-menu a.elementor-button{display:block;width:100%;padding:12px 14px;white-space:normal;overflow-wrap:normal}
.tgn-site button:focus-visible,.tgn-site a:focus-visible,.tgn-summary:focus-visible{outline:3px solid #159bd7;outline-offset:4px}
.tgn-site .tgn-language-link{padding:9px 14px;display:block;font-size:13px;color:#0c263c;background:#fff}
.tgn-page [hidden]{display:none!important}
@media(max-width:480px){.tgn-page .site-header{column-gap:9px}.tgn-page .brand strong{font-size:14px!important}.tgn-page .language-button{font-size:11px;padding:8px}.tgn-page .brand img{width:32px!important;height:32px!important}}
@media(max-width:320px){.tgn-page .site-header .brand>.tgn-span{display:none}.tgn-page .site-header{grid-template-columns:minmax(32px,1fr) auto auto}}
body.elementor-editor-active .tgn-details>.elementor-widget{display:contents!important}
/* A real editor box is necessary for Elementor selection and drag handles. */
body.elementor-editor-active .tgn-widget.elementor-widget{display:block!important;width:auto;min-width:0;margin:0}
body.elementor-editor-active .tgn-widget>.elementor-widget-container{display:block}
.tgn-page .audit-landing-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);min-height:540px;padding-top:52px;padding-bottom:52px}
.tgn-page .audit-landing-hero h1{font-size:clamp(2.5rem,4.2vw,4.2rem);max-width:650px}.tgn-page .audit-hero-panel{width:100%}
.tgn-page :where(.audit-landing-hero,.home-hero){position:relative;isolation:isolate;overflow:hidden;background:#061b34}
.tgn-page .home-hero::before,.tgn-page .home-hero::after{display:none}
.tgn-page :where(.audit-landing-hero,.home-hero)>.tgn-hero-slideshow{position:absolute;z-index:-2;inset:0;display:block;width:100%;max-width:none}
.tgn-page :where(.audit-landing-hero,.home-hero)>.tgn-hero-slideshow::after{display:none}
.tgn-page :where(.audit-landing-hero,.home-hero) .tgn-hero-slide{position:absolute;inset:0;display:block;background-color:#061b34;background-position:center;background-size:contain;background-repeat:no-repeat;opacity:0;transform:scale(1.015);transition:opacity 1s ease,transform 6s ease}
@media(min-width:821px){.tgn-page :where(.audit-landing-hero,.home-hero) .tgn-hero-slide{background-size:100% 100%}}
.tgn-page :where(.audit-landing-hero,.home-hero) .tgn-hero-slide.is-active{opacity:1;transform:scale(1)}
.tgn-page .audit-landing-hero>:where(.audit-landing-hero-copy,.audit-hero-panel),.tgn-page .home-hero>.home-hero-content{position:relative;z-index:1}
.tgn-page .site-header{position:sticky;top:0;z-index:1000;width:100%}
.tgn-page .audit-landing-hero,.tgn-page .home-hero{display:block;min-height:clamp(300px,37.5vw,540px);padding:0}
.tgn-page .audit-landing-hero>:where(.audit-landing-hero-copy,.audit-hero-panel,.home-hero-grid),
.tgn-page .home-hero>:where(.home-hero-content,.home-hero-grid){display:none!important}
.tgn-page .site-header .nav :where(a,.elementor-button){border-bottom:0!important;text-decoration:none!important}
.tgn-page .site-header .nav :where(a,.elementor-button)::after{display:none!important;content:none!important}
/* Elementor gives every top-level nav item a 46px hit area. Center the text
   inside all of them, as the Services button already does. */
.tgn-page .site-header .nav>.tgn-widget>a.elementor-button,
.tgn-page .site-header .nav>.nav-services>.tgn-widget>.nav-services-toggle{display:flex;align-items:center;justify-content:center;min-height:46px;line-height:1}
/* Keep the Spanish desktop header on the same single line as the English one. */
@media(min-width:1101px){
 .tgn-page.page-id-42 .site-header{column-gap:12px;padding-left:3%;padding-right:3%}
 .tgn-page.page-id-42 .site-header .nav{flex-wrap:nowrap;gap:12px;font-size:.78rem;white-space:nowrap}
 .tgn-page.page-id-42 .site-header .brand{gap:7px}
 .tgn-page.page-id-42 .site-header .brand small{font-size:.64rem;letter-spacing:.045em}
 .tgn-page.page-id-42 .site-header .proposal-link{padding-left:12px;padding-right:12px;font-size:.83rem;white-space:nowrap}
}
/* The case-study introduction has no second-column action; let its heading use the section width. */
.tgn-page .case-detail-section>.section-title{grid-template-columns:minmax(0,1fr)}
.tgn-page .case-detail-section>.section-title>*{grid-column:1;min-width:0}
.tgn-page .client-logo-strip{padding:28px 0 32px}
.tgn-page .client-logo-viewport{max-width:none;width:100%}
.tgn-page .client-logo-track{width:max-content!important;max-width:none!important;gap:28px;animation:client-logo-marquee 34s linear infinite}
.tgn-page .client-logo-grid{width:max-content!important;max-width:none!important;grid-template-columns:repeat(9,clamp(112px,10vw,148px))}
.tgn-page .client-logo{width:clamp(112px,10vw,148px);height:96px;padding:10px;background:#fff;border:1px solid rgba(7,95,168,.1);border-radius:8px}
.tgn-page .client-logo img{max-width:100%;height:72px;object-fit:contain}
.tgn-page .audit-case-summary .case-story-grid{gap:24px}
.tgn-page .audit-case-summary .case-story-card{padding:0;overflow:hidden;background:#fff}
.tgn-page .audit-case-summary .case-story-cover-image,.tgn-page .audit-case-summary .case-story-cover-image .elementor-widget-container{width:100%}
.tgn-page .audit-case-summary .case-story-cover-image img{display:block;width:100%;height:auto;aspect-ratio:1912/1067;object-fit:cover}
.tgn-page .audit-case-summary .case-story-link{display:flex;justify-content:center;margin:0;padding:22px 24px 24px}
/* The five banner images are individual native Elementor image widgets. */
.tgn-page :where(.audit-landing-hero,.home-hero)>.tgn-hero-slideshow.e-con{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;padding:0;overflow:hidden}
.tgn-page :where(.audit-landing-hero,.home-hero) img.tgn-hero-slide{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:fill}
@media(max-width:820px){.tgn-page :where(.audit-landing-hero,.home-hero) img.tgn-hero-slide{object-fit:contain}}
@media(max-width:820px){
 .tgn-page .audit-landing-hero,.tgn-page .home-hero{height:auto;min-height:0;aspect-ratio:8/3}
 .tgn-page :where(.audit-landing-hero,.home-hero) img.tgn-hero-slide{object-fit:contain}
}
.tgn-page .customer-reviews-manager{padding:72px 6%;background:#f7fbf8}
.tgn-page .customer-reviews-manager>.tgn-div{max-width:1180px;margin:auto}
.tgn-page .tgn-review-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tgn-page .tgn-review-entry{display:flex;min-width:0;flex-direction:column;padding:26px;border:1px solid rgba(8,116,95,.18);border-radius:14px;background:#fff;box-shadow:0 12px 30px rgba(7,21,37,.08)}
.tgn-page .tgn-review-entry video{display:block;width:100%;aspect-ratio:16/9;margin-bottom:20px;border-radius:10px;background:#071b35;object-fit:contain}
.tgn-page .tgn-review-words{color:#40546b;font-size:1rem;line-height:1.75}
.tgn-page .tgn-review-entry footer{display:flex;flex-direction:column;gap:3px;margin-top:auto;padding-top:18px;color:#071b35}
.tgn-page .tgn-review-entry footer span{color:#5f7084;font-size:.85rem}
.tgn-page .customer-review-empty{margin:0;padding:28px;border:1px dashed rgba(8,116,95,.28);border-radius:12px;text-align:center;background:#fff}
.tgn-review-launcher{position:fixed;z-index:9998;right:24px;bottom:24px;display:grid;width:72px;height:72px;place-items:center;padding:8px;border:0;border-radius:50%;color:#fff;background:#11a86f;box-shadow:0 12px 34px rgba(7,27,53,.28);cursor:pointer;font:inherit}
.tgn-review-launcher span{font-size:1.35rem;line-height:1}.tgn-review-launcher small{font-size:.68rem;font-weight:800;line-height:1}
.tgn-review-popup[hidden]{display:none}.tgn-review-popup{position:fixed;z-index:9999;inset:0}.tgn-review-backdrop{position:absolute;inset:0;background:rgba(4,16,31,.64)}
.tgn-review-dialog{position:absolute;right:24px;bottom:112px;width:min(440px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 144px));overflow:hidden;border-radius:18px;background:#f7fbf8;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.tgn-review-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;color:#fff;background:#071b35}.tgn-review-dialog h2{margin:0;color:inherit;font-size:1.25rem}.tgn-review-dialog>header button{width:36px;height:36px;border:0;border-radius:50%;color:#fff;background:rgba(255,255,255,.14);cursor:pointer;font-size:1.6rem}
.tgn-review-dialog-body{max-height:calc(min(680px,100vh - 144px) - 76px);overflow:auto;padding:18px}.tgn-review-list.is-popup{grid-template-columns:1fr}.tgn-review-list.is-popup .tgn-review-entry{padding:20px}
body.tgn-review-open{overflow:hidden}
@media(max-width:820px){.tgn-page .tgn-review-list{grid-template-columns:1fr}.tgn-review-launcher{right:16px;bottom:16px;width:64px;height:64px}.tgn-review-dialog{right:16px;bottom:92px}}
.tgn-page .brand>.tgn-span{display:block;width:auto}.tgn-page .brand img{width:58px;height:58px;object-fit:contain}
.tgn-page .site-header{grid-template-columns:auto minmax(0,1fr) auto auto;column-gap:18px}.tgn-page .nav{flex-wrap:wrap;gap:16px;justify-content:center}
@media(min-width:1101px){
 .tgn-page .site-header .nav{align-items:center;flex-wrap:nowrap;gap:18px;white-space:nowrap}
 .tgn-page .site-header .nav-services{display:flex;align-items:center;align-self:center;justify-content:center;min-height:40px}
 .tgn-page .site-header .nav-services>.tgn-widget{display:contents}
 .tgn-page .site-header .nav-services-toggle{align-items:center;min-height:46px;line-height:1}
}
@media(max-width:1100px){.tgn-page .site-header{grid-template-columns:1fr auto auto}.tgn-page .site-header .proposal-link{display:none}.tgn-page .site-header .nav{display:none;grid-column:1/-1}.tgn-page .site-header .nav-toggle{display:block}}
@media(max-width:820px){.tgn-page .audit-landing-hero{grid-template-columns:1fr;padding:42px 6%;gap:28px}.tgn-page .audit-hero-panel{max-width:100%}.tgn-page .home-hero-actions{flex-direction:column}.tgn-page .site-header{padding:14px 5%}.tgn-page .brand strong{font-size:17px}.tgn-page .brand small{font-size:9px}.tgn-page .brand img{width:42px;height:42px}}
@media(max-width:820px){.tgn-page .audit-landing-hero,.tgn-page .home-hero{min-height:0;aspect-ratio:8/3;padding:0}.tgn-page :where(.audit-landing-hero,.home-hero) .tgn-hero-slide{background-position:center}}
@media(max-width:1100px){
 .tgn-page .site-header.tgn-open .nav{display:grid!important;grid-template-columns:minmax(0,1fr);width:100%;gap:4px;padding:14px 0 8px}
 .tgn-page .site-header.tgn-open .nav>.tgn-widget.elementor-widget,
 .tgn-page .site-header.tgn-open .nav>.nav-services{display:block;width:100%;min-width:0}
 .tgn-page .site-header.tgn-open .nav>.tgn-widget .elementor-widget-container,
 .tgn-page .site-header.tgn-open .nav>.tgn-widget .elementor-button-wrapper{display:block;width:100%}
 .tgn-page .site-header.tgn-open .nav>.tgn-widget .elementor-button,
 .tgn-page .site-header.tgn-open .nav>.nav-services>.tgn-widget .elementor-button{display:flex;width:100%;min-height:42px;align-items:center;justify-content:flex-start;padding:9px 12px;text-align:left}
 .tgn-page .site-header .nav-toggle{min-width:42px;min-height:42px}
 .tgn-page .site-header.tgn-open .nav-services .nav-services-menu{position:static;width:100%!important;min-width:0;max-width:100%!important;margin-top:4px}
 .tgn-site .e-con{min-width:0}
}

/* Elementor wrapper-safe typography and sizing. These values are also stored
   on the native widgets by reconstruction/repair-visual.php. */
.tgn-page h1{line-height:1.1}
.tgn-page h2{line-height:1.15}
.tgn-page h3{line-height:1.3}
.tgn-page p,.tgn-page li,.tgn-page label{line-height:1.6}
.tgn-page .elementor-widget-heading,
.tgn-page .elementor-widget-text-editor{height:auto;min-height:0;overflow:visible}
.tgn-page .elementor-widget-heading .elementor-heading-title,
.tgn-page .elementor-widget-text-editor :where(p,span,strong,small){overflow:visible;text-overflow:clip}
.tgn-page .elementor-button,
.tgn-page button{max-width:100%;height:auto;min-height:46px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
.tgn-page .tgn-field-label{line-height:1.4}
.tgn-page .site-breadcrumbs>.elementor-element{width:auto;max-width:max-content;flex:0 0 auto}
.tgn-page .site-breadcrumbs .elementor-widget-container{white-space:normal}

/* Keep the editorial landing heroes on a readable line measure. Elementor's
   generated widget wrappers must participate in normal flow here so the
   supporting copy cannot rise into a multi-line heading. */
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero>.tgn-div{width:min(100%,900px);min-width:0}
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero>.tgn-div>.elementor-widget,
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero>.tgn-div>.elementor-widget>.elementor-widget-container{display:block;width:100%;min-width:0}
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero .eyebrow{margin:0 0 12px}
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero h1{width:100%;max-width:900px;margin:0 0 20px;font-size:clamp(2.75rem,5vw,4.75rem);line-height:1.08;word-break:normal;overflow-wrap:normal}
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero p:not(.eyebrow){margin:0;max-width:850px}
:where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero .hero-actions{margin-top:28px}

@media(max-width:820px){
 :where(.elementor-page-45,.elementor-page-46,.elementor-page-53,.elementor-page-54) .page-hero.quote-hero h1{font-size:clamp(2.35rem,10vw,3.8rem)}
}

/* Long Spanish calls to action must shrink inside the narrowest viewport. */
@media(max-width:480px){
 .tgn-page .contact-form,.tgn-page .tgn-form,.tgn-page .elementor-widget-button{min-width:0;max-width:100%}
 .tgn-page .elementor-button,.tgn-page button{width:100%;padding-left:12px;padding-right:12px}
}

@media(prefers-reduced-motion:reduce){
 .tgn-page *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
