/* KALO Tesmatic: componentes
   Partilhado por todas as paginas. Alterar aqui altera em todo o lado. Cada elemento tem a sua copia em design-system/index.html. */
/* ---------- type ---------- */
.eyebrow{display:flex;align-items:center;gap:16px;margin:0 0 24px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-deep)}
.eyebrow::before{content:"";width:42px;height:1px;background:currentColor;flex:0 0 auto}
.eyebrow--light{color:var(--blue-light)}
.h2{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d3);line-height:1;letter-spacing:-.03em;text-transform:uppercase;text-wrap:balance;max-width:20ch}
.h2 i{font-style:normal;color:var(--blue)}
.h2--wide{max-width:22ch}
/* seccao de largura inteira: o titulo e o texto por baixo ocupam os mesmos dois tercos da pagina.
   Em ecras estreitos ocupam a largura toda. Dentro de colunas (.split, .detour) seguem a coluna. */
.shell>.h2,.shell>.head-row>.h2,.shell>.lede,.shell>.head-row>.lede{max-width:66.667%}
@media (max-width:900px){.shell>.h2,.shell>.head-row>.h2,.shell>.lede,.shell>.head-row>.lede{max-width:none}}
.lede{margin:24px 0 0;max-width:52ch;font-size:var(--fs-lead);line-height:1.6;color:var(--slate)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:12px;padding:16px 32px;border-radius:2px;border:1px solid transparent;text-decoration:none;font-weight:700;font-size:15px;letter-spacing:.02em;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.btn .tip{font-family:var(--mono);font-weight:500}
.btn--solid{background:var(--navy);color:#fff}
.btn--solid:hover{background:var(--navy-lift);transform:translateY(-3px);box-shadow:0 14px 30px rgba(26,26,46,.3)}
.btn--line{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn--line:hover{background:var(--navy);color:#fff}
.btn--white{background:#fff;color:var(--navy)}
.btn--white:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(0,0,0,.34)}
.btn--outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn--outline-light:hover{border-color:#fff;background:rgba(255,255,255,.1)}

@media (max-width:480px){
  .range-cta__btns .btn,.dist__cta .btn,.sub__form .btn{flex:1 1 100%;justify-content:center;padding:16px 20px}
  .close .close__side{align-items:stretch}
  .close__side .btn{justify-content:center;padding:16px 20px}
  .close__mail{align-self:flex-start}
}

/* ---------- chrome ---------- */
.progress{position:fixed;inset:0 auto auto 0;height:3px;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--blue),var(--blue-light));z-index:200;will-change:transform}
.skip{position:fixed;top:12px;left:12px;z-index:300;background:var(--navy);color:#fff;padding:12px 16px;text-decoration:none;transform:translateY(-200%)}
.skip:focus{transform:none}

.nav{position:fixed;inset:0 0 auto;z-index:150;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px max(var(--gutter),calc((100% - var(--shell))/2));border-bottom:1px solid transparent;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}
.nav.is-stuck{background:rgba(255,255,255,.97);border-bottom-color:var(--line);box-shadow:0 10px 30px rgba(33,37,41,.06)}
.nav__logo{display:flex;flex:0 0 auto;align-items:center;min-height:44px;text-decoration:none}
.nav__logo img{height:26px;width:auto}
.nav__desk{display:flex;align-items:center;gap:var(--h1)}
.nav__link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--slate);font-size:14px;font-weight:600;letter-spacing:.02em;white-space:nowrap;transition:color .25s ease}
.nav__link:hover{color:var(--blue-deep)}
.nav__btn{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.02em;padding:12px 20px;border-radius:2px;white-space:nowrap;transition:background .25s ease,color .25s ease}
.nav__btn--ghost{color:var(--navy);border:1px solid var(--navy)}
.nav__btn--ghost:hover{background:var(--navy);color:#fff}
.nav__btn--solid{color:#fff;background:var(--navy)}
.nav__btn--solid:hover{background:var(--navy-lift)}

.lang{position:relative;margin:0 8px 0 4px}
.lang__btn{min-height:44px;display:flex;align-items:center;gap:8px;background:none;border:0;padding:8px 4px;cursor:pointer}
.lang__code{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--slate)}
.lang__chev{font-size:10px;color:var(--muted)}
.lang__btn:hover .lang__code,.lang__btn:hover .lang__chev{color:var(--blue-deep)}
.lang__menu{display:none;position:absolute;top:calc(100% + 10px);right:0;min-width:190px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 44px rgba(33,37,41,.16);padding:8px}
.lang__menu.is-open{display:block}
.lang__opt{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;border-radius:2px;padding:8px 12px;cursor:pointer;text-align:left}
.lang__opt:hover{background:var(--surface)}
.lang__opt span:nth-child(2){flex:1;font-size:14px;color:var(--navy)}
.lang__opt span:last-child{font-family:var(--mono);font-size:11px;color:var(--muted)}
.flag{display:block;width:20px;height:14px;border-radius:2px;overflow:hidden;line-height:0;flex:0 0 auto}

.burger{display:none;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:44px;height:44px;background:none;border:1px solid var(--edge-strong);border-radius:2px;cursor:pointer;padding:0}
.burger span{display:block;width:20px;height:2px;background:var(--navy)}
@media (max-width:1160px){.nav__desk{display:none}.burger{display:flex}}

.drawer{position:fixed;inset:0;z-index:180;background:#fff;padding:24px var(--gutter);display:none;flex-direction:column;gap:8px;overflow-y:auto}
.drawer.is-open{display:flex}
.drawer__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.drawer__top img{height:26px;width:auto}
.drawer__close{width:44px;height:44px;border:1px solid var(--edge-strong);border-radius:2px;background:none;font-size:24px;line-height:1;cursor:pointer}
.drawer a{text-decoration:none;font-family:var(--display);font-weight:700;font-size:24px;color:var(--navy);padding:12px 0;border-bottom:1px solid var(--line)}
.drawer__cta{display:flex;flex-direction:column;gap:12px;margin-top:28px}
.drawer__cta a{border:0;text-align:center;font-size:15px;font-family:var(--body);padding:16px 20px;border-radius:2px}

/* ---------- proof bar ---------- */
.proof{height:var(--brandbar);display:flex;flex-direction:column;justify-content:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;overflow:hidden}
.proof__cap{text-align:center;text-wrap:balance;padding-inline:var(--gutter);font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);margin:0 0 20px}
.marquee{display:flex;width:max-content}
.marquee__row{display:flex;gap:56px;padding-right:56px;align-items:center}
.marquee__row img{flex:none;width:auto;max-width:none;height:calc(var(--h)*1px)}


/* ---------- two paths ---------- */
.paths{padding:var(--block) var(--gutter)}
.paths__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:var(--shell);margin:0 auto}
.path{container-type:inline-size;position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:540px;overflow:hidden;border-radius:8px;text-decoration:none;color:#fff;background:var(--navy);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.path__img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.path:hover .path__img{transform:scale(1.04)}
.path::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(19,19,34,.97) 0%,rgba(26,26,46,.88) 34%,rgba(26,26,46,.3) 58%,rgba(26,26,46,0) 78%)}
.path__img--operator{inset:auto 0 0 0;height:122%;object-position:30% 100%}
.path__img--fleet{object-position:20% 0%}
.path__img--distributor{object-position:30% 20%}
.path__body{padding:clamp(28px,3.2vw,44px)}
.path__h{margin:0 0 14px;font-family:var(--display);font-weight:900;font-size:clamp(24px,8cqi,50px);line-height:1;letter-spacing:-.02em;text-transform:uppercase;color:#fff}
/* o cargo e o titulo; a frase de venda vem logo a seguir */
.path__claim{margin:0 0 12px;font-family:var(--display);font-weight:700;font-size:clamp(20px,1.8vw,24px);line-height:1.2;color:#fff}
.path__claim i{font-style:normal;color:var(--blue-light)}
.path__p{margin:0 0 24px;max-width:44ch;font-size:17px;line-height:1.6;color:var(--on-navy-1)}
.path .btn{pointer-events:none}
.path:hover .btn--white{transform:translateY(-3px);box-shadow:0 22px 50px rgba(0,0,0,.34)}
@media (max-width:860px){.paths__grid{grid-template-columns:1fr}.path{min-height:460px}}

.method{margin-top:var(--v3)}
/* primeiro grupo de uma seccao: o espaco de cima e o da seccao */
.shell>.method:first-child{margin-top:0}
.method:not([hidden]) ~ .method{margin-top:var(--v3);padding-top:var(--v3);border-top:1px solid var(--line)}
.method__head{margin-bottom:var(--v1)}
.method__name{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 8px;font-family:var(--display);font-size:var(--fs-d5);font-weight:700;line-height:1.2;letter-spacing:-.015em;color:var(--navy)}
.method__name i{font-style:normal;color:var(--blue)}
.method__tag{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--navy);border-radius:2px}
.method__desc{margin:0;max-width:52ch;font-size:17px;line-height:1.6;color:var(--slate)}
.prods{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.prod__k{display:block;margin-bottom:4px;font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.prod__fits{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--line);font-size:16px;font-weight:600;line-height:1.4;color:var(--slate)}
.prod__fits .prod__k{margin:0}
.prod__name{margin:0 0 8px;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.prod__job{margin:0;font-size:17px;line-height:1.6;color:var(--slate)}
.prod__foot{margin-top:auto;padding-top:20px}
.prod__acc{display:inline-flex;align-items:baseline;gap:10px;padding:6px 14px;border:1px solid rgba(46,123,255,.25);border-radius:2px;background:rgba(46,123,255,.08);font-family:var(--mono);font-size:20px;font-weight:600;line-height:1.2;color:var(--navy)}
.prod__acc .prod__k{display:inline;margin:0;color:var(--blue-deep)}
.prod{text-decoration:none;color:inherit;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.prod:hover{border-color:var(--blue);transform:translateY(-6px);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.prod__ph{aspect-ratio:4/3;overflow:hidden;padding:16px;background:var(--surface)}
.prod__ph--soon{display:grid;place-items:center}
.prod__ph--soon span{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.prod__ph img{width:100%;height:100%;object-fit:contain;transition:transform .5s ease}
.prod:hover .prod__ph img{transform:scale(1.04)}
.prod__body{flex:1;display:flex;flex-direction:column;padding:24px 24px 24px}
@media (max-width:900px){.prods{grid-template-columns:repeat(2,1fr)}}
/* .is-paired (finder.js): com uma maquina escolhida, os grupos [data-pair] ficam lado a lado numa linha de 3 colunas;
   cada grupo ocupa --n colunas e os titulos alinham por subgrid */
@media (min-width:901px){
  .is-paired{display:grid;grid-template-columns:repeat(3,1fr);column-gap:20px}
  .is-paired>*{grid-column:1/-1}
  .is-paired>.method[data-pair]{grid-column:span var(--n);grid-row:span 2;display:grid;grid-template-rows:subgrid;margin-top:calc(var(--v3) - var(--v1));padding-top:0;border-top:0}
  .is-paired>.method[data-pair] .prods{grid-template-columns:repeat(var(--n),1fr)}
  .is-paired>.method[data-pair] .method__desc{display:none}
  .is-paired>.method[data-pair] .method__name{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){.prods{grid-template-columns:1fr}}
/* .prods--4: quatro sistemas numa linha em ecras largos; dois a dois em ecras medios; um por linha no telemovel */
@media (min-width:1101px){.prods--4{grid-template-columns:repeat(4,1fr)}}
@media (min-width:561px) and (max-width:1100px){.prods--4{grid-template-columns:repeat(2,1fr)}}
/* cartoes estreitos: a etiqueta fica sempre por cima do valor, para os nomes alinharem entre cartoes */
.prods--4 .prod__fits{flex-direction:column;align-items:flex-start;gap:4px}

.range-cta{margin-top:var(--v3);text-align:center}
.range-cta__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}

/* ---------- page head ---------- */
.page-head{background:var(--surface);border-bottom:1px solid var(--line);padding:clamp(112px,15vh,152px) var(--gutter) var(--v4)}
.crumbs{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 24px;padding:0;list-style:none;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:12px;color:var(--edge-strong)}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;margin:-14px -6px;padding:0 6px;text-decoration:none;color:var(--slate);transition:color .25s ease}
.crumbs a:hover{color:var(--blue-deep)}
.page-head h1{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d2);line-height:.95;letter-spacing:-.035em;text-transform:uppercase;color:var(--navy);text-wrap:balance;max-width:19ch}
.page-head h1 i{font-style:normal;color:var(--blue)}
.page-head__lede{max-width:52ch;margin:24px 0 0;font-size:var(--fs-lead);line-height:1.6;color:var(--slate)}

/* ---------- page head: variante escura ---------- */
.page-head--dark{position:relative;z-index:5;isolation:isolate;border-bottom:0;color:#fff;background:linear-gradient(120deg,#131322 0%,var(--navy) 55%,var(--navy-lift) 100%)}
.page-head--dark::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px}
.page-head--dark .crumbs{color:var(--on-navy-2)}
.page-head--dark .crumbs li+li::before{color:var(--navy-line)}
.page-head--dark .crumbs a{color:var(--on-navy-1)}
.page-head--dark .crumbs a:hover{color:var(--blue-light)}
.page-head--dark h1{color:#fff}
.page-head--dark h1 i{color:var(--blue-light)}
.page-head--dark .page-head__lede{color:var(--on-navy-1)}
.page-head--dark{padding-bottom:calc(var(--v5) + 56px)}
.page-head__media{position:absolute;inset:0 0 0 auto;z-index:-1;width:min(44%,620px);pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 55%);mask-image:linear-gradient(90deg,transparent 0%,#000 55%)}
.page-head__media img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.page-head__media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(26,26,46,.8) 0%,rgba(26,26,46,.25) 55%)}
@media (max-width:1000px){
  .page-head__media{width:100%;opacity:.38;-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 80%);mask-image:linear-gradient(180deg,#000 0%,transparent 80%)}
  .page-head__media img{object-position:50% 30%}
}

/* ---------- nav sobre fundo escuro: so enquanto nao esta colado ao topo ---------- */
.nav__logo .logo-on-dark{display:none}
.nav--on-dark:not(.is-stuck) .nav__logo .logo-on-dark{display:block}
.nav--on-dark:not(.is-stuck) .nav__logo .logo-on-light{display:none}
.nav--on-dark:not(.is-stuck) .nav__link{color:var(--on-navy-1)}
.nav--on-dark:not(.is-stuck) .nav__link:hover{color:var(--blue-light)}
.nav--on-dark:not(.is-stuck) .nav__btn--ghost{color:#fff;border-color:rgba(255,255,255,.45)}
.nav--on-dark:not(.is-stuck) .nav__btn--ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff}
.nav--on-dark:not(.is-stuck) .nav__btn--solid{background:#fff;color:var(--navy)}
.nav--on-dark:not(.is-stuck) .nav__btn--solid:hover{background:var(--on-navy-1)}
.nav--on-dark:not(.is-stuck) .lang__code{color:var(--on-navy-1)}
.nav--on-dark:not(.is-stuck) .lang__chev{color:var(--on-navy-2)}
.nav--on-dark:not(.is-stuck) .burger{border-color:rgba(255,255,255,.45)}
.nav--on-dark:not(.is-stuck) .burger span{background:#fff}

/* ---------- finder: escolher a maquina ---------- */
.finder-band{position:relative;z-index:6;padding:0 var(--gutter) var(--v2)}
.finder-band--overlap{margin-top:calc(var(--v4) * -1 - 24px)}
/* caixa de pesquisa por baixo da barra de marcas, sem sobrepor o cabecalho */
.finder-band--below{padding-top:var(--v3);padding-bottom:0}
.finder-band>.finder,.finder-band>.shell>.finder{padding:clamp(20px,3vw,36px);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 44px rgba(33,37,41,.16)}
.finder-band .combo{max-width:none}
.finder-band .combo__input{background:var(--surface)}
.finder-band .combo__input:focus-visible{background:#fff}
.finder__label{display:block;margin:0 0 12px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}

.combo{position:relative;max-width:720px}
.combo__icon{position:absolute;left:20px;top:0;display:flex;align-items:center;height:64px;color:var(--muted);pointer-events:none}
.combo__input{display:block;width:100%;height:64px;padding:0 64px 0 56px;border:1px solid var(--edge-strong);border-radius:2px;background:#fff;color:var(--ink);font-family:var(--body);font-size:18px;font-weight:500}
.combo__input::placeholder{color:var(--muted);font-weight:400}
.combo__input:focus-visible{outline:3px solid var(--blue-light);outline-offset:3px;border-color:var(--blue)}
.combo__clear{position:absolute;right:8px;top:8px;width:48px;height:48px;border:0;background:none;color:var(--slate);font-size:26px;line-height:1;cursor:pointer;transition:color .25s ease}
.combo__clear:hover{color:var(--blue-deep)}
.combo__list,.combo__empty{position:absolute;z-index:20;top:calc(100% + 8px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 44px rgba(33,37,41,.16)}
.combo__list{margin:0;padding:8px;list-style:none;max-height:min(340px,52vh);overflow-y:auto}
/* na faixa de largura inteira a lista abre em tres colunas, lidas de cima para baixo */
@media (min-width:900px){.finder-band .combo__list:not([hidden]){display:grid;grid-auto-flow:column;grid-template-rows:repeat(6,auto);grid-template-columns:repeat(3,1fr);column-gap:8px;max-height:none}}
.combo__opt{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 16px;border-radius:2px;color:var(--navy);font-size:16px;font-weight:600;cursor:pointer}
.combo__opt:hover,.combo__opt.is-active{background:var(--surface)}
.combo__opt[aria-selected="true"]{color:var(--blue-deep)}
.combo__opt[aria-selected="true"]::after{content:"\2713";font-family:var(--mono);font-size:14px}
.combo__opt mark{background:none;color:var(--blue-deep);font-weight:800}
.combo__more{display:flex;align-items:center;min-height:48px;padding:0 16px;font-size:15px;color:var(--slate)}
.combo__more a{color:var(--blue-deep);font-weight:700;text-decoration:none}
.combo__more a:hover{text-decoration:underline}
@media (min-width:900px){.finder-band .combo__more{grid-column:3;grid-row:6;justify-content:flex-end}}
/* .combo--field: a mesma lista com pesquisa, no tamanho de um campo de formulario (.fld) */
.fld .combo--field{display:block;max-width:none;margin:0}
.combo--field .combo__input{height:52px;min-height:52px;padding:12px 16px;font-family:var(--body);font-size:16px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink)}
/* .fld span da regras de etiqueta a todos os span do campo: aqui anulam-se */
.combo--field .combo__list{display:block;margin:0;max-height:240px;z-index:30;font-family:var(--body);text-transform:none;letter-spacing:0}
.combo--field .combo__list[hidden]{display:none}
.combo--field .combo__opt{margin:0;min-height:44px;font-family:var(--body);font-size:16px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--navy)}
.combo--field .combo__more{margin:0;font-family:var(--body);font-size:15px;letter-spacing:0;text-transform:none;color:var(--slate)}
.combo__empty{padding:20px 24px;font-size:16px;line-height:1.5;color:var(--slate)}
.combo__empty a{color:var(--blue-deep);font-weight:700}

.finder__chips{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.finder__hint{margin-right:4px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.chip{min-height:44px;padding:0 20px;border:1px solid var(--edge-strong);border-radius:2px;background:#fff;color:var(--navy);font-weight:600;font-size:15px;letter-spacing:.02em;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}
.chip:hover{border-color:var(--navy)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
@media (max-width:480px){.combo__input{font-size:16px}.finder__chips{gap:8px}.finder__hint{flex:1 1 100%;margin:0}.chip{padding:0 14px;font-size:14px}}

/* ---------- janela com formulario ---------- */
.modal{position:fixed;padding:0;border:0;border-radius:8px;background:#fff;color:var(--ink);width:min(520px,calc(100% - 2 * var(--gutter)));max-height:calc(100dvh - 32px);overflow-y:auto;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.modal::backdrop{background:rgba(19,19,34,.72)}
body:has(dialog[open]){overflow:hidden}
.modal__in{position:relative;padding:clamp(24px,4vw,40px)}
.modal__close{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--edge-strong);border-radius:2px;background:#fff;color:var(--navy);font-size:24px;line-height:1;cursor:pointer;transition:border-color .25s ease,color .25s ease}
.modal__close:hover{border-color:var(--navy)}
.modal h2{margin:0 0 8px;padding-right:48px;font-family:var(--display);font-weight:900;font-size:var(--fs-d5);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy)}
.modal h2:focus{outline:none}
.modal__lede{margin:0 0 24px;font-size:17px;line-height:1.6;color:var(--slate)}
.fld{display:block;margin:0 0 16px}
.fld span{display:block;margin-bottom:8px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.fld input,.fld select,.fld textarea{display:block;width:100%;min-height:52px;padding:12px 16px;font-family:inherit;font-size:16px;line-height:1.4;color:var(--ink);background:#fff;border:1px solid var(--edge-strong);border-radius:2px;transition:border-color .25s ease}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:var(--muted)}
.fld input::placeholder,.fld textarea::placeholder{color:var(--muted)}
.fld input:focus-visible,.fld select:focus-visible,.fld textarea:focus-visible{border-color:var(--blue)}
/* lista de escolha: sem o aspeto nativo do navegador, seta propria */
.fld select{-webkit-appearance:none;appearance:none;padding-right:48px;cursor:pointer;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1.5l6 6 6-6' fill='none' stroke='%231a1a2e' stroke-width='1.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 18px center;background-size:14px 9px}
.fld select:invalid{color:var(--muted)}
.fld select option{color:var(--ink)}
/* campo de texto longo: altura fixa, sem o puxador do navegador */
.fld textarea{min-height:168px;resize:none;line-height:1.5}
.modal .fld textarea{min-height:112px}
.modal .btn{width:100%;justify-content:center;margin-top:8px}
.form .btn{margin-top:8px}
.form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));column-gap:20px}
.form__grid .fld--full{grid-column:1/-1}
/* popup do white paper (assets/js/wp-popup.js): imagem a esquerda, formulario a direita; no telemovel so o formulario */
.modal--wp{width:min(960px,calc(100% - 2 * var(--gutter)));display:none;grid-template-columns:1fr 1.15fr;padding:0;overflow:hidden}
.modal--wp[open]{display:grid}
.modal--wp .modal__ph{position:relative;background:var(--surface)}
.modal--wp .modal__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.modal--wp .modal__in{max-height:calc(100dvh - 32px);overflow-y:auto}
.modal--wp .eyebrow{margin-bottom:16px}
.modal--wp .form__grid{grid-template-columns:1fr 1fr;column-gap:16px}
/* .modal--compact: o nome do campo fica dentro da caixa; a etiqueta fica so para leitores de ecra.
   So para formularios curtos em que o valor ja diz o que e (nome, email, empresa, pais). */
.modal--compact .fld:not(.fld--check) > span:first-child{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.modal--compact .fld{margin-bottom:12px}
.modal--compact .fld input::placeholder{color:var(--slate)}
.modal--compact .fld select:invalid{color:var(--slate)}
@media (max-width:760px){.modal--wp{grid-template-columns:1fr}.modal--wp .modal__ph{display:none}.modal--wp .form__grid{grid-template-columns:1fr}}
.modal__note,.form__note{margin:16px 0 0;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--muted)}
.modal__note a,.form__note a{color:inherit}
.form{padding:clamp(24px,4vw,40px);background:#fff;border:1px solid var(--line);border-radius:8px}
.form h2{margin:0 0 8px;font-family:var(--display);font-weight:900;font-size:var(--fs-d5);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy)}
.form h2:focus{outline:none}
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;margin:0 0 var(--v4)}
.door{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.door:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 14px 30px rgba(33,37,41,.08)}
.door[aria-pressed="true"]{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
.door__k{display:block;margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-deep)}
.door__t{display:block;font-family:var(--display);font-weight:800;font-size:var(--fs-d5);line-height:1.2;letter-spacing:-.015em;color:var(--navy)}
.door__d{display:block;margin-top:6px;font-size:15px;line-height:1.5;color:var(--slate)}
.door__go{flex:0 0 auto;font-family:var(--mono);font-size:20px;color:var(--blue-deep);transition:transform .25s ease}
.door:hover .door__go{transform:translateY(3px)}
.points.points--col{grid-template-columns:1fr;margin-top:0}
.points.points--pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,224px),1fr));column-gap:24px;margin-top:0}
.points--col ul,.points--pair ul{gap:4px}
/* contacto: o formulario sobe para cima do cabecalho escuro, os contactos ficam ao lado */
.split--lift{position:relative;z-index:6}
.split--lift>.form{margin-top:calc(var(--v4) * -1 - 24px);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.split--lift>.reach{padding-top:var(--v3)}
.reach{display:grid;gap:var(--v2)}
/* foto ao lado de um formulario: enche a altura do formulario */
.split:has(.reach__ph){align-items:stretch}
.reach:has(.reach__ph){grid-template-rows:1fr auto}
.reach__ph{position:relative;min-height:280px;overflow:hidden;border-radius:8px;background:var(--surface)}
.reach__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.reach__ph{min-height:0;aspect-ratio:16/10}}
/* titulo da coluna ao lado do formulario: o mesmo tamanho do titulo do formulario */
.reach__h{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d5);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy)}
.mail{display:inline-flex;align-items:center;min-height:44px;font-family:var(--display);font-weight:700;font-size:var(--fs-card);letter-spacing:-.015em;color:var(--blue-deep);text-decoration-thickness:1px;text-underline-offset:5px;transition:color .25s ease}
.mail:hover{color:var(--navy)}
@media (max-width:900px){.split--lift>.reach{padding-top:0}}
.fld .fld__error{display:flex;align-items:flex-start;gap:8px;margin:8px 0 0;font-family:var(--body);font-size:14px;font-weight:600;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--navy)}
.fld__error::before{content:"!";flex:0 0 auto;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;background:var(--navy);color:#fff;border-radius:50%;font-family:var(--mono);font-size:12px;font-weight:600;line-height:1}
.fld [aria-invalid="true"]{border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}

/* caixa de aceitacao (politica de privacidade): mesma validacao dos outros campos */
.fld--check{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:start;margin:8px 0 16px;cursor:pointer}
.fld--check input{width:22px;height:22px;min-height:0;margin:1px 0 0;padding:0;accent-color:var(--navy);cursor:pointer}
.fld--check span:not(.fld__error){margin:0;font-family:var(--body);font-size:15px;line-height:1.6;letter-spacing:0;text-transform:none;color:var(--slate)}
.fld--check a{color:var(--navy);font-weight:600;text-underline-offset:4px}
.fld--check .fld__error{grid-column:1/-1}
.fld--check [aria-invalid="true"]{box-shadow:none;outline:2px solid var(--navy);outline-offset:2px}

/* ---------- texto longo (paginas legais) ---------- */
.prose{max-width:72ch;font-size:17px;line-height:1.7;color:var(--slate)}
.prose>:first-child{margin-top:0}
.prose h2{margin:var(--v3) 0 16px;padding-top:var(--v1);border-top:1px solid var(--line);font-family:var(--display);font-weight:700;font-size:var(--fs-d5);line-height:1.2;letter-spacing:-.015em;color:var(--navy);text-wrap:balance}
.prose>h2:first-child{padding-top:0;border-top:0}
.prose h3{margin:var(--v2) 0 12px;font-family:var(--display);font-weight:700;font-size:var(--fs-card);line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.prose p{margin:0 0 16px}
.prose ul,.prose ol{display:grid;gap:8px;margin:0 0 24px;padding-left:24px}
.prose li::marker{color:var(--blue-deep)}
.prose strong{font-weight:700;color:var(--ink)}
.prose a:not(.btn){color:var(--blue-deep);text-underline-offset:4px;overflow-wrap:anywhere;transition:color .25s ease}
.prose a:not(.btn):hover{color:var(--navy)}
.prose__lead{font-size:var(--fs-lead);line-height:1.5;font-weight:600;color:var(--navy)}
/* o que um autor pode por num artigo: citacao, foto com legenda, tabela e linha */
.prose blockquote{margin:var(--v2) 0;padding:4px 0 4px 24px;border-left:3px solid var(--blue);font-family:var(--display);font-weight:700;font-size:var(--fs-card);line-height:1.4;letter-spacing:-.01em;color:var(--navy)}
.prose blockquote p{margin:0}
.prose blockquote cite{display:block;margin-top:12px;font-family:var(--body,inherit);font-size:14px;font-style:normal;font-weight:400;letter-spacing:0;color:var(--slate)}
.prose img{display:block;max-width:100%;height:auto;border-radius:8px}
.prose figure{margin:var(--v2) 0}
.prose figcaption{margin-top:12px;font-size:14px;line-height:1.5;color:var(--slate)}
.prose hr{margin:var(--v2) 0;border:0;border-top:1px solid var(--line)}
.prose__table{margin:var(--v2) 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.prose table{width:100%;min-width:480px;border-collapse:collapse;font-size:16px;line-height:1.5}
.prose th,.prose td{padding:12px 16px 12px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.prose th{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.prose .btn{margin-top:8px}
.foot__legal a[aria-current="page"]{color:var(--on-navy-1)}

/* ---------- resultados do filtro ---------- */
.results{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--v1) var(--h3);margin-bottom:var(--v1);padding:var(--v2) 0 var(--v1);border-bottom:1px solid var(--line);scroll-margin-top:104px}
.results__id{display:flex;align-items:center;gap:24px}
.results__photo{flex:0 0 auto;width:150px;height:150px;object-fit:contain}
@media (max-width:560px){.results__id{gap:16px}.results__photo{width:96px;height:96px}}
.results__label{margin:0 0 8px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--slate)}
.results__title{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d4);line-height:1.05;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy)}
.results__link{display:inline-block;margin-top:12px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--slate);text-underline-offset:4px;transition:color .25s ease}
.results__link:hover{color:var(--blue-deep)}
.results__actions{display:flex;flex-wrap:wrap;gap:12px}
.method{scroll-margin-top:104px}
@media (max-width:560px){.results__actions{width:100%}.results__actions .btn{flex:1 1 100%;justify-content:center}}

/* ---------- botao de preco fixo (telemovel) ---------- */
.sticky-cta{display:none}
@media (max-width:900px){
  .sticky-cta{display:block;position:fixed;inset:auto 0 0 0;z-index:140;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -10px 30px rgba(33,37,41,.08);transform:translateY(110%);transition:transform .25s ease}
  .sticky-cta.is-on{transform:none}
  .sticky-cta .btn{width:100%;justify-content:center}
  body:has([data-sticky-cta]) footer{padding-bottom:calc(32px + 80px)}
}
@media (prefers-reduced-motion:reduce){.sticky-cta{transition:none}}

/* ---------- pagina de produto ---------- */
.page-head--product{padding-bottom:var(--v4)}
.page-head__sub{text-wrap:balance;margin:12px 0 0;font-family:var(--display);font-weight:800;font-size:var(--fs-d4);line-height:1.1;letter-spacing:-.02em;color:var(--navy)}
.page-head--dark .page-head__sub{color:var(--blue-light)}
.page-head__sub + .page-head__lede{margin-top:20px}
.page-head--cover .page-head__media{width:100%;-webkit-mask-image:none;mask-image:none;opacity:1}
.page-head--cover .page-head__media img{object-position:50% 47%}
.page-head--cover .page-head__media::after{background:linear-gradient(90deg,rgba(19,19,34,.95) 0%,rgba(19,19,34,.86) 42%,rgba(19,19,34,.4) 100%)}
@media (max-width:1000px){.page-head--cover .page-head__media::after{background:linear-gradient(180deg,rgba(19,19,34,.78),rgba(19,19,34,.92))}.page-head--cover .page-head__media img{object-position:78% 47%}}
.facts{display:flex;flex-wrap:wrap;gap:var(--v1) var(--h3);margin:var(--v2) 0 0;padding:0;list-style:none}
.facts li{display:flex;flex-direction:column;gap:6px}
.facts__k{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.facts__v{font-family:var(--display);font-weight:800;font-size:var(--fs-d4);line-height:1;letter-spacing:-.02em;color:var(--navy)}
@media (max-width:480px){.facts{gap:var(--v1) var(--h2)}.facts__v{font-size:22px}.facts__k{font-size:12px;letter-spacing:.1em}}
.page-head--dark .facts__k{color:var(--on-navy-2)}
.page-head--dark .facts__v{color:#fff}
/* hero de produto em duas colunas: texto e, ao lado, o produto sobre placa clara; factos numa linha por baixo */
.page-head__grid{display:grid;grid-template-columns:1fr minmax(280px,.62fr);gap:var(--h4);align-items:center}
.page-head__shot{position:relative;aspect-ratio:4/3;margin:0;overflow:hidden;background:#fff;border-radius:8px;box-shadow:0 20px 44px rgba(0,0,0,.3)}
.page-head__shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:clamp(16px,2.4vw,28px)}
.facts--rule{padding-top:var(--v1);border-top:1px solid var(--navy-line)}
@media (max-width:900px){.page-head__grid{grid-template-columns:1fr}.page-head__shot{max-width:520px}}
.lede + .prose{margin-top:24px}
.assure{margin:var(--v1) 0 0;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--slate)}
.page-head--dark .assure{color:var(--on-navy-2)}
.cta-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:var(--v2)}
@media (max-width:480px){.cta-row .btn{flex:1 1 100%;justify-content:center}}


.pdp .block,.pdp .service{padding-block:var(--v5)}
.link-btn{min-height:44px;padding:0 4px;background:none;border:0;color:inherit;font:inherit;font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px;cursor:pointer;transition:color .25s ease}
.page-head--dark .link-btn{color:var(--on-navy-1)}
.page-head--dark .link-btn:hover{color:var(--blue-light)}
.cta-row{align-items:center}

.split{display:grid;grid-template-columns:1fr minmax(280px,.72fr);gap:var(--h4);align-items:start}
.split .gallery{margin-top:0}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.specs{display:grid;grid-template-columns:repeat(2,1fr);column-gap:var(--h4);margin:var(--v2) 0 0;border-bottom:1px solid var(--line)}
.specs>div{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr;gap:var(--h2);padding:16px 0;border-top:1px solid var(--line)}
.specs dt{padding-top:3px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.specs dd{margin:0;font-size:17px;font-weight:600;line-height:1.5;color:var(--ink)}
@media (max-width:900px){.specs{grid-template-columns:1fr}}
@media (max-width:560px){.specs>div{grid-template-columns:1fr;gap:4px}}
.spec-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--v2) var(--h4);margin-top:var(--v3)}
.spec-cols h3{margin:0;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.spec-cols .specs{grid-template-columns:1fr;margin-top:16px}
@media (max-width:900px){.spec-cols{grid-template-columns:1fr}}

.equip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin:var(--v2) 0 0;padding:0;list-style:none}
.equip a{display:flex;flex-direction:column;gap:12px;height:100%;padding:20px 20px 16px;background:#fff;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:var(--navy);transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.equip a:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.equip__icon{display:block;width:100%;height:116px;object-fit:contain;object-position:left center;transition:transform .5s ease}
.equip a:hover .equip__icon{transform:scale(1.05)}
.equip__name{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em}
.equip a:hover .arrow{transform:translateX(5px)}
@media (max-width:1000px){.equip{grid-template-columns:repeat(2,1fr);gap:16px}}
@media (max-width:560px){
  .equip{grid-template-columns:1fr;gap:12px}
  .equip a{flex-direction:row;align-items:center;gap:16px;padding:10px 16px 10px 10px}
  .equip__icon{flex:0 0 76px;width:76px;height:57px;object-position:center}
  .equip__name{flex:1;margin-top:0}
}
@media (prefers-reduced-motion:reduce){.equip a,.equip__icon{transition:none}}
.points{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--v2) var(--h3);margin:var(--v3) 0 0;padding:0;list-style:none}
.points h3{margin:0 0 16px;padding-top:16px;border-top:2px solid var(--navy);font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.points ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.points li li{font-size:16px;line-height:1.5;color:var(--slate)}
@media (max-width:1000px){.points{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.points{grid-template-columns:1fr}}


/* ---------- galeria (imagens e video) ---------- */
.gallery{display:grid;gap:16px;margin-top:var(--v2)}
.gallery__main{position:relative;display:grid;place-items:center;margin:0;aspect-ratio:4/3;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px}
.gallery__main img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gallery__main.is-contain img{object-fit:contain;padding:clamp(20px,4vw,48px)}
.gallery__main.is-soon img,.gallery__main.is-playing img,.gallery__main.is-playing .gallery__cap,.gallery__main.is-playing .gallery__play{display:none}
.gallery__soon{display:none;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.gallery__main.is-soon .gallery__soon{display:block}
.gallery__cap{position:absolute;inset:auto 0 0 0;margin:0;padding:32px 20px 14px;background:linear-gradient(0deg,rgba(19,19,34,.82),rgba(19,19,34,0));font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:#fff}
.gallery__main.is-contain .gallery__cap{background:linear-gradient(0deg,rgba(248,249,250,.96) 40%,rgba(248,249,250,0));color:var(--slate)}
.gallery__main.is-soon .gallery__cap{background:none;color:var(--slate)}
.gallery__play{position:absolute;z-index:1;display:grid;place-items:center;width:76px;height:76px;padding:0;background:#fff;color:var(--navy);border:0;border-radius:50%;box-shadow:0 22px 50px rgba(0,0,0,.34);cursor:pointer;transition:transform .25s ease}
.gallery__play:hover{transform:scale(1.06)}
.gallery__play svg{margin-left:4px}
.gallery__player{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.gallery__thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;margin:0;padding:0;list-style:none}
.gallery--single .gallery__thumbs{display:none}
.gallery__thumb{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:4/3;padding:0;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:border-color .25s ease}
.gallery__thumb:hover{border-color:var(--navy)}
.gallery__thumb[aria-pressed="true"]{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy)}
.gallery__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gallery__thumb--contain img{object-fit:contain;padding:6px;background:#fff}
.gallery__badge{position:absolute;display:grid;place-items:center;width:30px;height:30px;background:#fff;color:var(--navy);border-radius:50%}
.gallery__badge svg{margin-left:2px}
/* sobre o hero escuro */
.gallery__zoom{position:absolute;inset:0;z-index:1;padding:0;border:0;background:transparent;cursor:zoom-in}
.gallery__zoom::after{content:"";position:absolute;top:14px;right:14px;width:40px;height:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%231a1a2e' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M20 20l-4.2-4.2M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center/18px no-repeat;border-radius:50%;box-shadow:0 10px 24px rgba(0,0,0,.25);transition:transform .25s ease}
.gallery__zoom:hover::after{transform:scale(1.08)}
.gallery__zoom[hidden]{display:none}
.gallery--hero{margin-top:0;gap:12px}
.gallery--hero .gallery__main{border-color:rgba(255,255,255,.22);box-shadow:0 20px 44px rgba(0,0,0,.3)}
.gallery--hero .gallery__thumbs{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))}
.gallery--hero .gallery__thumb{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.25);color:var(--on-navy-2)}
.gallery--hero .gallery__thumb:hover{border-color:#fff}
.gallery--hero .gallery__thumb[aria-pressed="true"]{border-color:#fff;box-shadow:0 0 0 2px #fff}
.gallery--figure{max-width:880px;margin-top:var(--v3)}
.gallery--figure.gallery--wide{max-width:none}
.gallery--figure.gallery--wide .gallery__main{max-height:none}
.gallery--figure .gallery__main{aspect-ratio:16/9;max-height:420px}
.gallery--hero.gallery--figure .gallery__main.is-soon{background:rgba(255,255,255,.05);border-style:dashed;border-color:rgba(255,255,255,.3);box-shadow:none}
.gallery__main.is-soon.is-poster img{display:block;opacity:.3}
.gallery__main.is-poster .gallery__soon{position:relative;z-index:1;color:var(--navy)}
.gallery--hero .gallery__main.is-poster .gallery__soon{color:var(--on-navy-1)}
.gallery--hero.gallery--figure .gallery__main.is-soon .gallery__soon{color:var(--on-navy-1)}
.gallery--hero.gallery--figure .gallery__main.is-soon .gallery__cap{color:var(--on-navy-2)}
.gallery--figure + .svcs{margin-top:var(--v3)}
.gallery--diagram{max-width:none}
.gallery--diagram .gallery__main{width:100%;aspect-ratio:3/2;max-height:640px}
@media (max-width:700px){.gallery--diagram .gallery__main{aspect-ratio:4/3}}
/* ---------- ampliacao da galeria ---------- */
.lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden}
.lightbox::backdrop{background:rgba(14,14,28,.96)}
.lightbox__in{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;width:100%;height:100%;padding:clamp(16px,3vw,40px)}
.lightbox__stage{display:grid;place-items:center;min-height:0;padding:0 clamp(56px,7vw,96px)}
.lightbox__img{max-width:100%;max-height:calc(100dvh - 2 * clamp(16px,3vw,40px) - 76px);width:auto;height:auto;object-fit:contain;border-radius:8px;background:#fff}
.lightbox__count{white-space:nowrap}
.lightbox__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--on-navy-1)}
.lightbox__btn{z-index:2;display:grid;place-items:center;width:48px;height:48px;padding:0;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:2px;font-size:22px;line-height:1;cursor:pointer;transition:background .25s ease,border-color .25s ease}
.lightbox__btn:hover{background:rgba(255,255,255,.18);border-color:#fff}
.lightbox__close{position:absolute;top:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px)}
.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox__prev{left:clamp(8px,2vw,24px)}
.lightbox__next{right:clamp(8px,2vw,24px)}
.lightbox--single .lightbox__nav{display:none}
.lightbox--single .lightbox__stage{padding:0}
@media (max-width:560px){.lightbox__stage{padding:0 8px}.lightbox__nav{top:auto;bottom:clamp(60px,12vw,76px);transform:none}}
@media (prefers-reduced-motion:reduce){.gallery__play,.gallery__thumb{transition:none}}
@media (prefers-reduced-motion:reduce){.gallery__zoom::after,.lightbox__btn{transition:none}}
/* ---------- service ---------- */
.service{position:relative;isolation:isolate;overflow:hidden;padding:var(--block) var(--gutter);color:#fff;background:linear-gradient(120deg,#131322 0%,var(--navy) 55%,var(--navy-lift) 100%)}
.service::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px}
.service .h2{color:#fff}
.service .h2 i{color:var(--blue-light)}
.service .lede{color:var(--on-navy-1)}
.svcs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:0;padding:0;list-style:none}
.svc{display:flex;flex-direction:column;padding:28px 28px 8px;border-left:1px solid var(--navy-line)}
.svc:first-child{padding-left:0;border-left:0}
.svc__n{margin-bottom:24px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-light)}
.svc__h{margin:0 0 12px;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:#fff}
.svc__p{margin:0;font-size:16px;line-height:1.6;color:var(--on-navy-2)}
@media (max-width:1000px){
  .svcs{grid-template-columns:repeat(2,1fr);row-gap:8px}
  .svc{padding:24px 24px 16px}
  .svc:nth-child(odd){padding-left:0;border-left:0}
  .svc:nth-child(n+3){border-top:1px solid var(--navy-line)}
}
@media (max-width:560px){
  .svcs{grid-template-columns:1fr}
  .svc{padding:24px 0 16px;border-left:0}
  .svc + .svc{border-top:1px solid var(--navy-line)}
}

/* ---------- vehicle grid ---------- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--v3)}
.tile{display:block;text-decoration:none;color:inherit;border-radius:8px}
.tile__in{height:100%;background:#f1f1f1;border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.tile:hover .tile__in{border-color:var(--blue);transform:translateY(-6px);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.tile__ph{aspect-ratio:4/3;overflow:hidden;background:#f1f1f1}
.tile__ph img{width:100%;height:100%;object-fit:contain;transition:transform .5s ease}
.tile:hover .tile__ph img{transform:scale(1.04)}
.tile__body{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}
.tile__body h3{margin:0;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.tile__kicker{display:block;margin-bottom:8px;font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.arrow{flex:0 0 auto;font-family:var(--mono);font-size:16px;font-weight:400;color:var(--blue-deep);transition:transform .25s ease}
.tile:hover .arrow{transform:translateX(5px)}
.tile--cta .tile__in{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:210px;padding:24px 24px;background:var(--navy);border-color:var(--navy)}
.tile--cta .tile__in::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px}
.tile--cta .tile__in::after{content:"";position:absolute;right:-60px;top:-60px;z-index:-1;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.14),transparent 70%)}
.tile--cta:hover .tile__in{background:var(--navy-lift);border-color:var(--navy-lift)}
.tile--cta h3{margin:auto 0 12px;max-width:11ch;font-family:var(--display);font-size:var(--fs-d5);font-weight:700;line-height:1.1;color:#fff}
.tile--cta .tile__kicker{color:var(--blue-light)}
.tile--cta .arrow{color:#fff}
.tiles__more{display:none}
@media (max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){
  .tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:12px;margin-right:calc(var(--gutter)*-1);padding-right:var(--gutter)}
  .tiles>*{flex:0 0 78vw;scroll-snap-align:start}
  .tiles__more{display:block;margin-top:var(--v1)}
}

/* ---------- industries strip ---------- */
.head-row{margin-bottom:var(--v3)}
.strip{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--v2) var(--h1)}
@media (max-width:1000px){.strip{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.strip{grid-template-columns:repeat(2,1fr)}}
.strip--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:620px){.strip--3{grid-template-columns:1fr}}
.sector{display:block;text-decoration:none;color:inherit}
.sector__ph{display:block;aspect-ratio:16/10;margin-bottom:16px;border-radius:8px;overflow:hidden;background:var(--surface)}
.sector__ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.sector:hover .sector__ph img{transform:scale(1.06)}
.sector__d{display:block;margin-top:8px;font-size:16px;line-height:1.6;color:var(--slate)}
/* o nome reserva duas linhas, para as frases comecarem todas a mesma altura */
.sector__n{display:block;min-height:2.5em;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy);transition:color .25s ease}
.sector:hover .sector__n{color:var(--blue-deep)}

/* ---------- objections ---------- */
.qa{max-width:940px;border-top:1px solid var(--line);margin-top:var(--v2)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;align-items:flex-start;gap:24px;padding:24px 0;font-family:var(--display);font-weight:700;font-size:var(--fs-d5);line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"+";margin-left:auto;font-family:var(--body);font-weight:400;font-size:24px;line-height:1;color:var(--blue-deep);transition:transform .25s ease}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa summary:hover{color:var(--blue-deep)}
.qa__a{padding:0 0 32px;margin:0;max-width:56ch;font-size:16px;line-height:1.6;color:var(--slate)}

/* ---------- primary CTA ---------- */
.close{position:relative;overflow:hidden;isolation:isolate;background:var(--blue-deep);color:#fff;padding:var(--v5) var(--gutter)}
.close::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px}
.close__halo{position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.close__halo--a{right:-90px;top:-130px;width:440px;height:440px;background:radial-gradient(circle,rgba(255,255,255,.16),transparent 70%)}
.close__halo--b{left:-110px;bottom:-150px;width:380px;height:380px;background:radial-gradient(circle,rgba(11,32,90,.35),transparent 70%)}
.close__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--h4);align-items:center;position:relative;z-index:2}
@media (max-width:860px){.close__grid{grid-template-columns:1fr}}
.close h2{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d3);line-height:1;letter-spacing:-.03em;text-transform:uppercase;text-wrap:balance;color:#fff;max-width:18ch}
.close__lede{margin:24px 0 0;max-width:52ch;font-size:var(--fs-lead);line-height:1.6;color:var(--on-blue)}
.eyebrow--on-blue{color:var(--on-blue)}
.close__side{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.close__mail{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:15px;color:var(--on-blue);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:4px}
.close__mail:hover{color:#fff;border-color:#fff}

/* ---------- distributors ---------- */
.dist-wrap{padding:var(--v5) var(--gutter)}
.dist{position:relative;isolation:isolate;overflow:hidden;max-width:var(--shell);margin:0 auto;border-radius:8px;
 background:linear-gradient(120deg,#131322 0%,var(--navy) 55%,var(--navy-lift) 100%);
 padding:clamp(48px,8vw,96px) clamp(28px,6vw,90px)}
.dist::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:48px 48px}
.dist::after{content:"";position:absolute;right:-60px;top:-60px;z-index:-1;width:300px;height:300px;border-radius:50%;
 background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%)}
.dist__in{position:relative;max-width:640px}
.dist h2{margin:0 0 24px;font-family:var(--display);font-weight:900;font-size:var(--fs-d3);line-height:1;letter-spacing:-.03em;text-transform:uppercase;color:#fff}
.dist h2 i{font-style:normal;color:var(--blue-light)}
.dist__lede{margin:0 0 32px;max-width:52ch;font-size:var(--fs-lead);line-height:1.6;color:var(--on-navy-1)}
.dist__cta{display:flex;flex-wrap:wrap;gap:16px}

/* ---------- news ---------- */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:var(--v3)}
.post{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .25s ease,transform .25s ease,box-shadow .25s ease}
.post:hover{border-color:var(--blue);transform:translateY(-4px);box-shadow:0 20px 44px rgba(33,37,41,.16)}
.post__ph{aspect-ratio:3/2;overflow:hidden;background:var(--surface)}
.post__ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.post:hover .post__ph img{transform:scale(1.04)}
.post__body{flex:1;padding:24px}
.post time{display:block;margin-bottom:12px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted)}
.post h3{margin:0 0 12px;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:var(--navy)}
.post p{margin:0;font-size:17px;line-height:1.6;color:var(--slate)}
@media (max-width:900px){.news{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.news{grid-template-columns:1fr}}
/* lista de noticias: o artigo mais recente em destaque, de lado a lado; os outros enchem a linha */
.news--list{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));margin-top:0}
.post--lead{flex-direction:row;margin-bottom:20px}
.post--lead .post__ph{flex:1 1 55%;aspect-ratio:auto;min-height:380px}
.post--lead .post__body{flex:1 1 45%;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4.6vw,64px)}
.post--lead h2{margin:0 0 16px;font-family:var(--display);font-weight:900;font-size:var(--fs-d4);line-height:1;letter-spacing:-.03em;text-transform:uppercase;text-wrap:balance;color:var(--navy)}
.post--lead p{font-size:17px;line-height:1.7}
.post__more{display:inline-flex;gap:8px;margin-top:var(--v1);font-size:15px;font-weight:700;color:var(--blue-deep)}
/* ---------- paginacao (lista de noticias) ---------- */
.pager{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:var(--v3);padding-top:var(--v1);border-top:1px solid var(--line)}
.pager__step{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;font-weight:700;text-decoration:none;color:var(--navy);transition:color .25s ease}
a.pager__step:hover{color:var(--blue-deep)}
.pager__step--off{color:var(--muted)}
.pager__list{display:flex;gap:8px;margin:0;padding:0;list-style:none}
.pager__list a{display:grid;place-items:center;min-width:44px;height:44px;padding:0 8px;border:1px solid var(--line);border-radius:2px;font-family:var(--mono);font-size:14px;text-decoration:none;color:var(--navy);transition:border-color .25s ease,color .25s ease}
.pager__list a:hover{border-color:var(--blue);color:var(--blue-deep)}
.pager__list a[aria-current="page"]{border-color:var(--navy);background:var(--navy);color:#fff}
.pager__count{display:none;margin:0;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
@media (max-width:560px){
  .pager__list{display:none}
  .pager__count{display:block}
}
@media (max-width:900px){
  .post--lead{flex-direction:column}
  .post--lead .post__ph{min-height:0;aspect-ratio:3/2}
}

/* ---------- newsletter ---------- */
.news-sub{background:var(--surface);border-top:1px solid var(--line);padding:var(--v5) var(--gutter)}
.sub{display:grid;grid-template-columns:1fr minmax(320px,.8fr);gap:var(--h4);align-items:center;max-width:var(--shell);margin:0 auto}
.sub h2{margin:0;font-family:var(--display);font-weight:900;font-size:var(--fs-d5);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;color:var(--navy);max-width:20ch}
.sub h2 i{font-style:normal;color:var(--blue-deep)}
.sub__lede{margin:12px 0 0;max-width:52ch;font-size:17px;line-height:1.6;color:var(--slate)}
/* o formulario le-se como um modulo de subscricao: caixa propria e etiqueta visivel */
.sub__form{display:flex;flex-wrap:wrap;gap:12px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:8px}
/* o campo usa .fld (validacao do modal.js); display:contents poe etiqueta, campo e erro direto na linha flex */
.sub__fld{display:contents}
.sub__form .fld span{flex:1 1 100%;margin:0}
.sub__form .fld input{width:auto}
/* com campo e botao na mesma linha o erro desce para baixo dos dois; no telemovel fica logo por baixo do campo */
@media (min-width:481px){.sub__form .fld__error{order:1}}
.sub__note{order:2}
.sub__form.sub__done{display:block}
.sub__done .sub__lede{margin-top:8px}
.sub__form input{flex:1 1 220px;min-height:52px;padding:12px 16px;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--edge-strong);border-radius:2px}
.sub__form input::placeholder{color:var(--muted)}
.sub__form input:focus-visible{border-color:var(--blue)}
.sub__note{flex:1 1 100%;margin:0;font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--muted)}
@media (max-width:860px){.sub{grid-template-columns:1fr;gap:28px}}

/* ---------- footer ---------- */
footer{background:var(--navy);color:var(--on-navy-1);padding:var(--v4) var(--gutter) 32px}
.foot{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--h3)}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot{grid-template-columns:1fr}}
.foot img{height:26px;width:auto;margin-bottom:20px}
.foot p{margin:0;font-size:15px;line-height:1.6;color:var(--on-navy-2);max-width:36ch}
.foot__h{margin:0 0 16px;font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-navy-2);font-weight:400}
.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.foot a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-size:15px;color:var(--on-navy-1);transition:color .25s ease}
.foot a:hover{color:var(--blue-light)}
.foot__certs{display:flex;gap:12px;margin-top:24px}
.foot__certs span,.foot__certs a{min-height:0;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--on-navy-2);border:1px solid var(--navy-line);border-radius:2px;padding:8px 12px}
.foot__certs a{transition:color .25s ease,border-color .25s ease}
.foot__certs a:hover{color:var(--blue-light);border-color:var(--blue-light)}
.foot__social{display:flex;gap:12px;margin-top:12px}
.foot__social a{justify-content:center;width:44px;height:44px;color:var(--on-navy-2);border:1px solid var(--navy-line);border-radius:2px;transition:color .25s ease,border-color .25s ease}
.foot__social a:hover{color:var(--blue-light);border-color:var(--blue-light)}
.foot__legal{display:flex;flex-wrap:wrap;gap:4px 20px}
.foot__legal a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--on-navy-3);transition:color .25s ease}
.foot__legal a:hover{color:var(--blue-light)}
.foot__base{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;margin-top:var(--v3);padding-top:24px;border-top:1px solid var(--navy-line);font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--on-navy-2)}

/* ---------- motion ---------- */
@keyframes mq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes blink{0%,60%{opacity:1}61%,100%{opacity:.25}}
.marquee{animation:mq 64s linear infinite;will-change:transform;backface-visibility:hidden}
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  [data-reveal]{opacity:1;transform:none}
}

/* ---------- hero de produto: ritmo ---------- */
.page-head--product .cta-row{margin-top:var(--v1)}
@media (max-width:900px){.page-head__shot{aspect-ratio:16/9}}

/* ---------- lista que abre em ecras estreitos ([data-expand], ver site.js) ---------- */
.equip__more{display:none}
@media (max-width:560px){
  .equip.is-collapsed>li:nth-child(n+7){display:none}
  .equip__more:not([hidden]){display:flex;width:100%;justify-content:center;margin-top:12px}
}

/* ---------- desenho em ecras estreitos: aviso de que amplia ---------- */
@media (max-width:700px){
  .gallery--diagram .gallery__zoom::before{content:"Tap to enlarge";position:absolute;top:14px;right:62px;display:grid;place-items:center;height:40px;padding:0 14px;background:#fff;border-radius:2px;box-shadow:0 10px 24px rgba(0,0,0,.25);font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--navy)}
}

/* ---------- acessibilidade ---------- */
/* contorno dos campos com 3:1 sobre branco */
.fld input,.fld select,.fld textarea,.combo__input,.sub__form input{border-color:var(--edge-field)}
/* foco visivel sobre a faixa azul */
.close :focus-visible{outline-color:#fff}
/* barra de marcas: parar o movimento */
.proof{position:relative}
.proof__pause{position:absolute;top:4px;right:max(var(--gutter) - 14px,4px);display:grid;place-items:center;width:44px;height:44px;padding:0;background:none;border:0;color:var(--muted);cursor:pointer;transition:color .25s ease}
.proof__pause:hover{color:var(--navy)}
.proof__i-play,.proof.is-paused .proof__i-pause{display:none}
.proof.is-paused .proof__i-play{display:inline}
.proof.is-paused .marquee{animation-play-state:paused}
.gallery__thumb{font-size:12px}
@media (max-width:700px){.proof:has(.proof__pause) .proof__cap{padding-inline:52px}}

/* ---------- hub de veiculos ---------- */
/* cabecalho escuro sem nada a sobrepor-se por baixo */
.page-head--flat{padding-bottom:var(--v4)}

/* ---------- pagina de veiculo ---------- */
a.link-btn{display:inline-flex;align-items:center}
/* hero com a fotografia da maquina a encher a placa */
.page-head__shot--fill{aspect-ratio:1/1}
.page-head__shot--fill img{padding:0;object-fit:cover}
@media (max-width:900px){.page-head__shot--fill{aspect-ratio:4/3}}
/* fotografia ao alto ao lado de um texto longo: acompanha a leitura */
.gallery__main--tall{aspect-ratio:3/4;position:sticky;top:104px}
@media (max-width:900px){.gallery__main--tall{aspect-ratio:4/3;position:relative;top:auto}}
/* titulo de varias palavras ao lado da fotografia: um passo abaixo, para caber em duas linhas */
/* beneficios com fotografia: dois por linha, sem ligacao (nao reagem ao rato) */
.strip.strip--2{grid-template-columns:repeat(2,1fr);gap:var(--v2) var(--h3)}
@media (max-width:700px){.strip.strip--2{grid-template-columns:1fr}}
.sector--static .sector__n{min-height:0;margin:0}
.sector--static .sector__d{margin:8px 0 0;max-width:52ch}
.sector--static:hover .sector__ph img{transform:none}
.sector--static:hover .sector__n{color:var(--navy)}

/* ---------- calculadora de tempo (homepage e paginas de veiculo; ver calc.js) ---------- */
.detour{display:grid;grid-template-columns:1fr minmax(360px,.85fr);gap:var(--h4);align-items:start}
@media (max-width:960px){.detour{grid-template-columns:1fr}}
.strike{margin:32px 0 0;padding-left:24px;border-left:2px solid var(--line);font-size:16px;line-height:1.7;color:var(--slate);max-width:52ch}
.strike s{color:var(--muted);text-decoration-thickness:1px}

.calc{background:var(--navy);border-radius:8px;padding:var(--h2);color:#fff}
.calc h3{margin:0 0 8px;font-family:var(--display);font-size:var(--fs-d5);font-weight:700;line-height:1.2;letter-spacing:-.015em}
.calc__hint{margin:0 0 24px;font-size:15px;line-height:1.6;color:var(--on-navy-2)}
.field{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--navy-line)}
.field__label{font-size:15px;line-height:1.4;color:var(--on-navy-1)}
.field__box{display:flex;align-items:center;flex:none;width:132px;height:48px;padding:0 14px 0 0;border:1px solid var(--on-navy-3);border-radius:2px;background:rgba(255,255,255,.04);cursor:text;transition:border-color .2s ease,box-shadow .2s ease}
.field__box:hover{border-color:var(--on-navy-2)}
.field__box:focus-within{border-color:var(--blue-light);box-shadow:0 0 0 1px var(--blue-light)}
.field__box input{width:100%;min-width:0;height:100%;padding:0 0 0 14px;border:0;background:transparent;font-family:var(--mono);font-size:20px;font-weight:600;color:#fff;text-align:right;font-variant-numeric:tabular-nums;outline:0;-moz-appearance:textfield;appearance:textfield}
.field__box input::-webkit-inner-spin-button,.field__box input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.field:has(+ .calc__out){border-bottom:0}
.field__unit{margin-left:8px;font-family:var(--mono);font-size:16px;color:var(--blue-light)}
.calc__out{border-top:1px solid var(--navy-line);margin-top:32px;padding-top:24px}
.calc__outlabel{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-navy-2);margin-bottom:12px}
.calc__big{display:flex;align-items:baseline;gap:12px}
.calc__hours{font-family:var(--display);font-weight:900;font-size:var(--fs-num);line-height:.95;letter-spacing:-.035em;color:#fff;font-variant-numeric:tabular-nums}
.calc__unit{font-family:var(--mono);font-size:16px;color:var(--blue-light)}
.calc__note{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--navy-line);font-family:var(--mono);font-size:12px;line-height:1.5;color:var(--on-navy-2)}
.calc__days{margin:16px 0 0;font-size:15px;line-height:1.6;color:var(--on-navy-1)}
.calc__days b{color:#fff;font-weight:700}
.detour .facts{margin-top:var(--v1)}
.calc .field + .calc__outlabel{margin-top:28px}
.calc__hint + .calc__outlabel{margin-top:0}
/* ---------- dois percursos lado a lado: passos e tempo de cada um ---------- */
.routes{display:grid;gap:var(--v1);max-width:560px;margin-top:var(--v2)}
.route__top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 10px}
.route__k{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.route__t{font-family:var(--display);font-weight:800;font-size:var(--fs-d5);line-height:1;letter-spacing:-.02em;color:var(--slate);font-variant-numeric:tabular-nums}
.route__bar{height:8px;border-radius:2px;background:var(--line)}
.route__bar::before{content:"";display:block;width:var(--w);height:100%;border-radius:2px;background:var(--muted)}
.route__steps{display:flex;flex-wrap:wrap;gap:2px 0;margin:12px 0 0;padding:0;list-style:none;font-size:15px;line-height:1.6;color:var(--slate)}
.route__steps li+li::before{content:"\2192";margin:0 8px;font-family:var(--mono);color:var(--muted)}
.route--win .route__k,.route--win .route__t{color:var(--navy)}
.route--win .route__bar::before{background:var(--blue)}
.route--win .route__steps{font-weight:600;color:var(--navy)}

/* ---------- paginas de produto e de veiculo em ecras estreitos ---------- */
/* calculadora: titulo, texto, cursores e resultado; os percursos ficam logo por baixo do resultado */
@media (max-width:960px){
  .detour{gap:0}
  .detour>div:first-child{display:contents}
  .detour .h2{order:1}
  .detour .lede{order:2}
  .detour .calc{order:3;margin-top:var(--v2)}
  .detour .routes{order:4}
  .detour .cta-row{order:5}
}
/* o botao fixo em baixo ja pede o orcamento: o da seccao sai */
@media (max-width:900px){body:has([data-sticky-cta]) .detour .cta-row{display:none}}
/* cartoes de sistema em linha, com a imagem pequena ao lado */
@media (max-width:560px){
  .pdp .prod{flex-direction:row;align-items:stretch}
  .pdp .prod__ph{flex:0 0 108px;aspect-ratio:auto;padding:10px}
  .pdp .prod__body{padding:16px}
  .pdp .prod__fits{margin-bottom:10px;padding-bottom:10px;font-size:15px}
  .pdp .prod__job{font-size:15px}
  .pdp .prod__foot{padding-top:12px}
  .strip--2 .sector__ph{aspect-ratio:16/9;margin-bottom:12px}
}
/* com tres por linha os nomes cabem numa linha: sem a reserva de duas linhas */
.strip--3 .sector__n{min-height:0}
/* quatro por linha (outras industrias) */
.strip.strip--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1000px){.strip.strip--4{grid-template-columns:repeat(2,1fr)}}
.strip--4 .sector__n{min-height:0}
.strip--4 .sector--static .sector__n{margin:0}
@media (max-width:620px){.strip.strip--4{grid-template-columns:1fr}}

/* ---------- cartao de texto com imagem (paginas de industria) ---------- */
.feature{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px}
.feature + .feature{margin-top:var(--v2)}
.feature__ph{position:relative;min-height:380px;background:var(--surface)}
.feature__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature--flip .feature__ph{order:2}
.feature__body{padding:clamp(28px,4.6vw,64px)}
.feature .h2{font-size:var(--fs-d4)}
.feature__p{max-width:56ch;margin:20px 0 0;font-size:17px;line-height:1.7;color:var(--slate)}
.feature .specs{margin-top:var(--v1)}
@media (max-width:900px){
  .feature{grid-template-columns:1fr}
  .feature__ph,.feature--flip .feature__ph{order:0;min-height:0;aspect-ratio:16/10}
}
/* lista de especificacoes numa so coluna, com ligacoes */
.specs.specs--one{grid-template-columns:1fr}
.specs dd a{color:var(--blue-deep);text-underline-offset:4px;transition:color .25s ease}
.specs dd a:hover{color:var(--navy)}

/* ---------- altura comum dos cabecalhos (ecras largos) ---------- */
/* hubs (produtos, veiculos, industrias) e paginas de detalhe (produto, veiculo, industria): a mesma altura em cada nivel.
   O conteudo comeca sempre no topo, para os breadcrumbs e o titulo ficarem na mesma posicao em todas as paginas.
   Em ecras estreitos a altura segue o conteudo. */
@media (min-width:901px){
  .page-head--hub,.page-head--detail{display:flex;flex-direction:column;justify-content:flex-start}
  .page-head--hub{min-height:clamp(560px,55vh,600px)}
  .page-head--detail{min-height:clamp(760px,74vh,800px)}
  .page-head__shot--fill{justify-self:end;width:100%;max-width:372px}
}
/* ---------- manifesto (About us): o titulo em dois tercos da largura; por baixo, o texto a esquerda e a foto a direita ---------- */
.manifesto{display:grid;grid-template-columns:1fr 1fr;gap:var(--v3) var(--h4);align-items:start}
.manifesto__h{grid-column:1/-1;max-width:66.667%}
.manifesto__text p{margin:20px 0 0;max-width:56ch;font-size:17px;line-height:1.7;color:var(--slate)}
.manifesto__text .manifesto__lead{margin:0 0 var(--v1);max-width:40ch;font-family:var(--display);font-weight:700;font-size:var(--fs-d5);line-height:1.3;letter-spacing:-.015em;text-wrap:pretty;color:var(--navy)}
.manifesto__ph{aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--surface)}
.manifesto__ph img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .manifesto{grid-template-columns:1fr}
  .manifesto__h{max-width:none}
  .manifesto__ph{aspect-ratio:16/10}
}
/* titulo de seccao em dois tercos da largura (em vez de 20 caracteres) */
.h2--two-thirds{max-width:66.667%}
@media (max-width:900px){.h2--two-thirds{max-width:none}}
/* ---------- mapa de parceiros: imagem do mundo com um ponto por pais ---------- */
.split--map{grid-template-columns:1.5fr minmax(280px,1fr);align-items:center}
.split--map .specs{margin-top:0}
.map-wrap{max-width:960px;margin:0 auto}
.map{position:relative}
.map img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.map__pin{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px rgba(27,89,201,.18)}
@media (max-width:900px){
  .split--map{grid-template-columns:1fr}
  .map__pin{width:6px;height:6px;margin:-3px 0 0 -3px;box-shadow:0 0 0 2px rgba(27,89,201,.18)}
}

/* ---------- artigo de noticias: cabecalho escuro sem foto, texto a esquerda e barra com newsletter e mais artigos a direita ---------- */
.page-head--article.page-head--dark{padding-bottom:var(--v4)}
.page-head--article h1{max-width:26ch}
.article__meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0 0 16px;font-size:15px;line-height:1.5;color:var(--slate)}
.article__meta span::before{content:"\00b7";margin-right:12px}
.page-head--dark .article__meta{color:var(--on-navy-2)}
.block--article{padding-top:var(--v3)}
/* duas colunas alinhadas com o cabecalho: o texto a esquerda; a direita, uma barra com a newsletter e mais artigos (fica presa ao fazer scroll) */
.article{display:grid;grid-template-columns:minmax(0,72ch) minmax(280px,340px);justify-content:space-between;gap:var(--h4);align-items:start}
.article__cover{margin:0 0 var(--v2);aspect-ratio:16/9;overflow:hidden;border-radius:8px;background:var(--surface)}
.article__cover img{width:100%;height:100%;object-fit:cover}
.article__side{position:sticky;top:112px}
.article__side .form{padding:clamp(20px,2.2vw,28px);background:var(--surface)}
.article__side .fld{margin-top:16px}
.article__side .btn{width:100%;justify-content:center;margin-top:20px}
/* lista curta de artigos na barra */
.side-list{margin-top:var(--v2)}
.side-list ul{margin:16px 0 0;padding:0;list-style:none;border-bottom:1px solid var(--line)}
.side-list a{display:block;padding:16px 0;border-top:1px solid var(--line);text-decoration:none;color:var(--navy);transition:color .25s ease}
.side-list a:hover{color:var(--blue-deep)}
.side-list time{display:block;margin-bottom:6px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--muted)}
.side-list span{font-family:var(--display);font-weight:700;font-size:var(--fs-card);line-height:1.25;letter-spacing:-.015em}
@media (max-height:760px){.article__side{position:static}}
@media (max-width:900px){
  .article{grid-template-columns:1fr}
  .article__side{position:static}
}
/* anterior e seguinte com o titulo do artigo */
.pager--titled{align-items:flex-start}
.pager--titled .pager__step{flex:1 1 0;flex-direction:column;align-items:flex-start;gap:4px}
.pager--titled .pager__step--all{flex:0 0 auto;align-self:center}
.pager--titled .pager__step--next{align-items:flex-end;text-align:right}
.pager__k{font-family:var(--mono);font-size:12px;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.pager__t{font-family:var(--display);font-weight:700;font-size:var(--fs-card);line-height:1.25;letter-spacing:-.015em}
@media (max-width:560px){
  .pager--titled{flex-wrap:wrap}
  .pager--titled .pager__step:empty{display:none}
  .pager--titled .pager__step--all{order:3;flex-basis:100%}
}

/* ---------- template de produto (main.pdp--product) ---------- */
/* topo: texto e imagem a meias. A imagem fica na caixa branca, em tamanho maior. */
@media (min-width:901px){
  .page-head__grid--even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .page-head__shot--lg{aspect-ratio:1/1;justify-self:end;width:100%;max-width:520px}
}
.page-head__shot--lg img{padding:clamp(20px,3vw,40px)}
.page-head__shot--fill.page-head__shot--lg img{padding:0}
/* factos por baixo dos botoes: 2 a 4, em tamanho de apoio e nao de titulo */
.facts--compact{gap:20px var(--h2);margin-top:var(--v2);padding-top:var(--v1);border-top:1px solid var(--navy-line)}
.facts--compact .facts__v{font-size:clamp(20px,1.9vw,26px)}
.facts__more{margin-top:8px;font-size:15px}
a.facts__more{gap:6px}
@media (min-width:1200px){.facts--compact{flex-wrap:nowrap;gap:28px}.facts--compact li{white-space:nowrap}}
@media (min-width:901px) and (max-width:1199px){.facts--compact{display:grid;grid-template-columns:auto auto;justify-content:start}}
/* telemovel: a ficha tecnica fica na barra fixa e na seccao de especificacoes */
@media (max-width:480px){.page-head--product .cta-row .btn--outline-light{display:none}}
@media (max-width:480px){.facts--compact{display:grid;grid-template-columns:1fr 1fr}.facts--compact .facts__v{font-size:20px}}
/* texto de apoio dos cartoes e das respostas: 17 px em todo o site */
.svc__p,.points li li,.qa__a,.sector__d{font-size:17px}
/* legenda do desenho: os numeros sao os do desenho */
.legend{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--v1) var(--h3);margin:var(--v2) 0 0;padding:0;list-style:none}
.legend li{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-content:start}
.legend__n{grid-row:1/3;font-family:var(--display);font-weight:800;font-size:var(--fs-d5);line-height:1;color:var(--blue-light)}
.legend h3{margin:0;font-family:var(--display);font-size:var(--fs-card);font-weight:700;line-height:1.25;letter-spacing:-.015em;color:#fff}
.legend p{margin:6px 0 0;font-size:17px;line-height:1.5;color:var(--on-navy-2)}
@media (max-width:1000px){.legend{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.legend{grid-template-columns:1fr;gap:20px}}
/* cartoes com valor: o valor e o que se le primeiro */
.svcs--stats .svc__n{margin-bottom:14px;font-family:var(--display);font-weight:800;font-size:var(--fs-d4);line-height:1;letter-spacing:-.02em;text-transform:none;color:#fff}
.svcs--stats .svc__h{font-size:17px;color:var(--blue-light)}
/* caracteristicas: 2 a 4 grupos; em ecras estreitos cada grupo abre e fecha ([data-fold], ver site.js) */
.pdp--product .points{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.fold>summary{list-style:none}
.fold>summary::-webkit-details-marker{display:none}
@media (min-width:561px){.fold>summary{pointer-events:none}}
@media (max-width:560px){
  .pdp--product .points{gap:0}
  .fold>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:56px;border-top:2px solid var(--navy);cursor:pointer}
  .fold>summary h3{margin:0;padding-top:0;border-top:0}
  .fold>summary::after{content:"+";font-family:var(--body);font-weight:400;font-size:24px;line-height:1;color:var(--blue-deep);transition:transform .25s ease}
  .fold[open]>summary::after{transform:rotate(45deg)}
  .fold>ul{padding:0 0 20px}
  .fold>p{padding:0 0 20px;margin:0}
  .prose .fold>summary h3{margin:0}
  .pdp--product .specs>div{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:16px}
}
/* .strip--scroll: em ecras estreitos os cartoes passam de lado, em vez de empilharem */
@media (max-width:620px){
  .strip.strip--scroll{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:78%;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .strip.strip--scroll::-webkit-scrollbar{display:none}
  .strip.strip--scroll>.sector{scroll-snap-align:start}
}
/* barra fixa do telemovel com as duas acoes */
@media (max-width:900px){.sticky-cta--pair{display:flex;gap:12px}.sticky-cta--pair .btn{flex:1 1 0;width:auto;padding-inline:12px}}
@media (prefers-reduced-motion:reduce){.fold>summary::after{transition:none}}

/* video: titulo a esquerda e video grande a direita, como nas perguntas */
.media-split{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--v2) var(--h4);align-items:center}
.media-split .gallery{margin-top:0}
.media-split__head .lede{margin-top:24px}
@media (max-width:900px){.media-split{grid-template-columns:1fr}}

/* calculadora sobre a faixa escura: os dois percursos e o cartao leem-se sobre azul escuro */
.service .route__k,.service .route__t{color:var(--on-navy-2)}
.service .route__bar{background:var(--navy-line)}
.service .route__bar::before{background:var(--on-navy-3)}
.service .route__steps{color:var(--on-navy-2)}
.service .route__steps li+li::before{color:var(--on-navy-3)}
.service .route--win .route__k,.service .route--win .route__t,.service .route--win .route__steps{color:#fff}
.service .route--win .route__bar::before{background:var(--blue-light)}
.service .calc{background:rgba(255,255,255,.06);border:1px solid var(--navy-line)}
/* cabecalho de uma so coluna: o titulo e o texto ocupam os mesmos dois tercos */
.page-head>.shell>h1,.page-head>.shell>.page-head__lede{max-width:66.667%}
@media (max-width:900px){.page-head>.shell>h1,.page-head>.shell>.page-head__lede{max-width:none}}
/* barra de marcas no telemovel: os nomes nao competem com os titulos de seccao */
@media (max-width:620px){.marquee__row{gap:40px;padding-right:40px}.marquee__row img{height:calc(var(--h)*.75px)}}
/* cartoes de noticia da grelha: a ligacao "Read the article" fica no fundo do cartao, alinhada entre cartoes */
.post:not(.post--lead) .post__body{display:flex;flex-direction:column}
.post:not(.post--lead) .post__more{align-self:flex-start;margin-top:auto;padding-top:20px}
/* .equip--photo: cartoes de maquina com foto de estudio em vez de icone */
.equip--photo .equip__icon{height:auto;aspect-ratio:4/3;object-position:center}
