:root{
  --hero-gutter:clamp(.75rem,2.6vw,3.1rem);
  --hero-r:10px;
  --tabs-h:3.4rem;
  --campo-h:4rem;
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.brand .nm{font-weight:600;font-size:1.5rem;letter-spacing:-.02em;line-height:1}

header{background:var(--paper)}

header.scrolled{padding:1.15rem 0}
.nav .head-cta svg{flex:none}
.nav-links a[data-categoria],.nav-links a[href="#contactos"]{font-weight:500}

.nav-links.tem-linha{position:relative}
.nav-links.tem-linha a:not(.btn)::after{display:none}
.nav-linha{
  position:absolute;left:0;top:0;height:1.5px;width:0;pointer-events:none;
  background:var(--ink);opacity:0;
  transition:transform .32s cubic-bezier(.22,.61,.36,1), width .3s ease;
}
.nav-linha.on{opacity:1}
.nav-links.open .nav-linha{display:none}
@media (prefers-reduced-motion:reduce){ .nav-linha{transition:none} }

.hero{
  padding:5.4rem 0 6rem;background:var(--paper);
  display:flex;flex-direction:column;box-sizing:border-box;
  height:100vh;height:100svh;min-height:600px;
}
.hero::after{display:none}
.hero-wrap{max-width:1840px;width:100%;margin:0 auto;padding:0 var(--hero-gutter);flex:1;display:flex;flex-direction:column;min-height:0}

.hero-panel{
  position:relative;overflow:hidden;border-radius:var(--hero-r);
  flex:1 1 auto;min-height:0;
  background:var(--navy);

  display:flex;flex-direction:column;justify-content:center;
  padding-bottom:calc(var(--tabs-h) + var(--campo-h) / 2 + .8rem + 6%);
}

.hero{--hero-foto-y:70%}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% var(--hero-foto-y)}

.hero-panel::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,
    color-mix(in srgb,var(--navy-deep) 86%,transparent) 0%,
    color-mix(in srgb,var(--navy-deep) 62%,transparent) 38%,
    color-mix(in srgb,var(--navy-deep) 10%,transparent) 72%,
    transparent 100%);
}
.hero-txt{
  position:relative;z-index:2;
  padding:clamp(1.6rem,4vh,3rem) clamp(1.5rem,6.6vw,8rem) 0;
}
.hero .hero-title{
  font-size:clamp(2.35rem,4.7vw,5.3rem);line-height:1.02;
  color:var(--white);max-width:13ch;margin:0;
  font-weight:600;letter-spacing:-.02em;
  text-wrap:balance;
}

@media (min-width:641px){

  .hero .hero-title{max-width:none;font-size:min(7vw,4.5rem)}
  .hero .hero-l{display:block;white-space:nowrap}
}

.hero .hero-zona{
  display:block;margin-top:1.1rem;
  font-family:"Figtree",sans-serif;font-weight:500;letter-spacing:0;
  font-size:clamp(1.05rem,1.5vw,1.45rem);line-height:1.3;
  color:var(--on-dark);
}

.procura{
  position:relative;z-index:3;
  width:min(1180px, calc(100% - 2 * clamp(1.5rem,6.6vw,8rem)));
  margin:calc(-1 * (var(--tabs-h) + var(--campo-h) / 2 + .8rem)) 0 0 clamp(1.5rem,6.6vw,8rem);
}

form.procura{background:none;padding:0;box-shadow:none}
.procura .procura-tabs label{display:block;margin:0;font-size:inherit;font-weight:inherit;color:inherit}
.procura .procura-campo input{width:auto;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
.procura .procura-campo input:focus{box-shadow:none}

.procura-tabs{display:flex;border:0;min-width:0}
.procura-tabs label{position:relative;cursor:pointer}
.procura-tabs input{position:absolute;opacity:0;pointer-events:none}
.procura-tabs span{
  display:flex;align-items:center;height:var(--tabs-h);padding:0 1.55rem;
  font-size:1rem;font-weight:500;color:var(--muted);white-space:nowrap;
  background:color-mix(in srgb,var(--paper) 94%,transparent);
  border-right:1px solid var(--line);
  transition:color .2s ease, background .2s ease;
}
.procura-tabs label:first-of-type span{border-top-left-radius:var(--hero-r)}
.procura-tabs label:last-of-type span{border-top-right-radius:var(--hero-r);border-right:0}
.procura-tabs input:checked + span{
  background:var(--white);color:var(--ink);font-weight:600;
  box-shadow:inset 0 3px 0 var(--champ);
}
.procura-tabs input:focus-visible + span{outline:2px solid var(--champ);outline-offset:-4px}
@media (hover:hover) and (pointer:fine){
  .procura-tabs input:not(:checked) + span:hover{color:var(--ink);background:var(--white)}
}

.procura-barra{
  display:flex;gap:.8rem;align-items:stretch;
  background:var(--white);padding:.8rem;
  border-radius:0 var(--hero-r) var(--hero-r) var(--hero-r);
  box-shadow:0 30px 60px -34px rgba(16,27,36,.55), 0 2px 10px -4px rgba(16,27,36,.12);
}
.procura-campo{
  flex:1;display:flex;align-items:center;gap:.8rem;min-width:0;
  height:var(--campo-h);padding:0 1.2rem;
  border:1px solid var(--line);border-radius:6px;
  transition:border-color .2s ease;
}
.procura-campo:focus-within{border-color:var(--ink)}
.procura-ic{width:22px;height:22px;flex:none;color:var(--champ-ink)}

.procura-loc{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;margin-left:-.65rem;padding:0;border:0;border-radius:50%;
  background:none;color:var(--champ-ink);cursor:pointer;transition:background .2s ease;
}
@media (hover:hover) and (pointer:fine){ .procura-loc:hover{background:color-mix(in srgb,var(--champ) 14%,transparent)} }
.procura-loc.a-localizar .procura-ic{animation:pinPulsa .9s ease-in-out infinite}
@keyframes pinPulsa{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){ .procura-loc.a-localizar .procura-ic{animation:none;opacity:.5} }
.procura-campo input{
  flex:1;min-width:0;border:0;outline:0;background:transparent;
  font:500 1.08rem/1 "Figtree",sans-serif;color:var(--text);
}
.procura-campo input::placeholder{color:var(--muted);opacity:1}
.procura-campo input::-webkit-search-cancel-button{cursor:pointer}
.procura-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.65rem;
  min-width:13.5rem;height:var(--campo-h);padding:0 2rem;
  border:0;border-radius:6px;cursor:pointer;
  background:var(--btn-bg);color:var(--btn-fg);
  font:600 1.12rem/1 "Figtree",sans-serif;
  transition:background .2s ease, transform .2s ease;
}
.procura-btn svg{width:21px;height:21px}
@media (hover:hover) and (pointer:fine){ .procura-btn:hover{background:var(--btn-bg-hover)} }
@media (hover:none){ .procura-btn:active{transform:scale(.98)} }

@media (max-width:1000px){
  .nav-links{display:none}
  .menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-.6rem}
  .nav{gap:.6rem}
}
@media (max-width:640px){

  .nav .btn.head-cta{display:none}
  .brand .nm{font-size:1.35rem}
}

@media (max-width:900px){
  .procura{width:calc(100% - 2 * clamp(1rem,4vw,2rem));margin-left:clamp(1rem,4vw,2rem)}
  .procura-btn{min-width:0}

  .procura-tabs label{flex:1 1 auto}
  .procura-tabs span{justify-content:center;padding:0 .9rem;font-size:.95rem}

  .procura-barra{border-top-right-radius:0}
}

@media (max-width:640px){

  :root{--tabs-h:2.65rem;--campo-h:3.15rem;--hero-r:8px}

  .hero{--procura-h:calc(2 * var(--tabs-h) + 1px + 1.3rem + 2 * var(--campo-h) + .6rem);
    height:auto;min-height:0;padding-bottom:2rem;

    padding-top:calc(2.3rem + 44px + var(--hero-gutter))}
  .hero-img{object-position:35% 50%}
  .hero-panel::after{
    background:linear-gradient(180deg,
      color-mix(in srgb,var(--navy-deep) 50%,transparent) 0%,
      color-mix(in srgb,var(--navy-deep) 66%,transparent) 45%,
      color-mix(in srgb,var(--navy-deep) 30%,transparent) 100%);
  }

  .hero-panel{flex:none;justify-content:center;padding-bottom:calc(var(--procura-h) / 2);min-height:50vh;min-height:50svh}
  .hero-txt{padding:3.6rem 1.35rem 3.4rem;text-align:center}
  .hero .hero-title{margin-inline:auto}
  .hero .hero-title{font-size:clamp(2.1rem,10.6vw,3.3rem);max-width:15ch}
  .hero .hero-zona{font-size:clamp(1.02rem,4.4vw,1.2rem);margin-top:.8rem}

  .procura{width:calc(100% - 1.5rem);margin:calc(var(--procura-h) / -2) 0 0 .75rem}

  .procura-tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border-radius:var(--hero-r) var(--hero-r) 0 0;overflow:hidden}
  .procura-tabs span{justify-content:center;padding:0 .5rem;font-size:.92rem;border-right:0;background:color-mix(in srgb,var(--paper) 97%,transparent)}
  .procura-tabs label span{border-radius:0 !important}
  .procura-tabs label{grid-column:span 2}

  .procura-tabs label:nth-of-type(n+4){grid-column:span 2}
  .procura-barra{flex-direction:column;gap:.6rem;padding:.65rem;border-radius:0 0 var(--hero-r) var(--hero-r)}
  .procura-campo{flex:none;padding:0 1rem}
  .procura-campo input{font-size:1rem}
  .procura-btn{width:100%}
}

@media (max-width:380px){
  .procura-campo{padding:0 .8rem;gap:.55rem}
  .procura-ic{width:20px;height:20px}
}

@media (max-height:520px) and (orientation:landscape){
  .hero{padding-top:4.6rem;height:auto;min-height:0}
  .hero-wrap{flex:none}
  .hero-panel{flex:none;height:340px}
}

.procura-tabs{position:relative}
.procura-tabs span{transition:color .3s cubic-bezier(.22,.61,.36,1), background-color .3s cubic-bezier(.22,.61,.36,1)}
.procura-tabs input:checked + span{font-weight:500}
.procura-tabs.tem-ind input:checked + span{box-shadow:none}
.procura-ind{position:absolute;left:0;top:0;z-index:2;height:3px;width:0;opacity:0;pointer-events:none;
  background:var(--champ);will-change:transform,width;
  transform-origin:center;
  transition:transform .48s cubic-bezier(.22,.61,.36,1), opacity .38s cubic-bezier(.22,.61,.36,1)}

.procura-ind.a-sair{transition:transform .24s cubic-bezier(.4,0,.2,1), opacity .24s cubic-bezier(.4,0,.2,1)}

@media (min-width:641px){ .procura-tabs.tem-ind{border-radius:var(--hero-r) var(--hero-r) 0 0;overflow:hidden} }
@media (prefers-reduced-motion:reduce){ .procura-ind,.procura-tabs span{transition:none} }

.lingua{position:relative}
.lingua__atual{display:inline-flex;align-items:center;gap:.3rem;height:44px;padding:0 .2rem;list-style:none;cursor:pointer;
  font-size:.92rem;font-weight:600;letter-spacing:.04em;color:var(--ink);user-select:none;-webkit-user-select:none}
.lingua__atual::-webkit-details-marker{display:none}
.lingua__atual::marker{content:""}
.lingua__seta{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .25s cubic-bezier(.22,.61,.36,1)}
.lingua[open] .lingua__seta{transform:rotate(180deg)}
.lingua__lista{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:190px;margin:0;padding:.4rem;list-style:none;
  background:var(--white);border:1px solid var(--line);border-radius:6px;
  box-shadow:0 26px 48px -28px rgba(16,27,36,.5), 0 2px 8px -4px rgba(16,27,36,.12)}
.lingua[open] .lingua__lista{animation:cfEntra .22s cubic-bezier(.22,.61,.36,1)}

.lingua.a-fechar .lingua__lista{animation:cfSai .18s cubic-bezier(.4,0,1,1) forwards;pointer-events:none}
.lingua.a-fechar .lingua__seta{transform:none}
@keyframes cfSai{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}
.lingua__op{display:flex;align-items:center;justify-content:space-between;gap:.8rem;min-height:42px;padding:0 .65rem;border-radius:6px;
  font-size:.92rem;color:var(--text);text-decoration:none;
  transition:background-color .2s cubic-bezier(.22,.61,.36,1), color .2s cubic-bezier(.22,.61,.36,1)}
.lingua__ok{width:16px;height:16px;flex:none;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:0}
.lingua__op.is-on{color:var(--ink);font-weight:600}
.lingua__op.is-on .lingua__ok{opacity:1}
@media (hover:hover) and (pointer:fine){ .lingua__op:hover{background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink)} }
@media (hover:none){ .lingua__op{min-height:46px} }
@keyframes cfEntra{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
