/* WordPress, Elementor and responsive refinements for the supplied design. */
html { scroll-padding-top:100px; }
body { overflow-x:clip; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:wait; opacity:.65; }
[hidden] { display:none !important; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid #1674bd; outline-offset:4px; }
h1,h2,h3,h4,h5,.btn,.eyebrow { letter-spacing:0; }
h1,h2,h3,h4,p,a,figcaption { overflow-wrap:break-word; }
.swt-skip { position:fixed; top:-100px; left:20px; padding:12px 20px; background:white; color:#0b1722; z-index:100001; }
.swt-skip:focus { top:10px; }
.swt-contact-strip { background:#0b1722; color:#d6e0e7; font-size:12px; }
.swt-contact-strip .wrap { display:flex; gap:24px; align-items:center; justify-content:space-between; min-height:36px; }
.swt-contact-strip .wrap>div { display:flex; gap:22px; flex-shrink:0; }
.swt-header { position:sticky; top:0; z-index:100; background:white; border-bottom:1px solid var(--line); }
.swt-nav-row { display:flex; gap:22px; align-items:center; min-height:86px; max-width:1560px; }
.swt-brand { display:block; flex:0 1 255px; min-width:180px; }
.swt-brand img { width:100%; height:auto; max-height:56px; object-fit:contain; }
.swt-navigation { margin-left:auto; }
.swt-menu { display:flex; gap:4px; align-items:center; margin:0; padding:0; }
.swt-menu li { position:relative; }
.swt-menu>li>a,.swt-sub-toggle { display:inline-flex; align-items:center; gap:7px; padding:12px 9px; color:var(--steel-700); font-size:15px; font-weight:600; white-space:nowrap; background:none; border:0; }
.swt-menu a:hover,.swt-sub-toggle:hover,.swt-menu [aria-current="page"],.swt-menu .current-menu-item>a { color:var(--blue); }
.swt-menu .sub-menu { position:absolute; top:100%; left:0; padding:8px; width:270px; background:#fff; box-shadow:var(--shadow-lg); border:1px solid var(--line); border-radius:4px; display:none; }
.swt-menu .sub-menu a { display:block; padding:11px 12px; font-size:15px; }
.swt-menu .sub-menu a:hover { background:var(--mist); }
.swt-menu li:focus-within>.sub-menu,.swt-menu li.is-open>.sub-menu { display:block; }
@media(hover:hover) { .swt-menu li:hover>.sub-menu { display:block; } }
.swt-header-quote { padding:12px 17px; flex:none; font-size:12px; }
.swt-menu-toggle { display:none; flex:none; width:44px; height:44px; background:white; border:1px solid var(--line); border-radius:4px; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.swt-menu-toggle span { width:19px; height:2px; background:var(--ink); }
.swt-header .swt-menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(7px) rotate(45deg); }
.swt-header .swt-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.swt-header .swt-menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-7px) rotate(-45deg); }
.admin-bar .swt-header { top:32px; }
#main-content { min-width:0; outline:none; }
.hero .wrap { padding-block:48px; }
.hero h1 { font-size:4.2rem; max-width:none; }
.hero .hero-inner { max-width:700px; }
.hero .lead { max-width:55ch; }
.hero-bg img,.phero-bg img { opacity:.85; }
.swt-site .hero-bg img,.swt-site .phero-bg img,.swt-site .sector>img,.swt-site .swt-zoom img { width:100%; height:100%; object-fit:cover; }
.hero-bg::after { background:linear-gradient(90deg,rgba(11,23,34,.96),rgba(11,23,34,.75) 48%,rgba(11,23,34,.08)); }
.phero-bg::after { background:linear-gradient(90deg,rgba(11,23,34,.93),rgba(11,23,34,.64) 55%,rgba(11,23,34,.08)); }
.hero-stats { margin-top:34px; }
.hero-stats .num { font-size:1.8rem; }
.hero-stats .lbl { color:#c1d0da; }
.hero-stats .st { padding:18px 24px 0 0; margin-right:24px; }
.phero h1 { max-width:22ch; }
.phero .wrap { padding-block:70px; }
.rv { opacity:1 !important; transform:none !important; }
.btn-light,.btn-white { color:var(--blue-dark); background:white; }
.btn-outline-light { color:white; border-color:#ffffff80; }
.btn { white-space:normal; text-align:center; justify-content:center; }
.swt-footer-contact li { margin-bottom:16px; overflow-wrap:anywhere; }
.foot .flogo { max-width:290px; width:100%; height:auto; }
.foot-bot { gap:16px; flex-wrap:wrap; }
.swt-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px; }
.swt-filters button { padding:10px 16px; min-height:44px; border:1px solid var(--line); border-radius:4px; background:white; color:var(--steel-700); font-size:14px; }
.swt-filters button.active { background:var(--ink); color:white; border-color:var(--ink); }
.swt-projects { align-items:stretch; }
.swt-projects .case { display:flex; flex-direction:column; min-width:0; }
.swt-projects .case-img { display:block; flex:none; aspect-ratio:4/3; height:auto; }
.swt-projects .case-img img { width:100%; height:100%; object-fit:cover; }
.swt-projects .case-body { display:flex; flex-direction:column; flex:1; }
.swt-projects .case-body h3 { font-size:1.4rem; line-height:1.18; }
.swt-projects .case-meta { margin-top:auto; padding-top:20px; }
.swt-project-link { display:flex; justify-content:space-between; align-items:center; color:var(--blue-dark); font-size:14px; font-weight:600; padding-top:20px; }
.swt-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.swt-photo { margin:0; min-width:0; }
.swt-zoom { display:block; position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:4px; background:var(--mist); }
.swt-zoom img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.swt-zoom:hover img { transform:scale(1.03); }
.swt-photo-expand { position:absolute; right:12px; bottom:12px; background:white; width:32px; height:32px; display:grid; place-items:center; border-radius:4px; }
.swt-photo figcaption { font-size:15px; padding-top:12px; line-height:1.45; }
.swt-lightbox { margin:auto; width:min(1200px,96vw); max-height:94svh; border:0; background:#101820; color:white; padding:56px; }
.swt-lightbox::backdrop { background:#000d; }
.swt-lightbox[open] { display:grid; grid-template-columns:40px minmax(0,1fr) 40px; gap:16px; align-items:center; }
.swt-lightbox img { width:100%; height:70svh; object-fit:contain; }
.swt-lightbox figcaption { margin-top:12px; text-align:center; color:white; font-size:15px; }
.swt-lightbox button { width:40px; height:40px; border:1px solid #ffffff60; background:transparent; color:white; font-size:25px; border-radius:4px; }
.swt-lightbox-close { position:absolute; top:10px; right:12px; }
.swt-project-heading { padding-block:52px 40px; }
.swt-project-heading h1 { margin:16px 0 24px; font-size:3.3rem; max-width:24ch; }
.swt-back { display:block; margin-bottom:24px; color:var(--blue-dark); font-size:14px; }
.swt-project-cover img { width:100%; max-height:660px; object-fit:contain; background:var(--mist); }
.swt-project-facts { display:flex; flex-wrap:wrap; gap:24px 48px; margin:0 0 32px; }
.swt-project-facts dt { font-size:13px; color:var(--steel-500); }
.swt-project-facts dd { margin:0; font-weight:600; }
.swt-prose>*+* { margin-top:24px; }
.swt-prose p,.swt-prose ul,.swt-prose ol { max-width:75ch; }
.swt-prose ul { list-style:disc; padding-left:24px; }
.swt-prose ol { padding-left:24px; }
.swt-prose h1 { font-size:3.3rem; }
.swt-prose h2 { font-size:2rem; }
.swt-prose a:not(.btn) { color:var(--blue-dark); text-decoration:underline; }
.swt-consent { display:flex; gap:10px; align-items:flex-start; font-size:14px; margin:24px 0; line-height:1.55; }
.swt-consent input { width:18px; height:18px; flex:none; margin-top:3px; }
.swt-consent a { text-decoration:underline; }
.swt-quote-form .field input,.swt-quote-form .field select,.swt-quote-form .field textarea { width:100%; min-width:0; border:1px solid var(--line); border-radius:4px; background:white; padding:12px; color:var(--ink); }
.swt-quote-form .field label { display:block; margin-bottom:6px; }
.swt-form-status { font-size:15px; margin-top:20px; }
.swt-form-status[data-error="true"] { color:#9d2424; }
.swt-form-status[data-success="true"] { color:#196439; }
.swt-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.swt-mobile-contact { display:none; }
.swt-elementor-section>.elementor-container { max-width:none !important; }
.swt-elementor-section .elementor-widget-wrap { padding:0 !important; gap:0; }
.swt-elementor-section .elementor-widget { margin:0 !important; width:100%; }
.swt-elementor-section .elementor-column { min-width:0; }
.elementor-widget-container .wrap { max-width:var(--maxw); }
.swt-elementor-section h1,.swt-elementor-section h2,.swt-elementor-section h3 { font-family:var(--f-display); }
.qa .ans { transition:none; }
.swt-site:not(.swt-js) .qa .ans { max-height:none; }
.swt-site:not(.swt-js) .swt-filters { display:none; }
.sec-head { margin-bottom:28px; }
.sec-head h2 { margin-top:16px; }
.cta-inner { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; }
.cta-btns { display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.alt { background:var(--mist); }
section.cta-band { border-radius:0; }
.sizer { min-width:0; }
.grid>* { min-width:0; }
.siz-scroll { max-width:100%; }
.siz-stat .n { font-size:2.2rem; }
@media(max-width:1250px) {
  .swt-nav-row { gap:12px; padding-inline:24px; }
  .swt-brand { flex-basis:210px; }
  .swt-menu>li>a,.swt-sub-toggle { padding-inline:7px; font-size:14px; }
}
@media(max-width:1100px) {
  .swt-header-quote { margin-left:auto; }
  .swt-js .swt-menu-toggle { display:flex; }
  .swt-navigation { position:absolute; left:0; right:0; top:100%; background:white; padding:12px 24px 24px; border-bottom:1px solid var(--line); max-height:calc(100svh - 135px); overflow:auto; }
  .swt-js .swt-navigation:not(.is-open) { display:none; }
  .swt-menu { display:block; }
  .swt-menu>li>a,.swt-sub-toggle { padding:12px 4px; font-size:16px; min-height:46px; }
  .swt-menu .sub-menu { position:static; box-shadow:none; border:0; border-left:2px solid var(--line); width:auto; margin-left:8px; padding:0 0 0 10px; }
  .swt-menu li:hover>.sub-menu { display:none; }
  .swt-menu li.is-open>.sub-menu,.swt-menu li:focus-within>.sub-menu { display:block; }
  .swt-site:not(.swt-js) .swt-nav-row { flex-wrap:wrap; }
  .swt-site:not(.swt-js) .swt-navigation { position:static; width:100%; }
  .swt-site:not(.swt-js) .sub-menu { display:block; }
  .swt-contact-strip .wrap>span { display:none; }
  .swt-contact-strip .wrap { justify-content:flex-end; }
}
@media(max-width:782px) {
  .admin-bar .swt-header { top:46px; }
  .swt-nav-row { min-height:74px; }
  .hero h1 { font-size:3.2rem; }
  h1,.phero h1 { font-size:2.8rem; }
  h2 { font-size:2.2rem; }
  .hero .wrap,.phero .wrap { padding-block:50px; }
  .swt-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .swt-project-heading h1,.swt-prose h1 { font-size:2.6rem; }
  .cta-inner { grid-template-columns:1fr; }
  .grid[style*="grid-template-columns"] { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
}
@media(max-width:600px) {
  .admin-bar .swt-header { top:0; }
  .swt-contact-strip { display:none; }
  .swt-brand { flex-basis:220px; min-width:0; max-width:calc(100% - 64px); }
  .swt-header-quote { display:none; }
  .swt-menu-toggle { margin-left:auto; }
  .swt-nav-row { padding-inline:20px; min-height:70px; }
  .hero h1 { font-size:2.8rem; }
  h1,.phero h1 { font-size:2.45rem; }
  h2 { font-size:1.95rem; }
  .hero .wrap { padding-block:38px; }
  .hero .lead { font-size:1.02rem; }
  .hero-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero-stats .st { margin:0; padding:16px 10px 0 0; border:0; }
  .hero-stats .num { font-size:1.1rem; line-height:1.25; }
  .hero-stats .lbl { font-size:10px; }
  .hero-cta { margin-top:22px; gap:10px; }
  .hero-cta .btn { font-size:12px; padding:13px 16px; }
  .pad { padding-block:56px; }
  .swt-gallery-grid { grid-template-columns:1fr; }
  .grid[style*="grid-template-columns"] { grid-template-columns:1fr !important; }
  .swt-lightbox { padding:54px 10px 16px; }
  .swt-lightbox[open] { grid-template-columns:30px minmax(0,1fr) 30px; gap:5px; }
  .swt-lightbox img { height:58svh; }
  .swt-lightbox-prev,.swt-lightbox-next { width:30px !important; }
  .swt-mobile-contact { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); position:fixed; bottom:0; left:0; right:0; z-index:95; background:white; border-top:1px solid var(--line); padding-bottom:env(safe-area-inset-bottom); }
  .swt-mobile-contact a { min-height:50px; display:grid; place-items:center; font-size:14px; font-weight:600; border-right:1px solid var(--line); }
  .swt-mobile-contact a:last-child { background:var(--blue); color:white; }
  body { padding-bottom:50px; }
  .swt-filters { gap:6px; }
  .swt-filters button { padding:8px 12px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
