@media (max-width: 960px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav, .button--header { display: none; }
  .menu-toggle { display: block; justify-self: end; }
  .site-header.menu-active { border-color: transparent; background: transparent; color: var(--white); box-shadow: none; backdrop-filter: none; }

  .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 95;
    display: flex;
    visibility: hidden;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 2.5rem;
    padding: calc(var(--header-height) + 2rem) var(--gutter) 2rem;
    background: var(--primary);
    color: var(--white);
    opacity: 0;
    clip-path: inset(0 0 100% 0);
    transition: clip-path 240ms var(--ease-drawer), opacity 180ms ease, visibility 240ms;
  }
  .mobile-menu.is-open { visibility: visible; opacity: 1; clip-path: inset(0); transition-duration: 420ms, 240ms, 0ms; }
  .mobile-menu nav { display: grid; gap: .5rem; }
  .mobile-menu nav a {
    font-family: "Bodoni Moda Local", Georgia, serif;
    font-size: clamp(2.7rem, 9vw, 4.5rem);
    line-height: 1.05;
    letter-spacing: -.03em;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 220ms var(--ease-out), transform 300ms var(--ease-out);
  }
  .mobile-menu.is-open nav a { opacity: 1; transform: translateY(0); }
  .mobile-menu.is-open nav a:nth-child(2) { transition-delay: 40ms; }
  .mobile-menu.is-open nav a:nth-child(3) { transition-delay: 80ms; }
  .mobile-menu.is-open nav a:nth-child(4) { transition-delay: 120ms; }

  .intro { grid-template-columns: .85fr 1.15fr; grid-template-rows: auto auto; gap: 1rem 2rem; }
  .intro__portrait { grid-row: 1 / 3; min-height: 520px; }
  .intro__message { grid-column: 2; grid-row: 1; padding: 0 0 1rem; }
  .intro__detail { display: none; }
  .intro__principles { grid-column: 2; grid-row: 2; min-height: 190px; }
  .gallery__grid { grid-template-rows: repeat(2, minmax(180px, 220px)); }
  .location { width: 100%; }
  .location__map { min-height: 420px; }
}

@media (max-width: 680px) {
  :root { --header-height: 66px; --section-space: 3.5rem; }
  body { font-size: .95rem; }
  .site-header { padding-inline: 1.1rem; }
  .brand { gap: .65rem; }
  .brand__mark { width: 34px; height: 34px; font-size: 1.1rem; }
  .brand__words strong { font-size: 1.08rem; }
  .brand__words small { font-size: .7rem; }

  .hero { height: min(650px, 86svh); min-height: 550px; align-items: end; }
  .hero__image { object-position: 63% center; }
  .hero__veil { background: linear-gradient(0deg, rgba(23, 20, 19, .94) 0%, rgba(23, 20, 19, .56) 52%, rgba(23, 20, 19, .08) 100%); }
  .hero__content { padding: calc(var(--header-height) + 2rem) 1.25rem 3rem; }
  .hero h1 { max-width: 345px; font-size: clamp(2.3rem, 9.6vw, 2.55rem); line-height: .98; text-wrap: wrap; text-wrap-style: auto; }
  .hero__copy { max-width: 330px; margin-top: 1rem; font-size: .92rem; line-height: 1.55; }
  .hero__actions { width: 100%; gap: 1rem; margin-top: 1.5rem; }
  .hero__actions .button { flex: 1; }

  .section { padding-inline: 1.25rem; }
  h2 { font-size: clamp(2.4rem, 11vw, 3.35rem); }
  .intro { grid-template-columns: .88fr 1.12fr; grid-template-rows: auto auto minmax(165px, auto); gap: .65rem; }
  .intro__message { grid-column: 1 / 3; grid-row: 1; padding: 0 0 1.25rem; }
  .intro__message h2 { font-size: clamp(2.55rem, 11vw, 3.35rem); }
  .intro__text { margin-top: 1rem; font-size: .94rem; }
  .intro__portrait { grid-column: 1 / 3; grid-row: 2; min-height: 0; aspect-ratio: 16 / 11; }
  .intro__detail { display: block; grid-column: 1; grid-row: 3; min-height: 165px; }
  .intro__principles { grid-column: 2; grid-row: 3; min-height: 165px; gap: .72rem; padding: 1rem; }
  .intro__principle { font-size: .7rem; }

  .services { padding-top: var(--section-space); }
  .services__top { align-items: flex-start; flex-direction: column; gap: 1.2rem; margin-bottom: 1.6rem; }
  .services__heading { gap: .7rem; }
  .services__heading p { max-width: 34ch; }
  .services__controls { align-self: flex-end; }
  .rail-control { min-width: 88px; }
  .services__viewport {
    margin-right: -1.25rem;
    overflow-y: hidden;
    overscroll-behavior-y: none;
    touch-action: pan-x pinch-zoom;
    -webkit-overflow-scrolling: touch;
  }
  .services__rail { padding-right: 1.25rem; }
  .service-card { flex-basis: min(80vw, 310px); scroll-snap-stop: always; }
  .service-card__visual img { user-select: none; -webkit-user-drag: none; }
  .service-card h3 { font-size: 1.45rem; }
  .service-card p { font-size: .84rem; }
  .compact-heading, .compact-heading--inline { grid-template-columns: 1fr; gap: .75rem; margin-bottom: 2rem; }
  .compact-heading--inline .text-link { width: max-content; }
  .services__cta { align-items: flex-start; flex-direction: column; gap: .35rem; margin-top: 2rem; }

  .gallery { padding-top: 2rem; }
  .gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 210px 170px; gap: .55rem; }
  .gallery-item:first-child { grid-row: auto; grid-column: 1 / 3; }
  .gallery-item:nth-child(2) { grid-column: auto; }
  .gallery-item:nth-child(4) { display: none; }
  .gallery__proof { grid-template-columns: 1fr; margin-top: 1.5rem; }
  .testimonial blockquote { font-size: 1.55rem; }

  .location { grid-template-columns: 1fr; margin-top: 3.5rem; }
  .location__map { min-height: 260px; }
  .location__content { padding: 2.5rem 1.25rem 3rem; }
  .location__content h2 { font-size: 2.75rem; }
  .location__actions { align-items: stretch; flex-direction: column; gap: .6rem; }
  .location__actions .text-link { width: max-content; }
  .hours__row { font-size: .77rem; }

  .site-footer { min-height: 0; align-items: flex-start; flex-direction: column; padding: 2.5rem 1.25rem 5.5rem; }
  .site-footer__meta { justify-items: start; }
  .site-footer__meta span { max-width: 34ch; }
  .site-footer__meta a { display: inline-flex; min-height: 44px; align-items: center; }

  .whatsapp-float { right: 1rem; bottom: 1rem; width: 48px; justify-content: center; padding: 0; }
  .whatsapp-float span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

  .lightbox { padding: 4rem 1rem 1.25rem; }
  .lightbox[open] { grid-template-columns: 1fr 1fr; grid-template-rows: minmax(0, 1fr) auto; gap: .75rem; }
  .lightbox figure { grid-column: 1 / 3; grid-row: 1; width: 100%; min-width: 0; }
  .lightbox img { max-height: calc(100dvh - 12rem); }
  .lightbox__nav { width: 100%; }
}

@media (max-width: 380px) {
  .hero__actions { align-items: flex-start; flex-direction: column; }
  .hero__actions .button { width: 100%; }
  .hero h1 { font-size: 2.25rem; }
}

@media (prefers-reduced-motion: reduce) and (max-width: 960px) {
  .mobile-menu { clip-path: none; transition: opacity 160ms ease, visibility 160ms; }
  .mobile-menu nav a { transform: none; transition: opacity 160ms ease; }
}
