/* ============================================================
   Domus theme — base, the content box, and the spacing between the plugin's sections on each template
   (the spacing of the approved demo pages). Tokens (--dm-font, --dm-c-*, --dm-fs…) come from
   Appearance → Domus; --dm-max / --dm-side from its Layout tab.
   ============================================================ */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html, body { margin: 0; }
body {
	background: var(--dm-c-bg, #fff);
	color: var(--dm-c-text, #000);
	font-family: var(--dm-stack, 'CF ModGrotesk', 'Helvetica Neue', Helvetica, Arial, sans-serif);
	font-size: var(--dm-fs, 16px);
	line-height: var(--dm-lh, 1.25);
	letter-spacing: var(--dm-ls, -.02em);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img, video, svg { max-width: 100%; }
img { height: auto; }
a { color: inherit; }
::selection { background: var(--dm-c-select, #c9c4c4); color: var(--dm-c-text, #000); }
:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }

.dm-skip { position: absolute; left: 12px; top: -100px; z-index: 100000; padding: 10px 14px; background: var(--dm-c-text, #000); color: var(--dm-c-bg, #fff); font-size: 13px; text-decoration: none; text-transform: uppercase; }
.dm-skip:focus { top: 12px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); white-space: nowrap; }

/* ---------- The content box: the design's 1440 plus the side space ---------- */
.dm-c {
	width: 100%;
	max-width: calc(var(--dm-max, 1440px) + var(--dm-side, 32px) * 2);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--dm-side, 32px);
	padding-right: var(--dm-side, 32px);
}
.dm-s { width: 100%; }               /* full width (home hero, showcase hero) */
.dm-main { display: block; }
.dm-dark { background: var(--dm-c-dark, #000); color: #fff; }

/* ---------- Home ---------- */
.dm-home .dm-s--props,
.dm-home .dm-s--work,
.dm-home .dm-s--numbers { max-width: calc(var(--dm-max, 1440px) + var(--dm-side, 32px) * 2); margin: 0 auto; padding: 0 var(--dm-side, 32px); }
.dm-home .dm-s--expertise { max-width: calc(var(--dm-max, 1440px) + var(--dm-side, 32px) * 2); margin: 0 auto; padding: 86px var(--dm-side, 32px) 90px; }
@media (max-width: 767px) {
	.dm-home .dm-s--expertise { padding-top: 50px; padding-bottom: 60px; }
}

/* ---------- Property ---------- */
.dm-property { padding-top: 174px; }
.dm-property .dm-s--gallery { padding-top: 146px; padding-bottom: 74px; }
.dm-property .dm-s--cta { padding-bottom: 33px; }
.dm-property .dm-s--overview { padding-bottom: 193px; }
.dm-property .dm-s--highlights { padding-top: 94px; padding-bottom: 160px; }
.dm-property .dm-s--related { padding-top: 140px; padding-bottom: 140px; }
@media (max-width: 1024px) {
	.dm-property { padding-top: 124px; }
	.dm-property .dm-s--gallery { padding-bottom: 40px; }
	.dm-property .dm-s--cta { padding-bottom: 60px; }
	.dm-property .dm-s--overview { padding-top: 24px; padding-bottom: 60px; }
	.dm-property .dm-s--highlights { padding-top: 48px; padding-bottom: 60px; }
}

/* the contact section after the highlights */
.dm-pcontact { padding-top: 167px; padding-bottom: 120px; }
.dm-pcontact__in { width: 576px; max-width: 100%; margin-left: auto; }
.dm-pcontact__text { margin: 0 0 20px; font-size: 28px; line-height: 1.07; letter-spacing: -.02em; }
.dm-pcontact__link { font-size: 18px; line-height: 1.2; text-transform: uppercase; text-decoration: none; }
@media (hover: hover) { a.dm-pcontact__link:hover { text-decoration: underline; text-underline-offset: 4px; } }
@media (max-width: 1024px) {
	.dm-pcontact { padding-top: 56px; padding-bottom: 60px; }
	.dm-pcontact__in { margin-left: 0; }
}

/* ---------- Properties archive ---------- */
.dm-property-archive { padding-top: 200px; }
@media (max-width: 767px) { .dm-property-archive { padding-top: 124px; } }

/* ---------- Our Work ---------- */
.dm-work--framed .dm-s--hero { padding-top: 79px; }
.dm-work .dm-s--info { padding-top: 54px; }
.dm-work .dm-s--gallery { padding-top: 172px; }
.dm-work .dm-s--nav { padding-top: 217px; padding-bottom: 160px; }
@media (max-width: 767px) {
	.dm-work--framed .dm-s--hero { padding-top: 124px; }
	.dm-work .dm-s--info { padding-top: 43px; }
	.dm-work .dm-s--gallery { padding-top: 65px; }
	.dm-work .dm-s--nav { padding-top: 80px; padding-bottom: 80px; }
}

.dm-work-archive .dm-s--archive { padding-top: 262px; padding-bottom: 230px; }
@media (max-width: 767px) { .dm-work-archive .dm-s--archive { padding-top: 124px; padding-bottom: 80px; } }

/* ---------- Plain pages (Privacy, Terms…) ---------- */
.dm-page, .dm-index { padding: 200px 0 140px; }
@media (max-width: 767px) { .dm-page, .dm-index { padding: 124px 0 80px; } }
.dm-prose { font-size: var(--dm-fs, 16px); line-height: 1.5; }
.dm-prose__body { max-width: 760px; }
.dm-prose h1, .dm-prose h2, .dm-prose h3, .dm-prose h4 { font-family: var(--dm-font-head, inherit); font-weight: 400; letter-spacing: -.02em; line-height: 1.06; margin: 1.6em 0 .6em; }
.dm-prose .dm-prose__title, .dm-prose h1 { font-size: var(--dm-h1, 64px); margin-top: 0; margin-bottom: 48px; }
.dm-prose h2 { font-size: var(--dm-h2, 40px); }
.dm-prose h3 { font-size: var(--dm-h3, 32px); }
.dm-prose p, .dm-prose ul, .dm-prose ol { margin: 0 0 1em; }
.dm-prose a { text-underline-offset: 3px; }
.dm-list { list-style: none; margin: 0; padding: 0; }
.dm-list li { border-top: 1px solid var(--dm-c-light, #c9c4c4); }
.dm-list a { display: block; padding: 18px 0; font-size: 24px; text-decoration: none; }

/* ---------- 404 ---------- */
.dm-404__in { min-height: 70vh; display: flex; flex-direction: column; justify-content: center; padding-top: 160px; padding-bottom: 120px; }
.dm-404__code { margin: 0 0 16px; font-size: 13px; text-transform: uppercase; }
.dm-404__title { margin: 0 0 32px; max-width: 760px; font-size: var(--dm-h1, 64px); font-weight: 400; line-height: 1; letter-spacing: -.02em; }
.dm-404__home { font-size: 13px; text-transform: uppercase; text-decoration: none; }

/* ---------- WordPress bits ---------- */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption-text { font-size: 13px; color: var(--dm-c-muted, #8b8686); }
