/* ================================
   Life Pillars Mobile CSS
   Scope: mobile only <= 820px
   Desktop CSS remains isolated in css/style.css
   Do not place desktop rules here.
================================ */

@media (max-width:980px){
  .mobile-toggle{display:flex}
  .menu,.header-cta{display:none}
  .hero-inner{grid-template-columns:1fr;align-items:end;padding-bottom:120px}
  .logo-stage{display:none}
  .hero-copy p{font-size:17px}
  .trust-grid,.stats,.product-grid,.partner-row,.features,.contact-grid,.footer-grid{grid-template-columns:1fr}
  .trust-item,.stat{border-right:none;border-bottom:1px solid rgba(207,169,106,.18)}
  .coverage-grid{grid-template-columns:1fr}
}

@media (max-width:980px){
  html{scroll-snap-type:none}
  .snap-section,
  .hero.snap-section{
    min-height:auto;
    height:auto;
    scroll-snap-align:none;
  }
  .hero-inner{min-height:760px}
}

@media (max-width:980px){
  .back-to-top{
    right:18px;
    bottom:18px;
    width:46px;
    height:46px;
    font-size:21px;
  }
}

@media (max-width:980px){
  .about-section{padding:96px 0 60px}
  .about-cards{grid-template-columns:1fr}
  .about-card{min-height:460px}
}

@media (max-width:980px){
  .about-v10-layout{grid-template-columns:1fr;gap:30px}
  .about-v10-intro{position:relative;top:auto}
  .about-v10-item,
  .about-v10-item:nth-child(2),
  .about-v10-item:nth-child(3){margin-left:0}
  .about-v10-list::before{display:none}
}

@media (max-width:640px){
  .about-v10-item{grid-template-columns:1fr}
  .about-v10-media{width:100%;height:180px}
}

@media (max-width:1100px){
  .products-v12-dashboard{grid-template-columns:1fr}
  .product-category-tabs{grid-template-columns:repeat(3,1fr)}
  .product-tab:hover,.product-tab.active{transform:translateY(-4px)}
}

@media (max-width:980px){
  .product-track{position:relative;inset:auto;grid-template-columns:1fr 1fr}
  .product-track:not(.active){display:none}
  .product-slider-viewport{min-height:auto}
}

@media (max-width:640px){
  .product-category-tabs{grid-template-columns:1fr}
  .product-track{grid-template-columns:1fr}
  .product-slider-toolbar{flex-direction:column}
  .product-slider-footer{flex-direction:column;align-items:stretch}
  .product-slider-footer p{width:auto}
}

@media (max-width:1100px){
  .partner-slide{flex-basis:calc((100% - 18px) / 2)}
}

@media (max-width:640px){
  .partners-slider-top,
  .partners-slider-footer{flex-direction:column;align-items:flex-start}
  .partner-slide{flex-basis:100%}
}

@media (max-width:1100px){
  .partner-slide{flex-basis:calc((100% - 18px) / 2)}
}

@media (max-width:640px){
  .partner-slide{flex-basis:100%}
}

@media (max-width:640px){
  .partner-progress{
    width:calc(100% - 40px);
    margin:0 20px 18px;
  }
}

@media (max-width:980px){
  .services-shell{
    grid-template-columns:1fr;
    gap:30px;
  }
  .services-orbit{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .service-mini-grid{
    grid-template-columns:1fr;
  }
  .service-mini-card:nth-child(2),
  .service-mini-card:nth-child(4),
  .service-mini-card:nth-child(2):hover,
  .service-mini-card:nth-child(4):hover{
    transform:none;
  }
}

@media (max-width:1100px){
  .lp-nav-centered{
    gap:22px !important;
  }

  .lp-nav-centered .menu{
    gap:22px !important;
  }

  .lp-nav-centered .brand-center{
    width:126px !important;
    height:126px !important;
    margin:0 6px -28px !important;
    border-radius:28px !important;
  }

  .lp-nav-centered .brand-center img{
    width:100px !important;
    max-height:100px !important;
  }
}

@media (max-width:820px){
  .lp-header{
    min-height:auto !important;
    padding:10px 0 !important;
  }

  .lp-nav-centered{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
    align-items:center !important;
    gap:10px !important;
    min-height:auto !important;
    padding-top:8px !important;
    padding-bottom:8px !important;
  }

  .lp-nav-centered .brand-center{
    grid-column:2 !important;
    grid-row:1 !important;
    width:108px !important;
    height:108px !important;
    margin:0 !important;
  }

  .lp-nav-centered .brand-center img{
    width:86px !important;
    max-height:86px !important;
  }

  .lp-nav-centered .menu-left{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-content:flex-end !important;
    text-align:right !important;
  }

  .lp-nav-centered .menu-right{
    grid-column:3 !important;
    grid-row:1 !important;
    justify-content:flex-start !important;
    text-align:left !important;
  }

  .lp-nav-centered .menu{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px 12px !important;
    font-size:11px !important;
    line-height:1.2 !important;
  }
}

@media (max-width:520px){
  .lp-nav-centered{
    gap:8px !important;
  }

  .lp-nav-centered .brand-center{
    width:88px !important;
    height:88px !important;
    border-radius:24px !important;
  }

  .lp-nav-centered .brand-center img{
    width:70px !important;
    max-height:70px !important;
  }

  .lp-nav-centered .menu{
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:6px !important;
    font-size:10px !important;
  }

  .lp-nav-centered .menu-left{
    align-items:flex-end !important;
  }

  .lp-nav-centered .menu-right{
    align-items:flex-start !important;
  }
}

@media (max-width:980px){
  .iso-banner-inner{
    padding:24px 20px;
  }

  .iso-banner-card h3{
    font-size:24px;
  }

  .iso-seal{
    width:104px;
    height:104px;
  }

  .iso-seal-core{
    width:74px;
    height:74px;
  }

  .iso-seal-core strong{
    font-size:24px;
  }
}

@media (max-width:720px){
  .premium-back-to-top{
    right:18px !important;
    bottom:18px !important;
    width:52px !important;
    height:52px !important;
  }

  .back-to-top-arrow{
    font-size:22px;
  }
}

@media (max-width: 860px){
  :root{
    --lp-header-clearance: 172px;
    --lp-section-gap: 42px;
  }
}

@media (max-width: 860px){
  :root{
    --lp-header-clearance: 210px;
    --lp-section-gap: 48px;
  }

  main > section:not(#home) > .container{
    padding-top: 20px;
  }
}

@media (max-width: 860px){
  :root{
    --lp-header-clearance: 190px;
    --lp-section-gap: 34px;
  }
}

@media (max-width:980px){
  .product-tab{
    min-height:76px !important;
    grid-template-columns:40px minmax(0, 1fr) !important;
  }

  .product-tab small,
  .product-tab p,
  .product-tab .product-tab-desc{
    white-space:normal !important;
  }
}

@media (max-width:1100px){
  .footer-main{
    grid-template-columns:1.3fr 1fr 1fr;
  }
}

@media (max-width:760px){
  .footer-cta-panel{
    grid-template-columns:1fr;
    padding:24px 20px;
  }

  .footer-main{
    grid-template-columns:1fr;
    gap:26px;
  }

  .footer-bottom{
    flex-direction:column;
  }
}

@media (max-width:980px){
  .contact-pro-grid{
    grid-template-columns:1fr !important;
  }

  .contact-pro-form{
    padding:22px !important;
  }

  .form-support-note{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (max-width:860px){
  :root{
    --lp-header-clearance: 170px;
    --lp-section-gap: 24px;
  }

  .products.products-v12.snap-section,
  .about-section.snap-section,
  .services-section.snap-section,
  .partners.partners-v18.snap-section,
  .contact.snap-section{
    padding-top:40px !important;
  }
}

@media (max-width:1100px){
  .contact-grid{
    grid-template-columns:1fr !important;
  }

  .contact-map-card iframe{
    height:260px;
  }
}

@media (max-width:1100px){
  .contact-map-card iframe{
    height:260px !important;
  }
}

@media (max-width:900px){
  .footer-newsletter-panel{
    grid-template-columns:1fr !important;
  }

  .footer-newsletter-form{
    grid-template-columns:1fr;
  }

  .footer-newsletter-form button{
    width:100%;
  }
}

@media (max-width:1100px){
  .location-visual{
    height:240px;
  }
}

@media (max-width:560px){
  .location-card-top,
  .location-card-bottom{
    flex-direction:column;
    align-items:flex-start;
  }

  .location-label{
    left:50%;
    top:calc(48% + 34px);
    transform:translateX(-50%);
  }
}

@media (max-width:720px){
  .custom-select-menu{
    max-height:190px;
  }
}

@media (max-width:720px){
  .site-header,
  .header,
  header{
    overflow:visible !important;
  }

  .nav-wrap,
  .header-inner,
  .navbar,
  .nav-shell{
    display:grid !important;
    grid-template-columns:1fr 92px 1fr !important;
    align-items:center !important;
    gap:8px !important;
    padding-inline:12px !important;
  }

  .brand-center,
  .brand,
  .site-logo{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:center !important;
    width:92px !important;
    height:92px !important;
    margin:0 !important;
    transform:none !important;
  }

  .brand-center img,
  .brand img,
  .site-logo img{
    max-width:76px !important;
    height:auto !important;
  }

  .menu-left,
  .nav-left{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:end !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-end !important;
    gap:7px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .menu-right,
  .nav-right{
    grid-column:3 !important;
    grid-row:1 !important;
    justify-self:start !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:7px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .menu-left a,
  .menu-right a,
  .nav-left a,
  .nav-right a{
    font-size:12px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    padding:0 !important;
  }

  .hero-trust,
  .hero-trust-list,
  .hero-badges,
  .hero-features,
  .trust-list,
  .trust-grid{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    gap:10px !important;
    width:100% !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    padding-bottom:8px !important;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }

  .hero-trust > *,
  .hero-trust-list > *,
  .hero-badges > *,
  .hero-features > *,
  .trust-list > *,
  .trust-grid > *{
    flex:0 0 auto !important;
    min-width:155px !important;
    max-width:170px !important;
    scroll-snap-align:start;
  }
}

@media (max-width:420px){
  .nav-wrap,
  .header-inner,
  .navbar,
  .nav-shell{
    grid-template-columns:1fr 84px 1fr !important;
    gap:6px !important;
    padding-inline:8px !important;
  }

  .brand-center,
  .brand,
  .site-logo{
    width:84px !important;
    height:84px !important;
  }

  .brand-center img,
  .brand img,
  .site-logo img{
    max-width:70px !important;
  }

  .menu-left a,
  .menu-right a,
  .nav-left a,
  .nav-right a{
    font-size:11px !important;
  }
}

@media (max-width:820px){
  .lp-header{
    position:absolute !important;
    inset-inline:0 !important;
    top:0 !important;
    padding:10px 0 !important;
    background:rgba(2,11,22,.18) !important;
    backdrop-filter:blur(6px) !important;
    border-bottom:1px solid rgba(207,169,106,.06) !important;
    box-shadow:none !important;
    transition:none !important;
  }

  .lp-header.is-scrolled,
  body.section-scroll-active .lp-header,
  body.cta-section-traveling .lp-header{
    padding:10px 0 !important;
    background:rgba(2,11,22,.18) !important;
    backdrop-filter:blur(6px) !important;
    border-bottom:1px solid rgba(207,169,106,.06) !important;
    box-shadow:none !important;
    transition:none !important;
  }

  .lp-nav.lp-nav-centered{
    grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr) !important;
    gap:18px !important;
    padding-inline:16px !important;
  }

  .lp-nav-centered .brand-center{
    width:92px !important;
    height:92px !important;
    margin:0 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center img{
    width:74px !important;
    max-height:74px !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center::after{
    display:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center::before{
    animation:none !important;
    transition:none !important;
  }

  .lp-nav-centered .menu{
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:10px !important;
    font-size:12px !important;
    line-height:1.18 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .menu-left{
    align-items:flex-end !important;
    justify-content:center !important;
  }

  .lp-nav-centered .menu-right{
    align-items:flex-start !important;
    justify-content:center !important;
  }

  .lp-nav-centered .menu a{
    line-height:1.18 !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }
}

@media (max-width:420px){
  .lp-nav.lp-nav-centered{
    grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr) !important;
    gap:14px !important;
    padding-inline:10px !important;
  }

  .lp-nav-centered .brand-center{
    width:84px !important;
    height:84px !important;
  }

  .lp-nav-centered .brand-center img{
    width:68px !important;
    max-height:68px !important;
  }

  .lp-nav-centered .menu{
    gap:9px !important;
    font-size:11px !important;
  }
}

@media (max-width:820px){
  /* Keep the header static on mobile, but restore the logo shine only */
  .lp-nav-centered .brand-center::after{
    display:block !important;
    animation:headerLogoShine 4.2s cubic-bezier(.2,.8,.2,1) infinite !important;
  }

  .lp-nav-centered .brand-center:hover::after{
    animation-duration:1.25s !important;
  }

  /* Smaller mobile hero title */
  .hero-copy h1{
    font-size:clamp(36px, 10vw, 52px) !important;
    line-height:1.04 !important;
    letter-spacing:-.8px !important;
  }

  .hero-copy .bar{
    margin:24px 0 !important;
  }

  /* Trust row: no horizontal scroll on mobile */
  .trust-row{
    overflow:visible !important;
  }

  .trust-grid,
  .hero-trust,
  .hero-trust-list,
  .hero-badges,
  .hero-features,
  .trust-list{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:0 !important;
    width:100% !important;
    overflow:visible !important;
    padding-bottom:0 !important;
    scroll-snap-type:none !important;
  }

  .trust-grid > *,
  .hero-trust > *,
  .hero-trust-list > *,
  .hero-badges > *,
  .hero-features > *,
  .trust-list > *{
    min-width:0 !important;
    max-width:none !important;
    width:auto !important;
    flex:initial !important;
    scroll-snap-align:none !important;
  }

  .trust-item{
    min-height:74px !important;
    padding:10px 12px !important;
    gap:8px !important;
    border-right:1px solid rgba(207,169,106,.16) !important;
    border-bottom:1px solid rgba(207,169,106,.16) !important;
  }

  .trust-item .icon{
    flex:0 0 auto !important;
    font-size:20px !important;
  }

  .trust-item strong{
    font-size:12px !important;
    line-height:1.15 !important;
  }

  .trust-item small{
    display:block !important;
    font-size:10px !important;
    line-height:1.25 !important;
  }
}

@media (max-width:420px){
  .hero-copy h1{
    font-size:clamp(32px, 9.4vw, 42px) !important;
  }

  .trust-item{
    min-height:68px !important;
    padding:8px 8px !important;
    gap:6px !important;
  }

  .trust-item .icon{
    font-size:18px !important;
  }

  .trust-item strong{
    font-size:11px !important;
  }

  .trust-item small{
    font-size:9px !important;
  }
}

/* ================================
   Mobile Header Hard Lock - V96
   Scope: mobile only <= 820px
   Desktop remains untouched.
================================ */
@media (max-width:820px){
  html,
  body{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
    scroll-behavior:auto !important;
  }

  body::before{
    display:none !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-header,
  .lp-header.is-scrolled,
  body.section-scroll-active .lp-header,
  body.cta-section-traveling .lp-header{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:0 !important;
    width:100% !important;
    min-height:124px !important;
    padding:12px 0 !important;
    margin:0 !important;
    background:rgba(2,11,22,.18) !important;
    backdrop-filter:blur(6px) !important;
    border-bottom:1px solid rgba(207,169,106,.06) !important;
    box-shadow:none !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav.lp-nav-centered{
    display:grid !important;
    grid-template-columns:minmax(102px,1fr) 82px minmax(102px,1fr) !important;
    align-items:center !important;
    justify-content:center !important;
    gap:26px !important;
    width:100% !important;
    max-width:100% !important;
    min-height:100px !important;
    padding:0 18px !important;
    margin:0 auto !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .menu-left{
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:end !important;
    align-items:flex-end !important;
    justify-content:center !important;
    text-align:right !important;
  }

  .lp-nav-centered .menu-right{
    grid-column:3 !important;
    grid-row:1 !important;
    justify-self:start !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
  }

  .lp-nav-centered .menu{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    gap:16px !important;
    margin:0 !important;
    padding:0 !important;
    font-size:12px !important;
    line-height:1.15 !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .menu a,
  .lp-nav-centered .menu a.active,
  .lp-nav-centered .menu a.selected,
  .lp-nav-centered .menu a.is-active{
    display:block !important;
    white-space:nowrap !important;
    padding:1px 0 !important;
    line-height:1.15 !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .menu a::after,
  .lp-nav-centered .menu a.active::after,
  .lp-nav-centered .menu a.selected::after,
  .lp-nav-centered .menu a.is-active::after,
  .lp-nav-centered .menu a::before{
    display:none !important;
  }

  .lp-nav-centered .brand-center{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:center !important;
    align-self:center !important;
    width:82px !important;
    height:82px !important;
    margin:0 !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center img{
    width:66px !important;
    max-height:66px !important;
    transform:none !important;
    translate:none !important;
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center::before{
    transition:none !important;
    animation:none !important;
  }

  .lp-nav-centered .brand-center::after{
    display:block !important;
    animation:headerLogoShine 4.2s cubic-bezier(.2,.8,.2,1) infinite !important;
  }

  .section-motion-item,
  .v54-motion-item,
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale,
  .section-active .section-motion-item,
  .section-leaving .section-motion-item,
  .v54-section-play .v54-motion-item{
    opacity:1 !important;
    transform:none !important;
    translate:none !important;
    filter:none !important;
    transition:none !important;
    animation:none !important;
  }

  .snap-section::after,
  .v54-section-play::before,
  .cta-target-focus::after{
    display:none !important;
    transform:none !important;
    transition:none !important;
    animation:none !important;
  }

  .hero-copy h1{
    font-size:clamp(34px, 9vw, 48px) !important;
    line-height:1.04 !important;
    letter-spacing:-.7px !important;
  }

  .trust-row{
    overflow:visible !important;
  }

  .trust-grid,
  .hero-trust,
  .hero-trust-list,
  .hero-badges,
  .hero-features,
  .trust-list{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:0 !important;
    width:100% !important;
    overflow:visible !important;
    padding-bottom:0 !important;
    scroll-snap-type:none !important;
  }

  .trust-grid > *,
  .hero-trust > *,
  .hero-trust-list > *,
  .hero-badges > *,
  .hero-features > *,
  .trust-list > *{
    min-width:0 !important;
    max-width:none !important;
    width:auto !important;
  }
}

@media (max-width:420px){
  .lp-header,
  .lp-header.is-scrolled,
  body.section-scroll-active .lp-header,
  body.cta-section-traveling .lp-header{
    min-height:118px !important;
  }

  .lp-nav.lp-nav-centered{
    grid-template-columns:minmax(92px,1fr) 76px minmax(92px,1fr) !important;
    gap:20px !important;
    min-height:96px !important;
    padding-inline:12px !important;
  }

  .lp-nav-centered .brand-center{
    width:76px !important;
    height:76px !important;
  }

  .lp-nav-centered .brand-center img{
    width:60px !important;
    max-height:60px !important;
  }

  .lp-nav-centered .menu{
    gap:15px !important;
    font-size:11px !important;
  }
}

/* ================================
   Mobile Anchor + Hero Trust Fix - V97
   Scope: mobile only <= 820px
================================ */
@media (max-width:820px){
  main section[id],
  .snap-section[id]{
    scroll-margin-top:150px !important;
  }

  .hero{
    overflow:visible !important;
  }

  .hero-inner{
    padding-bottom:42px !important;
  }

  .trust-row{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    margin-top:22px !important;
    margin-bottom:0 !important;
    z-index:4 !important;
  }
}

@media (max-width:420px){
  main section[id],
  .snap-section[id]{
    scroll-margin-top:142px !important;
  }

  .hero-inner{
    padding-bottom:36px !important;
  }

  .trust-row{
    margin-top:18px !important;
  }
}


/* ================================
   Mobile Hero Spacing + Route Effect - V98
   Scope: mobile only <= 820px
   Desktop CSS remains untouched.
================================ */
@media (max-width:820px){
  .hero,
  .hero.snap-section{
    min-height:auto !important;
    height:auto !important;
  }

  .hero-inner{
    min-height:auto !important;
    align-items:start !important;
    padding-top:174px !important;
    padding-bottom:30px !important;
  }

  .hero-copy{
    margin-top:0 !important;
  }

  .hero-copy h1{
    font-size:clamp(34px, 8.8vw, 46px) !important;
    line-height:1.04 !important;
  }

  .hero-actions{
    gap:12px !important;
  }

  .trust-row{
    position:relative !important;
    margin-top:28px !important;
    z-index:4 !important;
  }

  section.mobile-route-target{
    position:relative !important;
    overflow:hidden !important;
  }

  section.mobile-route-target:not(#home)::after{
    content:"" !important;
    position:absolute !important;
    inset:0 !important;
    z-index:5 !important;
    pointer-events:none !important;
    background:radial-gradient(circle at 50% 18%, rgba(232,201,138,.18), transparent 44%) !important;
    animation:mobileRouteGlow .95s ease both !important;
  }

  section.mobile-route-target:not(#home) > .container{
    animation:mobileRouteLift .72s cubic-bezier(.16,1,.3,1) both !important;
  }

  @keyframes mobileRouteGlow{
    0%{opacity:0;filter:blur(12px)}
    32%{opacity:1;filter:blur(0)}
    100%{opacity:0;filter:blur(0)}
  }

  @keyframes mobileRouteLift{
    0%{transform:translateY(18px);filter:blur(4px)}
    100%{transform:translateY(0);filter:blur(0)}
  }
}

@media (max-width:420px){
  .hero-inner{
    padding-top:146px !important;
    padding-bottom:26px !important;
  }

  .hero-copy h1{
    font-size:clamp(30px, 8.6vw, 38px) !important;
  }

  .trust-row{
    margin-top:24px !important;
  }
}

/* ================================
   Mobile Products Categories Hidden - V99
   Scope: mobile only <= 820px
   Keep product slider active.
================================ */
@media (max-width:820px){
  .products-v12 .product-category-tabs{
    display:none !important;
  }

  .products-v12 .products-v12-dashboard{
    display:block !important;
  }

  .products-v12 .product-slider-panel{
    width:100% !important;
    min-width:0 !important;
  }
}

/* ================================
   Mobile Section Refinements - V100
   Scope: mobile only <= 820px
   Desktop CSS remains untouched.
   Coverage map files remain untouched.
================================ */
@media (max-width:820px){
  /* Services: keep each title beside its icon */
  .services-section .service-mini-card{
    display:grid !important;
    grid-template-columns:44px minmax(0,1fr) !important;
    column-gap:12px !important;
    row-gap:10px !important;
    align-items:center !important;
  }

  .services-section .service-mini-card .service-icon{
    grid-column:1 !important;
    grid-row:1 !important;
    width:40px !important;
    height:40px !important;
    margin:0 !important;
    border-radius:14px !important;
    font-size:19px !important;
  }

  .services-section .service-mini-card h4{
    grid-column:2 !important;
    grid-row:1 !important;
    margin:0 !important;
    font-size:21px !important;
    line-height:1.08 !important;
  }

  .services-section .service-mini-card p{
    grid-column:1 / -1 !important;
    margin:2px 0 0 !important;
  }

  /* Coverage: reduce long headings on mobile */
  .coverage-section .coverage-map-header h3{
    font-size:clamp(24px, 7.2vw, 34px) !important;
    line-height:1.08 !important;
  }

  .coverage-section .coverage-info-card h4,
  .coverage-section #coverageCountry{
    font-size:clamp(22px, 6.5vw, 30px) !important;
    line-height:1.12 !important;
  }

  .coverage-section .coverage-info-card span{
    font-size:11px !important;
  }

  /* Footer: show policy links above copyrights on mobile */
  .footer-bottom{
    align-items:center !important;
    text-align:center !important;
  }

  .footer-bottom > div{
    order:-1 !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
  }
}

/* ================================
   Mobile Coverage layout fix v101
   Mobile only, does not touch coverage map files.
================================ */
@media (max-width:820px){
  .coverage-section .coverage-map-header{
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:8px !important;
    padding:22px 16px 8px !important;
  }

  .coverage-section .coverage-map-header > div{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .coverage-section .coverage-map-header h3{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    white-space:nowrap !important;
    overflow:visible !important;
    font-size:clamp(23px, 6vw, 27px) !important;
    line-height:1 !important;
    letter-spacing:-.04em !important;
  }

  .coverage-section .coverage-map-link{
    align-self:flex-start !important;
    white-space:nowrap !important;
    font-size:12px !important;
  }

  .coverage-section .coverage-info-card{
    grid-template-columns:1fr !important;
    gap:8px !important;
    align-items:center !important;
    text-align:center !important;
    padding:18px 16px !important;
    margin:18px 28px 26px !important;
  }

  .coverage-section .coverage-info-card span{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    font-size:10px !important;
    letter-spacing:.18em !important;
  }

  .coverage-section .coverage-info-card h4,
  .coverage-section #coverageCountry{
    display:block !important;
    width:100% !important;
    white-space:nowrap !important;
    text-align:center !important;
    font-size:clamp(24px, 7vw, 30px) !important;
    line-height:1.05 !important;
  }

  .coverage-section .coverage-info-card p,
  .coverage-section .coverage-info-card strong{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    font-size:14px !important;
    line-height:1.35 !important;
  }
}

/* ================================
   Mobile Coverage selected country card v102
   Match requested centered card layout.
   Mobile only. Coverage map files remain untouched.
================================ */
@media (max-width:820px){
  #coverage .coverage-map-panel .coverage-info-card{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:center !important;
    align-items:center !important;
    text-align:center !important;
    width:auto !important;
    max-width:360px !important;
    margin:18px auto 28px !important;
    padding:18px 18px 17px !important;
    gap:7px !important;
  }

  #coverage .coverage-map-panel .coverage-info-card span{
    display:block !important;
    width:100% !important;
    margin:0 0 4px !important;
    text-align:center !important;
    white-space:nowrap !important;
    font-size:10px !important;
    line-height:1.15 !important;
    letter-spacing:.22em !important;
  }

  #coverage .coverage-map-panel #coverageCountry{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    font-size:clamp(26px, 7vw, 31px) !important;
    line-height:1.02 !important;
    letter-spacing:-.02em !important;
  }

  #coverage .coverage-map-panel #coverageCity{
    display:block !important;
    width:100% !important;
    margin:0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    font-size:14px !important;
    line-height:1.25 !important;
  }

  #coverage .coverage-map-panel #coverageStatus{
    display:block !important;
    width:100% !important;
    margin:5px 0 0 !important;
    text-align:center !important;
    white-space:nowrap !important;
    font-size:14px !important;
    line-height:1.25 !important;
  }
}

/* ================================
   Mobile Coverage panel height v103
   Mobile only. Coverage map files remain untouched.
================================ */
@media (max-width:820px){
  .coverage-map-panel{
    min-height:505px !important;
  }
}

/* ================================
   Mobile Section Internal Spacing Fix - V117
   Mobile only <= 820px. No desktop rules here.
================================ */
@media (max-width:820px){
  main > section:not(#home){
    margin-top:0 !important;
    scroll-margin-top:var(--lp-header-clearance) !important;
  }

  main > section:not(#home).snap-section{
    padding-top:calc(var(--lp-section-inner-top, 40px) + var(--lp-section-gap, 24px)) !important;
  }

  .products.products-v12.snap-section,
  .about-section.snap-section,
  .services-section.snap-section,
  .coverage-section.snap-section,
  .partners.partners-v18.snap-section,
  .contact.snap-section{
    --lp-section-inner-top:40px;
  }

  main > section:not(#home) > .container{
    padding-top:0 !important;
  }
}


/* iOS-only scroll performance fix: Android and desktop remain unchanged. */
@media (max-width:820px){
  html.is-ios,
  html.is-ios body,
  body.is-ios{
    scroll-behavior:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  html.is-ios .lp-header,
  html.is-ios .lp-header.is-scrolled,
  html.is-ios body.section-scroll-active .lp-header,
  html.is-ios body.cta-section-traveling .lp-header,
  body.is-ios .lp-header,
  body.is-ios .lp-header.is-scrolled,
  body.is-ios.section-scroll-active .lp-header,
  body.is-ios.cta-section-traveling .lp-header{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:rgba(2,11,22,.92) !important;
    transform:translateZ(0) !important;
    transition:none !important;
    animation:none !important;
    will-change:auto !important;
    contain:layout paint !important;
  }

  html.is-ios .lp-nav-centered .brand-center::before,
  html.is-ios .lp-nav-centered .brand-center::after,
  body.is-ios .lp-nav-centered .brand-center::before,
  body.is-ios .lp-nav-centered .brand-center::after{
    animation:none !important;
    transition:none !important;
  }
}
