/* Keep header fixed and tappable on mobile */
.site-header{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;z-index:1000!important;}
.site-header .brand{position:relative;z-index:1001;}
.site-header .header-mobile{position:relative;z-index:1000;}

/* Mobile fixes isolated to preserve desktop layout */
html,body{overflow-x:hidden;}
img,svg,video,canvas{max-width:100%;height:auto;}
iframe{max-width:100%;}
input,select,textarea,button{font:inherit;}
@media (max-width: 980px){
  .site-header .header-inner{padding-left:16px!important;padding-right:16px!important;gap:10px!important;}
  .site-header .brand{min-width:0!important;max-width:calc(100% - 56px)!important;}
  .site-header .brand-text{font-size:22px!important;gap:4px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .site-header .brand-sub{font-size:12px!important;}
  .site-header .header-mobile{padding-left:16px!important;padding-right:16px!important;padding-bottom:16px!important;}
  .site-header .header-mobile-item{min-height:48px;}
}
@media (max-width: 768px){
  body{font-size:16px;}
  main{overflow-x:hidden;}
  .mepa-wrap,.site-footer .footer-inner{padding-left:16px!important;padding-right:16px!important;}
  .mepa-box{padding:16px!important;}
  .mepa-sub,.site-footer .footer-inner{font-size:13px!important;line-height:1.55!important;}

  /* servizi */
  .filter-bar-wrapper{top:64px!important;padding:10px 12px 12px!important;overflow-x:auto;justify-content:flex-start!important;}
  .filter-bar{width:max-content;max-width:none!important;min-width:100%;padding:5px!important;}
  .filter-btn{padding:8px 14px!important;font-size:13px!important;min-height:40px;}
  .services-grid{padding:16px!important;gap:18px!important;}
  .clean-card{border-radius:20px!important;}
  .card-img-container{height:220px!important;}
  .card-img-container.tall{height:250px!important;}
  .card-content{padding:18px!important;}
  .card-title{font-size:1.1rem!important;line-height:1.2!important;max-width:calc(100% - 44px);}
  .card-desc{font-size:.93rem!important;line-height:1.5!important;margin-bottom:1.1rem!important;}
  .card-arrow{bottom:16px!important;right:16px!important;}
  .badge{top:12px!important;left:12px!important;font-size:11px!important;padding:6px 10px!important;}
  .graphic-content,.graphic-img-box{width:100%!important;}
  .graphic-banner{display:block!important;}
  .graphic-content{padding:1.25rem!important;}
  .graphic-img-box{height:220px!important;}
  .modal-backdrop{padding:14px!important;align-items:flex-end!important;}
  .modal-card{width:100%!important;max-width:none!important;max-height:calc(100dvh - 28px)!important;border-radius:22px 22px 18px 18px!important;overflow:auto!important;}
  .modal-card>div:first-child{min-height:220px;}
  #modal-title{font-size:1.55rem!important;line-height:1.15!important;}
  #modal-desc{margin-bottom:1.25rem!important;font-size:.98rem!important;line-height:1.6!important;}
  .modal-close-btn{top:12px!important;right:12px!important;}

  /* grafica */
  .grafica-shell{padding:20px 14px 48px!important;}
  .grafica-worktop{border-radius:22px!important;overflow:hidden;}
  .grafica-topbar{padding:12px 14px!important;gap:8px!important;}
  .grafica-topbar-center,.grafica-topbar-right{width:100%;justify-content:flex-start;overflow-x:auto;}
  .grafica-artboard{padding:18px 14px!important;}
  .grafica-board-header{gap:16px!important;}
  .grafica-title{font-size:34px!important;line-height:.95!important;}
  .grafica-subtitle{font-size:15px!important;line-height:1.6!important;}
  .grafica-mini-card{padding:12px 14px!important;}
  .grafica-piece{padding:52px 14px 16px!important;min-height:auto!important;}
  .grafica-piece-label{top:12px!important;left:12px!important;font-size:10px!important;padding:6px 10px!important;}
  .grafica-note-tag{position:relative!important;left:auto!important;bottom:auto!important;margin-top:12px!important;display:inline-flex!important;}
  .grafica-piece.is-logo-real .grafica-real-img{max-height:150px!important;max-width:78%!important;}
  .grafica-piece.is-flyer-real .grafica-real-img{max-width:84%!important;max-height:150px!important;}
  .grafica-piece.is-card-real .grafica-cards-duo{max-width:240px!important;min-height:136px!important;}
  .grafica-piece.is-card-real .grafica-card-shot{width:67%!important;}
  .grafica-piece.is-card-real .card-one{left:8px!important;top:18px!important;}
  .grafica-piece.is-card-real .card-two{right:8px!important;top:6px!important;}
  .grafica-panel-card{padding:14px!important;}
  .grafica-panel-card .grafica-cta{width:100%;justify-content:center;}
}
@media (max-width: 480px){
  .site-header .brand-text{font-size:20px!important;}
  .site-header .brand-logo{height:34px!important;}
  .filter-btn{padding:8px 12px!important;font-size:12px!important;}
  .services-grid{padding:14px!important;gap:16px!important;}
  .card-img-container{height:200px!important;}
  .grafica-title{font-size:30px!important;}
  .grafica-piece{padding:50px 12px 14px!important;}
  .grafica-artboard{padding:16px 12px!important;}
}

body.has-header-gap{padding-top:136px!important;}

@media (max-width: 980px){body.has-header-gap{padding-top:116px!important;}}


/* Fix Solaroli: logo mobile non tagliato */
@media (max-width: 980px){
  .site-header .brand{max-width:none!important;min-width:0!important;overflow:visible!important;}
  .site-header .brand-logo{height:38px!important;width:auto!important;max-width:none!important;object-fit:contain!important;}
  .site-header .brand-text{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;font-size:20px!important;}
  .site-header .header-inner{justify-content:space-between!important;}
}
@media (max-width: 380px){
  .site-header .brand{gap:8px!important;}
  .site-header .brand-logo{height:34px!important;}
  .site-header .brand-text{font-size:18px!important;}
  .site-header .brand-sub{font-size:10px!important;}
}


/* Solaroli extra fixes - servizi mobile e testi non sfocati */
@media (max-width: 768px){
  .services-grid{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;}
  .services-grid .clean-card{display:flex!important;width:100%!important;opacity:1!important;transform:none!important;visibility:visible!important;}
  .services-grid .clean-card.hidden-item{display:none!important;}
  .services-grid .fade-in-up{opacity:1!important;transform:none!important;}
  .services-grid .col-span-2{grid-column:span 1!important;}
}
.noi-card p, .noi-card li, .competence-card p, .competence-card li{filter:none!important;text-shadow:none!important;}
.site-footer .footer-inner p{line-height:1.55;}
