/* ============================================
   RESPONSIVE.CSS – Zentrale Media Queries
   Alle Breakpoints für die gesamte Website.
   ============================================ */

/* --- 1. Breakpoint: 1200px --- */
@media (max-width: 1200px) {
  /* Zitate */
  .zitate-section::before {
    width: 100%;
    left: 0;
    transform: none;
  }
  .zitate-section .container {
    max-width: 90%;
  }
}


/* --- 2. Breakpoint: 1000px (Navigation) --- */
@media (max-width: 1000px) {
  .header-inner {
    max-width: 90%;
    padding: 0 var(--spacing-sm);
  }
  .nav-list {
    gap: var(--spacing-md);
  }
  .nav-list a {
    font-size: 15px;
    letter-spacing: 1px;
    padding: 0.3rem 0 0.4rem 0;
  }
  .nav-submenu a {
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: 0.9375rem;
  }
  .nav-submenu {
    padding: var(--spacing-sm) 0;
  }
}


/* --- 3. Breakpoint: 992px --- */
@media (max-width: 992px) {
  /* Hero */
  .hero-grid,
  .hero-case .hero-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .hero-content,
  .hero-case .hero-content {
    order: 2;
  }
  .hero-media,
  .hero-case .hero-media {
    order: 1;
    justify-content: center;
    margin-bottom: var(--spacing-lg);
    margin-right: 0;
    width: 100%;
  }
  .hero-text,
  .hero-case .hero-text {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .hero-img,
  .hero-case .hero-img {
    max-width: 100%;
    border-radius: var(--border-radius-lg);
    margin: 0 auto;
    width: 100%;
  }

  /* Cases Grid */
  .case-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
  }
  .cases-grid-full {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
  }

  /* About */
  .about-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .about-image {
    order: 1;
    justify-content: center;
    margin-bottom: var(--spacing-lg);
  }
  .about-image img {
    max-width: 80%;
  }
  .about-text {
    order: 2;
  }

  /* Kontakt (Visitenkarte) */
  .kontakt-wrapper {
    flex-direction: column;
    gap: 2em;
    padding: 0 var(--spacing-md);
  }
  .kontakt-left {
    flex: 0 0 100%;
    width: 100%;
    border-radius: 0 var(--border-radius-lg) var(--border-radius-lg) 0;
    align-items: center;
    text-align: center;
    padding-left: var(--spacing-xl);
    padding-right: var(--spacing-xl);
  }
  .kontakt-left .kontakt-title {
    max-width: 100%;
  }
  .kontakt-right {
    flex: 0 0 100%;
    width: 100%;
    border-radius: var(--border-radius-lg);
    align-items: center;
    text-align: center;
    margin-right: 0;
  }
  .kontakt-img {
    margin: 0 auto;
  }

  /* Footer */
  .footer-grid {
    grid-template-columns: 1fr 1fr;
  }
  .footer-links {
    grid-template-columns: 1fr 1fr;
  }

  /* Case Items */
  .case-item {
    width: 85%;
  }
  .case-item-center {
    width: 85%;
  }

  /* Text Section */
  .text-section-card-width .text-section-content {
    max-width: 85%;
  }

  /* Skills */
  .skills-content {
    max-width: 90%;
    padding: var(--spacing-lg);
  }

  /* Expertise */
  .expertise-content {
    max-width: 90%;
    padding: var(--spacing-lg);
  }
  .expertise-grid-3 {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
  }

  /* Contact (Formular) */
  .contact-content {
    max-width: 90%;
    padding: var(--spacing-lg);
  }

  /* CV Section */
  .cv-content {
    max-width: 90%;
    padding: var(--spacing-lg);
  }

  /* Carousel (Bilder) */
  .carousel-section .container {
    max-width: 90%;
  }
  .image-carousel-slide {
    flex: 0 0 50%;
    min-width: 50%;
  }
  #foto-radio-2:checked ~ .image-carousel-wrapper .image-carousel-track {
    transform: translateX(-50%);
  }
  #foto-radio-3:checked ~ .image-carousel-wrapper .image-carousel-track {
    transform: translateX(-100%);
  }
}


/* --- 4. Breakpoint: 768px --- */
@media (max-width: 768px) {
  /* Allgemein Container */
  .header-inner,
  .hero-grid,
  .cases-section .container,
  .cases-grid-section .container,
  .footer-grid,
  .footer-bottom {
    max-width: 100%;
    padding-left: var(--spacing-md);
    padding-right: var(--spacing-md);
  }

  /* ===== Navigation (Mobile) ===== */
  .burger {
    display: flex;
  }
  .nav-list {
    position: fixed !important;
    top: 0 !important;
    left: -100% !important;
    right: auto !important;
    width: 80% !important;
    max-width: 400px !important;
    height: 100vh !important;
    background: var(--color-white) !important;
    flex-direction: column !important;
    padding: 80px var(--spacing-xl) var(--spacing-xl) !important;
    gap: var(--spacing-md) !important;
    z-index: 100 !important;
    box-shadow: 8px 0 30px rgba(0, 0, 0, 0.15) !important;
    transition: left 0.4s ease, opacity 0.4s ease !important;
    overflow-y: auto !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    list-style: none !important;
    margin: 0 !important;
    border-bottom: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    display: flex !important;
  }
  .menu-toggle:checked ~ .main-nav .nav-list {
    left: 0 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
  .nav-list a {
    white-space: normal !important;
    text-align: left !important;
    padding: var(--spacing-sm) 0 !important;
    font-size: 20px !important;
    border-bottom: 2px solid transparent !important;
    width: 100% !important;
    display: block !important;
    font-weight: 400 !important;
  }
  .nav-list a:hover,
  .nav-list a.active {
    border-bottom-color: var(--color-primary) !important;
    color: var(--color-accent) !important;
  }
  .main-nav {
    order: 0;
    margin-left: 0;
  }
  .logo {
    order: 2;
    margin-left: auto;
  }
  .nav-item-has-children {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  .nav-item-has-children > a {
    width: 100%;
  }
  .nav-submenu {
    display: block !important;
    position: static;
    width: 100%;
    min-width: 100%;
    background: transparent !important;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: var(--spacing-xs) 0 var(--spacing-xs) var(--spacing-lg);
    margin-top: 0;
  }
  .nav-submenu li {
    margin: 0;
    padding: 0;
    border-bottom: none;
  }
  .nav-submenu a {
    font-size: 17px !important;
    padding: var(--spacing-xs) 0 !important;
    color: var(--color-primary) !important;
    border-bottom: 2px solid transparent !important;
    white-space: normal !important;
    display: block;
  }
  .nav-submenu a:hover,
  .nav-submenu a.active {
    background: transparent !important;
    color: var(--color-accent) !important;
    border-bottom-color: var(--color-primary) !important;
  }
  .menu-toggle:checked ~ .nav-overlay {
    display: block;
    opacity: 1;
  }

  /* ===== Hero ===== */
  .hero {
    padding: var(--spacing-lg) 0;
  }
  .hero .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .hero-title {
    font-size: 36px;
    line-height: 54px;
  }
  .hero-subtitle {
    font-size: 24px;
    line-height: 36px;
  }

  /* ===== Cases ===== */
  .cases-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .case-grid {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
  }
  .case-card .case-img {
    aspect-ratio: 310 / 450;
  }
  .cases-grid-section {
    padding: var(--spacing-xl) 0;
  }
  .cases-grid-full {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-lg);
  }
  .case-item-content {
    padding: var(--spacing-md);
  }
  .case-item-title {
    font-size: 24px;
    line-height: 36px;
  }

  /* ===== About ===== */
  .about {
    padding: var(--spacing-xl) 0;
  }
  .about .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .about-image img {
    max-width: 100%;
    border-radius: var(--border-radius-md);
  }

  /* ===== Kontakt (Visitenkarte) ===== */
  .kontakt-section {
    padding: var(--spacing-xl) 0;
  }
  .kontakt-left {
    padding: var(--spacing-lg);
    border-radius: 0 var(--border-radius-md) var(--border-radius-md) 0;
  }
  .kontakt-right {
    padding: var(--spacing-lg);
  }
  .kontakt-left .kontakt-title {
    font-size: 36px;
    line-height: 54px;
  }
  .kontakt-img {
    width: 100px;
    height: 100px;
  }

  /* ===== Zitate ===== */
  .zitate-section {
    padding: var(--spacing-lg) 0;
  }

  /* ===== Footer ===== */
  .footer-grid {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .footer-photo {
    order: -1;
  }
  .footer-links {
    grid-template-columns: 1fr 1fr;
    text-align: left;
  }
  .footer-legal {
    justify-content: center;
  }

  /* ===== Headings ===== */
  h2 {
    font-size: 36px;
    line-height: 54px;
  }
  h3 {
    font-size: 26px;
    line-height: 42px;
  }

  /* ===== Text Section ===== */
  .text-section {
    padding: var(--spacing-lg) 0;
  }
  .text-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .text-section-content h1,
  .text-section-content h2 {
    font-size: 36px;
    line-height: 54px;
  }
  .text-section-content h3 {
    font-size: 26px;
    line-height: 42px;
  }
  .text-section-content p {
    font-size: 18px;
    line-height: 27px;
  }
  .text-section-border .text-section-content {
    padding: var(--spacing-lg);
  }
  .text-section-card-width .text-section-content {
    max-width: 100%;
  }

  /* ===== Case Items ===== */
  .case-item {
    grid-template-columns: 1fr;
    width: 100%;
    min-height: auto;
  }
  .case-item-left,
  .case-item-right,
  .case-item-center {
    align-self: center;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }
  .case-item-center {
    padding: var(--spacing-lg);
    grid-template-columns: 1fr;
  }
  .case-item-center .case-item-content-full {
    text-align: center;
  }
  .case-item-image {
    height: auto;
    aspect-ratio: 16 / 9;
  }
  .case-item-image img {
    height: auto;
  }
  .case-item-content {
    padding: var(--spacing-lg);
    gap: 0.75rem;
  }
  .case-item-content-full {
    gap: 0.75rem;
  }
  .case-item-tag {
    font-size: 0.875rem;
  }
  .case-item-title {
    font-size: 1.375rem;
  }
  .case-item-description {
    font-size: 1rem;
    letter-spacing: 0.015em;
    margin-bottom: var(--spacing-md);
  }
  .case-item .btn {
    align-self: center;
    font-size: 0.9375rem;
  }
  .case-item-center .btn {
    align-self: center;
  }

  /* ===== Case Detail ===== */
  .case-detail-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .case-detail-card {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    min-height: auto;
    margin: 0 !important;
    align-self: center !important;
  }
  .case-detail-card-left,
  .case-detail-card-right {
    align-self: center !important;
  }
  .case-fazit {
    padding: 2em;
    margin: 2em 0;
    border: 1.5px solid var(--color-secondary);
  }
  .case-detail-image {
    height: auto;
    aspect-ratio: 16 / 9;
    order: -1 !important;
  }
  .case-detail-image img {
    height: auto;
  }
  .case-detail-content {
    padding: var(--spacing-md);
    order: 0 !important;
  }
  .case-detail-title {
    font-size: 20px;
  }

  /* ===== Case Navigation ===== */
  .case-navigation {
    flex-direction: column;
    gap: var(--spacing-md);
    padding: var(--spacing-md) 0;
  }
  .case-nav-prev,
  .case-nav-next,
  .case-nav-overview {
    justify-content: center;
    width: 100%;
    padding: 12px 20px;
  }
  .case-navigation-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }

  /* ===== Skills ===== */
  .skills-section {
    padding: var(--spacing-xl) 0;
  }
  .skills-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .skills-content {
    max-width: 100%;
    padding: var(--spacing-xl);
  }
  .skills-tag {
    font-size: 0.875rem;
    margin-bottom: var(--spacing-sm);
  }
  .skills-title {
    font-size: 1.75rem;
    margin-bottom: var(--spacing-lg);
  }
  .skills-grid {
    gap: var(--spacing-lg);
  }
  .skill-item {
    gap: var(--spacing-sm);
  }
  .skill-name {
    font-size: 0.9375rem;
  }
  .skill-percentage {
    font-size: 0.8125rem;
  }
  .skill-bar {
    height: 8px;
  }

  /* ===== Expertise ===== */
  .expertise-section {
    padding: var(--spacing-xl) 0;
  }
  .expertise-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .expertise-content {
    max-width: 100%;
    padding: var(--spacing-lg);
    gap: var(--spacing-lg);
  }
  .expertise-block:not(:last-child) {
    padding-bottom: var(--spacing-lg);
  }
  .expertise-grid-3 {
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-md);
  }
  .expertise-title {
    font-size: 1rem;
  }
  .expertise-tag {
    font-size: 0.75rem;
    padding: 0.15rem 1rem;
  }

  /* ===== Contact (Formular) ===== */
  .contact-section {
    padding: var(--spacing-xl) 0;
  }
  .contact-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .contact-content {
    max-width: 100%;
    padding: var(--spacing-lg);
  }
  .form-row {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }
  .contact-title {
    font-size: 1.75rem;
  }
  .contact-subtitle {
    font-size: 1rem;
  }
  .form-checkbox {
    gap: var(--spacing-xs);
  }
  .form-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
  }
  .form-checkbox label {
    font-size: 0.875rem;
  }
  .alert {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.9375rem;
  }

  /* ===== CV Section ===== */
  .cv-section {
    padding: var(--spacing-xl) 0;
  }
  .cv-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .cv-content {
    max-width: 100%;
    padding: var(--spacing-lg);
  }
  .cv-title {
    font-size: 1.75rem;
  }
  .cv-text {
    font-size: 1rem;
    letter-spacing: 0.015em;
  }
  .cv-text:last-of-type {
    margin-bottom: var(--spacing-md);
  }

  /* ===== Legal Pages ===== */
  .legal-page .text-section-content h1 {
    font-size: 2rem;
  }
  .legal-page .text-section-content h2 {
    font-size: 1.25rem;
  }
  .legal-page .text-section-content h3 {
    font-size: 1rem;
  }

  /* ===== Cookie Table ===== */
  .cookie-table {
    font-size: 0.8125rem;
  }
  .cookie-table thead th,
  .cookie-table tbody td {
    padding: 0.5rem 0.6rem;
  }

  /* ===== Carousel ===== */
  .carousel-section .container,
  .galerie-carousel-section .container {
    max-width: 100%;
    padding: 0 var(--spacing-md);
  }
  .carousel-radio-wrapper {
    padding: var(--spacing-md) 0;
  }
  .carousel-slide {
    padding: var(--spacing-sm);
  }
  .carousel-slide .zitat-text {
    font-size: 18px;
    line-height: 27px;
    padding: 0 var(--spacing-md);
  }
  .carousel-dot-label,
  .image-carousel-dot-label,
  .galerie-dot-label {
    width: 12px;
    height: 12px;
  }
  .carousel-dots,
  .image-carousel-dots,
  .galerie-carousel-dots {
    gap: 10px;
  }
  .image-carousel-arrow,
  .galerie-arrow {
    width: 50px;
    height: 50px;
    font-size: 24px;
  }
  .image-carousel-slide {
    flex: 0 0 100%;
    min-width: 100%;
  }
  .image-carousel-slide img {
    height: 250px;
  }
  #foto-radio-2:checked ~ .image-carousel-wrapper .image-carousel-track {
    transform: translateX(-100%);
  }
  #foto-radio-3:checked ~ .image-carousel-wrapper .image-carousel-track {
    transform: translateX(-200%);
  }
  .galerie-carousel-wrapper {
    max-width: 100%;
  }
}


/* --- 5. Breakpoint: 576px --- */
@media (max-width: 576px) {
  /* Cases Grid */
  .case-grid {
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
  }
  .case-card .case-img {
    max-width: 310px;
    margin-left: auto;
    margin-right: auto;
  }
  .cases-grid-full {
    grid-template-columns: 1fr;
    gap: var(--spacing-lg);
  }
  .case-item-image img {
    aspect-ratio: 16 / 10;
  }
  .case-item-title {
    font-size: 22px;
    line-height: 32px;
  }

  /* Hero */
  .hero-title {
    font-size: 30px;
    line-height: 45px;
  }
  .hero-img {
    border-radius: var(--border-radius-sm);
  }

  /* About */
  .about-image img {
    border-radius: var(--border-radius-sm);
  }

  /* Kontakt (Visitenkarte) */
  .kontakt-left {
    border-radius: 0 var(--border-radius-sm) var(--border-radius-sm) 0;
  }
  .kontakt-left .kontakt-title {
    font-size: 30px;
    line-height: 45px;
  }
  .kontakt-img {
    width: 80px;
    height: 80px;
  }

  /* Footer */
  .footer-grid {
    grid-template-columns: 1fr;
  }
  .footer-links {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .footer-legal ul {
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-sm);
  }

  /* Text Section */
  .text-section-content h1,
  .text-section-content h2 {
    font-size: 30px;
    line-height: 45px;
  }
  .text-section-content h3 {
    font-size: 22px;
    line-height: 36px;
  }
  .text-section-content p {
    font-size: 16px;
    line-height: 24px;
  }
  .text-section-border .text-section-content {
    padding: var(--spacing-md);
  }

  /* Case Items */
  .case-item-content {
    padding: var(--spacing-md);
    gap: 0.75rem;
  }
  .case-item-center {
    padding: var(--spacing-md);
  }
  .case-item-content-full {
    gap: 0.75rem;
  }
  .case-item-tag {
    font-size: 0.75rem;
  }
  .case-item-title {
    font-size: 1.25rem;
    line-height: 1.3;
  }
  .case-item-description {
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    line-height: 1.5;
    margin-bottom: var(--spacing-md);
  }
  .case-item .btn {
    font-size: 0.875rem;
    padding: 12px 30px;
  }

  /* Case Detail */
  .case-fazit {
    padding: 1.5em;
    margin: 1em 0;
    border: 1.5px solid var(--color-secondary);
  }
  .case-detail-title {
    font-size: 18px;
  }
  .case-detail-description {
    font-size: 16px;
    line-height: 24px;
  }

  /* Case Navigation */
  .case-nav-prev,
  .case-nav-next,
  .case-nav-overview {
    font-size: 16px;
    padding: 10px 16px;
  }
  .case-nav-arrow {
    font-size: 18px;
  }

  /* Skills */
  .skills-section {
    padding: var(--spacing-lg) 0;
  }
  .skills-content {
    padding: var(--spacing-lg);
  }
  .skills-tag {
    font-size: 0.75rem;
    margin-bottom: var(--spacing-xs);
  }
  .skills-title {
    font-size: 1.5rem;
    margin-bottom: var(--spacing-md);
  }
  .skills-grid {
    gap: var(--spacing-md);
  }
  .skill-item {
    gap: var(--spacing-xs);
  }
  .skill-name {
    font-size: 0.875rem;
  }
  .skill-percentage {
    font-size: 0.75rem;
  }
  .skill-bar {
    height: 6px;
  }

  /* Expertise */
  .expertise-content {
    padding: var(--spacing-md);
    gap: var(--spacing-md);
  }
  .expertise-block:not(:last-child) {
    padding-bottom: var(--spacing-md);
  }
  .expertise-grid-3 {
    grid-template-columns: 1fr;
    gap: var(--spacing-md);
  }
  .expertise-title {
    font-size: 0.875rem;
  }
  .expertise-group-title {
    font-size: 0.8125rem;
  }
  .expertise-tag {
    font-size: 0.6875rem;
    padding: 0.1rem 0.8rem;
    line-height: 1.3;
  }

  /* Contact (Formular) */
  .contact-content {
    padding: var(--spacing-md);
  }
  .contact-header {
    margin-bottom: var(--spacing-lg);
  }
  .contact-tag {
    font-size: 0.75rem;
  }
  .contact-title {
    font-size: 1.5rem;
  }
  .contact-subtitle {
    font-size: 0.9375rem;
  }
  .contact-form {
    gap: var(--spacing-md);
  }
  .form-input,
  .form-textarea {
    font-size: 0.9375rem;
    padding: 0.6rem 0.8rem;
  }
  .form-label {
    font-size: 0.8125rem;
  }
  .form-submit {
    width: 100%;
    text-align: center;
    padding: 12px 30px;
    font-size: 0.875rem;
  }
  .form-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
  }
  .form-checkbox label {
    font-size: 0.8125rem;
  }
  .alert {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: 0.875rem;
  }

  /* CV Section */
  .cv-content {
    padding: var(--spacing-md);
  }
  .cv-tag {
    font-size: 0.75rem;
  }
  .cv-title {
    font-size: 1.5rem;
  }
  .cv-text {
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
    line-height: 1.5;
  }
  .cv-text:last-of-type {
    margin-bottom: var(--spacing-md);
  }
  .cv-content .btn {
    font-size: 0.875rem;
    padding: 12px 30px;
  }

  /* Legal Pages */
  .legal-page .text-section-content h1 {
    font-size: 1.75rem;
  }
  .legal-page .text-section-content h2 {
    font-size: 1.125rem;
  }
  .legal-page .text-section-content h3 {
    font-size: 0.9375rem;
  }

  /* Cookie Table */
  .cookie-table {
    font-size: 0.75rem;
  }
  .cookie-table thead th,
  .cookie-table tbody td {
    padding: 0.4rem 0.4rem;
  }
  .cookie-table-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Carousel */
  .image-carousel-slide img {
    height: 200px;
  }
  .image-carousel-arrow,
  .galerie-arrow {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  .carousel-dot-label,
  .image-carousel-dot-label,
  .galerie-dot-label {
    width: 10px;
    height: 10px;
  }
  .carousel-dots,
  .image-carousel-dots,
  .galerie-carousel-dots {
    gap: 8px;
  }
}