* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: var(--paper, #f7f5f0);
    color: var(--ink, #101e28);
    font: 16px/1.7 Arial, Helvetica, sans-serif
}

img {
    display: block;
    max-width: 100%;
    object-fit: cover
}

a {
    color: inherit;
    text-decoration: none
}

button,
input,
select,
textarea {
    font: inherit
}

button,
a,
input,
select,
textarea {
    touch-action: manipulation
}

button {
    cursor: pointer
}

button:disabled {
    opacity: .6
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 4px
}

h1,
h2,
h3 {
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 400;
    line-height: 1.12;
    margin: 0 0 24px;
    letter-spacing: -.035em
}

h1 {
    font-size: clamp(3rem, 6.1vw, 6.4rem)
}

h2 {
    font-size: clamp(2.4rem, 4.1vw, 4.3rem)
}

h3 {
    font-size: 1.8rem;
    letter-spacing: -.02em
}

p {
    margin: 0 0 24px
}

small {
    font-size: 14px
}

.font-modern h1,
.font-modern h2,
.font-modern h3 {
    font-family: Arial, sans-serif;
    letter-spacing: -.055em
}

.font-classic {
    font-family: Georgia, serif
}

.eyebrow {
    display: block;
    font: 12px/1.5 Arial, sans-serif;
    letter-spacing: .18em;
    margin-bottom: 24px;
    color: #887047;
    text-transform: uppercase
}

.button {
    display: inline-flex;
    gap: 30px;
    justify-content: space-between;
    align-items: center;
    padding: 17px 25px;
    border: 1px solid var(--gold);
    background: var(--gold);
    color: #101820;
    font: 14px/1.5 Arial, sans-serif;
    transition: background .2s, transform .2s
}

.button:hover {
    background: #e3c99c;
    transform: translateY(-2px)
}

.text-link {
    display: inline-block;
    border-bottom: 1px solid var(--gold);
    padding-bottom: 8px
}

.demo-banner {
    padding: 6px 20px;
    background: #13202a;
    color: #dcd8cd;
    font-size: 12px;
    text-align: center;
    letter-spacing: .03em
}

.site-header {
    background: #080f16;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 35px;
    padding: 12px 5%;
    min-height: 102px;
    position: relative;
    z-index: 20;
    border-bottom: 1px solid #ffffff24
}

.brand {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0
}

.brand img {
    width: 70px;
    height: 70px;
    object-fit: contain
}

.brand span {
    font: 26px Georgia, serif;
    letter-spacing: .19em
}

.brand small {
    display: block;
    font: 10px Arial, sans-serif;
    letter-spacing: .34em;
    margin-top: 6px;
    display:none;
}

.site-header nav {
    display: flex;
    justify-content: center;
    gap: 27px;
    flex: 1;
    font-size: 14px
}

.nav-item {
    position: relative
}

.nav-item>a {
    display: inline-block;
    padding: 8px 0
}

.header-cta {
    border-bottom: 1px solid var(--gold);
    padding: 9px 0;
    font-size: 13px
}

.header-note {
    display: none;
    font-size: 12px;
    letter-spacing: .1em
}

.menu-toggle {
    display: none
}

.submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #101e28;
    color: white;
    min-width: 210px;
    padding: 15px;
    box-shadow: 0 15px 40px #0003
}

.submenu a {
    display: block;
    padding: 10px
}

.nav-item:hover .submenu,
.nav-item:focus-within .submenu,
.nav-item.expanded .submenu {
    display: block
}

.submenu-toggle {
    border: 0;
    background: transparent;
    color: inherit
}

.skip {
    position: fixed;
    top: -70px;
    left: 10px;
    z-index: 1000;
    background: white;
    padding: 10px
}

.skip:focus {
    top: 10px
}

.section {
    padding: 100px 6%
}

.section-inner {
    max-width: 1440px;
    margin: auto
}

.section-heading {
    max-width: 760px;
    margin-bottom: 45px
}

.section-heading p {
    max-width: 570px;
    color: #647075
}

.feature-media {
    min-width: 0;
    overflow: hidden
}

.feature-media img {
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover
}

.feature-copy {
    min-width: 0
}

.type-hero {
    padding: 0
}

.type-hero .section-inner {
    max-width: none;
    position: relative;
    min-height: 660px;
    display: grid;
    align-items: center
}

.type-hero .feature-media {
    position: absolute;
    inset: 0
}

.type-hero .feature-media:after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(4, 14, 24, .82), rgba(4, 14, 24, .1))
}

.type-hero .feature-media img {
    height: 100%;
    width: 100%
}

.type-hero .feature-copy {
    position: relative;
    z-index: 1;
    padding: 90px 7%;
    color: #fff;
    max-width: 1000px
}

.type-hero .section-heading p {
    color: #e4e7e8;
    max-width: 510px;
    font-size: 17px
}

.type-hero .eyebrow {
    color: #e6c994
}

.type-hero .section-heading {
    margin-bottom: 30px
}

.type-about .section-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8%;
    align-items: center
}

.type-about .feature-copy {
    padding: 20px
}

.type-about .section-heading {
    margin-bottom: 24px
}

.type-cta {
    background: #0c1b27;
    color: white
}

.type-cta .feature-media {
    display: none
}

.type-cta .section-heading {
    margin: 0
}

.type-cta .section-heading p {
    color: #b6c1c6
}

.type-cta .section-inner {
    display: flex;
    justify-content: center
}

.type-cta .feature-copy {
    text-align: center
}

.type-cta .section-heading p {
    margin-left: auto;
    margin-right: auto
}

.collection {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px
}

.card {
    min-width: 0
}

.card-media {
    display: block;
    overflow: hidden;
    position: relative
}

.card-media img {
    width: 100%;
    aspect-ratio: 1.3;
    object-fit: cover;
    transition: transform .7s
}

.card:hover .card-media img {
    transform: scale(1.04)
}

.card-copy {
    padding: 24px 0
}

.card-copy .eyebrow {
    font-size: 11px;
    margin-bottom: 12px
}

.card-copy h3 {
    font-size: 1.8rem;
    margin-bottom: 18px
}

.card-copy p {
    color: #667278;
    font-size: 15px
}

.badge {
    position: absolute;
    left: 14px;
    top: 14px;
    font-size: 10px;
    letter-spacing: .12em;
    background: #fffef4e8;
    padding: 6px 10px;
    color: #28333b
}

.specs {
    display: flex;
    gap: 12px;
    flex-wrap: wrap
}

.card-bottom {
    display: flex;
    justify-content: space-between;
    padding-top: 18px;
    border-top: 1px solid #bbc0bb;
    font-size: 15px
}

.card-bottom strong {
    font-weight: 400
}

.card-bottom a {
    font-size: 22px
}

.property-search {
    padding: 23px;
    background: #fff;
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr auto;
    gap: 20px;
    align-items: end;
    margin-bottom: 42px;
    border: 1px solid #dedfd9
}

.property-search label {
    font-size: 10px;
    letter-spacing: .1em
}

.property-search input,
.property-search select {
    border: 0;
    border-bottom: 1px solid #ccd0cf;
    border-radius: 0;
    padding: 10px 0;
    font-size: 14px;
    background: transparent;
    width: 100%;
    color: var(--ink)
}

.type-process {
    border-top: 1px solid #d8d8d0
}

.type-process .collection {
    grid-template-columns: repeat(4, 1fr)
}

.step-number {
    font: 64px Georgia, serif;
    color: var(--gold);
    line-height: 1.2
}

.type-process .card {
    border-top: 1px solid #c4c9c7;
    padding-top: 24px
}

.type-journal {
    background: #ecece5
}

.type-journal .collection {
    grid-template-columns: repeat(2, 1fr)
}

.type-journal .card-media img {
    aspect-ratio: 1.8
}

.type-communities .card {
    position: relative
}

.type-communities .card-media img {
    aspect-ratio: .85
}

.type-communities .card-copy {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 70px 24px 25px;
    color: #fff;
    background: linear-gradient(transparent, #08121beb)
}

.type-communities .card-copy p {
    color: #e0e4e7;
    margin: 0
}

.type-contact .section-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8%
}

.office {
    margin: 30px 0
}

.office h3 {
    font: 12px Arial, sans-serif;
    text-transform: uppercase;
    letter-spacing: .15em;
    margin-bottom: 14px
}

.office p {
    margin-bottom: 8px
}

.phone-line {
    display: block
}

.contact-card {
    padding: 35px;
    background: #fff;
    border: 1px solid #dfe1db;
    align-self: start
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.enquiry label {
    display: block;
    font-size: 14px;
    margin-bottom: 20px
}

.enquiry input,
.enquiry select,
.enquiry textarea {
    display: block;
    width: 100%;
    border: 0;
    border-bottom: 1px solid #bfc7c7;
    background: transparent;
    border-radius: 0;
    padding: 12px 0;
    color: #14232e
}

.enquiry .consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px
}

.consent input {
    width: auto;
    margin-top: 5px
}

.honeypot {
    position: absolute;
    left: -9999px
}

.form-status {
    margin: 15px 0 0;
    font-size: 14px
}

.faq-card {
    border-top: 1px solid #b8c0c1;
    padding: 20px 0
}

.faq-card summary {
    cursor: pointer;
    font: 24px Georgia, serif
}

.faq-card p {
    padding-top: 20px
}

.detail-body {
    max-width: 1400px;
    margin: auto;
    padding: 50px 6% 100px;
    display: flex;
    gap: 8%;
    align-items: start
}

.detail-body>div {
    flex: 1;
    min-width: 0
}

.detail-body aside {
    width: 38%;
    padding: 30px;
    background: white
}

.detail-body h2 {
    font-size: 2rem;
    margin-top: 30px
}

.detail-gallery {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-top: 35px
}

.detail-gallery img {
    width: 100%;
    height: 260px
}

.prose {
    max-width: 800px;
    font-size: 18px;
    line-height: 1.9
}

.demo-note,
.preview-banner {
    padding: 15px;
    background: #e9e1d2;
    font-size: 14px
}

.site-footer {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 60px;
    background: #07111a;
    color: #c5cdcf;
    padding: 90px 6% 30px
}

.footer-intro h2 {
    font-size: 3.1rem;
    color: #fff;
    max-width: 600px
}

.footer-intro .text-link {
    font-size: 18px;
    word-break: break-word
}

.site-footer h3 {
    font: 13px Arial, sans-serif;
    color: var(--gold);
    letter-spacing: .12em;
    text-transform: uppercase;
    margin: 0 0 20px
}

.site-footer p {
    font-size: 14px
}

.footer-phone-list {
    display: grid;
    gap: 7px;
    margin-top: 3px
}

.footer-phone-list a {
    width: fit-content;
    font-size: 14px
}

.site-footer .nav-item a {
    font-size: 14px
}

.site-footer .footer-office h3:not(:first-child) {
    margin-top: 30px
}

.footer-bottom {
    grid-column: 1/-1;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid #ffffff24;
    padding-top: 25px;
    font-size: 11px
}

.whatsapp {
    position: fixed;
    bottom: 22px;
    right: 24px;
    background: #122630;
    border: 1px solid #8b784e;
    color: white;
    padding: 12px 20px;
    border-radius: 2px;
    z-index: 25;
    font-size: 13px;
    box-shadow: 0 6px 25px #0003
}

/* Ten independently selectable section compositions */
.v1:not(.type-hero):not(.type-about):not(.type-contact):not(.type-cta) .collection {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}

.v1:not(.type-hero):not(.type-about):not(.type-contact):not(.type-cta) .card:first-child {
    grid-column: 1/-1
}

.v1 .card:first-child .card-media img {
    aspect-ratio: 2
}

.v2:not(.type-about):not(.type-hero):not(.type-contact) .section-inner {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 45px
}

.v2 .collection {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}

.v2 .property-search {
    grid-column: 1/-1
}

.v2 .collection {
    grid-column: 2
}

.type-hero.v2 .section-inner {
    grid-template-columns: 1fr 1fr;
    background: #0c1b27
}

.type-hero.v2 .feature-media {
    position: relative;
    order: 2;
    height: 100%
}

.type-hero.v2 .feature-media:after {
    display: none
}

.type-hero.v2 .feature-copy {
    padding: 75px 12%
}

.type-hero.v2 h1 {
    font-size: clamp(3rem, 4.5vw, 5rem)
}

.v3 .collection {
    grid-template-columns: repeat(3, minmax(0, 1fr))
}

.type-process.v3 .collection {
    grid-template-columns: repeat(4, minmax(0, 1fr))
}

.type-hero.v3 {
    padding: 32px
}

.type-hero.v3 .section-inner {
    min-height: 680px
}

.type-hero.v3 .feature-copy {
    align-self: end
}

.type-about.v3 .section-inner {
    display: flex;
    flex-direction: column
}

.type-about.v3 .feature-media {
    width: 100%
}

.type-about.v3 .feature-media img {
    height: 440px;
    min-height: 0
}

.type-about.v3 .feature-copy {
    max-width: 850px;
    text-align: center;
    padding-top: 50px
}

.v4 .section-heading {
    margin-left: auto;
    margin-right: auto;
    text-align: center
}

.v4 .section-heading p {
    margin-left: auto;
    margin-right: auto
}

.v4 .collection {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 1050px;
    margin: auto
}

.v4 .card-copy {
    text-align: center
}

.type-hero.v4 .feature-copy {
    max-width: 1100px;
    margin: auto;
    text-align: center
}

.type-hero.v4 .feature-media:after {
    background: #04142280
}

.type-about.v4 .section-inner {
    display: flex;
    flex-direction: column-reverse;
    gap: 40px
}

.type-about.v4 .feature-copy {
    text-align: center
}

.type-about.v4 .feature-media {
    width: 85%
}

.type-contact.v4 .section-inner {
    display: block;
    max-width: 850px
}

.type-contact.v4 .feature-copy {
    text-align: center;
    margin-bottom: 50px
}

.v5 .collection {
    grid-template-columns: 1.35fr 1fr 1fr;
    align-items: start
}

.v5 .card:nth-child(2) {
    margin-top: 65px
}

.v5 .card:nth-child(3) {
    margin-top: 125px
}

.type-hero.v5 .feature-copy {
    background: var(--paper);
    color: var(--ink);
    width: 58%;
    margin: 60px 0 60px 5%;
    padding: 60px;
    max-width: 800px
}

.type-hero.v5 h1 {
    font-size: 4.3rem
}

.type-hero.v5 .section-heading p {
    color: #52616b
}

.type-about.v5 .section-inner {
    grid-template-columns: 1.25fr 1fr;
    gap: 0
}

.type-about.v5 .feature-copy {
    background: var(--paper);
    padding: 50px;
    margin-left: -80px;
    position: relative
}

.type-contact.v5 .contact-card {
    margin-top: 120px
}

.v6 .collection {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
    gap: 25px
}

.v6 .card {
    flex: 0 0 38%;
    scroll-snap-align: start
}

.type-hero.v6 .section-inner {
    min-height: 450px
}

.type-hero.v6 .feature-copy {
    max-width: 1400px;
    width: 100%;
    padding: 75px 8%
}

.type-hero.v6 h1 {
    max-width: 1050px
}

.type-about.v6 .section-inner {
    grid-template-columns: 2fr 3fr
}

.type-about.v6 .feature-media img {
    min-height: 350px
}

.type-contact.v6 .section-inner {
    grid-template-columns: 2fr 3fr
}

.type-cta.v6 .feature-copy {
    display: flex;
    align-items: center;
    gap: 60px;
    text-align: left
}

.type-cta.v6 .button {
    min-width: 240px
}

.v7 {
    margin: 35px;
    border: 1px solid #a99572;
    padding: 65px 5%
}

.v7 .collection {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 45px
}

.v7 .card {
    padding: 20px;
    border: 1px solid #b9b8af
}

.type-hero.v7 .section-inner {
    min-height: 630px
}

.type-hero.v7 {
    padding: 15px;
    background: #081720
}

.type-about.v7 .feature-media img {
    min-height: 430px
}

.type-contact.v7 .contact-card {
    border: 0
}

.v8 .collection {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 50px
}

.v8 .card:nth-child(even) {
    margin-top: 100px
}

.v8 .section-heading {
    border-top: 2px solid var(--ink);
    padding-top: 30px;
    max-width: 100%
}

.type-hero.v8 .section-inner {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    color: var(--ink)
}

.type-hero.v8 .feature-copy {
    order: -1;
    color: var(--ink);
    max-width: none;
    padding: 60px 7%;
    width: 100%
}

.type-hero.v8 .feature-media {
    position: relative;
    width: 100%;
    height: 400px
}

.type-hero.v8 .feature-media img {
    min-height: 400px
}

.type-hero.v8 .feature-media:after {
    display: none
}

.type-hero.v8 .section-heading p {
    color: #52616b
}

.type-about.v8 .feature-media {
    order: 2
}

.type-about.v8 .feature-copy {
    order: 1
}

.type-contact.v8 .contact-card {
    order: -1
}

.v9 .collection {
    display: block
}

.v9 .card {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 35px;
    border-top: 1px solid #a8b0ad;
    padding: 28px 0
}

.v9 .card-media img {
    aspect-ratio: 1.8
}

.v9 .card-copy {
    padding: 0;
    position: static;
    background: none;
    color: var(--ink)
}

.v9 .card-copy p {
    color: #657279
}

.v9 .faq-card {
    display: block
}

.type-hero.v9 .section-inner {
    min-height: 600px;
    display: grid;
    grid-template-columns: 2fr 1fr;
    background: var(--paper)
}

.type-hero.v9 .feature-copy {
    position: relative;
    color: var(--ink);
    padding: 60px 10%;
    order: -1
}

.type-hero.v9 .feature-media {
    position: relative;
    height: 100%
}

.type-hero.v9 .feature-media:after {
    display: none
}

.type-hero.v9 .section-heading p {
    color: #52616b
}

.type-hero.v9 h1 {
    font-size: 4.5rem
}

.type-about.v9 .section-inner {
    grid-template-columns: 1fr 2fr
}

.type-contact.v9 .section-inner {
    grid-template-columns: 2fr 3fr
}

.type-text.v9 .section-inner {
    max-width: 900px
}

.type-cta.v9 {
    background: var(--paper);
    color: var(--ink);
    border-top: 1px solid #a8b0ad
}

.type-cta.v9 .section-heading p {
    color: #657279
}

.v10 .collection {
    display: block;
    max-width: 1100px;
    margin: auto
}

.v10 .card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-bottom: 50px;
    background: #fff;
    align-items: center
}

.v10 .card:nth-child(even) .card-media {
    order: 2
}

.v10 .card-copy {
    padding: 40px;
    position: static;
    background: none;
    color: var(--ink)
}

.v10 .card-copy p {
    color: #667278
}

.v10 .section-heading {
    text-align: center;
    margin: 0 auto 60px
}

.v10 .section-heading p {
    margin: auto
}

.v10 .faq-card {
    display: block;
    padding: 25px
}

.type-hero.v10 .section-inner {
    min-height: 760px
}

.type-hero.v10 .feature-copy {
    align-self: end;
    max-width: none;
    background: linear-gradient(transparent, #07121beb);
    width: 100%;
    padding-top: 180px
}

.type-hero.v10 .feature-media:after {
    background: #0002
}

.type-hero.v10 .section-heading {
    text-align: left;
    margin: 0 0 30px;
    max-width: 1000px
}

.type-hero.v10 .section-heading p {
    margin: 0
}

.type-about.v10 .section-inner {
    display: flex;
    flex-direction: column;
    max-width: 1000px
}

.type-about.v10 .feature-media img {
    border-radius: 50% 50% 0 0;
    max-height: 550px
}

.type-about.v10 .feature-copy {
    background: #fff;
    padding: 60px;
    margin: -60px 40px 0;
    position: relative;
    text-align: center
}

.type-contact.v10 {
    background: #132632
}

.type-contact.v10 .feature-copy {
    color: #fff
}

.type-contact.v10 .section-heading p {
    color: #c7ced3
}

.type-stats .card-copy h3 {
    font-size: 4rem;
    color: #947a4d
}

.type-testimonials .card-copy p {
    font: 24px/1.5 Georgia, serif
}

/* Header layouts: standard, centered, stacked, split, framed, left rail, minimal, masthead, pill, compact */
.h2 {
    flex-wrap: wrap;
    justify-content: center
}

.h2 .brand {
    order: 0
}

.h2 nav {
    order: 3;
    flex-basis: 100%;
    padding-bottom: 8px
}

.h2 .header-cta {
    position: absolute;
    right: 5%;
    top: 38px
}

.h3 {
    flex-wrap: wrap
}

.h3 .header-note {
    display: block;
    flex-basis: 100%;
    text-align: center;
    border-bottom: 1px solid #ffffff25;
    padding-bottom: 10px
}

.h4 .brand {
    order: 2
}

.h4 nav {
    order: 1;
    justify-content: flex-start
}

.h4 .header-cta {
    order: 3;
    margin-left: auto
}

.h5 {
    margin: 20px 4%;
    border: 1px solid var(--gold);
    padding: 15px 30px
}

.h6 {
    flex-direction: column;
    align-items: flex-start;
    padding: 25px 6%;
    gap: 10px
}

.h6 nav {
    justify-content: flex-start;
    flex-wrap: wrap
}

.h6 .header-cta {
    position: absolute;
    right: 6%;
    top: 55px
}

.h7 {
    background: var(--paper);
    color: var(--ink);
    border-bottom: 1px solid #bac1c2
}

.h7 .brand img {
    width: 50px;
    height: 50px
}

.h8 {
    flex-wrap: wrap;
    justify-content: space-between
}

.h8 .brand span {
    font-size: 38px
}

.h8 nav {
    flex-basis: 100%;
    border-top: 1px solid #ffffff25;
    padding-top: 10px;
    justify-content: space-between
}

.h9 {
    border-radius: 60px;
    margin: 20px 4%;
    padding: 8px 30px;
    min-height: 90px;
    box-shadow: 0 10px 30px #0002
}

.h10 {
    min-height: 75px;
    padding: 8px 4%
}

.h10 .brand img {
    width: 48px;
    height: 48px
}

.h10 .brand span {
    font-size: 20px
}

.h10 nav {
    justify-content: flex-end
}

/* Ten footer compositions */
.f2 {
    grid-template-columns: 1fr 1fr
}

.f2 .footer-intro {
    grid-column: 1/-1;
    max-width: 800px
}

.f3 {
    grid-template-columns: repeat(3, 1fr);
    border-top: 10px solid var(--gold)
}

.f3 .footer-intro h2 {
    font-size: 2.3rem
}

.f4 {
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    gap: 35px
}

.f4 .footer-links {
    display: flex;
    gap: 25px;
    flex-wrap: wrap;
    justify-content: center
}

.f4 .footer-links h3 {
    width: 100%
}

.f4 .footer-bottom {
    width: 100%
}

.f5 {
    grid-template-columns: 3fr 1fr
}

.f5 .footer-office {
    grid-column: 1;
    grid-row: 2;
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 15px
}

.f5 .footer-office h3 {
    margin: 0 !important
}

.f6 {
    grid-template-columns: 2fr 1fr 2fr;
    padding: 45px 6%
}

.f6 .footer-intro h2 {
    font-size: 2rem
}

.f6 .footer-office {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px
}

.f7 {
    margin: 25px;
    border: 1px solid var(--gold);
    padding: 50px
}

.f8 {
    grid-template-columns: 1fr 1fr 2fr
}

.f8 .footer-intro {
    grid-column: 3;
    grid-row: 1
}

.f8 .footer-links {
    grid-column: 1;
    grid-row: 1
}

.f8 .footer-office {
    grid-column: 2;
    grid-row: 1
}

.f9 {
    background: var(--paper);
    color: var(--ink);
    border-top: 1px solid #a0abae;
    grid-template-columns: 3fr 1fr 1fr
}

.f9 .footer-intro h2 {
    color: var(--ink);
    font-size: 2.3rem
}

.f9 .footer-bottom {
    border-color: #a0abae
}

.f10 {
    grid-template-columns: 1fr 1fr
}

.f10 .footer-intro {
    grid-column: 1/-1;
    text-align: center
}

.f10 .footer-intro h2 {
    max-width: 1000px;
    margin: 0 auto 30px;
    font-size: 4.5rem
}

.f10 .footer-links {
    display: flex;
    gap: 22px;
    flex-wrap: wrap
}

.f10 .footer-links h3 {
    width: 100%
}

@media(min-width:1600px) {
    .section {
        padding-left: 8%;
        padding-right: 8%
    }
}

@media(max-width:1000px) {
    .site-header {
        gap: 20px
    }

    .brand span {
        display: none
    }

    .site-header nav {
        gap: 16px
    }

    .header-cta {
        font-size: 12px
    }

    .property-search {
        grid-template-columns: 1fr 1fr
    }

    .type-hero .section-inner {
        min-height: 610px
    }

    .collection,
    .v3 .collection,
    .type-process.v3 .collection {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .v5 .collection {
        grid-template-columns: 1fr 1fr
    }

    .v5 .card:nth-child(3) {
        margin-top: 0
    }

    .site-footer {
        gap: 30px
    }

    .footer-intro h2 {
        font-size: 2.5rem
    }

    .type-hero.v5 h1 {
        font-size: 3rem
    }

    .type-hero.v9 h1 {
        font-size: 3rem
    }

    .type-hero.v5 .feature-copy {
        width: 75%
    }
}

@media(max-width:700px) {
    .demo-banner {
        font-size: 10px
    }

    .site-header[class] {
        padding: 10px 5%;
        min-height: 85px;
        flex-direction: row;
        flex-wrap: wrap;
        border-radius: 0;
        gap: 12px;
        justify-content: space-between
    }

    .site-header .brand {
        order: 0
    }

    .brand img {
        width: 58px;
        height: 58px
    }

    .brand span {
        display: block;
        font-size: 22px
    }

    .site-header .header-cta {
        display: none
    }

    .site-header .header-note {
        display: none
    }

    .menu-toggle {
        display: block;
        border: 0;
        color: inherit;
        background: none;
        font-size: 14px
    }

    .site-header nav {
        display: none;
        flex-basis: 100%;
        flex-direction: column;
        order: 4;
        gap: 4px
    }

    .site-header nav.open {
        display: flex
    }

    .submenu {
        position: static;
        box-shadow: none
    }

    .section[class] {
        padding: 60px 6%;
        margin: 0
    }

    .section-inner[class] {
        display: block !important;
        min-height: 0 !important
    }

    .type-hero[class] {
        padding: 0
    }

    .type-hero[class] .section-inner {
        position: relative;
        min-height: 600px !important;
        display: flex !important;
        flex-direction: column;
        justify-content: center
    }

    .type-hero[class] .feature-media {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        order: 0
    }

    .type-hero[class] .feature-media:after {
        display: block;
        background: #05131c9e
    }

    .type-hero[class] .feature-copy {
        background: transparent;
        color: #fff;
        margin: 0;
        padding: 65px 7%;
        width: 100%;
        max-width: none;
        order: 1
    }

    .type-hero[class] h1 {
        font-size: 3.2rem
    }

    .type-hero[class] .section-heading {
        border: 0;
        padding: 0;
        text-align: left
    }

    .type-hero[class] .section-heading p {
        color: #e2e8e8
    }

    .type-hero[class] .eyebrow {
        color: #d9ba80
    }

    .feature-media img {
        min-height: 320px;
        height: 360px
    }

    .type-about[class] .feature-copy {
        margin: 0;
        padding: 35px 0 0;
        background: transparent
    }

    .type-about[class] .feature-media {
        width: 100%
    }

    .type-about[class] .feature-media img {
        border-radius: 0;
        height: 350px;
        min-height: 0
    }

    .type-about[class] .section-heading {
        text-align: left
    }

    .section-heading {
        margin-bottom: 30px
    }

    h2 {
        font-size: 2.6rem
    }

    .collection[class],
    .v2 .collection,
    .v3 .collection,
    .v5 .collection,
    .v8 .collection {
        display: grid;
        grid-template-columns: 1fr;
        gap: 30px
    }

    .collection .card {
        margin: 0 !important;
        grid-column: auto !important
    }

    .v6 .collection {
        display: flex
    }

    .v6 .card {
        flex-basis: 85%
    }

    .v9 .card,
    .v10 .card {
        display: block
    }

    .v9 .card-copy,
    .v10 .card-copy {
        padding: 24px 0
    }

    .v9 .card-media img,
    .v10 .card-media img {
        aspect-ratio: 1.3
    }

    .property-search {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 20px
    }

    .property-search .button {
        justify-content: center
    }

    .type-communities .card-media img {
        aspect-ratio: 1
    }

    .type-cta[class] .feature-copy {
        display: block;
        text-align: left
    }

    .type-cta .section-heading {
        text-align: left
    }

    .type-contact[class] .contact-card {
        margin: 40px 0 0;
        padding: 25px
    }

    .form-grid {
        grid-template-columns: 1fr;
        gap: 0
    }

    .detail-body {
        display: block;
        padding: 30px 6% 60px
    }

    .detail-body aside {
        width: 100%;
        margin-top: 40px;
        padding: 25px
    }

    .detail-gallery {
        grid-template-columns: 1fr
    }

    .site-footer[class] {
        display: flex;
        flex-direction: column;
        padding: 60px 6% 90px;
        margin: 0;
        gap: 38px;
        text-align: left
    }

    .site-footer[class] .footer-intro {
        order: 0
    }

    .site-footer[class] .footer-intro h2 {
        font-size: 2.7rem
    }

    .site-footer[class] .footer-links {
        order: 1;
        display: block
    }

    .site-footer[class] .footer-office {
        order: 2;
        display: block
    }

    .site-footer[class] .footer-office h3 {
        margin-top: 25px !important
    }

    .site-footer[class] .footer-bottom {
        order: 3;
        display: flex;
        flex-direction: column
    }

    .whatsapp {
        bottom: 15px;
        right: 15px
    }

    .v7 .card {
        padding: 15px
    }

    .v10 .card-copy {
        padding: 25px
    }

    .type-contact.v10 .contact-card {
        color: #14232e
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    * {
        transition: none !important;
        animation: none !important
    }
}

/* Local, bundled typography */
body {
    font-family: 'DM Sans', Arial, sans-serif
}

.font-editorial h1,
.font-editorial h2 {
    font-family: 'Italiana', Georgia, serif;
    letter-spacing: -.035em
}

.font-modern h1,
.font-modern h2,
.font-modern h3 {
    font-family: 'DM Sans', Arial, sans-serif
}

.font-classic h1,
.font-classic h2,
.font-classic h3 {
    font-family: Georgia, serif
}

/* Text sections retain ten meaningful compositions without requiring an image. */
.type-text.v1 .feature-copy {
    max-width: 900px
}

.type-text.v2 .feature-copy .section-heading {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 20px 60px;
    max-width: none
}

.type-text.v2 .eyebrow {
    grid-column: 1/-1
}

.type-text.v2 h2 {
    grid-column: 1
}

.type-text.v2 p {
    grid-column: 2;
    grid-row: 2
}

.type-text.v3 .feature-copy {
    border-top: 1px solid var(--gold);
    border-bottom: 1px solid var(--gold);
    padding: 50px 0
}

.type-text.v4 .feature-copy {
    text-align: center;
    max-width: 850px;
    margin: auto
}

.type-text.v5 .feature-copy {
    margin-left: 22%;
    border-left: 3px solid var(--gold);
    padding-left: 45px
}

.type-text.v6 .feature-copy .section-heading {
    max-width: none;
    display: flex;
    gap: 40px;
    align-items: start
}

.type-text.v6 .eyebrow {
    min-width: 120px
}

.type-text.v6 h2 {
    min-width: 35%
}

.type-text.v7 .feature-copy {
    padding: 35px;
    background: #fff
}

.type-text.v8 .feature-copy {
    max-width: 1000px;
    margin: auto
}

.type-text.v8 .section-heading p {
    columns: 2;
    max-width: none;
    column-gap: 50px
}

.type-text.v9 .feature-copy {
    max-width: 680px;
    margin: auto
}

.type-text.v9 h2 {
    font-size: 2.5rem
}

.type-text.v10 {
    background: #102630;
    color: #fff
}

.type-text.v10 .section-heading p {
    color: #d8dfe0
}

.type-contact.v1 .section-inner {
    grid-template-columns: 1.3fr 1fr
}

.type-contact.v3 .section-inner {
    display: block
}

.type-contact.v3 .feature-copy {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 30px
}

.type-contact.v3 .feature-copy>a {
    grid-column: 1/-1
}

.type-contact.v3 .contact-card {
    max-width: 900px;
    margin: 30px auto 0
}

.type-contact.v7 .section-inner {
    grid-template-columns: 1fr 1.2fr
}

.type-contact.v7 .contact-card {
    background: transparent;
    border-left: 1px solid var(--gold)
}

.type-contact.v9 .office {
    border-top: 1px solid #b7c0bb;
    padding-top: 20px
}

.type-contact.v6 .feature-copy {
    padding-right: 30px
}

.type-cta.v2 .section-inner {
    display: block
}

.type-cta.v2 .feature-copy {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 50px;
    text-align: left;
    align-items: center
}

.type-cta.v3 .feature-copy {
    border-top: 1px solid var(--gold);
    border-bottom: 1px solid var(--gold);
    padding: 45px
}

.type-cta.v5 .feature-copy {
    text-align: left;
    margin-left: 20%;
    border-left: 2px solid var(--gold);
    padding-left: 40px
}

.type-cta.v8 .feature-copy {
    text-align: left;
    width: 100%
}

.type-cta.v8 .section-heading {
    border-color: var(--gold)
}

.type-cta.v10 .feature-media {
    display: block;
    width: 38%;
    height: 350px
}

.type-cta.v10 .feature-media img {
    min-height: 350px;
    height: 350px
}

.type-cta.v10 .section-inner {
    display: flex;
    align-items: center;
    gap: 60px
}

.type-cta.v10 .feature-copy {
    width: 55%;
    text-align: left
}

.type-cta.v10 .section-heading {
    text-align: left
}

@media(max-width:700px) {
    .type-text[class] .feature-copy {
        margin: 0;
        padding: 0;
        border: 0
    }

    .type-text[class] .section-heading {
        display: block !important
    }

    .type-text[class] .section-heading p {
        columns: 1
    }

    .type-contact.v3 .feature-copy {
        display: block
    }

    .type-cta[class] .feature-copy {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0
    }

    .type-cta.v10 .feature-media {
        display: none
    }
}

.card-media img {
    height: auto
}

.type-communities .card-media img {
    height: auto
}

.v1 .card:first-child .card-media img {
    height: auto
}

h1,
h2,
h3,
.card-copy,
.section-heading {
    overflow-wrap: anywhere
}

.type-stats .card-copy h3 {
    font-size: clamp(2.3rem, 4vw, 4rem)
}

.form-status[hidden] {
    display: none !important
}

.form-status {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 100;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) 34px;
    gap: 15px;
    align-items: start;
    width: min(440px, calc(100vw - 32px));
    margin: 0;
    padding: 20px;
    background: #fff;
    color: #173038;
    border: 1px solid #d9e3df;
    border-left: 5px solid #c8a66a;
    box-shadow: 0 14px 48px #07192140;
    border-radius: 5px;
    font-family: 'DM Sans', Arial, sans-serif;
    line-height: 1.5
}

.form-status.is-success {
    border-left-color: #278051;
    background: #f4faf6
}

.form-status.is-error {
    border-left-color: #bd493b;
    background: #fff7f5
}

.form-status.is-sending {
    border-left-color: var(--gold);
    background: #fffdf7
}

.form-status-symbol {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: #eadfc4;
    color: #544525;
    font-size: 22px;
    font-weight: 600;
    line-height: 1
}

.form-status.is-success .form-status-symbol {
    background: #d8ebdf;
    color: #16643c
}

.form-status.is-error .form-status-symbol {
    background: #f8ddda;
    color: #a43127
}

.form-status-title {
    display: block;
    margin: 0 0 3px;
    font-size: 16px;
    line-height: 1.3
}

.form-status-message {
    display: block;
    font-size: 14px;
    color: #43555a;
    overflow-wrap: anywhere
}

.enquiry .form-status-close {
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: transparent;
    color: #56666b;
    font-size: 26px;
    line-height: 1
}

.enquiry .form-status-close:hover {
    background: #e8eeeb
}

@media(max-width:700px) {
    .form-status {
        top: 12px;
        right: 12px;
        padding: 15px;
        gap: 10px;
        grid-template-columns: 34px minmax(0, 1fr) 28px
    }

    .form-status-symbol {
        width: 34px;
        height: 34px
    }
}

/* Preserve the horizontal masthead while centering the modestly larger logo. */
.site-header.centered-brand.h4 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 24px
}

.centered-brand.h4 .brand {
    grid-column: 2;
    grid-row: 1;
    order: 0;
    justify-self: center
}

.centered-brand.h4 nav {
    grid-column: 1;
    grid-row: 1;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 12px 22px
}

.centered-brand.h4 .header-cta {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
    margin: 0
}

.centered-brand .brand img {
    width: var(--header-logo, 82px);
    height: var(--header-logo, 82px);
    object-fit: contain
}

.centered-brand nav {
    font-size: var(--header-menu, 15px)
}

.story-label {
    display: block;
    font: italic 22px Georgia, serif;
    color: #887047;
    margin: -10px 0 24px
}

.property-search {
    grid-template-columns: repeat(4, minmax(0, 1fr))
}

.service-illustration {
    width: 42px;
    height: 42px;
    color: #987a42;
    margin-bottom: 20px
}

.type-services .card-media img {
    aspect-ratio: 1.5
}

.type-services .card-copy {
    position: relative
}

.type-partners {
    background: #eae6dc
}

.partner-card {
    padding: 28px;
    background: #09131d;
    border: 1px solid #c8a66a40;
    text-align: center
}

.partner-card a {
    display: flex;
    min-height: 100%;
    flex-direction: column;
    align-items: stretch
}

.partner-logo-frame {
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin: 0 auto 16px;
    width: 100%
}

.partner-card img {
    width: 100%;
    height: 90px;
    object-fit: contain;
    margin: 0 auto
}

.partner-card .partner-name {
    display: block;
    font-size: 12px;
    letter-spacing: .08em;
    color: #e7d7b9
}

.partner-tagline {
    margin: 9px 0 0;
    color: #f7f0e4;
    font-size: 14px;
    line-height: 1.45
}

.partner-tagline.align-left { text-align: left }
.partner-tagline.align-center { text-align: center }
.partner-tagline.align-right { text-align: right }
.partner-tagline.tracking-normal { letter-spacing: 0 }
.partner-tagline.tracking-refined { letter-spacing: .05em }
.partner-tagline.tracking-wide { letter-spacing: .12em }
.partner-tagline.case-uppercase { text-transform: uppercase }

.type-partners.v6 .partner-card {
    min-width: 250px
}

.type-partners.v9 .partner-card,
.type-partners.v10 .partner-card {
    display: block
}

.hero-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity .4s
}

.hero-video.is-playing {
    opacity: 1
}

.hero-video-tools {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-top: 32px;
    font-size: 12px;
    letter-spacing: .06em
}

.hero-video-tools[hidden] {
    display: none
}

.video-toggle {
    display:none;
    border: 1px solid currentColor;
    padding: 7px 12px;
    background: #07111a60;
    color: inherit;
    font-size: 12px
}

.email-float {
    position: fixed;
    right: 24px;
    bottom: 84px;
    z-index: 25;
    display: flex;
    align-items: center;
    gap: 10px;
    background: #122630;
    border: 1px solid #8b784e;
    color: #fff;
    padding: 11px 16px;
    box-shadow: 0 6px 25px #0003;
    font-size: 16px
}

.email-float-label {
    font-size: 13px;
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    transition: max-width .2s
}

.email-float:hover .email-float-label,
.email-float:focus-visible .email-float-label {
    max-width: 120px
}

.journal-source {
    margin-top: 30px;
    font-size: 14px;
    border-top: 1px solid #c2c8c6;
    padding-top: 22px
}

@media(max-width:1000px) {
    .centered-brand .header-cta {
        font-size: 12px
    }

    .property-search {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .centered-brand nav {
        gap: 12px 16px
    }
}

@media(max-width:700px) {
    .site-header.centered-brand[class] {
        display: flex;
        justify-content: center;
        position: relative;
        gap: 12px;
        padding: 12px 5%
    }

    .centered-brand .brand {
        margin: 0 auto;
        justify-content: center
    }

    .centered-brand .brand img {
        width: 70px;
        height: 70px
    }

    .centered-brand .brand span {
        font-size: 22px
    }

    .centered-brand .menu-toggle {
        position: absolute;
        right: 5%;
        top: 38px;
        font-size: 13px
    }

    .centered-brand nav {
        width: 100%;
        font-size: var(--header-menu, 15px)
    }

    .centered-brand nav:not(.open) {
        display: none
    }

    .centered-brand nav.open {
        display: flex;
        justify-content: center
    }

    .centered-brand .brand {
        padding-right: 55px;
        padding-left: 55px
    }

    .property-search {
        grid-template-columns: 1fr
    }

    .email-float {
        right: 15px;
        bottom: 77px
    }

    .email-float-label {
        max-width: 120px
    }

    .type-partners[class] .partner-collection {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px
    }

    .partner-card {
        padding: 20px 12px
    }

    .partner-card img {
        height: 65px
    }

    .hero-video-tools {
        gap: 14px
    }
}

@media(prefers-reduced-motion:reduce) {
    .hero-video {
        display: none
    }

    .email-float-label {
        transition: none
    }
}

.partner-card img[src$="/damac.svg"],
.partner-card img[src$="/sobha.svg"],
.partner-card img[src$="/object1.svg"] {
    filter: brightness(0) invert(1)
}

/* Additional masthead: the existing ten templates are retained. */
.stacked-name {
    display: none !important
}

.site-header.h11[class] {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    padding: 24px 5% 18px
}

.h11 .brand {
    display: flex;
    flex-direction: column;
    gap: 12px;
    order: 0;
    text-align: center
}

.h11 .brand img {
    width: var(--header-logo, 90px);
    height: var(--header-logo, 90px)
}

.h11 .horizontal-name {
    display: none !important
}

.h11 .brand .stacked-name {
    display: block !important;
    font-size: 22px;
    letter-spacing: .035em;
    line-height: 1.35;
    max-width: 90vw
}

.h11 nav {
    order: 1;
    justify-content: center;
    flex-wrap: wrap;
    gap: 28px;
    width: 100%;
    padding-top: 6px
}

.h11 .header-cta {
    position: absolute;
    right: 5%;
    top: 38px
}

@media(min-width:1001px) {
    .centered-brand.h4 .brand {
        display: block;
        position: relative;
        width: var(--header-logo, 90px)
    }

    .centered-brand.h4 .horizontal-name {
        position: absolute;
        left: calc(var(--header-logo, 90px) + 14px);
        top: 50%;
        transform: translateY(-50%);
        white-space: nowrap
    }
}

@media(max-width:700px) {
    .site-header.h11[class] {
        padding: 18px 5%;
        gap: 10px
    }

    .h11 .menu-toggle {
        position: static;
        order: 1
    }

    .h11 nav {
        order: 2
    }

    .h11 .brand {
        padding: 0
    }

    .h11 .brand .stacked-name {
        font-size: 19px
    }

    .h11 .header-cta {
        display: none
    }
}

.journal-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding: 35px 6%;
    flex-wrap: wrap
}
/* Journal reading experience; all rules are confined to article detail pages. */
.journal-article{--article-paper:var(--paper,#f7f5f0);--article-accent:var(--gold,#b6955c);background:var(--article-paper);padding:0 0 72px;overflow-wrap:anywhere}
.article-topline{max-width:1320px;margin:auto;padding:32px 40px 0;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#59676d}
.article-topline>a{border-bottom:1px solid var(--article-accent);padding-bottom:5px}.article-topline>span{display:flex;gap:14px;align-items:center}
.journal-article>.type-about{padding:54px 40px 64px;max-width:1320px;margin:auto;background:transparent}
.journal-article .section-heading{margin:0;max-width:850px}.journal-article .section-heading h1{font-size:clamp(36px,4.2vw,66px);line-height:1.09;letter-spacing:-.04em;text-wrap:balance}.journal-article .section-heading p{font-size:18px;line-height:1.7;max-width:650px;margin:24px 0 0;color:#59676d}.journal-article .eyebrow{color:var(--article-accent);font-size:11px;letter-spacing:.19em;margin-bottom:20px}
.journal-article .feature-media img{min-height:0;height:100%;width:100%;aspect-ratio:4/3;object-fit:cover}.journal-article.cover-wide .feature-media img{aspect-ratio:16/9}.journal-article.cover-portrait .feature-media img{aspect-ratio:4/5}.journal-article .feature-media{align-self:center}.journal-article .type-about.v9 .section-inner{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}.journal-article.without-cover .section-inner{display:block!important}.journal-article.without-cover .feature-copy{max-width:850px;margin:auto}
.article-reading-grid{max-width:calc(var(--reading-width) + 380px);margin:0 auto;padding:48px 40px 0;display:grid;grid-template-columns:minmax(0,var(--reading-width));justify-content:center;border-top:1px solid #172d3524;gap:64px}.article-reading-grid.with-toc{grid-template-columns:200px minmax(0,var(--reading-width))}.article-column{min-width:0}.article-sidebar{align-self:start;position:sticky;top:28px}.article-sidebar summary{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;color:#59676d;padding-bottom:18px;border-bottom:1px solid var(--article-accent)}.article-sidebar nav{display:grid;padding-top:12px}.article-sidebar a{display:flex;gap:12px;padding:13px 0;font-size:13px;line-height:1.5;border-bottom:1px solid #172d3514}.article-sidebar a span{color:var(--article-accent);font-size:10px;padding-top:2px;flex-shrink:0}.article-sidebar .toc-h3{padding-left:14px}.article-sidebar a:hover{color:#8d6a31}
.article-prose{font-size:var(--reading-size);line-height:var(--reading-leading);text-align:var(--reading-align);color:var(--ink,#192e37)}.article-prose p{margin:0 0 var(--paragraph-gap);max-width:none}.article-prose .article-lead{font-size:1.13em;line-height:1.75;margin-bottom:36px;padding-bottom:32px;border-bottom:1px solid #172d351c}.article-prose h2{font-size:clamp(28px,3vw,38px);line-height:1.2;margin:48px 0 20px;padding-top:12px;letter-spacing:-.025em;scroll-margin-top:30px}.article-prose h3{font-size:25px;line-height:1.3;margin:32px 0 16px;scroll-margin-top:30px}.article-prose h2::before{content:'';display:block;width:32px;height:2px;background:var(--article-accent);margin-bottom:18px}.article-prose ul,.article-prose ol{margin:20px 0 32px;padding-left:1.3em}.article-prose li{padding-left:.4em;margin:10px 0}.article-prose li::marker{color:var(--article-accent)}.article-prose blockquote{margin:32px 0;padding:26px 30px;border-left:3px solid var(--article-accent);background:#b6955c0c;font:italic 1.25em/1.6 Georgia,serif}.article-prose strong{font-weight:700}.article-custom-code{display:block;width:100%;border:0;margin:24px 0;background:transparent}
.article-source-card{margin-top:48px;padding:28px 32px;border:1px solid #172d3520;background:#fff6}.article-source-card .eyebrow{margin-bottom:12px}.article-source-card p{font-size:15px;margin-bottom:16px}.article-source-card a{font-size:13px}.article-end{margin-top:40px;display:flex;align-items:center;gap:20px;font-size:13px;border-top:1px solid #172d3520;padding-top:24px}.article-end>span{color:var(--article-accent);font-size:12px}
@media(max-width:900px){.article-reading-grid.with-toc{grid-template-columns:minmax(0,1fr);gap:30px}.article-sidebar{position:static}.article-sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.journal-article .type-about.v9 .section-inner{gap:30px}.journal-article>.type-about{padding-bottom:40px}}
@media(max-width:600px){.article-topline{padding:24px 22px 0;letter-spacing:.03em;flex-wrap:wrap}.journal-article>.type-about{padding:30px 22px}.journal-article .section-inner,.journal-article .type-about.v9 .section-inner{display:flex!important;flex-direction:column;gap:28px}.journal-article .feature-media{width:100%}.journal-article .feature-media img{max-height:320px}.article-reading-grid{padding:28px 22px 0}.article-prose{font-size:min(var(--reading-size),20px)}.article-prose .article-lead{font-size:1.05em}.article-sidebar nav{grid-template-columns:1fr}.article-source-card{padding:24px}.journal-article .section-heading h1{font-size:36px}.article-prose blockquote{padding:20px}.article-topline>span{font-size:11px}}

.journal-article .type-about.v5 .feature-copy,.journal-article .type-about.v10 .feature-copy{background:var(--article-paper)}
.journal-article .article-prose h2+h2{margin-top:24px}

/* CMS-controlled image scale. A value of 1 keeps every existing composition unchanged. */
img.cms-scalable{transform:scale(var(--image-scale,1));transform-origin:center center}
.card-media img.cms-scalable{transition:transform .7s}
.card:hover .card-media img.cms-scalable{transform:scale(calc(var(--image-scale,1) + .04))}
.detail-gallery a{display:block;overflow:hidden}

/* Long-form company story supplied by the client. */
.type-text .feature-copy{max-width:1040px;margin-inline:auto}
.type-text .section-heading{max-width:900px;margin-bottom:34px}
.story-prose{max-width:900px;color:#3f5057;font-size:18px;line-height:1.9}
.story-prose p{margin:0 0 24px}
.story-prose p:first-child{font-size:1.08em;color:var(--ink)}
@media(max-width:700px){.story-prose{font-size:16px;line-height:1.8}.partner-logo-frame{height:65px}}

/* Client typography refinement: paragraphs and supporting headings use Candara
   when it is installed, with closely matched system fallbacks elsewhere. */
:root{--psalm-candara:Candara,Calibri,"Segoe UI",Arial,sans-serif}
body p,
.prose,
.story-prose,
.article-prose,
.section-heading h2,
.section h3,
.detail-body h2,
.detail-body h3,
.article-prose h2,
.article-prose h3,
.site-footer h2,
.site-footer h3{font-family:var(--psalm-candara)}
body p>*{color:inherit!important;font-size:inherit!important;font-family:inherit!important;line-height:inherit}
.story-prose p:first-child{color:inherit;font-size:inherit}

/* Every office number keeps the same visual size in all ten footer templates. */
.site-footer .footer-office>a,
.site-footer .footer-office>a>span,
.site-footer .footer-phone-list a,
.site-footer .footer-phone-list a>span{font-size:14px!important;line-height:1.7}

/* Visionary Partners: smaller title and marks, grouped by market. */
.type-partners>.section-inner>.section-heading h2{font-size:clamp(2rem,3.2vw,3.35rem)}
.partner-groups{display:grid;gap:clamp(42px,6vw,72px)}
.partner-group{min-width:0}
.partner-group-heading{display:grid;grid-template-columns:auto minmax(48px,1fr);align-items:center;gap:20px;margin:0 0 26px}
.partner-group-heading::after{content:"";height:1px;background:linear-gradient(90deg,#9679418c,#9679411a)}
.partner-group-heading h3{display:flex;align-items:center;gap:12px;margin:0;font:500 clamp(1.35rem,2vw,1.8rem)/1.15 var(--psalm-candara);letter-spacing:.035em;color:var(--ink)}
.partner-group-heading h3::before{content:"";width:7px;height:7px;flex:0 0 7px;background:var(--gold);transform:rotate(45deg)}
.type-partners .partner-group .partner-collection{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.partner-card>a,
.partner-card>.partner-link{display:flex;min-height:100%;flex-direction:column;align-items:stretch}
.partner-logo-frame{height:74px;margin-bottom:12px}
.partner-card img{width:82%;height:64px}

/* Story marks sit beside the heading rather than being centred against the full article. */
.type-text.has-image .section-inner{display:block}
.type-text.has-image .feature-copy{--story-image-column:clamp(150px,18vw,230px);--story-image-gap:clamp(28px,4vw,58px);max-width:1120px;margin-inline:auto;text-align:left}
.type-text.has-image .story-heading-row{display:grid;grid-template-columns:var(--story-image-column) minmax(0,1fr);gap:var(--story-image-gap);align-items:center;margin-bottom:34px}
.type-text.has-image .story-heading-row .section-heading{width:100%;max-width:900px;margin:0}
.type-text.has-image .feature-media{display:flex;width:var(--story-image-column);min-width:0;align-items:center;justify-content:center;align-self:center;overflow:visible}
.type-text.has-image .feature-media img{display:block;width:100%;height:auto;min-height:0;max-height:230px;object-fit:contain}
.type-text.has-image .story-prose{max-width:none;margin-left:calc(var(--story-image-column) + var(--story-image-gap))}
.type-text.has-image .feature-copy>.button{margin-left:calc(var(--story-image-column) + var(--story-image-gap))}
.type-text.has-image .story-image-position-right .story-heading-row{grid-template-columns:minmax(0,1fr) var(--story-image-column)}
.type-text.has-image .story-image-position-right .feature-media{grid-column:2;grid-row:1}
.type-text.has-image .story-image-position-right .section-heading{grid-column:1;grid-row:1}
.type-text.has-image .story-image-position-right .story-prose{margin-right:calc(var(--story-image-column) + var(--story-image-gap));margin-left:0}
.type-text.has-image .story-image-position-right>.button{margin-right:calc(var(--story-image-column) + var(--story-image-gap));margin-left:0}
.type-text.has-image .story-image-position-above-left .story-heading-row,
.type-text.has-image .story-image-position-above-centre .story-heading-row,
.type-text.has-image .story-image-position-above-right .story-heading-row{display:flex;flex-direction:column;gap:26px;align-items:flex-start}
.type-text.has-image .story-image-position-above-centre .story-heading-row{align-items:center;text-align:center}
.type-text.has-image .story-image-position-above-centre .story-heading-row .section-heading{margin-inline:auto}
.type-text.has-image .story-image-position-above-right .story-heading-row{align-items:flex-end;text-align:right}
.type-text.has-image .story-image-position-above-right .story-heading-row .section-heading{margin-left:auto}
.type-text.has-image [class*="story-image-position-above-"] .story-prose,
.type-text.has-image [class*="story-image-position-above-"]>.button{margin-left:0;margin-right:0}
.type-text.has-image .story-image-align-top .story-heading-row{align-items:start}
.type-text.has-image .story-image-align-centre .story-heading-row{align-items:center}
.type-text.has-image .story-image-align-bottom .story-heading-row{align-items:end}
.type-text.has-image .story-image-position-above-left .story-heading-row{align-items:flex-start}
.type-text.has-image .story-image-position-above-centre .story-heading-row{align-items:center}
.type-text.has-image .story-image-position-above-right .story-heading-row{align-items:flex-end}

@media(max-width:900px){
    .type-partners .partner-group .partner-collection{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:700px){
    .type-partners .partner-group .partner-collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .partner-group-heading{gap:14px;margin-bottom:18px}
    .partner-group-heading h3{font-size:1.3rem}
    .partner-logo-frame{height:62px}
    .partner-card img{height:54px}
    .type-text.has-image .feature-copy{--story-image-column:min(48vw,180px);margin:0}
    .type-text.has-image .story-heading-row,
    .type-text.has-image .story-image-position-right .story-heading-row,
    .type-text.has-image .story-image-position-above-left .story-heading-row,
    .type-text.has-image .story-image-position-above-centre .story-heading-row,
    .type-text.has-image .story-image-position-above-right .story-heading-row{display:flex;flex-direction:column;gap:24px;align-items:flex-start;text-align:left}
    .type-text.has-image .story-heading-row .section-heading{margin:0}
    .type-text.has-image .feature-media{width:var(--story-image-column);align-self:flex-start}
    .type-text.has-image .feature-media img{width:100%;max-height:180px}
    .type-text.has-image .story-prose,
    .type-text.has-image .story-image-position-right .story-prose,
    .type-text.has-image .feature-copy>.button,
    .type-text.has-image .story-image-position-right>.button{margin-left:0;margin-right:0}
}
