/*
 * base.css — the site's foundation, the first stylesheet on every page.
 *
 * Replaces the 2019 theme's css/bootstrap.css, css/style.css and
 * css/responsive.css (≈250 KB, render-blocking). A scan of every template,
 * include and script showed only these parts were still in use; they are
 * kept here with the same values, so pages look exactly as before:
 *   - the reset and element defaults (normalize.css + Bootstrap 3 base)
 *   - the old theme's global rules for images, links, form fields, tables
 *   - the layout container and the spacing helpers the listing pages use
 * The Bootstrap grid (.row / .col-*) is gone: listing cards use the CSS grid
 * in house-loop.css. Article and property-page rules from the old stylesheet
 * moved to single.css and single-property.css.
 *
 * Everything after this file (header.css, editorial*.css, page styles,
 * site.css) builds on it.
 */

/* ── Reset ─────────────────────────────────────────────────────────────── */
*, *:before, *:after {
  box-sizing: border-box;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
html { font-family: sans-serif; font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-tap-highlight-color: rgba(0,0,0,0) }
body {
  margin: 0; width: 100%; height: 100%; overflow-x: hidden;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.42857143;
  color: #333; background-color: #fff;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block }
audio, canvas, progress, video { display: inline-block; vertical-align: baseline }
audio:not([controls]) { display: none; height: 0 }
[hidden], template { display: none }
[role=button] { cursor: pointer }
svg:not(:root) { overflow: hidden }

/* ── Text ──────────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 { font-family: inherit; font-weight: 500; line-height: 1.1; color: inherit }
h1, h2, h3 { margin-top: 20px; margin-bottom: 10px }
h4, h5, h6 { margin-top: 10px; margin-bottom: 10px }
h1 { font-size: 36px } h2 { font-size: 30px } h3 { font-size: 24px }
h4 { font-size: 18px } h5 { font-size: 14px } h6 { font-size: 12px }
h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { font-weight: 400; line-height: 1; color: #777 }
h1 small, h2 small, h3 small { font-size: 65% }
h4 small, h5 small, h6 small { font-size: 75% }
p { margin: 0 0 10px }
b, strong { font-weight: 700 }
dfn { font-style: italic }
small { font-size: 85% }
mark { padding: .2em; color: #000; background-color: #fcf8e3 }
sub, sup { position: relative; font-size: 75%; line-height: 0; vertical-align: baseline }
sup { top: -.5em } sub { bottom: -.25em }
abbr[title], abbr[data-original-title] { cursor: help; border-bottom: 1px dotted #777 }
ol, ul { margin-top: 0; margin-bottom: 10px }
ol ol, ol ul, ul ol, ul ul { margin-bottom: 0 }
li { line-height: 30px }
dl { margin-top: 0; margin-bottom: 20px }
dd, dt { line-height: 1.42857143 }
dt { font-weight: 700 }
dd { margin-left: 0 }
address { margin-bottom: 20px; font-style: normal; line-height: 1.42857143 }
blockquote {
  padding: 10px 20px; margin: 0 0 20px; border-left: 5px solid #eee;
  font-size: 1.4em; line-height: 1.4em; font-style: italic; color: #9a9a9a;
}
blockquote ol:last-child, blockquote p:last-child, blockquote ul:last-child { margin-bottom: 0 }
blockquote footer, blockquote small { display: block; font-size: 80%; line-height: 1.42857143; color: #777 }
blockquote footer:before, blockquote small:before { content: '\2014 \00A0' }
hr { box-sizing: content-box; height: 0; margin-top: 20px; margin-bottom: 20px; border: 0; border-top: 1px solid #eee }
code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em }
pre, code { font-family: monospace }
code { padding: 2px 4px; font-size: 90%; color: #c7254e; background-color: #f9f2f4; border-radius: 4px }
kbd { padding: 2px 4px; font-size: 90%; color: #fff; background-color: #333; border-radius: 3px; box-shadow: inset 0 -1px 0 rgba(0,0,0,.25) }
kbd kbd { padding: 0; font-size: 100%; font-weight: 700; box-shadow: none }
pre {
  display: block; overflow: auto; padding: 9.5px; margin: 0 0 10px; font-size: 13px; line-height: 1.42857143;
  color: #333; word-break: break-all; word-wrap: break-word; background-color: #f5f5f5; border: 1px solid #ccc; border-radius: 4px;
}
pre code { padding: 0; font-size: inherit; color: inherit; white-space: pre-wrap; background-color: transparent; border-radius: 0 }

/* ── Links ─────────────────────────────────────────────────────────────── */
a { color: #417eda; text-decoration: none; background-color: transparent; transition: all 200ms ease-in-out }
a:hover, a:active, a:focus { color: #B8965A; text-decoration: none; outline: none }

/* ── Images and media ─────────────────────────────────────────────────── */
img { display: block; max-width: 100%; height: auto; margin-left: auto; margin-right: auto; border: 0; vertical-align: middle }
figure { margin: 0 }

/* ── Form fields ───────────────────────────────────────────────────────── */
button, input, optgroup, select, textarea { margin: 0; font: inherit; color: inherit }
button, input, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit }
button { overflow: visible }
button, select { text-transform: none }
button, html input[type=button], input[type=reset], input[type=submit] { -webkit-appearance: button; cursor: pointer }
button[disabled], html input[disabled] { cursor: default }
button::-moz-focus-inner, input::-moz-focus-inner { padding: 0; border: 0 }
textarea, select, input {
  width: 100%; height: 50px; padding: 0 15px; border: 1px solid #ddd; border-radius: 0; box-shadow: none; outline: none;
  background-color: #fff; color: #5d5d5d; font-size: .9em; font-family: "GFS Didot", serif; -webkit-appearance: none;
}
textarea { overflow: auto; padding: 15px; max-width: 100%; min-height: 140px }
input[type=submit] { width: auto; margin: 0 auto; box-shadow: none }
input[type=button] { height: auto; width: auto }
input[type=submit], button { height: auto }
input[type=reset] { width: auto }
input[type=checkbox], input[type=radio] {
  box-sizing: border-box; position: relative; width: 20px; height: 20px; padding: 0; margin: 0;
  line-height: normal; border: 1px solid #ddd; cursor: pointer;
}
/* Fields have their native look switched off (appearance: none above), so a
   ticked box or radio shows this green check — the old theme drew it with an
   icon font; an inline SVG needs no font download */
input[type=checkbox]:checked:before, input[type=radio]:checked:before {
  content: ""; position: absolute; width: 20px; height: 20px; line-height: 20px; text-align: center;
  color: #43b77a; font-size: 13px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 12'%3E%3Cpath d='M1.5 6.5 5 10l7.5-8.5' fill='none' stroke='%2343b77a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat;
}
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { height: auto }
input[type=search] { box-sizing: border-box; -webkit-appearance: none }
input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { -webkit-appearance: none }
input[type=file] { display: block }
input[type=range] { display: block; width: 100% }
select[multiple], select[size] { height: auto }
select:-moz-focusring { color: rgba(0,0,0,0); text-shadow: 0 0 0 #000 }
fieldset[disabled] input[type=checkbox], fieldset[disabled] input[type=radio],
input[type=checkbox][disabled], input[type=radio][disabled] { cursor: not-allowed }
optgroup { font-weight: 700 }
label { display: block; max-width: 100%; margin-bottom: 5px; font-family: "GFS Didot", serif; font-weight: normal; font-size: 18px }
fieldset { min-width: 0; padding: 0; margin: 0; border: 0 }
legend { display: block; width: 100%; padding: 0; margin-bottom: 20px; font-size: 21px; line-height: inherit; color: #333; border: 0; border-bottom: 1px solid #e5e5e5 }
output { display: block; padding-top: 7px; font-size: 14px; line-height: 1.42857143; color: #555 }

/* ── Tables (article content) ──────────────────────────────────────────── */
table { width: 100%; border-spacing: 0; border-collapse: collapse; background-color: transparent }
td, th { padding: 0 }
th { text-align: left }
caption { padding-top: 8px; padding-bottom: 8px; color: #777; text-align: left }
table td { padding: 12px 20px; border: 1px solid #ddd; font-size: .95em }
table thead { background-color: #f7f7f7; font-weight: bold; font-size: .95em; text-transform: uppercase }
table thead tr td { padding: 12px 20px; font-size: 1em }
@media only screen and (max-width: 767px) {
  table td { padding: 8px 15px }
  table thead tr td { padding: 8px 15px; font-size: 1em }
}

/* ── Layout container (property and project pages) ─────────────────────
   Centred column with 15px side padding, 1170px at most. */
.brg-container { width: 100%; max-width: 1170px; margin-left: auto; margin-right: auto; padding-left: 15px; padding-right: 15px }

/* ── Spacing helpers still used by the listing templates ──────────────── */
.section-40 { padding-top: 40px; padding-bottom: 40px }
.section-60 { padding-top: 60px; padding-bottom: 60px }
.margin-60 { min-height: 1px; margin-bottom: 60px }
.align-center { text-align: center }
.hidden { display: none !important }   /* the Contact page hides its form loader with it */
