/* IS22 — camada responsiva mobile
   Mantém a anatomia desktop intacta e reorganiza somente telas menores. */

html,body{max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}

@media (max-width: 760px){
  :root{--mobile-gutter:16px}
  html{scroll-padding-top:72px}
  body{font-size:15px}
  .container{width:calc(100% - (var(--mobile-gutter) * 2));max-width:none}
  .btn{min-height:44px}
  input,select,textarea{font-size:16px!important}

  /* Header público */
  .topbar{height:64px}
  .nav-wrap{gap:10px;position:relative}
  .brand-full img{width:118px!important;height:32px!important}
  .mobile-menu{
    display:grid!important;place-items:center;
    width:42px;height:42px;padding:0;margin-left:auto;
    flex:0 0 42px;cursor:pointer
  }
  .topbar nav{
    display:none!important;
    position:fixed!important;
    left:12px!important;right:12px!important;top:72px!important;
    max-height:calc(100dvh - 88px);overflow:auto;
    margin:0!important;padding:10px!important;
    background:#fff;border:1px solid var(--line);border-radius:16px;
    box-shadow:0 18px 55px rgba(5,27,59,.18);
    z-index:90
  }
  .topbar nav.open{display:grid!important;gap:2px!important}
  .topbar nav a{
    display:flex;align-items:center;min-height:46px;
    padding:0 12px;border-radius:10px;font-size:14px!important
  }
  .topbar nav a:active{background:#f1f5f9}
  .nav-actions{gap:4px}
  .nav-actions .btn{display:none!important}
  .heart-btn{width:42px;height:42px;justify-content:center;border-radius:10px}

  /* Hero e busca */
  .hero{
    min-height:0!important;display:block!important;
    padding:0 0 22px!important;overflow:visible!important
  }
  .hero-bg,.hero-overlay{height:100%;min-height:100%}
  .hero-bg{object-position:center center}
  .hero-content{
    padding-top:54px!important;padding-bottom:6px!important;
    min-height:430px;display:flex;flex-direction:column;justify-content:center
  }
  .hero h1{
    font-size:clamp(35px,10vw,44px)!important;
    line-height:1.03!important;letter-spacing:-1.6px!important;
    margin:13px 0 15px!important
  }
  .hero p{font-size:14px!important;line-height:1.6!important;max-width:94%}
  .hero-emotions{flex-wrap:wrap;row-gap:8px}
  .search-shell{
    position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;
    transform:none!important;margin-top:18px!important;
    width:calc(100% - (var(--mobile-gutter) * 2))!important;
    overflow:visible!important;border-radius:16px!important;
    box-shadow:0 16px 42px rgba(4,24,52,.24)!important
  }
  .search-tabs{
    height:50px;overflow-x:auto!important;overflow-y:hidden;
    scrollbar-width:none;scroll-snap-type:x proximity
  }
  .search-tabs::-webkit-scrollbar{display:none}
  .search-tabs button{
    min-width:max-content;padding:0 17px!important;
    white-space:nowrap;scroll-snap-align:start
  }
  .search-grid{grid-template-columns:1fr!important;gap:9px!important;padding:12px!important}
  .search-grid label{min-height:57px}
  .search-btn{grid-column:auto!important;width:100%;min-height:50px}
  .advanced-search{
    grid-template-columns:1fr!important;gap:9px!important;
    padding:0 12px 12px!important
  }
  .advanced-search.collapsed{display:grid!important;grid-template-columns:1fr!important}
  .advanced-search.collapsed>label{display:none!important}
  .more-filter-toggle{width:100%;height:46px}
  
  /* Faixas e seções */
  .emotion-grid{grid-template-columns:1fr!important}
  .emotion-item{min-width:0}
  .section{padding:54px 0!important}
  .section-heading{gap:14px!important;margin-bottom:22px!important}
  .section-heading h2,.premium-copy h2,.about h2,.cta h2,.exclusive h2{
    font-size:30px!important;letter-spacing:-.9px!important;line-height:1.08
  }
  .heading-actions{width:100%;justify-content:space-between}
  .property-grid{grid-template-columns:1fr!important;gap:16px!important}
  .property-card{border-radius:16px}
  .property-media{height:235px!important}
  .property-info{padding:16px!important}
  .property-info h3{font-size:17px!important}
  .property-location{font-size:12px!important}
  .property-specs{font-size:11px!important;flex-wrap:wrap}
  .property-price{font-size:20px!important}
  .property-card-actions{grid-template-columns:1fr!important}
  .property-view,.compare-btn{min-height:44px}
  
  .story-panel{min-height:520px}
  .story-copy{padding-top:72px;padding-bottom:72px}
  .story-copy h2{font-size:32px!important;line-height:1.08}
  .story-copy p{max-width:100%}
  
  .exclusive{padding:0 0 52px!important}
  .exclusive-card{min-height:360px!important;align-items:flex-end!important}
  .exclusive-copy{width:100%!important;padding:30px 22px!important}
  .exclusive-art{width:100%!important;opacity:.28!important;clip-path:none!important}
  
  .premium-grid,.about-grid,.owner-grid{grid-template-columns:1fr!important;gap:28px!important}
  .premium-photo{height:310px!important}
  .mini-stats{grid-template-columns:1fr!important}
  .about-points{grid-template-columns:1fr!important}
  .owner-form-grid{grid-template-columns:1fr!important}
  .owner-form{padding:22px!important}
  .owner-benefits{display:grid!important;gap:8px!important}
  
  .cta{padding:48px 0!important}
  .cta-inner{display:grid!important;grid-template-columns:1fr!important;gap:24px!important}
  .cta-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .cta-actions .btn{width:100%}
  
  .footer-grid{grid-template-columns:1fr!important;gap:24px!important}
  .footer-grid>div{min-width:0}
  
  /* Experiência / WhatsApp */
  .dream-widget{
    max-width:calc(100vw - 24px)!important;
    z-index:80!important
  }
  .dream-widget.compact .dream-scene{
    width:min(268px,calc(100vw - 24px))!important;
    height:70px!important
  }
  .dream-widget.compact .dream-wa-copy b{font-size:11px!important}
  .dream-widget.compact .dream-wa-copy small{font-size:8px!important}
  
  /* Comparação */
  .compare-bar{
    left:10px!important;right:10px!important;bottom:10px!important;
    width:auto!important;max-width:none!important;
    padding:10px!important;gap:8px!important;
    display:grid!important;grid-template-columns:1fr auto!important
  }
  .compare-bar .compare-chips{display:none!important}
  .compare-bar .btn{grid-column:1/-1;width:100%}
  .compare-clear{position:absolute;right:10px;top:10px}
  
  /* Modais / detalhes */
  .modal{padding:0!important;align-items:end!important}
  .modal-box{
    width:100%!important;max-width:none!important;
    max-height:94dvh!important;border-radius:20px 20px 0 0!important;
    padding:18px!important;padding-bottom:max(22px,env(safe-area-inset-bottom))!important
  }
  .modal-close{position:sticky!important;float:right;top:0!important;margin-bottom:-36px}
  .detail-main-photo,.detail-photo{height:280px!important;border-radius:13px!important}
  .detail-thumbs{
    display:flex!important;overflow-x:auto!important;gap:8px!important;
    padding-bottom:4px;scroll-snap-type:x proximity
  }
  .detail-thumbs button{flex:0 0 72px;scroll-snap-align:start}
  .detail-emotional h2,.detail-top h2,.detail-top h3{font-size:26px!important}
  .detail-top{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .detail-top .property-price{white-space:normal!important;font-size:22px!important}
  .detail-features{grid-template-columns:repeat(2,1fr)!important}
  .property-costs{grid-template-columns:1fr 1fr!important}
  .finance-box,.finance-controls{grid-template-columns:1fr!important}
  .detail-actions{display:grid!important;grid-template-columns:1fr!important}
  .detail-actions .btn{width:100%}
  .visit-form .form-grid{grid-template-columns:1fr!important}
  .compare-table{overflow-x:auto}
  .compare-row{min-width:650px}
  .toast{left:12px!important;right:12px!important;bottom:14px!important;text-align:center}
}

@media (max-width: 520px){
  .hero-content{min-height:390px}
  .hero h1{font-size:36px!important}
  .hero-emotions i{display:none}
  .hero-emotions{gap:7px 12px}
  .hero-emotions span{font-size:9px!important}
  .property-media{height:220px!important}
  .premium-photo{height:270px!important}
  .detail-main-photo,.detail-photo{height:235px!important}
  .property-costs{grid-template-columns:1fr!important}
}

/* ===== Painel administrativo mobile ===== */
@media (max-width: 860px){
  .admin-body{overflow-x:hidden}
  .admin-main{margin-left:0!important}
  .sidebar{
    position:fixed!important;left:0!important;top:0!important;bottom:0!important;
    width:min(300px,86vw)!important;height:100dvh!important;
    padding:22px 16px!important;display:flex!important;flex-direction:column!important;
    transform:translateX(-104%);transition:transform .24s ease;
    z-index:120!important;overflow-y:auto
  }
  .sidebar.mobile-open{transform:translateX(0)}
  .sidebar-brand{display:flex!important}
  .sidebar-nav{
    display:grid!important;gap:4px!important;margin:28px 0 18px!important;
    width:100%!important
  }
  .sidebar-nav button{
    display:flex!important;width:100%!important;min-height:44px!important;
    padding:11px 12px!important
  }
  .sidebar-nav button span{display:inline!important}
  .sidebar-user{display:flex!important;margin-top:auto!important}
  .sidebar-exit{display:block!important}
  .sidebar-logout{display:block!important}
  .admin-mobile-backdrop{
    position:fixed;inset:0;background:rgba(2,15,35,.5);
    z-index:110;opacity:0;pointer-events:none;transition:.2s
  }
  .admin-mobile-backdrop.show{opacity:1;pointer-events:auto}
  .admin-menu-toggle{
    display:grid!important;place-items:center;flex:0 0 42px;
    width:42px;height:42px;border:0;border-radius:10px;
    background:#eef3f8;color:var(--navy);font-size:22px;cursor:pointer
  }
  .admin-header{
    height:64px!important;padding:0 12px!important;gap:9px!important;
    position:sticky!important;top:0!important
  }
  .admin-search{width:auto!important;flex:1!important;min-width:0}
  .admin-header-right{gap:7px!important}
  .notification{display:none}
  .admin-panel{padding:18px 12px!important}
  .admin-title{align-items:flex-start!important;flex-direction:column!important;gap:12px!important}
  .admin-title h1{font-size:25px!important}
  .admin-title p{font-size:12px!important;line-height:1.5}
  .admin-title>button,.admin-title>select{width:100%}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .metric{padding:14px!important}
  .metric strong{font-size:22px!important}
  .admin-card{padding:14px!important;border-radius:14px!important}
  .admin-card-head{align-items:flex-start!important;gap:10px!important;flex-direction:column!important}
  .admin-card-head .btn{width:100%}
  .admin-tabs{overflow-x:auto!important;white-space:nowrap!important;scrollbar-width:none}
  .admin-tabs::-webkit-scrollbar{display:none}
  .admin-tabs button{flex:0 0 auto;min-height:42px}
  .table-wrap{
    margin-left:-14px;margin-right:-14px;padding:0 14px;
    overflow-x:auto;-webkit-overflow-scrolling:touch
  }
  table{min-width:760px}
  .admin-property-cards{grid-template-columns:1fr!important}
  .admin-property-card img{height:190px!important}
  .row-actions{flex-wrap:wrap}
  .form-grid,.importer-layout,.importer-fields,.crm-toolbar,.site-editor-layout{
    grid-template-columns:1fr!important
  }
  .importer-search-card .btn{width:100%}
  .importer-code-label input{width:100%}
  .importer-preview-head{align-items:flex-start!important;flex-direction:column!important;gap:10px!important}
  .import-photo-strip{
    display:flex!important;overflow-x:auto!important;gap:8px!important;
    scroll-snap-type:x proximity;padding-bottom:5px
  }
  .import-photo-strip img{
    flex:0 0 78%!important;width:78%!important;height:180px!important;
    object-fit:cover;scroll-snap-align:start
  }
  .import-actions{display:grid!important;grid-template-columns:1fr!important}
  .import-actions .btn{width:100%}
  .import-rights{align-items:flex-start!important}
  .lead-row,.appointment-row,.owner-admin-row{
    grid-template-columns:1fr!important;gap:9px!important
  }
  .crm-summary,.client-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .top-properties>div{grid-template-columns:auto 1fr!important}
  .top-properties>div>strong{grid-column:2}
  .editor-nav{
    display:flex!important;overflow-x:auto!important;position:static!important;
    gap:6px!important;padding-bottom:6px;scrollbar-width:none
  }
  .editor-nav::-webkit-scrollbar{display:none}
  .editor-nav button{flex:0 0 auto;white-space:nowrap;min-height:42px}
  .editor-pane{padding:14px!important}
  .editor-grid,.editor-grid.cols-2,.editor-grid.cols-3,.logo-editor-grid,.color-grid,.wide-asset{
    grid-template-columns:1fr!important
  }
  .span-2,.span-3{grid-column:auto!important}
  .editor-actions{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .editor-actions .btn{width:100%}
  .toggle-list>label{align-items:flex-start!important}
  .danger-zone{align-items:flex-start!important;flex-direction:column!important}
  .danger-zone .btn{width:100%}
  .admin-form-modal{border-radius:20px 20px 0 0!important}
}

@media (max-width: 420px){
  .stats-grid,.crm-summary,.client-grid,.report-grid{grid-template-columns:1fr 1fr!important}
  .admin-header-right .avatar{display:none}
}
