/* =====================================================================
   PORTFÓLIO / OBRAS — Energy Gestora
   ===================================================================== */
button.btn{font:inherit;font-weight:700;cursor:pointer;background-color:transparent}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--blue);transform:translateY(-2px)}
.p-link{display:inline-flex;align-items:center;gap:8px;margin-top:28px;font-weight:700;color:var(--cyan);width:max-content;border-bottom:1.5px solid rgba(47,184,240,.35);padding-bottom:4px;transition:gap .3s var(--ease),border-color .3s}
.p-link svg{width:18px;height:18px}
.p-link:hover{gap:14px;border-color:var(--cyan)}

/* ---------- Card de obra ---------- */
.obras-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.obras-grid--4{grid-template-columns:repeat(4,1fr)}
.obra-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line-dark);border-radius:22px;overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s,opacity .9s var(--ease)}
.obra-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -28px rgba(6,20,43,.45);border-color:transparent}
.oc-media{position:relative;aspect-ratio:4/4.4;overflow:hidden;background:var(--navy)}
.oc-media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.obra-card:hover .oc-media img{transform:scale(1.07)}
.oc-top{position:absolute;inset:14px 14px auto;display:flex;justify-content:space-between;gap:8px}
.oc-status,.oc-count{display:inline-flex;align-items:center;gap:6px;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(6,20,43,.72);backdrop-filter:blur(6px);padding:6px 10px;border-radius:999px}
.oc-status::before{content:"";width:6px;height:6px;border-radius:50%;background:#3ddc84}
.oc-count svg{width:12px;height:12px;color:var(--cyan)}
.oc-body{padding:22px 22px 20px;display:flex;flex-direction:column;flex:1}
.oc-body small{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--blue);min-height:1em}
.oc-body h3{font-family:"Archivo";font-variation-settings:"wdth" 110;font-weight:800;font-size:1.25rem;line-height:1.12;letter-spacing:-.01em;margin:6px 0 8px}
.oc-body p{font-size:.88rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.oc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:16px}
.oc-tags{display:flex;flex-wrap:wrap;gap:6px}
.oc-tags span{font-size:.72rem;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--paper);color:var(--ink)}
.oc-go{width:40px;height:40px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--paper);color:var(--ink);transition:background .35s,color .35s,transform .35s var(--ease)}
.oc-go svg{width:18px;height:18px}
.obra-card:hover .oc-go{background:var(--blue);color:#fff;transform:rotate(45deg)}
.portfolio-more{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:44px}
.portfolio-more span{color:var(--muted);font-size:.92rem}
.portfolio-more b{color:var(--ink)}

/* ---------- Páginas internas ---------- */
.nav.solid{background:rgba(6,20,43,.95)}
.page-hero{background:var(--navy);color:#fff;padding:160px 0 70px;overflow:hidden}
.page-hero .blueprint{opacity:.8}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:clamp(2.6rem,6.4vw,5.4rem);margin:18px 0 20px;max-width:900px}
.page-hero h1 .serif{color:var(--cyan)}
.page-hero p{max-width:600px;color:rgba(255,255,255,.72);font-size:1.08rem}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.82rem;color:rgba(255,255,255,.55);margin-bottom:26px}
.crumbs a:hover{color:#fff}
.crumbs [aria-current]{color:var(--cyan)}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:34px}
.toolbar .filters{margin-bottom:0}
.toolbar .count{color:var(--muted);font-size:.9rem;white-space:nowrap}
.filters button .n{opacity:.5;margin-left:6px;font-weight:600}
.empty{padding:60px 20px;text-align:center;color:var(--muted);border:1.5px dashed var(--line-dark);border-radius:22px;grid-column:1/-1}

/* ---------- Página da obra (compacta) ---------- */
.obra-top{background:radial-gradient(70% 90% at 85% 0%,rgba(31,122,224,.22),transparent 60%),radial-gradient(60% 70% at 0% 100%,rgba(20,87,200,.14),transparent 60%),var(--navy);color:#fff;padding:108px 0 56px;position:relative}
.obra-top .wrap{position:relative}
.obra-top .crumbs{margin-bottom:18px}
.obra-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,3.5vw,52px);align-items:start}
.viewer{position:sticky;top:96px}
.stage{position:relative;aspect-ratio:4/3.1;border-radius:20px;overflow:hidden;background:#000;border:1px solid var(--line)}
.stage .stage-bg{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(26px) brightness(.45)}
.stage img.fg,.stage video,.stage iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border:0}
.stage img.fg{cursor:zoom-in;animation:fade .4s}
.stage video,.stage iframe{background:#000}
.stage-empty{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.5)}
.stage-nav{position:absolute;top:50%;translate:0 -50%;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(6,20,43,.6);backdrop-filter:blur(6px);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:2;transition:background .3s}
.stage-nav:hover{background:var(--blue)}
.stage-nav svg{width:20px;height:20px}
.stage-nav.prev{left:12px}.stage-nav.next{right:12px}
.stage-cap{position:absolute;left:12px;bottom:12px;z-index:2;font-size:.74rem;font-weight:700;letter-spacing:.05em;background:rgba(6,20,43,.72);backdrop-filter:blur(6px);padding:6px 11px;border-radius:999px}
.thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.thumb{flex:none;width:84px;height:64px;border-radius:10px;overflow:hidden;border:2px solid transparent;opacity:.55;cursor:pointer;position:relative;background:#0b1f3f;padding:0;transition:opacity .3s,border-color .3s}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.active,.thumb:hover{opacity:1}
.thumb.active{border-color:var(--cyan)}
.thumb .play{position:absolute;inset:0;display:grid;place-items:center;background:rgba(6,20,43,.45);color:#fff}
.thumb .play svg{width:22px;height:22px}

.obra-eyebrow{display:flex;align-items:center;gap:10px;font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin-bottom:12px}
.obra-eyebrow::before{content:"";width:24px;height:2px;background:currentColor}
.obra-eyebrow .draft{background:#f5b400;color:#0d1626;padding:3px 8px;border-radius:6px;letter-spacing:.1em}
.info h1{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:6px}
.info .sub{font-family:"Instrument Serif",serif;font-style:italic;font-size:1.35rem;color:var(--cyan);margin-bottom:12px;line-height:1.2}
.info .resumo{color:rgba(255,255,255,.75)}
.ficha{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;margin:22px 0 18px;border-top:1px solid var(--line)}
.ficha>div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.ficha dt{font-size:.86rem;color:rgba(255,255,255,.55);font-weight:500;white-space:nowrap}
.ficha dd{font-weight:700;font-size:.92rem;text-align:right}
.info .servs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.info .servs span{font-size:.78rem;font-weight:600;padding:6px 11px;border:1px solid var(--line);border-radius:999px}
.info .actions{display:flex;flex-wrap:wrap;gap:10px}
.info .actions .btn{padding:13px 22px}
.info .sobre,.info .escopo{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.info h2{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--cyan);font-weight:700;margin-bottom:10px}
.info .sobre p{color:rgba(255,255,255,.72);font-size:.95rem;margin-bottom:10px}
.info .escopo ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}
.info .escopo li{display:flex;gap:8px;font-size:.9rem;color:rgba(255,255,255,.85)}
.info .escopo li svg{flex:none;width:17px;height:17px;color:var(--cyan);margin-top:3px}

.obra-sec{padding:clamp(40px,5vw,64px) 0 0}
.mini-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.mini-head h2{font-size:clamp(1.7rem,3vw,2.4rem)}
.mini-head>span{color:var(--muted);font-size:.88rem}
.galeria{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.galeria button{border:0;padding:0;border-radius:14px;overflow:hidden;cursor:zoom-in;position:relative;background:#ddd;aspect-ratio:4/3}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.galeria button:hover img{transform:scale(1.06)}
.galeria span{position:absolute;left:8px;bottom:8px;font-size:.68rem;font-weight:700;color:#fff;background:rgba(6,20,43,.72);padding:4px 9px;border-radius:999px;opacity:0;transition:opacity .3s}
.galeria button:hover span{opacity:1}
#relacionadas .oc-media{aspect-ratio:4/3}
#relacionadas .oc-body p{display:none}

.notfound{min-height:70vh;display:grid;place-items:center;text-align:center;padding:160px 16px 80px}
.notfound h1{font-size:clamp(2rem,5vw,3.4rem);margin-bottom:14px}
.notfound p{color:var(--muted);margin-bottom:26px}

/* ---------- CMS: modo de edição ---------- */
html.cms-wait body{opacity:0}
body{transition:opacity .25s}
.cms-bar{position:fixed;left:16px;bottom:16px;z-index:200;display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:#0d1626;color:#fff;border:1px solid rgba(255,255,255,.15);border-radius:16px;padding:8px;box-shadow:0 20px 50px -15px rgba(0,0,0,.6);font-size:.82rem;max-width:calc(100% - 100px)}
.cms-bar .who{padding:0 8px;color:#5ce39b;font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cms-bar button{font:inherit;font-weight:700;border:0;border-radius:10px;padding:8px 12px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.cms-bar button:hover{background:rgba(255,255,255,.16)}
.cms-bar button.pri{background:var(--blue)}
.cms-bar button.out{color:#ff9b9b}
.cms-editing [contenteditable=true]{outline:1.5px dashed rgba(47,184,240,.7);outline-offset:3px;border-radius:4px;cursor:text}
.cms-editing [contenteditable=true]:focus{outline:2px solid var(--cyan);background:rgba(47,184,240,.08)}
.cms-editing .rv,.cms-editing .about-copy>*{opacity:1!important;transform:none!important}
.cms-editing .about-media .a1{clip-path:none;scale:1}
.cms-toast{position:fixed;left:50%;bottom:90px;translate:-50% 0;z-index:300;background:#0d1626;color:#fff;padding:12px 18px;border-radius:12px;font-weight:600;font-size:.9rem;box-shadow:0 20px 40px -12px rgba(0,0,0,.5);animation:fade .3s;max-width:90vw}
.cms-toast.err{background:#a61b1b}
.cms-ask{position:fixed;inset:0;z-index:400;background:rgba(6,20,43,.55);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px;animation:fade .2s}
.cms-ask>div{width:min(420px,100%);background:#fff;color:var(--ink);border-radius:18px;padding:24px;box-shadow:0 30px 60px -20px rgba(0,0,0,.5)}
.cms-ask p{font-weight:600;line-height:1.5}
.cms-ui footer{background:none;color:inherit;font-size:inherit}
.cms-ask footer{padding:0;display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
.cms-ask button{font:inherit;font-weight:700;border:0;border-radius:999px;padding:10px 18px;cursor:pointer;background:var(--paper);color:var(--ink)}
.cms-ask .yes{background:var(--blue);color:#fff}
.cms-modal{position:fixed;inset:0;z-index:250;background:rgba(6,20,43,.6);backdrop-filter:blur(4px);display:flex;justify-content:flex-end}
.cms-panel{width:min(760px,100%);height:100%;background:#fff;color:var(--ink);display:flex;flex-direction:column;animation:slideIn .35s var(--ease)}
@keyframes slideIn{from{transform:translateX(40px);opacity:0}}
.cms-panel header,.cms-panel footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line-dark)}
.cms-panel footer{border-top:1px solid var(--line-dark);border-bottom:0}
.cms-panel h2{font-family:"Archivo";font-weight:800;font-size:1.3rem}
.cms-panel .x{border:0;background:var(--paper);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem}
.cms-body{flex:1;overflow:auto;padding:20px 22px;display:grid;gap:14px;align-content:start}
.cms-body label{display:grid;gap:5px;font-size:.78rem;font-weight:700;color:var(--muted)}
.cms-body input:not([type=checkbox]):not([type=file]),.cms-body select,.cms-body textarea{font:inherit;font-size:.92rem;font-weight:500;color:var(--ink);border:1.5px solid var(--line-dark);border-radius:10px;padding:9px 11px;background:#fff;width:100%}
.cms-body input:focus,.cms-body select:focus,.cms-body textarea:focus{outline:none;border-color:var(--blue)}
.cms-body textarea{resize:vertical}
.cms-body .g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cms-body .checks{display:flex;flex-wrap:wrap;gap:8px 18px}
.cms-body .checks label{display:flex;align-items:center;gap:7px;font-weight:600;color:var(--ink)}
.cms-body fieldset{border:1.5px solid var(--line-dark);border-radius:12px;padding:12px 14px;display:grid;gap:10px}
.cms-body legend{font-size:.78rem;font-weight:800;padding:0 6px}
.cms-body .hint{font-size:.8rem;color:var(--muted)}
.cms-body .lnk{border:0;background:none;color:#c62828;font:inherit;font-weight:700;cursor:pointer;text-decoration:underline}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}
.gi{border:1.5px solid var(--line-dark);border-radius:12px;overflow:hidden;background:var(--paper)}
.gi.capa{border-color:#f5b400;box-shadow:0 0 0 2px #f5b40055}
.gi img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gi input{border:0!important;border-radius:0!important;font-size:.78rem!important;padding:6px 8px!important}
.gi div{display:flex}
.gi button{flex:1;border:0;border-top:1px solid var(--line-dark);background:#fff;padding:6px 0;cursor:pointer;font-size:.85rem}
.gi button:hover{background:var(--paper)}
.gi.capa button[data-a=capa]{color:#f5b400}
.up{display:inline-flex!important;width:max-content;cursor:pointer;background:var(--ink);color:#fff!important;padding:10px 16px;border-radius:999px}
.cms-panel .del{border:0;background:none;color:#c62828;font:inherit;font-weight:700;cursor:pointer}
.cms-panel .st{flex:1;text-align:right;font-size:.85rem;color:var(--muted)}
.cms-panel footer .btn{padding:12px 22px}

@media (max-width:1100px){
  .obras-grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1024px){
  .obras-grid{grid-template-columns:repeat(2,1fr)}
  .obra-grid{grid-template-columns:1fr}
  .viewer{position:relative;top:0}
}
@media (max-width:620px){
  .obras-grid,.obras-grid--4{grid-template-columns:1fr}
  .galeria{grid-template-columns:repeat(2,1fr)}
  .info .escopo ul{grid-template-columns:1fr}
  .ficha{grid-template-columns:1fr}
  .thumb{width:70px;height:54px}
  .obra-top{padding-top:100px}
  .cms-body .g2{grid-template-columns:1fr}
  .cms-bar{left:8px;right:84px;bottom:8px;max-width:none}
}

/* Blocos editáveis (Soluções / Projetos) */
.case,.project{position:relative}
.blk-tools{display:none;position:absolute;top:14px;left:50%;translate:-50% 0;z-index:20;gap:6px;background:#0d1626;border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:6px;box-shadow:0 14px 30px -10px rgba(0,0,0,.6)}
.cms-editing .blk-tools{display:flex}
.blk-tools button{font:inherit;font-size:.8rem;font-weight:700;border:0;border-radius:9px;padding:8px 12px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.blk-tools button:first-child{background:var(--blue)}
.blk-tools button:hover:not(:disabled){background:var(--blue-2)}
.blk-tools button:disabled{opacity:.3;cursor:default}
.cms-editing .case,.cms-editing .project{outline:2px dashed rgba(47,184,240,.6);outline-offset:4px}
.blk-add{display:none;width:100%;padding:26px;border-radius:22px;border:2px dashed rgba(47,184,240,.6);background:rgba(47,184,240,.06);color:var(--blue);font:inherit;font-weight:800;font-size:1rem;cursor:pointer}
.on-dark .blk-add{color:var(--cyan)}
.blk-add:hover{background:rgba(47,184,240,.14)}
.cms-editing .blk-add{display:block}
.blk-mini{justify-self:start;font:inherit;font-size:.82rem;font-weight:700;border:1.5px solid var(--line-dark);border-radius:10px;padding:8px 12px;background:var(--paper);color:var(--ink);cursor:pointer;white-space:nowrap}
.blk-mini:hover{border-color:var(--blue);color:var(--blue)}
.blk-puxar{background:rgba(31,122,224,.05)}
.blk-puxar .row{display:flex;gap:8px}
.etapas{display:grid;gap:8px}
.etapa{display:grid;grid-template-columns:28px 1fr 1.6fr 34px;gap:8px;align-items:center}
.etapa span{font-family:"Archivo";font-weight:800;font-size:.75rem;color:var(--blue)}
.etapa button{border:0;background:var(--paper);border-radius:8px;height:36px;cursor:pointer;color:#c62828}
@media (max-width:620px){.etapa{grid-template-columns:22px 1fr 34px}.etapa input[data-k=d]{grid-column:2}.blk-puxar .row{flex-direction:column}}

/* CMS: organizar seções (dentro do Modo de edição) */
.sec-oculta{display:none!important}
.cms-editing .sec-oculta{display:block!important;opacity:.4;filter:grayscale(1)}
.cms-editing .ticker{position:relative}
.cms-editing [data-sec],.cms-editing section[id]{outline:1px dashed rgba(47,184,240,.35);outline-offset:-1px}
.sec-tools{position:sticky;top:92px;margin:10px 10px -50px auto;width:max-content;z-index:40;display:flex;align-items:center;gap:4px;background:#0d1626;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:5px;font-size:.78rem;box-shadow:0 12px 30px -10px rgba(0,0,0,.6)}
.sec-tools .lbl{cursor:grab;padding:6px 10px;font-weight:700;border-radius:8px;background:rgba(47,184,240,.18);user-select:none;white-space:nowrap}
.sec-tools .lbl:active{cursor:grabbing}
.sec-tools button{font:inherit;font-weight:700;border:0;border-radius:8px;padding:6px 10px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer}
.sec-tools button:hover{background:var(--blue)}
.dragging{opacity:.35}
.drop-before{box-shadow:inset 0 6px 0 var(--cyan)!important}
.drop-after{box-shadow:inset 0 -6px 0 var(--cyan)!important}
.cms-org [data-sec],.cms-org section[id]:not(.hero){max-height:190px;overflow:hidden;margin:8px 16px;border-radius:16px}
.cms-org [data-sec]::after,.cms-org section[id]:not(.hero)::after{content:"";position:absolute;inset:auto 0 0;height:70px;background:linear-gradient(transparent,rgba(6,20,43,.55));pointer-events:none}
.cms-org .rv{opacity:1!important;transform:none!important}
.cms-org .sec-tools{position:absolute;top:10px;right:10px;margin:0}

/* Como trabalhamos dentro de "Quem somos" (fundo claro) */
.steps--light .step{background:#fff;border:1px solid var(--line-dark);color:var(--ink)}
.steps--light .step::before{-webkit-text-stroke:1.2px rgba(20,87,200,.55)}
.steps--light .step p{color:var(--muted)}
