/* Trivo LP 0.4: layout, palettes and motion. Overrides legacy rules without changing past content. */
.trivo-site{--trivo-surface:#fff;--trivo-surface-alt:#f7f7f7;--trivo-text:#202020;--trivo-muted:#616161;--trivo-rule:#d7d7d7;--trivo-nav-bg:#fff;--trivo-nav-ink:#191919;background:var(--trivo-surface);color:var(--trivo-text)}
.trivo-site.trivo-theme-dark{--trivo-surface:#141414;--trivo-surface-alt:#202020;--trivo-text:#f4f4f4;--trivo-muted:#bbb;--trivo-rule:#424242;--trivo-nav-bg:#191919;--trivo-nav-ink:#f8f8f8}
.trivo-site .trivo-light-section,.trivo-site .trivo-partners{background:var(--trivo-surface);color:var(--trivo-text)}
.trivo-site .trivo-tone-section.trivo-tone-alt{background:var(--trivo-surface-alt)}
.trivo-site main>.trivo-tone-section:nth-child(even of .trivo-tone-section){background:var(--trivo-surface-alt)}
body.trivo-body-dark{background:#141414;color:#f4f4f4}
body.trivo-body-dark .trivo-policy{background:#141414;color:#eee}
body.trivo-body-dark .trivo-policy :is(h1,h2,h3,a){color:#fff}
.trivo-site .trivo-section-head h2,.trivo-site .trivo-section-head .trivo-eyebrow,.trivo-site .trivo-about-content h2,.trivo-site .trivo-about-content .trivo-eyebrow,.trivo-site .trivo-partners h2,.trivo-site .trivo-service h3,.trivo-site .trivo-material h3,.trivo-site .trivo-stat strong{color:var(--trivo-text)}
.trivo-site .trivo-section-head p:not(.trivo-eyebrow),.trivo-site .trivo-service p,.trivo-site .trivo-material p,.trivo-site .trivo-stat span{color:var(--trivo-muted)}
.trivo-site .trivo-stat{border-bottom-color:var(--trivo-rule)}
.trivo-site .trivo-section-head i{background:var(--trivo-rule)}
.trivo-site .trivo-cta{background:var(--trivo-accent);color:#fff!important;max-width:100%;text-decoration:none}
.trivo-site .trivo-nav-pill{background:var(--trivo-nav-bg)}
.trivo-site .trivo-desktop-nav a,.trivo-site .trivo-nav-logo{color:var(--trivo-nav-ink)}
.trivo-site .trivo-menu-button{color:var(--trivo-nav-ink)}
.trivo-site .trivo-menu-button>.trivo-icon{background:currentColor!important;height:23px;width:23px}
.trivo-site .trivo-mobile-menu:not([hidden]){background:var(--trivo-nav-bg)}
.trivo-site .trivo-mobile-menu a{color:var(--trivo-nav-ink);border-color:var(--trivo-rule)}

/* The customer supplies the composited image, including its own overlay. */
.trivo-site .trivo-hero:after,.trivo-site .trivo-hero::before{display:none!important;content:none!important;background:none!important}
.trivo-site .trivo-hero{min-height:580px;height:clamp(590px,65vw,770px);display:flex;align-items:center;background:#242424;color:#fff}
.trivo-site .trivo-hero-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%}
.trivo-site .trivo-hero-photo picture,.trivo-site .trivo-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.trivo-site .trivo-hero-copy{box-sizing:border-box;display:block;position:relative;z-index:1;width:min(calc(100% - 64px),1180px);max-width:1180px;min-width:0;margin:80px auto 0;padding:0;text-align:left}
.trivo-site .trivo-hero-copy>*{max-width:min(610px,100%)}
.trivo-site .trivo-hero .trivo-eyebrow{font:600 12px/1.4 var(--trivo-sans);color:inherit!important;background:none!important;box-shadow:none!important;letter-spacing:.12em;display:flex;gap:11px;align-items:center;padding:0!important;border:0!important;border-radius:0!important;margin:0 0 23px!important;text-transform:uppercase}
.trivo-site .trivo-hero .trivo-eyebrow:before{content:"";flex:none;display:block;width:7px;height:7px;border-radius:50%;background:var(--trivo-accent)}
.trivo-site .trivo-hero h1{display:block;max-width:650px!important;width:100%;padding:0;margin:0 0 20px;overflow-wrap:normal;word-break:normal;hyphens:none;color:inherit;font:500 clamp(38px,4vw,62px)/1.03 var(--trivo-serif);letter-spacing:-.018em;text-shadow:none}
.trivo-site .trivo-hero-sub{display:block;width:min(550px,100%);min-width:0;border-left:2px solid currentColor;padding-left:22px;box-sizing:border-box}
.trivo-site .trivo-hero-sub p{font-size:14px;line-height:1.7;width:100%;max-width:470px;color:inherit;margin:0 0 20px;overflow-wrap:break-word}
.trivo-site .trivo-hero-sub small{font-size:12px;color:inherit;margin:12px 0 0 5px}
.trivo-site .trivo-hero-ink-dark{color:#171717!important}
.trivo-site .trivo-hero-ink-light{color:#fff!important}

/* Exact mosaic composition per complete batch, no holes for 1-5 photographs. */
.trivo-site .trivo-gallery{display:flex!important;flex-direction:column;gap:8px;width:100%;height:auto;overflow:visible}
.trivo-site .trivo-gallery-batch{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(110px,11vw,152px);grid-auto-flow:row dense;gap:8px;direction:ltr;min-width:0}
.trivo-site .trivo-gallery-batch:nth-child(even){direction:rtl}
.trivo-site .trivo-gallery-batch:nth-child(even) .trivo-gallery-item{direction:ltr}
.trivo-site .trivo-gallery-item,.trivo-site .trivo-gallery-item:nth-child(n+9),.trivo-site .trivo-gallery-item:last-child:nth-child(odd){grid-column:auto;aspect-ratio:auto!important;height:100%;min-height:0;width:100%;display:block;overflow:hidden;border-radius:8px}
.trivo-site .trivo-gallery-item img,.trivo-site .trivo-gallery-item picture{display:block;width:100%;height:100%;object-fit:cover}
.trivo-site .trivo-gallery-batch-5 .trivo-gallery-item{grid-column:span 4}
.trivo-site .trivo-gallery-batch-5 .trivo-gallery-item:first-child{grid-row:span 2}
.trivo-site .trivo-gallery-batch-4 .trivo-gallery-item{grid-column:span 4}
.trivo-site .trivo-gallery-batch-4 .trivo-gallery-item:first-child{grid-row:span 2}
.trivo-site .trivo-gallery-batch-4 .trivo-gallery-item:last-child{grid-column:span 8}
.trivo-site .trivo-gallery-batch-3 .trivo-gallery-item{grid-column:span 6}
.trivo-site .trivo-gallery-batch-3 .trivo-gallery-item:first-child{grid-row:span 2}
.trivo-site .trivo-gallery-batch-2 .trivo-gallery-item{grid-column:span 6;grid-row:span 2}
.trivo-site .trivo-gallery-batch-1 .trivo-gallery-item{grid-column:span 12;grid-row:span 2}
.trivo-site .trivo-gallery-more{display:none}

/* Two identical groups translate a precise half-width, so the banner strip never flashes. */
.trivo-site .trivo-marquee{height:42px;overflow:hidden;display:flex;align-items:center;background:#111;color:#fff}
.trivo-site .trivo-marquee-inner{width:max-content;flex:0 0 auto;display:flex;gap:0;align-items:center;white-space:nowrap;animation:trivoContinuous 36s linear infinite}
.trivo-site .trivo-marquee-group{display:flex;align-items:center;flex:none;gap:0}
.trivo-site .trivo-marquee-group span{display:inline-block;flex:none;margin:0!important;padding:0 25px;font:600 11px/1.3 var(--trivo-sans);letter-spacing:.09em;text-transform:uppercase}
@keyframes trivoContinuous{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

.trivo-site .trivo-architects{padding:60px 24px;background:#171717;color:#fff}
.trivo-site .trivo-architects h2{color:#fff}
.trivo-site .trivo-architects p{max-width:580px;margin:0 auto 20px;font-size:14px;line-height:1.7}
.trivo-site .trivo-reviews{position:relative;background-color:#232323;background-size:cover;background-position:center;color:#fff}
.trivo-site .trivo-reviews .trivo-section-head h2{color:#fff}
.trivo-site .trivo-reviews-pending{border:1px solid #ffffff49;background:#0005;border-radius:12px;padding:30px 24px;max-width:720px;margin:auto;text-align:center}
.trivo-site .trivo-reviews-pending strong{font:500 27px/1.1 var(--trivo-serif);color:#fff}
.trivo-site .trivo-reviews-pending p{margin:11px 0 0;color:#f5f5f5;font-size:13px;line-height:1.6}

/* Partner logos scroll continuously, without hover pauses or navigation arrows. */
.trivo-site .trivo-partners{position:relative;isolation:auto;background:var(--trivo-surface);color:var(--trivo-text);padding:62px 0 70px}
.trivo-site .trivo-partners:before{display:none!important;content:none!important}
.trivo-site .trivo-partners h2{font-size:clamp(28px,3vw,40px)}
.trivo-site .trivo-partners-window{width:100%;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.trivo-site .trivo-partners-rail{display:flex;align-items:center;width:max-content;will-change:transform;animation:trivoContinuous 38s linear infinite}
.trivo-site .trivo-partners-group{display:flex;align-items:center;flex:none;gap:0}
.trivo-site .trivo-partner{flex:none;width:210px;height:96px;display:grid;place-items:center;box-sizing:border-box;padding:14px 20px}
.trivo-site .trivo-partner img{display:block;max-width:100%;max-height:72px;object-fit:contain}
.trivo-site .trivo-services-track,.trivo-site .trivo-materials-track{scroll-behavior:smooth;scroll-snap-type:x mandatory;scroll-padding-inline:5px}
.trivo-site .trivo-service,.trivo-site .trivo-material{scroll-snap-align:start}
.trivo-site .trivo-carousel-arrow{transition:background .35s ease,transform .35s ease}

/* Footer hierarchy: brand | map | contact information. */
.trivo-site .trivo-footer{background:#171717;color:#fff}
.trivo-site .trivo-footer-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr) minmax(0,1.03fr);gap:0;align-items:stretch}
.trivo-site .trivo-footer-brand{border-right:1px solid #484848;min-height:320px;padding:0 28px 0 0}
.trivo-site .trivo-footer-map{border-right:1px solid #484848;padding:0 28px}
.trivo-site .trivo-footer-info{padding:0 0 0 28px;display:grid;align-content:start;gap:0}
.trivo-site .trivo-contact-line{display:grid;grid-template-columns:24px minmax(0,1fr);gap:13px;align-items:start;border-bottom:1px solid #393939;padding:0 0 19px;margin-bottom:19px}
.trivo-site .trivo-contact-line:last-child{border:0;margin:0;padding-bottom:0}
.trivo-site .trivo-contact-line>.trivo-icon{width:22px;height:22px;color:var(--trivo-accent);margin:3px 0 0}
.trivo-site .trivo-contact-line p{margin:0!important;line-height:1.62;font-size:13px;color:#e8e8e8}
.trivo-site .trivo-contact-line p>span{display:block;color:var(--trivo-accent);font-size:13px;font-weight:600;margin:0 0 4px}
.trivo-site .trivo-contact-line a{display:inline-block;color:#fff;overflow-wrap:anywhere}
.trivo-site .trivo-footer-map h2{font-size:clamp(25px,2.7vw,31px)}
.trivo-site .trivo-footer-legal a,.trivo-site .trivo-footer-legal p{font-size:11px;line-height:1.6}
.trivo-site .trivo-map-lazy{height:222px;overflow:hidden}
.trivo-site .trivo-map-lazy iframe{border:0;width:100%;height:100%;display:block}

/* The optional institutional pages inherit the exact same global palette. */
.trivo-site.trivo-institutional .trivo-institutional-hero{background:var(--trivo-surface-alt);color:var(--trivo-text)}
.trivo-site.trivo-institutional .trivo-institutional-hero h1{color:var(--trivo-text)}
.trivo-site.trivo-institutional .trivo-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7%;align-items:center}
.trivo-site.trivo-institutional .trivo-contact-page{color:var(--trivo-text)}

/* Editor-only dock on managed pages, replacing the native front-end WP toolbar. */
.trivo-edit-dock{position:fixed;right:18px;bottom:17px;z-index:9998;display:flex;align-items:center;gap:2px;padding:7px;border:1px solid #ffffff35;border-radius:999px;background:#171717ef;box-shadow:0 8px 25px #0006;font:500 12px/1.2 Montserrat,Arial,sans-serif}
.trivo-edit-dock a,.trivo-edit-dock button{display:inline-flex;align-items:center;justify-content:center;min-height:33px;padding:7px 12px;border:0;border-radius:25px;background:transparent;color:#fff;text-decoration:none;font:inherit;white-space:nowrap;cursor:pointer}
.trivo-edit-dock a:hover,.trivo-edit-dock button:hover{background:#ab925d;color:#fff}
.trivo-edit-dock form{padding:0;margin:0}

@media(max-width:1050px){
 .trivo-site .trivo-hero-copy{width:min(calc(100% - 48px),920px)}
 .trivo-site .trivo-hero-copy>*{max-width:550px}
 .trivo-site .trivo-footer-grid{grid-template-columns:1fr 1fr}
 .trivo-site .trivo-footer-map{border:0;padding:0 0 0 28px}
 .trivo-site .trivo-footer-info{grid-column:1/-1;border-top:1px solid #484848;padding:25px 0 0;margin-top:25px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
 .trivo-site .trivo-contact-line{margin:0;padding:0;border:0}
}
@media(max-width:767px){
 .trivo-site .trivo-header{top:10px}
 .trivo-site .trivo-menu-button{display:grid;place-items:center;min-width:43px;min-height:43px;border-radius:50%;padding:0;background:var(--trivo-surface-alt)}
 .trivo-site .trivo-mobile-menu:not([hidden]){top:62px;left:12px;right:12px;max-height:75dvh;overflow-y:auto;animation:trivoMenuEnter .3s cubic-bezier(.2,.7,.2,1) both}
 .trivo-site .trivo-mobile-menu.is-closing:not([hidden]){animation:trivoMenuExit .22s cubic-bezier(.4,0,.8,.2) forwards}
 @keyframes trivoMenuEnter{from{opacity:0;transform:translateY(-10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
 @keyframes trivoMenuExit{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
 .trivo-site .trivo-hero{height:min(820px,94svh);min-height:590px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-end;color:#fff}
 .trivo-site .trivo-hero-photo{position:absolute;inset:0;height:100%;width:100%;z-index:-2}
 .trivo-site .trivo-hero-photo picture,.trivo-site .trivo-hero-photo img{width:100%;height:100%;object-position:center bottom;object-fit:cover}
 .trivo-site .trivo-hero-copy{width:100%;max-width:590px;margin:0 auto;min-width:0;padding:112px 24px 44px;background:none!important;text-align:left}
 .trivo-site .trivo-hero-copy>*{max-width:100%}
 .trivo-site .trivo-hero .trivo-eyebrow{font-size:10px;line-height:1.5;letter-spacing:.10em;margin-bottom:19px!important}
 .trivo-site .trivo-hero h1{font-size:clamp(34px,9vw,56px);line-height:1.04;max-width:520px!important;margin-bottom:18px}
 .trivo-site .trivo-hero-sub{width:100%;padding-left:16px}
 .trivo-site .trivo-hero-sub p{font-size:13px;line-height:1.58;max-width:450px;margin-bottom:17px}
 .trivo-site .trivo-hero-sub small{font-size:11px}
 .trivo-site .trivo-cta{font-size:11px;min-height:47px;padding:12px 19px}
 .trivo-site .trivo-gallery{gap:5px}
 .trivo-site .trivo-gallery-batch{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(70px,19vw,105px);gap:5px}
 .trivo-site .trivo-gallery-batch-5 .trivo-gallery-item,.trivo-site .trivo-gallery-batch-4 .trivo-gallery-item{grid-column:span 2}
 .trivo-site .trivo-gallery-batch-4 .trivo-gallery-item:last-child{grid-column:span 4}
 .trivo-site .trivo-gallery-batch-3 .trivo-gallery-item{grid-column:span 3}
 .trivo-site .trivo-gallery-batch-2 .trivo-gallery-item{grid-column:span 3}
 .trivo-site .trivo-gallery-batch-1 .trivo-gallery-item{grid-column:span 6}
 .trivo-site .trivo-gallery-batch:not(:first-child){display:none}
 .trivo-site .trivo-gallery.expanded .trivo-gallery-batch:not(:first-child){display:grid}
 .trivo-site .trivo-gallery-more{display:block;margin:18px auto 0;color:var(--trivo-text);border-color:var(--trivo-rule);background:var(--trivo-surface);font-size:12px}
 .trivo-site .trivo-marquee{height:33px}.trivo-site .trivo-marquee-group span{font-size:9px;padding:0 19px}
 .trivo-site .trivo-architects{padding:47px 22px}.trivo-site .trivo-architects p{font-size:13px}
 .trivo-site .trivo-partners{padding:50px 0}.trivo-site .trivo-partner{width:155px;height:75px;padding:10px 15px}.trivo-site .trivo-partner img{max-height:55px}
 .trivo-site .trivo-section-head h2{font-size:clamp(26px,7vw,35px)}
 .trivo-site .trivo-about-content .trivo-eyebrow,.trivo-site .trivo-about-content h2{text-align:left}
 .trivo-site .trivo-footer{padding:46px 0 34px}
 .trivo-site .trivo-footer-grid{display:flex;flex-direction:column;gap:0}
 .trivo-site .trivo-footer-brand,.trivo-site .trivo-footer-map,.trivo-site .trivo-footer-info{width:100%;border:0;min-height:0;padding:0;margin:0;display:block}
 .trivo-site .trivo-footer-map{order:1;padding:0 0 27px;border-bottom:1px solid #484848}
 .trivo-site .trivo-footer-map h2{font-size:29px;text-align:left}
 .trivo-site .trivo-footer-info{order:2;padding:24px 0;border-bottom:1px solid #484848}
 .trivo-site .trivo-contact-line{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:0 0 19px;margin:0 0 19px;border-bottom:1px solid #363636}
 .trivo-site .trivo-contact-line:last-child{border:0;padding:0;margin:0}
 .trivo-site .trivo-contact-line p,.trivo-site .trivo-contact-line p>span{font-size:14px}
 .trivo-site .trivo-footer-brand{order:3;display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:19px;padding-top:25px}
 .trivo-site .trivo-footer-brand img{max-width:180px;max-height:80px}
 .trivo-site .trivo-footer-legal p,.trivo-site .trivo-footer-legal a{font-size:11px}
 .trivo-site.trivo-institutional .trivo-about{display:flex;flex-direction:column;gap:24px}
 .trivo-edit-dock{right:9px;bottom:9px;left:9px;width:auto;justify-content:center;padding:6px;gap:1px}
 .trivo-edit-dock a,.trivo-edit-dock button{font-size:10px;padding:8px 7px}
}
