
:root{
  --ink:#111111;
  --ink-soft:#3d3d3d;
  --paper:#faf8f3;
  --white:#ffffff;
  --stone:#e7e1d8;
  --sand:#d9cdbb;
  --champagne:#f1e8d7;
  --taupe:#958774;
  --black:#050505;
  --line:#2b2b2b;
  --muted:#f5f1ea;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body.protected, body.protected *{
  -webkit-user-select:none;
  user-select:none;
}
a{color:inherit;text-decoration:none}
p{margin:0 0 18px}
h1,h2,h3{margin:0 0 18px;line-height:1.05;letter-spacing:-.03em}
h1{font-size:clamp(42px,7vw,88px);font-weight:500}
h2{font-size:clamp(30px,4vw,56px);font-weight:500}
h3{font-size:clamp(21px,2.5vw,32px);font-weight:500}
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:20;
  background:rgba(250,248,243,.94);
  border-bottom:1px solid var(--line);
  transition:transform .32s ease, background .32s ease;
}
.site-header.hide{transform:translateY(-100%)}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:22px;max-width:1320px;margin:auto;padding:18px 28px;
}
.logo{font-size:24px;letter-spacing:-.04em;font-weight:700;white-space:nowrap}
.logo .maxo{color:var(--black)}
.logo .casas{color:var(--taupe);font-weight:600}
.nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.nav a{
  padding:7px 0;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
  border-bottom:1px solid transparent;
}
.nav a:hover{border-bottom-color:var(--ink)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--black);
  background:var(--black);
  color:var(--white);
  padding:13px 18px;
  min-height:44px;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:700;
}
.btn.light{background:transparent;color:var(--black)}
.btn:hover{background:var(--taupe);border-color:var(--taupe);color:var(--white)}
main{padding-top:84px}
.hero{
  min-height:88vh;
  display:grid;grid-template-columns:1.15fr .85fr;
  border-bottom:1px solid var(--line);
}
.hero-text{padding:92px 7vw 72px;display:flex;flex-direction:column;justify-content:center}
.hero-panel{border-left:1px solid var(--line);background:linear-gradient(135deg,var(--champagne),var(--muted));padding:92px 5vw;display:flex;flex-direction:column;justify-content:end}
.kicker{
  text-transform:uppercase;letter-spacing:.13em;font-size:12px;font-weight:700;color:var(--taupe);margin-bottom:22px;
}
.lead{font-size:clamp(19px,2.2vw,29px);color:var(--ink-soft);max-width:780px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.grid{display:grid;gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
.service-card,.metric,.block{
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.45);padding:28px;min-height:210px;
}
.service-card{display:flex;flex-direction:column;gap:14px}
.service-card strong{font-size:25px;font-weight:500;letter-spacing:-.03em}
.service-card span{color:var(--ink-soft)}
.card-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--taupe);font-weight:700}
.section{padding:82px 7vw;border-bottom:1px solid var(--line)}
.section.tight{padding-top:52px;padding-bottom:52px}
.section-head{display:grid;grid-template-columns:.75fr 1.25fr;gap:50px;margin-bottom:42px}
.panel{
  background:var(--white);border:1px solid var(--line);padding:28px;
}
.panel.pastel{background:var(--champagne)}
.list{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.list li{border-top:1px solid var(--line);padding-top:12px;color:var(--ink-soft)}
.process-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line);
}
.process-card{
  min-height:190px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.38);
}
.process-card small{display:block;text-transform:uppercase;letter-spacing:.12em;color:var(--taupe);font-weight:700;margin-bottom:12px}
.process-card strong{display:block;font-size:22px;font-weight:500;margin-bottom:10px}
.media-zones{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-left:1px solid var(--line);border-top:1px solid var(--line)}
.media-zone{min-height:230px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}
.media-placeholder{
  height:130px;border:1px dashed var(--taupe);display:flex;align-items:center;justify-content:center;
  color:var(--taupe);font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:15px;text-align:center;padding:10px;
}
.timeline{border-left:1px solid var(--line)}
.timeline-row{display:grid;grid-template-columns:260px 1fr;border-top:1px solid var(--line)}
.timeline-row:last-child{border-bottom:1px solid var(--line)}
.timeline-label{padding:22px;border-right:1px solid var(--line);background:var(--champagne);font-weight:700}
.timeline-content{padding:22px;color:var(--ink-soft)}
.cta{
  background:var(--black);color:var(--white);padding:78px 7vw;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center
}
.cta p{color:#ddd;max-width:760px}
.cta .btn{border-color:var(--white)}
.cta .btn.light{color:var(--white);background:transparent;border-color:var(--white)}
.cta .btn.light:hover{background:var(--white);color:var(--black)}
.footer{padding:32px 7vw;background:var(--paper);border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;color:var(--ink-soft);font-size:13px}

.contact-details{display:flex;gap:18px;flex-wrap:wrap;margin:22px 0;font-size:clamp(20px,2.4vw,34px);letter-spacing:-.03em}
.contact-details a{border-bottom:1px solid var(--line);padding-bottom:4px}
.contact-actions,.cta-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.footer-contact{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-weight:700;color:var(--ink)}
.cta-contact{margin-top:18px;color:#ffffff;font-size:18px;font-weight:700}
.cta-contact a{border-bottom:1px solid currentColor}

.protection-note{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
  background:var(--black);color:var(--white);border:1px solid var(--black);
  padding:10px 14px;font-size:12px;letter-spacing:.06em;display:none;z-index:9999
}
@media(max-width:1000px){
  .hero{grid-template-columns:1fr}
  .hero-panel{border-left:0;border-top:1px solid var(--line)}
  .section-head{grid-template-columns:1fr}
  .grid.cols-3,.grid.cols-4,.process-grid,.media-zones{grid-template-columns:1fr 1fr}
  .timeline-row{grid-template-columns:1fr}
  .timeline-label{border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:700px){
  .contact-details{font-size:22px;display:grid;gap:10px}
  .footer-contact{display:grid;gap:6px}
  .cta-actions{display:grid;grid-template-columns:1fr;width:100%}

  main{padding-top:72px}
  .header-inner{padding:14px 18px}
  .nav{display:none}
  .hero-text,.hero-panel,.section,.cta{padding-left:22px;padding-right:22px}
  .grid.cols-3,.grid.cols-4,.process-grid,.media-zones{grid-template-columns:1fr}
  .cta{grid-template-columns:1fr}
}
@media print{
  body{background:white;color:black}
  .site-header,.hero-actions,.cta,.footer,.protection-note{display:none!important}
  main{padding-top:0}
  .section,.hero,.panel,.service-card,.process-card,.media-zone{break-inside:avoid}
}


/* Menu compacto / hamburger */
.menu-toggle{
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  background:transparent;
  padding:0 10px;
  cursor:pointer;
}
.menu-toggle span{
  display:block;
  height:1px;
  width:100%;
  background:var(--black);
}
.nav{
  position:fixed;
  top:72px;
  right:28px;
  width:min(380px,calc(100vw - 36px));
  max-height:calc(100vh - 94px);
  overflow:auto;
  display:none;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:0;
  background:var(--paper);
  border:1px solid var(--line);
  z-index:30;
}
.nav.open{display:flex}
.nav a{
  border-bottom:1px solid var(--line);
  padding:16px 18px;
  font-size:12px;
  text-align:left;
}
.nav a:last-child{border-bottom:0}
.nav a:hover{background:var(--champagne);border-bottom-color:var(--line)}
body.menu-open{overflow:hidden}
body.menu-open::after{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.18);
  z-index:19;
}
body.menu-open .site-header{z-index:40}
body.menu-open .nav{z-index:41}

/* Galerias automáticas: visual compacto, centralizado e pensado para toque */
.media-section[hidden]{display:none!important}
.media-section{padding-top:58px;padding-bottom:74px}
.media-section .section-head{grid-template-columns:.72fr 1.28fr;gap:34px;margin-bottom:28px}
.media-section h2{font-size:clamp(24px,3vw,34px);line-height:1.04;letter-spacing:-.04em;max-width:420px}
.media-section .section-head p{font-size:17px;max-width:680px;color:var(--ink-soft)}
.media-gallery{display:grid;gap:42px;justify-items:center}
.media-block{width:min(920px,100%);border:1px solid var(--line);background:rgba(255,255,255,.44)}
.media-block-head{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:15px 18px;background:var(--champagne)}
.media-block-head span{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--taupe);font-weight:700}
.media-block-head strong{font-size:18px;font-weight:500;letter-spacing:-.03em;text-align:right}
.media-viewer-square,.pano-box,.ba-box{width:min(760px,calc(100vw - 60px));margin:28px auto 18px}
.media-viewer-square{aspect-ratio:1/1;border:1px solid var(--line);background:var(--muted);position:relative;overflow:hidden;touch-action:pan-y;display:flex;align-items:center;justify-content:center}
.media-main{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:var(--muted)}
.media-viewer-square video.media-main{object-fit:contain;background:#111}
.media-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:58px;border:1px solid rgba(0,0,0,.55);background:rgba(250,248,243,.86);color:var(--black);font-size:34px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:4}
.media-prev{left:14px}.media-next{right:14px}
.media-arrow:hover{background:var(--black);color:var(--white)}
.media-full{position:absolute;right:14px;bottom:14px;border:1px solid var(--black);background:var(--black);color:var(--white);padding:10px 13px;text-transform:uppercase;font-size:10px;letter-spacing:.08em;font-weight:700;cursor:pointer;z-index:4}
.media-thumbs{display:flex;gap:8px;overflow:auto;scroll-snap-type:x proximity;padding:14px 18px;border-top:1px solid var(--line);background:rgba(255,255,255,.5);justify-content:flex-start}
.media-thumb{width:82px;height:64px;border:1px solid var(--line);background:var(--white);padding:0;flex:0 0 auto;cursor:pointer;opacity:.66;scroll-snap-align:start}
.media-thumb.on,.media-thumb:hover{opacity:1;outline:2px solid var(--black);outline-offset:-2px}
.media-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.media-thumb-video{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-size:10px;text-transform:uppercase;letter-spacing:.08em;background:var(--muted)}
.pano-box{margin-bottom:18px}
.pano-stage{aspect-ratio:1/1;width:100%;border:1px solid var(--line);background-repeat:repeat-x;background-position:50% 50%;background-size:185% auto;background-color:var(--muted);cursor:grab;position:relative;touch-action:none;overflow:hidden;user-select:none}
.pano-stage:active{cursor:grabbing}
.pano-stage:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;background-color:#000;border:0}
.pano-hint{position:absolute;left:14px;top:14px;background:rgba(250,248,243,.84);border:1px solid rgba(0,0,0,.18);padding:8px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);z-index:4}
.pano-controls{position:absolute;left:14px;right:14px;bottom:14px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;z-index:5}
.pano-controls button{border:1px solid var(--black);background:rgba(250,248,243,.9);color:var(--black);min-width:38px;height:36px;padding:0 10px;font-weight:700;font-size:12px;letter-spacing:.04em;cursor:pointer}
.pano-controls button:hover{background:var(--black);color:var(--white)}
.ba-box{aspect-ratio:1/1}
.ba-slider{width:100%;height:100%;border:1px solid var(--line);position:relative;overflow:hidden;background:var(--muted)}
.ba-slider img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;pointer-events:none}
.ba-after{position:absolute;left:0;top:0;bottom:0;width:50%;overflow:hidden;border-right:2px solid var(--white)}
.ba-after img{width:min(760px,calc(100vw - 60px));max-width:none;height:100%;object-fit:cover}
.ba-range{position:absolute;left:0;right:0;bottom:18px;width:calc(100% - 44px);margin:0 22px;accent-color:var(--black)}
.ba-pairs{justify-content:center}
.ba-pair{border:1px solid var(--line);background:var(--white);min-width:50px;height:38px;font-weight:700;cursor:pointer}
.ba-pair.on{background:var(--black);color:var(--white)}
.maxo-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:200;display:none;align-items:center;justify-content:center;padding:54px}
.maxo-lightbox.open{display:flex}
.lb-stage{max-width:92vw;max-height:88vh;display:flex;align-items:center;justify-content:center}
.lb-stage img,.lb-stage video{max-width:92vw;max-height:88vh;object-fit:contain;background:#000}
.lb-close,.lb-prev,.lb-next{position:absolute;border:1px solid #fff;background:#fff;color:#000;padding:12px 16px;text-transform:uppercase;font-size:11px;letter-spacing:.08em;font-weight:700;cursor:pointer}
.lb-close{top:18px;right:18px}.lb-prev{left:18px;top:50%;font-size:34px;line-height:1}.lb-next{right:18px;top:50%;font-size:34px;line-height:1}
.admin-media-link{display:none!important}
.admin-mode .admin-media-link{display:inline-flex!important}
.nav a.reserved-link{border-color:var(--line);opacity:.78}
.nav a.reserved-link:hover{opacity:1}
@media(max-width:900px){
  .nav{top:64px;left:18px;right:18px;width:auto;max-height:calc(100vh - 82px)}
  .media-section{padding-top:44px;padding-bottom:54px}
  .media-section .section-head{display:block;margin-bottom:22px}
  .media-section h2{font-size:clamp(24px,8vw,32px);max-width:340px}
  .media-section .section-head p{font-size:15px;margin-top:14px}
  .media-block{width:100%}
  .media-block-head{display:block;padding:13px 14px}
  .media-block-head strong{text-align:left;display:block;margin-top:4px;font-size:17px}
  .media-viewer-square,.pano-box,.ba-box{width:calc(100vw - 44px);margin:18px auto 12px}
  .media-arrow{width:38px;height:50px;font-size:30px}.media-prev{left:8px}.media-next{right:8px}
  .media-full{right:8px;bottom:8px;padding:9px 10px;font-size:9px}
  .media-thumb{width:70px;height:54px}
  .pano-hint{display:none}.pano-controls{left:8px;right:8px;bottom:8px}.pano-controls button{min-width:32px;height:32px;padding:0 8px;font-size:11px}
  .ba-after img{width:calc(100vw - 44px)}
  .maxo-lightbox{padding:18px}.lb-prev,.lb-next{top:auto;bottom:18px}.lb-prev{left:18px}.lb-next{right:18px}
}


/* Contactos ocultos: os botões abrem email, mas email/telefone não ficam escritos no site. */
.footer-contact,.cta-contact{display:none!important}

/* Vista 360 esférica WebGL */
.pano-webgl-stage{background:#050505!important;background-image:none!important;background-size:auto!important;background-position:center!important;display:block;overflow:hidden}
.pano-canvas{width:100%;height:100%;display:block;background:#050505;touch-action:none;position:absolute;inset:0}
.pano-stage:fullscreen .pano-canvas{width:100vw;height:100vh}
.pano-fallback{height:100%;display:grid;place-items:center;text-align:center;color:#fff;background:#050505;padding:24px}


/* Watermark media */
.media-watermark,.lb-watermark{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:clamp(18px,4vw,42px);font-weight:700;letter-spacing:.08em;
  color:rgba(255,255,255,.20);text-transform:none;pointer-events:none;z-index:3;
  text-shadow:0 1px 2px rgba(0,0,0,.18);white-space:nowrap;
}
.lb-stage{position:relative}
.lb-watermark{z-index:2}
.media-watermark-pano{z-index:2}

/* Before / after improved slider */
.ba-slider{cursor:ew-resize;touch-action:none}
.ba-after{width:var(--split,50%)}
.ba-after img{width:100%;max-width:none;height:100%;object-fit:cover}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5;margin:0}
.ba-handle{position:absolute;left:var(--split,50%);top:0;bottom:0;width:0;border-left:2px solid rgba(255,255,255,.96);transform:translateX(-1px);z-index:4;pointer-events:none}
.ba-handle span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:999px;border:1px solid rgba(0,0,0,.55);background:rgba(250,248,243,.92);box-shadow:0 4px 14px rgba(0,0,0,.15)}
.ba-handle span:before,.ba-handle span:after{content:'';position:absolute;top:50%;width:10px;height:10px;border-top:2px solid #111;border-right:2px solid #111;transform:translateY(-50%) rotate(45deg)}
.ba-handle span:before{left:10px;transform:translateY(-50%) rotate(-135deg)}
.ba-handle span:after{right:10px}
.ba-label,.ba-title{position:absolute;z-index:4;background:rgba(250,248,243,.90);border:1px solid rgba(0,0,0,.18);padding:8px 10px}
.ba-label{top:14px;display:flex;gap:8px;align-items:center}
.ba-label small{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid rgba(0,0,0,.35);font-size:10px;font-weight:700}
.ba-label strong{font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.ba-label-before{left:14px}
.ba-label-after{right:14px}
.ba-title{left:50%;bottom:14px;transform:translateX(-50%);font-size:12px;letter-spacing:.04em;text-align:center;max-width:min(70%,420px)}
.ba-pairs{justify-content:center}
.ba-pair{padding:0 12px;min-width:88px}
@media(max-width:900px){
  .ba-label{top:8px;padding:6px 8px}.ba-label strong{font-size:11px}.ba-label small{width:20px;height:20px}
  .ba-title{bottom:8px;max-width:76%;font-size:11px;padding:7px 9px}
  .ba-handle span{width:40px;height:40px}
}


/* Watermark com logo em assets/logo.png */
.media-watermark,.lb-watermark{
  color:transparent!important;
  text-shadow:none!important;
  width:min(42%,320px);
  max-width:320px;
  aspect-ratio:403/354;
  background:url('../logo.png') center/contain no-repeat;
  opacity:.20;
}
.media-watermark-pano{opacity:.18}
@media(max-width:900px){.media-watermark,.lb-watermark{width:min(48%,240px)}}

.media-watermark img,.lb-watermark img{display:block;width:min(230px,32vw);max-height:150px;object-fit:contain;opacity:.20;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18));}
.lb-watermark{display:grid;place-items:center}


/* Ajuste final da área de media: sem espaço lateral inútil, responsivo e centralizado */
.media-section{
  padding:clamp(34px,5vw,64px) clamp(10px,3vw,38px)!important;
}
.media-section .section-head{
  width:min(1180px,100%);
  margin:0 auto clamp(18px,3vw,30px)!important;
  display:grid;
  grid-template-columns:minmax(220px,.75fr) minmax(280px,1.25fr);
  gap:clamp(16px,3vw,34px);
}
.media-gallery{
  width:100%;
  max-width:980px;
  margin:0 auto!important;
  display:block!important;
}
.media-block{
  width:100%!important;
  max-width:920px;
  margin:0 auto clamp(22px,4vw,42px)!important;
}
.media-viewer-square,.pano-box,.ba-box{
  width:min(760px,100%)!important;
  margin:clamp(12px,2.5vw,26px) auto clamp(10px,2vw,18px)!important;
}
.pano-stage,.media-viewer-square,.ba-slider{
  max-width:100%;
}
@media(max-width:900px){
  .media-section{padding-left:10px!important;padding-right:10px!important;}
  .media-section .section-head{display:block!important;width:100%;}
  .media-gallery{max-width:100%;}
  .media-block{max-width:100%;}
  .media-viewer-square,.pano-box,.ba-box{width:100%!important;}
}
@media(max-width:520px){
  .media-section{padding-left:0!important;padding-right:0!important;}
  .media-section .section-head{padding-left:14px;padding-right:14px;}
  .media-block{border-left:0;border-right:0;}
  .media-block-head{border-left:0;border-right:0;}
}

/* Galeria corrigida: sem coluna vazia, ocupa a largura útil e adapta-se ao ecrã */
.media-section{
  padding-left:0!important;
  padding-right:0!important;
}
.media-section>.section-head{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(26px,5vw,58px) clamp(18px,7vw,84px) clamp(18px,3vw,30px)!important;
  display:grid!important;
  grid-template-columns:minmax(240px,.72fr) minmax(260px,1.28fr)!important;
  gap:clamp(18px,4vw,54px)!important;
}
.media-section .media-gallery{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:block!important;
}
.media-section .media-block{
  width:100%!important;
  max-width:none!important;
  margin:0 0 clamp(22px,4vw,44px)!important;
  border-left:0!important;
  border-right:0!important;
}
.media-section .media-block-head{
  padding-left:clamp(18px,7vw,84px)!important;
  padding-right:clamp(18px,7vw,84px)!important;
}
.media-section .media-viewer-square,
.media-section .pano-box,
.media-section .ba-box{
  width:min(920px,calc(100vw - 32px))!important;
  margin:clamp(14px,2.5vw,28px) auto!important;
}
.obra-selector{
  display:flex;
  gap:8px;
  overflow:auto;
  padding:14px clamp(18px,7vw,84px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.38);
  scroll-snap-type:x proximity;
}
.obra-tab{
  border:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  padding:11px 16px;
  min-height:42px;
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
  scroll-snap-align:start;
}
.obra-tab.on,.obra-tab:hover{background:var(--maxo-button-bg,var(--black));color:var(--maxo-button-text,var(--white));border-color:var(--maxo-button-bg,var(--black))}
.obra-media-inner{width:100%}
@media(max-width:760px){
  .media-section>.section-head{display:block!important;padding-left:16px!important;padding-right:16px!important;}
  .media-section .media-block-head{padding-left:16px!important;padding-right:16px!important;}
  .media-section .media-viewer-square,.media-section .pano-box,.media-section .ba-box{width:calc(100vw - 20px)!important;}
  .obra-selector{padding-left:10px;padding-right:10px;}
}


/* MAXO media layout fix 20260510: galeria full width, sem coluna vazia */
main > section.media-section.section{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  padding-left:0!important;
  padding-right:0!important;
  overflow:hidden!important;
}
main > section.media-section.section > .section-head{
  display:grid!important;
  grid-template-columns:minmax(220px,.72fr) minmax(260px,1.28fr)!important;
  gap:clamp(18px,4vw,54px)!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(28px,5vw,56px) clamp(16px,6vw,72px) clamp(18px,3vw,28px)!important;
}
main > section.media-section.section > .media-gallery{
  display:block!important;
  width:100vw!important;
  max-width:100vw!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
  clear:both!important;
}
main > section.media-section.section .obra-selector{
  width:100%!important;
  padding-left:clamp(12px,5vw,72px)!important;
  padding-right:clamp(12px,5vw,72px)!important;
}
main > section.media-section.section .obra-media-inner{
  width:100%!important;
  max-width:none!important;
}
main > section.media-section.section .media-block{
  width:100%!important;
  max-width:none!important;
  margin:0 0 clamp(22px,4vw,44px)!important;
  border-left:0!important;
  border-right:0!important;
}
main > section.media-section.section .media-block-head{
  padding-left:clamp(16px,6vw,72px)!important;
  padding-right:clamp(16px,6vw,72px)!important;
}
main > section.media-section.section .media-viewer-square,
main > section.media-section.section .pano-box,
main > section.media-section.section .ba-box{
  width:min(980px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  margin:clamp(14px,2.5vw,28px) auto!important;
}
@media(max-width:760px){
  main > section.media-section.section > .section-head{display:block!important;padding-left:16px!important;padding-right:16px!important;}
  main > section.media-section.section .media-block-head{padding-left:16px!important;padding-right:16px!important;}
  main > section.media-section.section .media-viewer-square,
  main > section.media-section.section .pano-box,
  main > section.media-section.section .ba-box{width:calc(100vw - 14px)!important;max-width:calc(100vw - 14px)!important;}
}

/* MAXO 20260510: obra pública ativa sempre preta com texto branco */
.obra-tab.on,
.obra-tab.on:hover,
.obra-tab.on:focus,
.obra-tab:hover{
  background:var(--maxo-button-bg,#050505)!important;
  color:var(--maxo-button-text,#ffffff)!important;
  border-color:var(--maxo-button-bg,#050505)!important;
}
.obra-tab.on *, .obra-tab:hover *{color:var(--maxo-button-text,#ffffff)!important;}


/* MAXO 20260510 portfolio manager / quality 50 */
.portfolio-page .hero{
  min-height:auto!important;
  grid-template-columns:minmax(360px,1fr) minmax(360px,.82fr)!important;
  border-bottom:1px solid var(--line);
}
.portfolio-page .hero-text{padding:clamp(54px,8vw,92px) clamp(28px,7vw,92px)!important;justify-content:center!important;}
.portfolio-page .hero-panel{padding:clamp(44px,7vw,86px) clamp(28px,6vw,72px)!important;justify-content:center!important;gap:20px!important;}
.portfolio-page .hero-logo-img{display:block;width:min(260px,62vw);height:auto;margin:0 0 clamp(22px,4vw,44px);filter:drop-shadow(0 18px 40px rgba(0,0,0,.08));}
.portfolio-page .portfolio-intro{padding-top:clamp(40px,6vw,72px)!important;padding-bottom:clamp(34px,5vw,60px)!important;}
.portfolio-info-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-top:28px;background:#fff;}
.portfolio-info-grid article{padding:28px;border-right:1px solid var(--line);display:grid;gap:12px;}
.portfolio-info-grid article:last-child{border-right:0;}
.portfolio-info-grid strong{font-size:18px;color:#111;}.portfolio-info-grid span{color:#444;line-height:1.55;}
.portfolio-page .media-section{padding-top:0!important;background:#faf8f3;}
.portfolio-page .media-section>.section-head{padding-top:clamp(36px,6vw,70px)!important;padding-bottom:clamp(20px,4vw,34px)!important;}
.portfolio-page .obra-selector{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;}
.portfolio-page .obra-tab.on{background:var(--maxo-button-bg,#000)!important;color:var(--maxo-button-text,#fff)!important;border-color:var(--maxo-button-bg,#000)!important;}.portfolio-page .obra-tab.on *{color:var(--maxo-button-text,#fff)!important;}
@media(max-width:850px){
  .portfolio-page .hero{grid-template-columns:1fr!important;}
  .portfolio-page .hero-panel{border-left:0!important;border-top:1px solid var(--line)!important;}
  .portfolio-info-grid{grid-template-columns:1fr;}.portfolio-info-grid article{border-right:0;border-bottom:1px solid var(--line);}.portfolio-info-grid article:last-child{border-bottom:0;}
}

/* Regra global de contraste: qualquer botão/aba ativa preta usa texto branco */
.btn:not(.light),button.btn:not(.light),.obra-tab.on,.obra-admin-tab.on,.media-mode-tabs .btn:not(.light){background:var(--maxo-button-bg,#050505)!important;color:var(--maxo-button-text,#fff)!important;border-color:var(--maxo-button-bg,#050505)!important;}
.btn:not(.light) *,button.btn:not(.light) *,.obra-tab.on *,.obra-admin-tab.on *,.media-mode-tabs .btn:not(.light) *{color:var(--maxo-button-text,#fff)!important;opacity:1!important;text-shadow:none!important;}

/* MAXO FINAL 20260510 — tema único: GOLD / PRETO / BRANCO
   Regra fixa: fundos brancos usam texto preto; fundos pretos usam texto branco; linhas e hamburger usam gold. */
:root{
  --maxo-gold:#c9a227;
  --maxo-black:#050505;
  --maxo-white:#ffffff;
  --gold:var(--maxo-gold);
  --black:var(--maxo-black);
  --white:var(--maxo-white);
  --ink:var(--maxo-black);
  --ink-soft:var(--maxo-black);
  --paper:var(--maxo-white);
  --stone:var(--maxo-white);
  --sand:var(--maxo-white);
  --champagne:var(--maxo-white);
  --taupe:var(--maxo-gold);
  --line:var(--maxo-gold);
  --muted:var(--maxo-white);
  --maxo-bg:var(--maxo-white);
  --maxo-bg-alt:var(--maxo-white);
  --maxo-bg-soft:var(--maxo-white);
  --maxo-card:var(--maxo-white);
  --maxo-card-alt:var(--maxo-white);
  --maxo-text:var(--maxo-black);
  --maxo-muted:var(--maxo-black);
  --maxo-inverted:var(--maxo-white);
  --maxo-line:var(--maxo-gold);
  --maxo-accent:var(--maxo-gold);
  --maxo-header:var(--maxo-white);
  --maxo-nav:var(--maxo-white);
  --maxo-input:var(--maxo-white);
  --maxo-button-bg:var(--maxo-black);
  --maxo-button-text:var(--maxo-gold);
  --maxo-button-hover-bg:var(--maxo-gold);
  --maxo-button-hover-text:var(--maxo-black);
  --maxo-cta-bg:var(--maxo-black);
  --maxo-cta-text:var(--maxo-white);
  --maxo-alert:var(--maxo-black);
}
html,body{background:var(--maxo-white)!important;color:var(--maxo-black)!important;}
body,p,li,span,strong,small,em,label,input,select,textarea,button,a,h1,h2,h3,h4,h5,h6{color:inherit;}
h1,h2,h3,.lead,.section p,.hero p,.service-card span,.metric p,.timeline-content,.list li{color:var(--maxo-black)!important;}
.site-header,.upload-header{background:var(--maxo-white)!important;border-bottom:1px solid var(--maxo-gold)!important;}
.header-inner,.hero,.hero-panel,.section,.panel,.service-card,.metric,.block,.process-card,.media-zone,.media-block,.media-block-head,.timeline,.timeline-row,.timeline-label,.footer,.grid,.process-grid,.media-zones,.portfolio-info-grid,.portfolio-info-grid article,.obra-selector,.pano-stage,.media-viewer-square,.ba-slider,.media-thumb,.ba-pair,.admin-media-item,.portfolio-admin-card,.upload-card,.upload-context,.file-zone,.preview-item,.progress-track,.upload-msg,input,select,textarea{border-color:var(--maxo-gold)!important;}
.logo .maxo{color:var(--maxo-black)!important;}
.logo .casas,.kicker,.card-kicker,.process-card small,.media-block-head span,.progress-row strong{color:var(--maxo-gold)!important;}
.hero-panel,.panel.pastel,.timeline-label,.media-block-head,.upload-card,.service-card,.metric,.block,.process-card,.media-zone,.portfolio-info-grid,.portfolio-info-grid article,.portfolio-page .media-section,.obra-selector,.admin-media-item,.portfolio-admin-card,.upload-context,.file-zone,.preview-item,.portfolio-empty{background:var(--maxo-white)!important;}
.nav{background:var(--maxo-white)!important;border:1px solid var(--maxo-gold)!important;}
.nav a{color:var(--maxo-black)!important;border-bottom:1px solid var(--maxo-gold)!important;background:var(--maxo-white)!important;}
.nav a:hover,.nav a:focus{background:var(--maxo-black)!important;color:var(--maxo-white)!important;border-bottom-color:var(--maxo-gold)!important;}
.menu-toggle{background:var(--maxo-black)!important;border:1px solid var(--maxo-gold)!important;color:var(--maxo-gold)!important;}
.menu-toggle span{background:var(--maxo-gold)!important;color:var(--maxo-gold)!important;height:2px!important;}
.btn,button.btn,.media-full,.media-arrow,.pano-btn,.pano-controls button,.ba-pair.on,.obra-tab.on,.obra-tab:hover,.obra-admin-tab.on,.media-mode-tabs .btn:not(.light){background:var(--maxo-black)!important;color:var(--maxo-white)!important;border:1px solid var(--maxo-gold)!important;}
.btn:not(.light) *,button.btn:not(.light) *,.media-full *,.media-arrow *,.pano-btn *,.obra-tab.on *,.obra-tab:hover *,.obra-admin-tab.on *,.media-mode-tabs .btn:not(.light) *{color:var(--maxo-white)!important;opacity:1!important;text-shadow:none!important;}
.btn.light,.media-mode-tabs .btn.light,.obra-tab,.obra-admin-tab,.ba-pair{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border:1px solid var(--maxo-gold)!important;}
.btn.light *,.media-mode-tabs .btn.light *,.obra-tab *,.obra-admin-tab *,.ba-pair *{color:var(--maxo-black)!important;}
.btn:hover,button.btn:hover,.media-full:hover,.media-arrow:hover,.pano-btn:hover,.pano-controls button:hover{background:var(--maxo-gold)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}
.btn:hover *,button.btn:hover *,.media-full:hover *,.media-arrow:hover *,.pano-btn:hover *,.pano-controls button:hover *{color:var(--maxo-black)!important;}
.cta,.protection-note,.maxo-lightbox,.pano-webgl-stage,.pano-canvas,.pano-fallback{background:var(--maxo-black)!important;color:var(--maxo-white)!important;border-color:var(--maxo-gold)!important;}
.cta *,.protection-note *,.pano-fallback *{color:var(--maxo-white)!important;}
.cta .btn{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}
.cta .btn.light{background:transparent!important;color:var(--maxo-white)!important;border-color:var(--maxo-gold)!important;}
input,select,textarea{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border:1px solid var(--maxo-gold)!important;}
input::placeholder,textarea::placeholder{color:var(--maxo-black)!important;opacity:.65!important;}
.media-placeholder,.pano-hint,.ba-label,.ba-title,.admin-file-name,.obra-active-line,.progress-note{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}
.media-placeholder{border-style:dashed!important;color:var(--maxo-gold)!important;}
.media-thumb.on,.media-thumb:hover{outline:2px solid var(--maxo-gold)!important;}
.ba-after{border-right:2px solid var(--maxo-gold)!important;}
.ba-handle{border-left:2px solid var(--maxo-gold)!important;}
.ba-handle span{background:var(--maxo-white)!important;border:1px solid var(--maxo-gold)!important;}
.ba-handle span:before,.ba-handle span:after{border-color:var(--maxo-black)!important;}
.ba-label small{border-color:var(--maxo-gold)!important;color:var(--maxo-black)!important;}
.obra-admin-tab.on b,.obra-tab.on b{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border:1px solid var(--maxo-gold)!important;}
.obra-admin-tab:not(.on) b{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}
.upload-msg.ok,.upload-msg.err{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}
.footer{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-top:1px solid var(--maxo-gold)!important;}
.footer *{color:var(--maxo-black)!important;}
body.menu-open::after{background:rgba(0,0,0,.35)!important;}
.lb-close,.lb-prev,.lb-next{background:var(--maxo-white)!important;color:var(--maxo-black)!important;border-color:var(--maxo-gold)!important;}



/* MAXO 20260510 FIX hamburger e contraste global */
:root{--maxo-gold:#c9a227;--maxo-black:#050505;--maxo-white:#ffffff;}
.menu-toggle{background:var(--maxo-black)!important;border:1px solid var(--maxo-gold)!important;}
.menu-toggle span{background:var(--maxo-gold)!important;height:2px!important;}
.btn:not(.light),button.btn:not(.light),.obra-tab.on,.obra-tab:hover{background:var(--maxo-black)!important;color:var(--maxo-white)!important;border:1px solid var(--maxo-gold)!important;}
.btn:not(.light) *,button.btn:not(.light) *,.obra-tab.on *,.obra-tab:hover *{color:var(--maxo-white)!important;}
.logo .casas,.kicker,.card-kicker,.process-card small{color:var(--maxo-gold)!important;}


/* MAXO FIX FINAL 2026-05-10: tabul activ/GERAL are text GOLD, nu alb/albastru */
:root{
  --maxo-gold:#c9a227;
  --maxo-black:#050505;
  --maxo-white:#ffffff;
  --maxo-button-text:var(--maxo-gold)!important;
  --maxo-cta-text:var(--maxo-gold)!important;
}
.menu-toggle span{background:var(--maxo-gold,#c9a227)!important;color:var(--maxo-gold,#c9a227)!important;}
.obra-admin-tab.on,
.obra-tab.on,
.obra-tab:hover,
#maxo-upload-card .obra-admin-tab.on,
#maxo-upload-card .obra-admin-tab.on:link,
#maxo-upload-card .obra-admin-tab.on:visited,
.upload-page #maxo-upload-card .obra-admin-tab.on,
.upload-page #maxo-upload-card .obra-admin-tab.on:link,
.upload-page #maxo-upload-card .obra-admin-tab.on:visited{
  background:var(--maxo-black,#050505)!important;
  color:var(--maxo-gold,#c9a227)!important;
  border:1px solid var(--maxo-gold,#c9a227)!important;
}
.obra-admin-tab.on span,
.obra-admin-tab.on strong,
.obra-admin-tab.on small,
.obra-admin-tab.on em,
.obra-tab.on span,
.obra-tab.on strong,
.obra-tab.on small,
.obra-tab.on em,
.obra-tab:hover span,
.obra-tab:hover strong,
.obra-tab:hover small,
.obra-tab:hover em,
#maxo-upload-card .obra-admin-tab.on span,
#maxo-upload-card .obra-admin-tab.on strong,
#maxo-upload-card .obra-admin-tab.on small,
#maxo-upload-card .obra-admin-tab.on em,
.upload-page #maxo-upload-card .obra-admin-tab.on span,
.upload-page #maxo-upload-card .obra-admin-tab.on strong,
.upload-page #maxo-upload-card .obra-admin-tab.on small,
.upload-page #maxo-upload-card .obra-admin-tab.on em,
.upload-page #maxo-upload-card a.obra-admin-tab.on span,
.upload-page #maxo-upload-card a.obra-admin-tab.on strong,
.upload-page #maxo-upload-card a.obra-admin-tab.on small,
.upload-page #maxo-upload-card a.obra-admin-tab.on em{
  color:var(--maxo-gold,#c9a227)!important;
  opacity:1!important;
  text-shadow:none!important;
}
.obra-admin-tab.on b,
.obra-tab.on b,
#maxo-upload-card .obra-admin-tab.on b,
.upload-page #maxo-upload-card .obra-admin-tab.on b,
.upload-page #maxo-upload-card a.obra-admin-tab.on b{
  background:var(--maxo-white,#ffffff)!important;
  color:var(--maxo-black,#050505)!important;
  border:1px solid var(--maxo-gold,#c9a227)!important;
}


/* MAXO FIX: hamburger sempre gold */
.menu-toggle span{background:#c9a227!important;color:#c9a227!important;-webkit-text-fill-color:#c9a227!important;}
.menu-toggle{border-color:#c9a227!important;}


/* MAXO REGRA GLOBAL MOBILE MENU 2026-05-10
   Ecrãs pequenos + scroll: header compacto, navegação em hamburger.
   Formas sempre patrate, sem cantos arredondados. Só gold / preto / branco.
*/
:root{
  --maxo-gold:#c99a16;
  --maxo-black:#000000;
  --maxo-white:#ffffff;
}
.site-header{
  transform:none!important;
  background:var(--maxo-white)!important;
  border-bottom:1px solid var(--maxo-gold)!important;
  box-shadow:none!important;
}
.site-header.hide{transform:none!important;}
.header-inner{
  min-height:64px!important;
  padding:12px 18px!important;
  transition:min-height .18s ease, padding .18s ease!important;
}
.site-header .logo{
  color:var(--maxo-black)!important;
  font-size:22px!important;
  line-height:1!important;
  transition:font-size .18s ease!important;
}
.site-header .logo .maxo{color:var(--maxo-black)!important;}
.site-header .logo .casas{color:var(--maxo-gold)!important;}
.menu-toggle{
  display:inline-flex!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  padding:0 9px!important;
  background:var(--maxo-black)!important;
  border:1px solid var(--maxo-gold)!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.menu-toggle span{
  display:block!important;
  width:100%!important;
  height:2px!important;
  background:var(--maxo-gold)!important;
  color:var(--maxo-gold)!important;
  border-radius:0!important;
}
.nav{
  position:fixed!important;
  top:66px!important;
  left:auto!important;
  right:18px!important;
  width:min(360px,calc(100vw - 36px))!important;
  max-height:calc(100vh - 84px)!important;
  overflow:auto!important;
  display:none!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  gap:0!important;
  background:var(--maxo-white)!important;
  border:1px solid var(--maxo-gold)!important;
  border-radius:0!important;
  box-shadow:none!important;
  z-index:999!important;
}
.nav.open{display:flex!important;}
.nav a{
  display:block!important;
  min-height:42px!important;
  padding:12px 14px!important;
  background:var(--maxo-white)!important;
  color:var(--maxo-black)!important;
  border:0!important;
  border-bottom:1px solid var(--maxo-gold)!important;
  font-size:11px!important;
  line-height:1.25!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
  border-radius:0!important;
}
.nav a:last-child{border-bottom:0!important;}
.nav a:hover,
.nav a:focus{
  background:var(--maxo-black)!important;
  color:var(--maxo-gold)!important;
  outline:1px solid var(--maxo-gold)!important;
  outline-offset:-1px!important;
}
body.menu-open::after{
  content:"";
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.38)!important;
  z-index:990!important;
}
body.menu-open .site-header{z-index:1000!important;}
body.menu-open .nav{z-index:1001!important;}
body.maxo-menu-compact .site-header,
.site-header.scrolled{
  background:var(--maxo-white)!important;
  border-bottom:1px solid var(--maxo-gold)!important;
}
body.maxo-menu-compact .header-inner,
.site-header.scrolled .header-inner{
  min-height:48px!important;
  padding:6px 14px!important;
}
body.maxo-menu-compact .logo,
.site-header.scrolled .logo{
  font-size:18px!important;
}
body.maxo-menu-compact .menu-toggle,
.site-header.scrolled .menu-toggle{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  gap:4px!important;
}
body.maxo-menu-compact .nav,
.site-header.scrolled .nav{
  top:50px!important;
  max-height:calc(100vh - 64px)!important;
}
@media(max-width:900px){
  main{padding-top:66px!important;}
  body.maxo-menu-compact main{padding-top:52px!important;}
  .site-header .header-inner{max-width:none!important;}
  .site-header .logo{font-size:20px!important;}
  .site-header.scrolled .logo,
  body.maxo-menu-compact .logo{font-size:17px!important;}
  .nav{left:10px!important;right:10px!important;width:auto!important;top:60px!important;max-height:calc(100vh - 72px)!important;}
  body.maxo-menu-compact .nav,
  .site-header.scrolled .nav{top:48px!important;max-height:calc(100vh - 58px)!important;}
  .nav a{min-height:40px!important;padding:11px 12px!important;font-size:10.5px!important;}
}
@media(max-width:420px){
  .header-inner{padding-left:10px!important;padding-right:10px!important;}
  .site-header .logo{font-size:18px!important;}
  .site-header.scrolled .logo,
  body.maxo-menu-compact .logo{font-size:16px!important;}
  .menu-toggle{width:36px!important;height:36px!important;min-width:36px!important;}
  .nav{left:8px!important;right:8px!important;}
}

/* MAXO ABSOLUTE GLOBAL OVERRIDE START */
/* Managed by admin_theme_editor.php. Replaced on Guardar globalmente. */

/* MAXO GLOBAL VISUAL EDITOR disabled */
/* MAXO ABSOLUTE GLOBAL OVERRIDE END */
