/* =============================================================================
   RESPONSIVE.CSS — breakpoints (320px up to 1920px, no horizontal overflow)
   ============================================================================= */

/* -------- large desktops: keep line lengths and the hero comfortable -------- */
@media (min-width: 1600px) {
  :root { --container: 1240px; }
}

/* ---------------------------------------------------------- ≤ 1199px */
@media (max-width: 1199px) {
  .service-card { min-height: 26rem; }
  .allinone__title { padding-right: 8rem; }
}

/* ---------------------------------------------------------- ≤ 1023px */
@media (max-width: 1023px) {
  :root { --header-h: 76px; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); gap: 2.75rem; }
  .hero__formwrap { justify-self: center; max-width: 34rem; padding-top: 2.5rem; }
  .hero__title { max-width: 20em; }
  .pricing-grid, .work-grid { --cols: 2; }
  .promo__grid { grid-template-columns: minmax(0, 1fr); }
  .promo__text { max-width: 42rem; }
}

/* ----------------------------------------------------------- ≤ 899px */
@media (max-width: 899px) {
  .services-grid { grid-template-columns: minmax(0, 1fr); max-width: 34rem; margin-inline: auto; }
  .service-card { min-height: 0; }
  .allinone__cols { grid-template-columns: minmax(0, 1fr); gap: 1.1rem; }
  .allinone__col, .allinone__col:first-child { padding: 0; }
  .allinone__col + .allinone__col { padding-top: 1.1rem; border-top: 1px solid rgba(0, 206, 233, .35); }
  .allinone__col + .allinone__col::before { display: none; }
  .allinone__foot { padding-inline: 0; }
  .contact { grid-template-columns: minmax(0, 1fr); }
  .contact__info { padding: clamp(2.75rem, 8vw, 4rem) var(--gutter); }
  .contact__form { padding: clamp(2.5rem, 8vw, 3.5rem) var(--gutter); }
  .contact__form-inner { max-width: 36rem; }
  .pd__grid { grid-template-columns: minmax(0, 1fr); }
  .pd__media { max-height: 280px; }
  .pd__body { padding: 1.5rem 1.35rem 1.35rem; }
}

/* ----------------------------------------------------------- ≤ 639px */
@media (max-width: 639px) {
  :root { --header-h: 68px; }
  .pricing-grid, .work-grid { --cols: 1; }
  .pricing-grid, .work-grid { max-width: 26rem; margin-inline: auto; }
  .brand__mark { width: 36px; height: 36px; border-radius: 10px; }
  .brand__name { font-size: 1.08rem; }
  .call__text small { display: none; }
  .call__text a { font-size: 1.1rem; }
  .hero { padding-top: calc(var(--header-h) + 1.75rem); }
  .hero__benefits li { font-size: .92rem; }
  .hero__actions .btn { flex: 1 1 auto; }
  .offer-badge { width: 5rem; height: 5rem; top: -2.35rem; right: -.2rem; }
  .offer-badge b { font-size: 1.45rem; }
  .offer-badge span { font-size: 1.05rem; }
  .offer-form__kicker { padding-right: 4rem; }
  .offer-form__title { padding-right: 3.2rem; }
  .allinone { padding-top: 3.4rem; }
  .allinone__title { padding-right: 0; }
  .allinone__ribbon { right: 1rem; padding-inline: 1.9rem; font-size: 1.05rem; }
  .allinone__foot { flex-direction: column; align-items: flex-start; }
  .tab, .chip { padding-inline: 1.4rem; }
  .tabs, .filters { gap: .7rem; }
  .stat-card { flex-basis: 13.5rem; }
  .fab--left { left: .6rem; bottom: 5.6rem; }
  .fab__btn { width: 2.7rem; height: 2.7rem; }
  .fab--right { top: auto; bottom: 5.6rem; }
  .fab__pill { width: 3rem; height: 2.9rem; }
  .fab__pill:hover { width: 3.2rem; }
  .carousel__controls { gap: .75rem; }
}

/* ----------------------------------------------------------- ≤ 479px */
@media (max-width: 479px) {
  .header__right .btn { display: none; }
  .brand__name { font-size: 1rem; }
  .tab, .chip { flex: 1 1 100%; }
  .service-card__title { max-width: none; }
  .price-card { padding-inline: 1.25rem; }
  .price-card__scroll { height: 14rem; }
  .offer-form { padding-inline: 1rem; }
  .hero__price { white-space: normal; }
}

/* ----------------------------------------------------------- ≤ 359px */
@media (max-width: 359px) {
  .brand__name { font-size: .92rem; }
  .brand { gap: .5rem; }
  .pill { padding-inline: 1rem; }
  .seal { width: 5.2rem; height: 5.2rem; }
  .allinone__offer { gap: .9rem; }
}

/* Touch devices: no hover — keep the project titles visible on the image */
@media (hover: none) {
  .work-card__overlay { opacity: 1; background: linear-gradient(180deg, rgba(0, 35, 60, 0) 55%, rgba(0, 35, 60, .8)); }
  .work-card__view { display: none; }
}

/* Short viewports: dialog scrolls inside itself */
@media (max-height: 520px) { .project-dialog { max-height: calc(100dvh - 1rem); } }

@media print {
  .site-header, .fab, .float-stack, .platforms, .scroll-progress, .consent { display: none !important; }
}
@media (max-width: 639px) { .platforms { --logo-scale: .9; } .platforms__list li { padding-inline: 1.35rem; } }
