/* ==========================================================================
   Cloud Sales & Lettings — theme styles (v1.1, minimal)
   Palette: white, navy #102A43 and cloud blue #6CAED5.
   Type: Wix Madefor Display (headings) + Wix Madefor Text (body).
   Tokens live in theme.json; this file covers block style variations and
   the few details theme.json can't express.
   ========================================================================== */

:root {
	--csl-r-s: var(--wp--custom--radius--small, 6px);
	--csl-r-m: var(--wp--custom--radius--medium, 10px);
	--csl-r-l: var(--wp--custom--radius--large, 16px);
	--csl-ease: cubic-bezier(.2, .7, .2, 1);
	--csl-sky: var(--wp--preset--color--sky, #6CAED5);
	--csl-navy: var(--wp--preset--color--navy, #102A43);
	--csl-line: var(--wp--preset--color--line, #E3E9EF);
	--csl-muted: var(--wp--preset--color--muted, #5E6B78);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: "ss01" on; }
img { height: auto; }
::selection { background: var(--wp--preset--color--sky-soft); color: var(--csl-navy); }
.screen-reader-text { border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip-path: none; height: auto; width: auto; z-index: 100000; background: #fff; color: var(--csl-navy); padding: .75rem 1rem; left: 1rem; top: 1rem; }

/* Layout: no stray gaps between header / main / footer / full-width sections */
.wp-site-blocks > * + * { margin-block-start: 0; }
main.wp-block-group { margin-top: 0; }
.wp-block-post-content > *:first-child { margin-block-start: 0; }
.wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

/* ---------- Header ---------- */
.csl-site-header { position: sticky; top: 0; z-index: 50; background: #fff; transition: box-shadow .25s var(--csl-ease); }
.admin-bar .csl-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .csl-site-header { top: 0; position: relative; } }
.csl-site-header.is-scrolled { box-shadow: 0 1px 0 var(--csl-line), 0 8px 24px rgba(16, 42, 67, .05); }
.csl-site-header .wp-block-navigation a { text-decoration: none; }
.csl-site-header .wp-block-navigation-item__content { position: relative; }
.csl-site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 1.5px; background: var(--csl-sky);
	transform: scaleX(0); transform-origin: left; transition: transform .25s var(--csl-ease);
}
.csl-site-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.csl-site-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.csl-header-phone a { text-decoration: none; font-weight: 500; }
@media (max-width: 1080px) { .csl-header-phone { display: none !important; } }
@media (max-width: 599px) { .csl-header-cta { display: none !important; } }
.wp-block-navigation__submenu-container { border-radius: var(--csl-r-m); border: 1px solid var(--csl-line) !important; box-shadow: var(--wp--preset--shadow--lift); padding: .4rem !important; min-width: 220px !important; }
.wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem !important; border-radius: var(--csl-r-s); }
.wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--mist); }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1.1rem; font-size: 1.25rem; }

/* Logo */
.wp-block-site-logo img { max-height: 52px; width: auto; }
.csl-site-footer .wp-block-site-logo img { max-height: 46px; }
.wp-block-site-logo.is-style-white img { filter: brightness(0) invert(1); }
.csl-wordmark { display: inline-flex !important; flex-direction: column !important; align-items: flex-start; gap: .2rem; text-decoration: none !important; color: var(--csl-navy); line-height: 1; }
.csl-wordmark__name { font-family: var(--wp--preset--font-family--heading); font-size: 1.45rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.csl-wordmark__sub { font-size: .62rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--csl-sky); }
.csl-wordmark--white { color: #fff; }

/* ---------- Text styles ---------- */
.is-style-eyebrow {
	display: inline-flex; align-items: center; gap: .7rem;
	font-size: var(--wp--preset--font-size--x-small) !important; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
	color: var(--csl-navy);
}
.is-style-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--csl-sky); flex: none; }
.has-text-align-center.is-style-eyebrow { justify-content: center; display: flex; }
.has-navy-background-color .is-style-eyebrow, .has-ink-background-color .is-style-eyebrow,
.is-style-card-dark .is-style-eyebrow, .wp-block-cover.is-dark .is-style-eyebrow { color: rgba(255, 255, 255, .9); }
.is-style-lead { font-size: var(--wp--preset--font-size--large) !important; line-height: 1.6; color: var(--csl-muted); }
.has-navy-background-color .is-style-lead, .has-ink-background-color .is-style-lead,
.is-style-card-dark .is-style-lead, .wp-block-cover.is-dark .is-style-lead { color: rgba(255, 255, 255, .78); }
.csl-accent, h1 em, h2 em { font-style: normal; color: var(--csl-sky); }

/* ---------- Cards ---------- */
.wp-block-group.is-style-card {
	background: #fff; border: 1px solid var(--csl-line); border-radius: var(--csl-r-m);
	padding: clamp(1.4rem, 3vw, 2.2rem); height: 100%;
	transition: border-color .25s var(--csl-ease), box-shadow .25s var(--csl-ease);
}
.wp-block-group.is-style-card:hover { border-color: var(--csl-sky); }
.wp-block-group.is-style-card-dark { background: var(--csl-navy); color: #fff; border-radius: var(--csl-r-m); padding: clamp(1.4rem, 3vw, 2.2rem); height: 100%; }
.is-style-card-dark :where(h1, h2, h3, h4, h5, h6) { color: #fff; }
.wp-block-group.is-style-soft-panel { background: var(--wp--preset--color--mist); border-radius: var(--csl-r-l); padding: clamp(1.5rem, 4vw, 3rem); }
.has-navy-background-color .wp-block-group.is-style-card { background: rgba(255, 255, 255, .04); border-color: rgba(255, 255, 255, .12); color: #fff; }
.has-navy-background-color .wp-block-group.is-style-card:hover { border-color: var(--csl-sky); }
.has-navy-background-color .is-style-card :where(h1, h2, h3, h4) { color: #fff; }

/* Line icons (CSL Icon block) */
.csl-icon { display: inline-flex; color: var(--csl-sky); margin-bottom: .35rem !important; }
.csl-icon svg { width: 30px; height: 30px; stroke-width: 1.5; }

.csl-card-link { margin-top: auto !important; }
.csl-card-link a { text-decoration: none; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--small); color: var(--csl-navy); border-bottom: 1.5px solid var(--csl-sky); padding-bottom: 2px; }
.csl-card-link a:hover { color: var(--wp--preset--color--sky-deep); }
.has-navy-background-color .csl-card-link a, .is-style-card-dark .csl-card-link a, .wp-block-cover.is-dark .csl-card-link a { color: #fff; }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .2s var(--csl-ease), color .2s var(--csl-ease), border-color .2s var(--csl-ease); }
.wp-block-button.is-style-sky .wp-block-button__link { background: var(--csl-sky); color: var(--csl-navy); }
.wp-block-button.is-style-sky .wp-block-button__link:hover { background: #fff; color: var(--csl-navy); }
.wp-block-button.is-style-light .wp-block-button__link { background: #fff; color: var(--csl-navy); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: var(--wp--preset--color--sky-soft); }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .5); }
.wp-block-button.is-style-outline-light .wp-block-button__link:hover { border-color: #fff; background: rgba(255, 255, 255, .08); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--csl-navy); border: 1px solid var(--csl-navy); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--csl-navy); color: #fff; }
:where(body:not(.has-navy-background-color)) .csl-site-header .wp-block-button.is-style-sky .wp-block-button__link:hover { background: var(--csl-navy); color: #fff; }
.wp-block-group:not(.has-navy-background-color):not(.is-style-card-dark) > .wp-block-buttons .is-style-sky .wp-block-button__link:hover,
.wp-block-column > .wp-block-buttons .is-style-sky .wp-block-button__link:hover { background: var(--csl-navy); color: #fff; }

/* ---------- Lists ---------- */
ul.is-style-ticks { list-style: none; padding-left: 0; }
ul.is-style-ticks li { position: relative; padding-left: 1.8em; margin-bottom: .6em; }
ul.is-style-ticks li::before {
	content: ""; position: absolute; left: 0; top: .42em; width: 1em; height: 1em;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236CAED5' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.csl-plain-list { list-style: none; padding-left: 0; }
.csl-plain-list li { margin: 0; }

/* ---------- Numbered steps ---------- */
.wp-block-columns.is-style-steps { counter-reset: csl-step; }
.wp-block-columns.is-style-steps > .wp-block-column { position: relative; padding-top: 1.4rem; border-top: 1px solid var(--csl-line); }
.wp-block-columns.is-style-steps > .wp-block-column::before {
	counter-increment: csl-step; content: counter(csl-step, decimal-leading-zero);
	display: block; margin-bottom: 1.2rem; font-family: var(--wp--preset--font-family--heading); font-size: .85rem; font-weight: 600; letter-spacing: .12em; color: var(--csl-sky);
}
.has-navy-background-color .wp-block-columns.is-style-steps > .wp-block-column { border-top-color: rgba(255, 255, 255, .18); }

/* ---------- Heroes ---------- */
.csl-hero { position: relative; overflow: hidden; }
.csl-hero h1 { max-width: 14ch; }
.csl-hero .csl-rating { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); color: #fff; box-shadow: none; }
.csl-page-hero { border-bottom: 1px solid var(--csl-line); }
.csl-page-hero h1 { max-width: 18ch; }
.csl-overlap { margin-top: calc(-1 * clamp(2.5rem, 6vw, 4rem)) !important; position: relative; z-index: 3; }

/* ---------- Stats ---------- */
.csl-stat strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--xx-large); font-weight: 500; letter-spacing: -.03em; line-height: 1.05; color: var(--csl-navy); margin-bottom: .4rem; }
.csl-stat { margin: 0; }

/* ---------- Property cards ---------- */
.csl-property-grid .wp-block-post { display: flex; }
.csl-property-card { display: flex; flex-direction: column; width: 100%; position: relative; background: #fff; }
.csl-card-media { position: relative; overflow: hidden; border-radius: var(--csl-r-m); }
.csl-card-media .csl-block { position: static; margin: 0; }
.csl-property-card .wp-block-post-featured-image { margin: 0; }
.csl-property-card .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: 0; transition: transform .7s var(--csl-ease); }
.csl-property-card:hover .wp-block-post-featured-image img { transform: scale(1.035); }
.csl-property-card .csl-card-body { padding: 1.1rem 0 0; flex: 1; display: flex; flex-direction: column; gap: .3rem; }
.csl-property-card .wp-block-post-title { font-family: var(--wp--preset--font-family--heading) !important; font-weight: 500 !important; letter-spacing: -.01em; }
.csl-property-card .wp-block-post-title a { text-decoration: none; }
.csl-property-card .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.csl-price { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--large); font-weight: 600; letter-spacing: -.01em; color: var(--csl-navy); line-height: 1.2; margin: 0; }
.csl-price .csl-qualifier { font-family: var(--wp--preset--font-family--body); font-size: .72em; font-weight: 500; color: var(--csl-muted); }
.csl-facts { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; color: var(--csl-muted); font-size: var(--wp--preset--font-size--small); margin-top: auto !important; padding-top: .7rem; border-top: 1px solid var(--csl-line); }
.csl-facts .csl-fact { display: inline-flex; align-items: center; gap: .35rem; }
.csl-facts svg { width: 17px; height: 17px; color: var(--csl-sky); }
.csl-badge { display: inline-block; font-size: .7rem !important; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: .4em .8em; border-radius: var(--csl-r-s); background: #fff; color: var(--csl-navy); line-height: 1.2; }
.csl-badge:empty { display: none !important; }
.csl-badge--overlay { position: absolute; top: .8rem; left: .8rem; z-index: 2; margin: 0 !important; }
.csl-badge[data-status="new"], .csl-badge[data-status="reduced"] { background: var(--csl-sky); }
.csl-badge[data-status="let"], .csl-badge[data-status="sold"] { background: var(--csl-navy); color: #fff; }
.csl-placeholder img { background: var(--wp--preset--color--mist); }

/* ---------- Single property ---------- */
.csl-keyfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 0; border-top: 1px solid var(--csl-line); border-bottom: 1px solid var(--csl-line); margin: 0; }
.csl-keyfacts > div { padding: 1rem 1rem 1rem 0; }
.csl-keyfacts dt { font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .12em; color: var(--csl-muted); font-weight: 600; }
.csl-keyfacts dd { margin: .25rem 0 0; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--large); color: var(--csl-navy); }
.csl-sticky-aside { position: sticky; top: 100px; }
.csl-property-gallery img { border-radius: var(--csl-r-m); }
.csl-feature-list { columns: 2 220px; column-gap: 2rem; }

/* ---------- Accordion ---------- */
.wp-block-details { border-bottom: 1px solid var(--csl-line); }
.wp-block-details summary { cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; font-family: var(--wp--preset--font-family--heading); font-weight: 500; font-size: var(--wp--preset--font-size--large); letter-spacing: -.01em; color: var(--csl-navy); }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::before, .wp-block-details summary::after { content: ""; position: absolute; right: .35rem; top: 50%; width: 14px; height: 1.5px; background: var(--csl-sky); transition: transform .25s var(--csl-ease); }
.wp-block-details summary::after { transform: rotate(90deg); }
.wp-block-details[open] summary::after { transform: rotate(0deg); }
.wp-block-details summary:hover { color: var(--wp--preset--color--sky-deep); }
.wp-block-details > :not(summary) { color: var(--csl-muted); }
.wp-block-details > summary + * { margin-top: .9rem; }

.csl-jumpnav { position: sticky; top: 100px; }
.csl-jumpnav a { display: block; padding: .5rem 0; text-decoration: none; color: var(--csl-muted); font-weight: 500; border-left: 2px solid transparent; padding-left: .9rem; }
.csl-jumpnav a:hover { color: var(--csl-navy); border-left-color: var(--csl-sky); }
@media (max-width: 781px) { .csl-jumpnav { position: static; } }

/* ---------- Posts ---------- */
.csl-post-card { border: 0 !important; padding: 0 !important; background: transparent !important; }
.csl-post-card .wp-block-post-featured-image img { aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--csl-r-m) !important; }
.csl-post-card > .wp-block-group { padding-left: 0 !important; padding-right: 0 !important; }
.csl-post-card .wp-block-post-title a { text-decoration: none; }
.csl-post-card .wp-block-post-title a:hover { color: var(--wp--preset--color--sky-deep); }
.csl-post-card .wp-block-post-excerpt { color: var(--csl-muted); }

/* ---------- Areas ---------- */
.csl-area .wp-block-cover { border-radius: var(--csl-r-l); overflow: hidden; min-height: 340px; height: 100%; }

/* ---------- Tables ---------- */
.wp-block-table table { border-collapse: collapse; }
.wp-block-table th { text-align: left; font-weight: 600; color: var(--csl-navy); border: 0; border-bottom: 1.5px solid var(--csl-navy); padding: .8rem 1rem .8rem 0; }
.wp-block-table td { border: 0; border-bottom: 1px solid var(--csl-line); padding: .85rem 1rem .85rem 0; }
.wp-block-table.is-style-stripes { border: 0; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: transparent; }

/* ---------- Footer ---------- */
.csl-site-footer a { color: inherit; text-decoration: none; }
.csl-site-footer a:hover { color: var(--csl-sky); }
.csl-site-footer .csl-contact { color: rgba(255, 255, 255, .8); }
.csl-site-footer .csl-contact svg { color: var(--csl-sky); }
.csl-footer-legal { opacity: .65; }
.csl-footer-links li { opacity: .85; }

/* ---------- Team avatar ---------- */
.csl-avatar { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--sky-soft); color: var(--csl-navy) !important; font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem !important; font-weight: 500; margin-bottom: .6rem !important; }

/* ---------- Legal ---------- */
.csl-legal-body h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }
.csl-legal-body h3 { font-size: var(--wp--preset--font-size--large); }
.csl-note { border-left: 2px solid var(--csl-sky); background: var(--wp--preset--color--mist); padding: 1rem 1.25rem; border-radius: 0 var(--csl-r-s) var(--csl-r-s) 0; }

/* ---------- Reveal on scroll (progressive; visible without JS) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js .csl-reveal { opacity: 0; transform: translateY(16px); transition: opacity .8s var(--csl-ease), transform .8s var(--csl-ease); }
	.js .csl-reveal.is-visible { opacity: 1; transform: none; }
}
.has-navy-background-color a:not(.wp-block-button__link) { color: inherit; }
.wp-block-site-logo .csl-wordmark, .wp-block-site-logo .csl-wordmark span { line-height: 1.1 !important; }
