.mobile-page-lede, .mobile-services-intro, .mobile-contact-intro{ display:none; }

/* 2P Drone — dedicated smartphone/tablet experience
   Loaded LAST on public pages. Desktop (>1024px) is intentionally untouched. */
@media (max-width: 1024px){
  :root{
    --mx-bg:#050912;
    --mx-panel:rgba(10,17,31,.78);
    --mx-panel-solid:#0b1322;
    --mx-line:rgba(255,255,255,.12);
    --mx-text:#f8fbff;
    --mx-muted:rgba(232,239,249,.72);
    --mx-blue:#2f7df4;
    --mx-blue-2:#69a7ff;
    --mx-radius:26px;
    --mx-edge:clamp(16px,4.5vw,34px);
    --mx-dock-space:108px;
  }

  html{ scroll-behavior:smooth; background:var(--mx-bg); }
  html,body{ overflow-x:hidden !important; }
  body{
    margin:0 !important;
    padding-top:0 !important;
    padding-bottom:calc(var(--mx-dock-space) + env(safe-area-inset-bottom)) !important;
    background:
      radial-gradient(circle at 12% 0%, rgba(35,94,194,.16), transparent 30rem),
      linear-gradient(180deg,#050912 0%,#08101d 48%,#050912 100%) !important;
    color:var(--mx-text);
    -webkit-tap-highlight-color:transparent;
  }

  /* ---------------- APP-LIKE HEADER ---------------- */
  header{
    position:fixed !important;
    inset:0 0 auto 0 !important;
    z-index:10050 !important;
    padding:calc(8px + env(safe-area-inset-top)) 10px 0 !important;
    background:transparent !important;
    pointer-events:none;
    opacity:1 !important;
    transform:none !important;
  }
  header nav,
  header nav.navbar{
    width:min(100%,960px) !important;
    min-height:68px !important;
    margin:0 auto !important;
    padding:8px 10px 8px 14px !important;
    display:flex !important;
    align-items:center !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:22px !important;
    background:rgba(4,9,17,.48) !important;
    -webkit-backdrop-filter:blur(20px) saturate(135%) !important;
    backdrop-filter:blur(20px) saturate(135%) !important;
    box-shadow:0 14px 34px rgba(0,0,0,.20) !important;
    pointer-events:auto;
    transition:background .25s ease,border-color .25s ease,transform .25s ease !important;
  }
  body.mx-scrolled header nav,
  body.mx-scrolled header nav.navbar{
    background:rgba(4,9,17,.82) !important;
    border-color:rgba(255,255,255,.17) !important;
    box-shadow:0 16px 40px rgba(0,0,0,.32) !important;
  }
  header nav .brand,
  header nav.navbar .brand{
    position:static !important;
    left:auto !important;
    transform:none !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
  }
  header nav .brand img,
  header nav.navbar .brand img{
    width:auto !important;
    height:52px !important;
    max-height:52px !important;
    margin:0 !important;
    transform:none !important;
    object-fit:contain !important;
  }
  header .nav-links{ display:none !important; }
  header .nav-toggle{
    display:grid !important;
    place-items:center !important;
    width:48px !important;
    height:48px !important;
    min-height:48px !important;
    margin:0 0 0 auto !important;
    padding:0 !important;
    border-radius:16px !important;
    border:1px solid rgba(255,255,255,.15) !important;
    background:rgba(255,255,255,.07) !important;
    color:#fff !important;
    box-shadow:none !important;
  }
  header .nav-toggle svg{ width:22px !important; height:22px !important; }

  header .mobile-menu{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    max-width:none !important;
    height:100dvh !important;
    padding:calc(100px + env(safe-area-inset-top)) 20px calc(34px + env(safe-area-inset-bottom)) !important;
    display:flex !important;
    align-items:stretch !important;
    justify-content:center !important;
    background:
      radial-gradient(circle at 50% 0%,rgba(43,110,230,.20),transparent 40%),
      rgba(4,8,15,.97) !important;
    -webkit-backdrop-filter:blur(18px) !important;
    backdrop-filter:blur(18px) !important;
    transform:translateY(-18px) scale(.985) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:opacity .32s ease,transform .38s cubic-bezier(.2,.8,.2,1),visibility .32s !important;
    z-index:-1 !important;
  }
  body.nav-open header .mobile-menu,
  header nav.nav-open .mobile-menu{
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  header .mobile-links{
    width:min(100%,560px) !important;
    margin:auto !important;
    padding:0 !important;
    display:grid !important;
    gap:10px !important;
  }
  header .mobile-links a{
    min-height:62px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:0 20px !important;
    border-radius:20px !important;
    border:1px solid rgba(255,255,255,.10) !important;
    background:rgba(255,255,255,.035) !important;
    color:#fff !important;
    font-size:clamp(18px,4vw,22px) !important;
    font-weight:650 !important;
  }
  header .mobile-links a::after{
    content:'↗';
    font-size:.95em;
    opacity:.42;
  }
  header .mobile-links a.active{ background:rgba(47,125,244,.13) !important; border-color:rgba(105,167,255,.38) !important; }
  header .mobile-links a.btn{
    margin-top:10px !important;
    justify-content:center !important;
    background:linear-gradient(135deg,#1d5fd4,#3889ff) !important;
    border-color:rgba(255,255,255,.16) !important;
    border-radius:20px !important;
  }
  header .mobile-links a.btn::after{ content:'→'; margin-left:10px; opacity:.9; }

  /* ---------------- COMMON MOBILE HERO ---------------- */
  body:not(.home):not(.page-contact) > .hero{
    min-height:clamp(360px,48svh,540px) !important;
    height:auto !important;
    padding:120px var(--mx-edge) 34px !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:flex-start !important;
    text-align:left !important;
    overflow:hidden !important;
    isolation:isolate;
  }
  body:not(.home) > .hero::after{
    content:'';
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(2,5,11,.16) 0%,rgba(2,5,11,.08) 34%,rgba(2,5,11,.92) 100%);
  }
  body:not(.home) > .hero .hero-inner{
    position:relative !important;
    z-index:3 !important;
    width:min(100%,760px) !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    text-align:left !important;
  }
  body:not(.home) > .hero .hero-inner h1{
    margin:0 !important;
    color:#fff !important;
    font-family:Poppins,Montserrat,sans-serif !important;
    font-size:clamp(46px,11vw,76px) !important;
    line-height:.94 !important;
    letter-spacing:-.045em !important;
    text-transform:none !important;
    text-shadow:0 10px 35px rgba(0,0,0,.42) !important;
    opacity:1 !important;
    transform:none !important;
    animation:none !important;
  }
  .mobile-page-lede{
    display:block !important;
    max-width:34rem;
    margin:14px 0 0 !important;
    color:rgba(255,255,255,.82) !important;
    font-size:clamp(15px,3.8vw,18px) !important;
    line-height:1.5 !important;
    font-weight:500;
  }
  .scroll-hint,.scroll-hint-chi,
  .page-services > .hero .hero-inner > div:not(.mobile-page-lede),
  .page-portfolio > .hero .hero-inner > div:not(.mobile-page-lede){ display:none !important; }

  main{ position:relative; z-index:2; }
  main section{ padding-left:var(--mx-edge) !important; padding-right:var(--mx-edge) !important; }

  /* ---------------- HOME: cinematic first screen ---------------- */
  body.home > .hero{
    min-height:100svh !important;
    height:100svh !important;
    padding:104px 0 calc(22px + var(--mx-dock-space)) !important;
    display:flex !important;
    align-items:flex-end !important;
    justify-content:center !important;
  }
  body.home > .hero::before{
    clip-path:none !important;
    background:linear-gradient(180deg,rgba(2,5,12,.04) 0%,rgba(2,5,12,.16) 35%,rgba(2,5,12,.82) 78%,#050912 110%) !important;
    z-index:1 !important;
  }
  body.home .hero-video{
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:center !important;
    filter:saturate(1.03) contrast(1.04) brightness(.86) !important;
  }
  body.home .hero-inner{
    width:calc(100% - (var(--mx-edge) * 2)) !important;
    max-width:700px !important;
    margin:0 auto !important;
    padding:22px !important;
    transform:none !important;
    border:1px solid rgba(255,255,255,.14) !important;
    border-radius:28px !important;
    background:linear-gradient(145deg,rgba(6,12,23,.73),rgba(8,17,31,.49)) !important;
    -webkit-backdrop-filter:blur(18px) saturate(125%) !important;
    backdrop-filter:blur(18px) saturate(125%) !important;
    box-shadow:0 24px 60px rgba(0,0,0,.30) !important;
    text-align:left !important;
  }
  body.home .hero-title{
    margin:0 !important;
    font-size:clamp(40px,10vw,68px) !important;
    line-height:.91 !important;
    letter-spacing:-.052em !important;
    text-transform:none !important;
    font-weight:700 !important;
  }
  body.home .hero-sub{
    max-width:34rem !important;
    margin:16px 0 0 !important;
    font-size:clamp(15px,3.8vw,18px) !important;
    line-height:1.5 !important;
    color:rgba(255,255,255,.84) !important;
    text-shadow:none !important;
  }
  body.home .hero-cta{
    margin-top:18px !important;
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  body.home .hero-cta .btn{
    min-width:0 !important;
    min-height:52px !important;
    width:100% !important;
    padding:0 16px !important;
    justify-content:center !important;
    border-radius:17px !important;
    font-size:14px !important;
    font-weight:750 !important;
    background:linear-gradient(135deg,#2164da,#3f8fff) !important;
    border:1px solid rgba(255,255,255,.15) !important;
    box-shadow:0 12px 24px rgba(16,78,183,.24) !important;
  }
  body.home .hero-cta .btn.outline{
    background:rgba(255,255,255,.055) !important;
    border-color:rgba(255,255,255,.18) !important;
    box-shadow:none !important;
  }
  body.home .hero-trust-wrap{ display:none !important; }

  /* trust section becomes compact swipe chips */
  body.home .enac-section-mobile{
    display:block !important;
    margin:0 !important;
    padding:22px 0 14px !important;
    background:#050912 !important;
    overflow:hidden;
  }
  body.home .mobile-trust{
    display:flex !important;
    gap:12px !important;
    width:auto !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory;
    padding:0 var(--mx-edge) 10px !important;
    scrollbar-width:none;
  }
  body.home .mobile-trust::-webkit-scrollbar{ display:none; }
  body.home .mobile-trust-item{
    flex:0 0 min(82vw,390px) !important;
    min-height:88px !important;
    scroll-snap-align:start;
    display:grid !important;
    grid-template-columns:54px 1fr !important;
    align-items:center !important;
    gap:13px !important;
    padding:14px !important;
    border:1px solid rgba(255,255,255,.10) !important;
    border-radius:22px !important;
    background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.025)) !important;
    color:#fff !important;
    text-align:left !important;
  }
  body.home .mobile-trust .trust-badge-circle{ width:50px !important; height:50px !important; margin:0 !important; }
  body.home .mobile-trust .hero-trust-title{ font-size:14px !important; font-weight:800 !important; }
  body.home .mobile-trust .hero-trust-sub{ font-size:12px !important; line-height:1.35 !important; color:rgba(255,255,255,.63) !important; }

  body.home .news-section{
    padding:50px 0 42px !important;
    background:linear-gradient(180deg,#050912 0%,#08111f 100%) !important;
    overflow:hidden;
  }
  body.home .news-inner{ max-width:none !important; margin:0 !important; }
  body.home .news-kicker,
  body.home .news-title,
  body.home .news-intro{ margin-left:var(--mx-edge) !important; margin-right:var(--mx-edge) !important; }
  body.home .news-kicker{ color:#75adff !important; font-size:11px !important; letter-spacing:.17em !important; }
  body.home .news-title{
    max-width:720px;
    margin-top:8px !important;
    font-size:clamp(30px,7.8vw,48px) !important;
    line-height:1.02 !important;
    letter-spacing:-.04em !important;
  }
  body.home .news-intro{
    margin-top:13px !important;
    margin-bottom:26px !important;
    max-width:600px !important;
    font-size:15px !important;
    line-height:1.55 !important;
    color:var(--mx-muted) !important;
  }
  body.home .news-grid,
  body.home .news-grid--single{
    display:flex !important;
    gap:14px !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 var(--mx-edge) 14px !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  body.home .news-grid::-webkit-scrollbar{ display:none; }
  body.home .news-card{
    flex:0 0 min(84vw,430px) !important;
    min-height:390px !important;
    border-radius:26px !important;
    scroll-snap-align:center;
    border:1px solid rgba(255,255,255,.10) !important;
    box-shadow:0 20px 50px rgba(0,0,0,.28) !important;
  }
  body.home .news-card-overlay{ padding:22px !important; }
  body.home .news-card h3{ font-size:clamp(21px,5.2vw,27px) !important; line-height:1.08 !important; }
  body.home .news-card p{ font-size:14px !important; line-height:1.48 !important; color:rgba(244,248,255,.78) !important; }
  body.home .news-note{ font-size:12.5px !important; line-height:1.45 !important; }

  /* ---------------- SERVICES: swipeable mobile catalogue ---------------- */
  body.page-services > .hero{ min-height:44svh !important; }
  .mobile-services-intro{
    display:block !important;
    max-width:760px;
    margin:0 0 22px !important;
  }
  .mobile-services-intro .mx-kicker,
  .mobile-contact-kicker{
    display:block;
    margin:0 0 7px;
    color:#74aaff;
    font-size:11px !important;
    line-height:1.2 !important;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.18em;
  }
  .mobile-services-intro h2{
    margin:0;
    font-size:clamp(29px,7vw,44px) !important;
    line-height:1.03 !important;
    letter-spacing:-.04em;
  }
  .mobile-services-intro p{
    margin:10px 0 0;
    max-width:38rem;
    color:var(--mx-muted);
    font-size:15px !important;
    line-height:1.55 !important;
  }
  body.page-services main > section{
    padding-top:46px !important;
    padding-bottom:44px !important;
    overflow:hidden;
  }
  body.page-services .services-grid{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory;
    overscroll-behavior-inline:contain;
    padding:4px var(--mx-edge) 20px !important;
    margin-left:calc(-1 * var(--mx-edge)) !important;
    margin-right:calc(-1 * var(--mx-edge)) !important;
    scrollbar-width:none;
    perspective:none !important;
  }
  body.page-services .services-grid::-webkit-scrollbar{ display:none; }
  body.page-services .service{
    flex:0 0 min(82vw,390px) !important;
    min-height:420px !important;
    scroll-snap-align:center;
    padding:26px 24px !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    text-align:left !important;
    border-radius:28px !important;
    border:1px solid rgba(255,255,255,.11) !important;
    background:
      radial-gradient(circle at 85% 0%,rgba(63,143,255,.17),transparent 45%),
      linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.025)) !important;
    box-shadow:0 18px 45px rgba(0,0,0,.26) !important;
    transform:none !important;
    cursor:default !important;
  }
  body.page-services .service .icon{
    width:62px !important;
    height:62px !important;
    min-height:62px !important;
    display:grid !important;
    place-items:center !important;
    margin:0 0 auto !important;
    padding:14px !important;
    border-radius:20px !important;
    background:rgba(72,143,255,.11) !important;
    border:1px solid rgba(110,171,255,.20) !important;
  }
  body.page-services .service .icon svg{ fill:#73adff !important; }
  body.page-services .service h3{
    margin:26px 0 10px !important;
    font-size:clamp(24px,6vw,31px) !important;
    line-height:1.05 !important;
    letter-spacing:-.025em !important;
  }
  body.page-services .service-summary{ display:block !important; }
  body.page-services .service-summary p{
    margin:0 !important;
    color:#f1f6ff !important;
    font-size:15px !important;
    line-height:1.5 !important;
  }
  body.page-services .service .service-detail{
    display:block !important;
    margin-top:12px !important;
  }
  body.page-services .service .service-detail p{
    margin:0 !important;
    color:rgba(229,237,248,.64) !important;
    font-size:13.5px !important;
    line-height:1.52 !important;
  }
  body.page-services .service.coming{ opacity:.74; }
  body.page-services .coming-soon-badge{
    order:4;
    margin:14px 0 0 !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    font-size:10px !important;
    letter-spacing:.12em !important;
  }

  /* ---------------- PORTFOLIO: touch-first project dossiers ---------------- */
  body.page-portfolio > .hero{ min-height:42svh !important; }
  body.page-portfolio .portfolio-pockets-intro{
    padding:48px var(--mx-edge) 28px !important;
    text-align:left !important;
    background:#f5f3ed !important;
  }
  body.page-portfolio .portfolio-pockets-intro .pocket-eyebrow{
    margin:0 0 9px !important;
    font-size:10.5px !important;
    letter-spacing:.15em !important;
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
  body.page-portfolio .portfolio-pockets-intro h2{
    margin:0 0 13px !important;
    max-width:680px !important;
    font-size:clamp(31px,7.8vw,48px) !important;
    line-height:1.01 !important;
    letter-spacing:-.045em !important;
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
  body.page-portfolio .portfolio-pockets-intro > p:not(.pocket-eyebrow){
    margin:0 !important;
    max-width:620px !important;
    font-size:15px !important;
    line-height:1.55 !important;
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
  body.page-portfolio .portfolio-pockets{
    padding:10px var(--mx-edge) 48px !important;
    background:linear-gradient(180deg,#f5f3ed 0%,#e8e1d2 100%) !important;
  }
  body.page-portfolio .portfolio-pocket{
    margin:0 auto 12px !important;
    transform:none !important;
    filter:drop-shadow(0 16px 24px rgba(42,34,20,.10)) !important;
  }
  body.page-portfolio .pocket-tab{
    min-height:100px !important;
    grid-template-columns:44px 1fr 40px !important;
    gap:12px !important;
    padding:18px 15px !important;
    border-radius:24px !important;
    background:linear-gradient(155deg,#e7dcc2,#d9c9a4) !important;
  }
  body.page-portfolio .portfolio-pocket.is-featured .pocket-tab{
    background:linear-gradient(155deg,#d8be6a,#b99a37) !important;
  }
  body.page-portfolio .pocket-tab::after{ display:none !important; }
  body.page-portfolio .pocket-number{
    width:40px !important;
    height:40px !important;
    font-size:11px !important;
  }
  body.page-portfolio .pocket-client{
    font-size:clamp(19px,5vw,24px) !important;
    line-height:1.05 !important;
  }
  body.page-portfolio .pocket-type{
    margin-top:2px !important;
    font-size:12px !important;
    line-height:1.3 !important;
  }
  body.page-portfolio .pocket-status{ display:none !important; }
  body.page-portfolio .pocket-icon{ width:38px !important; height:38px !important; }
  body.page-portfolio .pocket-content{
    grid-template-columns:1fr !important;
    gap:20px !important;
    padding:14px !important;
    border-radius:0 0 24px 24px !important;
  }
  body.page-portfolio .pocket-media{
    width:100% !important;
    max-height:none !important;
    border-radius:20px !important;
    aspect-ratio:4/5 !important;
    box-shadow:0 18px 38px rgba(0,0,0,.18) !important;
  }
  body.page-portfolio .pocket-media--vertical{
    width:min(100%,360px) !important;
    aspect-ratio:9/16 !important;
  }
  body.page-portfolio .pocket-copy{ padding:2px 4px 8px !important; }
  body.page-portfolio .pocket-copy h3{
    margin:5px 0 12px !important;
    font-size:clamp(25px,6.3vw,35px) !important;
    line-height:1.02 !important;
  }
  body.page-portfolio .pocket-copy p{
    font-size:14px !important;
    line-height:1.58 !important;
  }
  body.page-portfolio .portfolio-pockets .badge{ font-size:11px !important; padding:7px 9px !important; }

  /* ---------------- ABOUT: editorial profiles, not desktop cards ---------------- */
  body.page-about > .hero{
    min-height:44svh !important;
  }
  body.page-about > .hero.hero-chi-siamo::before{
    background-position:center 22% !important;
  }
  body.page-about .duo-stage{
    padding:44px var(--mx-edge) 46px !important;
    overflow:visible !important;
    background:
      radial-gradient(circle at 0 0,rgba(43,100,205,.17),transparent 34rem),
      #07101e !important;
  }
  body.page-about .duo-grid{ gap:42px !important; }
  body.page-about .duo-member{
    width:100% !important;
    max-width:640px !important;
    padding:0 !important;
    margin:0 auto !important;
    opacity:1 !important;
    transform:none !important;
  }
  body.page-about .duo-figure{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:4/5 !important;
    margin:0 !important;
    opacity:1 !important;
    transform:none !important;
    overflow:hidden !important;
    border-radius:30px !important;
  }
  body.page-about .duo-figure img,
  body.page-about .duo-figure img.mirror{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    border-radius:30px !important;
    transform:none !important;
    transition:none !important;
    box-shadow:none !important;
    filter:none !important;
  }
  body.page-about .duo-card,
  body.page-about .duo-left .duo-card,
  body.page-about .duo-right .duo-card{
    position:relative !important;
    z-index:4 !important;
    width:calc(100% - 22px) !important;
    max-width:none !important;
    margin:-46px auto 0 !important;
    padding:22px 20px !important;
    border-radius:25px !important;
    background:rgba(9,18,33,.94) !important;
    border:1px solid rgba(255,255,255,.11) !important;
    -webkit-backdrop-filter:blur(18px) !important;
    backdrop-filter:blur(18px) !important;
    box-shadow:0 24px 50px rgba(0,0,0,.30) !important;
  }
  body.page-about .duo-card h2{
    margin:0 0 10px !important;
    font-size:clamp(30px,7.5vw,42px) !important;
    line-height:1 !important;
    letter-spacing:-.04em !important;
  }
  body.page-about .duo-card p{ font-size:14.5px !important; line-height:1.58 !important; color:rgba(244,248,255,.80) !important; }
  body.page-about .duo-card ul{
    list-style:none !important;
    padding:0 !important;
    margin:18px 0 0 !important;
    display:grid !important;
    gap:8px !important;
  }
  body.page-about .duo-card li{
    margin:0 !important;
    padding:10px 12px 10px 36px !important;
    position:relative;
    border-radius:14px !important;
    background:rgba(255,255,255,.045) !important;
    color:rgba(245,249,255,.84) !important;
    font-size:13.5px !important;
    line-height:1.35 !important;
  }
  body.page-about .duo-card li::before{
    content:'✓';
    position:absolute;
    left:12px;
    color:#77aeff;
    font-weight:900;
  }
  body.page-about .certifications{ margin-top:18px !important; }
  body.page-about .cert-badges{ gap:8px !important; }
  body.page-about .cert-badge{ width:50px !important; height:50px !important; }

  /* ---------------- CONTACT: single-task mobile sheet ---------------- */
  body.page-contact{ min-height:100svh; }
  body.page-contact #contact-app{
    min-height:0 !important;
    display:block !important;
    padding:112px 0 42px !important;
  }
  body.page-contact #contact-app .shell{
    width:min(100% - (var(--mx-edge) * 2),680px) !important;
    margin:0 auto !important;
  }
  .mobile-contact-intro{
    display:block !important;
    margin:0 0 24px !important;
  }
  .mobile-contact-title{
    margin:0 !important;
    max-width:15ch;
    color:#fff !important;
    font-size:clamp(38px,9vw,58px) !important;
    line-height:.98 !important;
    letter-spacing:-.048em !important;
  }
  .mobile-contact-intro p{
    margin:13px 0 0 !important;
    max-width:34rem;
    color:var(--mx-muted) !important;
    font-size:15px !important;
    line-height:1.55 !important;
  }
  body.page-contact #contact-app .grid-2{
    display:flex !important;
    flex-direction:column !important;
    gap:16px !important;
    margin:0 !important;
  }
  body.page-contact #contact-app .card{
    width:100% !important;
    padding:21px !important;
    border-radius:26px !important;
    border:1px solid rgba(255,255,255,.10) !important;
    background:linear-gradient(150deg,rgba(255,255,255,.055),rgba(255,255,255,.025)) !important;
    box-shadow:0 20px 46px rgba(0,0,0,.20) !important;
  }
  body.page-contact #contact-app .card:first-child > h3{ display:none !important; }
  body.page-contact #contact-app .card h3{
    margin:0 0 10px !important;
    font-size:24px !important;
    letter-spacing:-.025em !important;
  }
  body.page-contact .trust-line{
    margin:0 0 16px !important;
    padding:9px 11px !important;
    width:max-content;
    max-width:100%;
    border-radius:999px;
    background:rgba(43,118,239,.10);
    border:1px solid rgba(88,155,255,.16);
    color:rgba(238,245,255,.78);
    font-size:11.5px !important;
  }
  body.page-contact form label{
    margin:13px 0 6px !important;
    font-size:12px !important;
    color:rgba(241,246,255,.72) !important;
  }
  body.page-contact form input[type=text],
  body.page-contact form input[type=email],
  body.page-contact form input:not([type]),
  body.page-contact form textarea{
    min-height:52px !important;
    padding:14px 15px !important;
    border-radius:16px !important;
    background:rgba(255,255,255,.045) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    font-size:16px !important;
  }
  body.page-contact form textarea{ min-height:132px !important; }
  body.page-contact .privacy{
    align-items:flex-start !important;
    margin-top:14px !important;
    line-height:1.4 !important;
  }
  body.page-contact .privacy input{ width:20px !important; min-width:20px !important; height:20px !important; margin-top:1px; }
  body.page-contact .form-actions{ display:grid !important; gap:12px !important; margin-top:0 !important; }
  body.page-contact #invia{
    width:100% !important;
    min-height:56px !important;
    justify-content:center !important;
    border-radius:17px !important;
  }
  body.page-contact #contact-app .card.motion-right{
    text-align:center !important;
    padding:20px !important;
  }
  body.page-contact #contact-app .card.motion-right p{ margin:8px 0 !important; font-size:14px !important; }
  body.page-contact .cta-wa{
    width:100% !important;
    min-height:52px !important;
    margin-top:7px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:16px !important;
    background:rgba(255,255,255,.045) !important;
  }
  body.page-contact .socials{ display:none !important; } /* fixed social dock already does this job */

  /* ---------------- SOCIAL DOCK: keep the element the user likes ---------------- */
  .site-footer{ display:none !important; }
  .social-dock{
    display:block !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:10040 !important;
    padding:8px 12px calc(10px + env(safe-area-inset-bottom)) !important;
    pointer-events:none !important;
  }
  .social-dock__inner{
    width:max-content !important;
    max-width:calc(100vw - 24px) !important;
    margin:0 auto !important;
    gap:6px !important;
    padding:8px 10px !important;
    border-radius:999px !important;
    background:rgba(5,10,18,.72) !important;
    border:1px solid rgba(255,255,255,.14) !important;
    -webkit-backdrop-filter:blur(20px) saturate(130%) !important;
    backdrop-filter:blur(20px) saturate(130%) !important;
    box-shadow:0 16px 44px rgba(0,0,0,.34) !important;
    pointer-events:auto !important;
  }
  .social-dock .dock-social{
    width:44px !important;
    height:44px !important;
    min-height:44px !important;
  }
  .social-dock .dock-social svg{ width:22px !important; height:22px !important; }
  .social-dock .dock-social--wa svg{ width:28px !important; height:28px !important; }

  /* soft entrance for blocks — JS adds these classes only on mobile */
  body.mobile-experience-active .mx-reveal{
    opacity:0;
    transform:translateY(14px);
    transition:opacity .62s ease,transform .62s cubic-bezier(.2,.8,.2,1);
  }
  body.mobile-experience-active .mx-reveal.mx-in{
    opacity:1;
    transform:none;
  }

  /* clean scrollbars on intentional swipe rows */
  .services-grid,.news-grid,.mobile-trust{ -webkit-overflow-scrolling:touch; }
}

@media (max-width: 560px){
  body.home .hero-cta{ grid-template-columns:1fr !important; }
  body.home .hero-inner{ padding:19px !important; border-radius:24px !important; }
  body.home .hero-title{ font-size:clamp(39px,12.2vw,58px) !important; }
  body.page-services .service{ flex-basis:86vw !important; }
  body.page-contact #contact-app .card{ padding:18px !important; }
}

@media (min-width: 700px) and (max-width:1024px){
  :root{ --mx-edge:34px; }
  body.home .hero-inner{ max-width:680px !important; }
  body.page-services .service{ flex-basis:360px !important; }
  body.page-about .duo-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items:start !important;
    gap:22px !important;
  }
  body.page-about .duo-card{ width:calc(100% - 14px) !important; padding:20px 18px !important; }
  body.page-contact #contact-app .grid-2{ gap:20px !important; }
}

@media (prefers-reduced-motion:reduce){
  @media (max-width:1024px){
    *{ scroll-behavior:auto !important; }
    body.mobile-experience-active .mx-reveal,
    body.mobile-experience-active .mx-reveal.mx-in{ opacity:1 !important; transform:none !important; transition:none !important; }
  }
}

/* final conflict guards */
@media (max-width:1024px){
  header nav .brand,
  header nav .nav-toggle{ position:relative !important; z-index:3 !important; }
  header .mobile-menu{ z-index:2 !important; }
  body.nav-open{ overflow:hidden !important; }

  body.page-services .service .icon{ margin:0 0 42px !important; }
  body.page-services .service h3{ margin:0 0 10px !important; }
  body.page-services .service .icon .service-detail{ display:none !important; }
  body.page-services .service > .service-detail{ display:block !important; margin-top:12px !important; }
}
