/* CodeForge Studio — Mobile & Tablet optimizations */

/* Drawer auf Desktop verstecken – sonst Link-Zeile am Seitenende (main.js hängt nav ans body-Ende) */
#mobileNavDrawer.mobile-nav-drawer:not(.is-open),
.mobile-nav-drawer:not(.is-open) {
  display: none !important;
  visibility: hidden;
  pointer-events: none;
}

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  overflow-y: auto;
}

body {
  overflow-x: clip;
  width: 100%;
  max-width: 100vw;
}

.page-forge,
.page-home {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

.page-forge .site-footer,
.page-home .site-footer {
  padding-bottom: calc(2rem + env(safe-area-inset-bottom));
}

/* Mobile Navigation – eigener Drawer (kein Konflikt mit .main-nav in style.css) */
@media (max-width: 1280px) {
  :root {
    --header-mobile-h: 56px;
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 10035;
    backdrop-filter: none !important;
    isolation: auto;
  }

  .header-inner {
    position: relative;
    z-index: 10036;
  }

  /* Original-Nav nur für Desktop-Kopie – auf Mobile unsichtbar */
  #mainNav.main-nav {
    display: none !important;
  }

  .nav-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0.35rem;
    margin: -0.35rem -0.35rem -0.35rem 0;
    position: relative;
    z-index: 10037;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    color: #f1f5f9;
    font-size: 1.5rem;
    line-height: 1;
    background: transparent;
    border: none;
  }

  body.nav-open .nav-toggle {
    color: #22d3ee;
  }

  .nav-backdrop {
    z-index: 10025;
  }

  body.nav-open {
    overflow: hidden !important;
  }

  body.nav-open .nav-backdrop {
    opacity: 1;
    pointer-events: auto;
  }

  /* Separates Mobile-Menü am body */
  .mobile-nav-drawer {
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
    position: fixed;
    top: var(--header-mobile-h);
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    margin: 0;
    padding: 1rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom));
    background: #020617;
    border-top: 1px solid rgba(34, 211, 238, 0.15);
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    z-index: 10030;
    list-style: none;
  }

  .mobile-nav-drawer.is-open {
    display: flex !important;
    visibility: visible;
    pointer-events: auto;
  }

  .mobile-nav-drawer a {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 0.85rem 0.75rem;
    border-radius: 0.65rem;
    font-size: 1.05rem;
    font-weight: 500;
    color: #f1f5f9;
    text-decoration: none;
    touch-action: manipulation;
  }

  .mobile-nav-drawer a:active,
  .mobile-nav-drawer a:focus-visible {
    background: rgba(34, 211, 238, 0.15);
    color: #22d3ee;
    outline: none;
  }

  .mobile-nav-drawer a.nav-cta {
    justify-content: center;
    margin-top: 0.75rem;
    color: #020617;
    background: #22d3ee;
    font-weight: 700;
    box-shadow: 0 0 20px rgba(34, 211, 238, 0.35);
  }
}

@media (max-width: 768px) {
  .container {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .section {
    padding: 2.75rem 0;
  }

  .section-title {
    font-size: clamp(1.45rem, 5.5vw, 1.85rem);
    line-height: 1.2;
  }

  .section-intro {
    margin-bottom: 1.75rem;
    font-size: 0.98rem;
  }

  .page-forge main > .section:first-child,
  .page-forge .project-header {
    padding-top: 3.25rem;
  }

  .two-col {
    gap: 1.5rem;
  }

  .footer-inner {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }

  .footer-inner p {
    margin: 0;
    font-size: 0.9rem;
  }

  .footer-links {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem 1rem;
  }

  .hero-actions,
  .forge-hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .hero-actions .btn,
  .forge-hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  .page-forge .pricing-grid {
    grid-template-columns: 1fr;
  }

  .page-forge .price {
    font-size: 1.55rem;
  }

  .page-forge .card,
  .page-forge .info-box,
  .page-forge .pricing-card {
    padding: 1.25rem 1.15rem;
  }

  .page-forge .project-card {
    padding: 1.25rem;
    gap: 1rem;
  }

  .page-forge .checklist-form {
    padding: 1.25rem 1rem;
  }

  .page-forge .checklist-form fieldset {
    padding: 1rem;
  }

  .page-forge .section-cta .container,
  .page-forge .cta-inner {
    padding: 2rem 1.15rem;
  }

  .page-forge .project-layout {
    grid-template-columns: 1fr;
  }

  .page-forge .project-sidebar .info-box {
    position: static;
  }

  .page-forge .faq summary {
    padding: 0.9rem 1rem;
    font-size: 0.95rem;
  }
}

@media (max-width: 480px) {
  .header-inner {
    height: 56px;
  }

  .lang-switch {
    margin-left: auto;
    margin-right: 0.35rem;
  }

  .lang-switch__btn {
    padding: 0.3rem 0.45rem;
    font-size: 0.65rem;
  }

  .logo {
    height: 34px;
  }

  .forge-hero {
    min-height: auto;
    padding: 1.75rem 0 2.5rem;
  }

  .forge-hero__grid {
    gap: 1.75rem;
  }

  .forge-hero__title {
    font-size: clamp(1.85rem, 8.5vw, 2.5rem);
  }

  .forge-hero__lead {
    font-size: 1rem;
    margin-bottom: 1.35rem;
  }

  .forge-badge {
    font-size: 0.65rem;
    padding: 0.35rem 0.75rem;
  }

  .forge-stats {
    gap: 1rem 1.25rem;
  }

  .forge-stat__num {
    font-size: 1.4rem;
  }

  .forge-stat__label {
    font-size: 0.75rem;
  }

  .forge-terminal {
    animation: none;
  }

  .forge-terminal__body {
    min-height: 200px;
    padding: 0.85rem 1rem;
    font-size: 0.72rem;
    line-height: 1.55;
  }

  .forge-terminal__title {
    font-size: 0.6rem;
    max-width: 50%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .forge-section {
    padding: 2.75rem 0;
  }

  .forge-section__head {
    margin-bottom: 1.75rem;
  }

  .forge-section__intro {
    font-size: 0.95rem;
  }

  .forge-project {
    flex: 0 0 92vw;
    padding: 1.15rem;
  }

  .forge-project__title {
    font-size: 1.25rem;
  }

  .forge-bento__card {
    padding: 1.15rem;
  }

  .forge-bento__icon {
    font-size: 1.5rem;
  }

  .forge-about {
    gap: 2rem;
  }

  .forge-about__visual {
    max-width: 280px;
  }

  .forge-cta {
    padding: 2.25rem 1.15rem;
  }

  .forge-marquee__item {
    padding: 0 1rem;
    font-size: 0.78rem;
  }

  .project-gallery {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .btn {
    padding: 0.8rem 1.1rem;
    font-size: 0.95rem;
  }

  /* Inputs: 16px verhindert iOS-Zoom beim Fokus */
  .page-forge input,
  .page-forge textarea,
  .page-forge select {
    font-size: 16px;
  }
}

@media (max-width: 360px) {
  .forge-hero__title {
    font-size: 1.75rem;
  }

  .mobile-nav-drawer a {
    font-size: 0.98rem;
  }
}
