/* ==========================================================================
   PHOTOS BY SAM — Responsive Layer
   ========================================================================== */

/* ---------------------------------------------------- ≤ 1200px */
@media (max-width: 1200px) {
  .footer .row { grid-template-columns: 1.8fr 1fr 1.2fr 1.4fr; }
  .card-1 { left: -10px; }
  .card-2 { right: -6px; }
}

/* ---------------------------------------------------- ≤ 991px  (Tablet) */
@media (max-width: 991px) {
  :root { --section-y: clamp(64px, 10vw, 100px); }

  /* NAV → Fullscreen Overlay */
  .navbar-toggler { display: flex; }
  .navbar-collapse {
    position: fixed;
    inset: 0;
    z-index: 1100;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 100px 30px 60px;
    background: rgba(8, 8, 7, .97);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s var(--ease), visibility .5s;
  }
  .navbar-collapse.show {
    display: flex !important;
    opacity: 1;
    visibility: visible;
  }
  .navbar-nav {
    flex-direction: column;
    gap: 6px;
    width: 100%;
    max-width: 420px;
    text-align: center;
  }
  .navbar-nav .nav-item { width: 100%; }
  .nav-link {
    display: block;
    padding: 16px 0;
    font-family: var(--font-display);
    font-size: 1.7rem;
    letter-spacing: .04em;
    text-transform: none;
    color: var(--cream);
    border-bottom: 1px solid var(--line);
  }
  .nav-link::after { display: none; }
  .nav-link.active { color: var(--gold-200); }
  .nav-buttons { margin: 34px 0 0; }
  .btn-nav { padding: 15px 34px; font-size: .72rem; }

  /* HERO */
  .hero-section { min-height: auto; padding: 130px 0 80px; text-align: left; }
  .hero-section .row { grid-template-columns: 1fr; gap: 48px; }
  .hero-title { font-size: clamp(2.5rem, 9vw, 4rem); }
  .hero-image { max-width: 440px; margin-inline: auto; width: 100%; }
  .hero-scroll { display: none; }

  /* GRIDS */
  .row { grid-template-columns: repeat(6, minmax(0,1fr)); }
  .row > [class*="col-"] { grid-column: span 6; }
  .services-section .row { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .portfolio-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px; }
  .packages-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .testimonial-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .about-section .row { grid-template-columns: 1fr; gap: 48px; }
  .about-img { max-width: 460px; margin-inline: auto; width: 100%; }
  .about-img::after { display: none; }
  .contact-section .row, .contact-page-section .row { grid-template-columns: 1fr; }
  .footer .row { grid-template-columns: 1fr 1fr; }
  .footer p { max-width: none; }

  /* Cursor auf Touch aus */
  .cursor-dot, .cursor-ring { display: none; }
}

/* ---------------------------------------------------- ≤ 767px  (Mobile) */
@media (max-width: 767px) {
  body { font-size: 15px; }

  .navbar { padding: 18px 0; }
  .navbar.scrolled { padding: 12px 0; }
  .logo, .footer-logo { font-size: 1.1rem; letter-spacing: .12em; }

  .hero-section { padding: 120px 0 64px; }
  .hero-text { font-size: 1rem; }
  .hero-buttons { margin-bottom: 44px; gap: 12px; }
  .hero-buttons .btn-primary,
  .hero-buttons .btn-secondary { width: 100%; }
  .hero-stats { gap: 24px 34px; }
  .stat-item { min-width: 84px; }
  .floating-card { padding: 10px 15px; font-size: .6rem; }
  .card-1 { left: 0; top: 10px; }
  .card-2 { right: 0; bottom: 10px; }

  .services-section .row,
  .packages-grid,
  .testimonial-grid,
  .process-grid { grid-template-columns: 1fr; }
  .portfolio-grid { grid-template-columns: 1fr !important; }

  .portfolio-item .portfolio-img { aspect-ratio: 4 / 5 !important; }

  .price-card.premium-highlight::before { top: 16px; right: -46px; font-size: .5rem; padding: 6px 46px; }

  .faq-a p { padding-right: 0; }

  /* MODALS mobil = Bottom Sheet */
  .modal { padding: 0; align-items: flex-end; }
  .modal-content {
    max-width: none;
    max-height: 94vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    border-bottom: 0;
    animation: sheetUp .45s var(--ease-out-expo);
  }
  @keyframes sheetUp { from { transform: translateY(100%); } to { transform: translateY(0); } }
  .modal-header h3 { font-size: 1.1rem; }
  .modal-footer {
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-areas: "summary price" "back confirm";
    gap: 12px 14px;
    padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
  }
  .selected-summary { grid-area: summary; font-size: .72rem; align-self: center; }
  .total-price { grid-area: price; text-align: right; font-size: 1.15rem; white-space: normal; }
  .total-price strong { font-size: .58rem; letter-spacing: .12em; }
  .modal-footer .modal-back-btn { grid-area: back; justify-content: center; padding: 14px 12px; }
  .modal-footer .modal-confirm-btn { grid-area: confirm; padding: 14px 24px; }
  .modal-body { min-height: 34vh; }
  .form-row { grid-template-columns: 1fr; }
  .form-buttons { flex-direction: column-reverse; }
  .form-buttons > * { width: 100%; }
  .addons-grid { grid-template-columns: 1fr; }

  /* Lightbox */
  .lightbox-container { padding: 0 12px; }
  .lightbox-image { max-height: 66vh; }
  .lightbox-close { top: -58px; right: 8px; width: 44px; height: 44px; }
  .lightbox-prev, .lightbox-next { width: 44px; height: 44px; }
  .lightbox-prev { left: 4px; }
  .lightbox-next { right: 4px; }

  .footer .row { grid-template-columns: 1fr; gap: 34px; }
  .footer-bottom { flex-direction: column; text-align: center; }

  .toast-container { right: 12px; left: 12px; bottom: 12px; max-width: none; }
  .scroll-top { right: 16px; bottom: 16px; width: 46px; height: 46px; }

  .newsletter-form { flex-direction: column; }
  .newsletter-form .btn-newsletter { width: 100%; }

  .marquee-track { gap: 34px; }
  .marquee-track span { gap: 34px; }
}

/* ---------------------------------------------------- ≤ 420px */
@media (max-width: 420px) {
  :root { --gutter: 18px; }
  .hero-title { font-size: 2.35rem; }
  .package-price { font-size: 2.6rem; }
  .nav-link { font-size: 1.45rem; padding: 13px 0; }
  .btn-primary, .btn-secondary, .cta-button, .submit-btn { padding: 15px 24px; font-size: .68rem; }
}

/* ---------------------------------------------------- Landscape Phone */
@media (max-height: 520px) and (orientation: landscape) {
  .hero-section { min-height: auto; padding: 110px 0 60px; }
  .navbar-collapse { padding-top: 80px; overflow-y: auto; justify-content: flex-start; }
  .nav-link { font-size: 1.2rem; padding: 10px 0; }
}

/* ---------------------------------------------------- Print */
@media print {
  .navbar, .scroll-top, .toast-container, #preloader,
  .cursor-dot, .cursor-ring, .hero-scroll, .modal { display: none !important; }
  body { background: #fff; color: #000; }
}

/* ---------------------------------------------------- Übergänge & Zahlungen */
@media (max-width: 767px) {
  .page-curtain span:nth-child(3) { display: none; }
  .payment-methods { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------- Farbschema-Umschalter */
@media (max-width: 991px) {
  .theme-toggle { order: 2; margin-left: auto; margin-right: 10px; width: 44px; height: 44px; }
  .navbar-toggler { order: 3; }
  .navbar-collapse { order: 4; }
  /* Im geöffneten Vollbildmenü liegt der Umschalter darüber */
  .navbar-collapse.show ~ .theme-toggle { z-index: 1200; }
}
