html, body { margin: 0; padding: 0; background: #F7F0E8; }
* { box-sizing: border-box; }
a { color: #A96A50; text-decoration: none; }
::selection { background: #C4866B; color: #F7F0E8; }

/* Photo frames: wrapper is sized by the layout; the img is positioned by
   site.js to reproduce the crop chosen in the editor (data-x / data-y).
   Before JS runs (or without JS) it falls back to a centered cover fit. */
.photo { overflow: hidden; }
.photo img {
  position: absolute; left: 50%; top: 50%;
  width: 100%; height: 100%;
  max-width: none; display: block;
  object-fit: cover;
  transform: translate(-50%, -50%);
}

/* Hover states (inline styles win over plain rules, hence !important) */
.hov-dusk:hover { color: #4E4038 !important; }
.hov-terra:hover { color: #A96A50 !important; }
.btn-cream:hover { background: #4E7038 !important; color: #FBF6F0 !important; }
.btn-lift:hover { transform: translateY(-2px); }
.btn-fill:hover { background: #4E7038 !important; }
.foot-link:hover { color: #F7F0E8 !important; }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ── Mobile ──────────────────────────────────────────────────────────── */
@media (max-width: 760px) {
  /* Nav: stack the logo above the links instead of overflowing */
  .topnav { flex-direction: column !important; justify-content: center !important; gap: 18px !important; }
  .topnav > div { flex-wrap: wrap; justify-content: center; row-gap: 12px !important; }

  /* Hero: one column, photo below the headline, at a phone-friendly height */
  .hero-grid { grid-template-columns: 1fr !important; }
  .hero-grid .photo { height: clamp(280px, 48vh, 420px) !important; }

  /* Long email address: smaller type and allow breaking so it can't
     stretch the page wider than the screen */
  a[href^="mailto:"] { font-size: 19px !important; word-break: break-all; }

  /* Grid/flex children may not shrink below content size by default */
  section > div, section article { min-width: 0; }
}
