/*
 * Camada responsiva global Experts.
 * Mantém proporções, alinhamentos e grelhas consistentes entre laptops.
 */
:root{--max:1214px;--page-gutter:clamp(20px,3vw,40px);--section-space:clamp(72px,7vw,100px)}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:82px;touch-action:pan-x pan-y}
body{min-width:320px;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.back-to-top{position:fixed;z-index:90;right:clamp(18px,2.5vw,34px);bottom:clamp(18px,3vw,34px);width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid rgba(200,16,46,.22);border-radius:50%;background:var(--red);color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.16);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .3s ease,visibility .3s ease,transform .35s cubic-bezier(.22,1,.36,1),background-color .25s ease;pointer-events:none}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{background:#a90d27;transform:translateY(-2px)}
.back-to-top:focus-visible{outline:3px solid rgba(200,16,46,.25);outline-offset:3px}
.back-to-top svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.container{width:min(var(--max),calc(100% - (var(--page-gutter) * 2)));max-width:100%;margin-inline:auto}
.section,.clients,.equipment{padding-top:var(--section-space);padding-bottom:var(--section-space)}
.section h2{font-size:clamp(30px,2.4vw,36px)}

/* Cabeçalho comum a todas as páginas. */
.site-header,.nav-wrap{height:82px}
.site-header .nav-wrap{position:relative}
.brand{flex:0 0 auto}
.brand img{width:clamp(158px,12vw,176px);height:auto}
.main-nav{gap:clamp(25px,2.4vw,36px)}
.languages{margin-left:clamp(28px,3.5vw,52px)}
.dropdown-menu>a:first-child{display:none}

/* Hero inicial: escala tipografia sem alterar a composição. */
@media(min-width:901px){
  .site-header .nav-wrap{width:calc(100% - 80px);max-width:none}
  .site-header .languages{margin-left:auto}
  .hero{height:calc(100vh - 82px);height:calc(100svh - 82px);min-height:560px;max-height:780px}
  .hero-content{padding-top:clamp(90px,14vh,155px)}
  .hero h1{font-size:clamp(46px,3.4vw,54px);max-width:700px}
  .hero p{font-size:clamp(15px,1.05vw,16px)}
  .about-hero-content,.services-hero-content,.contact-hero-content{width:min(var(--max),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto}
}

/* Grelhas fluidas: nunca dependem da largura exata de um monitor. */
.split-grid,.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer-grid{grid-template-columns:minmax(220px,1.3fr) repeat(3,minmax(130px,1fr));gap:clamp(32px,4.5vw,70px)}
.service-card,.equipment-grid article,.stats article,.testimonial-card{min-width:0}
.service-card>img,.equipment-grid img,.about-image img,.story-photo img{width:100%}
.services-hero-content,.benefits-grid,.pest-detail>.container,.disinfection-grid,.uv-equipment>.container{width:min(var(--max),calc(100% - (var(--page-gutter) * 2)));margin-inline:auto}
.benefits article{min-width:0}
.benefits article>div{width:auto;min-width:0;flex:1}
.benefits strong,.benefits small{width:auto;max-width:100%;height:auto;overflow-wrap:anywhere}

/* Páginas internas: remove colunas rígidas que desalinhavam em laptops menores. */
@media(min-width:901px){
  .contact-layout{grid-template-columns:minmax(300px,373px) minmax(0,1fr)}
  .contact-cards>a,.contact-cards>div,.quote-card,.contact-map{width:100%}
  .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  textarea,.quote-card button{width:100%}
  .detail-intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,4vw,52px)}
  .detail-media,.detail-copy>p{width:100%}
  .pest-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .pest-card-link,.pest-grid article{width:100%}
  .disinfection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,4vw,48px)}
  .disinfection-grid>img,.disinfection-detail .detail-copy h2,.disinfection-detail .detail-copy>p{width:100%}
  .disinfection-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .disinfection-items article{width:100%}
}

/* Laptop compacto e tablet horizontal. */
@media(min-width:901px) and (max-width:1180px){
  .main-nav{gap:22px}
  .languages{margin-left:25px}
  .split-grid{gap:55px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats article{width:100%}
  .footer-grid{grid-template-columns:1.2fr repeat(3,1fr);gap:28px}
  .contact-layout{gap:30px}
  .pest-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}
  .pest-card-link,.pest-grid article{height:100%;min-height:76px}
  .detail-copy h2,.disinfection-detail .detail-copy h2{width:100%;height:auto;white-space:normal}
  .uv-card{grid-template-columns:380px minmax(0,1fr);gap:32px}
  .uv-image{width:380px}
}

/* Navegação passa para menu antes de os elementos se sobreporem. */
@media(max-width:900px){
  :root{--page-gutter:clamp(15px,4vw,30px);--section-space:clamp(62px,9vw,86px)}
  html{scroll-padding-top:72px}
  .site-header,.nav-wrap{height:72px}
  .site-header .languages{position:absolute;right:44px;margin:0}
  .site-header .menu-toggle{position:absolute;right:0;margin:0}
  .dropdown-menu>a:first-child{display:block}
  .main-nav{top:72px}
  .split-grid,.story-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:600px){
  :root{--page-gutter:15px;--section-space:72px}
  html{scroll-padding-top:70px}
  .container{width:calc(100% - 30px)}
  .site-header,.nav-wrap{height:70px}
  .main-nav{top:70px}
  .brand img{width:112px}
  .site-header .languages{right:38px}
  .back-to-top{right:16px;bottom:16px;width:44px;height:44px}
  .section h2{font-size:clamp(27px,8vw,30px)}
  .service-grid,.equipment-grid,.footer-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* Proteção para telemóveis que solicitam uma largura de desktop (~980px). */
@media (pointer:coarse) and (min-width:901px) and (max-width:1100px){
  :root{--page-gutter:30px;--section-space:82px}
  .site-header,.nav-wrap{height:110px}
  .site-header .nav-wrap{width:calc(100% - 60px);max-width:none}
  .brand img{width:210px}
  .languages{position:absolute;right:76px;gap:22px;margin:0}
  .lang{font-size:18px}
  .lang img{width:32px;height:auto}
  .menu-toggle{position:absolute;right:0;display:flex;width:48px;border:0;background:none;flex-direction:column;gap:8px;padding:0;margin:0}
  .menu-toggle span{height:4px;width:100%;background:#222}
  .main-nav{position:fixed;z-index:80;top:110px;left:0;right:0;display:none;max-height:calc(100vh - 110px);overflow-y:auto;flex-direction:column;align-items:stretch;gap:0;margin-left:0;padding:30px 42px;background:#fff;box-shadow:0 12px 20px #0002;font-size:24px}
  .main-nav.open{display:flex}
  .main-nav>a,.nav-dropdown>button{width:100%;height:auto;min-height:74px;padding:18px 0;font-size:24px}
  .dropdown-menu{position:static;width:auto;display:none;padding-left:28px;box-shadow:none;opacity:1;visibility:visible;transform:none;font-size:21px}
  .dropdown-menu a{padding:17px 0}
  .dropdown-menu>a:first-child{display:block}
  .nav-dropdown.open .dropdown-menu{display:block}
  .split-grid,.story-grid,.service-grid,.detail-intro,.disinfection-grid,.uv-card{grid-template-columns:1fr!important;gap:45px}
  .about-image img,.story-photo img,.disinfection-grid>img{height:auto}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .purpose-grid,.team-grid,.values-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .uv-image{width:100%;height:auto}
  .hero{height:620px}
  .hero h1{font-size:45px}
}

/* Texto corrido alinhado nas duas margens, conforme o sistema editorial. */
.testimonial-card>p,
.about-copy>p,
.story-copy>p,
.founder-copy>p{
  text-align:justify;
  text-align-last:left;
  text-justify:inter-word;
  -webkit-hyphens:auto;
  hyphens:auto;
  overflow-wrap:break-word;
}

/* Cabeçalho da apresentação do fundador. */
.founder-copy>.section-kicker{
  display:block;
  width:max-content;
  margin-inline:auto;
  text-align:center;
}
.founder-copy>h3{text-align:center}

/* Títulos dos equipamentos nunca devem sobrepor a descrição. */
.equipment-grid h3{
  width:auto!important;
  max-width:calc(100% - 38px)!important;
  height:auto!important;
  min-height:24px;
}

/* Sistema global de motion inspirado em transições editoriais suaves. */
.motion-progress{position:fixed;z-index:100;top:0;left:0;width:100%;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left center;pointer-events:none;will-change:transform}

.hero-dots button{position:relative;overflow:hidden;background:rgba(255,255,255,.38)!important}
.hero-dots button::after{content:"";position:absolute;inset:0;background:var(--red);transform:scaleX(0);transform-origin:left center}
.hero-dots button.active::after{animation:hero-dot-timer 5.5s linear forwards}
@keyframes hero-dot-timer{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.site-header{transition:height .45s cubic-bezier(.22,1,.36,1),background-color .45s ease,box-shadow .45s ease}
.site-header.is-scrolled{background:rgba(255,255,255,.96);box-shadow:0 8px 30px rgba(0,0,0,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.motion-ready .motion-intro{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms);will-change:opacity,transform}
.motion-ready .motion-intro.is-visible{opacity:1;transform:none}
.motion-ready .motion-reveal{opacity:0;transform:translateY(30px) scale(.99);transition:opacity .78s cubic-bezier(.22,1,.36,1),transform .78s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms);will-change:opacity,transform}
.motion-ready .motion-reveal.is-visible{opacity:1;transform:none;will-change:auto}
.motion-ready .motion-media{opacity:0;clip-path:inset(0 0 12% 0 round 10px);transform:translateY(28px) scale(.985);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1),clip-path 1s cubic-bezier(.22,1,.36,1);will-change:opacity,transform,clip-path}
.motion-ready .motion-media.is-visible{opacity:1;clip-path:inset(0 0 0 0 round 10px);transform:none;will-change:auto}
.service-card,.equipment-grid article,.purpose-grid article,.team-grid article,.values-grid article,.pest-grid article,.uv-card,.contact-cards>a,.contact-cards>div{transition:transform .55s cubic-bezier(.22,1,.36,1),box-shadow .55s cubic-bezier(.22,1,.36,1),border-color .4s ease,background-color .4s ease}
.service-card:hover,.equipment-grid article:hover,.purpose-grid article:hover,.team-grid article:hover,.values-grid article:hover,.uv-card:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(0,0,0,.1)}
.btn,.text-link,.pests-guide-button,.equipment-controls button,.location-tags button{transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease,background-color .35s ease,color .35s ease,border-color .35s ease}
.btn:hover,.pests-guide-button:hover{transform:translateY(-2px)}
.brand img{transition:transform .6s cubic-bezier(.22,1,.36,1)}
.brand:hover img{transform:scale(1.025)}
@media(max-width:600px){
  .motion-ready .motion-reveal{transform:translateY(22px)}
  .motion-ready .motion-media{transform:translateY(20px) scale(.99)}
}
@media(prefers-reduced-motion:reduce){
  .motion-progress{display:none}
  .hero-dots button.active::after{animation:none;transform:scaleX(1)}
  .motion-intro,.motion-reveal,.motion-media{opacity:1!important;transform:none!important;clip-path:none!important}
}
