/* V30 — responsividade global: iOS, iPadOS, Android, tablets, notebooks e desktops */
:root{--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:96px}
body{width:100%;max-width:100%;overflow-x:hidden;min-height:100svh;min-height:100dvh;-webkit-font-smoothing:antialiased}
*,*:before,*:after{min-width:0}
img,video,canvas,svg,iframe{max-width:100%;height:auto}
iframe{border:0}
button,a,input,select,textarea{touch-action:manipulation}
button,a,[role="button"]{-webkit-tap-highlight-color:transparent}
input,select,textarea{max-width:100%;font-size:16px}
input[type="checkbox"],input[type="radio"]{font-size:initial}
textarea{min-height:110px}
pre,code{max-width:100%;overflow-wrap:anywhere;white-space:pre-wrap}
.container{padding-left:max(0px,var(--safe-left));padding-right:max(0px,var(--safe-right))}
.header,.public-header,.property-header{padding-top:var(--safe-top)}
.footer,.property-footer-site{padding-bottom:var(--safe-bottom)}
.skip-link:focus{z-index:99999}

/* Conteúdo e tipografia fluida */
h1{overflow-wrap:anywhere}
h2,h3,p,a,span,strong,small,label,td,th{overflow-wrap:break-word}
.page-hero h1,.hero h1,.property-intro h1,.announce-showcase-copy h1{font-size:clamp(2rem,7vw,4.9rem)}
.section-heading h2,.content-card h2{font-size:clamp(1.65rem,4vw,2.7rem)}

/* Navegação pública */
.header-inner{width:100%;gap:14px}
.brand{min-width:0}.brand img{flex:0 0 auto}.brand-name{min-width:0}
.nav a{white-space:nowrap}
.menu-toggle{flex:0 0 auto;min-width:44px;min-height:44px}
.header-actions{min-width:0;flex:0 0 auto}
@media(max-width:1100px){
  .public-header .nav.open,.property-header .nav.open,.header .nav.open{max-height:calc(100dvh - 100px - var(--safe-top));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}
@media(max-width:700px){
  .header-inner{padding-left:14px;padding-right:14px}
  .brand-name{display:none!important}
  .favorites-link{min-width:44px;min-height:44px;display:grid;place-items:center}
  .header-actions{gap:5px}
  .public-header .nav.open,.property-header .nav.open,.header .nav.open{left:10px;right:10px}
}

/* Grids, cards, formulários e toolbars */
.property-grid,.service-grid,.testimonial-grid,.info-cards,.office-grid,.contact-options,.announce-benefits-grid,.announce-process-grid{align-items:stretch}
.property-card,.panel-card,.form-card,.content-card,.contact-card{max-width:100%}
.property-card img,.property-image img{width:100%;object-fit:cover}
.form-row,.form-grid,.toolbar,.catalog-filters,.catalog-search,.home-search-grid,.advanced-filters{max-width:100%}
button,.primary-button,.secondary-button,.primary-btn,.secondary-btn,.danger-btn{min-height:44px}
select{background-position:right 12px center}
@media(max-width:760px){
  .section,.page-section{padding-top:56px;padding-bottom:56px}
  .modern-form,.form-card,.panel-card{padding:18px}
  .primary-button,.secondary-button,.primary-btn,.secondary-btn{justify-content:center;text-align:center}
  .catalog-filters>*{width:100%}
  .catalog-search input,.catalog-search button{width:100%}
  .announce-photo-preview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:390px){
  .container{width:min(100% - 20px,1180px)}
  .modern-form,.form-card,.panel-card,.content-card{padding-left:14px;padding-right:14px}
  .stats-grid{grid-template-columns:1fr!important}
}

/* Página do imóvel e galerias */
.gallery-wrap{max-width:100%;touch-action:pan-y}
.gallery-wrap button{min-width:0;min-height:0}
.gallery-wrap img{-webkit-user-drag:none;user-select:none}
.quick-facts{overflow:hidden}
.property-content>*{min-width:0}
.lightbox{padding:calc(12px + var(--safe-top)) calc(10px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(10px + var(--safe-left))}
.lightbox img{max-width:calc(100vw - 80px);max-height:calc(100dvh - 100px)}
.lightbox button{min-width:44px;min-height:44px}
.mobile-contact{padding-bottom:calc(9px + var(--safe-bottom));padding-left:calc(9px + var(--safe-left));padding-right:calc(9px + var(--safe-right))}
@media(max-width:720px){
  body:has(.mobile-contact){padding-bottom:calc(72px + var(--safe-bottom))}
  .property-intro{gap:18px}
  .property-address{font-size:16px}
  .price-block{min-width:0}
  .price-block strong{font-size:clamp(1.7rem,8vw,2.2rem)}
  .gallery-wrap{height:clamp(300px,92vw,430px);border-radius:18px;gap:5px}
  .quick-facts>div{padding:16px 8px}
  .property-content{gap:24px;padding-bottom:60px}
  .content-card{border-radius:18px}
  .map-placeholder{height:auto;min-height:280px;padding:16px}
  .contact-card{padding:24px 18px;border-radius:20px}
  .property-cta{padding:50px 0}
  .property-cta h2{font-size:clamp(1.8rem,8vw,2.5rem)}
}
@media(max-width:420px){
  .gallery-wrap{grid-template-columns:1fr;grid-template-rows:1fr;height:300px}
  .gallery-main{grid-column:1;grid-row:1}
  .gallery-tile{display:none!important}
  .quick-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .highlight-row span{width:100%;text-align:center}
  .lead-mode-tabs{grid-template-columns:1fr}
}

/* Tabelas e painel administrativo */
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;border-radius:12px}
.table-wrap table{min-width:760px}
.table-wrap:after{content:"Deslize para o lado para ver todas as colunas";display:none;color:#667085;font-size:11px;padding:8px 2px 0}
.admin-main{max-width:100%}
.admin-topbar>*{min-width:0}
.admin-sidebar{padding-bottom:calc(24px + var(--safe-bottom));padding-top:calc(24px + var(--safe-top));overflow-y:auto;overscroll-behavior:contain}
.editor-grid,.editor-content{min-width:0}
.preview-dialog,[role="dialog"],dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}
@media(max-width:820px){
  .admin-main{padding-left:max(14px,var(--safe-left));padding-right:max(14px,var(--safe-right));padding-bottom:calc(45px + var(--safe-bottom))}
  .admin-topbar{position:sticky;top:0;z-index:20;background:rgba(244,247,251,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .admin-sidebar{width:min(300px,86vw);box-shadow:20px 0 60px rgba(0,0,0,.25)}
  .table-wrap:after{display:block;position:sticky;left:0}
  .editor-head{gap:14px}
  .panel-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .lead-detail-grid,.detail-grid{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  .admin-main{padding-left:10px;padding-right:10px}
  .admin-topbar h1{font-size:20px}
  .admin-topbar{gap:8px}
  .editor-actions{width:100%}
  .editor-actions>*{width:100%}
  .custom-feature{grid-template-columns:1fr}
  .photo-grid{grid-template-columns:1fr 1fr}
  .photo-card img{height:105px}
  .preview-dialog{width:calc(100vw - 12px);max-width:none;border-radius:14px}
  .preview-body,.preview-info{padding:20px 14px}
  .row-actions{flex-wrap:wrap}
  .icon-btn{min-height:40px}
}

/* Login, recuperação e páginas simples */
.login-shell,.auth-shell,.recovery-shell{min-height:100svh;min-height:100dvh;padding-top:calc(20px + var(--safe-top));padding-bottom:calc(20px + var(--safe-bottom))}
.login-card,.auth-card,.recovery-card{max-width:min(100%,520px)}
@media(max-width:600px){.login-card,.auth-card,.recovery-card{border-radius:18px;padding:22px 16px}.login-shell,.auth-shell,.recovery-shell{padding-left:12px;padding-right:12px}}

/* Rodapé */
.footer-grid>*{min-width:0}
.footer a,.footer span{overflow-wrap:anywhere}
@media(max-width:560px){
  .footer-grid,.expanded-footer{grid-template-columns:1fr!important}
  .footer-grid>div,.footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:auto!important}
  .footer-bottom{align-items:flex-start;text-align:left}
}

/* Orientação paisagem em telas baixas */
@media(max-height:520px) and (orientation:landscape){
  .public-header .nav.open,.property-header .nav.open,.header .nav.open{max-height:calc(100dvh - 70px)}
  .hero{padding-top:100px;min-height:auto}
  .gallery-wrap{height:330px}
  .lightbox img{max-height:calc(100dvh - 36px)}
}

/* Tablets */
@media(min-width:701px) and (max-width:1024px){
  .container{width:min(100% - 40px,1180px)}
  .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-wrap{height:500px}
  .property-content{grid-template-columns:minmax(0,1fr) 320px;gap:24px}
  .contact-card{padding:24px}
}
@media(min-width:768px) and (max-width:1024px) and (orientation:portrait){
  .property-content{grid-template-columns:1fr}
  .contact-card{position:static}
  .form-layout,.contact-layout,.content-grid{grid-template-columns:1fr!important}
}

/* Acessibilidade e preferência de movimento */
@media(hover:none){.property-card:hover{transform:none}.gallery-wrap button:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
