.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: background-color var(--a1a-transition), border-color var(--a1a-transition), color var(--a1a-transition), transform var(--a1a-transition);
}

.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--a1a-teal); color: var(--a1a-white); }
.button--primary:hover { background: var(--a1a-teal-dark); }
.button--secondary { border-color: var(--a1a-border); background: var(--a1a-white); color: var(--a1a-ink); }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }

.site-topbar { background: var(--a1a-teal-dark); color: var(--a1a-white); font-size: .875rem; }
.site-topbar p { margin: 0; }
.site-topbar__inner { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 24px; }
.site-topbar__links { display: flex; align-items: center; gap: 20px; }
.site-topbar a { text-decoration: none; }

.site-header {
  position: relative;
  z-index: 100;
  border-bottom: 1px solid var(--a1a-border);
  background: rgb(253 251 247 / 95%);
  backdrop-filter: blur(14px);
}

.site-header__inner {
  display: grid;
  min-height: 88px;
  grid-template-columns: minmax(130px, 180px) 1fr auto;
  align-items: center;
  gap: clamp(20px, 3vw, 46px);
}

.site-brand { display: inline-flex; align-items: center; text-decoration: none; }
.site-brand__image, .custom-logo { width: auto; max-height: 64px; }
.site-brand__text { font-size: 1.05rem; font-weight: 700; line-height: 1.15; }
.primary-nav__menu, .mobile-nav__menu, .footer-menu { margin: 0; padding: 0; list-style: none; }
.primary-nav__menu { display: flex; align-items: center; justify-content: center; gap: clamp(10px, 1.5vw, 26px); }
.primary-nav a { display: inline-flex; padding-block: 12px; font-size: .875rem; font-weight: 600; text-decoration: none; }
.primary-nav .current-menu-item > a { color: var(--a1a-teal); }
.site-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }

.menu-toggle {
  display: none;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--a1a-border);
  border-radius: 50%;
  background: transparent;
  color: var(--a1a-ink);
  cursor: pointer;
}

.menu-toggle__lines,
.menu-toggle__lines::before,
.menu-toggle__lines::after { width: 20px; height: 2px; border-radius: 2px; background: currentColor; transition: transform var(--a1a-transition), opacity var(--a1a-transition); }
.menu-toggle__lines { position: relative; }
.menu-toggle__lines::before, .menu-toggle__lines::after { position: absolute; left: 0; content: ""; }
.menu-toggle__lines::before { top: -6px; }
.menu-toggle__lines::after { top: 6px; }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines::before { top: 0; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__lines::after { top: 0; transform: rotate(-45deg); }

.mobile-nav { border-top: 1px solid var(--a1a-border); background: var(--a1a-surface); }
.mobile-nav__menu { padding-block: 18px; }
.mobile-nav__menu a { display: block; padding: 12px 0; font-weight: 600; text-decoration: none; }
.mobile-nav__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-bottom: 24px; }

.site-footer { padding-top: clamp(64px, 7vw, 110px); background: var(--a1a-teal-dark); color: rgb(255 255 255 / 78%); }
.site-footer__grid { display: grid; grid-template-columns: 1.45fr .8fr .8fr 1fr; gap: clamp(32px, 5vw, 80px); }
.site-footer h2 { color: var(--a1a-white); font-size: .875rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer__brand strong { color: var(--a1a-white); font-size: 1.2rem; }
.site-footer__brand p { max-width: 34ch; margin-top: 20px; }
.site-footer__logo { width: auto; max-height: 72px; }
.footer-menu li + li { margin-top: 10px; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--a1a-white); }
.site-footer__contact { display: flex; align-items: flex-start; flex-direction: column; gap: 10px; }
.site-footer address { font-style: normal; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 24px; margin-top: 64px; padding-block: 24px; border-top: 1px solid rgb(255 255 255 / 14%); font-size: .875rem; }

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 600ms ease, transform 600ms ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1080px) {
  .site-topbar__links a:first-child { display: none; }
  .primary-nav { display: none; }
  .site-header__inner { grid-template-columns: 1fr auto; }
  .menu-toggle { display: inline-flex; }
  .site-footer__grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .site-footer__contact { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .site-topbar__inner > p, .site-topbar__links a:not(:last-child) { display: none; }
  .site-topbar__inner { justify-content: flex-end; }
  .site-header__inner { min-height: 76px; }
  .site-header__cta { display: none; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__brand, .site-footer__contact { grid-column: 1 / -1; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; }
}

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

/* Property cards behave as full-card links on all templates. */
.property-card.is-card-link { cursor: pointer; }
.property-card.is-card-link:focus-visible { outline: 3px solid rgba(45, 141, 165, .45); outline-offset: 4px; }
