/* Small usability refinements that preserve the original design. */
/* Suppress click focus rings while retaining keyboard focus indicators. */
a:focus:not(:focus-visible) {
  outline: none;
}

a:focus-visible,
:focus-visible {
  outline: 3px solid #dc4128;
  outline-offset: 3px;
}

a,
button,
.btn-default {
  transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

@media (hover: hover) {
  .btn-default:hover {
    transform: translateY(-1px);
  }
}

@media (max-width: 767px) {
  .navbar a,
  button,
  .btn-default,
  input[type="submit"] {
    min-height: 44px;
  }

  .form-control {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Preserve intrinsic image proportions when width/height hints are present. */
.galleryWork { height: auto; }

/* Contact columns stack on small screens and use a 40/60 split on desktop. */
.contact-details-column,
.contact-form-column {
  box-sizing: border-box;
  width: 100%;
  padding: 15px;
}

@media (min-width: 992px) {
  .contact-layout {
    display: flex;
    align-items: flex-start;
  }

  .contact-details-column { width: 40%; }
  .contact-form-column { width: 60%; }
}

/* Source rectangles matched to the exported gallery and thumbnail crops. */
.matched-crop { display:block; position:relative; overflow:hidden; width:100%; aspect-ratio:4/3; flex-shrink:0; }
.gallery-crop-viewport { display:flex; align-items:center; width:100%; aspect-ratio:4/3; max-height:460px; overflow:hidden; }
.matched-crop > img, .matched-thumb > img { position:absolute; width:var(--crop-width)!important; height:var(--crop-height)!important; left:var(--crop-left); top:var(--crop-top); max-width:none!important; max-height:none!important; object-fit:fill!important; }
.matched-thumb { display:block; position:relative; overflow:hidden; width:100%; }

.lg-thumb-item:has(.matched-lightbox-thumb) { display:flex; justify-content:center; align-items:center; overflow:hidden; }
.matched-lightbox-thumb { display:block; position:relative; width:max(100%,106.6667px); height:80px; flex-shrink:0; overflow:hidden; }
.matched-lightbox-thumb > img { position:absolute; width:var(--crop-width)!important; height:var(--crop-height)!important; left:var(--crop-left); top:var(--crop-top); max-width:none!important; max-height:none!important; object-fit:fill!important; }
