@media (max-width: 1180px) {
  .site-header__inner { grid-template-columns: 190px 1fr auto; }
  .site-nav { display: none; }
  .header-cta { justify-self: end; }
  .menu-toggle { display: flex; }
  .site-header__inner { grid-template-columns: 1fr auto auto; }
  .intro-grid { grid-template-columns: .35fr 1fr; }
  .intro-aside { grid-column: 2; }
  .process-strip { grid-template-columns: repeat(3,1fr); }
  .process-step:nth-child(3) { border-right: 1px solid var(--line); }
  .process-step:nth-child(n+4) { border-top: 1px solid var(--line); }
  .footer-top { grid-template-columns: 1.2fr repeat(3,.65fr); }
}

@media (max-width: 900px) {
  .section-head { grid-template-columns: 1fr; }
  .section-head__aside { max-width: 650px; }
  .service-row { grid-template-columns: 50px 1fr auto; }
  .service-row p { grid-column: 2; }
  .project-card, .project-card:nth-child(3n+1), .project-card:nth-child(3n+2), .project-card:nth-child(3n) { grid-column: span 6; margin-top: 0; }
  .space-grid { grid-template-columns: repeat(2,1fr); }
  .space-item:nth-child(even) { border-right: 1px solid var(--line); }
  .material-layout { grid-template-columns: 1fr; }
  .material-layout__media { min-height: 65vw; }
  .footer-top { grid-template-columns: repeat(2,1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .service-index__item { grid-template-columns: 50px 1fr auto; }
  .service-index__item p { grid-column: 2; }
  .service-overview { grid-template-columns: 1fr; }
  .related-grid { grid-template-columns: repeat(2,1fr); }
  .timeline-step { gap: 32px; }
  .timeline-step__content { padding: 38px 28px; }
  .quote-form { grid-template-columns: 1fr; }
  .form-steps { grid-template-columns: repeat(3,1fr); margin-top: 30px; }
  .form-step-indicator { grid-template-columns: 26px; }
  .form-step-indicator strong { display: none; }
  .blog-grid { grid-template-columns: repeat(2,1fr); }
  .contact-layout { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .team-card__content { align-items: start; flex-direction: column; }
  .team-card__actions { text-align: left; }
  .cta-panel { grid-template-columns: 1fr; }
  .cta-panel__actions { flex-direction: row; min-width: 0; }
}

@media (max-width: 767px) {
  body { font-size: 15px; padding-bottom: 64px; }
  .site-header__inner { gap: 15px; grid-template-columns: 1fr auto; }
  .brand { width: 158px; }
  .header-cta { display: none; }
  .menu-toggle__text { display: none; }
  .display { font-size: clamp(51px, 16vw, 77px); line-height: .89; }
  .title-xl { font-size: clamp(43px, 13vw, 64px); }
  .title-lg { font-size: clamp(38px, 11vw, 56px); }
  .title-md { font-size: clamp(31px, 8.5vw, 42px); }
  .lead { font-size: 17px; }
  .button { gap: 18px; width: 100%; }
  .hero__inner { padding-bottom: 42px; }
  .hero__grid { background-image: linear-gradient(to right, transparent calc(50% - .5px), rgba(255,255,255,.2) 50%, transparent calc(50% + .5px)); }
  .hero__media::after { background: linear-gradient(90deg, rgba(5,5,5,.83), rgba(5,5,5,.28)), linear-gradient(0deg, rgba(5,5,5,.84), transparent 70%); }
  .hero__content { padding-top: 32px; }
  .hero__lead { font-size: 16px; margin-top: 23px; }
  .hero__actions { display: grid; margin-top: 28px; }
  .hero__foot { margin-top: 42px; }
  .hero__foot p { max-width: 210px; }
  .scroll-cue span { display: none; }
  .intro-grid { gap: 34px; grid-template-columns: 1fr; }
  .intro-mark { font-size: 84px; }
  .intro-aside { grid-column: auto; }
  .intro-aside { border-left: 0; border-top: 1px solid var(--line); padding: 24px 0 0; }
  .service-row { gap: 15px; grid-template-columns: 36px 1fr 38px; min-height: 0; padding-block: 25px; }
  .service-row p { font-size: 12px; }
  .service-row__arrow { height: 38px; width: 38px; }
  .project-grid { display: grid; gap: 34px; grid-template-columns: 1fr; }
  .project-card, .project-card:nth-child(3n+1), .project-card:nth-child(3n+2), .project-card:nth-child(3n) { grid-column: auto; }
  .project-card__media, .project-card--wide .project-card__media { aspect-ratio: 1.2; }
  .project-card--portrait .project-card__media { aspect-ratio: .9; }
  .project-card__arrow { opacity: 1; right: 18px; top: 18px; transform: none; }
  .process-strip { grid-template-columns: 1fr; }
  .process-step { border: 0; border-top: 1px solid var(--line); display: grid; gap: 18px; grid-template-columns: 42px 1fr; min-height: 0; padding: 25px 0; }
  .process-step:last-child, .process-step:nth-child(3), .process-step:nth-child(n+4) { border-right: 0; }
  .process-step h3 { margin-top: 0; }
  .process-step p { grid-column: 2; margin-top: 0; }
  .value-grid { grid-template-columns: 1fr; }
  .value-item { min-height: 245px; }
  .compare { aspect-ratio: 4 / 3; }
  .compare__handle { border-width: 4px; height: 50px; width: 50px; }
  .space-grid { grid-template-columns: 1fr; }
  .space-item { border-left: 0; border-top: 1px solid var(--line); min-height: 210px; padding-inline: 0; }
  .space-item:last-child, .space-item:nth-child(even) { border-right: 0; }
  .space-item h3 { margin-top: 56px; }
  .material-layout__media { min-height: 90vw; }
  .material-layout__content { padding-inline: 18px; }
  .instagram-grid { grid-template-columns: repeat(2,1fr); }
  .split-content { grid-template-columns: 1fr; }
  .sticky-title { position: static; }
  .service-index__item { gap: 14px; grid-template-columns: 34px 1fr 38px; min-height: 0; padding-block: 24px; }
  .service-index__item p { font-size: 12px; }
  .service-index__arrow { height: 38px; width: 38px; }
  .related-grid { grid-template-columns: 1fr; }
  .related-card { min-height: 230px; }
  .project-detail-grid { gap: 28px; grid-template-columns: 1fr; }
  .project-detail-grid figure, .project-detail-grid figure:nth-child(3n+1) { grid-column: auto; }
  .project-detail-grid .media-frame, .project-detail-grid figure:nth-child(3n+1) .media-frame { aspect-ratio: 1.15; }
  .timeline::before, .timeline__progress { left: 16px; }
  .timeline-step, .timeline-step:nth-child(even) { display: block; min-height: 0; padding-left: 34px; }
  .timeline-step__content, .timeline-step:nth-child(even) .timeline-step__content { padding: 36px 0; }
  .timeline-step__num, .timeline-step:nth-child(even) .timeline-step__num { display: none; }
  .quote-form { box-shadow: none; }
  .quote-form__main, .quote-form__aside { padding-inline: 24px; }
  .form-grid { grid-template-columns: 1fr; }
  .field--full { grid-column: auto; }
  .check-grid { grid-template-columns: 1fr; }
  .form-nav { flex-direction: column-reverse; }
  .blog-grid { grid-template-columns: 1fr; }
  .blog-card { min-height: 280px; }
  .cta-panel__actions { flex-direction: column; }
  .footer-top { grid-template-columns: 1fr; }
  .team-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .whatsapp-float { bottom: 18px; display: flex; padding: 13px 15px; right: 14px; }
  .mobile-actions { display: none; }
  .cookie-banner { bottom: 10px; grid-template-columns: 1fr; left: 10px; right: 10px; }
  .cookie-banner__actions { align-items: stretch; flex-direction: column; }
  .page-hero { min-height: 66svh; padding-top: calc(var(--header-h) + 60px); }
  .page-hero--image { min-height: 76svh; }
  .page-hero__inner, .page-hero--image .page-hero__inner { min-height: calc(66svh - var(--header-h) - 142px); }
  .page-hero__lead { font-size: 16px; margin-top: 24px; }
  .page-hero__meta { gap: 11px 24px; margin-top: 34px; }
  .map-frame { height: 380px; }
}

@media (max-width: 390px) {
  .brand { width: 142px; }
  .mobile-menu__nav a { font-size: 39px; }
  .hero__actions .button { min-height: 50px; }
  .compare__label { top: 10px; }
  .compare__label--before { left: 10px; }
  .compare__label--after { right: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
  .image-reveal { clip-path: none; }
}

@media print {
  .site-header, .mobile-actions, .whatsapp-float, .cookie-banner, .scroll-progress { display: none !important; }
  body { padding-bottom: 0; }
}
