/* Shared public-site refinements; keeps the existing components and theme controller. */
html[data-public-theme="light"]{--page:#faf9f6;--panel:#fff;--panel-soft:#f1efeb;--text:#202023;--secondary:#626166;--border:#dfddda;--accent-text:#ad001b;--cta:#bd001c}
html[data-public-theme="dark"]{--page:#141416;--panel:#202023;--panel-soft:#29292d;--text:#f5f4f1;--secondary:#b9b6bd;--border:#3d3b41;--accent-text:#ff9baa;--cta:#bd001c;--red:#bd001c;--red-dark:#990018}
html[data-public-theme] body{background:var(--page);color:var(--text)}
html[data-public-theme] .site-header{border-bottom:1px solid var(--border);background:var(--page);backdrop-filter:blur(16px)}
html[data-public-theme] .site-header.is-scrolled{background:var(--page);box-shadow:0 4px 20px #0000000a}
html[data-public-theme] .site-public.is-scrolling-down:not(.menu-open) .site-header.is-scrolled{transform:none}
.nav-shell{grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);gap:20px}
.brand{width:auto;gap:10px}.brand-wordmark{max-width:15rem}.brand-wordmark strong{font-size:.8rem}.brand-wordmark small{font-size:.54rem;letter-spacing:.06em}
.brand-symbol,.brand-logo{width:54px;height:54px}.brand-symbol{flex:0 0 54px;position:relative}
html[data-public-theme] .main-nav{background:transparent;box-shadow:none}
html[data-public-theme] .main-nav a{background:transparent;box-shadow:none;color:var(--text)}
html[data-public-theme] .main-nav a:hover,html[data-public-theme] .main-nav a[aria-current=page]{color:var(--accent-text)}
html[data-public-theme] .nav-cta,html[data-public-theme] .main-nav .nav-cta,html[data-public-theme] .btn-red{background:var(--cta);color:#fff;box-shadow:none}
html[data-public-theme] .nav-cta:hover,html[data-public-theme] .btn-red:hover{background:#9f0017;color:#fff}
.public-theme-picker button{min-height:40px;min-width:40px}.public-theme-picker{flex-shrink:0}
html[data-public-theme] .hero{min-height:auto;padding:clamp(48px,6vw,88px) 0 0;background:var(--page);color:var(--text)}
html[data-public-theme] .hero:before,html[data-public-theme] .hero:after,.hero .hero-glow{display:none}
.hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,6vw,80px);padding-bottom:clamp(40px,5vw,64px)}
.hero h1{max-width:11ch;font-size:clamp(2.6rem,5.1vw,4.6rem);line-height:1.08;letter-spacing:-.055em;font-weight:650}
html[data-public-theme] .hero-lead{max-width:48ch;margin-top:24px;color:var(--secondary);font-size:clamp(1rem,1.2vw,1.12rem);line-height:1.8}
html[data-public-theme] .hero-signature{color:var(--secondary);font-size:.8rem;margin-top:26px}
html[data-public-theme] .hero-signature>span{background:var(--accent-text)}
html[data-public-theme] .eyebrow,html[data-public-theme] .card-label,html[data-public-theme] .card-action{color:var(--accent-text)}
.hero-actions{gap:12px;margin-top:28px}.btn{min-height:48px;gap:12px;border-radius:10px;font-size:.9rem}.btn:before{display:none}
html[data-public-theme] .hero .btn-ghost,html[data-public-theme] .section-properties .btn-ghost{border-color:var(--border);background:transparent;color:var(--text)}
html[data-public-theme] .hero .btn-ghost:hover,html[data-public-theme] .section-properties .btn-ghost:hover{border-color:var(--text);background:var(--panel-soft);color:var(--text)}
.hero-property-preview{position:relative;display:block;min-width:0;overflow:hidden;border-radius:20px;background:#313035;box-shadow:0 20px 50px #17101515}
.hero-preview-photo{margin:0;aspect-ratio:1/1.08}.hero-preview-photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.hero-preview-caption{position:absolute;inset:auto 0 0;padding:72px 28px 26px;background:linear-gradient(transparent,#101013e8);color:#fff;display:grid;gap:5px}
.hero-preview-caption>span:first-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:#e9e6e6}.hero-preview-caption strong{font-size:1.35rem;letter-spacing:-.03em}.hero-preview-link{display:flex;justify-content:space-between;gap:16px;margin-top:10px;font-size:.84rem;font-weight:750}.hero-preview-link span{font-size:1.25rem}
.hero-assurance{display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--border);padding-block:21px;color:var(--secondary);font-size:.75rem;line-height:1.5;letter-spacing:.015em}
.section{padding-block:clamp(64px,7vw,96px)}
html[data-public-theme] .section-services,html[data-public-theme] .section-about,html[data-public-theme] .listing-section,html[data-public-theme] .detail-content-section,html[data-public-theme] .related-section{background:var(--page)}
html[data-public-theme] .section-services:before,html[data-public-theme] .section-services:after,html[data-public-theme] .section-about:before,html[data-public-theme] .section-about:after,html[data-public-theme] .listing-section:before,html[data-public-theme] .listing-section:after,html[data-public-theme] .detail-content-section:before,html[data-public-theme] .detail-content-section:after,html[data-public-theme] .related-section:before,html[data-public-theme] .related-section:after{display:none}
.section-heading{margin-bottom:36px}.section-heading h2,.about-copy h2{max-width:20ch;font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.15;letter-spacing:-.045em}.section-heading p:not(.eyebrow){margin-top:18px}
.section-services .section-heading.center{width:min(var(--max),calc(100% - clamp(32px,6vw,72px)));max-width:var(--max);margin-inline:auto;text-align:left}.section-services .section-heading.center .eyebrow{justify-content:flex-start}.section-services .section-heading.center p:not(.eyebrow){margin-inline:0}
.services-grid{gap:18px}.service-card{border-radius:16px;box-shadow:none}.service-card .card-body{padding:26px}.service-card .card-label{font-size:.67rem;letter-spacing:.1em}.service-card h3{font-size:1.16rem;line-height:1.3;min-height:2.6em}.service-card p:not(.card-label){font-size:.88rem;line-height:1.75}.service-card .card-action{padding-block:12px;min-height:44px}
html[data-public-theme] .service-card,html[data-public-theme] .property-card,html[data-public-theme] .process-card,html[data-public-theme] .filters-panel,html[data-public-theme] .contact-form{border-color:var(--border);background:var(--panel);color:var(--text);box-shadow:none}
html[data-public-theme] .section-properties{background:var(--panel-soft);color:var(--text)}
html[data-public-theme] .section-properties:before,html[data-public-theme] .section-properties:after{display:none}
html[data-public-theme] .section-heading.light p:not(.eyebrow){color:var(--secondary)}
.property-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.property-card{border-radius:18px;overflow:hidden}.property-card .property-image{aspect-ratio:16/10}.property-content h3{font-size:clamp(1.2rem,1.6vw,1.5rem);line-height:1.3;letter-spacing:-.03em}
html[data-public-theme] .property-content>p:not(.property-status):not(.property-location),html[data-public-theme] .property-location,html[data-public-theme] .property-facts,html[data-public-theme] .property-card-meta span{color:var(--secondary)}
html[data-public-theme] .property-status{background:var(--panel-soft);color:var(--accent-text)}
html[data-public-theme] .property-card-meta strong,html[data-public-theme] .property-content h3{color:var(--text)}
.section-action{margin-top:32px}.process-card{border-radius:18px}.about-copy>p:not(.eyebrow){max-width:56ch}.about-grid{gap:clamp(32px,6vw,80px)}
html[data-public-theme] .landing-contact{padding-top:0;background:var(--page)}
.contact-cta-panel{border:1px solid var(--border);border-radius:20px;padding:clamp(28px,4.5vw,56px);background:var(--panel);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:40px;box-shadow:inset 4px 0 var(--cta)}
.contact-cta-panel h2{font-size:clamp(1.8rem,3vw,2.8rem);max-width:18ch}.contact-cta-panel p:not(.eyebrow){max-width:54ch;margin-top:18px;color:var(--secondary)}
.contact-cta-actions{display:grid;gap:16px;justify-items:stretch;min-width:210px}.contact-cta-secondary{display:flex;gap:12px;min-height:44px;justify-content:center;align-items:center;font-weight:750;font-size:.85rem;color:var(--accent-text)}
html[data-public-theme] .footer{background:#171719;color:#f3f1ef;border-top:1px solid #353236}.footer:before,.footer:after{display:none}.footer h3 span{color:#ffa0ad}.footer-nav a:hover,.social-row a:hover{color:#ffa0ad}.footer-contact-item{overflow-wrap:anywhere}
html[data-public-theme] .floating-whatsapp{background:var(--cta);color:#fff;box-shadow:0 6px 24px #0003}.floating-whatsapp{right:20px;bottom:max(20px,env(safe-area-inset-bottom));width:52px;height:52px}.back-top{right:23px;bottom:84px}
html[data-public-theme] .detail-contact-card{border-color:var(--border);background:var(--panel);color:var(--text);box-shadow:none}
html[data-public-theme] .detail-contact-card>p,html[data-public-theme] .detail-contact-card .contact-form label{color:var(--secondary)}
html[data-public-theme] .detail-contact-card .contact-form{background:transparent;color:var(--text)}
html[data-public-theme] .contact-form input,html[data-public-theme] .contact-form select,html[data-public-theme] .contact-form textarea{border:1px solid var(--border);background:var(--page);color:var(--text);font-size:1rem}
html[data-public-theme] .contact-form option{background:var(--panel);color:var(--text)}
html[data-public-theme] .form-privacy,html[data-public-theme] .form-hint,html[data-public-theme] .optional-mark{color:var(--secondary)}
html[data-public-theme] .contact-form input:focus,html[data-public-theme] .contact-form select:focus,html[data-public-theme] .contact-form textarea:focus{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-text) 18%,transparent)}
html[data-public-theme] .btn-whatsapp{background:var(--cta);color:#fff}.property-detail h1{font-size:clamp(2rem,4vw,3.6rem)}
html[data-public-theme] .section-dark:not(.hero) .eyebrow{color:#ff9baa}
html[data-public-theme] .site-public :focus-visible{outline:3px solid var(--accent-text);outline-offset:4px}
@media(min-width:901px){html[data-public-theme] .main-nav a{border-radius:0}.brand-wordmark{display:block}.theme-option-label{display:inline}.main-nav a{padding-inline:10px}}
@media(max-width:1160px) and (min-width:901px){.nav-shell{grid-template-columns:auto 1fr auto;gap:12px}.brand-wordmark{max-width:10rem}.brand-wordmark strong{font-size:.65rem}.brand-wordmark small{display:none}.theme-option-label{display:none}.desktop-nav-cta{padding-inline:16px}.main-nav a{font-size:.8rem;padding-inline:8px}}
@media(max-width:900px){.nav-shell{display:flex;gap:12px}.brand-wordmark{display:block;max-width:12rem}.brand-wordmark strong{font-size:.73rem}.brand-symbol,.brand-logo{width:46px;height:46px}.brand-symbol{flex-basis:46px}.hero-grid{grid-template-columns:1fr 1fr;gap:28px}.hero h1{font-size:clamp(2.5rem,5.8vw,4rem)}.hero-actions{flex-wrap:wrap}.hero-actions .btn{width:auto}.hero-assurance{flex-wrap:wrap;justify-content:flex-start;column-gap:28px;row-gap:8px}.contact-cta-panel{grid-template-columns:1fr;gap:24px}.contact-cta-actions{justify-items:start}.contact-cta-actions .btn{width:auto}html[data-public-theme] .main-nav{background:var(--page);padding-top:110px}html[data-public-theme] .main-nav a{border-bottom-color:var(--border);color:var(--text)}html[data-public-theme] .main-nav .nav-cta{color:#fff}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.brand-wordmark{max-width:10rem}.brand-wordmark strong{font-size:.66rem}.brand-wordmark small{font-size:.47rem;letter-spacing:0}.brand{gap:6px}.nav-actions{gap:6px}.public-theme-picker{padding:2px}.public-theme-picker button{min-width:34px;min-height:40px;padding:6px}.hero-grid{grid-template-columns:1fr;gap:30px;padding-bottom:32px}.hero h1{max-width:13ch;font-size:clamp(2.55rem,10vw,3.8rem)}.hero-lead{margin-top:20px}.hero-property-preview{width:100%;max-width:520px}.hero-preview-photo{aspect-ratio:4/3}.hero-preview-caption{padding:60px 22px 22px}.hero-signature{font-size:.74rem}.hero-assurance{display:grid;gap:8px;padding-block:18px}.hero-assurance span:before{content:'·';color:var(--accent-text);margin-right:9px}.hero-actions .btn{flex:1 1 160px}.section{padding-block:56px}.services-grid,.property-grid-featured{grid-template-columns:1fr;gap:18px}.service-card h3{min-height:auto}.service-card .card-body{padding:24px}.section-heading{margin-bottom:28px}.section-services .section-heading.center{width:calc(100% - 30px)}.section-heading h2,.about-copy h2{font-size:2rem}.contact-cta-panel{padding:28px 24px}.contact-cta-actions,.contact-cta-actions .btn{width:100%}.contact-cta-actions{justify-items:stretch}.form-row.split{grid-template-columns:1fr}.footer-grid{gap:30px}.footer-bottom{padding-bottom:64px}.property-detail h1{font-size:2rem}.hero-preview-caption strong{font-size:1.2rem}}
@media(max-width:390px){.brand-wordmark{max-width:8.4rem}.brand-wordmark strong{font-size:.57rem}.brand-wordmark small{font-size:.43rem}.brand-symbol,.brand-logo{width:38px;height:38px}.brand-symbol{flex-basis:38px}.hamburger{width:40px}.public-theme-picker button{min-width:30px;width:30px}.container,.nav-shell{width:calc(100% - 26px)}}
@media(hover:hover) and (pointer:fine){.hero-property-preview:hover img{transform:scale(1.025)}.service-card:hover,.property-card:hover{translate:0 -3px;border-color:var(--accent-text);box-shadow:0 12px 30px #0000000c}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-preview-photo img{transition:none}.service-card:hover,.property-card:hover{translate:none}}
/* All page surfaces follow the selected theme, including the footer and detail headers. */
html[data-public-theme] .section-dark,html[data-public-theme] .footer{background:var(--page);color:var(--text)}
html[data-public-theme] .section-dark:before,html[data-public-theme] .section-dark:after{display:none}
html[data-public-theme] .section-dark:not(.hero) .eyebrow{color:var(--accent-text)}
html[data-public-theme] .contact-copy h1,html[data-public-theme] .detail-price,html[data-public-theme] .footer h3{color:var(--text);text-shadow:none}
html[data-public-theme] .contact-copy>p:not(.eyebrow),html[data-public-theme] .breadcrumbs,html[data-public-theme] .breadcrumbs a,html[data-public-theme] .detail-code{color:var(--secondary)}
html[data-public-theme] .footer{border-color:var(--border)}
html[data-public-theme] .footer p,html[data-public-theme] .footer-contact-item small,html[data-public-theme] .footer-bottom{color:var(--secondary)}
html[data-public-theme] .footer .footer-brand-name,html[data-public-theme] .footer .footer-note,html[data-public-theme] .footer .footer-location{color:var(--text)!important}
html[data-public-theme] .footer h3 span,html[data-public-theme] .footer-nav a:hover,html[data-public-theme] .social-row a:hover{color:var(--accent-text)}
html[data-public-theme] .footer-contact-item>span:first-child{background:var(--panel-soft);color:var(--text)}
html[data-public-theme] .social-row a{border-color:var(--border);background:var(--panel)}
html[data-public-theme] .footer-bottom{border-color:var(--border)}
html[data-public-theme="light"] .contact-form ::placeholder{color:#6b6870}
html[data-public-theme="dark"] .contact-form ::placeholder{color:#aaa6b0}
html[data-public-theme] .contact-grid .contact-copy .btn-ghost{border-color:var(--border);color:var(--text)}
html[data-public-theme] .hero-copy h1,html[data-public-theme] .listing-hero h1{color:var(--text);text-shadow:none}
html[data-public-theme] .listing-hero p:last-child{color:var(--secondary)}
html[data-public-theme="light"] .detail-contact-card .field-error{color:#a80019}
/* Explicit link colors prevent legacy white footer text on light surfaces. */
html[data-public-theme] .footer a,html[data-public-theme] .footer-contact-item strong{color:var(--text)}
html[data-public-theme] .footer a:hover,html[data-public-theme] .footer a:focus-visible{color:var(--accent-text)}
html[data-public-theme] .site-header,html[data-public-theme] body,html[data-public-theme] .section{transition:none}
html[data-public-theme] .contact-copy a,html[data-public-theme] .contact-copy a strong{color:var(--text)}
html[data-public-theme] .contact-copy a small{color:var(--secondary)}
html[data-public-theme] .contact-copy .icon-circle{background:var(--panel-soft);color:var(--text)}
/* Content must remain readable without waiting for scroll observers or animations. */
html[data-public-theme] .scroll-motion-item{opacity:1;translate:none;scale:1;transition:none}
html[data-public-theme] .skip-link{background:var(--panel);color:var(--text)}
html[data-public-theme] .form-kicker,html[data-public-theme] .required-mark,html[data-public-theme] .card-action span,html[data-public-theme] .text-link span{color:var(--accent-text)}
/* Theme changes are atomic: separate color transitions briefly erase labels. */
html[data-public-theme] *,html[data-public-theme] *::before,html[data-public-theme] *::after{transition:none}
html[data-public-theme] .detail-specs small,html[data-public-theme] .detail-specs span{color:var(--secondary)}

/* Optional panel backgrounds stay subtle enough to preserve theme contrast. */
html[data-public-theme] .hero::before,html[data-public-theme] .section-services::before,html[data-public-theme] .section-about::before,html[data-public-theme] .listing-section::before,html[data-public-theme] .detail-content-section::before,html[data-public-theme] .related-section::before{display:block;content:"";position:absolute;inset:0;z-index:0;background-image:var(--brand-bg-light);background-size:cover;background-position:center;opacity:.045;filter:grayscale(.5);transform:none;pointer-events:none}
html[data-public-theme="dark"] .hero::before,html[data-public-theme="dark"] .section-services::before,html[data-public-theme="dark"] .section-about::before,html[data-public-theme="dark"] .listing-section::before,html[data-public-theme="dark"] .detail-content-section::before,html[data-public-theme="dark"] .related-section::before{background-image:var(--brand-bg-dark);opacity:.035}
html[data-public-theme] .footer-hours,html[data-public-theme] .contact-hours{color:var(--secondary);line-height:1.7;margin-top:18px}
html[data-public-theme] .footer-hours strong,html[data-public-theme] .contact-hours strong{color:var(--text)}
html[data-public-theme] .property-detail h1{color:var(--text);text-shadow:none}
html[data-public-theme] .detail-specs dt,html[data-public-theme] .results-kicker{color:var(--secondary)}
html[data-public-theme] .gallery-count-badge{background:var(--panel);color:var(--text);border:1px solid var(--border)}
html[data-public-theme] .process-card article>span{background:var(--cta);color:#fff;box-shadow:none}
