/* Shared layout contract: gutters, spacing, fluid columns and image sizing. */
:root{--page-width:1440px;--page-gutter:clamp(20px,4vw,56px);--section-space:72px;--content-gap:40px;--panel-pad:28px;--header-clearance:128px}
html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}
body{min-width:0;width:100%;margin:0;padding-top:0}
.wrap{width:100%;max-width:var(--page-width);min-width:0;margin-inline:auto;padding-inline:var(--page-gutter)}
main{min-width:0;width:100%}
main>section:not(.closing-cta):not(.listing-section):not(.related-property-section){padding-block:var(--section-space)}
main>section.wrap{padding-inline:var(--page-gutter)}
main>section:has(+.closing-cta){padding-bottom:var(--section-space)}
main :is(.split,.hero-grid,.cards,.twoways,.service-grid,.timeline,.listing-layout,.property-layout,.property-heading,.detail-heading,.form-grid,.about-story,.about-connected>.wrap)>*{min-width:0}
.split{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--content-gap);align-items:start}
.section-head{gap:32px;margin-bottom:28px;align-items:end}.section-head h2{margin-bottom:0}.section-head p{margin-bottom:0}
h1,h2,h3{overflow-wrap:break-word}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.2;letter-spacing:-.035em}
main p{overflow-wrap:break-word}p{line-height:1.7}
input,select,textarea{min-width:0;max-width:100%}
.form-grid{gap:20px;padding:var(--panel-pad)}.form-grid label{min-width:0}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;font-size:16px;line-height:1.4}
.form-grid textarea{resize:vertical}.form-grid .check{align-items:start;gap:10px}
.form-grid .check input{width:18px;max-width:18px;flex:0 0 18px;min-height:18px;margin-top:4px}
.form-grid .check span{min-width:0;line-height:1.6}
.page-hero{padding-top:var(--header-clearance);padding-bottom:40px}
.page-hero h1{font-size:clamp(32px,4vw,58px);line-height:1.14;max-width:1040px;margin:14px 0 20px}
.page-hero p{font-size:17px;max-width:780px;margin-bottom:0}
.breadcrumb{line-height:1.6;overflow-wrap:anywhere;margin-bottom:20px}
.listing-page .catalogue-intro{padding-top:var(--header-clearance);padding-bottom:34px;padding-inline:max(var(--page-gutter),calc((100vw - 1328px)/2));margin-bottom:24px}
.catalogue-title{gap:28px}.catalogue-title h1{line-height:1.15}
.property-top{width:100%;max-width:none;padding-top:var(--header-clearance);padding-bottom:28px;padding-inline:max(var(--page-gutter),calc((100vw - 1328px)/2))}
.property-heading{gap:32px}.property-heading h1{line-height:1.18}.property-address{line-height:1.65}
.property-gallery-wrap{padding-top:24px}.property-body{padding-block:32px 40px}
.property-layout{gap:28px}.property-main{gap:22px}.property-panel{padding:var(--panel-pad)}
.panel-heading h2{font-size:28px;line-height:1.25;margin:10px 0 22px}
.property-panel>p{font-size:15px;line-height:1.75}.property-details-list>div{gap:18px}
.property-details-list dt,.property-details-list dd{min-width:0}
.detail-photo-missing .property-placeholder{display:block;width:100%;height:auto;max-height:430px;object-fit:contain}
.results-head,.results-controls{flex-wrap:wrap}.results,.card{min-width:0}
.card h3{line-height:1.4;overflow-wrap:break-word}.card-address{line-height:1.65}
.card-price-row{flex-wrap:wrap;gap:9px}.card-bottom{min-width:0;grid-template-columns:minmax(0,1fr) 44px}
.cashback{min-width:0}.cashback strong{overflow-wrap:break-word}
.card-tools{flex-wrap:wrap;row-gap:4px}.card-reference{white-space:nowrap}.card-specs{line-height:1.6}
.about-story{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--content-gap);align-items:center}
.about-team-photo{width:100%;min-width:0;max-width:100%;height:auto;align-self:center;margin:0}
.about-team-photo img{display:block;width:100%;max-width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto;object-fit:contain}
.about-team-photo figcaption{padding:18px 22px;line-height:1.6}.about-team-photo figcaption span{display:block;overflow-wrap:break-word}
.about-story h2,.about-focus .section-head h2,.about-connected h2{font-size:clamp(29px,3.2vw,44px);line-height:1.2}
.about-story p,.about-team-story p,.about-connected p{font-size:16px;line-height:1.75}
.about-story .about-lead{font-size:19px;line-height:1.65}
.about-focus-list article{grid-template-columns:30px minmax(0,1fr) 44px;gap:22px;padding:27px 0}
.about-focus-list h3{font-size:25px;line-height:1.3}.about-focus-list p{font-size:16px;line-height:1.75}
.about-team-story{align-items:start}.about-team-story h2{margin:14px 0 23px}
.about-promise{padding:var(--panel-pad)}.about-promise h3{font-size:27px;line-height:1.3}.about-promise p{font-size:12px}
.about-connected>.wrap{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--content-gap)}
.cta{min-width:0}.closing-cta{padding-block:32px 0}
.closing-cta .cta{padding:34px 36px;gap:28px}.closing-cta .cta h2{line-height:1.25}
.site-footer .footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1.2fr);gap:36px}
.site-footer .footer-grid>*{min-width:0}.site-footer address{overflow-wrap:break-word}
.site-header .header{padding-inline:22px}.property-section-nav.wrap{padding-inline:10px}
.article{width:100%;min-width:0;padding-inline:var(--page-gutter)}.article p{font-size:17px;line-height:1.8}
@media(max-width:1100px){:root{--section-space:60px;--content-gap:32px}.property-layout{gap:24px}.closing-cta .cta{padding:30px}.site-footer .footer-grid{gap:28px}}
@media(max-width:900px){.split,.about-story,.about-connected>.wrap{grid-template-columns:minmax(0,1fr);gap:30px}.about-team-photo{max-width:none}.section-head{align-items:start}.page-hero h1{font-size:clamp(32px,4.8vw,46px)}}
@media(max-width:750px){
 :root{--header-clearance:108px;--panel-pad:24px;--content-gap:28px}
 .site-header .header{padding-inline:12px}.property-heading{gap:20px}
 .property-layout{grid-template-columns:minmax(0,1fr);gap:24px}.property-gallery-wrap{padding-top:18px}
 .property-top{padding-bottom:24px}.page-hero{padding-bottom:32px}.listing-page .catalogue-intro{padding-bottom:28px}
 .site-footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.site-footer .footer-brand{grid-column:1/-1}
 .form-grid{gap:18px}.section-head{display:block}.section-head p{margin-top:16px}.section-head .textlink{margin-top:18px}.results-head{gap:16px}
}
@media(max-width:650px){
 :root{--page-gutter:20px;--section-space:44px;--panel-pad:22px;--content-gap:26px}
 .wrap{padding-inline:var(--page-gutter)}.page-hero h1{font-size:32px;line-height:1.16}.page-hero p{font-size:16px}
 .page-hero .eyebrow{font-size:10px;line-height:1.6;letter-spacing:1.2px}.breadcrumb{font-size:11px;margin-bottom:18px}
 .catalogue-title h1{font-size:32px!important}.catalogue-title{display:block}
 .property-heading h1{font-size:30px}.property-tags{gap:8px 10px}.property-panel{padding:22px 20px}
 .panel-heading h2{font-size:26px}.property-panel .form-grid{padding:18px}
 .form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:1/-1}.full{min-width:0}
 .section-head{margin-bottom:24px}.section-head h2{font-size:30px}.section-head p{font-size:16px}.split{gap:26px}
 .about-story h2,.about-focus .section-head h2,.about-team-story h2,.about-connected h2{font-size:30px;line-height:1.22}
 .about-story .about-lead{font-size:18px}.about-story p,.about-team-story p,.about-connected p{font-size:16px}
 .about-focus-list article{display:block;position:relative;padding:24px 0}.about-focus-list article>span{display:none}
 .about-focus-list h3{font-size:23px;padding-right:55px;margin-bottom:12px}
 .about-focus-list article>a{position:absolute;right:0;top:24px;margin:0;width:44px;height:44px}.about-focus-list p{font-size:16px}
 .about-promise{padding:24px}.about-promise h3{font-size:25px}
 .about-team-photo figcaption{padding:17px 18px}.about-team-photo figcaption strong{font-size:16px}
 .about-connected>.wrap{gap:12px}.about-connected .actions{gap:18px}
 .closing-cta{padding-top:24px}.closing-cta .cta{padding:26px 23px}.closing-cta .cta h2{font-size:29px}
 .site-footer .footer-grid{grid-template-columns:minmax(0,1fr);gap:26px}.site-footer .footer-brand{grid-column:1;display:block}
 .site-footer .footer-statement{margin:16px 0 10px}.site-footer .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
 .site-footer .footer-bottom{align-items:start}.article p{font-size:16px}.article h2{font-size:28px}
}
.article{max-width:820px;margin-inline:auto}
/* Readable site-wide disclosure and wrapping copyright details. */
.site-footer .footer-disclosure{font-size:13px;line-height:1.75;color:#c3cfe2;margin-top:24px;padding-top:22px}
.site-footer .footer-disclosure>strong{display:block;color:#fff;font-size:14px;margin-bottom:10px}
.site-footer .footer-disclosure p{color:inherit;font-size:inherit;line-height:inherit;margin:0 0 10px;max-width:1250px}
.site-footer .footer-disclosure p:last-child{margin-bottom:0}
.site-footer .footer-bottom{flex-wrap:wrap;align-items:baseline;row-gap:16px;margin-top:22px;font-size:12px;line-height:1.8}
.site-footer .footer-copyright{flex:1 1 600px;min-width:0;overflow-wrap:break-word}
.site-footer .footer-bottom a{font-size:12px}
.site-footer .footer-copyright a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:750px){.site-footer .footer-copyright{flex-basis:auto}.site-footer .footer-disclosure{font-size:13px}.site-footer .footer-bottom>div{row-gap:10px}}
/* WhatsApp enquiry actions on every individual property page. */
.detail-page .button[data-whatsapp]{background:#25d366;border-color:#25d366;color:#0b2416;font-weight:700}
.detail-page .button[data-whatsapp]:hover{background:#20bd5a;border-color:#20bd5a;filter:none}
.detail-page .button[data-whatsapp]:focus-visible{outline:3px solid #0b6b34;outline-offset:4px}
