/* Base */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #FFFFFF; }
a { color: #8B6F3F; }
a:hover { color: #141414; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid #8B6F3F; outline-offset: 2px; }
input:focus, select:focus, textarea:focus { border-color: #8B6F3F; outline: 2px solid #8B6F3F; outline-offset: 1px; }
::placeholder { color: #6B6B6B; }
.skip-link { position: absolute; left: -9999px; top: 0; }
.skip-link:focus { left: 16px; top: 16px; z-index: 10; background: #FFFFFF; color: #141414; padding: 10px 14px; border: 1px solid #8B6F3F; }
.nav-toggle { display: none; }

/* Hover and keyboard-focus states for buttons and links */
a, button { transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease; }
/* Solid gold buttons (Start a conversation, Send message): deepen the gold */
a[style*="background: #8B6F3F"]:hover, a[style*="background: #8B6F3F"]:focus-visible,
button[style*="background: #8B6F3F"]:hover, button[style*="background: #8B6F3F"]:focus-visible { background: #6F5730 !important; }
/* Outlined gold button (Contact in the menu): soft gold fill */
a[style*="border: 1px solid #8B6F3F"]:hover, a[style*="border: 1px solid #8B6F3F"]:focus-visible { background: #F4EEE3 !important; color: #6F5730 !important; border-color: #6F5730 !important; }
/* Outlined neutral button (Our services): darker outline, light fill */
a[style*="border: 1px solid #C9C6BF"]:hover, a[style*="border: 1px solid #C9C6BF"]:focus-visible { background: #F6F5F2 !important; border-color: #141414 !important; }
/* Underlined gold text links (Get in touch, Learn more): ink color */
a[style*="border-bottom: 1px solid #8B6F3F"]:hover, a[style*="border-bottom: 1px solid #8B6F3F"]:focus-visible { color: #141414 !important; border-bottom-color: #141414 !important; }
/* Menu links and footer links: gold */
#site-nav a:not([style*="border: 1px solid"]):hover, #site-nav a:not([style*="border: 1px solid"]):focus-visible,
footer a:hover, footer a:focus-visible { color: #8B6F3F !important; }
/* Logo link */
a.brand:hover img { opacity: 0.8; }
@media (prefers-reduced-motion: reduce) { a, button { transition: none; } }

/* Tablet and below: collapsible navigation */
@media (max-width: 900px) {
  .nav-toggle {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px;
    font: inherit; font-size: 12px; font-weight: 500; letter-spacing: 0.28em; text-transform: uppercase;
    color: #141414; background: #FFFFFF; border: 1px solid #C9C6BF; cursor: pointer;
  }
  header > div { column-gap: 16px !important; }
  header a[aria-label] { font-size: 13px !important; letter-spacing: 0.2em !important; gap: 10px !important; }
  header a[aria-label] img { height: 32px !important; }
  #site-nav { width: 100%; flex-direction: column; align-items: stretch !important; gap: 0 !important; }
  .js #site-nav { display: none !important; }
  .js #site-nav.open { display: flex !important; }
  #site-nav a { padding: 14px 0 !important; border-bottom: 1px solid #E4E2DD !important; }
  #site-nav a:last-child { margin-top: 16px; text-align: center; border: 1px solid #8B6F3F !important; padding: 15px 26px !important; }
}

/* Phone */
@media (max-width: 640px) {
  [style*="max-width: 1240px"] { padding-left: 20px !important; padding-right: 20px !important; }
  section > div[style*="padding: 1"] { padding-top: 72px !important; padding-bottom: 72px !important; }
  h1 { font-size: 44px !important; line-height: 1.08 !important; }
  h2 { font-size: 34px !important; line-height: 1.12 !important; }
  h3 { font-size: 26px !important; }
  [style*="font-size: 20px"], [style*="font-size: 19px"], [style*="font-size: 18px"] { font-size: 17px !important; }
  [style*="padding: 56px 52px"], [style*="padding: 52px 52px"], [style*="padding: 48px 44px"], [style*="padding: 48px 52px"] { padding: 32px 24px !important; }
  [style*="padding: 44px 40px 52px"] { padding: 28px 0 !important; border-left: 0 !important; border-top: 1px solid #E4E2DD; }
  [style*="padding: 44px 40px 52px"]:first-child { border-top: 0; }
  [style*="letter-spacing: 0.28em"] { letter-spacing: 0.18em !important; }
}

/* Small phones: keep logo and Menu on one row */
@media (max-width: 380px) {
  header a[aria-label] { font-size: 12px !important; letter-spacing: 0.14em !important; gap: 8px !important; }
  header a[aria-label] img { height: 28px !important; }
  .nav-toggle { padding: 0 14px; }
}
