/* =====================================================================
   Polvo Criativo — ajustes v17
   Carregado depois de main.css / responsive-mobile.css em todas as páginas.
   ===================================================================== */

:root {
  /* margem lateral do conteúdo (alinhamento do logo com o texto do hero).
     O valor exacto é recalculado em js/polvo-custom.js */
  --polvo-edge: 3rem;
  --polvo-c1: rgb(240,80,36);   /* Impressão & Corte Digital */
  --polvo-c2: rgb(2,90,47);     /* Montras & Viaturas */
  --polvo-c3: rgb(81,74,146);   /* Stands & Eventos */
  --polvo-c4: rgb(253,193,50);  /* Têxtil */
  --polvo-c5: rgb(246,170,161); /* Branding & Design */
  --polvo-c6: #161616;          /* Marketing */
}
@media (min-width: 768px)  { :root { --polvo-edge: 4.5rem; } }
@media (min-width: 1200px) { :root { --polvo-edge: 5.5rem; } }
@media (min-width: 1400px) { :root { --polvo-edge: 6rem; } }
@media (min-width: 1600px) { :root { --polvo-edge: 9rem; } }

/* ---------------------------------------------------------------------
   1. NAV — logo alinhado com o texto "Criatividade sem limites."
   --------------------------------------------------------------------- */
.mxd-nav__wrap .mxd-nav__contain {
  padding-left: var(--polvo-edge) !important;
  padding-right: var(--polvo-edge) !important;
  gap: 2rem;
}
.polvo-nav-logo { flex: 0 0 auto; }
.polvo-nav-logo img { height: 8rem !important; width: auto; }
.mxd-nav__wrap.is-scrolled .polvo-nav-logo img { height: 4.6rem !important; }

/* Menu de categorias sempre visível no topo */
.polvo-topmenu {
  display: none;
  list-style: none;
  margin: 0 auto;
  padding: 0;
  align-items: center;
  gap: clamp(1.4rem, 1.6vw, 3rem);
  pointer-events: auto;
}
@media (min-width: 1360px) { .polvo-topmenu { display: flex; } }
.polvo-topmenu li { margin: 0; }
.polvo-topmenu a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--_font-default);
  font-weight: 600;
  font-size: clamp(1.25rem, 0.95vw, 1.6rem);
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  color: #1a1a1a;
  padding: 0.6rem 0;
  transition: color .3s ease, opacity .3s ease;
}
.polvo-topmenu a::before {
  content: "";
  width: 0.8rem; height: 0.8rem;
  border-radius: 50%;
  background: var(--cat, currentColor);
  flex: 0 0 auto;
  transition: transform .3s ease;
}
.polvo-topmenu a::after {
  content: "";
  position: absolute; left: 1.5rem; right: 0; bottom: 0;
  height: 2px; background: var(--cat, currentColor);
  transform: scaleX(0); transform-origin: left;
  transition: transform .3s ease;
}
.polvo-topmenu a:hover::after,
.polvo-topmenu a.is-active::after { transform: scaleX(1); }
.polvo-topmenu a:hover::before { transform: scale(1.3); }
/* Home, topo da página: texto branco sobre o wallpaper */
.polvo-nav--home:not(.is-scrolled) .polvo-topmenu a { color: #ffffff; text-shadow: none; }
.polvo-nav--home:not(.is-scrolled) .polvo-topmenu a[style*="--cat:#161616"]::before { background: #ffffff; }
.mxd-nav__wrap.is-scrolled .polvo-topmenu a { font-size: clamp(1.2rem, 0.9vw, 1.45rem); }
/* Em ecrãs mais estreitos, o botão "Fala Connosco" fica só com o ícone para dar espaço ao menu */
/* Botão "Contacto" no topo: contorno no topo da página, só texto ao fazer scroll */
.polvo-nav-cta {
  display: inline-flex; align-items: center; gap: .8rem; pointer-events: auto;
  height: 5.2rem; padding: 0 2.2rem; border-radius: 3rem;
  border: 1.5px solid var(--ink); color: var(--ink) !important;
  font: 600 1.6rem/1 var(--_font-default); text-decoration: none; white-space: nowrap;
  transition: all .35s ease;
}
.polvo-nav-cta span { color: inherit !important; }
.polvo-nav-cta i { font-size: 1.8rem; }
.polvo-nav-cta:hover { background: var(--ink); color: #fff !important; }
.polvo-nav--home .polvo-nav-cta:hover { color: #161616 !important; }
.mxd-nav__wrap.is-scrolled .polvo-nav-right a.polvo-nav-cta {
  border-color: transparent !important; background: transparent !important;
  height: 4.4rem; padding: 0 .6rem; color: #1a1a1a !important; font-size: 1.5rem;
}
.mxd-nav__wrap.is-scrolled .polvo-nav-right a.polvo-nav-cta:hover span { text-decoration: underline; text-underline-offset: .4rem; }
@media (max-width: 767px) {
  .polvo-nav-cta { height: 3.8rem; padding: 0 1.2rem; font-size: 1.35rem; gap: .4rem; }
  .polvo-nav-cta i { display: none; }
  .polvo-nav-logo img { height: 5.6rem !important; }
  .mxd-nav__wrap .mxd-nav__contain { gap: .8rem; }
  .polvo-nav-right { gap: .6rem !important; }
}
/* Quando o menu hamburger está aberto, esconder o menu de categorias */
.mxd-nav__wrap:has(.mxd-nav__hamburger.nav-open) .polvo-topmenu { opacity: 0; pointer-events: none; }

/* ---------------------------------------------------------------------
   2. MENU HAMBURGER — versão mais compacta (não corta os contactos)
   --------------------------------------------------------------------- */
.polvo-menu { position: relative; overflow: hidden; }
.polvo-menu__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.polvo-menu__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.polvo-menu__bg span { position: absolute; inset: 0; background: rgba(0,0,0,0.55); }
.mxd-menu__inner.polvo-menu__inner {
  position: relative; z-index: 10; pointer-events: auto;
  display: flex !important; flex-direction: column !important;
  justify-content: space-between;
  gap: clamp(1.6rem, 3vh, 3rem);
  height: 100%;
  padding: clamp(8rem, 13vh, 11rem) clamp(2.4rem, 5vw, 6rem) clamp(2rem, 4vh, 4rem) !important;
  overflow-y: auto !important;
}
.polvo-menu__hello {
  font-family: var(--_font-accent); font-weight: 700; color: #f4c23d;
  font-size: clamp(1.8rem, min(2.6vw, 3.6vh), 3.2rem);
  line-height: 1.1; margin: 0;
}
.polvo-menu__hello + .polvo-menu__hello { margin-bottom: clamp(1.2rem, 2.6vh, 2.4rem); }
.polvo-menu__links { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.polvo-menu__links a {
  display: inline-block;
  font-family: var(--_font-accent); font-weight: 700;
  font-size: clamp(2.4rem, min(3.6vw, 5.4vh), 4.2rem);
  line-height: 1.15; color: #ffffff; text-decoration: none;
  transition: color .2s;
}
.polvo-menu__links a:hover { color: #f4c23d; }
.polvo-menu__foot {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start;
  gap: 1.6rem 3rem;
  border-top: 1px solid rgba(255,255,255,0.2);
  padding-top: clamp(1.4rem, 2.4vh, 2.4rem);
}
.polvo-menu__foot p { color: rgba(255,255,255,0.75); font-size: 1.4rem; line-height: 1.5; margin: 0; }
.polvo-menu__contacts { display: flex; flex-direction: column; gap: 0.6rem; }
.polvo-menu__contacts a { color: #ffffff; text-decoration: none; font-size: 1.5rem; font-weight: 500; }
.polvo-menu__contacts a:hover { color: #f4c23d; }

/* ---------------------------------------------------------------------
   3. HERO (home)
   --------------------------------------------------------------------- */
/* Texto a correr: mais pequeno */
.mxd-hero-02-marquee .marquee__text { font-size: clamp(4.4rem, 6.4vw, 10rem) !important; }
.mxd-hero-02-marquee .marquee__image { width: clamp(3.2rem, 4.2vw, 6.4rem) !important; height: clamp(3.2rem, 4.2vw, 6.4rem) !important; }
.mxd-hero-02-marquee .marquee__item.item-regular,
.mxd-hero-02-marquee__line .marquee__toleft { gap: clamp(2rem, 2.6vw, 4rem) !important; }
@media (max-width: 768px) {
  .mxd-hero-02-marquee .marquee__text { font-size: clamp(2.8rem, 8vw, 4.6rem) !important; }
}
.mxd-hero-02-static__center { will-change: opacity; }

/* Lista de categorias do hero: clicáveis */
.polvo-hero-cats a { color: inherit; text-decoration: none; transition: opacity .2s, padding .2s; }
.polvo-hero-cats a:hover { opacity: 1; padding-left: .4rem; text-decoration: underline; text-underline-offset: .3rem; }
.polvo-hero-cats p { color: #ffffff !important; }

/* Círculo a girar: mais pequeno */
.mxd-hero-02-static__btn { right: calc(var(--polvo-edge) + 8rem) !important; }
.mxd-hero-02-static__btn .btn-rotating-160,
.mxd-hero-02-static__btn .btn-rotating-160 .btn-rotating__text { width: 110px !important; height: 110px !important; }
.mxd-hero-02-static__btn .btn-rotating-160 .btn-rotating__text text { font-size: 1.75rem; }
.mxd-hero-02-static__btn .btn-rotating-160 .btn-rotating__image { width: 4rem !important; height: 4rem !important; }

/* ---------------------------------------------------------------------
   4. FICHAS COLORIDAS (stack) — marcadores + clicáveis + ecrã completo
   --------------------------------------------------------------------- */
.polvo-stack { --stack-tab: 44px; --stack-top: 11rem; --stack-bottom: 1.6rem; --stack-n: 7; }
@media (max-width: 767px) { .polvo-stack { --stack-tab: 36px; --stack-top: 8rem; --stack-bottom: 1.2rem; } }

.polvo-stack.stack-wrapper.mxd-hero-02-stack { margin-top: 0 !important; }
.mxd-section.padding-stacked-section { padding-top: 0 !important; }
.polvo-stack .stack-offset { height: var(--stack-top) !important; }
.polvo-stack .services-stack {
  height: calc(100vh - var(--stack-top) - var(--stack-bottom)) !important;
  height: calc(100svh - var(--stack-top) - var(--stack-bottom)) !important;
  min-height: 0 !important;
}
.polvo-stack .stack-item {
  height: calc(100% - (var(--stack-n) - 1) * var(--stack-tab)) !important;
  padding-bottom: 0 !important;
}
.polvo-stack .mxd-services-stack__inner {
  cursor: pointer;
  padding: calc(var(--stack-tab) + 0.4rem) clamp(2rem, 3.4vw, 5rem) clamp(2rem, 3vh, 4rem) !important;
  box-shadow: 0 -6px 24px rgba(0,0,0,0.10);
}
.polvo-stack .mxd-services-stack__container { height: 100%; }
/* Título responsivo (adapta-se à altura do ecrã para a ficha caber sempre) */
.polvo-stack .mxd-services-stack__title { margin-bottom: clamp(0.8rem, 2vh, 2.4rem) !important; gap: 2rem; }
.polvo-stack .mxd-services-stack__title h3 { font-size: clamp(2.6rem, min(4.4vw, 6.4vh), 6.4rem) !important; line-height: 1.08; }
.polvo-stack .mxd-services-stack__title h3 a { color: inherit; text-decoration: none; }
.polvo-stack .mxd-services-stack__number { font-size: clamp(2.6rem, min(4.4vw, 6.4vh), 6.4rem) !important; flex: 0 0 auto; }
.polvo-stack .mxd-services-stack__info { margin-bottom: clamp(1rem, 2.4vh, 3rem) !important; }
.polvo-stack .mxd-services-stack__info p { font-size: clamp(1.4rem, min(1.2vw, 2vh), 1.8rem); line-height: 1.5; }
.polvo-stack .mxd-services-stack__works { min-height: 0; flex: 1 1 auto; }
.polvo-stack .mxd-services-stack__work { min-height: 0; }
/* Etiquetas legíveis (antes: texto branco sobre fundo branco) */
.mxd-services-stack__inner.showcase-inner .tag,
.mxd-services-stack__inner.showcase-inner span.tag { color: #161616 !important; }

/* Marcador superior de cada ficha */
.polvo-stack-tab {
  position: absolute; top: 0; left: 0; right: 0; z-index: 5;
  height: var(--stack-tab);
  display: flex; align-items: center; gap: 1.2rem;
  padding: 0 clamp(2rem, 3.4vw, 5rem);
  color: #ffffff !important; text-decoration: none;
  font-family: var(--_font-default); font-weight: 600;
  font-size: clamp(1.3rem, 1vw, 1.6rem);
  opacity: 0; transition: opacity .25s ease;
}
.polvo-stack-tab .polvo-stack-tab__num { opacity: .7; font-variant-numeric: tabular-nums; color: inherit !important; }
.polvo-stack-tab .polvo-stack-tab__label { color: inherit !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.polvo-stack-tab i { margin-left: auto; font-size: 1.6rem; }
.polvo-stack-tab:hover .polvo-stack-tab__label { text-decoration: underline; text-underline-offset: .3rem; }
.stack-item.is-covered .polvo-stack-tab { opacity: 1; }
.stack-item.is-covered .mxd-services-stack__title,
.stack-item.is-covered .mxd-services-stack__info,
.stack-item.is-covered .mxd-services-stack__works { opacity: 0; transition: opacity .25s ease; }
.mxd-services-stack__title, .mxd-services-stack__info, .mxd-services-stack__works { transition: opacity .25s ease; }

/* Ecrãs baixos: esconder o parágrafo e reduzir imagens para a ficha caber */
@media (max-height: 720px) {
  .polvo-stack .mxd-services-stack__info { display: none; }
}
@media (max-width: 767px) {
  .polvo-stack .mxd-services-stack__title.showcase-title { flex-direction: row !important; align-items: flex-start; justify-content: space-between; }
  .polvo-stack .mxd-services-stack__title h3 { font-size: clamp(2.2rem, 7vw, 3.2rem) !important; }
  .polvo-stack .mxd-services-stack__number { font-size: clamp(2.2rem, 7vw, 3.2rem) !important; }
  .polvo-stack .mxd-services-stack__info.showcase-info { width: 100% !important; }
  .polvo-stack .mxd-services-stack__works { flex-direction: row !important; gap: 1rem !important; }
  .polvo-stack .mxd-services-stack__work { width: calc(50% - .5rem) !important; height: 100% !important; }
  .polvo-stack .mxd-services-stack__tags { display: none !important; }
}

/* ---------------------------------------------------------------------
   5. CAPACIDADES — lista uniforme (sem imagem ao passar o rato)
   --------------------------------------------------------------------- */
.mxd-cpb-list { list-style: none; padding: 0; margin: 0; }

/* ---------------------------------------------------------------------
   6. PÁGINAS DE SERVIÇO (categoria)
   --------------------------------------------------------------------- */
.polvo-svc { --cat: var(--polvo-c1); --cat-ink: #ffffff; }
.polvo-svc-hero {
  position: relative; overflow: hidden;
  margin: 0 var(--polvo-edge);
  border-radius: var(--_radius-l, 3rem);
  background: var(--cat); color: var(--cat-ink);
  padding: clamp(4rem, 7vw, 9rem) clamp(2.4rem, 5vw, 7rem);
  display: grid; grid-template-columns: 1fr; gap: 4rem;
}
@media (min-width: 1100px) { .polvo-svc-hero { grid-template-columns: 1.25fr 1fr; align-items: end; } }
.polvo-svc-crumbs { display: flex; gap: .8rem; align-items: center; font-size: 1.4rem; margin: 0 0 2.4rem; opacity: .85; }
.polvo-svc-crumbs a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.polvo-svc-crumbs span { color: inherit; }
.polvo-svc-hero h1 {
  font-family: var(--_font-accent); font-weight: 700; color: inherit;
  font-size: clamp(4rem, 7vw, 10rem); line-height: 1; letter-spacing: -0.02em; margin: 0;
}
.polvo-svc-hero__num { font-family: var(--_font-accent); font-weight: 600; font-size: clamp(2rem, 2.4vw, 3.2rem); opacity: .6; margin: 0 0 1.2rem; color: inherit; }
.polvo-svc-hero__lead { font-size: clamp(1.7rem, 1.5vw, 2.2rem); line-height: 1.5; margin: 0 0 3rem; color: inherit; }
.polvo-svc-hero__img { border-radius: var(--_radius-m, 2rem); overflow: hidden; aspect-ratio: 4/3; }
.polvo-svc-hero__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.polvo-svc-btn {
  display: inline-flex; align-items: center; gap: 1rem;
  height: 5.6rem; padding: 0 2.6rem; border-radius: 3rem;
  background: var(--cat-ink); color: var(--cat) !important;
  font-family: var(--_font-accent); font-weight: 600; font-size: 1.7rem; text-decoration: none;
  transition: transform .2s ease;
}
.polvo-svc-btn span { color: inherit !important; }
.polvo-svc-btn:hover { transform: translateY(-2px); }
.polvo-svc-btn--ghost { background: transparent; color: var(--cat-ink) !important; border: 1.5px solid var(--cat-ink); }

.polvo-svc-section { padding: clamp(6rem, 9vw, 12rem) var(--polvo-edge) 0; }
.polvo-svc-section > h2 {
  font-size: clamp(3.2rem, 4.4vw, 6.4rem); line-height: 1.05; margin: 0 0 clamp(3rem, 4vw, 5rem);
}
.polvo-svc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; border-top: 1px solid var(--st-muted, rgba(0,0,0,.12)); }
@media (min-width: 768px) { .polvo-svc-list { grid-template-columns: 1fr 1fr; column-gap: 4rem; } }
.polvo-svc-list li {
  display: flex; align-items: baseline; gap: 2rem;
  padding: 2.2rem 0; border-bottom: 1px solid var(--st-muted, rgba(0,0,0,.12));
}
.polvo-svc-list .n { font-family: var(--_font-accent); font-weight: 600; color: var(--cat); font-size: 1.6rem; min-width: 3.4rem; }
.polvo-svc-list h3 { font-size: clamp(2rem, 1.8vw, 2.6rem); line-height: 1.2; margin: 0 0 .4rem; }
.polvo-svc-list p { margin: 0; color: var(--t-muted); font-size: 1.5rem; line-height: 1.5; }

.polvo-svc-steps { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 768px) { .polvo-svc-steps { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .polvo-svc-steps { grid-template-columns: repeat(4, 1fr); } }
.polvo-svc-step { background: var(--base-tint, #fff); border-radius: var(--_radius-m, 2rem); padding: 3rem; }
.polvo-svc-step .n { display: inline-flex; width: 4.4rem; height: 4.4rem; border-radius: 50%; align-items: center; justify-content: center; background: var(--cat); color: var(--cat-ink); font-weight: 700; font-size: 1.6rem; margin-bottom: 2.4rem; }
.polvo-svc-step h3 { font-size: 2.2rem; margin: 0 0 1rem; }
.polvo-svc-step p { margin: 0; font-size: 1.5rem; line-height: 1.55; color: var(--t-muted); }

.polvo-svc-works { display: grid; grid-template-columns: 1fr; gap: 2.4rem; }
@media (min-width: 768px) { .polvo-svc-works { grid-template-columns: repeat(3, 1fr); } }
.polvo-svc-work { display: block; text-decoration: none; color: inherit; }
.polvo-svc-work__img { border-radius: var(--_radius-m, 2rem); overflow: hidden; aspect-ratio: 4/5; margin-bottom: 1.6rem; }
.polvo-svc-work__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.polvo-svc-work:hover img { transform: scale(1.04); }
.polvo-svc-work h3 { font-size: 2rem; margin: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }

.polvo-svc-others { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.polvo-svc-chip {
  display: inline-flex; align-items: center; gap: 1rem;
  padding: 1.4rem 2.2rem; border-radius: 4rem;
  background: var(--chip); color: var(--chip-ink, #fff) !important;
  font-weight: 600; font-size: 1.6rem; text-decoration: none;
  transition: transform .2s ease;
}
.polvo-svc-chip span { color: inherit !important; }
.polvo-svc-chip:hover { transform: translateY(-2px); }

.polvo-svc-cta {
  margin: clamp(6rem, 9vw, 12rem) var(--polvo-edge) clamp(6rem, 8vw, 10rem);
  border-radius: var(--_radius-l, 3rem); background: var(--cat); color: var(--cat-ink);
  padding: clamp(4rem, 6vw, 7rem); display: flex; flex-wrap: wrap; gap: 3rem; align-items: center; justify-content: space-between;
}
.polvo-svc-cta p { font-family: var(--_font-accent); font-weight: 700; font-size: clamp(3rem, 4.4vw, 6.4rem); line-height: 1.05; margin: 0; color: inherit; max-width: 22ch; }

/* Página Serviços — grelha de categorias */
.polvo-cats-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 768px) { .polvo-cats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .polvo-cats-grid { grid-template-columns: repeat(3, 1fr); } }
.polvo-cat-card {
  position: relative; display: flex; flex-direction: column; justify-content: space-between;
  min-height: 32rem; padding: 3.2rem; border-radius: var(--_radius-l, 3rem);
  background: var(--chip); color: var(--chip-ink, #fff) !important; text-decoration: none; overflow: hidden;
  transition: transform .3s ease;
}
.polvo-cat-card:hover { transform: translateY(-4px); }
.polvo-cat-card * { color: inherit !important; }
.polvo-cat-card .num { font-family: var(--_font-accent); font-weight: 600; font-size: 2rem; opacity: .7; }
.polvo-cat-card h2 { font-size: clamp(2.8rem, 2.6vw, 4rem); line-height: 1.05; margin: 2rem 0 1.2rem; }
.polvo-cat-card p { font-size: 1.5rem; line-height: 1.5; margin: 0; opacity: .9; }
.polvo-cat-card .go { display: inline-flex; align-items: center; gap: .8rem; margin-top: 2.4rem; font-weight: 600; font-size: 1.5rem; }

/* ---------------------------------------------------------------------
   7. Mobile: impedir scroll horizontal (o texto a correr alargava a página
      e empurrava o botão do menu para fora do ecrã)
   --------------------------------------------------------------------- */
html, body { overflow-x: clip; }
.mxd-section.padding-mtext-pre-grid, .mxd-hero-02-static__center { overflow: hidden; }
@media (max-width: 767px) {
  .polvo-hero-cats p { white-space: normal !important; }
  .polvo-nav-logo img { height: 6.4rem !important; }
}
/* Categorias dentro do menu hamburger (só em ecrãs onde o menu do topo não aparece) */
.polvo-menu__cats { list-style: none; padding: 0; margin: clamp(1.6rem, 3vh, 2.8rem) 0 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.polvo-menu__cats a { display: inline-flex; align-items: center; gap: .6rem; padding: .6rem 1.2rem; border-radius: 2rem; border: 1px solid rgba(255,255,255,.35); color: #fff; font-size: 1.35rem; font-weight: 600; text-decoration: none; }
.polvo-menu__cats a::before { content: ""; width: .7rem; height: .7rem; border-radius: 50%; background: var(--cat); box-shadow: 0 0 0 1px rgba(255,255,255,.5); }
@media (min-width: 1360px) { .polvo-menu__cats { display: none; } }
.polvo-svc-hero, .polvo-svc-cta { width: auto !important; min-width: 0 !important; box-sizing: border-box; }
.polvo-svc-section { box-sizing: border-box; }

/* =====================================================================
   v17.1
   ===================================================================== */
/* Categorias do hero: só texto branco, sem linha */
.polvo-hero-cats a, .polvo-hero-cats a:hover, .polvo-hero-cats a:visited {
  color: #ffffff !important; text-decoration: none !important; border: 0 !important;
  background-image: none !important; box-shadow: none !important;
}
.polvo-hero-cats a:hover { opacity: .75; padding-left: .4rem; }
.polvo-hero-cats a::before, .polvo-hero-cats a::after { display: none !important; }

/* Menos fundo vazio depois das imagens do hero: as fichas começam logo a seguir */
@media (min-width: 769px) {
  .mxd-hero-02-scroll__wrap { padding-bottom: 14vh !important; }
}

/* Títulos genéricos das páginas internas */
.polvo-page-title { font-size: clamp(4rem, 6.4vw, 9.6rem); line-height: 1; letter-spacing: -0.02em; margin: 0 0 2.4rem; max-width: 16ch; }
.polvo-page-lead { font-size: clamp(1.7rem, 1.5vw, 2.2rem); line-height: 1.5; max-width: 60ch; color: var(--t-muted); margin: 0 0 4rem; }

/* Portfólio */
.polvo-filters { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 4rem; }
.polvo-filter {
  display: inline-flex; align-items: center; gap: .8rem; cursor: pointer;
  padding: 1.1rem 2rem; border-radius: 4rem; border: 1.5px solid var(--chip);
  background: transparent; color: var(--t-bright); font: 600 1.5rem/1 var(--_font-default);
  transition: background .2s, color .2s;
}
.polvo-filter::before { content: ""; width: .9rem; height: .9rem; border-radius: 50%; background: var(--chip); }
.polvo-filter[data-filter="all"]::before { display: none; }
.polvo-filter:hover, .polvo-filter.is-active { background: var(--chip); color: var(--chip-ink); }
.polvo-filter.is-active::before { background: var(--chip-ink); }
.polvo-pf { display: grid; grid-template-columns: 1fr; gap: clamp(2rem, 2.4vw, 3.2rem); }
@media (min-width: 640px) { .polvo-pf { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .polvo-pf { grid-template-columns: repeat(3, 1fr); } }
.polvo-pf__item { display: block; color: inherit; text-decoration: none; }
.polvo-pf__img { position: relative; border-radius: var(--_radius-m, 2rem); overflow: hidden; aspect-ratio: 4/5; margin-bottom: 1.4rem; background: var(--base-tint); }
.polvo-pf__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
a.polvo-pf__item:hover .polvo-pf__img img { transform: scale(1.05); }
.polvo-pf__tags { position: absolute; left: 1.4rem; bottom: 1.4rem; right: 1.4rem; display: flex; flex-wrap: wrap; gap: .6rem; }
.polvo-pf__tag { padding: .5rem 1.1rem; border-radius: 2rem; background: var(--chip); color: var(--chip-ink) !important; font-size: 1.25rem; font-weight: 600; }
.polvo-pf__item h3 { font-size: clamp(1.8rem, 1.4vw, 2.2rem); line-height: 1.25; margin: 0; display: flex; justify-content: space-between; gap: 1rem; }
.polvo-insta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 2rem;
  padding: clamp(2.4rem, 3vw, 4rem); border-radius: var(--_radius-l, 3rem);
  background: linear-gradient(110deg, var(--polvo-c1), var(--polvo-c5) 45%, var(--polvo-c3));
  color: #fff !important; text-decoration: none; font-size: clamp(1.8rem, 1.8vw, 2.6rem);
}
.polvo-insta * { color: inherit !important; }
.polvo-insta strong { font-family: var(--_font-accent); }
.polvo-insta i { margin-left: auto; font-size: 3rem; }

/* Contacto */
.polvo-contact { display: grid; grid-template-columns: 1fr; gap: clamp(3rem, 5vw, 8rem); align-items: start; }
@media (min-width: 1100px) { .polvo-contact { grid-template-columns: 1fr 1fr; } }
.polvo-contact__cards { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 560px) { .polvo-contact__cards { grid-template-columns: 1fr 1fr; } }
.polvo-ccard {
  display: flex; flex-direction: column; gap: .4rem; padding: 2.2rem; border-radius: var(--_radius-m, 2rem);
  background: var(--base-tint, #fff); text-decoration: none; color: var(--t-bright); border-top: 5px solid var(--chip);
  transition: transform .2s;
}
.polvo-ccard:hover { transform: translateY(-3px); }
.polvo-ccard i { font-size: 2.6rem; color: var(--chip); margin-bottom: .6rem; }
.polvo-ccard .k { font-size: 1.3rem; color: var(--t-muted); text-transform: uppercase; letter-spacing: .06em; }
.polvo-ccard .v { font-size: 1.7rem; font-weight: 600; line-height: 1.35; word-break: break-word; }
.polvo-contact__hours { margin: 2rem 0 0; color: var(--t-muted); font-size: 1.5rem; display: flex; align-items: center; gap: .8rem; }
.polvo-contact__form { background: var(--base-tint, #fff); border-radius: var(--_radius-l, 3rem); padding: clamp(2.4rem, 3.4vw, 5rem); position: relative; }
.polvo-contact__formtitle { font-family: var(--_font-accent); font-weight: 700; font-size: clamp(2.6rem, 2.4vw, 3.6rem); margin: 0 0 2.4rem; }
.polvo-fields { display: grid; grid-template-columns: 1fr; gap: 1.6rem 2rem; margin-bottom: 2.8rem; }
@media (min-width: 640px) { .polvo-fields { grid-template-columns: 1fr 1fr; } }
.polvo-fields label { display: flex; flex-direction: column; gap: .6rem; margin: 0; }
.polvo-fields label.full { grid-column: 1 / -1; }
.polvo-fields label > span { font-size: 1.35rem; font-weight: 600; color: var(--t-muted); }
.polvo-fields input, .polvo-fields select, .polvo-fields textarea {
  width: 100%; box-sizing: border-box; font: 400 1.6rem/1.4 var(--_font-default); color: var(--t-bright);
  background: var(--base, #faf7f6); border: 1.5px solid transparent; border-radius: 1.2rem;
  padding: 1.3rem 1.5rem; outline: none; transition: border-color .2s; margin: 0; height: auto;
}
.polvo-fields textarea { resize: vertical; min-height: 14rem; }
.polvo-fields input:focus, .polvo-fields select:focus, .polvo-fields textarea:focus { border-color: var(--polvo-c1); }
.polvo-contact__submit { --cat: #ffffff; --cat-ink: rgb(240,80,36); border: 0; cursor: pointer; }
.polvo-contact__submit { background: rgb(240,80,36) !important; color: #fff !important; }
.polvo-map { border-radius: var(--_radius-l, 3rem); overflow: hidden; height: clamp(32rem, 40vw, 52rem); background: var(--base-tint); }
.polvo-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.2); }
.polvo-contact__cards a.polvo-ccard { position: static !important; width: auto !important; height: auto !important; min-height: 0 !important; border-radius: var(--_radius-m, 2rem) !important; display: flex !important; background: var(--base-tint, #fff) !important; box-shadow: none !important; }

/* =====================================================================
   v17.2 — Menu em caixa pequena à direita
   ===================================================================== */
.mxd-menu__wrapper { padding: 0 !important; pointer-events: none; }
.mxd-menu__contain.polvo-menu {
  position: absolute !important; top: 9.4rem; right: var(--polvo-edge);
  width: min(28rem, calc(100vw - 2 * var(--polvo-edge))) !important; height: auto !important; max-height: calc(100vh - 11rem);
  border-radius: 2.4rem; pointer-events: auto; box-shadow: 0 18px 50px rgba(0,0,0,.25);
}
.mxd-nav__wrap.is-scrolled .mxd-menu__contain.polvo-menu { top: 6.4rem; }
.polvo-menu__bg span { background: rgba(0,0,0,0.62); }
.mxd-menu__inner.polvo-menu__inner {
  height: auto !important; padding: 2.4rem 2.8rem !important; gap: 0 !important;
  text-align: right; align-items: flex-end;
}
.mxd-menu__inner.polvo-menu__inner > div { width: 100%; }
.polvo-menu__links { align-items: flex-end; gap: .4rem; }
.polvo-menu__links a { font-size: 2.4rem !important; line-height: 1.25; }
.polvo-menu__cats { justify-content: flex-end; flex-direction: column; align-items: flex-end; gap: .6rem; margin-top: 1.8rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.2); }
.polvo-menu__cats a { font-size: 1.3rem; padding: .5rem 1rem; }
/* sem escurecer a página toda — só a caixa */
.mxd-menu__base { background: transparent !important; }

/* =====================================================================
   v17.3 — Fundo colorido só na parte superior (hero)
   ===================================================================== */
body { background-color: var(--base) !important; }
.mxd-hero-02.mxd-pinned-fullscreen { position: relative; isolation: isolate; }
.polvo-hero-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.polvo-hero-bg__img {
  position: sticky; top: 0; width: 100%; height: 100vh;
  background: url("../img/wallpaper-home.jpg") center / cover no-repeat;
}
.mxd-hero-02 .mxd-pinned-fullscreen__static { z-index: 1; }
.mxd-hero-02 .mxd-pinned-fullscreen__scroll { z-index: 3; }
/* garantir que nenhuma secção abaixo deixa ver o fundo nas laterais */
#mxd-page-content > .mxd-section:not(:first-of-type), .mxd-footer { background-color: var(--base) !important; }

/* =====================================================================
   v17.4 — Menu em caixa clara, no estilo do site + logos arredondados
   ===================================================================== */
.mxd-menu__contain.polvo-menu {
  background: #ffffff !important; overflow: hidden;
  border-radius: 2.8rem !important;
  box-shadow: 0 24px 60px rgba(22,22,22,.18), 0 2px 8px rgba(22,22,22,.06) !important;
}
.mxd-menu__contain.polvo-menu .hamburger__base { display: none !important; }
.mxd-menu__inner.polvo-menu__inner { padding: 2.6rem 2.8rem 2.4rem !important; }
.polvo-menu__links { gap: .2rem !important; }
.polvo-menu__links li { width: 100%; text-align: right; }
.polvo-menu__links a {
  position: relative; display: inline-flex !important; align-items: center; gap: 1.2rem;
  font-family: var(--_font-accent) !important; font-weight: 700 !important;
  font-size: 2.6rem !important; line-height: 1.3 !important; letter-spacing: -0.01em;
  color: #161616 !important; padding: .2rem 0;
}
.polvo-menu__links a::before {
  content: ""; width: 1rem; height: 1rem; border-radius: 50%; background: var(--dot);
  transform: scale(0); transition: transform .25s ease;
}
.polvo-menu__links a span { color: inherit !important; transition: color .2s; }
.polvo-menu__links a:hover::before { transform: scale(1); }
.polvo-menu__links a:hover span { color: var(--dot) !important; }
.polvo-menu__bar { display: flex; height: .6rem; border-radius: 1rem; overflow: hidden; margin-top: 2rem; }
.polvo-menu__bar i { flex: 1; }
.polvo-menu__cats { border-top: 0 !important; padding-top: 0 !important; margin-top: 1.6rem !important; }
.polvo-menu__cats a { color: #161616 !important; border-color: rgba(22,22,22,.15) !important; background: #faf7f6; }
.polvo-menu__cats a::before { box-shadow: none !important; }
.polvo-menu__cats a:hover { border-color: var(--cat) !important; }

/* Logos das marcas: caixas brancas mais arredondadas */
.brands-grid > div,
html body .brands-grid > div { border-radius: 2.4rem !important; background: #ffffff !important; box-shadow: 0 2px 14px rgba(22,22,22,.05); }
@media (max-width: 768px) { html body .brands-grid > div { border-radius: 2rem !important; background: #ffffff !important; } }
.brands-grid img { border-radius: 1.2rem; }
/* ponte invisível entre o ícone e a caixa, para o menu não fechar no caminho */
.mxd-menu__contain.polvo-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -3rem; height: 3rem; }
.mxd-menu__contain.polvo-menu { overflow: visible !important; }
.mxd-menu__inner.polvo-menu__inner { border-radius: 2.8rem; overflow: hidden; }


/* =====================================================================
   v18 — Iluminação, fichas com 1 imagem, contrastes, contacto, Instagram
   ===================================================================== */
/* Menu do topo com 7 categorias */
.polvo-topmenu { gap: clamp(1.2rem, 1.25vw, 2.6rem); }
.polvo-topmenu a { font-size: clamp(1.25rem, 0.9vw, 1.55rem); }
.polvo-topmenu a[style*="--cat:#FFFFFF"]::before { box-shadow: inset 0 0 0 1.5px #161616; }
.polvo-nav--home:not(.is-scrolled) .polvo-topmenu a[style*="--cat:#FFFFFF"]::before { box-shadow: none; }
.polvo-topmenu a[style*="--cat:#FFFFFF"]::after { background: #161616; }
.polvo-menu__cats a[style*="--cat:#FFFFFF"]::before { box-shadow: inset 0 0 0 1.5px #161616 !important; }

/* Fichas: 1 imagem, texto à esquerda e imagem à direita */
.polvo-stack .polvo-card { padding: calc(var(--stack-tab) + .2rem) clamp(1.6rem, 2.4vw, 3.6rem) clamp(1.6rem, 2.4vw, 3.6rem) !important; }
.polvo-card__grid { display: flex; flex-direction: column; gap: clamp(1.2rem, 2vw, 3.2rem); height: 100%; min-height: 0; }
.polvo-card__text { display: flex; flex-direction: column; min-height: 0; flex: 0 0 auto; }
.polvo-card__img { position: relative; display: block; flex: 1 1 auto; min-height: 12rem; border-radius: var(--_radius-m, 2rem); overflow: hidden; }
.polvo-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.polvo-card__img:hover img { transform: scale(1.04); }
.polvo-card__tags { position: absolute; left: 1.6rem; bottom: 1.6rem; right: 1.6rem; display: flex; flex-wrap: wrap; gap: .8rem; }
.polvo-stack .polvo-card .mxd-services-stack__info.showcase-info { width: 100% !important; padding-right: 0 !important; }
.polvo-card__more { display: inline-flex; align-items: center; gap: .8rem; margin-top: auto; padding-top: 1rem; font-weight: 600; font-size: 1.6rem; text-decoration: none; color: inherit !important; }
.polvo-card__more span { color: inherit !important; }
.polvo-card__more:hover span { text-decoration: underline; text-underline-offset: .4rem; }
@media (min-width: 992px) {
  .polvo-card__grid { flex-direction: row; align-items: stretch; }
  .polvo-card__text { flex: 0 0 44%; padding-top: .6rem; }
  .polvo-card__img { flex: 1 1 auto; min-height: 0; }
  .polvo-stack .polvo-card .mxd-services-stack__title.showcase-title { flex-direction: column-reverse !important; align-items: flex-start; gap: .6rem !important; }
  .polvo-stack .polvo-card .mxd-services-stack__number { font-size: clamp(1.8rem, 1.6vw, 2.6rem) !important; opacity: .7; }
  .polvo-stack .polvo-card .mxd-services-stack__title h3 { font-size: clamp(2.8rem, min(3.4vw, 6vh), 5.6rem) !important; }
}
@media (max-height: 720px) { .polvo-stack .polvo-card .mxd-services-stack__info { display: none; } }
@media (max-width: 767px) {
  .polvo-card__more { display: none; }
  .polvo-stack .polvo-card .mxd-services-stack__info p { font-size: 1.35rem; }
  .polvo-card__tags { display: none; }
}
/* Ficha clara (Iluminação): fundo branco, letras pretas */
.mxd-services-stack__inner.showcase-inner.polvo-card--light,
.mxd-services-stack__inner.showcase-inner.polvo-card--light h3,
.mxd-services-stack__inner.showcase-inner.polvo-card--light h3 a,
.mxd-services-stack__inner.showcase-inner.polvo-card--light p,
.mxd-services-stack__inner.showcase-inner.polvo-card--light span,
.mxd-services-stack__inner.showcase-inner.polvo-card--light a { color: #161616 !important; }
.mxd-services-stack__inner.showcase-inner.polvo-card--light span.tag { color: #161616 !important; }
.polvo-card--light { box-shadow: 0 -6px 24px rgba(0,0,0,.10), inset 0 0 0 1px rgba(22,22,22,.08) !important; }

/* Páginas de categoria: mais espaço entre o logo e a ficha */
.mxd-page-content.inner-page-content.polvo-svc { padding-top: 13rem !important; }
@media (max-width: 767px) { .mxd-page-content.inner-page-content.polvo-svc { padding-top: 11rem !important; } }
/* Texto superior da ficha com contraste: branco nas cores escuras, preto nas claras */
.polvo-svc-hero .polvo-svc-crumbs, .polvo-svc-hero .polvo-svc-crumbs a, .polvo-svc-hero .polvo-svc-crumbs span,
.polvo-svc-hero .polvo-svc-hero__num { color: var(--cat-ink) !important; }
.polvo-svc-hero .polvo-svc-crumbs a { border-color: var(--cat-ink) !important; }
.polvo-svc[style*="--cat:#FFFFFF"] .polvo-svc-hero,
.polvo-svc[style*="--cat:#FFFFFF"] .polvo-svc-cta { box-shadow: inset 0 0 0 1.5px rgba(22,22,22,.12); }
.polvo-svc[style*="--cat:#FFFFFF"] .polvo-svc-list .n { color: #161616; }
.polvo-svc[style*="--cat:#FFFFFF"] .polvo-svc-step .n { background: #161616; color: #fff; }
.polvo-svc-chip[style*="--chip:#FFFFFF"], .polvo-cat-card[style*="--chip:#FFFFFF"], .polvo-pf__tag[style*="--chip:#FFFFFF"] { box-shadow: inset 0 0 0 1.5px rgba(22,22,22,.14); }
.polvo-filter[data-filter="iluminacao"] { border-color: rgba(22,22,22,.25); }
.polvo-filter[data-filter="iluminacao"]::before { box-shadow: inset 0 0 0 1.5px #161616; }
.polvo-filter[data-filter="iluminacao"].is-active, .polvo-filter[data-filter="iluminacao"]:hover { background: #fff; color: #161616; border-color: #161616; }

/* Página Serviços: grelha dinâmica (7 categorias) */
@media (min-width: 768px) {
  .polvo-cats-grid > .polvo-cat-card:first-child { grid-column: span 2; }
}
@media (min-width: 1200px) {
  .polvo-cats-grid > .polvo-cat-card:first-child { grid-column: span 2; }
  .polvo-cats-grid > .polvo-cat-card:last-child { grid-column: span 2; }
  .polvo-cats-grid > .polvo-cat-card:first-child h2,
  .polvo-cats-grid > .polvo-cat-card:last-child h2 { font-size: clamp(3.4rem, 3.4vw, 5.4rem); max-width: 14ch; }
  .polvo-cats-grid > .polvo-cat-card:first-child p,
  .polvo-cats-grid > .polvo-cat-card:last-child p { max-width: 52ch; }
}
@media (min-width: 768px) and (max-width: 1199px) {
  .polvo-cats-grid > .polvo-cat-card:last-child { grid-column: auto; }
}
.polvo-card__more i { color: inherit !important; opacity: 1 !important; }

/* Contacto: autocolantes com as formas do logótipo */
.polvo-stickers { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 1rem 0 0; padding: 1rem 0 0 .4rem; }
.polvo-sticker {
  --size: clamp(15rem, 13vw, 19rem);
  position: relative; width: var(--size); height: var(--size); flex: 0 0 auto;
  margin: -.8rem -1.2rem 0 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: .4rem;
  padding: 2rem; border-radius: 50%;
  background: var(--c); color: var(--ink) !important; text-decoration: none;
  transform: rotate(var(--r)); transition: transform .35s cubic-bezier(.2,.9,.3,1.4), box-shadow .35s;
  box-shadow: 0 10px 30px rgba(22,22,22,.12);
}
.polvo-sticker:nth-child(2) { margin-top: 5rem; }
.polvo-sticker:nth-child(4) { margin-top: 4rem; }
.polvo-sticker--square { border-radius: 3.2rem; }
.polvo-sticker--tri { border-radius: 50% 50% 50% 0.8rem; }
.polvo-sticker * { color: inherit !important; }
.polvo-sticker i { font-size: 2.6rem; order: -1; margin-bottom: .4rem; transition: transform .35s; }
.polvo-sticker__k { font-size: 1.15rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .85; }
.polvo-sticker__v { font-family: var(--_font-accent); font-weight: 700; font-size: clamp(1.4rem, 1.05vw, 1.75rem); line-height: 1.2; }
.polvo-sticker:hover { transform: rotate(0deg) scale(1.08); z-index: 2; box-shadow: 0 18px 40px rgba(22,22,22,.2); }
.polvo-sticker:hover i { transform: translateY(-3px) rotate(-8deg); }
@media (max-width: 767px) {
  .polvo-stickers { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; justify-items: center; }
  .polvo-sticker { --size: min(42vw, 17rem); margin: 0 !important; }
}

/* Página de categoria: texto superior com contraste total */
.polvo-svc-hero .polvo-svc-crumbs, .polvo-svc-hero .polvo-svc-hero__num { opacity: 1 !important; }

/* O que fazemos (lista) mais arejada */
.mxd-cpb-list__item { padding: 1.4rem 0; border-top: 1px solid var(--st-muted, rgba(22,22,22,.12)); }
.mxd-cpb-list__item:last-child { border-bottom: 1px solid var(--st-muted, rgba(22,22,22,.12)); }

/* Instagram no portefólio */
.polvo-ig__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 3rem; }
.polvo-ig__head h2 { margin: 0; font-size: clamp(3.2rem, 4.4vw, 6.4rem); line-height: 1.05; }
.polvo-ig__follow {
  display: inline-flex; align-items: center; gap: 1rem; padding: 1.4rem 2.4rem; border-radius: 4rem;
  background: linear-gradient(100deg, #F05024, #F6AAA1 40%, #514A92); color: #fff !important; text-decoration: none; font-size: 1.6rem;
}
.polvo-ig__follow * { color: inherit !important; }
.polvo-ig__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1rem, 1.6vw, 2rem); }
@media (min-width: 900px) { .polvo-ig__grid { grid-template-columns: repeat(4, 1fr); } }
.polvo-ig__post { position: relative; display: block; aspect-ratio: 1; border-radius: var(--_radius-m, 2rem); overflow: hidden; background: var(--base-tint); }
.polvo-ig__post img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.polvo-ig__post:hover img { transform: scale(1.06); }
.polvo-ig__icon { position: absolute; top: 1.2rem; right: 1.2rem; width: 3.6rem; height: 3.6rem; border-radius: 50%; background: rgba(255,255,255,.9); display: flex; align-items: center; justify-content: center; color: #161616; font-size: 1.8rem; }
/* autocolantes: grelha 2×2 desencontrada em todos os ecrãs */
.polvo-stickers { display: grid !important; grid-template-columns: repeat(2, max-content); gap: 1.4rem 2.4rem; padding-left: 1rem; }
.polvo-sticker { margin: 0 !important; --size: clamp(15rem, 12vw, 18rem); }
.polvo-sticker:nth-child(2), .polvo-sticker:nth-child(4) { transform: translateY(3.2rem) rotate(var(--r)); }
.polvo-sticker:nth-child(2):hover, .polvo-sticker:nth-child(4):hover { transform: translateY(3.2rem) rotate(0) scale(1.08); }
.polvo-contact__hours { margin-top: 5rem !important; }
/* o botão flutuante do WhatsApp tem regras globais para a[href*="wa.me"] — anular no autocolante */
html body a.polvo-sticker[href*="wa.me"] { position: relative !important; width: var(--size) !important; height: var(--size) !important; bottom: auto !important; right: auto !important; }
@media (max-width: 767px) {
  .polvo-stickers { grid-template-columns: 1fr 1fr; gap: 1rem; padding-left: 0; }
  .polvo-sticker { --size: min(42vw, 16.5rem); }
}

/* Sobre nós — ícones centrados na sua coluna e alinhados com o título */
.polvo-approach .mxd-approach-list__inner .row { align-items: center; }
.polvo-approach .mxd-approach-list__image { margin: 0 auto 2rem !important; }
@media (min-width: 1200px) {
  .polvo-approach .mxd-approach-list__image { margin: 0 auto !important; }
}
@media (max-width: 1199px) { .polvo-approach .mxd-approach-list__title, .polvo-approach .mxd-approach-list__descr { text-align: center; } }

/* Sobre nós — banner da lona, estático */
.polvo-banner-static { border-radius: var(--_radius-l, 3rem); overflow: hidden; aspect-ratio: 48 / 23; background: #161616; }
.polvo-banner-static img { width: 100%; height: 100%; object-fit: cover; display: block; transform: none !important; }
@media (max-width: 767px) { .polvo-banner-static { border-radius: 2rem; } }
/* Sobre nós — ícones ao centro da metade esquerda */
@media (min-width: 1200px) {
  .polvo-approach .mxd-approach-list__inner .row { position: relative; }
  .polvo-approach .mxd-approach-list__inner .row > .col-xl-2 { position: absolute; left: 14%; top: 50%; width: auto !important; transform: translate(-50%, -50%); padding: 0 !important; }
  .polvo-approach .mxd-approach-list__inner .row > .col-xl-4 { margin-left: 16.6667%; }
}

/* Iluminação — galeria de caixas de luz */
.polvo-gal__lead { max-width: 60ch; color: var(--t-muted); font-size: clamp(1.6rem, 1.3vw, 1.9rem); line-height: 1.5; margin: -2rem 0 3.2rem; }
.polvo-gal { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1rem, 1.6vw, 2rem); }
@media (min-width: 900px) { .polvo-gal { grid-template-columns: repeat(4, 1fr); } }
.polvo-gal__item { margin: 0; border-radius: var(--_radius-m, 2rem); overflow: hidden; aspect-ratio: 9 / 16; background: #161616; }
.polvo-gal__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.polvo-gal__item:hover img { transform: scale(1.04); }

/* Sobre nós — menos espaço depois da foto do campo */
.mxd-divider:has(.polvo-banner-static) { height: auto !important; min-height: 0 !important; }
.mxd-section:has(.polvo-banner-static) + .mxd-section { padding-top: clamp(3rem, 5vw, 6rem) !important; }

/* Mobile — topo e hero */
@media (max-width: 767px) {
  .mxd-hero-02.mxd-pinned-fullscreen { margin-top: -32px; }
  .mxd-nav__wrap .mxd-nav__contain { min-height: 8.4rem !important; padding-top: .8rem; }
  .polvo-nav-logo img { height: 5.2rem !important; }
  .mxd-hero-02-static__top { padding-top: 10.4rem !important; }
  .mxd-hero-02-static__center { top: 37% !important; }
  .mxd-hero-02-static__bottom { padding-top: 0 !important; }
  .polvo-menu__links a { font-size: 2.4rem !important; }
  .mxd-menu__contain.polvo-menu { top: 8.6rem; }
}
/* Mobile: logo colorido no topo da home (o branco perdia-se no fundo claro) */


/* Mobile — hero em coluna: texto, texto corrido e categorias sempre visíveis */
@media (max-width: 767px) {
  .mxd-hero-02 .mxd-pinned-fullscreen__static {
    display: flex !important; flex-direction: column; justify-content: flex-start;
    height: auto !important; min-height: 100svh; padding: 9.6rem 0 3.2rem !important; box-sizing: border-box;
  }
  .mxd-hero-02-static__top, .mxd-hero-02-static__center, .mxd-hero-02-static__bottom {
    position: relative !important; inset: auto !important; top: auto !important; bottom: auto !important; transform: none !important;
    padding-top: 0 !important; padding-bottom: 0 !important;
  }
  .mxd-hero-02-static__top .hero-02-static__caption p { font-size: clamp(1.9rem, 6vw, 2.6rem) !important; line-height: 1.2; }
  .mxd-hero-02-static__center { margin: clamp(1.6rem, 4svh, 3.6rem) 0 !important; }
  .mxd-hero-02-marquee .marquee__text { font-size: clamp(3rem, 10vw, 4.4rem) !important; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists p { font-size: clamp(1.35rem, 3.9vw, 1.6rem) !important; line-height: 1.45 !important; margin: 0; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists ul:first-child { min-width: 0 !important; flex: 0 0 38% !important; }
  .mxd-hero-02-static__bottom .polvo-hero-cats { padding-left: 1.2rem !important; }
}
@media (max-width: 767px) and (max-height: 620px) {
  .mxd-hero-02 .mxd-pinned-fullscreen__static { padding-top: 8.6rem !important; }
  .mxd-hero-02-static__center { margin: 1.2rem 0 !important; }
}
@media (max-width: 379px) {
  #lang-switcher-nav { padding: .2rem .2rem !important; font-size: 1.2rem !important; }
  .polvo-nav-cta { padding: 0 1rem; font-size: 1.25rem; height: 3.4rem; }
  .polvo-nav-logo img { height: 4.6rem !important; }
  .mxd-nav__wrap .mxd-nav__contain { padding-left: 1.6rem !important; padding-right: 1.6rem !important; }
  .mxd-nav__hamburger { width: 4.2rem !important; height: 4.2rem !important; }
}
@media (max-width: 767px) { .mxd-hero-02-static__bottom .polvo-hero-cats p { white-space: normal !important; } }
body, section, .mxd-wrapper, .mxd-section, .mxd-project { min-width: 0 !important; }
@media (max-width: 359px) {
  .polvo-nav-cta span { display: none; }
  .polvo-nav-cta i { display: inline-block !important; font-size: 1.6rem; }
  .polvo-nav-cta { width: 3.4rem; padding: 0 !important; justify-content: center; }
  .polvo-nav-right { gap: .4rem !important; }
}
.mxd-nav__wrap, .mxd-nav__contain, .loader, .loader__wrapper, .loader__content, .mxd-header, .mxd-container, .mxd-footer { min-width: 0 !important; max-width: 100vw; }
@media (max-width: 767px) {
  #mxd-footer > div { padding-left: 2.4rem !important; padding-right: 2.4rem !important; }
  #mxd-footer .footer-3col > div { min-width: 0; }
  #mxd-footer .footer-3col a { word-break: break-word; }
}

/* Mobile: nunca cortar/dividir palavras */
html body *, html body h1, html body h2, html body h3, html body .inner-headline__title {
  hyphens: manual !important; -webkit-hyphens: manual !important;
  word-break: normal !important; overflow-wrap: normal !important;
}
/* só o email pode quebrar (é uma palavra única muito longa) */
html body a[href^="mailto:"] { overflow-wrap: anywhere !important; }
@media (max-width: 767px) {
  h1, h2, .polvo-page-title, .polvo-svc-hero h1, .mxd-section-title h2, .polvo-ig__head h2 { font-size: clamp(2.8rem, 9vw, 4.4rem) !important; }
  .polvo-svc-section > h2 { font-size: clamp(2.6rem, 8.4vw, 4rem) !important; }
  .polvo-stack .mxd-services-stack__title h3 { font-size: clamp(2rem, 6.4vw, 3rem) !important; }
  .polvo-cat-card h2 { font-size: clamp(2.4rem, 7.6vw, 3.4rem) !important; }
}

/* Mobile: botão Portefólio depois da lista "O que fazemos" */
@media (max-width: 1199px) {
  .polvo-wwd { display: flex; flex-direction: column; }
  .polvo-wwd > .mxd-block:first-child .mxd-section-title__hrcontrols { display: none; }
  .polvo-wwd__btn { display: flex !important; order: 99; margin-top: 3rem; }
}
.polvo-wwd__btn { display: none; }
.polvo-stack-tab .polvo-sm { display: none; }
@media (max-width: 767px) { .polvo-stack-tab .polvo-lg { display: none; } .polvo-stack-tab .polvo-sm { display: inline; } }
.polvo-ig__follow span, .polvo-ig__follow strong, .polvo-nav-cta span { white-space: nowrap; }
@media (max-width: 400px) { .polvo-ig__follow { flex-wrap: wrap; } }

/* Mobile — hero: tudo a branco, opaco, e duas colunas alinhadas linha a linha */
.polvo-hero-cats .polvo-sm { display: none; }
@media (max-width: 767px) {
  .mxd-hero-02 .hero-02-static-anim-el, .mxd-hero-02 .mxd-hero-02-static__center { opacity: 1 !important; transform: none !important; }
  .mxd-hero-02 .hero-02-static__caption p,
  .mxd-hero-02 .marquee__text, .mxd-hero-02 .marquee__image svg,
  .mxd-hero-02 .mxd-paragraph__lists p, .mxd-hero-02 .mxd-paragraph__lists a {
    color: #ffffff !important; fill: #ffffff !important; opacity: 1 !important;
  }
  .mxd-hero-02 .t-muted { color: #ffffff !important; }
  .polvo-hero-cats .polvo-lg { display: none; }
  .polvo-hero-cats .polvo-sm { display: inline; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists .col-12 {
    display: grid !important; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); column-gap: 1.6rem;
  }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists ul,
  .mxd-hero-02-static__bottom .mxd-paragraph__lists ul:first-child { min-width: 0 !important; flex: none !important; padding: 0 !important; margin: 0 !important; }
  .mxd-hero-02-static__bottom .polvo-hero-cats { padding-left: 1.6rem !important; border-left: 1px solid rgba(255,255,255,.45); }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists li { margin: 0; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists p { white-space: nowrap !important; font-size: clamp(1.3rem, 3.9vw, 1.6rem) !important; line-height: 1.75 !important; }
}
@media (max-width: 767px) { .mxd-hero-02 .polvo-hero-cats a span, .mxd-hero-02 .polvo-hero-cats a { color: #ffffff !important; font-weight: 400 !important; } }
@media (max-width: 767px) { .mxd-hero-02 .mxd-pinned-fullscreen__static.hero-02-fade-out-scroll { opacity: 1 !important; } }

/* Categorias do hero sempre a branco (computador e telemóvel) */
.mxd-hero-02 .polvo-hero-cats a, .mxd-hero-02 .polvo-hero-cats a span, .mxd-hero-02 .polvo-hero-cats p { color: #ffffff !important; }
/* Mobile: sem linha divisória e escrita mais limpa */
@media (max-width: 767px) {
  .mxd-hero-02-static__bottom .polvo-hero-cats { border-left: 0 !important; padding-left: 0 !important; }
  .mxd-hero-02 .hero-02-static__caption p,
  .mxd-hero-02 .mxd-paragraph__lists p, .mxd-hero-02 .mxd-paragraph__lists a, .mxd-hero-02 .mxd-paragraph__lists span {
    -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
    font-family: var(--_font-default) !important; font-weight: 500 !important; letter-spacing: 0 !important;
  }
  .mxd-hero-02 .hero-02-static__caption p { font-weight: 600 !important; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists p { font-size: clamp(1.4rem, 4vw, 1.65rem) !important; line-height: 1.7 !important; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists .col-12 { column-gap: 2rem; }
}
.mxd-hero-02 .polvo-hero-cats a, .mxd-hero-02 .polvo-hero-cats a span { font-weight: inherit !important; }

/* Páginas legais (Termos e Condições, Política de Privacidade) */
.polvo-legal { max-width: 90rem; }
.polvo-legal h2 { font-size: 2.4rem; margin: 3.2rem 0 1rem; color: var(--t-bright); }
.polvo-legal p { font-size: 1.8rem; line-height: 1.7; margin: 0 0 1.2rem; color: var(--t-muted); }

/* Mobile — hero distribuída em altura: topo, texto corrido ao centro e categorias em baixo.
   Adapta-se à altura de cada telemóvel (svh) e reserva espaço para o banner de cookies. */
@media (max-width: 767px) {
  .mxd-hero-02 .mxd-pinned-fullscreen__static {
    display: flex !important; flex-direction: column !important; justify-content: space-between !important;
    height: 100svh !important; min-height: 100svh !important; max-height: none !important;
    padding: calc(env(safe-area-inset-top, 0px) + 10rem) 0 calc(env(safe-area-inset-bottom, 0px) + 4rem) !important;
    box-sizing: border-box !important;
  }
  .mxd-hero-02-static__top { flex: 0 0 auto !important; }
  .mxd-hero-02-static__center { position: relative !important; top: auto !important; left: auto !important; right: auto !important; transform: none !important; flex: 1 1 auto !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; margin: 0 !important; overflow: hidden !important; min-height: 0 !important; }
  .mxd-hero-02-marquee { width: 100% !important; }
  .mxd-hero-02-static__bottom { flex: 0 0 auto !important; }
  .mxd-hero-02-static__top .hero-02-static__caption p { font-size: clamp(2.2rem, 7.4vw, 3.2rem) !important; }
  .mxd-hero-02-marquee .marquee__text { font-size: clamp(4.8rem, 17vw, 7.4rem) !important; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists p { font-size: clamp(1.4rem, 4vw, 1.7rem) !important; }
  .mxd-hero-02-static__bottom .mxd-paragraph__lists li { margin-bottom: .4rem; }
}
/* telemóveis baixos (ex.: 375×667, 360×640): compacta o topo e o rodapé */
@media (max-width: 767px) and (max-height: 700px) {
  .mxd-hero-02 .mxd-pinned-fullscreen__static { padding-top: calc(env(safe-area-inset-top, 0px) + 8.6rem) !important; padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 3rem) !important; }
  .mxd-hero-02-marquee .marquee__text { font-size: clamp(4.4rem, 15.5vw, 6.6rem) !important; }
}
/* ecrãs muito estreitos (320–360 px) */
@media (max-width: 359px) {
  .mxd-hero-02-static__bottom .mxd-paragraph__lists p { font-size: 1.3rem !important; }
  .mxd-hero-02-marquee .marquee__text { font-size: 3.8rem !important; }
}

/* Mobile — carrossel dos projetos (em looping): cada fotografia aparece completa, sem fundo, com a altura natural. */
@media (max-width: 767px) {
  .proj-slide { display: block; background: transparent; }
  .proj-slide img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: contain !important; background: transparent !important; }
}

/* Mobile — setas do carrossel dos projetos mais pequenas e discretas, para ver a imagem por baixo. */
@media (max-width: 767px) {
  .proj-btn { width: 3rem !important; height: 3rem !important; font-size: 1.3rem !important; background: rgba(255,255,255,0.72) !important; box-shadow: none !important; }
  .proj-prev { left: .8rem !important; }
  .proj-next { right: .8rem !important; }
}

/* ================================================================
   v52 — Textos sempre dentro dos botões e balões
   ================================================================ */
/* Autocolantes do contacto: o texto escala com o tamanho do balão
   e fica dentro da área útil da forma (circulo/quadrado/gota) */
.polvo-sticker {
  container-type: size;
  padding: 13% !important;
  gap: 2.5cqi !important;
  overflow-wrap: anywhere;
}
.polvo-sticker i { font-size: 14cqi !important; margin-bottom: 1cqi !important; }
.polvo-sticker__k { font-size: 7cqi !important; letter-spacing: .06em !important; line-height: 1.15; max-width: 100%; }
.polvo-sticker__v { font-size: 9.6cqi !important; line-height: 1.15 !important; max-width: 100%; }
.polvo-sticker--tri { padding: 12% 13% 14% !important; }
.polvo-sticker--tri .polvo-sticker__v { font-size: 8.8cqi !important; }
.polvo-stickers { padding-bottom: 3.6rem !important; max-width: 100%; }
@media (min-width: 768px) { .polvo-sticker { --size: clamp(17rem, 14vw, 20rem); } }
@media (max-width: 767px) {
  .polvo-stickers { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 1.2rem !important; padding-left: 0 !important; padding-right: .4rem !important; }
  .polvo-sticker,
  html body a.polvo-sticker[href*="wa.me"] { width: 100% !important; max-width: 18rem; height: auto !important; aspect-ratio: 1 / 1; justify-self: center; }
}

/* Botões: o texto nunca é cortado nem sai da margem */
.btn { max-width: 100%; }
.btn .btn-caption { flex-shrink: 0; }
/* CTA escuro "Vamos falar sobre o teu projeto!" — menos margem interna no telemóvel */
@media (max-width: 767px) {
  div[style*="background-color:var(--base-opp)"][style*="padding:6rem"] { padding: 3.6rem 2.4rem !important; gap: 2.4rem !important; }
}
@media (max-width: 400px) {
  div[style*="background-color:var(--base-opp)"][style*="padding:6rem"] { padding: 3.2rem 2rem !important; }
  .btn.btn-large { font-size: 1.8rem !important; padding-left: 2rem !important; padding-right: 2rem !important; }
}

/* v53 — Balões do contacto maiores no desktop; texto escala com o balão */
.polvo-stickers { grid-template-columns: repeat(2, minmax(0, var(--size))) !important; --size: clamp(18rem, 17vw, 28rem); }
.polvo-sticker,
html body a.polvo-sticker[href*="wa.me"] { width: 100% !important; max-width: none; height: auto !important; aspect-ratio: 1 / 1; --size: auto; }
@media (min-width: 768px) and (max-width: 1199px) { .polvo-stickers { --size: clamp(18rem, 26vw, 26rem); } }
.polvo-sticker i { font-size: 16cqi !important; }
.polvo-sticker__k { font-size: 7.6cqi !important; }
.polvo-sticker__v { font-size: 11cqi !important; }
.polvo-sticker--tri .polvo-sticker__v { font-size: 9.8cqi !important; }
.polvo-sticker--tri i { font-size: 14cqi !important; }
@media (max-width: 767px) {
  .polvo-stickers { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .polvo-sticker, html body a.polvo-sticker[href*="wa.me"] { max-width: 18rem; }
}
/* espaçamento interno relativo ao próprio balão (cqi nos filhos) */
.polvo-sticker { gap: 0 !important; }
.polvo-sticker i { margin-bottom: 4cqi !important; }
.polvo-sticker__k { margin-bottom: 3cqi; }
