/* ===== Tokens ===== */
:root{
  --primary: #1065C6;
  --primary-dark: #0B4B96;
  --cyan: #10B8D4;
  --cyan-dark: #087F9A;
  --ice: #EAF8FF;
  --teal: #12A594;
  --amber: #F4A62A;
  --whatsapp: #128C4A;
  --whatsapp-dark: #0E743C;
  --ink: #092B4A;
  --dark-1: #0B3F69;
  --dark-2: #061F38;
  --text: #173C59;
  --text-light: #587388;
  --bg: #F8FCFF;
  --bg-alt: #EDF7FC;
  --border: #CFE5F1;
  --radius-lg: 24px;
  --radius: 16px;
  --radius-sm: 10px;
  --pill: 999px;
  --shadow: 0 10px 30px -10px rgba(38,35,32,.15);
  --shadow-lg: 0 24px 50px -16px rgba(38,35,32,.28);
  --container: 1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{
  font-family:'Sora', sans-serif;
  color:var(--ink);
  line-height:1.15;
  font-weight:700;
}
img{max-width:100%; display:block;}
a{text-decoration:none; color:inherit;}
a:focus-visible,button:focus-visible{outline:3px solid #75B8FF; outline-offset:3px;}
ul{list-style:none;}
svg{display:block;}
.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
.text-accent{color:var(--primary);}
.eyebrow{
  display:inline-block;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--cyan-dark);
  margin-bottom:14px;
}
.section-head{
  max-width:620px;
  margin:0 auto 52px;
  text-align:center;
}
.section-head h2{
  font-size:clamp(1.7rem, 3vw, 2.3rem);
  margin-bottom:14px;
}
.section-head p{color:var(--text-light); font-size:1.02rem;}

/* ===== Buttons ===== */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 28px;
  border-radius:var(--pill);
  font-weight:600;
  font-size:.95rem;
  border:none;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  white-space:nowrap;
}
.btn--primary{
  background:var(--primary);
  color:#fff;
  box-shadow:0 10px 24px rgba(16,101,198,.32);
}
.btn--primary:hover{background:var(--primary-dark); transform:translateY(-2px); box-shadow:0 14px 30px rgba(16,101,198,.4);}
.js-wa-link.btn--primary{
  background:var(--whatsapp);
  box-shadow:0 10px 24px rgba(18,140,74,.3);
}
.js-wa-link.btn--primary:hover{background:var(--whatsapp-dark); box-shadow:0 14px 30px rgba(18,140,74,.36);}
.btn--dark{
  background:var(--ink);
  color:#fff;
}
.btn--dark:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg);}
.btn--outline{
  background:transparent;
  color:#fff;
  border:1.5px solid rgba(255,255,255,.3);
}
.btn--outline:hover{border-color:#fff; transform:translateY(-2px);}
.btn--lg{padding:17px 34px; font-size:1.02rem;}

/* ===== Header ===== */
.header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(248,252,255,.9);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
.header__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 24px;
  gap:20px;
}
.brand{display:flex; align-items:center; gap:10px;}
.brand__logo{width:100%; height:100%;}
.logo-badge{
  display:flex; align-items:center; justify-content:center;
  width:52px; height:52px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 4px 14px rgba(16,101,198,.18), 0 0 0 2px var(--border);
  overflow:hidden;
  flex-shrink:0;
  padding:6px;
}
.logo-badge img{width:100%; height:100%; object-fit:contain;}
.header .logo-badge{
  width:126px;
  height:58px;
  padding:0;
  border-radius:8px;
  background:transparent;
  box-shadow:none;
  overflow:visible;
}
.header .logo-badge img{object-fit:contain; object-position:left center;}
.logo-badge--icon{width:44px; height:44px; padding:0;}
.logo-badge--icon img{height:100%; object-fit:cover; object-position:50% 12%; transform:scale(1.55);}
.brand__fallback{
  font-family:'Sora',sans-serif;
  font-weight:700;
  font-size:1.2rem;
  color:var(--ink);
  align-items:center;
  gap:6px;
}
.brand__tag{
  display:none;
  font-size:.72rem;
  color:var(--text-light);
  border-left:1px solid var(--border);
  padding-left:10px;
  margin-left:2px;
}
.nav{
  display:flex;
  align-items:center;
  gap:30px;
  flex:1;
  justify-content:center;
}
.nav a{
  font-weight:600;
  font-size:.92rem;
  color:var(--ink);
}
.nav a:hover{color:var(--primary);}
.header__cta{flex-shrink:0;}
.menu-btn{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:34px;
  height:34px;
  background:none;
  border:none;
  cursor:pointer;
}
.menu-btn span{
  display:block;
  height:2px;
  background:var(--ink);
  border-radius:2px;
}
.mobile-nav{
  display:none;
  flex-direction:column;
  gap:4px;
  padding:12px 24px 20px;
  border-top:1px solid var(--border);
}
.mobile-nav a{
  padding:12px 0;
  font-weight:600;
  border-bottom:1px solid var(--border);
}
.mobile-nav .btn{margin-top:12px; width:100%;}
.mobile-nav.open{display:flex;}

/* ===== Hero ===== */
.hero{
  position:relative;
  padding:112px 0;
  background:
    linear-gradient(90deg, rgba(4,31,61,.94) 0%, rgba(5,72,132,.78) 35%, rgba(8,130,166,.22) 62%, rgba(8,130,166,0) 80%),
    #4d83bc url('../assets/hero-empresa-desktop.jpg') center/cover no-repeat;
  overflow:hidden;
  text-align:left;
  min-height:670px;
  display:flex;
  align-items:center;
}
.hero > .container{
  max-width:none;
  padding-left:max(64px, calc((100vw - var(--container))/2 + 24px));
  padding-right:24px;
}
.hero__glow{
  position:absolute;
  top:-220px; left:20%;
  transform:translateX(-50%);
  width:900px; height:500px;
  background:radial-gradient(circle, rgba(16,101,198,.35), transparent 70%);
  pointer-events:none;
}
.hero__inner{position:relative; margin:0;}
.hero__content{max-width:640px;}
.badge{
  display:inline-block;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  padding:9px 18px;
  border-radius:var(--pill);
  margin-bottom:26px;
}
.badge--dark{
  background:rgba(255,255,255,.94);
  color:#0B4B96;
  border:1px solid rgba(255,255,255,.75);
  box-shadow:0 8px 24px rgba(4,28,64,.18);
}
.hero h1{
  font-size:clamp(2.15rem, 4.4vw, 3.4rem);
  color:#fff;
  margin-bottom:20px;
}
.hero .text-accent{color:#77E1F2;}
.hero__lead{
  font-size:1.08rem;
  color:rgba(255,255,255,.94);
  margin:0 0 32px;
  max-width:590px;
  text-shadow:0 2px 14px rgba(3,25,58,.28);
}
.hero__tags{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  justify-content:flex-start;
  margin-top:30px;
}
.hero__tags span{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:.88rem;
  color:rgba(255,255,255,.92);
}
.hero__tags svg{color:#67E6F5; flex-shrink:0;}
.hero__cta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  justify-content:flex-start;
  margin-bottom:8px;
}

/* ===== Stats ===== */
.stats{padding:44px 0; background:linear-gradient(110deg, #062B4C 0%, #0B5791 55%, #0A7D9A 100%);}
.stats__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  text-align:center;
}
.stats__item strong{
  display:block;
  font-family:'Sora',sans-serif;
  font-size:1.7rem;
  font-weight:700;
  color:#fff;
  margin-bottom:4px;
}
.stats__item:nth-child(1) strong{color:#77E1F2;}
.stats__item:nth-child(2) strong{color:#BFEFFF;}
.stats__item:nth-child(3) strong{color:#FFD381;}
.stats__item:nth-child(4) strong{color:#7FE2C9;}
.stats__item span{font-size:.82rem; color:rgba(255,255,255,.6);}

/* ===== PMOC spotlight ===== */
.pmoc-spotlight{
  padding:100px 0;
  background:var(--ice) url('../assets/backgrounds/pmoc-pattern.svg') repeat;
}
.pmoc-spotlight__inner{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:64px;
  align-items:start;
}
.pmoc-spotlight__media{position:sticky; top:110px;}
.pmoc-spotlight__media img{
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}
.pmoc-spotlight__content h2{font-size:clamp(1.7rem,3vw,2.2rem); margin-bottom:16px;}
.pmoc-spotlight__content > p{color:var(--text-light); font-size:1.02rem; margin-bottom:24px;}
.pmoc-alert{
  display:flex;
  align-items:flex-start;
  gap:14px;
  background:#FFF4E8;
  border:1px solid #F3D9B6;
  border-radius:var(--radius);
  padding:18px 20px;
  margin-bottom:32px;
}
.pmoc-alert svg{color:#C2760B; flex-shrink:0; margin-top:1px;}
.pmoc-alert p{font-size:.92rem; color:#7A4A0C; line-height:1.6;}
.pmoc-alert strong{color:#5C3608;}
.pmoc-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:36px;
}
.pmoc-item{
  background:rgba(255,255,255,.78);
  border:1px solid rgba(16,184,212,.18);
  border-radius:var(--radius);
  padding:20px 22px;
}
.pmoc-item h4{font-size:.98rem; margin-bottom:6px; color:var(--ink);}
.pmoc-item p{font-size:.86rem; color:var(--text-light);}
.pmoc-subhead{font-size:1.1rem; margin-bottom:16px;}
.pmoc-checklist{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:36px;
}
.pmoc-checklist li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:.94rem;
  font-weight:600;
  color:var(--ink);
}
.pmoc-checklist svg{color:var(--primary); flex-shrink:0; margin-top:3px;}

/* ===== Process ===== */
.process{padding:100px 0;}
.process__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-bottom:44px;
}
.process__item{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:34px 28px;
  box-shadow:var(--shadow);
}
.process__num{
  display:inline-flex;
  width:48px; height:48px;
  border-radius:50%;
  background:var(--bg-alt);
  color:var(--primary);
  align-items:center;
  justify-content:center;
  font-family:'Sora',sans-serif;
  font-weight:700;
  margin-bottom:18px;
}
.process__item h3{margin-bottom:10px; font-size:1.1rem;}
.process__item p{color:var(--text-light); font-size:.92rem;}
.process__cta{text-align:center;}

/* ===== Services ===== */
.services{
  padding:100px 0;
  background-color:#E9F7FC;
  background-image:url('../assets/backgrounds/dot-grid.svg');
  background-repeat:repeat;
}
.services__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px;
}
.service-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:28px;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
  border-top:4px solid var(--primary);
}
.service-card:nth-child(4n + 2){border-top-color:var(--cyan);}
.service-card:nth-child(4n + 3){border-top-color:var(--teal);}
.service-card:nth-child(4n + 4){border-top-color:var(--amber);}
.service-card--pmoc{border:2px solid rgba(16,101,198,.45); box-shadow:0 16px 38px -18px rgba(16,101,198,.42);}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
.service-card__media{
  margin:-28px -28px 20px;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  overflow:hidden;
  height:190px;
}
.service-card__media img{width:100%; height:100%; object-fit:cover;}
.service-card__icon-panel{
  width:72px; height:72px;
  border-radius:var(--radius);
  background:var(--bg-alt);
  color:var(--primary);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:20px;
}
.service-card h3{font-size:1.2rem; margin-bottom:10px;}
.service-card > p{color:var(--text-light); font-size:.92rem; margin-bottom:20px; flex:1;}
.link-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  color:#fff;
  font-size:.9rem;
  line-height:1.25;
  min-height:48px;
  padding:12px 18px;
  border-radius:var(--pill);
  background:var(--whatsapp);
  box-shadow:0 8px 20px rgba(18,140,74,.2);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.link-cta:hover{background:var(--whatsapp-dark); transform:translateY(-2px); box-shadow:0 12px 24px rgba(18,140,74,.26);}
.link-cta .wa-badge{background:rgba(255,255,255,.2);}

/* ===== About ===== */
.about{padding:100px 0;}
.about__inner{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:64px;
  align-items:center;
}
.about__media{
  position:relative;
  width:min(100%, 400px);
  aspect-ratio:1/1;
  justify-self:center;
}
.about__media img{
  width:100%;
  height:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center top;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}
.about__media-badge{
  position:absolute;
  left:-18px; bottom:26px;
  background:var(--ink);
  color:#fff;
  border-radius:var(--radius);
  padding:16px 22px;
  box-shadow:var(--shadow-lg);
}
.about__media-badge strong{
  display:block;
  font-family:'Sora',sans-serif;
  font-size:1.5rem;
  color:#5CA6F2;
}
.about__media-badge span{font-size:.78rem; color:rgba(255,255,255,.7);}
.about__content h2{font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:18px;}
.about__content > p{color:var(--text-light); margin-bottom:26px; font-size:1.02rem;}
.about__list{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:32px;
}
.about__list li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-weight:600;
  font-size:.95rem;
  color:var(--ink);
}
.about__list svg{color:var(--primary); flex-shrink:0; margin-top:2px;}
.about__cta-row{display:flex; align-items:center; gap:20px; flex-wrap:wrap;}
.about__iso{height:56px; width:auto;}

/* ===== Clients / Partners carousel ===== */
.clients{padding:80px 0; background:var(--bg-alt);}
.clients--hero{
  padding:58px 0 64px;
  background:linear-gradient(180deg,#fff 0%,#F0FAFF 100%);
  border-bottom:1px solid var(--border);
  overflow:hidden;
}
.section-head--compact{margin-bottom:28px;}
.section-head--compact h2{font-size:clamp(1.45rem,2.5vw,2rem);}
.section-head--compact p{max-width:540px; margin:0 auto;}
.partners-carousel{
  position:relative;
  width:100%;
}
.partners-viewport{
  overflow:hidden;
  padding:8px 0 14px;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.partners-track{
  display:flex;
  align-items:center;
  width:max-content;
  animation:partners-marquee 34s linear infinite;
}
.partners-group{display:flex; align-items:center; gap:18px; padding-right:18px;}
.partners-viewport:hover .partners-track,
.partners-viewport:focus-within .partners-track{animation-play-state:paused;}
.partner-card{
  width:190px;
  height:106px;
  flex:0 0 190px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:14px 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 26px -18px rgba(9,43,74,.32);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.partner-card:hover{transform:translateY(-4px); border-color:rgba(16,184,212,.5); box-shadow:0 15px 34px -18px rgba(8,127,154,.42);}
.partner-card img{width:100%; height:76px; object-fit:contain;}
@keyframes partners-marquee{to{transform:translateX(-50%);}}

/* ===== CTA banner ===== */
.cta-banner{padding:100px 0;}
.cta-banner__inner{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:48px;
  background:
    linear-gradient(160deg, var(--dark-1), var(--dark-2)),
    url('../assets/backgrounds/hero-pattern.svg');
  background-repeat:no-repeat, repeat;
  border-radius:var(--radius-lg);
  padding:56px;
  align-items:center;
}
.cta-banner h2{color:#fff; font-size:clamp(1.7rem,3vw,2.3rem); margin-bottom:16px;}
.cta-banner__content > p{color:rgba(255,255,255,.72); margin-bottom:26px;}
.cta-banner__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:32px;
}
.cta-banner__list li{
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.85);
  font-size:.92rem;
  font-weight:600;
}
.cta-banner__list svg{color:#5CA6F2; flex-shrink:0;}
.cta-banner__card{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  padding:28px;
}
.cta-banner__card .logo-badge{width:48px; height:48px; margin-bottom:14px;}
.cta-banner__desc{color:rgba(255,255,255,.6); font-size:.88rem; margin-bottom:20px;}
.cta-banner__row{
  display:grid;
  grid-template-columns:96px minmax(0,1fr);
  align-items:start;
  gap:16px;
  padding:12px 0;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:.88rem;
}
.cta-banner__row span{color:rgba(255,255,255,.55);}
.cta-banner__row strong{color:#fff; font-weight:600; text-align:right; overflow-wrap:anywhere;}

/* ===== Footer ===== */
.footer{
  background-color:#061F38;
  background-image:url('../assets/backgrounds/hero-pattern.svg');
  background-repeat:repeat;
  color:rgba(255,255,255,.6);
  padding:64px 0 0;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:48px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer__brand .logo-badge{width:64px; height:64px; margin-bottom:16px;}
.footer__brand p{font-size:.88rem; line-height:1.7; max-width:280px;}
.footer__col h4{color:#fff; font-size:1rem; margin-bottom:18px; font-family:'Sora',sans-serif;}
.footer__col nav{display:flex; flex-direction:column; gap:10px;}
.footer__col a{font-size:.9rem; display:block; margin-bottom:10px;}
.footer__col a:hover{color:#fff;}
.footer__address{font-size:.85rem; line-height:1.6; margin-bottom:14px; max-width:220px;}
.footer__social{display:flex; gap:16px; margin-top:8px;}
.footer__bottom{
  text-align:center;
  padding:22px 0;
  font-size:.8rem;
  color:rgba(255,255,255,.4);
}

/* ===== WhatsApp badge (icon used inside buttons/links) ===== */
.wa-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px; height:20px;
  border-radius:50%;
  background:#25D366;
  flex-shrink:0;
}
.wa-badge svg{width:11px; height:11px; display:block;}
.footer__contact-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

/* ===== Avaliações (carrossel) ===== */
.reviews{
  padding:92px 0 96px;
  background:#EAF4FE;
}
.reviews__head{margin-bottom:0;}
.reviews__head h2{font-size:clamp(1.8rem,3vw,2.45rem);}
.reviews__stars-top{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-bottom:14px;
  color:var(--text-light);
  font-size:.9rem;
  font-weight:600;
}
.reviews__stars-top-icons{color:#F5A623; letter-spacing:1px; font-size:1rem;}
.reviews__stars-top strong{color:var(--ink);}

.reviews__layout{
  display:grid;
  grid-template-columns:200px minmax(0,1fr);
  gap:44px;
  align-items:center;
  margin-top:44px;
}
.reviews__summary{text-align:center;}
.reviews__summary-tag{
  display:block;
  font-family:'Sora',sans-serif;
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:.02em;
  color:var(--ink);
  margin-bottom:10px;
}
.reviews__summary-stars{color:#F5A623; font-size:1.4rem; letter-spacing:3px; margin-bottom:8px;}
.reviews__summary-count{color:var(--text-light); font-size:.82rem; margin-bottom:16px;}
.reviews__summary-google{display:inline-block;}

.reviews__carousel{position:relative;}
.reviews__viewport{
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding:6px 4px 10px;
}
.reviews__viewport::-webkit-scrollbar{display:none;}
.reviews__track{display:flex; gap:20px;}

.review-card{
  flex:0 0 320px;
  min-width:0;
  min-height:200px;
  scroll-snap-align:start;
  background:rgba(255,255,255,.96);
  border:1px solid #D2E3EF;
  border-radius:18px;
  padding:24px;
  box-shadow:0 14px 28px -22px rgba(9,43,74,.46);
  display:flex;
  flex-direction:column;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.review-card:hover{
  transform:translateY(-4px);
  border-color:#A8D7EC;
  box-shadow:0 20px 36px -24px rgba(8,127,154,.48);
}
.review-card__top{display:flex; align-items:center; gap:12px; margin-bottom:12px;}
.review-card__avatar{
  width:44px;
  height:44px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-family:'Sora',sans-serif;
  font-weight:700;
  font-size:.86rem;
  flex-shrink:0;
}
.review-card__avatar--blue{background:#468FE2;}
.review-card__avatar--cyan{background:#00A8D7;}
.review-card__avatar--teal{background:#15A18F;}
.review-card__avatar--navy{background:#3D55BD;}
.review-card__avatar--orange{background:#E28A33;}
.review-card__avatar--coral{background:#D9566B;}
.review-card__who{flex:1; min-width:0;}
.review-card__who strong{display:block; color:var(--ink); font-size:.92rem; line-height:1.25;}
.review-card__who span{display:block; margin-top:3px; color:var(--text-light); font-size:.72rem;}
.review-card__top .google-g{flex-shrink:0;}
.review-card__stars{color:#F5A623; font-size:.92rem; letter-spacing:1px; margin-bottom:10px;}
.review-card p{color:#244A66; font-size:.86rem; line-height:1.6; flex:1;}

.reviews__arrow{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  border-radius:50%;
  background:#fff;
  border:1px solid var(--border);
  box-shadow:0 8px 20px -10px rgba(9,43,74,.4);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ink);
  cursor:pointer;
  z-index:5;
  transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.reviews__arrow:hover:not(:disabled){background:var(--primary); color:#fff; border-color:var(--primary);}
.reviews__arrow:active:not(:disabled){transform:translateY(-50%) scale(.94);}
.reviews__arrow:disabled{opacity:.35; cursor:default;}
.reviews__arrow--prev{left:-8px;}
.reviews__arrow--next{right:-8px;}

.reviews__dots{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:26px;}
.reviews__dot{
  width:8px;
  height:8px;
  padding:0;
  border:none;
  border-radius:5px;
  background:#C7D9E4;
  cursor:pointer;
  transition:width .25s ease,background .25s ease;
}
.reviews__dot.is-active{width:24px; background:var(--primary);}

/* ===== Popup de oferta ===== */
.popup-overlay{
  position:fixed; inset:0;
  background:rgba(23,20,15,.72);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  z-index:300;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s ease, visibility .3s ease;
}
.popup-overlay[hidden]{display:none !important;}
.popup-overlay.is-open{opacity:1; visibility:visible;}
.popup-card{
  background:#fff;
  border-radius:var(--radius-lg);
  max-width:420px;
  width:100%;
  overflow:hidden;
  overflow-y:auto;
  max-height:90vh;
  box-shadow:var(--shadow-lg);
  position:relative;
  transform:translateY(20px) scale(.97);
  transition:transform .3s ease;
}
.popup-overlay.is-open .popup-card{transform:translateY(0) scale(1);}
.popup-close{
  position:absolute; top:14px; right:14px;
  width:34px; height:34px;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  border:none;
  cursor:pointer;
  font-size:1rem;
  z-index:2;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}
.popup-card__media{position:relative; height:180px;}
.popup-card__media img{width:100%; height:100%; object-fit:cover;}
.popup-card__badge{
  position:absolute; left:16px; bottom:-14px;
  background:var(--primary);
  color:#fff;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.06em;
  padding:8px 16px;
  border-radius:var(--pill);
  box-shadow:0 8px 18px rgba(16,101,198,.35);
}
.popup-card__body{padding:32px 28px 28px;}
.popup-card__body h3{font-family:'Sora', sans-serif; font-size:1.5rem; margin-bottom:10px; color:var(--ink);}
.popup-card__body > p{color:var(--text-light); font-size:.92rem; margin-bottom:18px;}
.popup-card__list{display:flex; flex-direction:column; gap:8px; margin-bottom:24px;}
.popup-card__list li{font-size:.85rem; color:var(--ink); font-weight:600; padding-left:22px; position:relative;}
.popup-card__list li::before{content:"✓"; position:absolute; left:0; color:var(--primary); font-weight:700;}
.popup-card__cta{width:100%; margin-bottom:10px;}
.popup-card__dismiss{
  display:block;
  width:100%;
  text-align:center;
  background:none;
  border:none;
  cursor:pointer;
  color:var(--text-light);
  font-size:.86rem;
  font-weight:600;
  padding:6px;
}
.popup-card__dismiss:hover{color:var(--ink);}

/* ===== WhatsApp chat widget ===== */
.chat-widget{
  position:fixed;
  bottom:24px; right:24px;
  z-index:200;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:16px;
}
.whatsapp-float{
  width:60px; height:60px;
  border-radius:50%;
  background:#25D366;
  border:none;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(37,211,102,.5);
  animation:pulse 2.4s infinite;
  flex-shrink:0;
}
@keyframes pulse{
  0%{box-shadow:0 10px 30px rgba(37,211,102,.5), 0 0 0 0 rgba(37,211,102,.5);}
  70%{box-shadow:0 10px 30px rgba(37,211,102,.5), 0 0 0 16px rgba(37,211,102,0);}
  100%{box-shadow:0 10px 30px rgba(37,211,102,.5), 0 0 0 0 rgba(37,211,102,0);}
}
.chat-bubble{
  width:300px;
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  padding:20px;
  position:relative;
  transform:translateY(12px) scale(.96);
  opacity:0;
  visibility:hidden;
  transition:transform .25s ease, opacity .25s ease, visibility .25s ease;
  transform-origin:bottom right;
}
.chat-bubble.is-open{transform:translateY(0) scale(1); opacity:1; visibility:visible;}
.chat-bubble__close{
  position:absolute; top:10px; right:10px;
  width:26px; height:26px;
  border-radius:50%;
  border:none;
  background:var(--bg-alt);
  cursor:pointer;
  font-size:.75rem;
  display:flex; align-items:center; justify-content:center;
  color:var(--text-light);
}
.chat-bubble__head{display:flex; align-items:center; gap:12px; margin-bottom:14px; padding-right:18px;}
.chat-bubble__head strong{display:block; font-size:.92rem; color:var(--ink);}
.chat-bubble__head span{font-size:.72rem; color:#25D366; font-weight:600;}
.chat-bubble__msg{
  background:var(--bg-alt);
  border-radius:var(--radius);
  padding:12px 14px;
  font-size:.86rem;
  color:var(--ink);
  line-height:1.5;
  margin-bottom:14px;
}
.chat-bubble__cta{
  width:100%;
  background:#25D366;
  color:#fff;
  box-shadow:0 8px 20px rgba(37,211,102,.35);
}
.chat-bubble__cta:hover{background:#1EBE5A;}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .services__grid{grid-template-columns:1fr 1fr;}
  .about__inner{grid-template-columns:1fr; gap:44px;}
  .about__media{max-width:420px; margin:0 auto;}
  .cta-banner__inner{grid-template-columns:1fr; padding:40px;}
  .footer__grid{grid-template-columns:1fr 1fr;}
  .brand__tag{display:none !important;}
  .pmoc-spotlight__inner{grid-template-columns:1fr; gap:40px;}
  .pmoc-spotlight__media{position:static; max-width:320px; margin:0 auto;}
  .reviews__layout{grid-template-columns:minmax(0,1fr); gap:24px;}
  .reviews__summary{display:flex; align-items:center; justify-content:center; gap:14px;}
  .reviews__summary-stars,.reviews__summary-count{margin-bottom:0;}
  .reviews__summary-tag{margin-bottom:0;}
}
@media (max-width:768px){
  .nav{display:none;}
  .header__cta{display:none;}
  .menu-btn{display:flex;}
  .process__grid{grid-template-columns:1fr;}
  .services__grid{grid-template-columns:1fr;}
  .stats__grid{grid-template-columns:1fr 1fr;}
  .footer__grid{grid-template-columns:1fr; text-align:center;}
  .footer__brand p{margin:0 auto;}
  .footer__address{margin:0 auto 14px;}
  .footer__social{justify-content:center;}
  .about__media-badge{left:12px;}
  .about__cta-row{justify-content:center;}
  .cta-banner__inner{padding:28px;}
  .pmoc-grid{grid-template-columns:1fr;}
  .hero{
    min-height:780px;
    padding:310px 0 46px;
    background:
      linear-gradient(180deg, rgba(4,30,68,.02) 0%, rgba(4,30,68,.18) 36%, rgba(4,30,68,.84) 61%, rgba(4,28,64,.98) 100%),
      #4d83bc url('../assets/hero-empresa-mobile.jpg') center top/cover no-repeat;
    text-align:center;
    align-items:flex-end;
  }
  .hero > .container{padding-left:24px; padding-right:24px;}
  .hero__glow{left:50%;}
  .hero__inner{margin:0 auto; max-width:100%;}
  .hero__content{max-width:100%;}
  .hero h1{font-size:clamp(2rem,9vw,2.65rem);}
  .hero__lead{margin:0 auto 24px; font-size:1rem; line-height:1.55;}
  .hero__tags{justify-content:center; gap:10px 16px; margin-top:24px;}
  .hero__tags span{font-size:.8rem;}
  .badge{margin-bottom:18px; padding:8px 14px; font-size:.66rem;}
  .hero__cta{flex-direction:column; align-items:stretch; justify-content:center;}
  .hero__cta .btn{width:100%; white-space:normal; text-align:center; line-height:1.3;}
  .reviews{padding:72px 0 76px;}
  .reviews__summary{flex-direction:column; gap:6px;}
  .reviews__summary-stars{margin-bottom:2px;}
  .reviews__summary-count{margin-bottom:6px;}
  .review-card{flex-basis:82vw; min-height:0;}
  .reviews__arrow{width:34px; height:34px;}
  .reviews__arrow--prev{left:2px;}
  .reviews__arrow--next{right:2px;}
  .popup-card{max-width:340px;}
  .popup-card__body{padding:26px 22px 22px;}
  .chat-bubble{width:min(300px, calc(100vw - 48px));}
  .chat-widget{right:16px; bottom:16px;}
  .whatsapp-float{width:54px; height:54px;}
}
@media (max-width:480px){
  .hero{min-height:760px; padding-top:290px;}
  .hero__tags span:nth-child(3){display:none;}
  .btn--lg{padding:15px 20px; font-size:.94rem;}
  .stats__grid{grid-template-columns:1fr 1fr;}
  .header__inner{padding-top:8px; padding-bottom:8px;}
  .header .logo-badge{width:108px; height:52px;}
  .partners-track{animation-duration:28s;}
  .partners-group{gap:12px; padding-right:12px;}
  .partner-card{width:152px; flex-basis:152px; height:94px; padding:12px 14px;}
  .partner-card img{height:66px;}
  .cta-banner__row{grid-template-columns:82px minmax(0,1fr); gap:12px; font-size:.82rem;}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
  .partners-viewport{overflow-x:auto; -webkit-mask-image:none; mask-image:none;}
  .partners-track{animation:none; padding:0 24px;}
  .partners-group[aria-hidden="true"]{display:none;}
}
