/*
Theme Name: Gallatin Valley Commercial
Theme URI: https://property-listing-commercial.sitesurgeon.pro/
Description: Kadence child theme for Gallatin Valley Commercial — a Bozeman / Gallatin Valley commercial real estate brokerage built on Property Hive. Ports the "Commercial Property" design system: Montana-inspired deep forest, warm stone and big-sky palette, system fonts, business-need-first copy.
Author: SiteSurgeon
Template: kadence
Version: 1.0.0
Requires PHP: 7.4
Text Domain: gallatin-valley-commercial
*/

/* ==========================================================================
   Gallatin Valley Commercial — Design System
   Ported verbatim from Design Reference/Commercial Property/Website Demo/css/style.css
   Plain CSS, custom properties for tokens, mobile-first, no build step.
   WordPress / Property Hive adaptations live in the "WP / Property Hive glue"
   section at the bottom of this file.
   ========================================================================== */

:root {
  /* Color: Montana-inspired — deep forest, warm stone, big-sky accent */
  --color-forest-900: #16231c;
  --color-forest-800: #1f3226;
  --color-forest-700: #2b4433;
  --color-forest-500: #3e5f45;
  --color-sky-600: #3f6b8a;
  --color-sky-500: #4f80a3;
  --color-stone-50: #faf8f4;
  --color-stone-100: #f3efe7;
  --color-stone-200: #e6ded0;
  --color-stone-300: #d3c7b0;
  --color-ink-900: #1c1b19;
  --color-ink-700: #3d3a34;
  --color-ink-500: #6b665c;
  --color-white: #ffffff;
  --color-gold-500: #b3893a;
  --color-danger: #a8433a;

  --bg: var(--color-stone-50);
  --bg-alt: var(--color-stone-100);
  --text: var(--color-ink-900);
  --text-muted: var(--color-ink-500);
  --border: var(--color-stone-200);
  --accent: var(--color-forest-700);
  --accent-strong: var(--color-forest-900);

  /* Type: system-only, zero external font requests */
  --font-display: Georgia, "Iowan Old Style", "Palatino Linotype", serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 14px;
  --shadow-sm: 0 1px 2px rgba(28, 27, 25, 0.08);
  --shadow-md: 0 8px 24px rgba(28, 27, 25, 0.10);
  --shadow-lg: 0 20px 48px rgba(28, 27, 25, 0.16);

  --container: 1200px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; line-height: 1.15; margin: 0 0 0.5em; color: var(--accent-strong); }
p { margin: 0 0 1em; }
button { font: inherit; cursor: pointer; }
input, select, textarea { font: inherit; }

.container { max-width: var(--container); margin-inline: auto; padding-inline: 20px; }
.section { padding-block: 56px; }
.section--alt { background: var(--bg-alt); }
.section__head { max-width: 640px; margin-bottom: 32px; }
.section__head h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }
.section__head p { color: var(--text-muted); }
.section__foot { margin-top: 28px; }

.eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-gold-500);
  font-weight: 600;
  margin-bottom: 10px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  font-weight: 600;
  font-size: 0.95rem;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.btn--primary { background: var(--accent); color: var(--color-white); }
.btn--primary:hover { background: var(--accent-strong); }
.btn--outline { background: transparent; color: var(--accent); border-color: var(--accent); }
.btn--outline:hover { background: var(--accent); color: var(--color-white); }
.btn--light { background: var(--color-white); color: var(--accent-strong); }
.btn--light:hover { background: var(--color-stone-200); }
.btn--block { width: 100%; }
.btn--sm { padding: 8px 16px; font-size: 0.85rem; }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 14px;
}
.nav__brand { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; color: var(--accent-strong); }
.nav__brand span { color: var(--color-gold-500); }
.nav__toggle {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: none;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 10px;
}
.nav__toggle span, .nav__toggle::before, .nav__toggle::after {
  content: "";
  display: block;
  width: 18px;
  height: 2px;
  background: var(--text);
  margin: 2px 0;
}
.nav__menu {
  position: fixed;
  inset: 60px 0 0 0;
  background: var(--bg);
  padding: 24px 20px;
  transform: translateY(-8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease;
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow-y: auto;
}
.nav__menu.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
.nav__menu a { display: block; padding: 12px 4px; font-weight: 600; border-bottom: 1px solid var(--border); }
.nav__cta { display: none; }

@media (min-width: 900px) {
  .nav__toggle { display: none; }
  .nav__menu {
    position: static;
    flex-direction: row;
    align-items: center;
    gap: 28px;
    padding: 0;
    background: none;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    inset: auto;
    overflow: visible;
  }
  .nav__menu a { padding: 0; border: 0; font-weight: 500; font-size: 0.95rem; }
  .nav__menu a:hover { color: var(--accent); }
  .nav__cta { display: inline-flex; }
}

/* ---------- Hero ---------- */
.hero {
  position: relative;
  color: var(--color-white);
  padding-block: 90px 70px;
  background-size: cover;
  background-position: center;
}
.hero::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(22, 35, 28, 0.78), rgba(22, 35, 28, 0.88));
}
.hero__content { position: relative; max-width: 720px; }
.hero__content h1 { color: var(--color-white); font-size: clamp(2rem, 1.5rem + 2.2vw, 3.1rem); }
.hero__content p { color: rgba(255,255,255,0.86); font-size: 1.1rem; max-width: 560px; }

/* ---------- Search ---------- */
.search-panel {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  padding: 18px;
  margin-top: 28px;
}
.search-panel__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.search-panel input[type="search"],
.search-panel input[type="text"] {
  flex: 1;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  font-size: 1rem;
  color: var(--text);
}
.search-panel input[type="search"]:focus,
.search-panel input[type="text"]:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
@media (min-width: 640px) {
  .search-panel__row { flex-direction: row; }
  .search-panel .btn { flex-shrink: 0; }
}
.search-panel__hint { color: var(--text-muted); font-size: 0.85rem; margin: 10px 2px 0; }

.filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}
.filters select {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  background: var(--color-white);
  color: var(--text);
  font-size: 0.9rem;
}

.chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.chip {
  display: inline-block;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.35);
  color: var(--color-white);
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 0.85rem;
}
.chip:hover { background: rgba(255,255,255,0.24); }

.chip-row--light .chip {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  color: var(--text);
}
.chip-row--light .chip:hover { background: var(--color-stone-200); }

/* ---------- Property Cards / Grid ---------- */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 640px) { .grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .grid { grid-template-columns: repeat(3, 1fr); } }

.card {
  position: relative;
  background: var(--color-white);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card__media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--color-stone-200); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__fav {
  position: absolute;
  top: 12px; right: 12px;
  width: 34px; height: 34px;
  border-radius: 50%;
  border: none;
  background: rgba(28,27,25,0.45);
  color: var(--color-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.card__fav svg { fill: none; stroke: currentColor; stroke-width: 2; }
.card__fav.is-active { background: var(--color-danger); }
.card__fav.is-active svg { fill: currentColor; stroke: currentColor; }
.card__body { padding: 16px 18px 20px; }
.card__location { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--color-gold-500); font-weight: 700; margin-bottom: 6px; }
.card__title { font-size: 1.08rem; margin-bottom: 6px; }
.card__title a:hover { color: var(--accent); }
.card__price { font-weight: 700; color: var(--accent-strong); margin-bottom: 10px; }
.card__meta { display: flex; gap: 14px; color: var(--text-muted); font-size: 0.85rem; }

.badge {
  position: absolute;
  top: 12px; left: 12px;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--color-white);
}
.badge--sale { background: var(--color-sky-600); }
.badge--lease { background: var(--color-forest-500); }
.badge--both { background: var(--color-gold-500); }

.empty-state { color: var(--text-muted); padding: 40px 0; text-align: center; }

/* ---------- Icon Tiles (browse by type / location) ---------- */
.tile-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (min-width: 700px) { .tile-grid { grid-template-columns: repeat(4, 1fr); } }
.tile {
  display: block;
  background: var(--color-white);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 20px 16px;
  text-align: left;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.tile:hover { border-color: var(--accent); box-shadow: var(--shadow-sm); }
.tile__count { color: var(--text-muted); font-size: 0.82rem; }
.tile h3 { font-size: 1rem; margin-bottom: 4px; }

.location-card {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4 / 3;
  color: var(--color-white);
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
}
.location-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,35,28,0) 40%, rgba(22,35,28,0.85)); }
.location-card__label { position: relative; padding: 18px; }
.location-card__label h3 { color: var(--color-white); margin-bottom: 2px; }
.location-card__label span { font-size: 0.82rem; color: rgba(255,255,255,0.85); }

/* ---------- CTA banner ---------- */
.cta {
  background: var(--accent-strong);
  color: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 44px 32px;
  text-align: center;
}
.cta h2 { color: var(--color-white); }
.cta p { color: rgba(255,255,255,0.82); max-width: 520px; margin-inline: auto 1em; }
.cta .btn-row { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 18px; }

/* ---------- Email capture ---------- */
.email-capture {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 22px;
}
.email-capture h3 { margin-bottom: 6px; }
.email-capture p { color: var(--text-muted); margin-bottom: 14px; font-size: 0.92rem; }
.email-capture form { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 520px) { .email-capture form { flex-direction: row; } }
.email-capture input[type="email"] {
  flex: 1;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
}
.email-capture__dismiss { background: none; border: none; color: var(--text-muted); font-size: 0.8rem; margin-top: 8px; text-decoration: underline; }
.email-capture__success { font-weight: 600; color: var(--accent-strong); }

.followup-banner {
  background: var(--color-white);
  border: 1px solid var(--color-gold-500);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  margin-bottom: 24px;
  font-size: 0.92rem;
}
.followup-banner p { margin: 0; }

/* ---------- Property Details ---------- */
.pd-gallery { display: grid; grid-template-columns: 1fr; gap: 8px; border-radius: var(--radius-lg); overflow: hidden; }
.pd-gallery img { width: 100%; height: 100%; object-fit: cover; }
.pd-gallery__main { aspect-ratio: 16/10; }
.pd-gallery__thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.pd-gallery__thumbs img { aspect-ratio: 16/10; }

.pd-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; margin-block: 24px 8px; }
.pd-header h1 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.3rem); margin-bottom: 6px; }
.pd-header__location { color: var(--text-muted); }
.pd-header__price { text-align: right; }
.pd-header__price strong { display: block; font-size: 1.4rem; color: var(--accent-strong); }

.pd-layout { display: grid; grid-template-columns: 1fr; gap: 40px; margin-top: 32px; }
@media (min-width: 900px) { .pd-layout { grid-template-columns: 2fr 1fr; } }

.pd-summary { background: var(--bg-alt); border-left: 3px solid var(--color-gold-500); padding: 18px 20px; border-radius: var(--radius-sm); margin-bottom: 28px; }
.pd-summary p { margin: 0; color: var(--text); }
.pd-summary span { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-gold-500); font-weight: 700; margin-bottom: 6px; }

.spec-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 20px; margin-bottom: 32px; }
@media (min-width: 520px) { .spec-grid { grid-template-columns: repeat(3, 1fr); } }
.spec-grid dt { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); margin-bottom: 2px; }
.spec-grid dd { margin: 0; font-weight: 600; }

.tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.tag { background: var(--bg-alt); border-radius: 999px; padding: 6px 14px; font-size: 0.82rem; color: var(--accent-strong); font-weight: 600; }

.feature-list { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 520px) { .feature-list { grid-template-columns: 1fr 1fr; } }
.feature-list li { padding-left: 22px; position: relative; color: var(--text); }
.feature-list li::before { content: "\2713"; position: absolute; left: 0; color: var(--color-forest-500); font-weight: 700; }

.pd-sidebar { display: flex; flex-direction: column; gap: 20px; }
.contact-card { background: var(--color-white); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 20px; }
.contact-card h3 { margin-bottom: 10px; }
.contact-card .btn { margin-top: 10px; }

/* ---------- Forms (contact page) ---------- */
.form-grid { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 560px; }
@media (min-width: 560px) { .form-grid--2col { grid-template-columns: 1fr 1fr; } }
.field { display: flex; flex-direction: column; gap: 6px; }
.field label { font-size: 0.85rem; font-weight: 600; }
.field input, .field select, .field textarea {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 11px 13px;
  background: var(--color-white);
}
.field textarea { resize: vertical; min-height: 120px; }

/* ---------- Page header (non-home pages) ---------- */
.page-header {
  background: var(--bg-alt);
  padding-block: 40px;
  border-bottom: 1px solid var(--border);
}
.page-header h1 { margin-bottom: 6px; }
.page-header p { color: var(--text-muted); margin: 0; max-width: 620px; }

/* ---------- About / stats ---------- */
.stat-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (min-width: 700px) { .stat-row { grid-template-columns: repeat(4, 1fr); } }
.stat { text-align: center; }
.stat strong { display: block; font-family: var(--font-display); font-size: 2rem; color: var(--accent-strong); }
.stat span { color: var(--text-muted); font-size: 0.85rem; }

.two-col { display: grid; grid-template-columns: 1fr; gap: 32px; align-items: center; }
@media (min-width: 800px) { .two-col { grid-template-columns: 1fr 1fr; } }
.two-col img { border-radius: var(--radius-lg); }

/* ---------- Footer ---------- */
.site-footer { background: var(--accent-strong); color: rgba(255,255,255,0.85); padding-block: 48px 24px; margin-top: 40px; }
.footer-grid { display: grid; grid-template-columns: 1fr; gap: 32px; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr; } }
.footer-grid h4 { color: var(--color-white); font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 14px; }
.footer-grid a { display: block; padding: 5px 0; color: rgba(255,255,255,0.72); font-size: 0.92rem; }
.footer-grid a:hover { color: var(--color-white); }
.footer-brand { font-family: var(--font-display); color: var(--color-white); font-size: 1.2rem; margin-bottom: 8px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.15); margin-top: 36px; padding-top: 20px; font-size: 0.8rem; color: rgba(255,255,255,0.55); display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }

/* ---------- Appear animations ---------- */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(0.16, 0.8, 0.24, 1), transform 0.7s cubic-bezier(0.16, 0.8, 0.24, 1);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---------- Utility ---------- */
.mt-0 { margin-top: 0; }
.text-muted { color: var(--text-muted); }
.center { text-align: center; }
[hidden] { display: none !important; }

/* ==========================================================================
   WP / Property Hive glue
   Adapts core WordPress and Property Hive markup to the design system without
   touching the class names above. Property Hive's own stylesheet is dequeued
   in functions.php, so these rules style its raw template output.
   ========================================================================== */

/* Admin bar offset for the sticky header */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .site-header { top: 0; } }

/* Kadence leaves its own wrappers on some views — neutralise their spacing */
.site, #wrapper, .content-wrap, .content-container { max-width: none; margin: 0; padding: 0; }

/* Generic page body content (WP pages, single posts) */
.page-content { padding-block: 56px; }
.page-content .container > h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); margin-top: 1.4em; }
.page-content img { border-radius: var(--radius-md); }
.page-content ul:not(.feature-list):not(.card__meta):not(.nav__menu) { list-style: disc; padding-left: 1.2em; margin: 0 0 1em; }

/* WordPress alignment / caption helpers used inside page content */
.aligncenter { margin-inline: auto; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.wp-caption-text { color: var(--text-muted); font-size: 0.85rem; }

/* ---- Property Hive: search results archive ---- */
ul.properties {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin: 0;
  padding: 0;
}
@media (min-width: 640px) { ul.properties { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { ul.properties { grid-template-columns: repeat(3, 1fr); } }
ul.properties li.property { list-style: none; margin: 0; }
ul.properties li.property::before { content: none; }

/* Property Hive result count / ordering row */
.ph-results-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.ph-results-bar p, .ph-results-bar form { margin: 0; }
.propertyhive-ordering select {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 9px 12px;
  background: var(--color-white);
  font-size: 0.9rem;
}

/* Property Hive pagination */
.propertyhive-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 36px;
}
.propertyhive-pagination a,
.propertyhive-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  font-weight: 600;
  font-size: 0.9rem;
}
.propertyhive-pagination .current,
.propertyhive-pagination a:hover { background: var(--accent); color: var(--color-white); border-color: var(--accent); }

/* ---- Property Hive: single property gallery (flexslider markup) ---- */
.pd-gallery .flexslider { margin: 0; border: 0; border-radius: var(--radius-lg); overflow: hidden; box-shadow: none; background: var(--color-stone-200); }
.pd-gallery .flexslider .slides img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.pd-gallery .flex-control-thumbs { margin-top: 8px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.pd-gallery .flex-control-thumbs li { margin: 0; }
.pd-gallery .flex-control-thumbs img { aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-sm); }

/* ---- Property Hive: make-enquiry form ---- */
.contact-card .property-enquiry-form p,
.contact-card form p { margin-bottom: 12px; }
.contact-card form label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 4px; }
.contact-card form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.contact-card form select,
.contact-card form textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 11px 13px;
  background: var(--color-white);
}
.contact-card form textarea { min-height: 110px; resize: vertical; }
.contact-card form input[type="submit"],
.contact-card form button[type="submit"] {
  width: 100%;
  margin-top: 6px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: var(--accent);
  color: var(--color-white);
  font-weight: 600;
}
.contact-card form input[type="submit"]:hover { background: var(--accent-strong); }
.ph-enquiry-thankyou,
.property-enquiry-thankyou { color: var(--accent-strong); font-weight: 600; }

/* Property Hive form validation states */
.ph-form-error, .property-enquiry-form .error { color: var(--color-danger); font-size: 0.85rem; }

/* ---- Contact page office / enquiry layout ---- */
.contact-layout { display: grid; grid-template-columns: 1fr; gap: 40px; }
@media (min-width: 900px) { .contact-layout { grid-template-columns: 2fr 1fr; } }

/* ---- Property Hive main wrapper + single-property detail ---- */
.ph-main { display: block; }
.gvc-property-detail-wrap { padding-block: 8px 56px; }
.gvc-single-property .site-footer { margin-top: 0; }
.pd-description { color: var(--text); }
.pd-description p { margin-bottom: 1em; }
.pd-description h3 { font-size: 1.15rem; margin-top: 1.4em; }

/* Enquiry form controls inside the sidebar card */
.contact-card .property-enquiry-form .control { margin-bottom: 12px; }
.contact-card #enquirySuccess { color: var(--accent-strong); font-weight: 600; margin-bottom: 10px; }
.contact-card #enquiryError,
.contact-card #enquiryValidation { color: var(--color-danger); font-size: 0.88rem; margin-bottom: 10px; }
