/* StruXure Portfolio — front end. All rules namespaced under .sxc so the
   theme and Elementor cannot bleed in, and this cannot bleed out. */
.sxc,.sxc *{box-sizing:border-box}
.sxc{--fd:'Montserrat',system-ui,sans-serif;--fb:'Source Sans 3',system-ui,sans-serif;
 font-family:var(--fb);color:var(--fg);background:var(--bg);padding:clamp(20px,4vw,44px) clamp(16px,3vw,34px);border-radius:4px}
/* Break out of whatever container the page builder wraps this in.
   The vw rule is the no-JS fallback; public.js then sets exact pixels so a
   vertical scrollbar cannot cause horizontal overflow. */
.sxc[data-w=full]{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);border-radius:0;
 padding-left:clamp(16px,3vw,56px);padding-right:clamp(16px,3vw,56px)}
.sxc[data-w=full] .sxc-inner{max-width:1600px;margin:0 auto}
.sxc[data-t=editorial]{--bg:#f6f4f1;--fg:#1c1c1c;--mut:#6f6a63;--line:#e0dbd3;--card:#fff;--acc:#e87722;--chip:#fff;--chipfg:#3a3a3a;--on:#1c1c1c;--onfg:#f6f4f1;--r:2px;--sh:0 14px 40px rgba(28,28,28,.11)}
.sxc[data-t=dark]{--bg:#1c1c1c;--fg:#f6f4f1;--mut:#a49d93;--line:#2e2e2e;--card:#242424;--acc:#e87722;--chip:#262626;--chipfg:#c4bdb3;--on:#e87722;--onfg:#1c1c1c;--r:3px;--sh:0 18px 50px rgba(0,0,0,.62)}
.sxc[data-t=site]{--bg:#fff;--fg:#1c1c1c;--mut:#6b6b6b;--line:#e6e6e6;--card:#fff;--acc:#e87722;--chip:#f2f0ed;--chipfg:#3a3a3a;--on:#e87722;--onfg:#fff;--r:6px;--sh:0 4px 18px rgba(28,28,28,.1)}

.sxc-hero{padding:0 0 clamp(18px,2.4vw,30px)}
.sxc-eb{font:700 12.5px var(--fd);letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin:0 0 15px}
.sxc .sxc-h1{font-family:var(--fd);font-weight:800;font-size:clamp(30px,5vw,60px);line-height:1.12;letter-spacing:-.01em;margin:0;max-width:17ch;color:var(--fg)}
.sxc .sxc-sub{margin:17px 0 0;max-width:60ch;color:var(--mut);font-size:clamp(16px,1.5vw,20px);line-height:1.6}

.sxc-rail{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 0;margin-bottom:clamp(20px,2.6vw,34px)}
.sxc-rin{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.sxc-chip{background:var(--chip);color:var(--chipfg);border:1px solid var(--line);padding:9px 16px;border-radius:99px;
 font:600 14px var(--fb);cursor:pointer;transition:.16s;white-space:nowrap;line-height:1.2}
.sxc-chip:hover{border-color:var(--mut);color:var(--fg)}
.sxc-chip[aria-pressed=true]{background:var(--on);color:var(--onfg);border-color:var(--on)}
.sxc-chip .n{opacity:.55;margin-left:6px;font-size:11.5px}
.sxc-cnt{color:var(--mut);font:700 11.5px var(--fd);letter-spacing:.09em;text-transform:uppercase;margin-left:auto}

.sxc-sec{margin-bottom:clamp(30px,4vw,54px)}
.sxc-sec[hidden]{display:none}
.sxc-sech{display:flex;align-items:baseline;gap:14px;margin-bottom:clamp(12px,1.6vw,19px)}
.sxc .sxc-sech h3{font:700 12.5px var(--fd);letter-spacing:.22em;text-transform:uppercase;margin:0;color:var(--fg)}
.sxc-sech span{color:var(--mut);font-size:12.5px}
.sxc-sech .ln{flex:1;height:1px;background:var(--line)}

.sxc-grid{display:grid;gap:clamp(13px,1.7vw,22px);grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.sxc-grid.big{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr))}
.sxc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;
 transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s,border-color .3s;position:relative;display:flex;flex-direction:column}
.sxc-card:hover{transform:translateY(-5px);box-shadow:var(--sh);border-color:var(--mut)}
.sxc-card:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.sxc-ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--line)}
.sxc-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.sxc-card:hover .sxc-ph img{transform:scale(1.06)}
.sxc-pill{position:absolute;top:10px;right:10px;background:rgba(28,28,28,.74);color:#fff;font:700 11px var(--fd);
 letter-spacing:.03em;padding:5px 10px;border-radius:99px}
.sxc-vbadge{position:absolute;top:10px;left:10px;background:#e87722;color:#fff;font:700 10.5px var(--fd);
 letter-spacing:.09em;text-transform:uppercase;padding:5px 10px;border-radius:99px}
.sxc-meta{padding:15px 16px 17px;display:flex;flex-direction:column;gap:6px;flex:1}
.sxc-ck{font:700 11.5px var(--fd);letter-spacing:.11em;text-transform:uppercase;color:var(--acc)}
.sxc-cn{font-family:var(--fd);font-size:19px;font-weight:700;letter-spacing:-.01em;line-height:1.14;color:var(--fg)}
.sxc-cb{font-size:15px;color:var(--mut);line-height:1.5}
.sxc[data-t=dark] .sxc-card{display:block}
.sxc[data-t=dark] .sxc-grid:not(.big) .sxc-ph{aspect-ratio:3/4}
.sxc[data-t=dark] .sxc-meta{position:absolute;inset:auto 0 0 0;padding:30px 18px 18px;
 background:linear-gradient(to top,rgba(18,18,18,.95) 14%,rgba(18,18,18,.58) 58%,transparent)}
.sxc[data-t=dark] .sxc-cb{color:#c4bdb3}

.sxc-detail[hidden]{display:none}
.sxc-browse[hidden]{display:none}
.sxc-back{display:inline-flex;align-items:center;gap:9px;background:none;border:none;color:var(--mut);
 font:700 11.5px var(--fd);letter-spacing:.11em;text-transform:uppercase;cursor:pointer;padding:10px 0}
.sxc-back:hover{color:var(--fg)}
.sxc-dh{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:20px}
.sxc .sxc-dh h3{font-family:var(--fd);font-weight:800;font-size:clamp(26px,4vw,40px);letter-spacing:-.01em;line-height:1.12;margin:0;color:var(--fg)}
.sxc .sxc-dh p{color:var(--mut);margin:13px 0 0;max-width:70ch;font-size:17px;line-height:1.65}
.sxc-dm{display:flex;gap:18px;flex-wrap:wrap;margin-top:15px;color:var(--mut);font:700 11.5px var(--fd);letter-spacing:.09em;text-transform:uppercase}
.sxc-vidwrap{margin-bottom:24px;border-radius:var(--r);overflow:hidden;background:#000;aspect-ratio:16/9;max-width:960px}
.sxc-vidwrap video{width:100%;height:100%;object-fit:cover;display:block}
.sxc-narrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.sxc-narrow em{font-style:normal;font:700 11.5px var(--fd);letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.sxc-mas{columns:4 250px;column-gap:clamp(10px,1.3vw,16px)}
.sxc-mas figure{break-inside:avoid;margin:0 0 clamp(10px,1.3vw,16px);cursor:zoom-in;border-radius:var(--r);overflow:hidden;background:var(--line)}
.sxc-mas img{width:100%;display:block;opacity:0;transition:opacity .45s,transform .6s cubic-bezier(.2,.7,.3,1)}
.sxc-mas img.on{opacity:1}
.sxc-mas figure:hover img{transform:scale(1.035)}
.sxc-more{display:block;margin:26px auto 0;background:none;border:1px solid var(--line);color:var(--fg);padding:15px 34px;
 border-radius:99px;font:700 12.5px var(--fd);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:.2s}
.sxc-more:hover{background:var(--on);color:var(--onfg);border-color:var(--on)}
.sxc-more[hidden]{display:none}

.sxc-cta{border-top:1px solid var(--line);margin-top:clamp(34px,5vw,64px);padding:clamp(34px,5vw,64px) 0 8px;text-align:center}
.sxc .sxc-cta h3{font-family:var(--fd);font-weight:800;font-size:clamp(23px,3.2vw,40px);letter-spacing:-.01em;line-height:1.12;margin:0;color:var(--fg)}
.sxc .sxc-cta p{color:var(--mut);margin:15px auto 26px;max-width:52ch;font-size:17px;line-height:1.65}
.sxc-btn{display:inline-block;background:#e87722;color:#fff;padding:16px 36px;border-radius:99px;text-decoration:none;
 font:700 13px var(--fd);letter-spacing:.09em;text-transform:uppercase;transition:.2s}
.sxc-btn:hover{color:#fff;opacity:.88;transform:translateY(-1px)}

.sxc-lb{position:fixed;inset:0;z-index:99999;background:rgba(7,8,9,.975);display:flex;align-items:center;justify-content:center}
.sxc-lb[hidden]{display:none}
.sxc-lb img{max-width:92vw;max-height:78vh;object-fit:contain}
.sxc-lbb{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:14px;padding:17px 21px;color:#e8e4de;font:600 13px var(--fb)}
.sxc-sc{background:rgba(232,119,34,.16);border:1px solid rgba(232,119,34,.5);color:#f2954a;padding:6px 13px;border-radius:99px;
 font:700 11.5px var(--fd);letter-spacing:.09em;text-transform:uppercase}
.sxc-lc{color:#8d8882}
.sxc-lx{margin-left:auto;background:none;border:none;color:#e8e4de;font-size:27px;cursor:pointer;line-height:1;padding:2px 8px}
.sxc-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
 color:#fff;width:50px;height:50px;border-radius:50%;font-size:20px;cursor:pointer;display:grid;place-items:center;transition:.18s}
.sxc-nav:hover{background:rgba(255,255,255,.19)}
.sxc-nav.p{left:20px}.sxc-nav.x{right:20px}
.sxc-cap{position:absolute;bottom:0;left:50%;transform:translateX(-50%);padding:18px 26px 24px;color:#c4bdb3;
 font:400 15px/1.6 var(--fb);text-align:center;max-width:78ch}
@media(max-width:640px){
 .sxc[data-t=dark] .sxc-grid:not(.big) .sxc-ph{aspect-ratio:4/5}
 .sxc-nav{width:42px;height:42px}
 .sxc-mas{columns:2 140px}
}

/* ============================================================
   Optional site header / footer — same design as the one on
   /featured-commercial-projects/. Rendered only when the shortcode
   is given header="yes" / footer="yes".
   ============================================================ */
.sxsf-main-header,.sxsf-main-header *,.sxsf-footer,.sxsf-footer *{box-sizing:border-box}
.sxsf-main-header{background:#0e0e0e;padding:22px 32px;border-bottom:1px solid rgba(255,255,255,.07);position:relative;z-index:10}
.sxsf-main-header-inner{max-width:1600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.sxsf-logo{display:inline-flex;align-items:center;line-height:0}
.sxsf-logo img{height:40px;width:auto;display:block}
.sxsf-main-nav{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:20px;flex-wrap:nowrap;
 font-family:'Montserrat','Helvetica Neue',Arial,sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase}
.sxsf-main-nav>li>a,.sxsf-phone{white-space:nowrap}
.sxsf-main-nav>li{position:relative}
.sxsf-main-nav>li>a{color:#eaeaea;text-decoration:none;padding:8px 0;display:inline-block;transition:color .2s}
.sxsf-main-nav>li>a:hover{color:#ff6b1a}
.sxsf-main-nav .has-sub>a::after{content:" \25BE";font-size:10px;color:rgba(255,255,255,.55);margin-left:6px;letter-spacing:0}
.sxsf-submenu{list-style:none;margin:0;padding:14px 0;position:absolute;top:calc(100% + 6px);left:-16px;background:#161616;
 border:1px solid rgba(255,255,255,.08);border-radius:2px;min-width:230px;box-shadow:0 18px 40px rgba(0,0,0,.5);
 opacity:0;visibility:hidden;transform:translateY(-6px);transition:.22s;z-index:100}
.sxsf-submenu li{margin:0}
.sxsf-submenu a{display:block;padding:10px 22px;color:#cfcfcf;font-size:12px;letter-spacing:.16em;font-weight:500;text-decoration:none;transition:.18s}
.sxsf-submenu a:hover{color:#ff6b1a;background:rgba(255,107,26,.05);padding-left:26px}
.sxsf-main-nav .has-sub:hover>.sxsf-submenu,.sxsf-main-nav .has-sub:focus-within>.sxsf-submenu{opacity:1;visibility:visible;transform:translateY(0)}
.sxsf-phone{font-family:'Montserrat',sans-serif;color:#fafafa;font-size:13.5px;font-weight:700;letter-spacing:.02em;text-decoration:none;
 display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:1px solid rgba(255,255,255,.18);border-radius:32px;transition:.2s;flex:0 0 auto}
.sxsf-phone::before{content:"";width:8px;height:8px;background:#ff6b1a;border-radius:50%;display:inline-block;flex:0 0 8px}
.sxsf-phone:hover{border-color:#ff6b1a;background:rgba(255,107,26,.06);color:#fafafa}
.sxsf-burger{display:none;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:0;cursor:pointer;
 flex-direction:column;gap:4px;align-items:center;justify-content:center;width:42px;height:42px;transition:.2s}
.sxsf-burger span{display:block;width:18px;height:2px;background:#fafafa;border-radius:2px;transition:.25s}
.sxsf-burger:hover{border-color:#ff6b1a}
.sxsf-burger:hover span{background:#ff6b1a}
.sxsf-main-header.is-open .sxsf-burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.sxsf-main-header.is-open .sxsf-burger span:nth-child(2){opacity:0}
.sxsf-main-header.is-open .sxsf-burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.sxsf-footer{background:#0a0a0a;border-top:1px solid rgba(255,255,255,.07);color:#cdcdcd;padding:64px 24px 40px;
 font-family:'Montserrat','Helvetica Neue',Arial,sans-serif}
.sxsf-footer-inner{max-width:1100px;margin:0 auto;text-align:center}
.sxsf-footer-logo{display:block;line-height:0}
.sxsf-footer-logo img{height:64px;width:auto;display:block;margin:0 auto 28px}
.sxsf-footer-company{font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase}
.sxsf-footer-phone{font-size:15px;line-height:1.7;color:#bcbcbc;margin-top:6px}
.sxsf-footer-phone strong{color:#fff;font-weight:700}
.sxsf-footer-divider{max-width:920px;margin:36px auto;border-top:1px solid rgba(255,255,255,.1)}
.sxsf-footer-copy{font-size:13px;color:#9b9b9b;margin-top:18px;letter-spacing:.04em}
@media(max-width:1200px){
 .sxsf-main-header{padding:18px 20px}
 .sxsf-main-nav{gap:14px;font-size:10.5px;letter-spacing:.08em}
 .sxsf-logo img{height:34px}
 .sxsf-phone{font-size:12.5px;padding:8px 13px}
}
@media(max-width:900px){
 .sxsf-main-header{padding:14px 18px}
 .sxsf-main-header-inner{flex-wrap:wrap;align-items:center}
 .sxsf-logo{order:1}
 .sxsf-logo img{height:38px}
 .sxsf-burger{order:2;margin-left:auto;display:inline-flex}
 .sxsf-phone{order:3;display:none}
 .sxsf-main-nav{order:4;display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;
  padding:14px 0 6px;margin-top:14px;border-top:1px solid rgba(255,255,255,.08)}
 .sxsf-main-header.is-open .sxsf-main-nav{display:flex}
 .sxsf-main-nav>li{width:100%;border-bottom:1px solid rgba(255,255,255,.05)}
 .sxsf-main-nav>li:last-child{border-bottom:none}
 .sxsf-main-nav>li>a{display:block;padding:14px 4px;font-size:13px}
 .sxsf-main-nav .has-sub>a::after{float:right;font-size:11px;margin-top:2px}
 .sxsf-submenu{position:static;display:block;opacity:1;visibility:visible;transform:none;background:transparent;
  border:none;box-shadow:none;padding:0 0 12px 14px;min-width:0}
 .sxsf-submenu a{padding:8px 6px;font-size:12px;color:#a8a8a8}
 .sxsf-main-header.is-open .sxsf-phone{order:5;margin:14px 4px 6px;align-self:flex-start;font-size:14px;padding:9px 18px;display:inline-flex}
 .sxsf-footer{padding:48px 20px 32px}
 .sxsf-footer-logo img{height:54px}
}

/* outbound chip — Commercial Projects links to its own page */
.sxc-chip.sxc-out{text-decoration:none;display:inline-flex;align-items:center;gap:8px;
 border-color:var(--acc);color:var(--acc);background:transparent}
.sxc-chip.sxc-out:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
.sxc-chip.sxc-out .arr{font-size:14px;line-height:1;transition:transform .18s}
.sxc-chip.sxc-out:hover .arr{transform:translateX(3px)}

/* photo captions hidden unless captions="yes" */
.sxc[data-cap=no] .sxc-cap{display:none}
