/* Shared responsive layer for all public PT/EN pages. */
/* Keep intrinsic aspect ratios without overriding component image sizes. */
:where(img[width][height]) { width: auto; height: auto; }
:root {
  --body-font: 'Rubik', Arial, Helvetica, sans-serif;
  --heading: 'Nunito', Arial, Helvetica, sans-serif;
  --heading-1: 'Arimo', Arial, Helvetica, sans-serif;
  --heading-2: 'Oswald', Arial, Helvetica, sans-serif;
  --heading-3: 'Jost', Arial, Helvetica, sans-serif;
  --heading-4: 'Poppins', Arial, Helvetica, sans-serif;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.xr-mobile-toggle { display: none; }
.xr-mobile-dialog { box-sizing: border-box; }
.xr-mobile-dialog:not([open]) { display: none; }
.xr-mobile-dialog[open] {
  position: fixed; inset: 0 0 0 auto; margin: 0; width: min(90vw, 380px);
  max-width: 100%; height: 100%; height: 100dvh; max-height: 100dvh;
  padding: max(20px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) 22px;
  border: 0; border-left: 1px solid #ffffff24; color: #fff; background: #0c0b0e;
  overflow-y: auto; overscroll-behavior: contain; font: 15px/1.5 Arial, Helvetica, sans-serif;
}
.xr-mobile-dialog::backdrop { background: #000b; backdrop-filter: blur(5px); }
.xr-mobile-dialog-head { position: sticky; top: 0; z-index: 1; background: #0c0b0e; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 24px; }
.xr-mobile-dialog-brand { display: flex; align-items: center; min-height: 44px; }
.xr-mobile-dialog-brand img { width: 138px; height: auto; }
.xr-mobile-close { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; color: white; border: 1px solid #ffffff30; border-radius: 50%; background: #ffffff08; cursor: pointer; }
.xr-mobile-close svg { width: 19px; height: 19px; }
.xr-mobile-dialog nav ul { margin: 0; padding: 0; list-style: none; }
.xr-mobile-dialog nav a { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 53px; padding: 14px 0; border-bottom: 1px solid #ffffff17; color: #eeeaf0; text-decoration: none; font-size: 16px; font-weight: 600; }
.xr-mobile-dialog nav a[aria-current="page"] { color: #ff248e; }
.xr-mobile-dialog nav a span { color: #a190a3; font-size: 14px; }
.xr-mobile-dialog-contact { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 13px 16px; margin-top: 26px; background: #ed167e; border-radius: 5px; color: #fff !important; text-align: center; text-decoration: none; font-size: 14px; font-weight: 600; }
.xr-mobile-dialog-language { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; color: #cbbccd; font-size: 13px; }
.xr-mobile-dialog :focus-visible, .xr-mobile-toggle:focus-visible { outline: 2px solid #ff80bd; outline-offset: 4px; }
html.xr-mobile-menu-open, html.xr-mobile-menu-open body { overflow: hidden !important; overscroll-behavior: none; }
body.xr-mobile-ready .scrollup { display: none !important; }
body.xr-mobile-ready.xr-page-scrolled .scrollup { display: grid !important; place-items: center; }

@media (max-width: 1024px) {
  .xr-mobile-ready #preloader { display: none !important; }
  .xr-mobile-ready .en-hamburger, .xr-mobile-ready .xr-hamburger,
  .xr-mobile-ready .mobile_menu, .xr-mobile-ready .en-mobile-nav,
  .xr-mobile-ready .xr-mobile-nav, .xr-mobile-ready .en-mobile-nav-backdrop,
  .xr-mobile-ready .xr-mobile-nav-backdrop { display: none !important; }
  .xr-mobile-ready .en-nav, .xr-mobile-ready .ori-main-navigation-area,
  .xr-mobile-ready .en-cta-wa, .xr-mobile-ready .header-whatsapp-btn { display: none !important; }
  .xr-mobile-ready .en-header, .xr-mobile-ready .lp-header,
  .xr-mobile-ready .pe-header, .xr-mobile-ready .lm-header,
  .xr-mobile-ready .ori-header-section {
    position: fixed; top: 0; left: 0; right: 0; width: 100%; min-height: 68px;
    padding: max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) 10px max(16px, env(safe-area-inset-left));
    background: #080809f5; border-bottom: 1px solid #ffffff14; z-index: 9990;
  }
  .xr-mobile-ready header, .xr-mobile-ready .en-header-right,
  .xr-mobile-ready .lm-header-inner, .xr-mobile-ready .ori-header-content { gap: 10px; }
  .xr-mobile-ready header { display: flex; align-items: center; justify-content: space-between; }
  .xr-mobile-ready header > .lm-container { width: 100%; padding: 0; }
  .xr-mobile-ready .lm-header-inner, .xr-mobile-ready .ori-header-content { display: flex; align-items: center; width: 100%; }
  .xr-mobile-ready .ori-header-content-area { width: 100%; padding: 0; }
  .xr-mobile-ready .ori-header-section .ori-header-content { padding: 0; }
  .xr-mobile-ready .ori-header-section .brand-logo { position: static !important; transform: none !important; width: auto; margin: 0 auto 0 0 !important; }
  .xr-mobile-ready .en-header-right { display: flex; align-items: center; flex-shrink: 0; }
  .xr-mobile-ready header a:has(img) { display: flex; align-items: center; min-height: 44px; flex-shrink: 1; }
  .xr-mobile-ready header img { width: auto; max-width: 140px; max-height: 36px; height: auto; object-fit: contain; }
  .xr-mobile-ready header .brand-logo, .xr-mobile-ready .lm-logo { min-width: 0; margin-right: auto; }
  .xr-mobile-ready header .lang-switcher, .xr-mobile-ready header .en-lang-btn, .xr-mobile-ready header .pe-lang {
    display: inline-flex; align-items: center; justify-content: center; min-width: 68px; min-height: 44px;
    margin-left: auto; padding: 8px 10px; font-size: 11px; letter-spacing: .06em; flex-shrink: 0;
  }
  .xr-mobile-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 1px solid #ffffff21; border-radius: 5px; color: #fff; background: transparent; cursor: pointer; margin-left: auto; }
  .xr-mobile-toggle span { display: block; width: 21px; height: 2px; background: currentColor; border-radius: 2px; }
  .xr-mobile-ready header .lp-header-cta, .xr-mobile-ready header .pe-header-cta, .xr-mobile-ready header .lm-header-cta { display: none; }
  .xr-mobile-ready :is(section[id], main[id]) { scroll-margin-top: calc(84px + env(safe-area-inset-top)); }
  .xr-mobile-ready .project-info-box { position: static; }
  .xr-mobile-ready .mfp-bg { z-index: 10020; }
  .xr-mobile-ready .mfp-wrap { z-index: 10021; }
}

@media (max-width: 768px) {
  html { overflow-x: clip; }
  body { min-width: 0; }
  .container, .lm-container { padding-left: max(20px, env(safe-area-inset-left)); padding-right: max(20px, env(safe-area-inset-right)); }
  :is(.row, .xr-bento-grid, .xrp-product-top, .xrp-metrics, .lm-hero-grid, .en-header-right) > * { min-width: 0; }
  :is(h1,h2,h3,h4,p,li,a,button,label,.value) { overflow-wrap: anywhere; }
  :is(button, a, input, select, textarea) { touch-action: manipulation; }
  :is(button,[role="button"]):focus-visible, a:focus-visible { outline: 2px solid #ff80bd; outline-offset: 3px; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { max-width: 100%; font-size: 16px !important; min-height: 48px; }
  img, video { max-width: 100%; }
  video { height: auto; }
  .xr-responsive-embed { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; }
  .xr-scroll-table { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
  .cursor, .cursor-follower, .mouse-cursor { display: none !important; }

  /* Headings and first-screen spacing, including the English home. */
  .en-hero { padding: 110px 0 52px; min-height: auto; }
  .en-hero h1 { font-size: clamp(26px, 7.8vw, 46px); line-height: 1.1; letter-spacing: -.04em; }
  .en-hero p { font-size: 15px; line-height: 1.75; margin-bottom: 26px; }
  .en-eyebrow, .lp-eyebrow, .case-eyebrow, .pe-eyebrow, .xrp-eyebrow { max-width: 100%; font-size: 10px; letter-spacing: .1em; white-space: normal; }
  .lp-hero, .pe-hero, .lm-hero { padding-top: 112px; padding-bottom: 52px; }
  .lp-hero h1, .pe-hero h1, .lm-hero-headline { font-size: clamp(28px, 8.2vw, 44px); line-height: 1.12; letter-spacing: -.035em; }
  .case-hero { min-height: 440px; min-height: min(72svh, 550px); padding: 110px 0 36px; }
  .case-hero h1 { font-size: clamp(30px, 8.4vw, 44px); line-height: 1.12; }
  .case-hero-meta { gap: 12px; margin-top: 20px; }
  .case-tags { gap: 7px; }
  .case-tag { font-size: 10px; padding: 6px 10px; }
  .case-hero-glow, .lp-hero-glow { max-width: 100vw; }
  .ori-slider-text h1 { font-size: clamp(30px, 8.8vw, 46px); line-height: 1.15; }
  .ori-slider-text h1 i { font-size: .75em; }
  .ori-breadcrumbs-section { padding: 115px 0 45px; }
  .ori-breadcrumb-content { padding: 0; }
  .ori-breadcrumb-content h1 { font-size: clamp(30px, 8.5vw, 46px); line-height: 1.15; }
  .ori-breadcrumb-content li { font-size: 13px; }
  .xr-hero { padding-top: calc(80px + env(safe-area-inset-top)); }
  .xr-hero-actions { display: grid; grid-template-columns: 1fr; width: 100%; max-width: 380px; }
  .xr-hero-actions a { width: 100%; min-height: 50px; justify-content: space-between; padding: 0 18px; font-size: 13px; }
  .xr-hero-signature { font-size: clamp(11px,3vw,14px); letter-spacing: .2em; }
  .xr-hero-scene { height: clamp(275px, 78vw, 350px); }
  .xr-hero-mode { min-height: 46px; font-size: 10px; }
  .xr-hero-mode span { font-size: 9px; }
  .xr-hero-controls { width: 100%; justify-content: space-between; }
  .xr-hero-pause { flex-shrink: 0; }

  /* Comfortable spacing and card layouts. */
  .lp-section, .pe-section, .en-section, .lm-services, .lm-cases, .lm-process, .lm-faq,
  .xr-diferenciais-section, .xr-bento-section, .xr-cases-destaque-section, .xr-faq-section,
  .ori-portfolio-details-section, .ori-blog-feed-section { padding-top: 52px; padding-bottom: 52px; }
  .lp-section-title, .pe-title, .en-section h2, .lm-section-title, .xrp-h2,
  .ori-inner-section-title h2, .xr-bento-lead h2, .xr-cases-destaque-header h2 { font-size: clamp(27px,7.4vw,36px); line-height: 1.18; }
  .lp-section-title[style] { font-size: clamp(27px,7.4vw,34px) !important; }
  .case-desc-text, .lp-section p, .pe-sub, .lm-hero-sub { font-size: 15px; line-height: 1.8; }
  .info-card, .project-info-box { padding: 25px 20px; border-radius: 14px; }
  .info-card p, .solutions-list li { font-size: 14px; line-height: 1.75; }
  .project-info-row { align-items: start; gap: 12px; }
  .project-info-row .label { flex: 0 0 30%; font-size: 11px; }
  .project-info-row .value { flex: 1; min-width: 0; text-align: right; font-size: 13px; line-height: 1.6; }
  .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .gallery-item { border-radius: 10px; }
  .case-numbers { padding: 30px 0; }
  .case-number-item { padding: 18px 6px; }
  .case-number-item .num { font-size: clamp(28px,8vw,38px); }
  .case-number-item p { font-size: 10px; line-height: 1.6; letter-spacing: .05em; color: #b2aeb5; }
  .en-numbers { padding: 30px 0; }
  .en-number-item { padding: 18px 6px; }
  .en-number-item .num { font-size: clamp(32px,9vw,44px); }
  .en-number-item p { font-size: 10px; line-height: 1.6; letter-spacing: .04em; color: #b2aeb5; }
  .en-marquee-section { padding: 36px 0; }
  .lp-logos-wrapper, .en-marquee-wrapper { mask-image: none; -webkit-mask-image: none; }
  .lp-logos-track, .en-marquee-track { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 16px; width: 100%; animation: none; transform: none; }
  .lp-logo-item, .en-marquee-item { min-width: 0; padding: 0; display: flex; justify-content: center; align-items: center; }
  .lp-logo-item img, .en-marquee-item img { max-width: 100%; width: auto; height: 30px; object-fit: contain; opacity: .8; }
  .xr-logo-duplicate { display: none; }
  .xr-bento-cell, .xr-bento-lead, .xrp-product-info, .xrp-product-side { min-width: 0; }
  .xr-bento-media { min-height: 240px; }
  .xr-bento-lead { padding: 26px 22px; }
  .xr-bento-lead p { font-size: 14px; line-height: 1.75; }
  .xr-bento-ctas { gap: 14px; flex-wrap: wrap; }
  .xr-featured-case-content { padding: 24px 20px; }
  .xr-featured-case-content h3 { font-size: clamp(26px,7vw,36px); }
  .ori-about-play-top-content { flex-direction: column; align-items: start !important; gap: 22px; }
  .ori-about-play-top-text, .ori-inner-section-title { max-width: 100%; width: 100%; }
  .ori-about-play-top-text { font-size: 15px; line-height: 1.8; }
  .ori-service-content-1 { padding-top: 32px; }
  .ori-portfolio-details-text { padding: 24px 0; }
  .ori-blog-sidebar { margin-bottom: 32px; }

  /* CTAs and filters stay readable and usable with a thumb. */
  .en-hero-btns, .lp-hero-btns, .pe-hero-btns, .lm-hero-btns { gap: 12px; }
  .lp-btn-primary, .lp-btn-outline, .lp-btn-secondary, .pe-btn-primary, .pe-btn-outline, .pe-btn-secondary,
  .lm-btn-primary, .lm-btn-secondary, .en-btn-primary, .en-btn-outline, .en-btn-secondary,
  .project-cta, .project-cta-outline, .xrp-btn-primary, .xrp-btn-ghost {
    min-height: 50px; max-width: 100%; padding: 14px 18px; white-space: normal;
    font-size: 13px; line-height: 1.5; letter-spacing: .04em; text-align: center;
  }
  .lp-hero :is(.lp-btn-primary,.lp-btn-outline,.lp-btn-secondary),
  .en-hero-btns a, .pe-hero :is(.pe-btn-primary,.pe-btn-outline,.pe-btn-secondary),
  .lm-hero :is(.lm-btn-primary,.lm-btn-secondary) { width: 100%; justify-content: center; }
  .pg-filter, .en-case-filter, .xr-case-filter, .portfolio-filter button { min-height: 44px; padding: 11px 14px; font-size: 12px; }
  .pg-filters, .en-portfolio-filters, .xr-cases-filters { flex-wrap: wrap; gap: 8px; }
  .back-link { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 14px; }
  .lp-final-cta, .pe-final-cta, .lm-final-cta, .en-cta-section, .xrp-cta { padding: 56px 0; }
  .lp-final-cta h2, .pe-final-cta h2, .lm-final-cta h2, .en-cta-section h2, .xrp-cta h2 { font-size: clamp(28px,8vw,40px); line-height: 1.2; }

  /* Long answers expand to their actual height on narrow screens. */
  .xr-faq-q, .enfaq-q, .vrfaq-faq-q, .lm-faq-q, .xrp-faq-q, .pe-faq-q { min-height: 56px; padding: 18px; gap: 14px; font-size: 15px; text-align: left; }
  .xr-faq-q h3, .enfaq-q h3, .vrfaq-faq-q h3 { font-size: 15px; line-height: 1.5; }
  .xr-faq-item.open .xr-faq-a, .enfaq-item.open .enfaq-a, .vrfaq-faq-item.open .vrfaq-faq-a,
  .xrp-faq-item.open .xrp-faq-a, .pe-faq-item.open .pe-faq-a { max-height: none !important; }
  .xr-faq-a p, .enfaq-a p, .vrfaq-faq-a p, .xrp-faq-a p { font-size: 14px; line-height: 1.8; }

  /* Footer columns, device safe areas and utility controls. */
  .ori-footer-widget-wrapper .row { padding: 0 !important; }
  .ori-footer-widget-wrapper .contact-widget { text-align: left !important; }
  .ori-footer-widget-wrapper .logo-widget { justify-content: start; }
  .ori-footer-widget-wrapper > .row > div { text-align: left; margin-bottom: 28px; }
  .ori-footer-copyright { flex-wrap: wrap; gap: 14px; }
  .en-footer-inner, .en-footer-bottom { align-items: start; flex-direction: column; gap: 20px; }
  .en-footer-contact { text-align: left; }
  .en-footer-links { gap: 8px 20px; }
  .en-footer-links a, .lp-footer a, .pe-footer a, .lm-footer a, .ori-footer-section .contact-info a { display: inline-flex; align-items: center; min-height: 44px; }
  .en-footer-social a, .ori-copyright-social a { display: inline-grid; place-items: center; width: 44px; height: 44px; }
  footer { padding-bottom: max(30px,calc(env(safe-area-inset-bottom) + 22px)); }
  .floating-whatsapp, .lp-float-wa, .lm-float-wa, .pe-float-wa, .en-float-wa, .xr-float-wa {
    width: 48px !important; height: 48px !important;
    right: max(14px,env(safe-area-inset-right)) !important;
    bottom: max(16px,calc(env(safe-area-inset-bottom) + 10px)) !important;
  }
  .floating-whatsapp i, .lp-float-wa i, .lm-float-wa i, .pe-float-wa i, .en-float-wa i, .xr-float-wa i { font-size: 25px !important; }
  .scrollup { width: 44px !important; height: 44px !important; line-height: 44px !important; right: max(16px,env(safe-area-inset-right)) !important; bottom: max(76px,calc(env(safe-area-inset-bottom) + 70px)) !important; }
  .floating-whatsapp-tooltip { display: none !important; }
  .xr-hero-in-view :is(.floating-whatsapp,.lp-float-wa,.lm-float-wa,.pe-float-wa,.en-float-wa,.xr-float-wa) { visibility: hidden; pointer-events: none; }
  body.xr-mobile-ready.xr-hero-in-view .scrollup { display: none !important; }
  #cookiescript_injected { max-width: 100% !important; max-height: 52svh !important; overflow-y: auto !important; box-sizing: border-box !important; }
  #cookiescript_description { font-size: 12px !important; line-height: 1.6 !important; }
  #cookiescript_accept, #cookiescript_reject, #cookiescript_save { min-height: 44px !important; }
  .mfp-image-holder .mfp-close { right: 0; min-width: 44px; min-height: 44px; }
  .mfp-img { max-height: calc(100svh - 80px) !important; object-fit: contain; }
}
@media (max-width: 380px) {
  .xr-mobile-ready header img { max-width: 122px; }
  .xr-mobile-ready header .lang-switcher, .xr-mobile-ready header .en-lang-btn { min-width: 65px; padding: 8px; }
  .gallery-grid, .lm-cases-grid, .lm-process-grid { grid-template-columns: 1fr; }
  .xr-hero-mode { padding: 10px 5px; font-size: 9px; }
  .xr-hero-mode span { font-size: 8px; margin-right: 3px; }
  .xr-hero-pause { margin-left: 2px; }
  .en-hero h1 { font-size: 26px; }
  .xrp-metrics { grid-template-columns: 1fr; }
}
@media (hover: none) {
  .gallery-item-overlay { background: linear-gradient(transparent 55%,#0006); align-items: end; justify-content: end; padding: 12px; }
  .gallery-item-overlay i { opacity: 1; transform: none; font-size: 18px; }
  .xr-mobile-ready .info-card:hover, .xr-mobile-ready .lm-service-card:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .xr-mobile-dialog *, .xr-mobile-toggle, .case-eyebrow-dot { animation: none !important; transition: none !important; }
  .lp-logos-track, .en-marquee-track, .xr-marquee-track, .line_animation .line_area::after { animation: none !important; }
}
