/* Small Latin fonts preserve French accents; full fonts remain available for other scripts. */
@font-face { font-family:Cardo; src:url('./cardo-400.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0180-02FF, U+0370-1FFF, U+20D0-2121, U+2123-2211, U+2213-FAFF, U+FB07-FEFE, U+FF00-FFFC, U+FFFE-10FFFF; }
@font-face { font-family:Cardo; src:url('./cardo-400-latin.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0000-017F, U+0300-036F, U+2000-20CF, U+2122, U+2212, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family:Cardo; src:url('./cardo-700.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0180-02FF, U+0370-1FFF, U+20D0-2121, U+2123-2211, U+2213-FAFF, U+FB07-FEFE, U+FF00-FFFC, U+FFFE-10FFFF; }
@font-face { font-family:Cardo; src:url('./cardo-700-latin.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0000-017F, U+0300-036F, U+2000-20CF, U+2122, U+2212, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family:Manrope; src:url('./manrope-400.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0180-02FF, U+0370-1FFF, U+20D0-2121, U+2123-2211, U+2213-FAFF, U+FB07-FEFE, U+FF00-FFFC, U+FFFE-10FFFF; }
@font-face { font-family:Manrope; src:url('./manrope-400-latin.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; unicode-range:U+0000-017F, U+0300-036F, U+2000-20CF, U+2122, U+2212, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family:Manrope; src:url('./manrope-500.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; unicode-range:U+0180-02FF, U+0370-1FFF, U+20D0-2121, U+2123-2211, U+2213-FAFF, U+FB07-FEFE, U+FF00-FFFC, U+FFFE-10FFFF; }
@font-face { font-family:Manrope; src:url('./manrope-500-latin.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; unicode-range:U+0000-017F, U+0300-036F, U+2000-20CF, U+2122, U+2212, U+FB00-FB06, U+FEFF, U+FFFD; }
@font-face { font-family:Manrope; src:url('./manrope-700.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0180-02FF, U+0370-1FFF, U+20D0-2121, U+2123-2211, U+2213-FAFF, U+FB07-FEFE, U+FF00-FFFC, U+FFFE-10FFFF; }
@font-face { font-family:Manrope; src:url('./manrope-700-latin.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; unicode-range:U+0000-017F, U+0300-036F, U+2000-20CF, U+2122, U+2212, U+FB00-FB06, U+FEFF, U+FFFD; }
/* Adjust local fallback widths and metrics to reduce movement while fonts load. */
@font-face { font-family:'Cardo Fallback'; src:local('Georgia'); font-weight:400; font-style:normal; size-adjust:95.489%; ascent-override:103.701%; descent-override:38.095%; line-gap-override:0.000%; }
@font-face { font-family:'Cardo Fallback'; src:local('Georgia Bold'); font-weight:700; font-style:normal; size-adjust:88.829%; ascent-override:111.477%; descent-override:40.952%; line-gap-override:0.000%; }
@font-face { font-family:'Manrope Fallback'; src:local('Arial'); font-weight:400; font-style:normal; size-adjust:102.816%; ascent-override:103.680%; descent-override:29.178%; line-gap-override:0.000%; }
@font-face { font-family:'Manrope Fallback'; src:local('Arial'); font-weight:500; font-style:normal; size-adjust:104.645%; ascent-override:101.868%; descent-override:28.668%; line-gap-override:0.000%; }
@font-face { font-family:'Manrope Fallback'; src:local('Arial Bold'); font-weight:700; font-style:normal; size-adjust:101.515%; ascent-override:105.009%; descent-override:29.552%; line-gap-override:0.000%; }
:root {
    --ink: #172d3b;
    --muted: #52616b;
    --blue: #326a99;
    --deep: #172d3b;
    --paper: #fff;
    --ground: #f6f8fa;
    --wash: #eaf0f4;
    --green: #125c46;
    --display: Cardo, 'Cardo Fallback', Georgia, serif;
    --body: Manrope, 'Manrope Fallback', Arial, sans-serif;
    /* Buttons, footer logos and property photos share the same subtle corners. */
    --radius-small: 6px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; color:var(--ink); background:var(--ground); font:400 16px/1.65 var(--body); }
img { max-width:100%; height:auto; display:block; border-radius:0; }
a { color:inherit; text-decoration:none; text-underline-offset:5px; }
a:hover { text-decoration:underline; }
button,input,select,textarea { font:inherit; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
button,summary { cursor:pointer; }
button { color:inherit; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
h1,h2,h3,h4,h5,h6,p,figure { margin:0; }
/* Use the real bold Cardo font for headings while keeping their agreed size and spacing. */
h1,h2,h3,h4,h5,h6 { font-family:var(--display); font-weight:700; font-kerning:normal; }
h1 { font-size:42px; line-height:1.14; letter-spacing:-.025em; }
h2 { font-size:30px; line-height:1.2; letter-spacing:-.02em; }
h3 { font-size:20px; line-height:1.3; letter-spacing:-.01em; }
h4,h5,h6 { font-size:18px; line-height:1.4; letter-spacing:-.01em; }
p+p { margin-top:18px; }
strong { font-weight:700; }
.small,time,.breadcrumb { font-size:14px; color:var(--muted); }
.section-wrap { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:44px;
    padding:10px 18px;
    border:0;
    border-radius:var(--radius-small);
    background:var(--blue);
    color:var(--paper);
    font-size:15px;
    font-weight:500;
    line-height:1.65;
}
.button:hover { background:#245578; text-decoration:none; }
.button-light { background:var(--paper); color:var(--blue); }
.button-light:hover { background:#dce6ed; }
.skip-link { position:absolute; top:-100px; left:20px; padding:15px; background:var(--paper); z-index:1000; }
.skip-link:focus { top:10px; }
/* Every decorative arrow uses the same SVG stroke and dimensions. */
.icon-arrow,.location-icon,.icon-chat { width:18px; height:18px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
/* Keep the official WhatsApp artwork filled and match the surrounding button colour. */
.icon-whatsapp { width:18px; height:18px; flex-shrink:0; fill:currentColor; stroke:none; }
summary { list-style:none; }
summary::-webkit-details-marker { display:none; }

/* Compact, contained header with a working dropdown for the existing services. */
.site-header { position:relative; display:flex; align-items:center; justify-content:space-between; gap:24px; width:min(1180px,calc(100% - 48px)); min-height:64px; padding:8px 20px; margin:18px auto 0; background:var(--paper); border-radius:16px; z-index:20; }
.brand { flex:0 0 112px; }
.brand img { width:112px; }
.site-header nav { display:flex; gap:24px; align-items:center; font-size:14px; font-weight:500; }
.site-header nav>a,.nav-services summary { padding:10px 0; }
.nav-services { position:relative; }
.nav-services summary { display:flex; align-items:center; gap:6px; }
.nav-services summary .icon-arrow { width:14px; height:14px; }
.nav-services[open] summary .icon-arrow { transform:rotate(180deg); }
.nav-services>div { position:absolute; top:100%; left:-20px; min-width:260px; padding:20px; border-radius:12px; background:var(--paper); box-shadow:0 12px 30px #172d3b20; }
.nav-services a { display:block; padding:8px 0; }
.header-contact { min-height:40px; padding:8px 14px; gap:8px; font-size:14px; }
.mobile-contact { display:none; }
.menu-toggle { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px; border:0; background:none; font-size:15px; font-weight:700; }
.menu-toggle[aria-expanded=true] .icon-arrow { transform:rotate(180deg); }

/* The original agency sentence sits below a single-line hero heading. */
.hero-heading { padding-block:44px 30px; }
.hero-heading p { max-width:76ch; margin-top:14px; }
.hero-photo { height:310px; overflow:hidden; }
.hero-photo img { width:120%; max-width:none; height:100%; object-fit:cover; object-position:left 72%; }
.property-search { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; gap:18px; padding:24px; border-radius:16px; background:var(--wash); }
.compact-search { grid-template-columns:1fr 1fr 1fr 1.1fr auto; margin-top:22px; }
label { display:block; min-width:0; font-size:14px; font-weight:500; }
input,select,textarea { display:block; width:100%; min-width:0; min-height:44px; margin-top:7px; padding:8px 12px; border:1px solid #c9d4dc; border-radius:8px; background:var(--paper); color:var(--ink); font-size:15px; }
textarea { resize:vertical; }
/* SVG select arrows remain inset while the native keyboard interaction is preserved. */
select {
    appearance:none;
    -webkit-appearance:none;
    padding-right:38px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2352616b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    background-size:16px 16px;
}
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.section-heading>a { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; color:var(--blue); font-size:15px; font-weight:500; }
.section-copy { margin-top:12px; }
.home-properties,.home-professional { padding-top:68px; }
.home-properties>.property-grid,.home-professional>.property-grid { margin-top:32px; }
.property-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 26px; }
.property-card { display:flex; flex-direction:column; min-width:0; }
.property-photo { position:relative; display:block; overflow:hidden; border-radius:var(--radius-small); background:var(--wash); }
.property-photo img { width:100%; aspect-ratio:4/3; border-radius:var(--radius-small); object-fit:cover; transition:transform .3s; }
.property-photo:hover img { transform:scale(1.025); }
/* Availability badges use the same corners as property photos and buttons. */
.property-status { display:inline-block; padding:5px 12px; border-radius:var(--radius-small); background:var(--paper); font-size:14px; }
.property-photo .property-status { position:absolute; left:14px; bottom:14px; }
.property-status-unavailable { background:#b42332; color:var(--paper); }
/* Keep the pin beside the location, including when a long address wraps. */
.property-location { display:flex; align-items:center; gap:6px; }
.property-location-row { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.photo-missing { display:flex; align-items:center; justify-content:center; aspect-ratio:4/3; }
.property-card-copy { display:flex; flex:1; flex-direction:column; padding-top:15px; }
.property-card h3 { margin-top:7px; margin-bottom:0; overflow-wrap:anywhere; }
.property-price { margin-top:auto; padding-top:16px; font-size:21px; line-height:1.3; font-weight:700; font-variant-numeric:lining-nums tabular-nums; }
.property-facts { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:8px; font-size:14px; color:var(--muted); }
.home-agency { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; margin-top:90px; padding:36px; background:var(--wash); border-radius:16px; }
.prose { line-height:1.8; overflow-wrap:anywhere; }
.prose p,.prose ul,.prose ol { margin:0 0 22px; }
.prose h2,.prose h3,.prose h4 { margin:32px 0 18px; }
.prose h3 { font-size:24px; }
.prose h4 { font-size:20px; }
.prose img { height:auto; }
.prose iframe { max-width:100%; }
.prose a { text-decoration:underline; }
.prose>:last-child { margin-bottom:0; }
.references { padding-block:68px 0; }
.references>div { display:flex; flex-wrap:wrap; gap:40px; align-items:center; margin-top:32px; }
.references img { width:120px; height:48px; object-fit:contain; }

/* Retain every footer detail, with the same restrained typography as the pages. */
.site-footer { margin-top:90px; padding:56px max(24px,calc((100% - 1180px)/2)) 28px; background:var(--deep); color:var(--paper); }
.footer-columns { display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px; }
.footer-columns h3 { font-size:20px; margin-bottom:18px; }
.footer-columns a { display:block; margin-bottom:6px; }
.footer-columns ul { margin:0; padding-left:20px; }
.footer-columns li+li { margin-top:12px; }
/* Names, phone numbers, email and address form one readable contact column. */
.footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.footer-contact h2 { margin-bottom:8px; }
.footer-contact a { margin-bottom:0; }
.footer-contact p { margin-top:8px; }
.memberships { margin-top:40px; }
.memberships>div { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin-top:20px; }
/* Equal-height white backgrounds keep each logo legible without stretching it. */
.memberships img { width:auto; max-width:100%; height:72px; padding:12px 16px; border-radius:var(--radius-small); object-fit:contain; background:var(--paper); }
.footer-legal { font-size:14px; margin-top:35px; }
/* Both WhatsApp contacts stay one tap away without occupying the mobile header. */
.whatsapp-contact { position:fixed; right:20px; bottom:20px; z-index:100; }
.whatsapp-contact summary { display:flex; align-items:center; gap:12px; padding:10px 18px; border-radius:var(--radius-small); background:var(--green); color:var(--paper); font-size:15px; line-height:1.45; }
.whatsapp-contact summary>svg { width:25px; height:25px; }
.whatsapp-contact summary strong,.whatsapp-contact summary small { display:block; }
.whatsapp-contact summary small { font-size:13px; font-weight:400; }
.whatsapp-contact>div { position:absolute; bottom:calc(100% + 12px); right:0; width:280px; max-width:calc(100vw - 32px); padding:24px; border-radius:16px; background:var(--paper); box-shadow:0 10px 40px #172d3b30; }
.whatsapp-contact a { display:block; padding-top:20px; font-size:20px; }
.whatsapp-contact a span { display:block; font-size:14px; }
/* Live chat is available only inside the WhatsApp contact popup. */
.tawk-open { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:24px; border:0; border-radius:var(--radius-small); padding:12px 14px; min-height:44px; background:var(--blue); color:var(--paper); font-size:14px; }
/* Keep loading feedback readable without hiding the direct WhatsApp contacts. */
.tawk-open:disabled { cursor:wait; opacity:.75; }
.tawk-status { margin-top:10px; font-size:13px; line-height:1.5; }

/* Shared page layouts keep the original content and catalogue controls. */
.page-heading { padding-block:36px 32px; }
.page-heading h1 { max-width:1100px; }
.breadcrumb { margin-bottom:24px; }
.listing-intro { max-width:900px; margin-bottom:32px; }
.listing-intro:empty { display:none; }
.results-heading { display:flex; justify-content:space-between; gap:24px; margin:32px 0; }
.pagination { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:48px; }
.page-numbers { display:inline-flex; align-items:center; gap:8px; padding:10px 16px; border-radius:var(--radius-small); background:var(--wash); }
.page-numbers.current { background:var(--blue); color:var(--paper); }
.standard-page { display:grid; grid-template-columns:minmax(0,2fr) minmax(230px,1fr); gap:64px; padding-top:12px; }
.standard-page aside { background:var(--wash); padding:28px; border-radius:16px; align-self:start; }
.standard-page aside h2 { font-size:26px; margin-bottom:24px; }
.standard-page aside a { display:block; margin-top:16px; }
.standard-content { padding-top:36px; }
.standard-content article { max-width:900px; margin:0 auto 48px; }
.standard-content h1 { margin-bottom:32px; }
.about-subtitle { font-size:24px; }
.about-intro { display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:start; padding-block:28px 40px; }
.about-intro p { max-width:380px; }
.about-intro figure { height:240px; overflow:hidden; }
.about-intro img { width:120%; max-width:none; height:100%; object-fit:cover; object-position:left 72%; }
.about-section { display:grid; grid-template-columns:240px minmax(0,1fr); gap:48px; padding:40px 32px; }
.about-section:first-of-type { padding:32px; border-radius:16px; background:var(--wash); }
.about-section p { max-width:72ch; }
.contact-page { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:64px; }
/* Align the first contact card with the form introduction in the other column. */
.contact-page #demande>.prose>:first-child { margin-top:0; }
.contact-person { display:block; background:var(--wash); border-radius:var(--radius-small); padding:24px; margin-bottom:16px; }
.contact-person strong { display:block; font-size:24px; }
.contact-details p { margin-top:28px; }
.contact-details>a:last-child { display:inline-block; margin-top:24px; }
.enquiry-form { display:grid; gap:20px; margin-top:24px; }
.enquiry-form .button { justify-self:start; }
.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-notice { border-radius:12px; background:var(--wash); padding:20px; margin:20px 0; }

/* Property images share the button radius; the gallery remains keyboard accessible. */
.property-heading { padding-block:36px 28px; }
.property-heading>div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:start; }
.property-heading h1 { font-size:36px; overflow-wrap:anywhere; }
.property-heading>p:last-child { margin-top:18px; }
.property-main-price { font-size:24px; font-weight:700; white-space:nowrap; }
.property-gallery { display:grid; grid-template-columns:2fr 1fr; grid-template-rows:1fr 1fr; gap:16px; position:relative; height:480px; }
.gallery-photo { overflow:hidden; border-radius:var(--radius-small); }
.gallery-photo img { width:100%; height:100%; border-radius:var(--radius-small); object-fit:cover; }
.gallery-photo-0 { grid-row:1/3; }
.gallery-open { position:absolute; bottom:20px; right:20px; background:var(--paper); color:var(--ink); }
.gallery-open:hover { background:var(--wash); }
.property-body { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:56px; padding-top:40px; }
.property-body h2 { margin:32px 0 24px; }
.property-specifications { display:flex; gap:24px 40px; flex-wrap:wrap; margin:0 0 36px; padding:28px; border-radius:16px; background:var(--wash); }
.property-specifications dt { font-size:14px; }
.property-specifications dd { font-size:24px; margin:5px 0 0; }
.property-contact { display:flex; flex-direction:column; gap:16px; align-self:start; position:sticky; top:24px; padding:28px; border-radius:16px; background:var(--wash); }
.property-contact h2 { margin:0 0 12px; font-size:26px; }
.property-contact .button { gap:8px; }
/* Group the secondary contact links closely on desktop, with aligned icons. */
.property-contact-links { display:flex; flex-direction:column; gap:2px; }
.property-contact-links a { display:flex; align-items:center; gap:10px; min-height:36px; padding:4px 0; }
.amenity-list { display:grid; grid-template-columns:1fr 1fr; padding-left:20px; gap:10px 30px; }
.property-enquiry { margin-top:56px; }
.gallery-dialog { width:min(1200px,96vw); max-height:94svh; padding:24px; border:0; border-radius:16px; color:var(--paper); background:var(--deep); }
.gallery-dialog::backdrop { background:#071f2ee8; }
.gallery-dialog figure img { max-height:70svh; width:auto; max-width:100%; margin:auto; border-radius:var(--radius-small); object-fit:contain; }
.gallery-dialog figcaption { margin:12px 0; text-align:center; }
.gallery-dialog button { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:10px 16px; border:0; border-radius:var(--radius-small); background:var(--paper); color:var(--ink); font-size:15px; }
.gallery-dialog .gallery-close { display:flex; margin:0 0 16px auto; }
.gallery-controls { display:flex; justify-content:space-between; gap:16px; }
.news-list>article { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding-bottom:48px; }
.news-list h2 { margin:10px 0 18px; }
.news-list article img { aspect-ratio:4/3; object-fit:cover; }
.news-list article p { margin-bottom:20px; }
.empty-results { padding-block:68px; }
.empty-results p { margin:24px 0; }

/* Existing motion enhances visible content and respects reduced-motion settings. */
@media (prefers-reduced-motion:no-preference) {
    .reveal { animation:arrive .5s both; }
    @keyframes arrive { from { opacity:.2; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
}
@media (max-width:1000px) {
    .site-header { gap:16px; }
    .site-header nav { gap:16px; }
    .compact-search { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .compact-search .button { grid-column:1/-1; }
    .property-grid { gap:32px 20px; }
    .property-heading>div { grid-template-columns:1fr; gap:20px; }
    .standard-page,.contact-page,.property-body { gap:32px; }
    .home-agency { gap:32px; }
    .footer-columns { gap:32px; }
}
@media (max-width:760px) {
    .section-wrap { width:calc(100% - 32px); }
    .site-header { width:calc(100% - 32px); flex-wrap:wrap; min-height:60px; margin-top:12px; padding:6px 14px; gap:12px; }
    .brand { flex-basis:104px; }
    .brand img { width:104px; }
    .header-contact { display:none; }
    .site-header .mobile-contact { display:block; }
    .menu-toggle { margin-left:auto; }
    .site-header nav { order:3; width:100%; flex-direction:column; align-items:stretch; gap:0; padding:16px; font-size:15px; }
    /* JavaScript availability is known in the head, so the menu never pushes the page down while loading. */
    .has-js .site-header nav { position:absolute; top:calc(100% + 8px); left:0; right:0; width:auto; border-radius:12px; background:var(--paper); box-shadow:0 12px 30px #172d3b20; }
    .has-js .site-header nav.menu-collapsed { display:none; }
    .site-header nav>a,.nav-services summary { padding:10px 8px; }
    .nav-services>div { position:static; min-width:0; padding:0 12px 8px; box-shadow:none; background:var(--wash); }
    .nav-services a { padding:10px 8px; }
    h1 { font-size:32px; }
    h2 { font-size:26px; }
    .hero-heading { padding-block:30px 24px; }
    .hero-heading h1 { font-size:clamp(20px,6.1vw,32px); }
    .hero-photo { height:220px; }
    .hero-photo img { object-position:left 65%; }
    .property-search { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:18px; }
    .compact-search { margin-top:18px; }
    .property-search>.button { grid-column:1/-1; }
    .home-properties,.home-professional,.references { padding-top:40px; }
    .section-heading { display:block; }
    .section-heading>a { margin-top:12px; }
    .property-grid { grid-template-columns:1fr; gap:34px; }
    .home-properties>.property-grid,.home-professional>.property-grid { margin-top:24px; }
    .property-price { padding-top:12px; }
    .home-agency { grid-template-columns:1fr; gap:24px; margin-top:40px; padding:24px; }
    .home-agency h2 { max-width:24ch; }
    .references>div { gap:24px; }
    .references img { width:85px; height:34px; }
    .site-footer { margin-top:56px; padding:40px 16px 110px; }
    .footer-columns { grid-template-columns:1fr; gap:32px; }
    .whatsapp-contact { right:16px; bottom:16px; }
    .page-heading { padding-block:30px 28px; }
    .standard-page,.contact-page { grid-template-columns:1fr; gap:32px; }
    .about-intro,.about-section { grid-template-columns:1fr; gap:24px; }
    .about-intro { padding-bottom:28px; }
    .about-intro figure { height:210px; }
    .about-section { padding:32px 8px; }
    .about-section:first-of-type { padding:24px; }
    .results-heading { font-size:14px; }
    .property-heading h1 { font-size:28px; }
    .property-main-price { font-size:22px; }
    .property-gallery { height:300px; display:block; }
    .gallery-photo-0 { display:block; height:100%; }
    .gallery-photo-1,.gallery-photo-2 { display:none; }
    .gallery-open { right:12px; bottom:12px; padding:10px 14px; }
    .property-body { grid-template-columns:1fr; padding-top:28px; }
    .property-contact { grid-row:1; position:static; display:grid; grid-template-columns:1fr 1fr; padding:22px; gap:14px; }
    .property-contact h2 { grid-column:1/-1; font-size:24px; }
    .property-contact .button { padding:10px; font-size:14px; }
    .property-contact-links { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .property-contact-links a { min-height:44px; }
    .property-specifications { padding:20px; gap:22px 30px; }
    .property-enquiry { margin-top:40px; }
    .news-list>article { grid-template-columns:1fr; gap:20px; }
    .gallery-dialog { padding:15px; }
    .gallery-dialog figure img { max-height:60svh; }
}
@media (max-width:360px) {
    .property-contact { grid-template-columns:1fr; }
    .property-contact-links { grid-template-columns:1fr; gap:4px; }
    .gallery-dialog button { padding:10px; font-size:14px; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation:none!important; transition:none!important; }
}
