/* Shared responsive fixes for portfolio demo sites */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  max-width: 100vw;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.portfolio-img,
.hero-visual img,
.visual img,
.hero-img img,
.hero-shot img,
.img-block img,
.hero-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dc-back {
  max-width: calc(100vw - 1.5rem);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* Embedded in site preview widget — show app screen only, no outer phone chrome */
html.embed:not(.phone-app) body {
  padding: 0;
  margin: 0;
  min-height: 100%;
  background: transparent;
  display: block;
}

html.embed .dc-back {
  display: none;
}

html.embed .phone {
  width: 100%;
  max-width: none;
  margin: 0;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}

html.embed .screen {
  border-radius: 0;
  min-height: 100%;
}

@media (max-width: 1200px) {
  .hero,
  header.hero,
  .hero-inner,
  section,
  .about,
  .about-inner,
  .team,
  .cases,
  .cases-inner,
  .cta,
  .features,
  .story,
  .trips,
  .values,
  .schedule,
  .schedule-inner,
  .pricing,
  .programs {
    max-width: 100%;
  }
}

@media (max-width: 900px) {
  nav,
  .site-nav {
    padding-inline: clamp(1rem, 4vw, 2rem) !important;
    gap: 0.75rem;
  }

  .hero,
  header.hero,
  .hero-inner,
  section,
  .about,
  .about-inner,
  .team,
  .cases,
  .cases-inner,
  .cta,
  .features,
  .story,
  .trips,
  .values,
  .schedule,
  .schedule-inner,
  .pricing,
  .programs,
  footer {
    padding-inline: clamp(1rem, 4vw, 2rem) !important;
  }

  .hero-img,
  .hero-shot {
    margin-inline: clamp(1rem, 4vw, 2rem) !important;
  }

  h1 {
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .services {
    grid-template-columns: 1fr !important;
  }

  .svc {
    border-right: none !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 2rem 1.5rem !important;
  }

  .svc:last-child {
    border-bottom: none;
  }
}

@media (max-width: 640px) {
  .hero,
  header.hero,
  .hero-inner {
    min-height: auto !important;
    padding-block: clamp(2rem, 8vw, 4rem) !important;
  }

  .hero .btn,
  .hero .btn--fill,
  .hero .btn--ghost,
  .cta .btn {
    display: inline-block;
    margin-left: 0 !important;
    margin-top: 0.75rem;
    width: 100%;
    max-width: 100%;
    text-align: center;
  }

  .hero .btn:first-of-type,
  .cta .btn:first-of-type {
    margin-top: 0;
  }

  .metrics {
    grid-template-columns: 1fr !important;
  }

  .metrics div {
    padding: 1.25rem !important;
  }

  .stats {
    flex-wrap: wrap;
    gap: 1.5rem !important;
  }

  .case-item {
    flex-direction: column;
    align-items: flex-start !important;
  }

  .row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.35rem;
  }

  .pricing > .price {
    font-size: clamp(2.5rem, 14vw, 4rem) !important;
  }

  .prog-grid,
  .feat-grid,
  .trip-grid,
  .team-grid,
  .menu-grid {
    grid-template-columns: 1fr !important;
  }

  .logo-row {
    gap: 1.25rem !important;
    font-size: 0.85rem;
  }

  footer,
  .contact {
    text-align: center;
    font-size: 0.8rem;
    line-height: 1.6;
    flex-direction: column;
    align-items: center;
  }
}

@media (max-width: 380px) {
  .dc-back {
    top: 0.5rem;
    left: 0.5rem;
    font-size: 0.6rem;
    padding: 0.35rem 0.65rem;
  }
}
