/* Consistent inner-page heroes. Homepage slider keeps its own sizing. */
:root{--tsco-inner-hero-height:550px}
body:not(.home) :is(.tsco-about-hero,.tsco-services-hero,.tsco-locations-hero,.tsco-contact-hero,.tsco-labs-hero,.tsco-news-hero,.tsco-detail-hero,.tsco-page-hero,.tsco-post-hero,.tsco-reference section:has(h1)){
 height:auto!important;
 min-height:var(--tsco-inner-hero-height)!important;
 box-sizing:border-box;
}
/* About hero specifically matches the reference's 55vh (not the shared fixed 550px used by
   the other inner-page heroes), so it's overridden separately here rather than touching
   --tsco-inner-hero-height, which the other hero types still rely on. */
body:not(.home) #top.tsco-about-hero{min-height:55vh!important}

/* Audit corrections: preserve the composition while allowing text to reflow. */
:root{--tsco-teal-text:#38717d}
.tsco-hero-slider{
 display:grid;
 height:auto;
 min-height:100vh;
 min-height:100svh;
}
.tsco-hero-slider .tsco-hero-slide{
 position:relative;
 inset:auto;
 grid-area:1 / 1;
 height:auto;
 min-height:0!important; /* Overrides the saved cover block's 936px minimum. */
 padding:0;
}
.tsco-hero-slider .tsco-hero__content{
 width:min(1100px,calc(100% - 128px));
 padding:118px 0 92px;
}
.tsco-hero__content :is(h1,h2){
 max-width:950px;
 margin:0;
 font-size:var(--tsco-fs-display)!important;
 font-weight:800;
 line-height:1.12;
 letter-spacing:-.045em;
}
.tsco-hero__content .has-large-font-size{
 max-width:850px;
 font-size:var(--tsco-fs-lead)!important;
 line-height:1.6;
}
.tsco-hero__content .tsco-accent{margin:1.25rem 0!important}
.tsco-hero__content .tsco-eyebrow{color:var(--tsco-lime)}
.tsco-hero__content .tsco-arabic{color:rgba(255,255,255,.85)}
.tsco-hero-slide .wp-block-cover__background{
 background:linear-gradient(90deg,rgba(2,49,68,.9),rgba(2,49,68,.72) 58%,rgba(2,49,68,.35))!important;
}
.tsco-hero__content .wp-block-button__link{font-size:1rem}
.tsco-shareholders .tsco-logo-grid p{
 width:180px;
 flex-basis:180px;
 min-height:90px;
 font-size:1rem;
 font-weight:700;
 line-height:1.25;
 color:var(--tsco-navy);
}
.tsco-partners .tsco-logo-grid p,.tsco-client-grid p{font-size:1rem;line-height:1.5}
.tsco-card h3{line-height:1.35}
.tsco-subtitle{line-height:1.6}
.tsco-eyebrow{overflow-wrap:anywhere}
.tsco-map__label > p:not(.tsco-map__tag){padding-inline:16px;font-size:clamp(1.25rem,3vw,2.5rem);color:var(--tsco-teal-text);overflow-wrap:anywhere}
.tsco-map__label .tsco-map__tag{left:50%;width:max-content;max-width:100%;transform:translateX(-50%)}
.tsco-benefit p,.tsco-why .wp-block-column:first-child>p,
.tsco-solution-card p,.tsco-news-card>p,.tsco-offices-grid p,
.tsco-international-offices article p,.tsco-offer-grid p,.tsco-detail-card-grid p{
 font-size:1rem;
 line-height:1.65;
}
.tsco-footer p,.tsco-footer li{font-size:1rem;line-height:1.65}
.tsco-offices-grid--intl .tsco-facility-title{font-size:1rem;line-height:1.65}
.tsco-news-date,.tsco-news-tag{font-size:.875rem}
.tsco-news-tag{color:var(--tsco-navy)}
.tsco-section .tsco-eyebrow,.tsco-why .tsco-why-eyebrow,.tsco-offices-grid .tag{color:var(--tsco-blue)}
.tsco-offices-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}
.tsco-section > .tsco-offices-grid,.tsco-section > .tsco-findus{width:100%;max-width:1280px}
body:not(.home) :is(.tsco-about-hero,.tsco-services-hero,.tsco-locations-hero,.tsco-contact-hero,.tsco-labs-hero,.tsco-news-hero,.tsco-detail-hero) :is(p[lang],.tsco-hero-arabic){color:rgba(255,255,255,.85);font-size:1rem}
@media(max-width:900px){
 .tsco-header .tsco-header__cta,.tsco-header__inner > .wp-block-buttons:has(.tsco-header__cta){display:none!important}
}
@media(max-width:782px){
 .tsco-hero-slider .tsco-hero__content{padding:104px 0 88px}
}
@media(max-width:640px){
 .tsco-hero-slider .tsco-hero__content{width:calc(100% - 64px);padding:100px 0 88px}

 .tsco-hero__content .wp-block-buttons{flex-direction:row;flex-wrap:wrap}
 .tsco-hero__content .wp-block-button{width:auto}
 .tsco-hero__arrow{font-size:2rem}
}
body:not(.home) :is(.tsco-about-hero,.tsco-services-hero,.tsco-locations-hero,.tsco-contact-hero,.tsco-labs-hero,.tsco-news-hero,.tsco-detail-hero){display:flex;flex-direction:column;justify-content:flex-end;padding-top:96px;padding-bottom:64px}
body:not(.home) :is(.tsco-about-hero__inner,.tsco-services-hero__inner,.tsco-locations-hero__inner,.tsco-contact-hero__inner,.tsco-labs-hero__inner,.tsco-news-hero__inner,.tsco-detail-hero__inner){padding-top:0;margin-block:0}
body.page:not(.home) .tsco-header,body.single .tsco-header,body.archive .tsco-header,body.search .tsco-header,body.error404 .tsco-header{position:fixed;min-height:64px;height:64px}
body.page:not(.home) .tsco-header__inner,body.single .tsco-header__inner,body.archive .tsco-header__inner,body.search .tsco-header__inner,body.error404 .tsco-header__inner{min-height:64px;height:64px}
body.admin-bar:not(.home) .tsco-header{top:32px}
.tsco-reference .ti-top{padding-top:0}

/* Short transitions communicate interactivity without moving the layout. */
:is(.wp-block-button__link,.tsco-btn-outline,.tsco-form button,.tsco-contact-form-card button,.tsco-newsletter button){transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease}
.tsco-header .wp-block-navigation-item__content{position:relative;transition:color .2s ease}
.tsco-header .wp-block-navigation-item__content::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--tsco-lime);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.tsco-header .wp-block-navigation-item__content:focus-visible::after{transform:scaleX(1)}
:is(.tsco-card,.tsco-solution-card,.tsco-news-card,.tsco-service-grid article,.tsco-related-grid>p,.tsco-topic-grid>p,.tsco-reference article){transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
:is(.tsco-card__link a,.tsco-link-chevron,.tsco-reference article a) svg{transition:transform .2s ease}
:is(.wp-block-button__link,.tsco-btn-outline,.tsco-form button,.tsco-contact-form-card button):focus-visible{outline:2px solid var(--tsco-teal);outline-offset:4px}
:is(.tsco-card,.tsco-solution-card,.tsco-news-card,.tsco-reference article):focus-within{box-shadow:0 6px 18px rgba(13,50,71,.1)}
@media(hover:hover) and (pointer:fine){
 :is(.wp-block-button__link,.tsco-btn-outline,.tsco-form button,.tsco-contact-form-card button,.tsco-newsletter button):hover{transform:translateY(-2px);box-shadow:0 5px 14px rgba(13,50,71,.18)}
 .tsco-header .wp-block-navigation-item__content:hover::after{transform:scaleX(1)}
 :is(.tsco-card,.tsco-solution-card,.tsco-news-card,.tsco-service-grid article,.tsco-related-grid>p,.tsco-topic-grid>p,.tsco-reference article):hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(13,50,71,.09);border-color:var(--tsco-teal)}
 :is(.tsco-card__link a,.tsco-link-chevron,.tsco-reference article a):hover svg{transform:translateX(3px)}
}
@media(max-width:782px){body.admin-bar:not(.home) .tsco-header{top:46px}}
@media(max-width:640px){
 body:not(.home) :is(.tsco-about-hero,.tsco-services-hero,.tsco-locations-hero,.tsco-contact-hero,.tsco-labs-hero,.tsco-news-hero,.tsco-detail-hero){padding-top:88px;padding-bottom:48px}
 body:not(.home) :is(.tsco-about-hero,.tsco-services-hero,.tsco-locations-hero,.tsco-contact-hero,.tsco-labs-hero) p[lang]{max-width:100%;width:auto}
}
@media(prefers-reduced-motion:reduce){
 .wp-site-blocks *,.wp-site-blocks *::after{transition:none!important}
 :is(.wp-block-button__link,.tsco-btn-outline,.tsco-form button,.tsco-contact-form-card button,.tsco-newsletter button,.tsco-card,.tsco-solution-card,.tsco-news-card,.tsco-service-grid article,.tsco-related-grid>p,.tsco-topic-grid>p,.tsco-reference article):hover{transform:none!important}
 :is(.tsco-card__link a,.tsco-link-chevron,.tsco-reference article a):hover svg{transform:none!important}
}

/* Company profile deck logos (2026-10). Static rows wrap and centre; the
   client grid is 5 columns on desktop (3 and 2 come from the grid overrides above). */
.tsco-logo-grid.tsco-logo-grid--static{gap:14px;margin-top:2rem}
.tsco-clients .tsco-client-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
/* Government logos are wide bilingual lockups with fine text: larger tiles, four per row. */
.tsco-authorities .tsco-logo-grid.tsco-logo-grid--static{max-width:calc(4 * 250px + 3 * 14px);margin-inline:auto}
.tsco-authorities .tsco-logo-grid--static>.wp-block-image{width:250px;height:120px;padding:10px 14px}

/* About (2026-10 deck update) */
.tsco-difference-aside{display:grid;gap:24px}
.tsco-difference-aside>*{margin:0}
.tsco-difference-photo{margin:0}
.tsco-difference-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.tsco-shareholder-grid .tsco-shareholder-logo{margin:0 auto 4px;max-width:100%}
.tsco-shareholder-grid .tsco-shareholder-logo img{display:block;width:100%;height:auto}
.tsco-difference-stats.tsco-capability-stats{grid-template-columns:repeat(3,1fr);max-width:1100px;margin:3rem auto 0}
.tsco-capability-stats article,.tsco-capability-stats article:nth-child(2n){border-right:1px solid var(--tsco-border);border-bottom:0}
.tsco-capability-stats article:last-child{border-right:0}
.tsco-capability-subhead{margin:3.5rem auto 0;text-align:center}
.tsco-ambition-grid.tsco-capability-steps{grid-template-columns:repeat(4,1fr);gap:0;margin-top:1.5rem}
.tsco-capability-steps article{align-items:center}
.tsco-step-number{display:grid;flex:none;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--tsco-navy);color:#fff;font-size:var(--tsco-fs-ui);font-weight:700}
@media(max-width:900px){.tsco-ambition-grid.tsco-capability-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
 .tsco-difference-stats.tsco-capability-stats,.tsco-ambition-grid.tsco-capability-steps{grid-template-columns:1fr}
 .tsco-capability-stats article,.tsco-capability-stats article:nth-child(2n){border-right:0;border-bottom:1px solid var(--tsco-border)}
 .tsco-capability-stats article:last-child{border-bottom:0}
}
/* Grid children in flow-layout groups inherit WP's blockGap margin. */
.tsco-difference-stats>*,.tsco-capability-steps>*{margin-block-start:0}
/* Chairman: same card size as the members, alone and centred on the first row. */
.tsco-lab-board-card--featured .tsco-lab-board-logo img{height:90px;max-width:160px}
.tsco-lab-board-card--featured+.tsco-lab-board-card{grid-column-start:1}
.tsco-contact-item a{color:inherit;text-decoration:none}
.tsco-contact-item a:hover,.tsco-contact-item a:focus-visible{text-decoration:underline}
/* Labs text tiles (brands without a logo file) follow the logo tile size on phones. */
@media(max-width:640px){.tsco-labs .tsco-lab-tiles p{width:150px;height:75px;font-size:var(--tsco-fs-ui)}}

/* Lab Solutions service page (views/services/reference/lab-solutions.php) on the shared type scale. */
.tsco-reference.tsco-reference-lab-solutions h1{font-size:var(--tsco-fs-h1);font-weight:800;line-height:1.15}
.tsco-reference.tsco-reference-lab-solutions h2{font-size:var(--tsco-fs-h2);font-weight:800;line-height:1.18}
.tsco-reference.tsco-reference-lab-solutions h3:not(.tsco-form__heading){font-size:var(--tsco-fs-h3);font-weight:700;line-height:1.3;color:var(--tsco-navy)}
.tsco-reference.tsco-reference-lab-solutions p.uppercase{font-size:.8125rem;font-weight:700;line-height:1.2;letter-spacing:.08em}
.tsco-reference.tsco-reference-lab-solutions :is(section[aria-labelledby="hero-title"],#contact) p.uppercase{color:var(--tsco-lime)}
.tsco-reference.tsco-reference-lab-solutions .tsco-lead{max-width:68ch;font-size:var(--tsco-fs-lead);line-height:1.6}
.tsco-reference.tsco-reference-lab-solutions .tsco-hero-arabic{width:max-content;max-width:100%;color:rgba(255,255,255,.85);font-size:var(--tsco-fs-body)}
.tsco-reference.tsco-reference-lab-solutions .tsco-reference-cta{display:inline-flex;align-items:center;min-height:44px;padding:0 24px;background:var(--tsco-lime);color:var(--tsco-navy);font-size:var(--tsco-fs-body);font-weight:700;text-decoration:none}
.tsco-reference.tsco-reference-lab-solutions .tsco-reference-cta:hover,.tsco-reference.tsco-reference-lab-solutions .tsco-reference-cta:focus-visible{background:#fff}
.tsco-reference.tsco-reference-lab-solutions #about .border-l-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.tsco-reference.tsco-reference-lab-solutions .tsco-stat-number{font-size:var(--tsco-fs-stat);font-weight:800;line-height:1.1}
.tsco-reference.tsco-reference-lab-solutions .tsco-svc-tile{box-sizing:border-box;padding:6px 10px;font-size:var(--tsco-fs-ui)}
.tsco-reference.tsco-reference-lab-solutions .tsco-svc-tile img{width:100%;height:100%;object-fit:contain;display:block}

/* Phones: every tappable control is at least 44px tall (WCAG 2.5.8 / Apple HIG). */
@media(max-width:640px){
 :is(.tsco-header,.tsco-footer) .custom-logo-link,
 .tsco-card__link a,.tsco-link-chevron,.tsco-why-visual a,
 :is(.tsco-contact-item,.tsco-lab-contact-info) a,
 .tsco-footer a:not(.wp-block-social-link-anchor){display:inline-flex;align-items:center;min-height:44px}
 .tsco-header .wp-block-navigation__responsive-container-open,
 .tsco-footer .wp-block-social-link-anchor,
 .tsco-hero__arrow{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
 .wpcf7 :is(button,input[type=submit]),.tsco-form :is(button,input[type=submit]){min-height:44px}
 /* Slider dots keep their 11px look; the tap area around them grows to 44px. */
 .tsco-hero__dot{position:relative}
 .tsco-hero__dot::after{content:'';position:absolute;inset:-16px}
}

/* Client grids: a lone tile in the last row sits in the middle, not on the left. */
.tsco-clients .tsco-client-grid>:last-child:nth-child(5n+1){grid-column:3}
@media(max-width:900px){
 .tsco-clients .tsco-client-grid>:last-child:nth-child(5n+1){grid-column:auto}
 .tsco-clients .tsco-client-grid>:last-child:nth-child(3n+1){grid-column:2}
}
@media(max-width:640px){
 .tsco-clients .tsco-client-grid>:last-child:nth-child(3n+1),.tsco-clients .tsco-client-grid>:last-child:nth-child(5n+1){grid-column:auto}
 .tsco-clients .tsco-client-grid>:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 6px)}
}

@media(max-width:640px){
 .tsco-authorities .tsco-logo-grid--static>.wp-block-image{width:calc(50% - 7px);height:88px;padding:6px 8px}
 /* Labs partnerships: keep each category's three tiles on one row. */
 .tsco-labs .tsco-lab-partnership .tsco-lab-tiles{flex-wrap:nowrap;gap:8px}
 .tsco-labs .tsco-lab-partnership .tsco-lab-tiles>*{flex:1 1 0;width:auto;min-width:0;height:auto;aspect-ratio:2/1;padding:6px}
}

/* Office lists follow the client's branches (HQ Dammam; Riyadh, Jeddah, Jubail, Bahrain, Oman). */
.tsco-offices-grid.tsco-offices-grid--intl{max-width:calc(2 * 260px + 14px);margin-inline:auto}
.tsco-reference .tsco-borders-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:620px;margin-inline:auto}
@media(max-width:640px){.tsco-reference .tsco-borders-grid{grid-template-columns:1fr}}
/* Client photo (deck slide 7) in "Building Saudi capabilities". */
.tsco-capability-photo{max-width:300px;margin:2.25rem auto 0}
.tsco-capability-photo img{display:block;width:100%;height:auto}

/* Forms: the required marker sits on the same line as its label text.
   Labels are grids, so text, marker and control would otherwise stack as three rows. */
.wpcf7-form label:has(> .req){grid-template-columns:auto 1fr;column-gap:4px;align-items:baseline}
.wpcf7-form label:has(> .req)>.req{grid-column:2;justify-self:start}
.wpcf7-form label:has(> .req)>:not(.req),
.wpcf7-form label:has(> .req)>.wpcf7-form-control-wrap>*{grid-column:1/-1}
.wpcf7-form .req{color:#c0392b;font-weight:700}
@media(max-width:640px){.tsco-contact-form-card{padding:24px 18px}}

/* Inner-page banners: one responsive gutter for all of them (each banner used to carry its own copy, and
   Services had none, so it kept its 100px desktop indent on phones). */
@media(max-width:900px){body:not(.home) :is(#top.tsco-about-hero,#top.tsco-services-hero,#top.tsco-locations-hero,#top.tsco-labs-hero,#top.tsco-news-hero,#top.tsco-detail-hero){padding-left:64px;padding-right:28px}}
@media(max-width:640px){body:not(.home) :is(#top.tsco-about-hero,#top.tsco-services-hero,#top.tsco-locations-hero,#top.tsco-labs-hero,#top.tsco-news-hero,#top.tsco-detail-hero){padding-left:24px;padding-right:24px}
 body:not(.home) #top.tsco-contact-hero .tsco-contact-hero__inner{padding-right:24px}}

/* Footer below 782px (where core stacks columns): clearer separation between groups than between links,
   and two columns on tablets instead of one long stack. */
@media(max-width:781px){.tsco-footer .wp-block-columns{row-gap:40px!important;column-gap:2rem!important}}
@media(min-width:600px) and (max-width:781px){.tsco-footer .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:calc(50% - 1rem)!important;flex-grow:0}}
