/*
 * DC Marketing - main stylesheet.
 *
 * Colours and type taken from the Wix site (11/11/2026):
 * charcoal header and footer, steel-blue menu bar and headings, navy for the
 * current menu item, silver for the light text on dark.
 */

/* 1. Tokens */

:root {
	--dcm-charcoal: #2b2b2b;
	--dcm-blue: #4f87a2;
	--dcm-navy: #1e3643;
	--dcm-silver: #d5d5d5;
	--dcm-paper: #fafafa;
	--dcm-ink: #333;
	--dcm-wide: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	--dcm-body: 'Nunito Sans', 'Avenir Next', Avenir, 'Helvetica Neue', Arial, sans-serif;
	--theme-palette-color-1: var(--dcm-blue);
	--theme-palette-color-2: var(--dcm-navy);
	--theme-font-family: var(--dcm-body);
}

body {
	font-family: var(--dcm-body);
	color: var(--dcm-ink);
	background: #fff;
}

.dcm-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 20px;
}

/* 2. Header */

.dcm-header__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 120px;
	max-width: none;
	background: var(--dcm-charcoal);
	padding: 16px max(20px, calc((100% - 1140px) / 2));
}

.dcm-brand,
.dcm-footer__brand {
	display: flex;
	align-items: center;
	gap: 18px;
	text-decoration: none;
}

.dcm-brand img {
	width: 150px;
	height: auto;
}

.dcm-brand__text {
	display: flex;
	flex-direction: column;
}

.dcm-brand__name {
	color: var(--dcm-blue);
	font-weight: 800;
	font-size: 22px;
	line-height: 1.1;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	margin: 0;
}

.dcm-brand__slogan {
	color: #fff;
	font-weight: 300;
	font-size: 19px;
	letter-spacing: 0.05em;
	margin: 4px 0 0;
}

.dcm-cmlq {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-decoration: none;
	font-weight: 300;
	font-size: 17px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.dcm-cmlq__visit { color: var(--dcm-blue); }
.dcm-cmlq__name { color: var(--dcm-silver); }
.dcm-cmlq:hover .dcm-cmlq__name { color: #fff; }

/* 3. Menu bar */

.dcm-nav {
	background: var(--dcm-blue);
	position: relative;
	z-index: 50;
}

.dcm-nav__toggle,
.dcm-nav__burger { display: none; }

.dcm-nav__menu {
	display: flex;
	justify-content: space-between;
	list-style: none;
	margin: 0 auto;
}

.dcm-nav__menu li {
	position: relative;
	list-style: none;
}

.dcm-nav__menu a {
	display: block;
	padding: 10px 18px;
	color: var(--dcm-paper);
	font-size: 14px;
	text-transform: uppercase;
	text-decoration: none;
}

.dcm-nav__menu > li > a:hover,
.dcm-nav__menu .current-menu-item > a,
.dcm-nav__menu .current-menu-ancestor > a {
	color: var(--dcm-navy);
}

.dcm-nav__menu .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 250px;
	margin: 0;
	padding: 0;
	background: var(--dcm-blue);
}

.dcm-nav__menu li:hover > .sub-menu,
.dcm-nav__menu li:focus-within > .sub-menu { display: block; }
.dcm-nav__menu .sub-menu a:hover { background: var(--dcm-navy); color: #fff; }

/* 4. Page body */

.site-main .hero-section,
.page .entry-header { display: none; }

/* Full-width blocks run edge to edge, past Blocksy's content box. */
body { overflow-x: clip; }

.site-main .entry-content > .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: 0;
	margin-bottom: 0;
}

.home .ct-container-full[data-vertical-spacing] { padding-top: 0; padding-bottom: 0; }

.dcm-page-title {
	font-family: var(--dcm-wide);
	color: var(--dcm-blue);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 800;
	text-align: center;
	margin: 48px 0 24px;
}

.entry-content h2,
.entry-content h3 { color: var(--dcm-blue); }

.dcm-wide {
	font-family: var(--dcm-wide) !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.dcm-lead {
	color: var(--dcm-silver);
	font-weight: 300;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* The hero: a dark cover with the Wix wording. */

.dcm-hero .wp-block-cover__inner-container { text-align: center; }
.dcm-hero h1 { color: var(--dcm-blue); font-size: clamp(28px, 4vw, 44px); }
.dcm-hero p { font-size: clamp(16px, 2vw, 24px); margin: 0.6em 0; }
.dcm-hero a { color: inherit; }

.dcm-section-dark {
	background: var(--dcm-charcoal);
	color: var(--dcm-silver);
	padding: 40px 20px 56px;
	text-align: center;
}

/* 5. Photo tiles */

.dcm-tiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	max-width: 1140px;
	margin: 24px auto 0;
}

.dcm-tile {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}

.dcm-tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s;
}

.dcm-tile:hover img { transform: scale(1.04); }

.dcm-tile span {
	position: absolute;
	inset: auto 0 0;
	padding: 18px;
	background: rgba(30, 54, 67, 0.75);
	color: #fff;
	font-family: var(--dcm-wide);
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
}

/* 6. Listings */

.dcm-listings {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 28px;
	margin: 24px 0 56px;
}

.dcm-card {
	background: #fff;
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
}

.dcm-card__image {
	position: relative;
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #eee;
}

.dcm-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dcm-card__body { padding: 18px 20px 20px; }
.dcm-card h3 { margin: 0 0 4px; font-size: 20px; }
.dcm-card h3 a { color: var(--dcm-navy); text-decoration: none; }
.dcm-card__suburb { margin: 0; color: #666; }
.dcm-card__price { margin: 8px 0 12px; font-weight: 800; color: var(--dcm-blue); font-size: 18px; }

.dcm-facts {
	display: flex;
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 12px 0 0;
	border-top: 1px solid #e5e5e5;
}

.dcm-facts li { font-weight: 700; }
.dcm-facts span { display: block; font-size: 12px; font-weight: 400; color: #777; text-transform: uppercase; }

.dcm-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 5px 12px;
	background: var(--dcm-blue);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.dcm-badge--sold { background: #b23a3a; }
.dcm-badge--under-contract { background: var(--dcm-navy); }

.dcm-listing {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 32px;
	margin-bottom: 32px;
}

.dcm-listing__image { position: relative; }
.dcm-listing__image img { width: 100%; height: auto; display: block; }

.dcm-button {
	display: inline-block;
	padding: 12px 20px;
	background: var(--dcm-blue);
	color: #fff !important;
	text-decoration: none;
	font-weight: 700;
}

.dcm-button:hover { background: var(--dcm-navy); }

/* 7. Footer */

.dcm-footer {
	background: var(--dcm-charcoal);
	color: #fff;
	padding: 48px 0 16px;
}

.dcm-footer__inner {
	display: grid;
	grid-template-columns: 1fr 1fr 1.2fr;
	gap: 40px;
	align-items: start;
}

.dcm-footer__brand {
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.dcm-footer__brand img { width: 150px; height: auto; }
.dcm-footer .dcm-brand__name { color: #fff; }

.dcm-footer h2 {
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #fff;
	margin: 0 0 14px;
}

.dcm-footer__form h2 { color: var(--dcm-silver); font-weight: 300; }
.dcm-footer p { margin: 0 0 8px; }
.dcm-footer a { color: #fff; }
.dcm-footer a:hover { color: var(--dcm-blue); }
.dcm-facebook { display: inline-block; margin-top: 8px; }

.dcm-footer .wpforms-container { margin: 0; }

/* Boxed fields with a clear border so the form reads on charcoal. */
.dcm-footer .wpforms-form input,
.dcm-footer .wpforms-form textarea {
	background: rgba(255, 255, 255, 0.07) !important;
	border: 1px solid #8a8a8a !important;
	border-radius: 3px !important;
	color: #fff !important;
	font-size: 16px !important;
	padding: 12px 14px !important;
	height: auto !important;
	max-width: 100% !important;
}

.dcm-footer .wpforms-form input:focus,
.dcm-footer .wpforms-form textarea:focus {
	border-color: var(--dcm-blue) !important;
	background: rgba(255, 255, 255, 0.12) !important;
	box-shadow: 0 0 0 2px rgba(79, 135, 162, 0.45) !important;
	outline: none !important;
}

.dcm-footer .wpforms-form input::placeholder,
.dcm-footer .wpforms-form textarea::placeholder { color: #c9c9c9 !important; opacity: 1 !important; }
.dcm-footer .wpforms-container { margin-top: 0 !important; }
.dcm-footer .wpforms-form .wpforms-field { padding: 0 0 12px !important; }
.dcm-footer .wpforms-form .wpforms-field:first-child { padding-top: 0 !important; }
.dcm-footer .wpforms-form textarea { min-height: 120px !important; }

.dcm-footer .wpforms-form button[type='submit'] {
	background: var(--dcm-blue) !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: #fff !important;
	padding: 10px 32px !important;
}

.dcm-footer__legal {
	text-align: center;
	color: #aaa;
	font-size: 13px;
	margin-top: 32px !important;
}

/*
 * 8. Closer to the Wix look (side-by-side check, 11/11/2026)
 *
 * Wix runs charcoal behind every page, sets the body in Avenir Light (here
 * Nunito Sans 300), spaces its Lulo headings wide, and keeps the header
 * inside a 980px column with the modular-living link in a rounded box.
 */

body,
.site-main,
.ct-container-full {
	background: var(--dcm-charcoal);
	color: var(--dcm-silver);
}

body {
	font-weight: 300;
	font-size: 15px;
	line-height: 1.6;
	--theme-text-color: var(--dcm-silver);
	--theme-headings-color: var(--dcm-blue);
}

.entry-content strong { color: #fff; font-weight: 700; }
.entry-content a { color: #8fc0d8; }
.entry-content li { margin-bottom: 4px; }

.site-main .ct-container-full[data-vertical-spacing] { padding-top: 56px; }

/* Headings: wide-set caps, as Lulo Clean. */
.dcm-page-title,
.entry-content h2,
.dcm-hero h1 {
	font-family: var(--dcm-wide);
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--dcm-blue);
}

.dcm-page-title { font-size: clamp(22px, 2.6vw, 30px); margin: 0 0 40px; }
.entry-content h2 { font-size: 18px; }

.entry-content h3 {
	font-family: var(--dcm-wide);
	font-weight: 800;
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: #a88c63;
	margin: 1.4em 0 0.4em;
}

/* Header in a 980px column, as on Wix. */
.dcm-header__top {
	padding-left: max(20px, calc((100% - 980px) / 2));
	padding-right: max(20px, calc((100% - 980px) / 2));
	min-height: 104px;
}

.dcm-brand img { width: 160px; }
.dcm-brand__name { font-size: 22px; }
.dcm-brand__slogan { font-size: 18px; font-weight: 300; }

.dcm-cmlq {
	align-items: center;
	padding: 8px 22px;
	border: 1px solid var(--dcm-silver);
	border-radius: 12px;
	font-size: 15px;
}

.dcm-nav__menu.dcm-wrap { max-width: 980px; }
.dcm-nav__menu a { font-weight: 400; font-size: 13px; padding: 9px 14px; }

/* About and First Home Buyers: labels on the left, text on the right. */
.dcm-page-about .entry-content,
.dcm-page-firsthomebuyers .entry-content {
	display: grid;
	grid-template-columns: 240px minmax(0, 560px);
	column-gap: 48px;
	justify-content: center;
	align-items: start;
}

.dcm-page-about .entry-content > *,
.dcm-page-firsthomebuyers .entry-content > * {
	grid-column: 2;
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none !important;
}

.dcm-page-about .entry-content > h1,
.dcm-page-about .entry-content > h2,
.dcm-page-firsthomebuyers .entry-content > h1,
.dcm-page-firsthomebuyers .entry-content > figure {
	grid-column: 1;
}

.dcm-page-about .entry-content > h1,
.dcm-page-about .entry-content > h2,
.dcm-page-firsthomebuyers .entry-content > h1 {
	text-align: left;
	font-family: var(--dcm-body);
	font-weight: 300;
	font-size: 22px;
	letter-spacing: 0.25em;
	margin: 0 0 24px;
}

.dcm-page-about .entry-content > h2 { margin-top: 48px; }
.dcm-page-about .entry-content > h2 + p { margin-top: 48px; }
/* The photo spans the rows beside the text, so it doesn't stretch one row. */
.dcm-page-firsthomebuyers .entry-content > figure { grid-row: 2 / span 30; margin-top: 0; }
.dcm-page-firsthomebuyers .entry-content > figure img { width: 100%; height: auto; }

.dcm-page-firsthomebuyers .entry-content > h2 {
	font-family: var(--dcm-body);
	font-weight: 400;
	font-size: 18px;
	letter-spacing: 0;
	text-transform: none;
	color: #fff;
	margin: 0 0 8px;
}

/* Houses and land: the question is the heading, the photos run edge to edge. */
.dcm-page-houses-for-sale .dcm-page-title,
.dcm-page-land-for-sale .dcm-page-title { display: none; }

.dcm-page-houses-for-sale .dcm-lead,
.dcm-page-land-for-sale .dcm-lead {
	font-family: var(--dcm-wide);
	font-weight: 800;
	font-size: clamp(20px, 2.4vw, 28px);
	letter-spacing: 0.22em;
	color: var(--dcm-blue) !important;
	margin: 10px 0 40px;
}

/* !important because Blocksy's constrained layout centres children with !important. */
.dcm-page-houses-for-sale .dcm-tiles,
.dcm-page-land-for-sale .dcm-tiles,
.dcm-section-dark .dcm-tiles {
	width: 100vw;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: 0 !important;
	gap: 16px;
}

.dcm-tile span {
	opacity: 0;
	transition: opacity 0.3s;
}

.dcm-tile:hover span,
.dcm-tile:focus span { opacity: 1; }

.dcm-section-dark { padding-bottom: 0; }
/* Listing cards: dark, as on Wix. */
.dcm-listings {
	grid-template-columns: repeat(auto-fill, minmax(280px, 400px));
	justify-content: center;
	gap: 48px;
	max-width: 980px !important;
}

.dcm-card__image { aspect-ratio: 6 / 5; }
.dcm-card__body { padding: 10px 18px 16px; }
.dcm-card__price { font-size: 22px; }

.dcm-card {
	background: #3a3a3a;
	box-shadow: none;
}

.dcm-card h3 { font-family: var(--dcm-body); letter-spacing: 0; text-transform: none; margin: 0; }
.dcm-card h3 a { color: var(--dcm-silver); font-weight: 400; font-size: 15px; }
.dcm-card__suburb { color: var(--dcm-silver); font-size: 15px; }
.dcm-card__price { color: #8fc0d8; font-weight: 300; font-size: 20px; }
.dcm-facts { border-top: 0; padding-top: 4px; }
.dcm-facts li { color: #8fc0d8; font-weight: 300; font-size: 13px; }
.dcm-facts span { color: var(--dcm-silver); text-transform: none; font-size: 13px; }

.dcm-badge,
.dcm-badge--sold,
.dcm-badge--under-contract {
	top: 0;
	left: 0;
	padding: 4px 26px;
	background: var(--dcm-blue);
	font-weight: 400;
	letter-spacing: 0.05em;
}

.dcm-empty { text-align: center; }

/* Home, as on Wix: photo, intro, three photos, map. */
body.home .site-main .ct-container-full[data-vertical-spacing] { padding-top: 0; padding-bottom: 0; }

.dcm-home-hero,
.dcm-home-row,
.dcm-home-map {
	width: 100vw;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: 0 !important;
}

.dcm-home-hero img {
	display: block;
	width: 100%;
	height: min(62vw, 660px);
	object-fit: cover;
}

.dcm-home-intro { max-width: 980px !important; margin: 0 auto !important; padding: 64px 20px 56px; }

.dcm-home-intro h1 {
	font-family: var(--dcm-wide);
	font-weight: 800;
	font-size: clamp(22px, 2.4vw, 30px);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--dcm-blue);
	margin: 0;
}

.dcm-home-intro p,
.dcm-home-row__labels p {
	font-weight: 300;
	font-size: clamp(16px, 1.8vw, 22px);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--dcm-silver);
	margin: 4px 0 0;
}

.dcm-home-row__labels {
	display: grid;
	grid-template-columns: 1fr 2fr;
	align-items: end;
	text-align: center;
	padding-bottom: 24px;
}

.dcm-home-row__photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.dcm-home-row__photos .dcm-tile { aspect-ratio: 4 / 3; }

/*
 * The map in Wix's steel blue. Google's plain embed takes no styles, so it
 * goes grey and dark, then a blue layer colours it. The layer lets clicks
 * through so the map still pans and zooms.
 */
.dcm-home-map {
	position: relative;
	margin-top: 16px;
	overflow: hidden;
}

.dcm-home-map iframe {
	display: block;
	width: 100%;
	height: 380px;
	border: 0;
	filter: grayscale(1) invert(0.88) contrast(0.95) brightness(1.05);
}

.dcm-home-map::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--dcm-blue);
	mix-blend-mode: color;
	pointer-events: none;
}

@media (max-width: 860px) {
	.dcm-home-row__labels { display: none; }
	.dcm-home-row__photos { grid-template-columns: 1fr; }
	.dcm-home-row__photos .dcm-tile span { opacity: 1; }
}

/* Footer: steel blue on Wix, with white-outlined fields. */
.dcm-footer { background: var(--dcm-blue); }
.dcm-footer .dcm-brand__name,
.dcm-footer__form h2 { color: #fff; }
.dcm-footer a:hover { color: var(--dcm-navy); }
.dcm-footer__legal { color: #eef4f7; }

.dcm-footer .wpforms-form input,
.dcm-footer .wpforms-form textarea {
	background: rgba(255, 255, 255, 0.14) !important;
	border: 1px solid rgba(255, 255, 255, 0.85) !important;
}

.dcm-footer .wpforms-form input:focus,
.dcm-footer .wpforms-form textarea:focus {
	border-color: #fff !important;
	background: rgba(255, 255, 255, 0.22) !important;
	box-shadow: 0 0 0 2px rgba(30, 54, 67, 0.55) !important;
}

.dcm-footer .wpforms-form input::placeholder,
.dcm-footer .wpforms-form textarea::placeholder { color: #f2f6f8 !important; }

.dcm-footer .wpforms-form button[type='submit'] {
	background: transparent !important;
	border: 1px solid #fff !important;
	padding: 9px 34px !important;
}

.dcm-footer .wpforms-form button[type='submit']:hover { background: var(--dcm-navy) !important; border-color: var(--dcm-navy) !important; }

/* First Home Buyers reads larger on Wix. */
.dcm-page-firsthomebuyers .entry-content p,
.dcm-page-firsthomebuyers .entry-content li { font-size: 16px; }
.dcm-page-firsthomebuyers .entry-content h3 { font-size: 17px; }

@media (max-width: 860px) {
	.dcm-page-about .entry-content,
	.dcm-page-firsthomebuyers .entry-content { display: block; }
	.dcm-page-about .entry-content > h2 + p { margin-top: 0; }
	.dcm-cmlq { padding: 6px 14px; }
}

/* 9. Phone */

@media (max-width: 860px) {
	.dcm-header__top { flex-direction: column; align-items: center; min-height: 0; }
	.dcm-cmlq { align-items: center; font-size: 13px; }
	.dcm-brand img { width: 110px; }
	.dcm-brand__name { font-size: 17px; }
	.dcm-brand__slogan { font-size: 15px; }

	.dcm-nav__burger {
		display: flex;
		align-items: center;
		gap: 10px;
		padding: 12px 20px;
		color: #fff;
		text-transform: uppercase;
		cursor: pointer;
	}

	.dcm-nav__burger span,
	.dcm-nav__burger span::before,
	.dcm-nav__burger span::after {
		display: block;
		width: 22px;
		height: 2px;
		background: #fff;
		position: relative;
	}

	.dcm-nav__burger span::before,
	.dcm-nav__burger span::after { content: ''; position: absolute; }
	.dcm-nav__burger span::before { top: -7px; }
	.dcm-nav__burger span::after { top: 7px; }

	.dcm-nav__menu { display: none; flex-direction: column; padding: 0 0 10px; }
	.dcm-nav__toggle:checked ~ .dcm-nav__menu { display: flex; }
	.dcm-nav__menu .sub-menu { display: block; position: static; }
	.dcm-nav__menu .sub-menu a { padding-left: 36px; font-size: 13px; }

	.dcm-tiles,
	.dcm-listing,
	.dcm-footer__inner { grid-template-columns: 1fr; }
}
