/* =========================================================
   MOBILE SYSTEM
   strong mobile rhythm / no overlap / image-heavy safe
========================================================= */

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

  :root {
    --container: min(100vw - 32px, 920px);
    --container-wide: min(100vw - 24px, 960px);
    --header-height: 74px;
    --section-space: clamp(86px, 12vw, 140px);
    --section-space-small: clamp(52px, 8vw, 86px);
  }

  .site-header {
    min-height: var(--header-height);
  }

  .header-inner {
    min-height: var(--header-height);
  }

  .main-nav {
    display: none;
  }

  .brand-logo {
    max-width: 180px;
    height: 34px;
  }

  .header-actions {
    gap: 12px;
  }

  .hero {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .hero-media {
    min-height: 520px;
  }

  .hero-content {
    padding: 42px 0 0;
  }

  .intro-grid {
    grid-template-columns: 1fr;
  }

  .intro-grid article {
    min-height: auto;
    border-right: none;
    border-bottom: 1px solid var(--line);
    padding: 34px 0;
  }

  .intro-grid article:last-child {
    border-bottom: none;
  }

  .estimate-shell,
  .basket-inner,
  .split-block,
  .split-block.reverse {
    grid-template-columns: 1fr;
  }

  .split-block.reverse .split-image {
    order: 0;
  }

  .basket-head {
    position: relative;
    top: auto;
  }

  .estimate-summary {
    position: relative;
    top: auto;
  }

  .split-image {
    min-height: 460px;
  }

  .visual-window-grid {
    grid-template-columns: repeat(6, 1fr);
  }

  .visual-window-wide {
    grid-column: span 6;
  }

  .visual-window-half {
    grid-column: span 3;
  }

  .visual-window-third {
    grid-column: span 3;
  }

  .visual-window-tall {
    min-height: 520px;
  }

  .faq-grid {
    grid-template-columns: 1fr;
  }

  .faq-grid article {
    border-right: none;
    border-bottom: 1px solid var(--line);
  }

  .faq-grid article:last-child {
    border-bottom: none;
  }
}

/* =========================================================
   PHONE
========================================================= */

@media (max-width: 760px) {

  :root {
    --container: min(100vw - 24px, 640px);
    --container-wide: min(100vw - 18px, 640px);
    --header-height: 68px;
    --section-space: 76px;
    --section-space-small: 48px;
  }

  body {
    overflow-x: hidden;
  }

  .site-header {
    width: 100%;
    border-left: none;
    border-right: none;
  }

  .header-inner {
    gap: 10px;
  }

  .brand-logo {
    max-width: 150px;
    height: 30px;
  }

  .header-phone {
    display: none;
  }

  .lang-toggle {
    min-width: 68px;
    min-height: 34px;
    padding: 0 10px;
  }

  .hero,
  .intro-grid,
  .visual-strip,
  .estimate-section,
  .basket-section,
  .services-section,
  .recovery-section,
  .landlord-section,
  .commercial-section,
  .faq-section,
  .contact-section,
  .site-footer {
    width: var(--container);
  }

  .hero {
    margin-top: 16px;
    border-left: none;
    border-right: none;
  }

  .hero-media {
    min-height: 360px;
    border-left: none;
    border-right: none;
  }

  .hero-content {
    padding: 30px 0 0;
  }

  .hero-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 30px;
  }

  .button {
    width: 100%;
  }

  .visual-strip,
  .estimate-section,
  .basket-section,
  .services-section,
  .recovery-section,
  .landlord-section,
  .commercial-section,
  .faq-section,
  .contact-section {
    padding: 28px 0;
    border-left: none;
    border-right: none;
  }

  .section-head {
    margin-bottom: 34px;
  }

  .visual-window-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .visual-window-wide,
  .visual-window-half,
  .visual-window-third {
    grid-column: auto;
    min-height: 280px;
  }

  .visual-window-tall {
    min-height: 360px;
  }

  .estimate-form {
    gap: 30px;
  }

  .estimate-form fieldset {
    gap: 14px;
  }

  .mode-grid,
  .check-grid,
  .worker-options {
    grid-template-columns: 1fr;
  }

  .mode-option {
    min-height: 56px;
  }

  .worker-card {
    min-height: 140px;
  }

  .estimate-summary {
    padding: 22px;
    border-radius: var(--radius-md);
  }

  .estimate-summary dl {
    gap: 18px;
  }

  .basket-inner {
    gap: 28px;
  }

  .basket-line {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .split-block,
  .split-block.reverse {
    border-left: none;
    border-right: none;
  }

  .split-image {
    min-height: 320px;
    border-left: none;
    border-right: none;
  }

  .split-copy {
    padding: 28px 0;
  }

  .split-copy ul {
    margin-top: 28px;
  }

  .faq-grid article {
    padding: 26px 0;
  }

  .contact-links {
    width: 100%;
  }

  .contact-links a {
    word-break: break-word;
  }

  .site-footer {
    display: grid;
    gap: 8px;
    margin-bottom: 24px;
  }
}

/* =========================================================
   SMALL PHONE
========================================================= */

@media (max-width: 480px) {

  :root {
    --container: min(100vw - 20px, 440px);
    --header-height: 64px;
  }

  .brand-logo {
    max-width: 132px;
    height: 28px;
  }

  .lang-toggle {
    min-width: 62px;
    font-size: 11px;
  }

  .hero-media {
    min-height: 300px;
  }

  .hero-content {
    padding-top: 24px;
  }

  .intro-grid article {
    padding: 28px 0;
  }

  .visual-strip,
  .estimate-section,
  .basket-section,
  .services-section,
  .recovery-section,
  .landlord-section,
  .commercial-section,
  .faq-section,
  .contact-section {
    margin-top: 64px;
    padding: 24px 0;
  }

  .image-window,
  .visual-window-wide,
  .visual-window-half,
  .visual-window-third,
  .split-image {
    min-height: 250px;
  }

  .visual-window-tall {
    min-height: 320px;
  }

  .estimate-form input,
  .estimate-form select,
  .estimate-form textarea {
    min-height: 52px;
  }

  .upload-box {
    padding: 18px;
  }

  .photo-preview {
    grid-template-columns: repeat(2, 1fr);
  }

  .estimate-summary {
    padding: 20px;
  }

  .summary-price {
    max-width: 100%;
  }
}

/* =========================================================
   VERY SMALL PHONE
========================================================= */

@media (max-width: 380px) {

  .brand-logo {
    max-width: 118px;
  }

  .hero-media {
    min-height: 270px;
  }

  .image-window,
  .visual-window-wide,
  .visual-window-half,
  .visual-window-third,
  .split-image {
    min-height: 220px;
  }
}