/* Final mobile-first corrections. Loaded last on every page. */
@media (max-width: 767px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important}
  *,*::before,*::after{box-sizing:border-box}
  body{min-width:0!important}
  main.elementor,.elementor,.e-con,.e-con-inner,.elementor-element,.elementor-widget,.elementor-widget-container{max-width:100%!important}
  .e-con,.e-con>.e-con-inner{width:100%!important;min-width:0!important}
  .e-con>.e-con-inner{margin-left:auto!important;margin-right:auto!important}
  img,svg,video,iframe{max-width:100%!important;height:auto}

  /* One consistent compact header on all pages */
  .gpen-static-header,.elementor-element-fa2ae66{position:sticky!important;top:0!important;z-index:99999!important;width:100%!important;min-height:64px!important;background:#231326!important;padding:0 16px!important;box-shadow:0 6px 22px rgba(0,0,0,.22)!important}
  .gpen-static-header>.e-con-inner,.elementor-element-fa2ae66>.e-con-inner{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:64px!important;gap:10px!important;padding:0!important}
  .elementor-element-8949b45,.elementor-element-adf61c7{width:auto!important;min-width:0!important;flex:0 0 96px!important;--width:96px!important}
  .elementor-element-644d1cf,.elementor-element-a9e2525{padding:0!important;margin:0!important;width:96px!important}
  .elementor-element-644d1cf img,.elementor-element-a9e2525 img{display:block!important;width:92px!important;max-width:92px!important;height:auto!important}
  .elementor-element-6984774,.elementor-element-32243a4{width:auto!important;flex:0 0 auto!important;--width:auto!important;margin-left:auto!important}
  .elementor-element-3124bba,.elementor-element-e4f025b{display:none!important}
  .elementor-nav-menu--main{display:none!important}
  .elementor-menu-toggle{display:flex!important;align-items:center!important;justify-content:center!important;width:44px!important;height:44px!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;color:#fff!important;font-size:26px!important;line-height:1!important}
  .elementor-nav-menu--dropdown{display:none!important;position:fixed!important;top:64px!important;left:0!important;right:0!important;width:100vw!important;max-width:100vw!important;background:#231326!important;border-top:1px solid rgba(255,255,255,.08)!important;box-shadow:0 18px 30px rgba(0,0,0,.34)!important;padding:8px 16px 16px!important;z-index:99998!important}
  .elementor-nav-menu--dropdown.is-open{display:block!important}
  .elementor-nav-menu--dropdown .elementor-nav-menu{display:block!important;width:100%!important}
  .elementor-nav-menu--dropdown .menu-item{width:100%!important}
  .elementor-nav-menu--dropdown .elementor-item{display:block!important;width:100%!important;padding:13px 8px!important;color:#fff!important;font-size:16px!important;text-align:left!important;border-bottom:1px solid rgba(255,255,255,.06)!important}
  .elementor-nav-menu--dropdown .elementor-item-active{color:#f27d72!important}

  /* Remove Elementor desktop hard widths/negative offsets that break phones */
  .elementor-1675 .e-con,.elementor-1680 .e-con,.elementor-1685 .e-con,.elementor-1690 .e-con{--width:100%!important;--content-width:100%!important}
  .elementor-1675 .elementor-element-47b5469,
  .elementor-1675 .elementor-element-50f4f03,
  .elementor-1685 .elementor-element-4ac1a53,
  .elementor-1685 .elementor-element-87fb66b,
  .elementor-1685 .elementor-element-fe278c5,
  .elementor-1685 .elementor-element-13f6ba6{margin-top:0!important;--margin-top:0!important}

  /* Comfortable mobile spacing and type */
  .elementor-widget-heading .elementor-heading-title{overflow-wrap:anywhere}
  .elementor-widget-text-editor,.elementor-widget-text-editor p{font-size:15px!important;line-height:1.6!important}
  a.elementor-button,.elementor-button,.wpforms-submit{min-height:44px!important;font-size:14px!important;padding:12px 18px!important}
  .elementor-1675 h1.elementor-heading-title,.elementor-1680 h1.elementor-heading-title,.elementor-1685 h1.elementor-heading-title,.elementor-1690 h1.elementor-heading-title{font-size:clamp(34px,10vw,44px)!important;line-height:1.06!important}
  .elementor-1675 h2.elementor-heading-title,.elementor-1680 h2.elementor-heading-title,.elementor-1685 h2.elementor-heading-title,.elementor-1690 h2.elementor-heading-title{font-size:clamp(26px,8vw,34px)!important;line-height:1.12!important}

  /* Home */
  .elementor-1675 .elementor-element-47b5469,.elementor-1675 .elementor-element-929b833{width:100%!important;--width:100%!important}
  .elementor-1675 .elementor-element-47b5469{padding:34px 20px 10px!important}
  .elementor-1675 .elementor-element-929b833{padding-left:16px!important;padding-right:16px!important}
  .elementor-widget-media-carousel .elementor-main-swiper{width:100%!important;overflow:hidden!important}
  .elementor-widget-media-carousel .swiper-slide{flex:0 0 100%!important;width:100%!important;max-width:100%!important;aspect-ratio:4/5!important}
  .elementor-widget-media-carousel .gpen-carousel-img,.elementor-widget-media-carousel .elementor-carousel-image{width:100%!important;height:100%!important;object-fit:cover!important}

  /* Work: make tabs usable and galleries single-column */
  .elementor-1680 .e-n-tabs-heading{display:flex!important;overflow-x:auto!important;white-space:nowrap!important;gap:8px!important;padding-bottom:8px!important;scrollbar-width:none}
  .elementor-1680 .e-n-tabs-heading::-webkit-scrollbar{display:none}
  .elementor-1680 .e-n-tab-title{flex:0 0 auto!important;min-width:max-content!important}
  .elementor-1680 .elementor-image-gallery .gallery,.elementor-1680 .gallery{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;width:100%!important}
  .elementor-1680 .gallery-item{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}
  .elementor-1680 .gallery-item img{display:block!important;width:100%!important;height:auto!important}

  /* About cards and sections */
  .elementor-1685 .elementor-element-63d78f3{padding:34px 20px 0!important;--padding-top:34px!important;--padding-left:20px!important;--padding-right:20px!important}
  .elementor-1685 .elementor-element-d27ece9,.elementor-1685 .elementor-element-79d4565,.elementor-1685 .elementor-element-37d0b22{padding:22px 18px!important;--padding-top:22px!important;--padding-bottom:22px!important;--padding-left:18px!important;--padding-right:18px!important}

  /* Contact form */
  .elementor-1690 form,.elementor-1690 .wpforms-container,.elementor-1690 .wpforms-form{width:100%!important;max-width:100%!important}
  .elementor-1690 input,.elementor-1690 select,.elementor-1690 textarea{width:100%!important;max-width:100%!important;font-size:16px!important}

  /* Footer */
  footer,.elementor-location-footer{max-width:100%!important}
  .elementor-1675 .elementor-icon-list-items{width:100%!important}
}

@media (max-width: 390px){
  .gpen-static-header,.elementor-element-fa2ae66{padding-left:12px!important;padding-right:12px!important}
  .elementor-element-644d1cf img,.elementor-element-a9e2525 img{width:82px!important;max-width:82px!important}
  .elementor-1675 .elementor-element-47b5469{padding-left:16px!important;padding-right:16px!important}
}

/* 2026-08-25: iPhone/mobile scroll + hero-gap correction */
@media (max-width: 767px){
  html{
    height:auto!important;
    min-height:100%!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
  }
  body{
    position:relative!important;
    height:auto!important;
    min-height:100%!important;
    max-height:none!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:auto!important;
  }
  main.elementor,
  body > main.elementor,
  .elementor-page,
  .elementor-1675,
  .elementor-1680,
  .elementor-1685,
  .elementor-1690{
    position:relative!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }

  /* The original desktop Elementor container carries 150px top padding.
     On phones that becomes the large empty area seen below the header. */
  .elementor-1675 .elementor-element.elementor-element-cfb0203{
    --padding-top:28px!important;
    --padding-bottom:48px!important;
    --padding-left:20px!important;
    --padding-right:20px!important;
    padding:28px 20px 48px!important;
    margin:0!important;
    --margin-top:0!important;
    --margin-bottom:0!important;
    min-height:0!important;
    height:auto!important;
    align-items:stretch!important;
  }
  .elementor-1675 .elementor-element.elementor-element-cfb0203 > .e-con-inner{
    padding:0!important;
    margin:0 auto!important;
    min-height:0!important;
    height:auto!important;
    align-items:stretch!important;
  }
  .elementor-1675 .elementor-element.elementor-element-47b5469{
    margin:0!important;
    --margin-top:0!important;
    --margin-bottom:0!important;
    padding:0!important;
    min-height:0!important;
    height:auto!important;
  }
  .elementor-1675 .elementor-element.elementor-element-5cbebf6{
    margin-top:0!important;
    padding-top:0!important;
  }

  /* Keep vertical page gestures available even over carousel areas. */
  .swiper,
  .swiper-wrapper,
  .swiper-slide,
  .elementor-widget-media-carousel,
  .elementor-widget-media-carousel *{
    touch-action:pan-y!important;
  }
}
