/* Final interaction, density and mobile production pass. */
:root { --content-width:1300px; }
.site-header { padding-right:max(24px,calc((100vw - var(--content-width))/2)); padding-left:max(24px,calc((100vw - var(--content-width))/2)); }
.hero { grid-template-columns:minmax(0,1fr) 540px; gap:64px; min-height:680px; padding-right:max(24px,calc((100vw - var(--content-width))/2)); padding-left:max(24px,calc((100vw - var(--content-width))/2)); }
.hero-image { min-height:525px; height:525px; }
.section-wrap,.contact { max-width:var(--content-width); }
.about { grid-template-columns:540px minmax(0,1fr); gap:94px; }
.about-image { height:535px; }
.services,.metrics { padding-right:max(24px,calc((100vw - var(--content-width))/2)); padding-left:max(24px,calc((100vw - var(--content-width))/2)); }
.service-grid,.footer-inner,.footer-bottom { max-width:var(--content-width); }
.footer-inner,.footer-bottom { margin-right:auto; margin-left:auto; }
.about h2,.services h2,.contact h2 { font-size:42px; }
.about-copy>p:not(.eyebrow) { font-size:15px; }
.about li,.service-card p,.section-heading>p,.contact-heading>p:last-child { font-size:14px; }
.service-card h3 { font-size:18px; }
.service-card { transform:translateZ(0); will-change:transform; transition:transform 360ms cubic-bezier(.22,1,.36,1), box-shadow 360ms cubic-bezier(.22,1,.36,1), border-color 260ms ease; }
.service-media { transform:translateZ(0); transform-origin:center; will-change:transform,filter; transition:transform 560ms cubic-bezier(.16,1,.3,1),filter 360ms ease; }
.service-card h3,.service-card p,.service-card button { transition:transform 340ms cubic-bezier(.22,1,.36,1),color 240ms ease; }
@media (hover:hover) and (pointer:fine) {
  .service-card:hover { transform:translate3d(0,-8px,0); border-color:#E7DDE0; box-shadow:0 22px 42px rgba(20,24,31,.12); }
  .service-card:hover .service-media { transform:scale(1.035); filter:saturate(1.05) contrast(1.02); }
  .service-card:hover h3,.service-card:hover p,.service-card:hover button { transform:translateX(3px); }
  .service-card:hover button { color:#6E2A3A; }
}
.whatsapp-float { position:fixed; z-index:30; right:28px; bottom:28px; width:59px; height:59px; display:grid; place-items:center; border-radius:50%; color:#FFF; background:#25D366; box-shadow:0 12px 27px rgba(37,211,102,.35); text-decoration:none; transition:transform 260ms cubic-bezier(.22,1,.36,1),box-shadow 260ms ease,background 260ms ease; }
.whatsapp-float:before { content:''; position:absolute; inset:-6px; border:1px solid rgba(37,211,102,.35); border-radius:50%; animation:whatsappPulse 2.2s ease-out infinite; }
.whatsapp-float svg { position:relative; width:31px; height:31px; }
.whatsapp-float:hover { color:#FFF; background:#1EBA5A; transform:translateY(-5px) scale(1.06); box-shadow:0 17px 34px rgba(37,211,102,.43); }
@keyframes whatsappPulse { 0%{transform:scale(.82);opacity:.85} 75%,100%{transform:scale(1.3);opacity:0} }
.services { max-width:none; padding:126px max(24px,calc((100vw - 1530px)/2)) 142px; }
.services .service-grid { max-width:1530px; gap:28px; }
.services .service-card { padding-bottom:28px; border-radius:16px; }
.services .service-media { height:220px; }
.services .service-card h3 { margin:22px 25px 10px; font-size:20px; }
.services .service-card p { min-height:46px; margin:0 25px 20px; font-size:14px; line-height:1.7; }
.services .service-card button { margin:0 25px; font-size:13px; }
.contact-copy,.contact-form { min-height:510px; }
.contact-list { gap:15px; }
.contact-list a { grid-template-columns:128px 1fr; }
.contact-list i { display:inline-grid; min-width:29px; margin-right:7px; place-items:center; border-radius:10px; color:#6E2A3A; background:#F4ECEE; font-size:10px; font-style:normal; font-weight:800; line-height:19px; text-align:center; vertical-align:middle; }
@media (max-width:1080px) {
  :root { --content-width:calc(100vw - 80px); }
  .hero { grid-template-columns:minmax(0,1fr) 43%; padding-right:40px;padding-left:40px; }
  .about { grid-template-columns:1fr 1fr; gap:56px; }
  .services { padding-right:40px; padding-left:40px; }
  .services .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .services .service-media { height:205px; }
}
@media (max-width:760px) {
  :root { --content-width:100%; }
  .site-header { padding:0 20px; }
  .site-header nav { z-index:20; top:68px; padding:14px 20px 18px; background:#FFF; border-top:1px solid #F0EEEE; box-shadow:0 14px 28px rgba(20,24,31,.1); }
  .site-header nav > a:not(.nav-contact),.site-header .language,.site-header .nav-contact { min-height:46px; padding:0; font-size:15px; }
  .site-header .language { gap:9px; border:0; }
  .site-header .nav-contact { border:0; }
  .hero { grid-template-columns:1fr; gap:45px; min-height:0; padding:52px 22px 70px; }
  .hero h1 { font-size:38px; }
  .hero .lede { font-size:15px; }
  .hero-image { min-height:352px; height:352px; }
  .about,.contact { padding:78px 22px; }
  .about { grid-template-columns:1fr; gap:43px; }
  .about-image { height:365px; }
  .about h2,.services h2,.contact h2 { font-size:30px; }
  .services { padding:76px 22px; }
  .service-grid { gap:16px; }
  .service-card { border-radius:13px; }
  .services .service-grid { grid-template-columns:1fr; }
  .services .service-media { height:205px; }
  .service-card h3 { font-size:18px; }
  .service-card p { font-size:14px; }
  .services .service-card h3 { margin:20px 22px 9px; font-size:19px; }
  .services .service-card p { margin:0 22px 18px; }
  .services .service-card button { margin:0 22px; }
  .metrics { padding:57px 22px; }
  .metric-values { gap:28px 12px; }
  .contact-panels { gap:18px; }
  .contact-copy,.contact-form { padding:26px 22px; }
  .contact-copy,.contact-form { min-height:0; }
  .contact-list a { grid-template-columns:112px 1fr; }
  .whatsapp-float { right:18px; bottom:18px; width:55px; height:55px; }
}
@media (prefers-reduced-motion:reduce) { .service-card,.service-media,.service-card h3,.service-card p,.service-card button,.whatsapp-float { transition:none; } .whatsapp-float:before { animation:none; } }
