/**
 * Optimisations Responsives Additionnelles - TS2 Location Meublée
 * Styles supplémentaires pour améliorer le responsive design
 */

/* ========================================
   CONTAINERS RESPONSIFS
   ======================================== */

.container {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

@media (min-width: 576px) {
  .container {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
  }
}

@media (min-width: 992px) {
  .container {
    padding-left: var(--spacing-xl);
    padding-right: var(--spacing-xl);
  }
}

/* ========================================
   ESPACEMENTS RESPONSIFS
   ======================================== */

/* Sections de contenu */
section {
  padding: var(--spacing-2xl) var(--spacing-md);
}

@media (min-width: 576px) {
  section {
    padding: var(--spacing-3xl) var(--spacing-lg);
  }
}

@media (min-width: 992px) {
  section {
    padding: var(--spacing-4xl) var(--spacing-xl);
  }
}

/* ========================================
   BOUTONS RESPONSIFS
   ======================================== */

.btn {
  min-height: 40px;
  transition: all var(--transition-base);
}

.btn-lg {
  min-height: 48px;
  font-size: var(--font-size-sm);
}

@media (min-width: 576px) {
  .btn-lg {
    font-size: var(--font-size-base);
  }
}

/* ========================================
   IMAGES ET VIDÉOS RESPONSIVES
   ======================================== */

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.img-fluid {
  max-width: 100%;
  height: auto;
}

/* ========================================
   TABLES RESPONSIVES
   ======================================== */

.table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table {
  font-size: var(--font-size-sm);
  margin-bottom: 0;
}

.table thead th {
  padding: var(--spacing-sm) var(--spacing-md);
  font-size: var(--font-size-xs);
}

.table tbody td {
  padding: var(--spacing-sm) var(--spacing-md);
}

@media (min-width: 576px) {
  .table {
    font-size: var(--font-size-base);
  }
  
  .table thead th {
    padding: var(--spacing-md) var(--spacing-lg);
    font-size: var(--font-size-sm);
  }
  
  .table tbody td {
    padding: var(--spacing-md) var(--spacing-lg);
  }
}

/* ========================================
   COLONNES RESPONSIVES
   ======================================== */

.row {
  margin-left: calc(-0.5 * var(--spacing-md));
  margin-right: calc(-0.5 * var(--spacing-md));
}

.col {
  padding-left: calc(0.5 * var(--spacing-md));
  padding-right: calc(0.5 * var(--spacing-md));
}

@media (min-width: 576px) {
  .row {
    margin-left: calc(-0.5 * var(--spacing-lg));
    margin-right: calc(-0.5 * var(--spacing-lg));
  }
  
  .col {
    padding-left: calc(0.5 * var(--spacing-lg));
    padding-right: calc(0.5 * var(--spacing-lg));
  }
}

/* ========================================
   MODAUX RESPONSIFS
   ======================================== */

.modal-header {
  padding: var(--spacing-lg);
}

.modal-body {
  padding: var(--spacing-lg);
}

.modal-footer {
  padding: var(--spacing-lg);
}

@media (max-width: 575px) {
  .modal {
    margin: 0;
  }
  
  .modal-dialog {
    margin: var(--spacing-md);
    max-width: calc(100% - 2 * var(--spacing-md));
  }
}

/* ========================================
   AFFICHAGE RESPONSIVE
   ======================================== */

.d-none-mobile {
  display: none;
}

@media (min-width: 576px) {
  .d-none-mobile {
    display: block;
  }
}

.d-none-tablet {
  display: block;
}

@media (min-width: 576px) {
  .d-none-tablet {
    display: none;
  }
}

/* ========================================
   ESPACEMENTS RESPONSIVE ADDITIONNELS
   ======================================== */

/* Margin responsive */
.mt-mobile {
  margin-top: var(--spacing-md);
}

.mb-mobile {
  margin-bottom: var(--spacing-md);
}

@media (min-width: 576px) {
  .mt-mobile {
    margin-top: var(--spacing-lg);
  }
  
  .mb-mobile {
    margin-bottom: var(--spacing-lg);
  }
}

/* Padding responsive */
.px-mobile {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}

.py-mobile {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}

@media (min-width: 576px) {
  .px-mobile {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
  }
  
  .py-mobile {
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
  }
}

/* ========================================
   TOUCH-FRIENDLY INTERACTIONS
   ======================================== */

@media (hover: none) and (pointer: coarse) {
  /* Mobile/Touch devices */
  .btn {
    min-height: 44px;
    min-width: 44px;
  }
  
  a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  
  .card:hover {
    transform: none;
  }
  
  .features-icons-item:hover {
    transform: none;
  }
}

/* ========================================
   ORIENTATION RESPONSIVE
   ======================================== */

/* Landscape orientation optimizations */
@media (max-height: 500px) and (orientation: landscape) {
  header.masthead {
    min-height: 250px;
  }
  
  header.masthead h1 {
    font-size: var(--font-size-2xl);
  }
}
