:root{--bg:#f6f7f9;--card:#fff;--text:#0f1222;--muted:#6b7280;--line:rgba(15,18,34,.08);--primary:#1f2937;--radius:14px;--shadow:0 8px 24px rgba(15,18,34,.06)}
html,body{background:var(--bg);color:var(--text)}
.site,.site-main,.content-area,#primary{background:transparent!important}
.site-main.container{max-width:1200px;margin:0 auto;padding:24px}
h1,h2,h3{letter-spacing:.2px}.entry-title{font-weight:800}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.project-header{margin-bottom:10px}.project-header .project-meta{color:var(--muted);margin-top:.2rem}
.hero-slider{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin:10px 0 24px}
.hero-slider .slides{display:flex;transition:transform .35s ease}
.hero-slider .slide{min-width:100%}
.hero-slider img{width:100%;height:auto;display:block}
.hero-slider .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;border-radius:10px;color:#fff;font-size:32px;padding:.2rem .6rem;cursor:pointer}
.hero-slider .prev{left:12px}.hero-slider .next{right:12px}
.hero-slider .dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.hero-slider .dots button{width:8px;height:8px;border-radius:999px;border:0;background:rgba(255,255,255,.5)}
.hero-slider .dots button.active{background:#fff}
.overview-wrap{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin:6px 0 24px}
@media(max-width:980px){.overview-wrap{grid-template-columns:1fr}}
.facts .card{position:sticky;top:90px}
.facts ul{list-style:none;margin:0;padding:0}
.facts li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}
.facts li:last-child{border-bottom:0}
.facts li span{color:var(--muted)}
.before-after .ab-wrap{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.before-after .ab-wrap img.ab{position:absolute;inset:0;width:100%;height:auto;object-fit:cover;transition:opacity .4s ease}
.before-after .antes{opacity:1}.before-after .depois{opacity:0}
.before-after .ab-wrap.show-depois .antes{opacity:0}.before-after .ab-wrap.show-depois .depois{opacity:1}
.before-after .ab-controls{position:absolute;bottom:10px;left:10px;display:flex;gap:8px}
.before-after .ab-controls button{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem}
.gallery .masonry{column-count:3;column-gap:16px}
@media(max-width:1100px){.gallery .masonry{column-count:2}}
@media(max-width:640px){.gallery .masonry{column-count:1}}
.gallery .masonry a{display:inline-block;margin:0 0 16px;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.gallery .masonry img{width:100%;height:auto;display:block}
.gallery .hint{color:var(--muted);font-size:.9rem;margin-top:.4rem}
.lb{position:fixed;inset:0;background:rgba(15,18,34,.9);display:flex;align-items:center;justify-content:center;gap:12px;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s}
.lb.show{opacity:1;pointer-events:auto}
.lb .lb-stage{max-width:min(92vw,1400px);max-height:86vh;display:flex;align-items:center;justify-content:center}
.lb img{max-width:100%;max-height:86vh;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.lb .lb-prev,.lb .lb-next,.lb .lb-close{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:10px;padding:.4rem .7rem;cursor:pointer}
.lb .lb-close{top:18px;right:18px;font-size:26px}
.lb .lb-prev{left:18px;font-size:34px}
.lb .lb-next{right:18px;font-size:34px}
.lb .lb-counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;opacity:.8}
.cta .card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0}
.cta .btn{background:#111827;color:#fff;padding:.75rem 1.1rem;border-radius:999px;text-decoration:none}
.cta .btn:hover{opacity:.9}
.projetos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.projeto-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:transform .15s ease, box-shadow .15s ease}
.projeto-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,18,34,.1)}

/* =========================
   BASE / VARIÁVEIS
   ========================= */

/* Defaults neutros — serão sobrescritos pelos temas */
:root{
  --bg:#f6f7f9;
  --card:#ffffff;
  --card-2:#0d0f10;              /* usado no dark */
  --text:#0f1222;
  --muted:#6b7280;
  --line:rgba(15,18,34,.08);
  --line-2:rgba(255,255,255,.18); /* usado no dark */
  --primary:#1f2937;
  --radius:14px;
  --shadow:0 8px 24px rgba(15,18,34,.06);
  --brand:#eb6b34;               /* cor do logo / marca */

  /* Header/Footer (light) */
  --surface-light:#ffffff;
  --line-on-surface:rgba(15,18,34,.08);

  /* Tipografia */
  --font-sans:"ConduitITC Regular", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  /* LOGO (ficheiros + dimensões + ajustes) */
  --logo-light: url('https://3ms.pt/wp-content/uploads/2025/10/LOGOTIPO-_COR-OFICIAL-FUNDO-TRANSPARENTE-scaled.png');
  --logo-dark:  url('https://3ms.pt/wp-content/uploads/2025/10/LOGOTIPO-_COR-OFICIAL-FUNDO-PRETO1.png');
  --logo-w: 180px;
  --logo-h: 100px;
  --logo-scale: 1.75;
  --logo-scale-sm: 1.75;
  --header-gutter: 10px;
  --header-gutter-sm: 8px;
  --logo-nudge: -12px;
  --logo-nudge-sm: -8px;
  --logo-trim: -10px;
  --logo-trim-sm: -6px;
}

/* =========================
   PALETAS POR TEMA (toggle)
   ========================= */
html[data-theme="light"]{
  --bg:#f6f7f9;
  --card:#ffffff;
  --text:#0f1222;
  --muted:#6b7280;
  --line:rgba(15,18,34,.08);
  --primary:#1f2937;
  --shadow:0 8px 24px rgba(15,18,34,.06);
}

html[data-theme="dark"]{
  --bg:rgba(0, 0, 0, 0.40);
  --card:#111315;
  --card-2:#0d0f10;
  --text:#e9edf3;
  --muted:#a7b0bd;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);
  --primary:#f5f5f5;
  --shadow:0 20px 60px rgba(0,0,0,.45);
}

/* Fallback: seguir o sistema se não houver data-theme */
@media (prefers-color-scheme:dark){
  html:not([data-theme]){
    --bg:#121212;
    --card:#1e1e1e;
    --text:#e6e6e6;
    --muted:#a1a1a1;
    --line:rgba(255,255,255,.10);
    --primary:#f5f5f5;
    --shadow:0 8px 24px rgba(0,0,0,.70);
  }
}

/* o container do footer serve de referencial */
.ct-footer [class*="ct-container"],
.site-footer [class*="ct-container"]{
  position: relative;
  display: flex;
  align-items: center;
}

/* toggle fixado à direita, centrado na vertical sem transform */
.theme-toggle{
  position: absolute;
  right: max(12px, env(safe-area-inset-right));
  top: 0;
  bottom: 0;
  margin-block: auto;           /* centra verticalmente */
  height: 26px;
  padding: 2px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in oklab, var(--card) 90%, black);
  color: var(--text);
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
  display: inline-flex;
  align-items: center;
  gap: 2px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: opacity .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
  /* sem transform aqui */
}

/* hover sem translate para não “saltar” */
.theme-toggle:hover{
  opacity: .96;
  border-color: var(--line-2, var(--line));
  box-shadow: 0 12px 36px rgba(0,0,0,.14);
}

.theme-toggle:focus-visible{
  outline: 2px solid color-mix(in oklab, var(--text) 35%, transparent);
  outline-offset: 3px;
}

.theme-toggle svg{ width:20px; height:20px; flex:0 0 20px; transition: opacity .2s, transform .2s; }
.theme-toggle .sep{ width:1px; height:18px; background:var(--line); opacity:.6; }

html[data-theme="light"] .theme-toggle .icon-sun{ opacity:1 } 
html[data-theme="light"] .theme-toggle .icon-moon{ opacity:.45 }
html[data-theme="dark"]  .theme-toggle .icon-sun{ opacity:.45 }
html[data-theme="dark"]  .theme-toggle .icon-moon{ opacity:1 }

@media (max-width:720px){
  .theme-toggle{ height:34px; gap:6px; padding:0 6px }
  .theme-toggle svg{ width:18px; height:18px; flex-basis:18px }
  .theme-toggle .sep{ height:16px }
}

html[data-theme="dark"] .theme-toggle{
  background: color-mix(in oklab, var(--card) 82%, white);
}
/* =========================  esconde o botao do theme ========================= */
.theme-toggle{ display:none !important; }

/* =========================
   FUNDO GLOBAL + OVERLAY
   ========================= */
/* html pinta a “tela”; body é transparente para ver o fundo (slider, imagem, etc.) */
html{ background: var(--bg); }
body{ color: var(--text); background: transparent; }
/* Home: body transparente para não cobrir o slider */
body.home{
  background: transparent !important;
}


/* wrappers transparentes */
.site,.site-main,.content-area,#primary{ background:transparent !important; }

/* overlay por cima do fundo — ATIVO fora da home */
.site{ position:relative; }
body:not(.home) .site::before{
  content:""; position:absolute; inset:0;
  background:rgba(0,0,0,.12);
  pointer-events:none; z-index:0;
}
.site>*{ position:relative; z-index:1; }

/* overlay mais escuro no dark — fora da home */
html[data-theme="dark"] body:not(.home) .site::before{ background:rgba(0,0,0,.38) }

/* escurecer wrappers via blend — fora da home */
html[data-theme="dark"] body:not(.home) :is(.site,.site-main,.content-area,#primary){
  background-color:rgba(0,0,0,.85) !important;
  background-blend-mode:multiply !important;
}

/* If you only want this in dark mode, use this narrower version instead: */

html[data-theme="dark"] body.single-projetos #primary,
html[data-theme="dark"] body.single-projetos .site-main.container{
  background: transparent !important;
  background-blend-mode: normal !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

/* =========================
   LAYOUT/COMPONENTES BASE
   ========================= */
.site-main.container{max-width:1200px;margin:0 auto;padding:24px}
h1,h2,h3{letter-spacing:.2px}
.entry-title{font-weight:800}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.project-header{margin-bottom:10px}.project-header .project-meta{color:var(--muted);margin-top:.2rem}
.hero-slider{position:relative;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);margin:10px 0 24px}
.hero-slider .slides{display:flex;transition:transform .35s ease}
.hero-slider .slide{min-width:100%}
.hero-slider img{width:100%;height:auto;display:block}
.hero-slider .nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;border-radius:10px;color:#fff;font-size:32px;padding:.2rem .6rem;cursor:pointer}
.hero-slider .prev{left:12px}.hero-slider .next{right:12px}
.hero-slider .dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.hero-slider .dots button{width:8px;height:8px;border-radius:999px;border:0;background:rgba(255,255,255,.5)}
.hero-slider .dots button.active{background:#fff}
.overview-wrap{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin:6px 0 24px}
@media(max-width:980px){.overview-wrap{grid-template-columns:1fr}}
.facts .card{position:sticky;top:90px}
.facts ul{list-style:none;margin:0;padding:0}
.facts li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--line)}
.facts li:last-child{border-bottom:0}
.facts li span{color:var(--muted)}
.before-after .ab-wrap{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.before-after .ab-wrap img.ab{position:absolute;inset:0;width:100%;height:auto;object-fit:cover;transition:opacity .4s ease}
.before-after .antes{opacity:1}.before-after .depois{opacity:0}
.before-after .ab-wrap.show-depois .antes{opacity:0}.before-after .ab-wrap.show-depois .depois{opacity:1}
.before-after .ab-controls{position:absolute;bottom:10px;left:10px;display:flex;gap:8px}
.before-after .ab-controls button{background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:999px;padding:.35rem .7rem}
.gallery .masonry{column-count:3;column-gap:16px}
@media(max-width:1100px){.gallery .masonry{column-count:2}}
@media(max-width:640px){.gallery .masonry{column-count:1}}
.gallery .masonry a{display:inline-block;margin:0 0 16px;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.gallery .masonry img{width:100%;height:auto;display:block}
.gallery .hint{color:var(--muted);font-size:.9rem;margin-top:.4rem}
.lb{position:fixed;inset:0;background:rgba(15,18,34,.9);display:flex;align-items:center;justify-content:center;gap:12px;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s}
.lb.show{opacity:1;pointer-events:auto}
.lb .lb-stage{max-width:min(92vw,1400px);max-height:86vh;display:flex;align-items:center;justify-content:center}
.lb img{max-width:100%;max-height:86vh;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.lb .lb-prev,.lb .lb-next,.lb .lb-close{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:10px;padding:.4rem .7rem;cursor:pointer}
.lb .lb-close{top:18px;right:18px;font-size:26px}
.lb .lb-prev{left:18px;font-size:34px}
.lb .lb-next{right:18px;font-size:34px}
.lb .lb-counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;opacity:.8}
.cta .card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0}
.cta .btn{background:#111827;color:#fff;padding:.75rem 1.1rem;border-radius:999px;text-decoration:none}
.cta .btn:hover{opacity:.9}
.projetos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.projeto-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:transform .15s ease, box-shadow .15s ease}
.projeto-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,18,34,.1)}

/* =========================
   LOGOS
   ========================= */


/* =========================
   HERO SLIDER (projetos)
   ========================= */
.single-projetos .hero-slider{
  max-width:none!important;width:100%!important;margin:10px 0 24px!important;
  border-radius:14px;overflow:hidden;background:transparent!important;aspect-ratio:16/9;box-shadow:none;position:relative
}
.single-projetos .hero-slider .slides,
.single-projetos .hero-slider .slide{height:100%}
.single-projetos .hero-slider .slide img{
  width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;display:block
}
.single-projetos .hero-slider .nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(255,255,255,.14);border:0;border-radius:10px;color:#fff;
  font-size:32px;padding:.2rem .6rem;cursor:pointer;z-index:2
}
.single-projetos .hero-slider .prev{left:12px}
.single-projetos .hero-slider .next{right:12px}
.single-projetos .hero-slider .dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:2}
@supports not (aspect-ratio:16/9){
  .single-projetos .hero-slider{position:relative;padding-top:56.25%}
  .single-projetos .hero-slider>*{position:absolute;inset:0}
}

/* =========================
   GALERIA / LIGHTBOX
   ========================= */
.gallery .masonry{column-count:3;column-gap:16px}
@media(max-width:1100px){.gallery .masonry{column-count:2}}
@media(max-width:640px){.gallery .masonry{column-count:1}}
.gallery .masonry a{display:inline-block;margin:0 0 16px;width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.gallery .masonry img{width:100%;height:auto;display:block}
.gallery .hint{color:var(--muted);font-size:.9rem;margin-top:.4rem}
.lb{position:fixed;inset:0;background:rgba(15,18,34,.9);display:flex;align-items:center;justify-content:center;gap:12px;z-index:9999;opacity:0;pointer-events:none;transition:opacity .2s}
.lb.show{opacity:1;pointer-events:auto}
.lb .lb-stage{max-width:min(92vw,1400px);max-height:86vh;display:flex;align-items:center;justify-content:center}
.lb img{max-width:100%;max-height:86vh;border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.lb .lb-prev,.lb .lb-next,.lb .lb-close{position:absolute;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:10px;padding:.4rem .7rem;cursor:pointer}
.lb .lb-close{top:18px;right:18px;font-size:26px}
.lb .lb-prev{left:18px;font-size:34px}
.lb .lb-next{right:18px;font-size:34px}
.lb .lb-counter{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);color:#fff;opacity:.8}

/* =========================
   CTA / LISTAGEM PROJETOS
   ========================= */
.cta .card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:26px 0}
.cta .btn{background:#111827;color:#fff;padding:.75rem 1.1rem;border-radius:999px;text-decoration:none}
.cta .btn:hover{opacity:.9}
.projetos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}
.projeto-card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);overflow:hidden;transition:transform .15s ease, box-shadow .15s ease
}
.projeto-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,18,34,.1)}

/* =========================================================
   TIPOGRAFIA — sem sombras (fora da home)
   ========================================================= */
body:not(.home):not(.front-page) .entry-content,
body:not(.home):not(.front-page) .entry-content :is(p, li, a, strong, em, span, h1, h2, h3, h4, h5, h6){ text-shadow:none!important }
body:not(.home):not(.front-page) .entry-content :is(p, li, a, strong, em, span, h1, h2, h3, h4, h5, h6)[style*="text-shadow"]{ text-shadow:none!important }

/* Light = texto preto (fora da home) */
html[data-theme="light"] body:not(.home):not(.front-page) .entry-content,
html:not([data-theme]) body:not(.home):not(.front-page) .entry-content{ color:#000!important }
html[data-theme="light"] body:not(.home):not(.front-page) .entry-content :is(p,li,a,strong,em,span,h1,h2,h3,h4,h5,h6),
html:not([data-theme]) body:not(.home):not(.front-page) .entry-content :is(p,li,a,strong,em,span,h1,h2,h3,h4,h5,h6){ color:#000!important }

/* Dark = texto branco (fora da home) */
html[data-theme="dark"] body:not(.home):not(.front-page) .entry-content{ color:#fff!important }
html[data-theme="dark"] body:not(.home):not(.front-page) .entry-content :is(p,li,a,strong,em,span,h1,h2,h3,h4,h5,h6){ color:#fff!important }

/* Links herdam a cor (fora da home) */
body:not(.home):not(.front-page) .entry-content a{ color:inherit!important }
body:not(.home):not(.front-page) .entry-content a:hover{ opacity:.9 }

/* Linhas & legibilidade base */
body:not(.home):not(.front-page) .entry-content p,
body:not(.home):not(.front-page) .entry-content li{ line-height:1.75 }

/* Componentes no dark (fora da home) */
html[data-theme="dark"] body:not(.home):not(.front-page) .wp-block-table table{ background:rgba(30,30,30,.92); border-color:var(--line) }
html[data-theme="dark"] body:not(.home):not(.front-page) .wp-block-table :is(td, th){ border-color:var(--line); color:#fff!important }
html[data-theme="dark"] body:not(.home):not(.front-page) blockquote{
  background:rgba(35,35,35,.9); border-left:4px solid #69b1ff; padding:14px 18px; border-radius:8px; color:#fff!important
}
html[data-theme="dark"] body:not(.home):not(.front-page) :is(pre, code){
  background:rgba(35,35,35,.95); color:#fff!important; border-radius:8px
}

/* Homepage: cores com brand e sombra leve */
body.home .entry-content p,
body.front-page .entry-content p,
body.home .entry-content li,
body.front-page .entry-content li{ line-height:1.75; color:var(--text) }
body.home .entry-content strong,
body.front-page .entry-content strong,
body.home .entry-content b,
body.front-page .entry-content b{ color:var(--text) }
body.home .entry-content h1,
body.front-page .entry-content h1{ color:#fff; text-shadow:2px 2px 6px rgba(0,0,0,.80) }
body.home .entry-content h2,
body.front-page .entry-content h2,
body.home .entry-content h3,
body.front-page .entry-content h3{ color:var(--brand); text-shadow:1px 1px 4px rgba(0,0,0,.70) }

/* =========================================================
   HEADER & FOOTER (Blocksy) — consistentes
   ========================================================= */

/* Gutter footer (full-bleed) */
:root{ --footer-gutter:0px; --footer-gutter-sm:0px }

/* Footer full-bleed */
.site-footer,.ct-footer{
  position:relative; left:0%; right:50%;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
  width:100vw!important
}
.ct-footer [class*="ct-container"]{
  max-width:none!important; width:100%!important;
  padding-left:max(var(--footer-gutter), env(safe-area-inset-left))!important;
  padding-right:max(var(--footer-gutter), env(safe-area-inset-right))!important
}
.ct-footer [class*="ct-row"]{ max-width:none!important; width:100%!important; padding-left:0!important; padding-right:0!important }
@media (max-width:782px){
  .ct-footer [class*="ct-container"]{
    padding-left:max(var(--footer-gutter-sm),env(safe-area-inset-left))!important;
    padding-right:max(var(--footer-gutter-sm),env(safe-area-inset-right))!important
  }
}

/* Header base */
.site-header,.ct-header{width:100%;margin:0;padding-left:0;padding-right:0}
.ct-header [class*="ct-container"]{max-width:none!important;width:100%!important;padding-left:24px;padding-right:24px}

/* DARK: header/footer */
html[data-theme="dark"] .site-header,
html[data-theme="dark"] .ct-header,
html[data-theme="dark"] .ct-header-main,
html[data-theme="dark"] .ct-header [class*="ct-container"],
html[data-theme="dark"] .ct-header [class*="ct-row"]{
  background:var(--card)!important;color:var(--text)!important;border-color:var(--line)!important
}
html[data-theme="dark"] .ct-header a,
html[data-theme="dark"] .ct-main-navigation .menu>li>a,
html[data-theme="dark"] .ct-header *{color:var(--text)!important}
html[data-theme="dark"] .ct-header svg{fill:var(--text)!important;stroke:var(--text)!important}
html[data-theme="dark"] .site-footer,
html[data-theme="dark"] .ct-footer,
html[data-theme="dark"] .ct-footer [class*="ct-container"],
html[data-theme="dark"] .ct-footer [class*="ct-row"]{
  background:var(--card)!important;border-color:var(--line)!important
}
html[data-theme="dark"] .ct-footer,
html[data-theme="dark"] .ct-footer *,
html[data-theme="dark"] .ct-footer a,
html[data-theme="dark"] .ct-footer .widget,
html[data-theme="dark"] .ct-footer .widget-title{
  color:var(--text)!important;fill:var(--text)!important;stroke:var(--text)!important
}
.ct-header a:hover,.ct-footer a:hover{opacity:.85}

/* LIGHT: header/footer “branco sujo” */
html[data-theme="light"] .site-header,
html[data-theme="light"] .ct-header,
html[data-theme="light"] .ct-header-main,
html[data-theme="light"] .ct-header [class*="ct-container"],
html[data-theme="light"] .ct-header [class*="ct-row"],
html:not([data-theme]) .site-header,
html:not([data-theme]) .ct-header,
html:not([data-theme]) .ct-header-main,
html:not([data-theme]) .ct-header [class*="ct-container"],
html:not([data-theme]) .ct-header [class*="ct-row"]{
  background:var(--surface-light)!important;
  border-color:var(--line-on-surface)!important
}
html[data-theme="light"] .ct-header [data-transparent="yes"],
html[data-theme="light"] .ct-header [data-sticky*="yes"],
html:not([data-theme]) .ct-header [data-transparent="yes"],
html:not([data-theme]) .ct-header [data-sticky*="yes"]{
  background:var(--surface-light)!important; backdrop-filter:none!important
}
html[data-theme="light"] .site-footer,
html[data-theme="light"] .ct-footer,
html[data-theme="light"] .ct-footer [class*="ct-container"],
html[data-theme="light"] .ct-footer [class*="ct-row"],
html:not([data-theme]) .site-footer,
html:not([data-theme]) .ct-footer,
html:not([data-theme]) .ct-footer [class*="ct-container"],
html:not([data-theme]) .ct-footer [class*="ct-row"]{
  background:var(--surface-light)!important; border-color:var(--line-on-surface)!important
}

/* =========================================================
   PROJETOS — HERO (vídeo / embed)
   ========================================================= */
.single-projetos .site-main.container .hero-media,
.single-projetos .hero-media{
  max-width:none!important;width:100%!important;margin:10px 0 24px!important;
  border-radius:14px;overflow:hidden;aspect-ratio:16/9
}
.single-projetos .hero-media video,
.single-projetos .hero-media iframe{
  width:100%!important;height:100%!important;display:block;object-fit:cover;background:transparent!important;border:0
}
@supports not (aspect-ratio:16/9){
  .single-projetos .hero-media{position:relative;padding-top:56.25%}
  .single-projetos .hero-media>*{position:absolute;inset:0}
}

/* =========================================================
   PORTFÓLIO & SINGLE — legibilidade forçada
   ========================================================= */
.post-type-archive-projetos .site-main,
.post-type-archive-projetos .site-main *:not(svg):not(path){ color:#e9edf3!important }
.post-type-archive-projetos .site-main :is(h1,h2,h3){ color:#fff!important; text-shadow:2px 2px 8px rgba(0,0,0,.9)!important }
.post-type-archive-projetos .site-main :is(p,li,span,strong,em,a){ text-shadow:1px 1px 6px rgba(0,0,0,.78)!important }
.single-projetos .entry-content,
.single-projetos .entry-content *:not(svg):not(path){ color:#e9edf3!important }
.single-projetos .entry-content :is(h1,h2,h3){ color:#fff!important; text-shadow:2px 2px 9px rgba(0,0,0,.92)!important }
.single-projetos .entry-content :is(p,li,span,strong,em){ text-shadow:2px 2px 7px rgba(0,0,0,.85)!important }
.single-projetos .entry-content a{
  color:#eaf2ff!important; text-decoration:underline; text-underline-offset:2px;
  text-shadow:2px 2px 7px rgba(0,0,0,.85)!important
}
.single-projetos .entry-content :is(p,li,a,strong,em,h1,h2,h3,h4,h5,h6)[style*="text-shadow:none"]{
  text-shadow:2px 2px 7px rgba(0,0,0,.85)!important
}

/* -------------------------
   BLOCO “OVERVIEW” / FICHA — Light & Dark (headings só no dark)
   ------------------------- */

/* Tema LIGHT (ou sem toggle) */
html[data-theme="light"] .single-projetos .facts,
html:not([data-theme])       .single-projetos .facts{
  --facts-bg:    color-mix(in oklab, var(--card) 92%, white);
  --facts-line:  rgba(15,18,34,.10);
  --facts-text:  #0f1222;                 /* texto normal */
  --facts-shadow: var(--shadow, 0 8px 24px rgba(15,18,34,.06));
}

/* Tema DARK */
html[data-theme="dark"] .single-projetos .facts{
  --facts-bg:    rgba(20,20,20,.92);
  --facts-line:  rgba(255,255,255,.12);
  --facts-text:  #e9edf3;                 /* texto normal */
  --facts-shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* Card — sem definir 'color' global para não afetar headings no light */
.single-projetos .facts .card{
  background: var(--facts-bg) !important;
  border: 1px solid var(--facts-line) !important;
  border-radius: 16px !important;
  justify-content: center;
  padding: 28px 30px !important;
  width: 100% !important;
  max-width: 1280px !important;
  box-sizing: border-box;
  box-shadow: var(--facts-shadow) !important;
}

/* Texto base dentro do card (parágrafos, listas, etc.) */
.single-projetos .facts .card :is(p, li, span, small, a, strong, em){
  color: var(--facts-text) !important;
}

/* Headings: só forçamos no DARK. No LIGHT herdam a cor padrão (preta). */
html[data-theme="dark"] .single-projetos .facts .card :is(h1,h2,h3,h4,h5,h6){
  color: #fff !important;
}

/* Layout geral (igual ao anterior) */
.single-projetos .facts{ margin-top: 20px !important }
.single-projetos .overview-wrap{ display:grid; grid-template-columns:1fr; margin:16px 0 24px }
.single-projetos .facts{ grid-column:1 / -1; justify-self:center; width:100% }
.single-projetos .facts .card{
  position: static !important; top:auto !important;
  width: min(1280px, 100%) !important; max-width: none !important; margin: 0 auto !important;
}

/* Mobile */
@media (max-width: 768px){
  .single-projetos .overview-wrap{ grid-template-columns:1fr; gap:16px; margin:10px 0 20px }
  .single-projetos .facts{ width:100%; max-width:100%; padding:0 12px; overflow:visible }
  .single-projetos .facts .card{
    width:100% !important; max-width:100% !important; margin:0 auto !important; box-sizing:border-box;
    border-radius:14px !important; padding:18px 16px !important; overflow:visible
  }
  .single-projetos .facts ul{ padding-left:0; padding-right:0 }
  .single-projetos .site-main.container{ padding-left:12px; padding-right:12px }
}

/* =========================================================
   CONTACTOS — coeso com o tema + labels 30px
   Página: .page-id-999104
   ========================================================= */

/* ---------- Variáveis de controlo (tamanhos por secção) ---------- */
.page-id-999104 .contact-card{
  /* Títulos (labels) */
  --label-size: 30px;

  /* 1) Telemóvel (1º <li>) */
  --phone-number-size: 16px;   /* Nº de telemóvel */
  --phone-number-weight: 400;
  --phone-name-size:   20px;   /* Nome da pessoa */
  --phone-name-weight: 400;

  /* 2) Email (2º <li>) */
  --email-size: 20px;
  --email-weight: 400;

  /* 3) Morada (3º <li>) */
  --address-size: 20px;
  --address-weight: 500;

  /* 4) Horário (4º <li>) */
  --hours-size: 20px;
  --hours-weight: 400;
}

/* ---------- Grid e respiro geral ---------- */
.page-id-999104 .contact-grid{
  display:grid;
  grid-template-columns:1.15fr .95fr;
  gap:32px;
  align-items:start;
  margin-block: 20px 48px;
}
@media (max-width:1100px){
  .page-id-999104 .contact-grid{ grid-template-columns:1fr; gap:22px }
}



/* ---------- Cartão à imagem do resto do site ---------- */
.page-id-999104 .contact-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}

/* ---------- Lista de contactos — alinhamento e respiro ---------- */
.page-id-999104 .contact-card ul{
  list-style:none;
  margin:10px 0 0;
  padding:0;
  display:grid;
  gap:18px; /* mais espaço entre categorias */
}
.page-id-999104 .contact-card li{
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:start;
  gap:14px;
  padding:14px 0;
  border-bottom:1px dashed var(--line);
}
.page-id-999104 .contact-card li:last-child{ border-bottom:0 }

/* Ícone à esquerda */
.page-id-999104 .contact-list .icon{
  font-size:22px;
  line-height:1.5;
  margin-top:4px;
  opacity:.9;
}

/* ---------- LABELS = 30px ---------- */
.page-id-999104 .contact-list .label{
  font-size:var(--label-size) !important;
  line-height:1.2;
  font-weight:800;
  letter-spacing:-.01em;
  color:var(--text);
  text-transform:none;
  margin-bottom:4px;
  display:block;
}

/* ---------- Conteúdos / Links ---------- */
.page-id-999104 .contact-card a{
  color:var(--text);
  text-decoration:none;
  border-bottom:1px solid white;
  transition:color .2s ease, border-color .2s ease, opacity .2s ease;
}
.page-id-999104 .contact-card a:hover{
  color:var(--brand);
  border-color:var(--brand);
}

/* Tel sem border e com underline que segue a cor do texto */
.page-id-999104 .contact-card a.tel{
  border-bottom: 0 !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: currentColor;   /* <- herda a cor do link */
  transition: color .2s ease, text-decoration-color .2s ease;
}

/* No hover já tens isto globalmente: muda a cor do link */
.page-id-999104 .contact-card a:hover{
  color: var(--brand);
  border-color: var(--brand);
}

/* (Opcional) redundância para browsers antigos */
.page-id-999104 .contact-card a.tel:hover{
  text-decoration-color: var(--brand);
}


/* ---------- Linhas internas (ex.: WhatsApp + número + nome) ---------- */
.page-id-999104 .contact-list .row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-top:6px;
}

/* 1º <li> (Telemóvel): tamanhos separados nº vs nome + quebra de linha do nº */
.page-id-999104 .contact-card li:nth-child(1) .row .tel{
  flex-basis:100%;                /* nº de telemóvel vai para a linha de baixo */
  margin-top: -8px;
  margin-bottom: 10px;
  font-size:var(--phone-number-size);
  font-weight:var(--phone-number-weight);
  line-height:1.35;
}
.page-id-999104 .contact-card li:nth-child(1) .row .contact-name{
  font-size:var(--phone-name-size);
  font-weight:var(--phone-name-weight);
  line-height:1.3;
  color:var(--muted);
  text-decoration:none;
  border-bottom:0;
  margin-right:8px;
}

/* WhatsApp ícone-only (mantido) */
.page-id-999104 a.wa-icon{
  width:22px; height:22px; flex:0 0 22px;
  display:inline-block; border-radius:6px; background:#25D366;
  box-shadow:0 6px 14px rgba(0,0,0,.12);
  position:relative; text-decoration:none;
  transition: transform .12s ease, box-shadow .2s ease, opacity .2s ease;
}
.page-id-999104 a.wa-icon::before{
  content:""; position:absolute; inset:0; margin:auto; width:14px; height:14px;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%23fff" viewBox="0 0 32 32"><path d="M19.11 17.33c-.29-.15-1.69-.83-1.95-.93-.26-.1-.45-.15-.64.15-.19.29-.74.92-.9 1.11-.17.19-.33.22-.62.08-.29-.15-1.22-.45-2.32-1.44-.86-.76-1.44-1.7-1.61-1.99-.17-.29-.02-.45.13-.6.13-.13.29-.33.45-.5.15-.17.19-.29.29-.48.1-.19.05-.36-.03-.5-.08-.15-.64-1.54-.88-2.11-.23-.55-.46-.48-.64-.49-.17-.01-.36-.01-.55-.01s-.5.07-.76.36c-.26.29-1.01.98-1.01 2.38s1.03 2.76 1.17 2.95c.15.19 2.03 3.1 4.93 4.35.69.3 1.23.48 1.65.62.69.22 1.32.19 1.82.11.56-.08 1.69-.69 1.93-1.37.24-.68.24-1.26.17-1.37-.07-.11-.26-.18-.55-.33z"/><path d="M27.57 4.43C24.69 1.55 20.98 0 17.04 0 8.58 0 1.71 6.87 1.71 15.33c0 2.7.7 5.33 2.03 7.65L0 32l9.29-3.65c2.28 1.24 4.86 1.89 7.49 1.89h.01c8.46 0 15.33-6.87 15.33-15.33 0-3.94-1.55-7.65-4.53-10.53zm-10.75 25c-2.34 0-4.63-.63-6.62-1.83l-.48-.29-5.52 2.17 2.07-5.68-.31-.53c-1.26-2.07-1.93-4.45-1.93-6.97 0-7.39 6.01-13.41 13.41-13.41 3.58 0 6.94 1.39 9.47 3.91s3.94 5.88 3.94 9.46c0 7.39-6.02 13.41-13.41 13.41z"/></svg>') no-repeat center/contain;
}
.page-id-999104 a.wa-icon:hover{ transform:translateY(-1px); opacity:.96; box-shadow:0 10px 20px rgba(0,0,0,.18) }


/* 2º <li> (Email) — tamanho configurável */
.page-id-999104 .contact-card li:nth-child(2) a{
  font-size:var(--email-size);
  font-weight:var(--email-weight);
}

/* 3º <li> (Morada) — tamanho configurável */
.page-id-999104 .contact-card li:nth-child(3) a{
  font-size:var(--address-size);
  font-weight:var(--address-weight);
}

/* 4º <li> (Horário) — tamanho configurável */
.page-id-999104 .contact-card li:nth-child(4) span{
  font-size:var(--hours-size);
  font-weight:var(--hours-weight);
}

/* ---------- Mapa ---------- */
.page-id-999104 .contact-map iframe{
  display:block; width:100%;
  aspect-ratio:4/3; border:0; border-radius:18px;
  overflow:hidden; background:#000;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}

/* ---------- Form (mantido + coerência) ---------- */
.page-id-999104 .contact-form{ padding:0; border:0; background:transparent; box-shadow:none }
.page-id-999104 .contact-form .wpforms-form{ max-width:560px; margin:0 auto }
.page-id-999104 .contact-form .wpforms-field{ margin-bottom:14px }
.page-id-999104 .contact-form .wpforms-form label{
  display:block; font-weight:700; margin-bottom:6px; color:var(--text); font-size:14px;
}

/* Inputs */
.page-id-999104 .contact-form input[type="text"],
.page-id-999104 .contact-form input[type="email"],
.page-id-999104 .contact-form input[type="tel"],
.page-id-999104 .contact-form textarea,
.page-id-999104 .contact-form select{
  width:100%; border-radius:12px; padding:12px 14px;
  border:1px solid var(--line); background:#fff; color:#0f1222; font-size:15px;
  transition:border-color .15s, box-shadow .15s, background .15s;
}
html[data-theme="dark"] .page-id-999104 .contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select){
  background:#151515; color:#e6e6e6; border:1px solid rgba(255,255,255,.16);
}
.page-id-999104 .contact-form textarea{ min-height:120px; max-height:200px; resize:vertical }

/* Focus */
.page-id-999104 .contact-form :is(input, textarea, select):focus{
  border-color:#2563eb; box-shadow:0 0 0 3px rgba(37,99,235,.15); outline:0;
}
html[data-theme="dark"] .page-id-999104 .contact-form :is(input, textarea, select):focus{
  border-color:#60a5fa; box-shadow:0 0 0 3px rgba(96,165,250,.20);
}

/* ---------- Mobile ---------- */
@media (max-width:720px){
  .page-id-999104 .contact-card{ padding:20px }
  .page-id-999104 .contact-card ul{ gap:16px }
  .page-id-999104 .contact-card li{ padding:12px 0; gap:12px }

  /* Ajustes de tamanho em mobile (opcional) */
  .page-id-999104 .contact-card{
    --label-size: 26px;
    --phone-number-size: 19px;
    --phone-name-size:   15px;
    --email-size: 17px;
    --address-size: 17px;
    --hours-size: 17px;
  }
}

/* =========================
   Contactos — ajustes MOBILE
   ========================= */

/* <= 720px: tipografia enxuta + quebras seguras */
@media (max-width: 720px){

  /* Recalibra tamanhos via variáveis (sem tocar no desktop) */
  .page-id-999104 .contact-card{
    --label-size: 26px;
    --phone-number-size: 17px;
    --phone-name-size:   20px;
    --email-size:        20px;
    --address-size:      20px;
    --hours-size:        20px;
  }

  /* Melhor respiro e empilhamento natural */
  .page-id-999104 .contact-card{ padding: 20px }
  .page-id-999104 .contact-card ul{ gap: 16px }
  .page-id-999104 .contact-card li{
    grid-template-columns: 20px 1fr;
    gap: 12px;
    padding: 12px 0;
  }

  /* Linha interna (WA + nº + nome) empilha e alinha à esquerda */
  .page-id-999104 .contact-list .row{
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 6px;
  }

  /* WhatsApp: toque confortável */
  .page-id-999104 a.wa-icon{
    width: 28px; height: 28px; flex-basis: 28px;
  }
  .page-id-999104 a.wa-icon::before{ width: 16px; height: 16px }

  /* Nº de telemóvel ocupa a linha toda (já definido) com bom line-height */
  .page-id-999104 .contact-card li:nth-child(1) .row .tel{
    flex-basis: 100%;
    margin-top: 2px;
    margin-bottom: 2px;
    line-height: 1.45;
    /* torna o link mais “clicável” no touch */
    display: inline-block;
    padding: 2px 0;
  }

  /* Nome com leve redução de contraste para hierarquia visual */
  .page-id-999104 .contact-card li:nth-child(1) .row .contact-name{
    color: var(--muted);
  }

  /* Emails e moradas: deixar partir linha sem estourar o layout */
  .page-id-999104 .contact-card li:nth-child(2) a,  /* email */
  .page-id-999104 .contact-card li:nth-child(3) a{  /* morada */
    overflow-wrap: anywhere;     /* quebra em qualquer ponto seguro */
    word-break: break-word;      /* fallback */
    line-height: 1.6;
  }

  /* Horário: mesma legibilidade */
  .page-id-999104 .contact-card li:nth-child(4) span{
    line-height: 1.6;
  }

  /* Ícone ligeiramente menor em ecrãs estreitos */
  .page-id-999104 .contact-list .icon{ font-size: 20px; margin-top: 2px }

  /* Mapa: cantos e proporção um pouco mais compactos */
  .page-id-999104 .contact-map iframe{
    border-radius: 14px;
    aspect-ratio: 3 / 2;
  }
}

/* <= 380px: micro-ajustes extras para telefones muito estreitos */
@media (max-width: 380px){
  .page-id-999104 .contact-card{
    --label-size: 24px;
    --phone-number-size: 17px;
    --phone-name-size:   14px;
    --email-size:        16px;
    --address-size:      16px;
    --hours-size:        16px;
  }

  /* Reduz um pouco os espaços para caber “respirado” */
  .page-id-999104 .contact-card ul{ gap: 14px }
  .page-id-999104 .contact-card li{ padding: 10px 0 }
}

/* ===== Fix mobile: WA ao lado do nome, nº por baixo ===== */
@media (max-width: 720px){
  /* A “row” volta a ser em linha, com wrap */
  .page-id-999104 .contact-list .row{
    flex-direction: row;      /* <- importante */
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 6px;
  }

  /* Ordem e quebras */
  .page-id-999104 .contact-card li:nth-child(1) .row .contact-name{ order: 1; }
  .page-id-999104 .contact-card li:nth-child(1) .row .wa-icon{
    order: 2;
    width: 28px; height: 28px;      /* toque confortável */
    flex: 0 0 28px;
  }
  .page-id-999104 .contact-card li:nth-child(1) .row .wa-icon::before{
    width: 16px; height: 16px;
  }

  /* nº ocupa a linha inteira abaixo do nome + WA */
  .page-id-999104 .contact-card li:nth-child(1) .row .tel{
    order: 3;
    flex-basis: 100%;
    margin: 2px 0;
    line-height: 1.45;
    display: inline-block;
    padding: 2px 0;
  }
}
/* ---------- MAP Border ---------- */
.page-id-999104 .contact-map{
  border-radius: var(--radius);
  overflow: hidden;                     /* corta os cantos do iframe */
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
}
.page-id-999104 .contact-map iframe{
  display:block; width:100%; height:640px; border:0;
}
@media (max-width:720px){
  .page-id-999104 .contact-map iframe{ height: min(60vh, 420px); }
}



/* =========================
   FAQ — light & dark mode (com tamanhos)
   ========================= */

/* Base (assumimos light por defeito) */
.faq-wrap{
  /* Paleta */
  --faq-card:#ffffff;
  --faq-text:#0f1222;
  --faq-muted:#6b7280;
  --faq-line:rgba(15,18,34,.10);
  --faq-shadow: 0 8px 24px rgba(15,18,34,.06);

  max-width: 960px;
  margin: 24px auto;
  padding: 0 20px;
  color: var(--faq-text);
}

/* Dark via toggle manual */
html[data-theme="dark"] .faq-wrap{
  --faq-card:#121212;
  --faq-text:#e9e9e9;
  --faq-muted:#a3a3a3;
  --faq-line:rgba(255,255,255,.12);
  --faq-shadow: 0 10px 32px rgba(0,0,0,.35);
}

/* Fallback: se não houver data-theme e o sistema estiver em dark */
@media (prefers-color-scheme: dark){
  html:not([data-theme]) .faq-wrap{
    --faq-card:#121212;
    --faq-text:#e9e9e9;
    --faq-muted:#a3a3a3;
    --faq-line:rgba(255,255,255,.12);
    --faq-shadow: 0 10px 32px rgba(0,0,0,.35);
  }
}

/* Limpeza de sombras e tipografia */
.faq-wrap *{ text-shadow: none !important; }

/* TÍTULO H1 (70px) */
.faq-wrap h1{
  margin: 0 0 24px;
  font-size: 70px !important;
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--faq-text);
  text-align: center;
}

/* Item */
.faq-item{
  border: 1px solid var(--faq-line);
  background: var(--faq-card);
  border-radius: 16px;
  margin: 14px 0;
  overflow: clip;
  box-shadow: var(--faq-shadow);
}

/* Cabeçalho (Summary = 30px) */
.faq-item summary{
  list-style: none;
  cursor: pointer;
  padding: 18px 20px 18px 56px;
  font-weight: 700;
  font-size: 25px !important;
  line-height: 1.3;
  color: var(--faq-text);
  position: relative;
  display: flex;
  align-items: center;
  transition: background .2s ease, color .2s ease;
}
.faq-item summary::-webkit-details-marker{ display:none; }

/* Hover/active subtil e acessível */
.faq-item summary:hover{
  background: color-mix(in oklab, var(--faq-card) 92%, black);
}
html[data-theme="dark"] .faq-item summary:hover{
  background: color-mix(in oklab, var(--faq-card) 82%, white);
}

/* Seta */
.faq-item summary::before{
  content:"";
  position:absolute; left:20px; top:50%; translate:0 -50%;
  width:22px; height:22px; /* ligeiramente maior para 30px do summary */
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23000" d="M8.12 9.29L12 13.17l3.88-3.88L17.3 10.7 12 16l-5.3-5.3z"/></svg>') no-repeat center/contain;
  background: currentColor;
  opacity: .9;
  rotate: -90deg;
  transition: rotate .2s ease;
}
.faq-item[open] summary::before{ rotate: 0deg; }

/* Corpo (20px) */
.faq-item .faq-body{
  padding: 0 20px 18px 25px;
  font-size: 20px !important;
  line-height: 1.75;
  animation: faqIn .2s ease;
}
@keyframes faqIn{ from{ opacity:.6; translate:0 -2px } to{ opacity:1; translate:0 0 } }
@media (prefers-reduced-motion: reduce){
  .faq-item .faq-body{ animation: none; }
}

/* Links */
.faq-item a{
  color: var(--faq-text);
  text-decoration: none;
  border-bottom: 1px dashed transparent;
  transition: color .2s ease, border-color .2s ease, opacity .2s ease;
}
.faq-item a:hover{
  color: var(--brand, #eb6b34);
  border-color: var(--brand, #eb6b34);
}

/* Foco teclado */
.faq-item summary:focus-visible{
  outline: 2px solid var(--brand, #eb6b34);
  outline-offset: 4px;
  border-radius: 12px;
}

/* Remove margem extra no primeiro bloco da página */
.page .entry-content > *:first-child{ margin-top: 0; }

/* -------------------------
   Responsivo (mobile)
   ------------------------- */
@media (max-width: 720px){
  .faq-wrap{ margin: 40px auto; padding: 0 16px; }
  .faq-wrap h1{ font-size: 40px !important; }
  .faq-item summary{ font-size: 22px !important; padding: 16px 16px 16px 50px; }
  .faq-item summary::before{ width:18px; height:18px; left:16px; }
  .faq-item .faq-body{ font-size: 18px !important; padding: 0 16px 16px 25px; }
}

/* FAQ: respostas com cor uniforme */
.faq-item .faq-body{
  color: var(--faq-text) !important;
}

/* Garante que tudo dentro herda a mesma cor (mesmo que o tema injete estilos) */
.faq-item .faq-body :is(p, li, span, strong, em, a, code){
  color: inherit !important;
  text-shadow: none !important;
}

/* Links: mantém estilo e hover consistente */
.faq-item .faq-body a{
  text-decoration: none;
  border-bottom: 1px solid white;
}
.faq-item .faq-body a:hover{
  color: var(--brand, #eb6b34) !important;
  border-color: var(--brand, #eb6b34);
}

/* Se houver elementos com cor inline vinda do editor, neutraliza */
.faq-item .faq-body [style*="color"]{
  color: inherit !important;
}


/* link específico dentro do corpo da FAQ */
.page-id-999104 .faq-item .faq-body a {
  border-bottom: 0 !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  text-decoration-color: currentColor;
  transition: color .2s ease, text-decoration-color .2s ease;
}

/* no hover, segue o que já tens */
.page-id-999104 .faq-item .faq-body a:hover {
  color: var(--brand);
  text-decoration-color: currentColor; /* mantém o underline da mesma cor */
}

/* =========================
   Tipo de Letra
   ========================= */
html, body { font-family: var(--font-sans) !important; }
h1, h2, h3, h4, h5, h6,
.entry-title, .wp-block-post-title { font-family: var(--font-sans) !important; }


/* H1 e H2 sempre brancos no modo dark (inclui títulos do Blocksy) */
html[data-theme="dark"] :is(h1, h2, .entry-title, .wp-block-post-title),
html[data-theme="dark"] :is(h1, h2, .entry-title, .wp-block-post-title) a {
  color: #fff !important;
}
/* =========================
   ========================= */

/* Back-to-portfolio link — match global link styling */
.project-header .project-nav{ margin:6px 0 2px; }

.project-header .project-nav .btn-back{
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid white;     /* same underline pattern */
  transition: color .2s ease, border-color .2s ease, opacity .2s ease;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.project-header .project-nav .btn-back:hover{
  color: var(--brand, #eb6b34);              /* orange on hover */
  border-color: var(--brand, #eb6b34);
}

/* Keyboard focus – accessible but subtle */
.project-header .project-nav .btn-back:focus-visible{
  outline: 2px solid color-mix(in oklab, var(--brand, #eb6b34) 60%, transparent);
  outline-offset: 2px;
  border-radius: 6px;
}
/* =========================
   ========================= */

/* Justificar texto de um grupo ou parágrafos */
.texto-justificado p{
  text-align: justify;
  text-justify: inter-word;   /* melhor espaçamento entre palavras */
  hyphens: auto;              /* hifenização automática */
}

/* Opcional: também justificar listas e blocos ricos dentro do grupo */
.texto-justificado :is(li, blockquote, .wp-block-media-text__content){
  text-align: justify;
  hyphens: auto;
}

/* Garante hifenização em PT */
html[lang^="pt"] .texto-justificado { hyphens: auto; }

/* =========================
   ========================= */
/* 0) Smoothing consistente (melhora AA sem mudar layout) */
html{
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* 1) Evitar blend no wrapper de texto (mover p/ overlay) */
html[data-theme="dark"] body:not(.home) :is(.site,.site-main,.content-area,#primary){
  background-blend-mode: normal !important; /* antes: multiply */
}
html[data-theme="dark"] body:not(.home) .site::before{
  /* já tens este overlay; podemos intensificar aqui em vez do wrapper */
  background: rgba(0,0,0,.46) !important;   /* ligeiramente + escuro */
  mix-blend-mode: multiply;                  /* se quiseres o efeito, aplica só no overlay */
}

/* 2) Domar text-shadow no single dos projetos (tira “3D” em ecrã largo) */
@media (min-width: 1200px){
  .single-projetos .entry-content :is(p, li, span, strong, em, a){
    text-shadow: none !important;
  }
  .single-projetos .entry-content :is(h1, h2, h3){
    /* mantém alguma separação do fundo mas sem fringing */
    text-shadow: 0 1px 2px rgba(0,0,0,.35) !important;
  }
}

/* 3) Garantir que títulos e copy não entram em camadas por acidente */
.single-projetos .entry-content :is(h1,h2,h3,p,li,a){
  filter: none !important;
  opacity: 1 !important;
  /* nada de transforms em wrappers de texto */
}

/* 4) (Opcional) Se notares o efeito em todo o site, podes alargar: */
@media (min-width: 1400px){
  body:not(.home):not(.front-page) .entry-content :is(p, li, span, strong, em, a){
    text-shadow: none !important;
  }
}


/* LinkedIn link – estilo base */
a.LinkedIncss{
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid white;
  transition: color .2s ease, border-color .2s ease, opacity .2s ease;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

/* Hover: muda para a cor da brand e sublinhado acompanha */
a.LinkedIncss:hover{
  color: var(--brand, #eb6b34);
  border-color: var(--brand, #eb6b34);
}
