.turnstile-group{margin-top:.5rem}
.turnstile-group .cf-turnstile{max-width:100%}

html,body{overflow-x:hidden}

/* Form validation UI (moved from JS injection) */
.error-message{color:#dc3545;font-size:.875rem;margin-top:.25rem;display:block}
.form-group.error input,.form-group.error textarea,.form-group.error select{border-color:#dc3545}

/* Scroll-to-top button (moved from JS injection) */
.scroll-to-top{position:fixed;bottom:2rem;right:2rem;background:#000;color:#fff;border:none;border-radius:50%;width:50px;height:50px;font-size:1.2rem;cursor:pointer;opacity:0;visibility:hidden;transition:all .3s ease;z-index:1000}
.scroll-to-top.visible{opacity:1;visibility:visible}
.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(0,0,0,.4);background:#333}

@media (max-width: 768px){
  /* Neutralize conflicting mobile-menu CSS injected by main.js */
  .main-navigation{position:relative !important;top:auto !important;left:auto !important;right:auto !important;background:transparent !important;transform:none !important;opacity:1 !important;visibility:visible !important}

  /* Always center logo in header on mobile */
  .header-content{position:relative}
  .site-title{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    margin:0;
    z-index:10;
    width:max-content;
  }

  /* Full-screen menu panel */
  .nav-menu{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    max-width:100% !important;
    height:100dvh !important;
    background:var(--bg-primary) !important;
    transform:translateX(-100%) !important;
    transition:transform .3s ease !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    justify-content:flex-start !important;
    align-items:stretch !important;
    gap:0 !important;
    z-index:2000 !important;
    padding:calc(70px + env(safe-area-inset-top) + 16px) 0 calc(env(safe-area-inset-bottom) + 16px) !important;
  }
  .nav-menu.active{transform:translateX(0) !important}
  .nav-menu li{width:100% !important}

  /* No extra highlighting / card styles */
  .nav-link{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    padding:16px 24px !important;
    border-radius:0 !important;
    transform:none !important;
    background:transparent !important;
  }
  .nav-menu .nav-link:hover,
  .nav-menu .nav-link:focus,
  .nav-menu .nav-link:active{
    background:transparent !important;
    color:var(--text-primary) !important;
    transform:none !important;
  }
  .nav-menu .nav-link.active::after{content:none !important}

  /* When menu is open: keep only the close (X) visible at top */
  body.menu-open .site-title{opacity:0 !important;pointer-events:none !important}
  body.menu-open .header-social .social-link{opacity:0 !important;pointer-events:none !important}
  body.menu-open .mobile-menu-toggle{
    position:fixed !important;
    top:calc(env(safe-area-inset-top) + 12px) !important;
    right:16px !important;
    z-index:2001 !important;
  }
}
