/*
Theme Name: STUGERMAN
Theme URI: https://stugerman.com/
Author: STUGERMAN
Description: A dark, editorial advisory website with native WordPress block content, accessible navigation and the supplied Revision 03 brand identity. Pair with the optional STUGERMAN Site Tools plugin to import the reviewed starter copy and enable enquiries.
Version: 1.4.1
Requires at least: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: stugerman
Tags: custom-logo, custom-menu, featured-images, editor-style, block-patterns, wide-blocks
*/

:root {
  --st-bg: #111111;
  --st-panel: #191919;
  --st-panel-2: #202020;
  --st-ink: #ffffff;
  --st-muted: #bdbdbd;
  --st-blue: #0759a5;
  --st-accent: #ffffff;
  --st-line: #353535;
  --st-body: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --st-display: "Arial Narrow", "Liberation Sans Narrow", "Helvetica Neue", Arial, sans-serif;
  --st-width: 1280px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--st-bg); color: var(--st-ink); font: 17px/1.7 var(--st-body); -webkit-font-smoothing: antialiased; }
body.st-nav-open { overflow: hidden; }
::selection { background: var(--st-blue); color: white; }
a { color: inherit; text-underline-offset: 5px; }
a:hover { color: var(--st-accent); }
a, button, input, textarea, select { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--st-accent); outline-offset: 5px; }
button, input, select, textarea { font: inherit; }
button, a { touch-action: manipulation; }
img { max-width: 100%; height: auto; }
figure { margin: 0; }
h1, h2, h3, h4 { font-family: var(--st-display); font-stretch: condensed; font-weight: 600; letter-spacing: -.025em; line-height: 1.07; margin: 0 0 24px; text-wrap: balance; }
h1 { font-size: clamp(3.15rem, 6.5vw, 6.25rem); }
.st-eyebrow::before { content: ""; display: inline-block; width: 22px; height: 2px; margin: 0 12px 3px 0; background: var(--st-blue); }
.st-cta .st-eyebrow::before { background: var(--st-ink); }
h2 { font-size: clamp(2.3rem, 4vw, 3.65rem); }
h3 { font-size: 1.8rem; }
p { margin: 0 0 22px; }
p:last-child { margin-bottom: 0; }
.st-accent { color: var(--st-accent); }
.st-wrap { width: min(var(--st-width), calc(100% - 112px)); margin-inline: auto; }
.st-section { padding: 100px 0; }
.st-eyebrow { color: var(--st-accent); font-size: 11px; letter-spacing: .17em; font-weight: 700; line-height: 1.6; margin-bottom: 25px; text-transform: uppercase; }
.st-lead { color: var(--st-muted); font-size: 19px; line-height: 1.75; max-width: 660px; }
.st-large-copy { font-size: 20px; line-height: 1.65; }
.st-aside-note { padding-left: 20px; border-left: 2px solid var(--st-blue); color: var(--st-muted); font-size: 14px; margin-top: 28px; }
.st-index { color: var(--st-accent); font-size: 12px; font-weight: 700; letter-spacing: .09em; }
.st-two-col { display: grid; grid-template-columns: 1fr 1.16fr; gap: 96px; align-items: start; }
.st-section-copy > p:not(.st-large-copy):not(.st-text-link) { color: var(--st-muted); }
.st-section-heading h2 { max-width: 520px; }
.st-section-top { display: grid; grid-template-columns: 1.25fr 1fr; align-items: end; gap: 96px; margin-bottom: 36px; }
.st-section-top h2 { margin: 0; }
.st-section-top p { color: var(--st-muted); max-width: 440px; margin: 0 0 3px; }
.st-three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 44px; }
.st-four-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 56px; margin-top: 40px; }
.st-value-card { border-top: 1px solid var(--st-line); padding-top: 26px; }
.st-value-card h3 { font-size: 28px; line-height: 1.13; margin-bottom: 17px; }
.st-value-card > p:not(.st-index) { color: var(--st-muted); font-size: 15px; }
.st-value-card .st-index { margin-bottom: 40px; }
.st-text-link { margin-top: 25px; font-size: 14px; font-weight: 700; }
.st-text-link a { text-decoration: none; border-bottom: 1px solid var(--st-line); padding-bottom: 9px; display: inline-block; }
.st-text-link span[aria-hidden] { display: inline-block; margin-left: 18px; color: var(--st-accent); }
.st-soft-panel { background: var(--st-panel); border-block: 1px solid var(--st-line); }
.screen-reader-text, .st-skip-link:not(:focus) { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; white-space: nowrap; }
.st-skip-link:focus { position: fixed; z-index: 9999; left: 20px; top: 20px; padding: 12px 20px; color: white; background: var(--st-blue); }

/* Header and native WordPress menus. */
.st-site-header { position: relative; z-index: 50; border-bottom: 1px solid var(--st-line); background: var(--st-bg); }
.st-header-inner { min-height: 98px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.st-brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; color: var(--st-ink); line-height: 1; }
.st-logo-img { display: block; width: 236px; height: auto; }
.st-brand .custom-logo-link { display: inline-flex; align-items: center; }
/* Whitespace in the header/footer is additional to any padding in the asset canvas. */
.st-brand:hover { color: var(--st-ink); }
.st-brand .custom-logo { display: block; max-width: 236px; max-height: 54px; width: auto; height: auto; object-fit: contain; }
.st-primary-nav { margin-left: auto; }
.st-primary-nav ul { display: flex; align-items: center; gap: 32px; margin: 0; padding: 0; list-style: none; }
.st-primary-nav a { display: block; text-decoration: none; font-size: 13px; color: var(--st-muted); font-weight: 400; line-height: 1.4; padding: 10px 0; }
.st-primary-nav a:hover, .st-primary-nav a[aria-current="page"], .st-primary-nav .current-menu-item > a, .st-primary-nav .current-menu-ancestor > a { color: var(--st-ink); }
.st-primary-nav .st-nav-cta a { background: var(--st-blue); border: 1px solid var(--st-blue); padding: 13px 20px; color: var(--st-ink); margin-left: 4px; }
.st-primary-nav .st-nav-cta a::after { content: '\2197'; color: inherit; margin-left: 20px; }
.st-primary-nav .st-nav-cta a:hover { background: var(--st-ink); color: var(--st-blue); border-color: var(--st-ink); }
.st-menu-toggle { display: none; background: transparent; color: var(--st-ink); border: 1px solid var(--st-line); min-height: 44px; padding: 8px 13px; cursor: pointer; gap: 10px; align-items: center; font-size: 13px; }
.st-menu-lines { width: 18px; height: 10px; display: inline-block; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }

/* Native block buttons: no builder or third-party UI dependency. */
.st-actions.wp-block-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-top: 34px; }
.st-actions .wp-block-button { margin: 0; }
.st-actions .wp-block-button__link, .st-submit { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 52px; padding: 15px 22px; font-family: var(--st-body); font-size: 13px; line-height: 1.5; font-weight: 700; border: 1px solid transparent; border-radius: 0; text-decoration: none; box-shadow: none; cursor: pointer; transition: background .2s, border-color .2s; }
.st-actions .st-btn-primary .wp-block-button__link, .st-submit { background: var(--st-blue); color: white; }
.st-actions .st-btn-primary .wp-block-button__link:hover, .st-submit:hover { background: var(--st-ink); color: var(--st-blue); border-color: var(--st-ink); }
.st-actions .st-btn-text .wp-block-button__link { background: transparent; color: var(--st-ink); padding-inline: 0; border-bottom: 1px solid var(--st-line); }
.st-actions .st-btn-text .wp-block-button__link:hover { border-bottom-color: var(--st-accent); color: var(--st-accent); }

/* Homepage identity: original reversed SVG from supplied Brand Identity Revision 03.
   The asset includes generous clear space. No path changes, filters or transformations. */
.st-home-hero { padding: 88px 0 90px; overflow: hidden; position: relative; }
.st-hero-grid { display: grid; grid-template-columns: 1.23fr 1fr; align-items: center; gap: 70px; }
.st-hero-copy { position: relative; z-index: 2; }
.st-home-hero h1 { font-size: clamp(3.5rem, 7.15vw, 7.2rem); margin-bottom: 30px; font-weight: 600; letter-spacing: -.03em; }
.st-home-hero h1 .st-accent { color: var(--st-ink); font-weight: 400; }
.st-home-hero .st-lead { font-size: 17px; max-width: 575px; }
.st-architecture { position: relative; width: 100%; max-width: 455px; aspect-ratio: 1; height: auto; min-width: 0; justify-self: end; isolation: isolate; }
.st-architecture::before { content: ''; position: absolute; inset: 0; background: var(--st-blue) url('assets/brand/stugerman-icon-reverse-square.svg') center / contain no-repeat; }
/* A normal WordPress Featured Image becomes the optional hero image. */
.st-architecture.st-hero-image { max-width: 560px; aspect-ratio: 4 / 3; overflow: hidden; background: var(--st-panel); }
.st-architecture.st-hero-image::before { display: none; }
.st-hero-image-el { display: block; width: 100%; height: 100%; object-fit: cover; }
.st-page-hero { position: relative; overflow: hidden; }
.st-page-hero-media { position: absolute; inset: 0 0 0 auto; width: min(43vw, 620px); height: 100%; z-index: 0; overflow: hidden; }
.st-page-hero-media::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--st-bg) 0%, transparent 38%); pointer-events: none; }
.st-page-hero-media .st-hero-image-el { object-position: center; }
.st-page-hero > .st-wrap { position: relative; z-index: 2; }
.st-page-hero.st-has-page-hero-media h1, .st-page-hero.st-has-page-hero-media .st-lead { max-width: 58%; }
/* Keep earlier imported homepage blocks compatible with this theme-only update. */
.st-art-grid, .st-plane, .st-art-axis, .st-art-dot { display: none; }
.st-art-caption { position: absolute; left: 0; right: 0; bottom: -31px; color: var(--st-muted); font-size: 9px; letter-spacing: .13em; white-space: nowrap; text-align: right; }
.st-ribbon { border-block: 1px solid var(--st-line); padding: 0; }
.st-discipline-bar { display: grid; grid-template-columns: repeat(5, 1fr); }
.st-discipline-bar p { margin: 0; padding: 22px 16px; border-right: 1px solid var(--st-line); text-align: center; line-height: 1.5; }
.st-discipline-bar p:first-child { border-left: 1px solid var(--st-line); }
.st-discipline-bar a { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; color: var(--st-muted); }
.st-discipline-bar a:hover { color: var(--st-accent); }
.st-about-home { padding-block: 112px; }
.st-expertise-home { background: var(--st-panel); border-block: 1px solid var(--st-line); }
.st-expertise-list { border-top: 1px solid var(--st-line); }
.st-expertise-row { display: grid; grid-template-columns: 35px 1fr 1fr 36px; align-items: center; gap: 27px; padding: 32px 0; border-bottom: 1px solid var(--st-line); }
.st-expertise-row h3 { font-size: 29px; margin: 0; line-height: 1.13; max-width: 340px; }
.st-expertise-row h3 a { text-decoration: none; }
.st-expertise-row p { margin: 0; color: var(--st-muted); font-size: 14px; line-height: 1.65; }
.st-expertise-row p.st-index { color: var(--st-accent); font-size: 11px; }
.st-expertise-row .st-row-arrow a { display: flex; align-items: center; justify-content: center; width: 42px; height: 44px; border: 1px solid var(--st-line); color: var(--st-accent); text-decoration: none; font-size: 23px; }
.st-expertise-row:hover .st-row-arrow a { border-color: var(--st-accent); }
.st-values-home .st-text-link { margin-top: 44px; }
.st-cta { background: var(--st-blue); padding-block: 77px; }
.st-cta-inner { display: flex; justify-content: space-between; gap: 64px; align-items: center; }
.st-cta-copy { max-width: 755px; }
.st-cta .st-eyebrow { color: #ffffff; }
.st-cta h2 { margin-bottom: 17px; font-size: clamp(2.45rem, 3.85vw, 3.55rem); }
.st-cta p:not(.st-eyebrow) { max-width: 650px; color: #ffffff; font-size: 16px; }
.st-cta .st-actions { flex-shrink: 0; margin: 0; }
.st-cta .st-btn-primary .wp-block-button__link { color: #0759a5; background: var(--st-ink); border-color: var(--st-ink); }
.st-cta .st-btn-primary .wp-block-button__link:hover { color: white; background: var(--st-bg); border-color: white; }

/* Interior pages. */
.st-page-hero { padding-block: 86px 84px; border-bottom: 1px solid var(--st-line); background: var(--st-bg); }
.st-page-hero h1 { max-width: 960px; }
.st-page-hero .st-lead { max-width: 750px; }
.st-service-overview { border-bottom: 1px solid var(--st-line); }
.st-service-overview:nth-of-type(odd) { background: var(--st-panel); }
.st-expert-detail { padding-top: 48px; color: var(--st-muted); }
.st-expert-detail > p:first-child { color: var(--st-ink); }
.st-question { border-top: 1px solid var(--st-line); padding: 23px 0; margin: 0; font-size: 21px; line-height: 1.5; }
.st-question:last-child { border-bottom: 1px solid var(--st-line); }
.st-outcome { background: var(--st-panel); border-top: 1px solid var(--st-line); }
.st-scope-section { padding-block: 28px; border-top: 1px solid var(--st-line); }
.st-scope-note { font-size: 13px; color: var(--st-muted); }
.st-related { padding-block: 45px; }
.st-related-links { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px 50px; }
.st-related-links .st-text-link { margin-top: 10px; }
.st-process { padding-block: 35px 90px; }
.st-process-row { display: grid; grid-template-columns: 170px 1fr; gap: 60px; padding: 51px 0; border-bottom: 1px solid var(--st-line); }
.st-step-number { color: var(--st-accent); font-size: 72px; font-family: var(--st-display); font-weight: 400; line-height: 1; margin: 3px 0 0; }
.st-step-copy { max-width: 870px; }
.st-step-copy h2 { font-size: 37px; margin-bottom: 20px; }
.st-step-copy p { color: var(--st-muted); }
.st-step-result { font-size: 14px; padding: 17px 20px; background: var(--st-panel); border-left: 2px solid var(--st-blue); margin-top: 24px; }
.st-step-result strong { color: var(--st-ink); }

/* Enquiry form. The companion plugin supplies server-side validation. */
.st-contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; }
.st-contact-intro > p:not(.st-eyebrow) { color: var(--st-muted); }
.st-contact-intro h3 { margin-top: 36px; font-size: 27px; }
.st-enquiry-form { border: 1px solid var(--st-line); background: var(--st-panel); padding: 34px; }
.st-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 21px; }
.st-field { margin-bottom: 22px; }
.st-form-grid .st-field { margin-bottom: 0; }
.st-form-grid { margin-bottom: 22px; }
.st-field label { display: block; font-size: 13px; margin-bottom: 8px; font-weight: 700; }
.st-field label span { color: var(--st-muted); font-size: 12px; font-weight: 400; }
.st-field input, .st-field select, .st-field textarea { display: block; width: 100%; border: 1px solid #555555; border-radius: 0; padding: 12px; color: var(--st-ink); background: var(--st-bg); font-size: 15px; line-height: 1.5; min-height: 48px; }
.st-field textarea { min-height: 145px; resize: vertical; }
.st-field select option { background: var(--st-bg); color: var(--st-ink); }
.st-field input[aria-invalid="true"], .st-field textarea[aria-invalid="true"] { border-color: #ffb4ab; }
.st-form-notice, .st-form-preview-note { font-size: 12px; color: var(--st-muted); line-height: 1.7; }
.st-form-preview-note { border-left: 2px solid var(--st-accent); padding-left: 14px; margin-bottom: 24px; }
.st-form-status { padding: 18px 20px; background: var(--st-panel-2); border-left: 3px solid var(--st-accent); margin-bottom: 26px; font-size: 15px; }
.st-form-errors { border-left-color: #ffb4ab; }
.st-form-errors ul { margin: 10px 0 0; padding-left: 22px; }
.st-submit { margin-top: 10px; }
.st-honeypot { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.st-form-unavailable { border: 1px solid var(--st-line); background: var(--st-panel); padding: 30px; }
.st-form-unavailable h2 { font-size: 32px; }
.st-contact-details { margin-top: 30px; border-top: 1px solid var(--st-line); padding-top: 24px; }

/* Footer, blog fallback, and ordinary pages. */
.st-site-footer { padding: 63px 0 25px; background: var(--st-bg); border-top: 1px solid var(--st-line); }
.st-footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 64px; padding-bottom: 55px; }
.st-footer-brand { display: inline-flex; margin-bottom: 25px; }
.st-footer-brand .st-logo-img { width: 236px; }
.st-footer-summary { font-size: 13px; line-height: 1.7; color: var(--st-muted); max-width: 290px; }
.st-footer-label { font-size: 10px; color: var(--st-muted); letter-spacing: .15em; margin-bottom: 19px; text-transform: uppercase; }
.st-footer-links { list-style: none; padding: 0; margin: 0; }
.st-footer-links li { font-size: 12px; line-height: 1.7; margin-bottom: 10px; }
.st-footer-links a { text-decoration: none; }
.st-footer-bottom { display: flex; justify-content: space-between; align-items: start; gap: 24px; padding-top: 24px; border-top: 1px solid var(--st-line); font-size: 10px; color: var(--st-muted); }
.st-footer-bottom p { margin: 0; }
.st-footer-legal { display: flex; gap: 22px; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.st-legal-text { max-width: 670px; font-size: 11px; margin-top: 18px; color: var(--st-muted); }
.st-default-page { padding: 75px 0 100px; }
.st-prose { max-width: 850px; }
.st-prose p, .st-prose li { color: var(--st-muted); }
.st-prose h2, .st-prose h3 { margin-top: 46px; }
.st-prose a { color: var(--st-accent); }
.st-post-list { display: grid; gap: 40px; }
.st-post-list article { border-bottom: 1px solid var(--st-line); padding-bottom: 30px; }
.st-post-list h2 { font-size: 36px; }
.st-post-list h2 a { text-decoration: none; }
.st-breadcrumb { font-size: 12px; color: var(--st-muted); margin-bottom: 25px; }
.st-preview-badge { position: fixed; bottom: 16px; left: 16px; z-index: 60; padding: 5px 10px; border: 1px solid #555555; background: #111111; color: #dddddd; font-size: 10px; line-height: 1.7; pointer-events: none; }

@media (min-width: 1600px) { .st-wrap { width: min(var(--st-width), calc(100% - 160px)); } }
@media (max-width: 1100px) {
 .st-wrap { width: calc(100% - 72px); }
 .st-two-col, .st-section-top { gap: 54px; }
 .st-hero-grid { gap: 26px; }
 .st-home-hero h1 { font-size: clamp(3.5rem, 7.2vw, 6.3rem); }
 .st-architecture { height: auto; max-width: 385px; }
 .st-primary-nav ul { gap: 24px; }
 .st-cta-inner { gap: 36px; }
 .st-cta-copy { max-width: 65%; }
 .st-contact-grid { gap: 45px; }
}
@media (max-width: 1000px) {
 .st-wrap { width: calc(100% - 48px); }
 .st-header-inner { min-height: 80px; flex-wrap: wrap; gap: 0; padding-block: 16px; }
 .st-js .st-header-inner { padding-block: 0; }
 .st-logo-img { width: 220px; }
 .st-primary-nav { width: 100%; margin: 0; padding: 15px 0 24px; }
 .st-primary-nav ul { justify-content: space-between; gap: 12px; flex-wrap: wrap; }
 .st-primary-nav .st-nav-cta a { padding: 10px 14px; margin: 0; }
 .st-js .st-menu-toggle { display: inline-flex; }
 .st-js .st-primary-nav { display: none; }
 .st-js .st-primary-nav.is-open { display: block; position: absolute; top: 100%; left: 0; width: 100%; padding: 16px 24px 32px; background: var(--st-bg); border-bottom: 1px solid var(--st-line); max-height: calc(100dvh - 80px); overflow-y: auto; }
 .st-js .st-primary-nav ul { display: block; }
 .st-js .st-primary-nav a { padding: 18px 0; font-size: 18px; }
 .st-js .st-primary-nav .st-nav-cta a { margin-top: 12px; padding: 15px 20px; display: inline-block; font-size: 15px; }
 .st-section { padding-block: 68px; }
 .st-home-hero { padding-block: 68px 55px; }
 .st-architecture.st-hero-image { max-width: 360px; }
 .st-page-hero-media { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; margin-top: 34px; }
 .st-page-hero-media::before { display: none; }
 .st-page-hero.st-has-page-hero-media h1, .st-page-hero.st-has-page-hero-media .st-lead { max-width: none; }
 .st-hero-grid { grid-template-columns: 1.3fr .8fr; gap: 20px; }
 .st-home-hero h1 { font-size: clamp(3.4rem, 7.55vw, 5.5rem); }
 .st-home-hero .st-lead { font-size: 15px; }
 .st-architecture { height: auto; }
 .st-art-caption { display: none; }
 .st-ribbon { padding: 0; }
 .st-discipline-bar p { padding: 20px 6px; }
 .st-discipline-bar a { font-size: 9px; letter-spacing: .08em; }
 .st-two-col { grid-template-columns: 1fr; gap: 28px; }
 .st-section-top { grid-template-columns: 1fr; gap: 18px; }
 .st-section-top p { max-width: 580px; }
 .st-section-heading h2 { max-width: none; }
 .st-large-copy { font-size: 19px; }
 .st-expertise-row { grid-template-columns: 25px 1fr 36px; gap: 20px; padding-block: 26px; }
 .st-expertise-row > p:not(.st-index):not(.st-row-arrow) { grid-column: 2; grid-row: 2; }
 .st-expertise-row .st-row-arrow { grid-column: 3; grid-row: 1 / span 2; }
 .st-expertise-row h3 { font-size: 28px; max-width: none; }
 .st-three-col { gap: 24px; }
 .st-value-card h3 { font-size: 25px; }
 .st-value-card > p:not(.st-index) { font-size: 14px; }
 .st-cta-inner { display: block; }
 .st-cta-copy { max-width: 100%; }
 .st-cta .st-actions { margin-top: 28px; }
 .st-expert-detail { padding-top: 0; }
 .st-contact-grid { grid-template-columns: 1fr; gap: 40px; }
 .st-contact-intro { max-width: 610px; }
 .st-process-row { grid-template-columns: 90px 1fr; gap: 30px; }
 .st-footer-top { grid-template-columns: 1fr 1fr; gap: 35px 24px; }
 .st-footer-top > div:first-child { grid-column: 1 / -1; }
 .st-footer-summary { max-width: 240px; }
 .st-related { padding-block: 40px; }
 .st-scope-section { padding-block: 24px; }
}
@media (max-width: 580px) {
 body { font-size: 16px; }
 .st-wrap { width: calc(100% - 40px); }
 .st-header-inner { min-height: 84px; gap: 12px; }
 .st-menu-toggle { padding: 8px 10px; }
 .st-js .st-primary-nav.is-open { max-height: calc(100dvh - 84px); }
 .st-logo-img { width: 180px; }
 .st-brand .custom-logo { max-width: 180px; max-height: 44px; }
 .st-section { padding-block: 54px; }
 .st-eyebrow { font-size: 10px; letter-spacing: .14em; margin-bottom: 20px; }
 h1 { font-size: 3.15rem; }
 h2 { font-size: 2.5rem; }
 h3 { font-size: 1.65rem; }
 .st-home-hero { padding-block: 53px 34px; }
 .st-hero-grid { display: flex; flex-direction: column; gap: 18px; align-items: stretch; }
 .st-home-hero h1 { font-size: clamp(3.4rem, 13.5vw, 4.8rem); margin-bottom: 24px; }
 .st-home-hero .st-lead { font-size: 16px; line-height: 1.7; }
 .st-actions.wp-block-buttons { gap: 18px; margin-top: 28px; }
 .st-actions .wp-block-button__link { font-size: 12px; padding: 14px 17px; min-height: 49px; gap: 15px; }
 .st-actions .st-btn-text .wp-block-button__link { padding-inline: 0; }
 .st-architecture { height: auto; width: 100%; max-width: 385px; margin: 18px auto 28px; }
 .st-plane { width: 60%; height: 60%; }
 .st-ribbon { padding: 0; }
 .st-discipline-bar { grid-template-columns: repeat(3, 1fr); }
 .st-discipline-bar p { padding: 13px 5px; border: 0; }
 .st-discipline-bar p:first-child { border: 0; }
 .st-discipline-bar p:nth-child(4), .st-discipline-bar p:nth-child(5) { border-top: 1px solid var(--st-line); }
 .st-discipline-bar p:nth-child(4) { grid-column: 1 / span 2; text-align: right; padding-right: 22px; }
 .st-discipline-bar p:nth-child(5) { text-align: left; padding-left: 3px; }
 .st-discipline-bar a { font-size: 9px; letter-spacing: .09em; }
 .st-large-copy { font-size: 18px; }
 .st-section-top { margin-bottom: 29px; }
 .st-expertise-row { grid-template-columns: 21px 1fr 34px; gap: 10px 14px; }
 .st-expertise-row h3 { font-size: 26px; }
 .st-expertise-row > p:not(.st-index):not(.st-row-arrow) { font-size: 13px; }
 .st-expertise-row .st-row-arrow a { width: 34px; }
 .st-three-col, .st-four-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 32px; }
 .st-value-card { padding-top: 20px; }
 .st-value-card .st-index { margin-bottom: 19px; }
 .st-value-card h3 { font-size: 29px; }
 .st-value-card > p:not(.st-index) { font-size: 15px; }
 .st-cta { padding-block: 49px; }
 .st-cta h2 { font-size: 2.55rem; }
 .st-cta p:not(.st-eyebrow) { font-size: 15px; }
 .st-page-hero { padding-block: 55px 49px; }
 .st-page-hero h1 { font-size: clamp(2.85rem, 11.6vw, 4rem); }
 .st-page-hero .st-lead { font-size: 17px; }
 .st-question { font-size: 19px; padding-block: 20px; }
 .st-process { padding-top: 5px; }
 .st-process-row { grid-template-columns: 42px 1fr; gap: 18px; padding-block: 36px; }
 .st-step-number { font-size: 43px; }
 .st-step-copy h2 { font-size: 31px; }
 .st-step-copy p { font-size: 15px; }
 .st-step-copy .st-step-result { font-size: 13px; }
 .st-related-links { grid-template-columns: 1fr; gap: 5px; }
 .st-related { padding-block: 32px; }
 .st-scope-section { padding-block: 22px; }
 .st-form-grid { grid-template-columns: 1fr; }
 .st-enquiry-form { padding: 23px; }
 .st-field input, .st-field select, .st-field textarea { font-size: 16px; }
 .st-footer-top { grid-template-columns: 1fr 1fr; gap: 35px 24px; padding-bottom: 36px; }
 .st-footer-top > div:first-child { grid-column: 1 / -1; }
 .st-footer-summary { max-width: 300px; }
 .st-site-footer { padding-block: 45px 24px; }
 .st-footer-bottom { display: block; }
 .st-footer-legal { margin-top: 15px; }
 .st-preview-badge { bottom: 8px; left: 8px; font-size: 9px; padding: 3px 7px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
 body { background: white; color: black; font-size: 11pt; }
 h1,h2,h3,p,a { color: black !important; }
 .st-site-header, .st-site-footer, .st-architecture, .st-actions, .st-preview-badge { display: none !important; }
 .st-section { padding-block: 25px; background: white !important; }
 .st-wrap { width: 100%; }
 .st-two-col, .st-three-col, .st-four-grid, .st-contact-grid { display: block; }
 .st-value-card { margin-top: 25px; }
}

/* Industry sections, business profile and legal notices. */
.st-industry-focus { border-bottom: 1px solid var(--st-line); background: var(--st-bg); }
.st-industry-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; margin-top: 54px; }
.st-industry-card { padding-top: 24px; border-top: 2px solid var(--st-blue); min-width: 0; }
.st-industry-card h3 { font-size: 25px; line-height: 1.2; margin: 0 0 14px; }
.st-industry-card .st-index { margin-bottom: 24px; }
.st-industry-card > p:not(.st-index) { color: var(--st-muted); font-size: 14px; line-height: 1.7; }
.st-business-profile h2 { font-size: clamp(2.7rem,4.8vw,4.4rem); }
.st-industry-brief { border-bottom: 1px solid var(--st-line); }
.st-footer-legal { align-items: center; gap: 12px 24px; font-size: 13px; }
.st-footer-legal a { display: inline-flex; align-items: center; min-height: 32px; }
.st-footer-bottom { align-items: center; }
.st-legal-draft { border-left: 3px solid var(--st-blue); background: var(--st-panel); padding: 22px 26px; margin-bottom: 36px; }
.st-legal-draft .st-eyebrow { margin-bottom: 12px; font-size: 11px; }
.st-legal-draft p { font-size: 14px; }
.st-legal-subtitle { font-size: 15px; }
.st-legal-address { font-size: 20px; line-height: 1.7; }
.st-legal-contact { overflow-wrap: anywhere; }
.st-prose .st-legal-address strong, .st-prose p strong { color: var(--st-ink); }
@media (max-width: 980px) { .st-industry-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px; } }
@media (max-width: 520px) { .st-industry-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 36px; } .st-industry-card .st-index { margin-bottom: 16px; } .st-legal-draft { padding: 20px; } }
/* Keep long legal-page titles within narrow mobile text columns. */
.st-default-page h1 { font-size: clamp(2.5rem,6vw,5.3rem); overflow-wrap: anywhere; }
.st-prose h2, .st-prose h3 { overflow-wrap: anywhere; hyphens: auto; }

/* Service pages and clear audience routes. */
.st-service-bar { grid-template-columns:repeat(3,minmax(0,1fr)); }
.st-home-hero h1 { font-size:clamp(3.5rem,6.3vw,6.6rem); }
.st-home-hero .st-lead { font-size:18px; line-height:1.65; }
.st-home-hero .st-lead + .st-lead { font-size:16px; }
.st-primary-nav ul { gap:25px; }
.st-primary-nav a { font-size:13px; }
.st-section-copy p { max-width:720px; }
.st-page-hero .st-lead + .st-lead { font-size:17px; margin-top:18px; }
@media(max-width:1000px){.st-primary-nav ul{display:block}.st-primary-nav a{font-size:18px}.st-page-hero h1{font-size:clamp(3.1rem,7.2vw,5rem)}}
@media(max-width:640px){.st-service-bar{grid-template-columns:1fr}.st-service-bar p{padding:13px 8px;border-top:1px solid var(--st-line)}.st-service-bar p:first-child{border-top:0}.st-service-bar a{font-size:11px}.st-home-hero h1{font-size:clamp(3rem,12vw,4.35rem)}.st-home-hero .st-lead{font-size:17px}.st-home-hero .st-actions{gap:17px}.st-primary-nav a{font-size:18px}}

/* Neutral homepage with equal supplier and purchasing routes. */
.st-audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:48px; }
.st-audience-card { min-width:0; display:flex; flex-direction:column; padding:32px; border:1px solid var(--st-line); border-top:3px solid var(--st-blue); background:var(--st-panel); }
.st-audience-card h3 { font-size:clamp(1.75rem,2.7vw,2.5rem); line-height:1.15; }
.st-audience-card > p:not(.st-eyebrow):not(.st-text-link) { color:var(--st-muted); font-size:16px; }
.st-audience-card .st-text-link { margin-top:auto; padding-top:20px; }
@media(max-width:700px) { .st-audience-grid { grid-template-columns:1fr; gap:24px; margin-top:32px; } .st-audience-card { padding:26px; } }
@media print { .st-audience-grid { display:block; } .st-audience-card { margin-bottom:20px; } }
