/* ASG-F1: shared role and spacing tokens, including breakpoint substitutions. */
:root{
 --related-image-width:320px;--type-h1:56px;--type-h2:40px;--type-h3:30px;--type-card:20px;--type-widget:26px;--type-footer-title:20px;--type-kicker:18px;--type-body:18px;--type-lead:20px;--type-small:16px;--type-sidebar:17px;--type-table:15px;--type-nav:15px;--type-topbar:13px;--type-header-cta:14px;--type-button:18px;--type-link:18px;--type-footer:14px;--type-copyright:12px;
 --space-1:8px;--space-2:12px;--space-3:16px;--space-4:20px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:56px;--space-9:64px;
 --header-top:40px;--header-main:76px;--logo-width:195px;--wrap-width:90%;--text-measure:none;--sidebar-width:340px;--column-gap:56px;--title-pad:40px;--breadcrumb-gap:20px;--hero-height:460px;--content-top:56px;--content-bottom:64px;--section-pad:56px;--h2-top:56px;--heading-gap:20px;--block-gap:24px;--list-indent:24px;--card-pad:24px;--grid-gap:32px;--image-title-gap:16px;--title-text-gap:12px;--archive-gap:32px;--widget-gap:56px;--target:44px;--button-height:46px;--body-leading:1.6;--heading-leading:1.2;
}
@media(min-width:781px) and (max-width:1200px){:root{--type-h1:48px;--type-h2:34px;--type-body:17px}}
@media(max-width:780px){:root{
 --type-h1:38px;--type-h2:28px;--type-h3:24px;--type-widget:22px;--type-kicker:16px;--type-body:16px;--type-lead:18px;--type-small:14px;--type-sidebar:16px;--type-table:14px;--type-nav:16px;--type-topbar:12px;
 --header-top:34px;--logo-width:170px;--title-pad:32px;--breadcrumb-gap:16px;--hero-height:380px;--content-top:32px;--content-bottom:40px;--section-pad:40px;--h2-top:36px;--heading-gap:16px;--block-gap:20px;--list-indent:22px;--card-pad:20px;--grid-gap:24px;--image-title-gap:14px;--title-text-gap:10px;--archive-gap:28px;--widget-gap:32px;
}}
:root{--navy:#052f53;--heading:#062658;--orange:#bf4b00;--pale:#eaf6fc;--line:#dbe6ed;--text:#414754;--muted:#69707e;--max:1240px;--body:'Roboto','PingFang SC','Microsoft YaHei','Noto Sans SC',Arial,sans-serif;--display:'Oswald','PingFang SC','Microsoft YaHei','Noto Sans SC','Arial Narrow',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:#fff;color:var(--text);font-family:var(--body);line-height:1.65}img{max-width:100%;height:auto}a{color:var(--heading);text-decoration:none}a:hover{color:#c04a00}button,input,textarea,select{font:inherit}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid #008ac7;outline-offset:4px}h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.2;color:var(--heading);margin:0 0 20px}h1{text-transform:uppercase}h2{text-transform:uppercase}p{margin:0 0 22px}.wrap{width:90%;max-width:var(--max);margin:0 auto}.section{padding:50px 0}.menu{list-style:none;padding:0;margin:0}.screen-reader-text,.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;z-index:10000;background:#fff;padding:12px;top:8px;left:8px}.topbar{background:var(--navy);color:#fff;}.topbar a{color:#fff}.topbar-inner,.quick-contact,.topbar .menu{display:flex;align-items:center}.topbar-inner{justify-content:space-between;gap:24px;min-height:40px}.quick-contact{gap:30px}.quick-contact a{white-space:nowrap}.quick-contact i{margin-right:7px}.topbar .menu{gap:0}.topbar li+li:before{content:'|';opacity:.55;padding:0 8px}.topbar a:hover{text-decoration:underline}.mainbar{display:flex;gap:24px;align-items:center;min-height:88px}.brand{flex-shrink:0;display:block;width:210px}.brand img{display:block;width:100%;height:auto}.primary-nav{margin-left:auto}.primary-nav>.menu{display:flex;gap:22px;align-items:center}.primary-nav a{display:block;position:relative;padding:30px 0;font-family:var(--display);white-space:nowrap;color:var(--heading)}.primary-nav .current-menu-item>a,.primary-nav .current-menu-ancestor>a{color:var(--orange)}.primary-nav .current-menu-item>a:after,.primary-nav .current-menu-ancestor>a:after{content:'';position:absolute;bottom:17px;left:0;right:0;height:2px;background:var(--orange)}.menu .sub-menu{list-style:none;padding:0}.primary-nav .sub-menu{position:absolute;z-index:5;background:#fff;box-shadow:0 6px 20px #0002;padding:12px;display:none}.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu{display:block}.button{display:inline-flex;justify-content:center;align-items:center;gap:20px;background:var(--orange);border:1px solid var(--orange);color:#fff;padding:14px 25px;line-height:1.3;font-family:var(--display);text-transform:uppercase;transition:background .15s,color .15s}.button:hover{background:#bd4d04;border-color:#bd4d04;color:white}.button.outline{color:#be4c08;background:transparent}.button.outline:hover{background:var(--orange);color:#fff}.header-quote{padding:13px 19px;gap:12px;white-space:nowrap}.search-toggle,.menu-toggle{border:0;background:transparent;color:var(--heading);font-size:24px;padding:8px}.menu-toggle,.mobile-company{display:none}.header-search{padding:20px 0;background:var(--pale)}.header-search .search-form{max-width:600px;margin-left:auto}.hero{background-color:var(--navy);background-image:var(--hero-image);background-repeat:no-repeat;background-position:right center;background-size:auto 100%;color:#fff}.hero .wrap{width:100%;max-width:1400px}.hero-panel{width:51%;padding:55px max(5vw,24px);background:rgba(0,41,77,.91);min-height:450px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.hero h1{color:#fff;font-weight:600;max-width:600px;margin-bottom:22px;line-height:1.1}.eyebrow{font-family:var(--display);text-transform:uppercase;color:#bb4f04;line-height:1.3;margin-bottom:12px}.hero .eyebrow{color:#ff941f}.hero-link{display:inline-flex;align-items:center;gap:20px;color:white;border-bottom:1px solid white;padding:9px 0;}.hero-link:hover{color:#ffe6d4}.hero .breadcrumbs{color:#fff;margin-bottom:28px;}.hero .breadcrumbs a{color:#fff}.product-hero .hero-panel{width:46%;min-height:460px}.product-hero .hero-link{margin-top:16px}.accent-rule{height:4px;width:60px;background:var(--orange);margin:15px 0 24px}.product-hero .accent-rule{margin-top:0}.title-band{background:var(--pale);padding:48px 0}.title-band h1{margin:0}.breadcrumbs{display:flex;gap:13px;}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card-image{position:relative;display:block;margin-bottom:15px}.card-image>img{width:100%;aspect-ratio:1.91;object-fit:cover;display:block}.content-card h3{margin:14px 0 10px;text-transform:none}.content-card p{margin-bottom:15px}.content-card time{color:var(--muted);display:block;margin:6px 0}.text-link,.read-more-button{font-family:var(--display);color:#bc4e07;display:inline-flex;align-items:center;gap:20px;padding-bottom:4px;border-bottom:1px solid transparent}.text-link:hover,.read-more-button:hover{border-color:var(--orange)}.play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:10px 19px;background:#e52117;color:#fff;border-radius:9px;font-size:22px;line-height:1}.home-contact{background:var(--navy);color:#fff}.home-contact>.wrap{display:flex;justify-content:space-between;gap:40px;align-items:center}.home-contact h2{color:white}.content-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(240px,1fr);gap:40px;padding-top:55px;padding-bottom:65px;align-items:start}.sidebar{border-left:1px solid var(--line);padding-left:32px}.sidebar-section{margin-bottom:46px}.sidebar-section:last-child{margin-bottom:0}.sidebar h2{margin-bottom:23px}.sidebar h2:after,.article-content h2:after{content:'';display:block;width:40px;height:3px;background:var(--orange);margin-top:14px}.sidebar .menu,.sidebar-links{list-style:none;margin:0;padding:0}.sidebar .menu a,.sidebar-links a{display:block;padding:6px 0;}.sidebar .category-menu>li:first-child{display:none}.sidebar [aria-current=page],.sidebar .current-menu-item>a{color:#bc4e07}.contact-details{list-style:none;margin:0 0 25px;padding:0}.contact-details li{display:flex;gap:15px;margin-bottom:13px;overflow-wrap:anywhere}.contact-details i{flex:0 0 20px;color:var(--heading);line-height:1.55}.search-form{display:flex;width:100%}.search-form input{border:1px solid #cbd4dc;background:#fff;padding:11px 14px;min-width:0;flex:1;border-radius:0}.search-form button{width:48px;flex-shrink:0;background:var(--navy);border:1px solid var(--navy);color:#fff}.archive-entry{padding-bottom:35px;margin-bottom:36px;border-bottom:1px solid var(--line)}.archive-entry:last-of-type{border-bottom:0}.archive-entry.with-image{display:grid;grid-template-columns:55% 1fr;gap:28px}.archive-entry h2{text-transform:none;margin-bottom:15px}.archive-image img{width:100%;object-fit:cover;display:block;aspect-ratio:1.6}.archive-entry .excerpt p{margin:0 0 20px}.post-meta{color:var(--muted);margin:0 0 24px}.archive-entry .post-meta{margin-top:-8px;margin-bottom:14px}.pagination{display:flex;gap:10px;justify-content:center;margin-top:30px}.page-numbers{display:inline-flex;align-items:center;padding:8px 16px;border:1px solid #d0d6db;font-family:var(--display)}.page-numbers.current{background:var(--orange);border-color:var(--orange);color:white}.article-content{min-width:0;overflow-wrap:break-word}.article-content h2{margin:42px 0 22px;padding-top:0!important;clear:both}.article-content h2:first-child{margin-top:0}.article-content h3{margin:30px 0 14px;clear:both}.article-content p{margin-bottom:25px}.article-content a{color:#bd4d04;text-decoration:underline;text-underline-offset:3px}.article-content img{height:auto;max-width:100%}.article-content>p>img:only-child,.article-content>img.alignnone{display:block;max-width:100%;margin:22px 0}.article-content .alignright{float:right;margin:0 0 22px 25px;max-width:100%}.article-content .alignleft{float:left;margin:0 25px 22px 0;max-width:100%}.article-content iframe,.article-content video{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;margin-bottom:25px}.company-image{display:block;max-width:100%;margin:0 0 12px}.article-content .company-image+iframe{margin-top:0}.article-content ul,.article-content ol{padding-left:25px}.article-content li{margin-bottom:10px}.article-content .row:after{content:'';display:block;clear:both}.table-scroll{max-width:100%;overflow-x:auto;margin:20px 0 30px;clear:both}.article-content table{width:100%!important;border-collapse:collapse;min-width:540px;line-height:1.6}.article-content td,.article-content th{border:1px solid var(--line);padding:13px 12px;text-align:left}.article-content tr:first-child{background:#e9eef4;color:var(--heading)}.article-content .wpcf7 input:not([type=submit]):not([type=checkbox]),.article-content .wpcf7 textarea,.comment-form input:not([type=submit]):not([type=checkbox]),.comment-form textarea,.post-password-form input[type=password]{width:100%;padding:10px 12px;border:1px solid #cbd7e0;background:white;border-radius:2px;min-height:43px}.wpcf7 textarea{height:150px;resize:vertical}.wpcf7 input[type=submit],.comment-form input[type=submit],.post-password-form input[type=submit]{border:1px solid var(--orange);background:var(--orange);color:#fff;min-width:200px;padding:11px 24px;font-family:var(--display);cursor:pointer}.wpcf7-form p{margin-bottom:18px}.wpcf7-response-output{margin-left:0!important;margin-right:0!important}.comments-area{margin-top:50px;border-top:1px solid var(--line)}.site-footer{background:var(--navy);color:#fff;padding:34px 0 24px;}.site-footer a{color:#fff}.site-footer a:hover{color:#ffb37b}.copyright{text-align:center;line-height:1.65;margin-top:28px}.empty-state{padding:60px 0;min-height:45vh}.empty-state .search-form{max-width:600px;margin-bottom:30px}[hidden]{display:none!important}
@media(min-width:1440px){.hero .wrap{width:90%;max-width:1240px}.hero-panel{padding-left:35px}.hero{background-size:70% auto}.hero-panel{background:rgba(0,41,77,.94)}}
@media(max-width:1200px){.mainbar{gap:16px}.brand{width:170px}.primary-nav>.menu{gap:15px}.header-quote{padding:12px;gap:8px}.quick-contact{gap:18px}.topbar li+li:before{padding:0 5px}.hero-panel{min-height:410px;padding:40px 5vw}.content-layout{grid-template-columns:minmax(0,2.4fr) minmax(220px,1fr);gap:30px}.sidebar{padding-left:26px}.mainbar{min-height:76px}.topbar-inner{min-height:34px}.title-band{padding:40px 0}}
@media(min-width:781px) and (max-width:1000px){.wrap{width:90%}.mainbar{width:94%;gap:12px}.brand{width:155px}.primary-nav>.menu{gap:12px}.search-toggle{font-size:20px;padding:4px}.header-quote{padding:12px 10px}.topbar .quick-contact{gap:14px}.topbar li+li:before{padding:0 4px}.hero-panel{min-height:355px;width:53%}.hero .button{padding:13px 20px}.product-hero .hero-panel{min-height:370px}.section{padding:35px 0}.content-layout{grid-template-columns:minmax(0,2.2fr) minmax(200px,1fr);gap:28px;padding-top:40px}.sidebar{padding-left:22px}.sidebar .button{padding:12px 20px}.archive-entry.with-image{gap:20px;grid-template-columns:53% 1fr}}
@media(max-width:780px){.wrap{width:90%}.topbar-inner{min-height:34px}.quick-contact{width:100%;justify-content:space-between;gap:10px}.topbar nav{display:none}.mainbar{min-height:76px;gap:12px;flex-wrap:wrap;position:relative}.brand{width:170px;margin-right:auto}.menu-toggle{display:flex;align-items:center;gap:8px;font-size:21px}.menu-toggle span{font-size:14px;font-family:var(--display)}.search-toggle{font-size:22px}.header-quote{display:none}.primary-nav{display:none;order:5;width:100%;margin:0;padding:0 0 18px}.primary-nav.is-open{display:block}.primary-nav>.menu,.mobile-company .menu{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.primary-nav a{padding:11px 0;border-bottom:1px solid var(--line)}.primary-nav .current-menu-item>a:after,.primary-nav .current-menu-ancestor>a:after{display:none}.mobile-company{display:block;margin-top:15px}.mobile-company a{font-family:var(--body);}.hero{background-size:cover;background-position:center}.hero-panel,.product-hero .hero-panel{width:100%;min-height:400px;padding:40px 5%;background:rgba(0,39,74,.82)}.hero h1{max-width:500px}.product-hero .hero-panel{min-height:380px}.hero .breadcrumbs{margin-bottom:25px}.section{padding:35px 0}.card-grid{grid-template-columns:1fr}.home-contact>.wrap{display:block}.home-contact .button{margin-top:25px}.title-band{padding:32px 0}.accent-rule{margin:16px 0}.content-layout{grid-template-columns:1fr;gap:40px;padding-top:32px;padding-bottom:40px}.sidebar{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:25px}.sidebar-section{margin-bottom:15px;min-width:0}.sidebar-section:has(.contact-details){grid-column:1/-1}.article-content h2{margin-top:32px}.article-content .alignright,.article-content .alignleft{max-width:100%;margin:8px 0 18px 18px}.article-content .alignleft{margin:8px 18px 18px 0}.archive-entry.with-image{display:block}.archive-image{display:block;margin-bottom:22px}.archive-entry{margin-bottom:28px;padding-bottom:28px}.copyright{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media(min-width:781px) and (max-width:1000px){.home-hero .hero-panel{min-height:330px;padding-top:30px;padding-bottom:30px}.home-hero .hero-link{gap:10px}}

.home-hero h1{max-width:400px}@media(min-width:781px) and (max-width:1000px){.home-hero h1{max-width:300px}}

@media(max-width:480px){.quick-contact{flex-wrap:wrap;row-gap:3px;padding:4px 0}}
.article-content>p:first-child>img:only-child{margin-top:0}
@media(min-width:781px) and (max-width:1200px){.title-band{padding:32px 0}}
.article-content .archive-entry h2{margin:0 0 15px;text-transform:none}.article-content .archive-entry h2:after{display:none}.article-content .archive-entry h2 a{color:var(--heading);text-decoration:none}.article-content .archive-entry h2 a:hover{color:#c04a00}.article-content .archive-entry .text-link{text-decoration:none}.article-content .archive-entry .post-meta{margin:0 0 14px}

/* WordPress content respects the selected image size. */
.article-content img{max-width:100%;height:auto}
.alignleft{float:left;margin:8px 24px 18px 0}
.alignright{float:right;margin:8px 0 18px 24px}
.aligncenter{display:block;margin:20px auto;clear:both}
.wp-caption{max-width:100%;margin-bottom:24px}
.wp-caption img{display:block;margin:0 auto}
.wp-caption-text,.gallery-caption{text-align:center;margin:8px 0}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;clear:both}
.gallery-item{margin:0}
.article-content .wp-block-gallery.has-nested-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;clear:both;margin:24px 0}
.article-content .wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;margin:0!important;align-self:start}
.article-content .wp-block-gallery figure a{display:block}
.article-content .wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;width:100%;max-width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;margin:0}
.product-hero{position:relative;isolation:isolate;background-image:none;overflow:hidden}
.product-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.product-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#00294d 0%,rgba(0,41,77,.94) 24%,rgba(0,41,77,.65) 43%,rgba(0,41,77,.12) 67%,transparent 100%);z-index:-1}
.product-hero .hero-panel{background:transparent;box-shadow:none}
.sidebar .widget{min-width:0;margin-bottom:38px}
.sidebar .widget ul,.site-footer .widget ul{list-style:none;padding:0;margin:0}
.sidebar .widget li{margin:0}
.sidebar .widget li a{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
.sidebar .contact-details li{margin-bottom:12px}
.sidebar .contact-details li a{display:inline;padding:0;border:0}

.sidebar a[href^="mailto:"],.site-footer a[href^="mailto:"]{word-break:normal;overflow-wrap:normal}
.footer-columns{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:30px;padding:24px 0;border-bottom:1px solid #ffffff40}
.site-footer .widget{margin-bottom:24px;min-width:0}
.site-footer h2{color:#fff;margin-bottom:18px}
.site-footer .widget li{margin-bottom:8px;line-height:1.5}
.site-footer .contact-details{display:block}
.site-footer .brand{width:180px;margin-bottom:20px}
.site-footer .brand img:not(.custom-footer-logo){filter:brightness(0) invert(1)}

@media(max-width:780px){.footer-columns{grid-template-columns:1fr 1fr}.product-hero:before{background:linear-gradient(90deg,rgba(0,41,77,.95),rgba(0,41,77,.68))}.sidebar .widget{margin-bottom:12px}}
@media(max-width:480px){.footer-columns{grid-template-columns:1fr}.article-content .wp-block-gallery.has-nested-images{grid-template-columns:1fr}.alignleft,.alignright{float:none;margin:18px 0}}
.sidebar .contact-details li{display:flex;gap:12px;align-items:flex-start}
.sidebar .contact-details li>span{min-width:0}
.sidebar .contact-details i{flex:0 0 18px;color:var(--navy);line-height:1.6}
.site-footer .contact-details li{display:flex;gap:10px}
.site-footer .contact-details i{flex:0 0 16px}

.asg-icon{display:inline-block;font-style:normal;line-height:1;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0}.asg-icon svg{display:block;width:1em;height:1em}

input,textarea,select{color:var(--text)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.site-footer .contact-details i{color:#fff}
/* Standard WordPress states; no existing published posts are sticky or open to comments. */
.archive-entry.sticky{border-left:3px solid var(--orange);padding-left:20px}
.comment-list .bypostauthor .fn{font-weight:700}

/* Article insets: reserve marker space beside floats and retain intrinsic limits. */
.article-content .alignleft{margin:8px 24px 18px 0}
.article-content .alignright{margin:8px 0 18px 24px}
.article-content ul,.article-content ol{display:flow-root}
.article-content li{display:flow-root list-item}
.article-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image img{aspect-ratio:auto;object-fit:contain}
@media(max-width:699px){
 .article-content .alignleft,.article-content .alignright{float:none;display:block;margin:8px 0 18px;max-width:100%;height:auto}
 .article-content img.asg-photo-inset[width="360"]{width:100%}
}
/* Keep card actions aligned without changing the existing grid/list columns. */
@media(min-width:781px){
 .card-grid>.content-card,.home-video-grid>.content-card{display:flex;flex-direction:column}
 .content-card>.text-link,.content-card>.read-more-button,.content-card>.button{margin-top:auto;align-self:flex-start}
 
 
 .archive-entry>div{display:flex;flex-direction:column;height:100%}
 .archive-entry>div>.text-link{margin-top:auto;align-self:flex-start}
 .relpost-block-container>.relpost-block-single{display:flex;align-self:stretch}
 .relpost-custom-block-single{display:flex;flex-direction:column;flex:1}
 .relpost-block-single-text{height:auto!important;min-height:75px;margin-top:auto!important}
}
/* Shared typography and rhythm. Context roles take precedence over heading tags. */
body,.article-content{font-size:var(--type-body);line-height:var(--body-leading)}
h1,.hero h1,.title-band h1{font-size:var(--type-h1);line-height:var(--heading-leading)}
h2,.article-content h2{font-size:var(--type-h2)}
h3,.article-content h3{font-size:var(--type-h3)}
h1,h2,h3,h4{margin-bottom:var(--heading-gap)}
p{margin:0 0 var(--block-gap)}
.wrap,.hero .wrap{width:var(--wrap-width);max-width:var(--max);margin-inline:auto}
.topbar,.quick-contact{font-size:var(--type-topbar)}
.topbar-inner{height:var(--header-top);min-height:var(--header-top)}
.mainbar{min-height:var(--header-main);gap:var(--space-5)}
.mainbar .brand{width:var(--logo-width)}
.primary-nav>.menu{gap:var(--space-4)}
.primary-nav a{font-size:var(--type-nav);padding:var(--space-3) 0}
.primary-nav .current-menu-item>a:after,.primary-nav .current-menu-ancestor>a:after{bottom:var(--space-1)}
.quick-contact{padding:0;flex-wrap:nowrap;gap:var(--space-2)}
.button,input[type=submit],.wpcf7 input[type=submit],.search-form button{font:500 var(--type-button)/1.3 var(--display);text-transform:uppercase;min-height:var(--button-height);height:var(--button-height);padding:0 var(--space-5);border:1px solid var(--orange);background:var(--orange);color:#fff;align-items:center;justify-content:center}
.button.outline{background:transparent;color:var(--orange);text-transform:none}
.header-quote{font-size:var(--type-header-cta);padding-inline:var(--space-3);gap:var(--space-2)}
.text-link,.read-more-button,.hero-link,.content-card .text-link{font:500 var(--type-link)/1.3 var(--display);min-height:var(--target);min-width:var(--target);align-items:center}
.search-form button{min-width:var(--target);width:var(--button-height);padding:0}
.search-toggle,.menu-toggle{min-width:var(--target);min-height:var(--target)}
.menu-toggle span{font:500 var(--type-nav)/1.3 var(--display)}
.hero .hero-panel,.product-hero .hero-panel{width:680px;max-width:100%;min-height:var(--hero-height);padding:var(--space-7) 0;background:transparent}
.hero h1{max-width:680px}
.eyebrow,.hero .eyebrow{font-size:var(--type-kicker);font-weight:500;margin-bottom:var(--space-2)}
.title-band{padding:var(--title-pad) 0}.accent-rule{margin:var(--space-3) 0 var(--breadcrumb-gap)}
.breadcrumbs,.hero .breadcrumbs,.post-meta,.content-card time,.contact-details li,.wpcf7 label,.wp-caption-text,.gallery-caption,.wpcf7-not-valid-tip{font-size:var(--type-small)}
.breadcrumbs a{display:inline-flex;min-height:var(--target);min-width:var(--target);align-items:center}.breadcrumbs{align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.hero .breadcrumbs{margin-bottom:var(--block-gap)}
.content-layout{grid-template-columns:minmax(0,1fr) var(--sidebar-width);gap:var(--column-gap);padding-top:var(--content-top);padding-bottom:var(--content-bottom)}
.sidebar{padding-left:0;border-left:0}.sidebar .widget,.sidebar-section{margin-bottom:var(--widget-gap)}
.sidebar h2{font-size:var(--type-widget);margin-bottom:var(--heading-gap)}
.sidebar .widget li a,.sidebar .menu a,.sidebar-links a{font-size:var(--type-sidebar);min-height:var(--target);padding:var(--space-1) 0}
.sidebar .contact-details li a{font-size:var(--type-small);display:inline-flex;align-items:center;min-height:var(--target);min-width:var(--target)}
.article-content :is(p,ul,ol){max-width:var(--text-measure)}
.article-content :is(p,ul,ol,figure),.article-content iframe,.article-content video{margin-top:0;margin-bottom:var(--block-gap)}
.article-content p:has(>img:only-child),.article-content p:has(>a:only-child>img),.article-content .wp-block-gallery{max-width:none}
.article-content h2{margin-top:var(--h2-top);margin-bottom:var(--heading-gap)}
.article-content h3{margin-top:var(--block-gap);margin-bottom:var(--heading-gap)}
.article-content ul,.article-content ol{padding-left:var(--list-indent)}.article-content li{margin-bottom:var(--space-1)}
.table-scroll{margin:0 0 var(--block-gap)}.article-content table{font-size:var(--type-table)}
.article-content table:not(:has(tr>:nth-child(3))){min-width:0}
.article-content>p>img:only-child,.article-content>img.alignnone{margin:0 0 var(--block-gap)}
.article-content .wp-block-gallery.has-nested-images{gap:var(--grid-gap);margin:0 0 var(--block-gap)}
.article-content .diagram-caption{font-size:var(--type-small);display:block;margin-top:var(--space-1)}
.archive-entry,.article-content .archive-entry{padding-bottom:var(--archive-gap);margin-bottom:var(--archive-gap)}
.archive-entry h2,.article-content .archive-entry h2,.content-card h3{font-size:var(--type-card);margin:0 0 var(--title-text-gap);text-transform:none}
.archive-entry .post-meta,.article-content .archive-entry .post-meta,.post-meta{margin:0 0 var(--block-gap)}
.archive-entry .excerpt p,.content-card p{font-size:var(--type-small);margin-bottom:var(--block-gap)}
.archive-entry.with-image,.card-grid{gap:var(--grid-gap)}.card-image,.archive-image{margin-bottom:var(--image-title-gap)}
.pagination{gap:var(--space-2);margin-top:var(--space-6)}.page-numbers{min-width:var(--target);min-height:var(--target);justify-content:center;font-size:var(--type-link)}
.section{padding:var(--section-pad) 0}
/* Plugin retains whole-card anchors, as established in C2b. */
.article-content .relpost-thumb-wrapper{margin-top:var(--h2-top);clear:both}
.relpost-block-container{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)!important}
.relpost-block-container>.relpost-block-single{width:auto!important;margin:0!important;padding:var(--card-pad)!important;border:1px solid var(--line)!important;background:#fff!important;display:flex!important;text-decoration:none}
.relpost-custom-block-single{width:100%!important;display:flex;flex-direction:column}
.relpost-block-single-image{width:100%!important;height:auto!important;aspect-ratio:3/2!important;object-fit:cover!important;display:block;margin:0 0 var(--image-title-gap)!important}
.relpost-block-single-text{height:auto!important;min-height:0!important;margin-top:auto!important;padding:0!important}
.article-content .relpost_card_title{font:500 var(--type-card)/var(--heading-leading) var(--display)!important;text-transform:none!important;text-align:left;margin:0!important;color:var(--heading)}
.article-content .relpost_card_title:after{display:none}
.site-footer{padding:var(--space-6) 0 var(--space-5);font-size:var(--type-footer)}
.footer-columns{grid-template-columns:280px minmax(0,1fr);gap:var(--space-5);padding:0 0 var(--space-5)}
.footer-column:first-child{grid-row:1/4}.footer-column:not(:first-child){display:grid;grid-template-columns:1fr;gap:var(--space-3)}
.site-footer .widget{margin:0}.site-footer .widget h2{font-size:var(--type-footer-title);margin:0 0 var(--space-1)}
.site-footer .widget ul:not(.contact-details){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-1) var(--space-5)}
.site-footer .widget li{margin:0;line-height:var(--body-leading)}
.site-footer .widget p,.site-footer .contact-details li,.site-footer a{font-size:var(--type-footer)}
.site-footer .contact-details{display:grid;gap:var(--space-1)}
.site-footer .brand{width:var(--logo-width);margin-bottom:var(--space-3)}
.copyright{font-size:var(--type-copyright);line-height:var(--body-leading);margin-top:var(--space-3)}.copyright a{font-size:inherit}
@media(max-width:1100px){
 .primary-nav{display:none;order:5;width:100%;margin:0;padding:0 0 var(--space-3)}.primary-nav.is-open{display:block}.mainbar{flex-wrap:wrap;gap:var(--space-2)}.mainbar .brand{margin-right:auto}.menu-toggle{display:flex;align-items:center;gap:var(--space-1)}.mobile-company{display:block}.primary-nav>.menu,.mobile-company .menu{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}.primary-nav a{padding:var(--space-2) 0}.header-quote{display:none}.topbar nav{display:none}
}
@media(max-width:780px){
 .content-layout{grid-template-columns:1fr;gap:var(--space-7)}.sidebar{grid-template-columns:1fr;gap:0;padding-top:var(--space-6)}
 .footer-columns{display:block}.footer-column:first-child{margin-bottom:var(--space-5)}.footer-column:not(:first-child){margin-top:var(--space-3)}
 .site-footer .widget ul:not(.contact-details){grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-4)}
 .site-footer a{display:inline-flex;align-items:center;min-width:var(--target);min-height:var(--target)}
 .site-footer summary{min-height:var(--target);display:flex;align-items:center;cursor:pointer;font:500 var(--type-footer-title)/1.2 var(--display)}
 .quick-contact a{position:relative;display:inline-flex;align-items:center;min-height:var(--target);z-index:2}.quick-contact i{margin-right:4px}
 .relpost-block-container{grid-template-columns:1fr}
}
@media(min-width:781px){
 .footer-columns{grid-template-columns:260px repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-5)}
 .footer-column:first-child{grid-row:1/3}.footer-column:nth-child(2){grid-column:2;grid-row:1}.footer-column:nth-child(3){grid-column:3;grid-row:1;align-content:start;gap:var(--space-1)}.footer-column:nth-child(4){display:contents}
 .site-footer .widget ul:not(.contact-details){grid-template-columns:repeat(2,minmax(0,1fr));gap:4px var(--space-3)}.site-footer .widget li{line-height:1.4}
}
@media(min-width:1201px){
 .footer-columns{grid-template-columns:260px 150px repeat(3,minmax(0,1fr));gap:var(--space-5)}
 .footer-column:first-child{grid-row:auto}.footer-column:nth-child(2),.footer-column:nth-child(3){grid-row:auto;grid-column:auto}
 .site-footer .widget ul:not(.contact-details){display:block}.site-footer .widget li{margin-bottom:4px}
}
@media(max-width:780px){
 .quick-contact{gap:var(--space-1)}.quick-contact a{white-space:normal;overflow-wrap:anywhere;line-height:1.2;flex:1;min-width:0}.quick-contact i{display:none}
 .site-header .brand{min-height:var(--target);display:flex;align-items:center}
 .site-footer .widget p{margin-bottom:var(--space-1)}.site-footer .contact-details{gap:0}.site-footer .contact-details li{align-items:center}
 .site-footer .widget details>summary:after{content:'+';margin-left:auto}.site-footer .widget details[open]>summary:after{content:'−'}
 .site-footer .widget details{border-bottom:1px solid #ffffff40}.footer-column:not(:first-child){margin-top:0;gap:0}
 .asg-block-home h3 a{display:inline-flex;align-items:center;min-height:var(--target);min-width:var(--target)}
}
.relpost-block-container{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.site-footer{padding-top:var(--space-5);padding-bottom:var(--space-3)}
@media(max-width:780px){.relpost-block-container{grid-template-columns:1fr!important}.quick-contact{align-self:flex-start}}
.hero h1{margin-bottom:var(--space-3)}
@media(max-width:780px){.product-hero .hero-panel{padding-block:var(--space-5)}}
.copyright{margin-top:var(--space-1)}
.wpcf7-form p[role=status]:empty{margin:0}
.search-toggle{width:var(--target);height:var(--target);padding:0;line-height:1}
.button:hover,input[type=submit]:hover,.wpcf7 input[type=submit]:hover,.search-form button:hover{background:#a84200;border-color:#a84200;color:#fff}
/* 640px is the smallest original used by related cards; retain 2x density. */
.relpost-block-container{max-width:calc(2 * (var(--related-image-width) + 2 * var(--card-pad) + 2px) + var(--grid-gap))}
.hero .hero-panel,.product-hero .hero-panel,.hero h1{width:840px;max-width:100%}
/* Solid behind the title column, then fade so the machine photo reads clearly on the right (mockup). */
.product-hero:before{background:linear-gradient(90deg,#00294d 0%,rgba(0,41,77,.92) 30%,rgba(0,41,77,.78) 48%,rgba(0,41,77,.38) 66%,rgba(0,41,77,0) 86%)}
@media(max-width:780px){.relpost-block-container{max-width:calc(var(--related-image-width) + 2 * var(--card-pad) + 2px)}}
@media(max-width:780px){.product-hero:before{background:rgba(0,41,77,.78)}}
.page-numbers{font-weight:500}

.empty-state{padding-top:var(--content-top);padding-bottom:var(--content-bottom)}
.sidebar .widget:last-child{margin-bottom:0}
.relpost-block-single-text{margin-top:0!important}

/* Outline buttons fill on hover and keyboard focus everywhere (founder request, 16 Oct). */
.button.outline,.is-style-outline>.wp-block-button__link{transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.button.outline:hover,.button.outline:focus-visible,.is-style-outline>.wp-block-button__link:hover,.is-style-outline>.wp-block-button__link:focus-visible{background:var(--orange);border-color:var(--orange);color:#fff}

/* Additional Images: one standard tile on every post (founder request, 16 Oct).
   Two equal columns, a fixed 3:2 frame; the whole photo stays visible (contain)
   on a pale panel, so owner photos (3:2) fill it and older shapes are not cropped. */
.article-content .wp-block-gallery.has-nested-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);align-items:start}
.article-content .wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;margin:0!important;background:var(--pale);border:1px solid var(--line);overflow:hidden}
.article-content .wp-block-gallery.has-nested-images figure.wp-block-image img,.article-content .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image img{display:block;width:100%;height:auto;aspect-ratio:3/2!important;object-fit:contain;margin:0}
.article-content .wp-block-gallery figure.wp-block-image a{display:block;cursor:zoom-in}
.article-content .wp-block-gallery figure.wp-block-image a:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
@media(max-width:600px){.article-content .wp-block-gallery.has-nested-images{grid-template-columns:1fr}}

/* Lightbox for gallery photos and linked content images. */
html.asg-lightbox-open{overflow:hidden}
.asg-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:64px 88px;background:rgba(3,22,40,.94)}
.asg-lightbox[hidden]{display:none}
.asg-lightbox__figure{margin:0;display:flex;flex-direction:column;align-items:center;max-width:100%;max-height:100%}
.asg-lightbox__figure img{display:block;max-width:100%;max-height:calc(100vh - 176px);width:auto;height:auto;object-fit:contain;background:#fff;box-shadow:0 12px 48px rgba(0,0,0,.45)}
.asg-lightbox__figure figcaption{margin-top:14px;max-width:72ch;color:#fff;font-size:16px;line-height:1.5;text-align:center}
.asg-lightbox__btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(0,0,0,.35);color:#fff;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}
.asg-lightbox__btn:hover,.asg-lightbox__btn:focus-visible{background:var(--orange);border-color:var(--orange)}
.asg-lightbox__btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.asg-lightbox__btn svg{width:22px;height:22px}
.asg-lightbox__close{top:16px;right:16px}
.asg-lightbox__prev{left:20px;top:50%;transform:translateY(-50%)}
.asg-lightbox__next{right:20px;top:50%;transform:translateY(-50%)}
.asg-lightbox__count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);margin:0;color:rgba(255,255,255,.85);font-size:14px}
.asg-lightbox.is-single .asg-lightbox__prev,.asg-lightbox.is-single .asg-lightbox__next,.asg-lightbox.is-single .asg-lightbox__count{display:none}
@media(max-width:700px){.asg-lightbox{padding:64px 12px 84px}.asg-lightbox__figure img{max-height:calc(100vh - 210px)}.asg-lightbox__prev,.asg-lightbox__next{top:auto;bottom:14px;transform:none}.asg-lightbox__prev{left:14px}.asg-lightbox__next{right:14px}.asg-lightbox__count{bottom:28px}}
@media(prefers-reduced-motion:no-preference){.asg-lightbox:not([hidden]){animation:asg-lightbox-in .18s ease-out}}
@keyframes asg-lightbox-in{from{opacity:0}to{opacity:1}}

/* Category intro inside the title band: under the rule, above the breadcrumbs. */

/* Related Machinery hover zoom (founder request, 16 Oct). */
.relpost-image-frame{overflow:hidden;margin-bottom:16px}
.relpost-image-frame .relpost-block-single-image{display:block;margin:0!important;transition:transform .35s ease}
.relpost-block-single:hover .relpost-block-single-image,.relpost-block-single:focus-visible .relpost-block-single-image{transform:scale(1.06)}
@media(prefers-reduced-motion:reduce){.relpost-image-frame .relpost-block-single-image{transition:none}.relpost-block-single:hover .relpost-block-single-image,.relpost-block-single:focus-visible .relpost-block-single-image{transform:none}}

/* Text wraps around inset pictures (founder request, 16 Oct). Lists flow normally
   beside floats; after a LEFT-floated inset the list numbers sit inside the text so
   they wrap with it instead of hiding behind the picture. */
.article-content ul,.article-content ol{display:block}
.article-content p:has(>img.alignleft,>a>img.alignleft)+:is(ol,ul),.article-content p:has(>img.alignleft,>a>img.alignleft)+:is(ol,ul) :is(ol,ul){list-style-position:inside;padding-left:0}
/* Inset pictures never take more than 42% of the column, so wrapped text stays readable
   on mid-size screens (phones keep the full-width rule above). */
.article-content img.asg-photo-inset{width:min(360px,42%);height:auto}
/* List items flow normally so wrapped text returns to full width below an inset. */
.article-content li{display:list-item}

/* Related Machinery spans the full content column like galleries and text (founder, 16 Oct):
   as many equal cards per row as fit (min 220 px), stretched to fill the row. */
.relpost-block-container{max-width:none!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important}
@media(max-width:600px){.relpost-block-container{grid-template-columns:1fr!important}}
/* Floated insets keep a gap from the wrapped text (the only-child image rule above
   zeroed their side margins). Phones show insets full width, so desktop/tablet only. */
@media(min-width:700px){
.article-content>p>img.alignleft:only-child,.article-content>p>a>img.alignleft{margin:6px 28px 16px 0}
.article-content>p>img.alignright:only-child,.article-content>p>a>img.alignright{margin:6px 0 16px 28px}
}

/* Contact rows: icon and text on one line (founder: "icons/text misaligned", 16 Oct).
   Links stay inline text (row height ~26px, above the 24px minimum target), and each icon
   is centred on its row's first line, so multi-line addresses still align. */
.contact-details li{display:flex;align-items:flex-start;gap:12px;margin:0 0 10px}
.contact-details li:last-child{margin-bottom:0}
.contact-details li .asg-icon,.contact-details li>i{display:inline-flex;align-items:center;justify-content:center;flex:0 0 1.1em;height:1lh;margin:0}
.contact-details li .asg-icon svg{width:1.05em;height:1.05em}
.sidebar .contact-details li a,.site-footer .contact-details li a{display:inline;min-height:0;min-width:0;padding:0}
@media(max-width:780px){.site-footer .contact-details li{align-items:flex-start}}

/* Video covers in posts (same orange play button as the homepage). */
.asg-video-embed{position:relative;aspect-ratio:16/9;margin:0 0 var(--block-gap);background:var(--navy);overflow:hidden}
.asg-video-embed__link{display:block;width:100%;height:100%}
.asg-video-embed__poster{display:block;width:100%!important;height:100%!important;object-fit:cover;margin:0!important;transition:transform .35s ease}
.asg-video-embed__link:hover .asg-video-embed__poster,.asg-video-embed__link:focus-visible .asg-video-embed__poster{transform:scale(1.03)}
.asg-video-embed__play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:var(--orange);box-shadow:0 6px 24px rgba(0,0,0,.35);transition:transform .2s ease}
.asg-video-embed__play::after{content:'';position:absolute;left:31px;top:24px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent #fff}
.asg-video-embed__link:hover .asg-video-embed__play,.asg-video-embed__link:focus-visible .asg-video-embed__play{transform:scale(1.08)}
.asg-video-embed__link:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.asg-video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media(prefers-reduced-motion:reduce){.asg-video-embed__poster,.asg-video-embed__play{transition:none}}

/* Search field and button: one height, flush, and one focus ring around the pair
   (founder: "fix these alignments", 16 Oct). */
.search-form{align-items:stretch}
.search-form input[type=search],.search-form input[type=text]{height:var(--button-height);padding:0 14px;line-height:1.2;border-right:0;margin:0;font-size:var(--type-small)}
.search-form button{height:var(--button-height);width:var(--button-height);flex:0 0 var(--button-height);margin:0;display:inline-flex;align-items:center;justify-content:center}
.search-form input:focus,.search-form input:focus-visible{outline:none;box-shadow:none}
.search-form:focus-within{outline:3px solid #2a78b5;outline-offset:2px}

/* "Contact Us" button gets breathing room below the contact rows. */
.widget .contact-details+p,.textwidget .contact-details+p{margin-top:var(--block-gap)}

/* Breadcrumbs, category intro and recovery links (formerly seo-extras.css). */
.breadcrumbs > span { display: inline; }
.breadcrumbs .breadcrumb_last { color: inherit; }

.seo-recovery { margin-bottom: var(--block-gap); }
.seo-recovery ul { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); list-style: none; padding-left: 0; margin-top: var(--block-gap); }

/* Phones: phone and email each get their own line in the top bar, so neither breaks mid-word. */
@media(max-width:520px){
 .topbar-inner{height:auto;min-height:0;padding:4px 0}
 .quick-contact{flex-direction:column;align-items:flex-start;gap:0}
 .quick-contact a{flex:none;white-space:nowrap;overflow-wrap:normal;min-height:28px}
 .quick-contact i{display:inline-flex;margin-right:6px}
}

/* Collapsed menu (≤1100px): the bar's first row is always the full bar height, so the logo, Menu and
   search buttons stay put when the menu opens; the open menu takes its own row underneath. */
@media(max-width:1100px){
 .mainbar{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:var(--header-main);align-items:center;column-gap:var(--space-2);row-gap:0}
 .mainbar .brand{grid-column:1;grid-row:1;justify-self:start}
 .mainbar .menu-toggle{grid-column:2;grid-row:1}
 .mainbar .search-toggle{grid-column:3;grid-row:1}
 .mainbar .primary-nav{grid-column:1/-1;grid-row:2}
}

/* Phones: the footer's fold-out rows already end with a line, so the divider above the copyright is dropped
   (only once the rows exist; without them the divider stays). */
@media(max-width:780px){.site-footer .footer-columns:has(details){border-bottom:0}}
