/* Homepage-only spacing ownership. Desktop remains in its approved files.
   Section and group values follow DESIGN-SYSTEM.md; component design is intact. */
@media screen and (max-width: 991px) {
  #main-content > .section-why-us,
  #portfolio,
  #main-content > .amori-site-process,
  #pricing,
  #pricing-mobile,
  #booking {
    --home-section-space: 72px;
    --home-major-space: 36px;
    --home-component-space: var(--_spacing---spacing--md);
    --home-tight-space: var(--_spacing---spacing--sm);
  }

  #main-content > .section-why-us,
  #portfolio,
  #pricing.section.section-pricing,
  #pricing-mobile.section.pricing-mobile,
  #booking.section-booking {
    padding-top: var(--home-section-space);
    padding-bottom: var(--home-section-space);
  }

  /* Service Areas supplies the shared solid boundary before Process. */
  #main-content > .amori-site-process .section.section-process.section-space-md {
    padding-top: 0;
    padding-bottom: var(--home-section-space);
  }

  #main-content > .section-why-us .section-header {
    row-gap: var(--home-tight-space);
  }

  #main-content > .section-why-us .heading-80 {
    padding-bottom: 0;
  }

  #main-content > .section-why-us .feature-grid {
    padding-top: var(--home-major-space);
    padding-bottom: 0;
  }

  #portfolio .section-header {
    row-gap: var(--home-tight-space);
  }

  #portfolio .portfolio-tabs {
    margin-top: 0;
    padding-top: var(--home-component-space);
  }

  #portfolio .tabs-content {
    padding-top: var(--home-component-space);
  }

  #portfolio .gallery-wrapper,
  #portfolio .video-grid.pb-2xl {
    padding-bottom: 0;
  }

  #portfolio > .layout-stack.items-center.gap-lg {
    padding-top: var(--home-major-space);
    row-gap: var(--home-component-space);
  }

  #portfolio .section-cta {
    row-gap: var(--home-tight-space);
  }

  #main-content > .amori-site-process .process-grid {
    margin-top: var(--home-major-space);
  }

  #pricing .pricing-mobile_header.pb-l,
  #pricing-mobile .section-header.pb-l {
    padding-top: 0;
    padding-bottom: var(--home-major-space);
    row-gap: var(--home-tight-space);
  }

  #pricing .sizing-layout {
    padding-bottom: var(--home-component-space);
  }

  #pricing-mobile .pricing-cards {
    padding-top: 0;
  }

  #booking .calendar-inner,
  #booking .code-embed-10 {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  #booking .heading-h3 {
    margin-top: 0;
    margin-bottom: var(--home-major-space);
  }
}

@media screen and (max-width: 479px) {
  #portfolio > .layout-stack.items-center.gap-lg {
    row-gap: 0;
  }
}

/* Explicit photographic-composition exception requested for Tablet only.
   This is internal landscape reveal, not another section-spacing unit. */
@media screen and (min-width: 768px) and (max-width: 991px) {
  #main-content > .section-why-us {
    padding-top: var(--_spacing---spacing--3xl);
    padding-bottom: var(--_spacing---spacing--3xl);
  }

  #main-content > .section-why-us > .container {
    padding-top: 0;
  }

  #main-content > .section-why-us .feature-grid {
    padding-top: clamp(96px, 14vw, 128px);
  }
}

@media screen and (max-width: 767px) {
  #main-content > .section-why-us,
  #portfolio,
  #main-content > .amori-site-process,
  #pricing,
  #pricing-mobile,
  #booking {
    --home-section-space: var(--_spacing---spacing--2xl);
    --home-major-space: 36px;
  }

  /* Marble Service Areas supplies the preceding boundary for Process. */
  #main-content > .amori-site-process .section.section-process.section-space-md {
    padding-top: var(--home-section-space);
  }

  #portfolio .tabs-content {
    padding-top: 16px;
  }
}

@media screen and (max-width: 479px) {
  #main-content > .section-why-us,
  #portfolio,
  #main-content > .amori-site-process,
  #pricing,
  #pricing-mobile,
  #booking {
    --home-section-space: 56px;
    --home-major-space: var(--_spacing---spacing--lg);
  }

  /* Homepage-only exception: add breathing room inside the Process section. */
  #main-content > .amori-site-process [data-process-mobile].section.section-process.section-space-md {
    padding-top: 28px;
  }

  #main-content > .amori-site-process [data-process-mobile] .process-grid {
    margin-top: var(--_spacing---spacing--md);
  }

  /* Retain the mobile divider and photo; spacing belongs to one edge. */
  #main-content > .amori-site-process .process-divider {
    margin-top: var(--home-component-space);
    margin-bottom: var(--home-major-space);
  }
}
