/* Caraíva Map v0.43.0: acabamento, acessibilidade e performance visual. */
:root{--ocm-focus:#f07f3c;--ocm-safe-bottom:env(safe-area-inset-bottom,0px);--ocm-safe-top:env(safe-area-inset-top,0px)}
.ocm-skip-link{position:fixed;z-index:99999;left:14px;top:10px;transform:translateY(-160%);padding:10px 14px;border-radius:10px;background:#fff;color:#17382d;font:800 12px/1.2 Inter,Arial,sans-serif;box-shadow:0 10px 30px rgba(0,0,0,.2);text-decoration:none;transition:transform .18s ease}.ocm-skip-link:focus{transform:none;outline:3px solid var(--ocm-focus);outline-offset:2px}
.ocm-v430-polished :where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--ocm-focus)!important;outline-offset:3px!important;box-shadow:none!important}
.ocm-v430-polished :where(.cm-btn,.cm-menu-button,.cm-account-trigger,.ocm-account-trigger,.ocm-app button,.ocm-app [role="button"]){min-height:44px}
.ocm-v430-polished :where(h1,h2,h3,h4,p,li,a,button,label,span,strong){overflow-wrap:break-word}
.ocm-v430-polished img{max-width:100%}.ocm-v430-polished main,.ocm-v430-polished .ocm-app{min-width:0}
.ocm-v430-polished .cm-nav[aria-label="Navegação principal"]{isolation:isolate}
.ocm-v430-polished [role="dialog"]{scrollbar-gutter:stable}
.ocm-v430-polished .ocm-card[role="dialog"].open{overscroll-behavior:contain}
.ocm-v430-polished .cm-v340-frame,.ocm-v430-polished .cm-v330-media,.ocm-v430-polished .cm-v410-image{contain:layout paint}

/* Renderização progressiva apenas em blocos realmente abaixo da dobra. */
@supports(content-visibility:auto){
 .ocm-v430-polished .cm-home-v4>section:not(.cm-v330-hero):not(.cm-v340-hero),
 .ocm-v430-polished .cm-v410-index>section,
 .ocm-v430-polished .cm-v410-article>section,
 .ocm-v430-polished .cm-v040-planner-main>section{content-visibility:auto;contain-intrinsic-size:1px 760px}
}

/* Mobile: respeita safe areas sem apertar o conteúdo. */
@media(max-width:720px){
 .ocm-v430-polished .cm-header{padding-top:max(0px,var(--ocm-safe-top))}
 .ocm-v430-polished .ocm-card-body,.ocm-v430-polished .ocm-v038-account-dialog,.ocm-v430-polished .cm-v040-planner{padding-bottom:calc(24px + var(--ocm-safe-bottom))!important}
 .ocm-v430-polished .cm-wrap{max-width:100%}
}

@media(prefers-contrast:more){
 .ocm-v430-polished{--ocm-focus:#b94700}
 .ocm-v430-polished :where(.cm-btn,button,input,select,textarea){border-width:2px!important}
 .ocm-v430-polished :where(p,small,.cm-v330-lead,.cm-section-lead){opacity:1!important}
}
@media(prefers-reduced-motion:reduce){
 .ocm-skip-link{transition:none}
 .ocm-v430-polished *, .ocm-v430-polished *::before,.ocm-v430-polished *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}
