/* Four contact channels; MAX always opens the supplied contact. */
.contact-channel-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.contact-channel.whatsapp img,.messenger-link.whatsapp img,.header-social.whatsapp img{border-radius:0}
.site-header .header-social.whatsapp img{width:24px;height:24px}
.norti-channels{grid-template-columns:repeat(2,minmax(0,1fr))}
.norti-channel{gap:6px;align-items:center}
.norti-channel img{width:20px;height:20px;object-fit:contain;flex:none}
.norti-copy-request{min-height:44px;padding:8px 0;background:none;border:0;color:#087a88;font-family:inherit;font-size:12px;font-weight:600;line-height:1.5;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}
.norti-copy-request:focus-visible{outline:3px solid #087e8d;outline-offset:3px}
.norti-copy-status{font-size:12px;color:#406373}.norti-copy-status:empty{display:none}
.norti-copy-fallback{width:100%;min-height:150px;font-family:inherit;font-size:14px;line-height:1.5}
@media(max-width:650px){.contact-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Analytics choice remains compact on mobile; equal access to refusal. */
.privacy-actions{gap:8px}.privacy-actions button{min-height:44px}
.privacy-option a{color:#087b89;text-decoration:underline;text-underline-offset:2px}
@media(max-width:700px){.privacy-banner .privacy-actions{display:grid;grid-template-columns:1fr 1fr}.privacy-banner #privacy-settings{grid-column:1/-1;background:#fff;color:#087581;padding:6px;min-height:36px}.privacy-banner p{margin:7px 0}}

/* UI Skills polish: explicit properties, reversible press feedback, and disabled-state safety. */
button:not(:disabled):not([aria-disabled="true"]),
input[type="button"]:not(:disabled):not([aria-disabled="true"]),
input[type="submit"]:not(:disabled):not([aria-disabled="true"]),
input[type="reset"]:not(:disabled):not([aria-disabled="true"]),
.button:not(:disabled):not([aria-disabled="true"]) {
  -webkit-tap-highlight-color: transparent;
  transition-property: transform, background-color, border-color, color, box-shadow, opacity;
  transition-duration: 150ms;
  transition-timing-function: ease-out;
}

button:not(:disabled):not([aria-disabled="true"]):active,
input[type="button"]:not(:disabled):not([aria-disabled="true"]):active,
input[type="submit"]:not(:disabled):not([aria-disabled="true"]):active,
input[type="reset"]:not(:disabled):not([aria-disabled="true"]):active,
.button:not(:disabled):not([aria-disabled="true"]):active {
  transform: scale(0.96);
}

@media (prefers-reduced-motion: reduce) {
  button:not(:disabled):not([aria-disabled="true"]),
  input[type="button"]:not(:disabled):not([aria-disabled="true"]),
  input[type="submit"]:not(:disabled):not([aria-disabled="true"]),
  input[type="reset"]:not(:disabled):not([aria-disabled="true"]),
  .button:not(:disabled):not([aria-disabled="true"]) {
    transition: none !important;
  }

  button:not(:disabled):not([aria-disabled="true"]):active,
  input[type="button"]:not(:disabled):not([aria-disabled="true"]):active,
  input[type="submit"]:not(:disabled):not([aria-disabled="true"]):active,
  input[type="reset"]:not(:disabled):not([aria-disabled="true"]):active,
  .button:not(:disabled):not([aria-disabled="true"]):active {
    transform: none;
    filter: brightness(0.92);
  }
}

/* Северный стиль — restrained card and image finish, guided by UI Skills. */
.home-service-grid .card .photo>img,
.project-card .photo>img,
.material-card-content>img {
  outline: 1px solid rgba(0, 0, 0, .10);
  outline-offset: -1px;
}
@supports (color: oklch(0 0 0 / 0.1)) {
  .home-service-grid .card .photo>img,
  .project-card .photo>img,
  .material-card-content>img {
    outline-color: oklch(0 0 0 / 0.1);
  }
}
@media (hover: hover) and (pointer: fine) {
  .home-service-grid a.card,
  .home-service-grid button.card,
  .project-card,
  .material-link {
    transition-property: transform, box-shadow;
    transition-duration: 150ms;
    transition-timing-function: ease-out;
  }
  .home-service-grid a.card:hover,
  .home-service-grid button.card:hover,
  .project-card:hover,
  .material-link:hover {
    transform: translateY(-2px);
    box-shadow: inset 0 0 0 1px rgba(0, 126, 138, .34), 0 2px 5px rgba(7, 44, 58, .06), 0 12px 26px rgba(7, 44, 58, .11);
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-service-grid a.card,
  .home-service-grid button.card,
  .project-card,
  .material-link {
    transition: none;
  }
  .home-service-grid a.card:hover,
  .home-service-grid button.card:hover,
  .project-card:hover,
  .material-link:hover {
    transform: none;
  }
}
