/* Johnson Restauro 1.4.0 - uniformizacao dos templates de desenvolvimento.
   Regras especificas, carregadas depois dos estilos originais. */
body.jr-site{--jr-ink:#011633;--jr-ink-soft:#6f747e;--jr-accent:#f8c81c;--jr-max:1220px;color:var(--jr-ink)}
body.jr-site .jr-main{font-size:16px;line-height:1.65}
.jr-archive .elementor-section>.elementor-container{max-width:1220px}
.jr-archive .elementor-heading-title{word-break:normal;overflow-wrap:break-word}
.jr-archive .elementor-widget-text-editor{color:#566573;line-height:1.7}
.jr-archive .elementor-widget-heading .elementor-heading-title{line-height:1.25}
.jr-original-header .elementor-nav-menu--main a.elementor-item-active,
.jr-original-header .elementor-nav-menu--main a[aria-current="page"]{color:#e4b50e!important}
/* Hero de paginas interiores: mesmo enquadramento, respiro e breadcrumbs. */
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child{
 min-height:206px!important;padding:47px 20px!important;background:#223a49!important;
 display:flex!important;align-items:center!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child>.elementor-container{
 width:100%!important;max-width:1220px!important;margin:auto!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-widget-wrap{
 display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;
 gap:14px!important;padding:0!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-widget{
 margin:0!important;width:auto!important;flex:0 1 auto!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-heading-title{
 font-family:Montserrat,Arial,sans-serif!important;font-size:clamp(31px,3.6vw,45px)!important;
 font-weight:800!important;color:#fff!important;margin:0!important;line-height:1.2!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-widget-icon-list{
 font-size:14px!important;color:#e6ebee!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-icon-list-items{
 display:flex!important;gap:12px!important;flex-flow:row wrap!important;list-style:none!important;
 margin:0!important;padding:0!important;
}
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-icon-list-text,
.jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child a{color:#e6ebee!important}
/* Secoes comuns e titulos. */
.jr-archive .elementor-top-section:not(:first-child){padding-left:20px;padding-right:20px}
.jr-archive .elementor-top-section:not(:first-child)>.elementor-container{max-width:1220px}
.jr-archive .elementor-top-section:not(:first-child) .elementor-widget-heading h2.elementor-heading-title{
 font-size:clamp(25px,2.6vw,36px);letter-spacing:-.02em;line-height:1.23;
}
/* Grelhas de Servicos: mesmo cartao e hierarquia em Inicio/Servicos. */
.jr-archive .jr-service-grid{padding:0!important;margin-bottom:22px!important}
.jr-archive .jr-service-grid>.elementor-container{
 display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
 align-items:stretch!important;gap:22px!important;max-width:1220px!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column{
 width:100%!important;min-width:0!important;flex:initial!important;
 border:1px solid #e9edf1!important;border-radius:7px!important;
 background:#fff!important;overflow:hidden!important;
 box-shadow:0 8px 22px rgba(1,22,51,.05)!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column>.elementor-widget-wrap{
 display:flex!important;flex-direction:column!important;align-items:stretch!important;
 width:100%!important;padding:0 0 20px!important;gap:0!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column .elementor-widget-image{
 margin:0 0 16px!important;width:100%!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column .elementor-widget-image img{
 width:100%!important;height:auto!important;aspect-ratio:4/3!important;
 object-fit:cover!important;min-height:0!important;max-height:none!important;border-radius:0!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column .elementor-widget-heading,
.jr-archive .jr-service-grid>.elementor-container>.elementor-column .elementor-widget-text-editor{
 padding:0 18px!important;width:100%!important;margin:0 0 9px!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column h2,
.jr-archive .jr-service-grid>.elementor-container>.elementor-column h3{
 font-size:21px!important;line-height:1.27!important;font-weight:750!important;margin:0!important;
}
.jr-archive .jr-service-grid>.elementor-container>.elementor-column p{
 font-size:14px!important;line-height:1.65!important;overflow-wrap:anywhere;
}
/* A pagina inicial tinha uma linha final de quatro servicos no HTML arquivado. */
.jr-page-inicio .elementor-element-37ffd58>.elementor-container{grid-template-columns:repeat(4,minmax(0,1fr))!important}
/* Portfolio: associar imagens recuperadas aos cartoes sem mudar a respetiva categoria. */
.jr-archive .jr-portfolio-card{min-height:240px;height:240px;border-radius:6px}
.jr-archive .jr-portfolio-card-visual{background-image:none!important;background-size:cover!important}
.jr-archive .jr-portfolio-card-visual img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
.jr-archive .jr-portfolio-card-visual:after{
 content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,22,51,.88),rgba(1,22,51,.04) 73%);
}
.jr-archive .jr-portfolio-card-name,.jr-archive .jr-portfolio-card-arrow{
 position:absolute;z-index:2!important;color:#fff!important;text-shadow:0 1px 4px rgba(0,0,0,.25)
}
/* Logos dos clientes: carrossel com a mesma altura em Inicio e Servicos. */
.jr-archive .elementor-widget-image-carousel .elementor-image-carousel-wrapper{width:100%!important;overflow:hidden!important;max-width:1220px!important;margin:0 auto!important}
.jr-archive .elementor-widget-image-carousel .elementor-image-carousel{
 display:flex!important;flex-wrap:nowrap!important;width:100%!important;
 align-items:center!important;gap:0!important;justify-content:flex-start!important;
 transition:transform .65s ease!important;
}
.jr-archive .elementor-widget-image-carousel .swiper-slide{
 flex:0 0 16.666667%!important;width:16.666667%!important;min-width:0!important;max-width:none!important;
 height:88px!important;display:flex!important;justify-content:center!important;align-items:center!important;
 padding:0 14px!important;margin:0!important;
}
.jr-archive .elementor-widget-image-carousel .swiper-slide-inner{display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important}
.jr-archive .elementor-widget-image-carousel figure{margin:0!important;width:100%!important;text-align:center!important}
.jr-archive .elementor-widget-image-carousel .swiper-slide img{
 width:auto!important;max-width:100%!important;height:auto!important;max-height:67px!important;
 min-height:0!important;object-fit:contain!important;box-shadow:none!important;
}
.jr-archive .elementor-widget-image-carousel .swiper-slide:has(img[src*="placeholder.svg"]){display:none!important}
/* Proposta/orcamento: retiram-se decoracoes antigas do Elementor que tapavam textos. */
.jr-archive .jr-archive-cta{
 position:relative!important;min-height:0!important;height:auto!important;
 padding:64px 20px 80px!important;margin:0!important;background:#f3f5fc!important;
}
.jr-archive .jr-archive-cta>.elementor-container{max-width:950px!important;width:100%!important}
.jr-archive .jr-archive-cta .elementor-widget-image{display:none!important}
.jr-archive .jr-archive-cta .elementor-column,
.jr-archive .jr-archive-cta .elementor-widget-wrap{width:100%!important;max-width:100%!important}
.jr-archive .jr-archive-cta .elementor-widget-wrap{
 display:flex!important;flex-direction:column!important;align-items:center!important;
 padding:0!important;gap:0!important;
}
.jr-archive .jr-archive-cta .elementor-widget-heading{margin:0 0 22px!important;width:100%!important;text-align:center!important}
.jr-archive .jr-archive-cta .elementor-widget-heading .elementor-heading-title{
 max-width:790px!important;margin:auto!important;color:#011633!important;
 font-size:clamp(26px,3vw,36px)!important;text-align:center!important;
}
.jr-archive .jr-archive-cta .jr-form-slot{max-width:820px!important;width:100%!important;padding:0!important;margin:auto!important}
.jr-archive .jr-contact-form{max-width:820px!important;gap:16px!important;margin:0 auto!important}
.jr-archive .jr-contact-form input:not([type=checkbox]),.jr-archive .jr-contact-form textarea{
 background:#fff!important;border:1px solid #cbd5df!important;border-radius:4px!important;
 padding:12px 14px!important;color:#011633!important;
}
.jr-archive .jr-contact-form input:focus-visible,.jr-archive .jr-contact-form textarea:focus-visible{outline:2px solid #e4b50e!important;outline-offset:1px}
.jr-archive .jr-contact-form button.jr-button{
 color:#011633!important;background:#f8c81c!important;border-color:#f8c81c!important;
 border-radius:4px!important;min-height:50px!important;text-transform:uppercase!important;
}
/* Contactos: infos legiveis, formulario alinhado com a coluna. */
.jr-archive .jr-contact-info{padding:60px 20px 76px!important}
.jr-archive .jr-contact-info>.elementor-container{align-items:flex-start!important;gap:30px!important}
.jr-archive .jr-contact-info>.elementor-container>.elementor-column{
 flex:1 1 calc(50% - 15px)!important;width:calc(50% - 15px)!important;min-width:0!important;
}
.jr-archive .jr-contact-info .elementskit-infobox{padding:14px 17px!important;border:1px solid #e4e9ed!important;border-radius:5px!important;background:#fff!important;margin-bottom:12px!important}
.jr-archive .jr-contact-info .jr-form-slot{padding:0!important;margin:0!important;max-width:none!important}
.jr-archive .jr-contact-info .jr-contact-form{width:100%!important;max-width:none!important}
.jr-archive .jr-contact-info .jr-contact-form>label:not(.jr-consent){grid-column:1/-1}
/* Quem Somos: colunas equilibradas, sem textos encobertos pelas estatisticas. */
.jr-page-quem-somos .elementor-element-4bb26ed>.elementor-container{display:flex!important;gap:34px!important;align-items:flex-start!important}
.jr-page-quem-somos .elementor-element-4bb26ed>.elementor-container>.elementor-column{
 flex:1 1 calc(50% - 17px)!important;width:calc(50% - 17px)!important;min-width:0!important;
}
.jr-page-quem-somos .elementor-element-4bb26ed .elementor-absolute{
 position:relative!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;transform:none!important;
}
/* Páginas temporarias das categorias sem HTML: manter o mesmo cabeçalho e CTA. */
.jr-page-banner{background:#223a49!important;padding:48px 20px!important}
.jr-placeholder-tile{height:200px}
@media(max-width:1024px){
 .jr-archive .jr-service-grid>.elementor-container{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .jr-page-inicio .elementor-element-37ffd58>.elementor-container{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .jr-archive .elementor-widget-image-carousel .swiper-slide{flex-basis:25%!important;width:25%!important}
}
@media(max-width:780px){
 .jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child{padding:36px 16px!important;min-height:170px!important}
 .jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-widget-wrap{flex-direction:column!important;align-items:flex-start!important;gap:8px!important}
 .jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-widget-icon-list{margin:0!important}
 .jr-archive .elementor-top-section:not(:first-child){padding-left:16px!important;padding-right:16px!important}
 .jr-archive .jr-service-grid>.elementor-container{gap:16px!important}
 .jr-archive .elementor-widget-image-carousel .swiper-slide{flex-basis:33.3333%!important;width:33.3333%!important}
 .jr-archive .jr-contact-info>.elementor-container{flex-direction:column!important;gap:22px!important}
 .jr-archive .jr-contact-info>.elementor-container>.elementor-column{flex:0 0 auto!important;width:100%!important}
 .jr-page-quem-somos .elementor-element-4bb26ed>.elementor-container{flex-direction:column!important;gap:16px!important}
 .jr-page-quem-somos .elementor-element-4bb26ed>.elementor-container>.elementor-column{flex:0 0 auto!important;width:100%!important}
 .jr-archive .jr-archive-cta{padding:52px 16px 72px!important}
}
@media(max-width:560px){
 .jr-archive .jr-service-grid>.elementor-container,
 .jr-page-inicio .elementor-element-37ffd58>.elementor-container{grid-template-columns:minmax(0,1fr)!important}
 .jr-archive .jr-service-grid>.elementor-container>.elementor-column .elementor-widget-image img{aspect-ratio:16/10!important}
 .jr-archive .jr-portfolio-grid{grid-template-columns:minmax(0,1fr)!important;gap:13px!important}
 .jr-archive .jr-portfolio-card{height:210px!important;min-height:210px!important}
 .jr-archive .elementor-widget-image-carousel .swiper-slide{flex-basis:50%!important;width:50%!important;padding:0 9px!important}
 .jr-archive .jr-contact-form{grid-template-columns:1fr!important}
 .jr-archive .jr-archive-cta{padding:42px 12px 60px!important}
 .jr-archive .jr-archive-cta .elementor-widget-heading .elementor-heading-title{font-size:25px!important}
 .jr-archive:not(.jr-page-inicio)>.elementor>.elementor-top-section:first-child .elementor-heading-title{font-size:30px!important}
}
@media(prefers-reduced-motion:reduce){.jr-archive .elementor-widget-image-carousel .elementor-image-carousel{transition:none!important}}

/* Categorias sem HTML arquivado: capa de servico em vez de seis blocos vazios. */
.jr-category-lead{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:38px;align-items:center}
.jr-category-lead>img{width:100%;max-height:430px;aspect-ratio:4/3;object-fit:cover;border-radius:7px}
.jr-category-lead>div{max-width:570px}
.jr-category-lead .jr-button{color:#011633!important}
@media(max-width:780px){.jr-category-lead{grid-template-columns:minmax(0,1fr);gap:22px}}
