/* MicheleBusce.it / consolidamento 08
   Ambito: pagine pubbliche generate da includes/public-site/site.php.
   Non modifica l'interfaccia CMS, le PWA o gli articoli indipendenti. */

/* Contenitori fluidi e riduzione degli ingombri in viewport strette. */
body.site-public{min-width:0;max-width:100%;overflow-x:clip}
body.site-public :where(.preview-header-inner,.preview-brand,.preview-navigation,.preview-page main,.preview-home main,.article-layout,.archive-grid,.project-card-grid,.home-v3-project-grid,.site-footer-grid){min-width:0}
body.site-public :where(.archive-card,.project-card,.home-v3-project-card,.article-body,.site-footer nav,.site-footer-identity){min-width:0;max-width:100%}
body.site-public :where(.article-body,.project-page,.editorial-page,.profile-page,.media-page,.solutions-page) :where(p,li,dd,dt){overflow-wrap:break-word}
body.site-public :where(.article-body,.project-page,.editorial-page) :where(pre,code,kbd,samp){overflow-wrap:anywhere}
body.site-public :where(.article-body,.project-page,.editorial-page) pre{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;tab-size:2}
body.site-public :where(.preview-home,.preview-page) :where(img,video,svg,iframe){max-width:100%}
body.site-public :where(.archive-card-media,.home-v2-card-media,.home-v2-featured-media,.project-card-visual,.home-v3-project-visual){overflow:hidden}
body.site-public :where(.archive-card-media,.home-v2-card-media,.home-v2-featured-media) img{display:block;width:100%;height:100%;object-fit:cover}

/* Gerarchia coerente, senza modificare carattere editoriale e fotografie. */
body.site-public :where(.archive-card h2,.project-card h3,.home-v3-project-card h3){overflow-wrap:break-word;text-wrap:pretty}
body.site-public :where(.archive-card-body,.project-card-body,.home-v3-project-copy){min-width:0}
body.site-public :where(.archive-card-body,.project-card-body) :where(a,p){overflow-wrap:anywhere}
body.site-public .archive-card-media img{object-position:center}

/* Tabella accessibile anche con tastiera, attivata solo quando il contenuto eccede. */
body.site-public .mb08-table-scroll{display:block;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;border:1px solid rgba(32,43,53,.2);background:#fff}
body.site-public .mb08-table-scroll:focus-visible{outline:3px solid #c40018;outline-offset:3px}
body.site-public .mb08-table-scroll>table{display:table!important;width:max-content;min-width:100%;max-width:none!important;margin:0;border-collapse:collapse}
body.site-public .mb08-table-scroll>table th,body.site-public .mb08-table-scroll>table td{min-width:unset!important;white-space:normal;vertical-align:top}
body.site-public .mb08-table-scroll>table :where(th,td){padding:.72rem .85rem;overflow-wrap:break-word}
body.site-public .mb08-table-hint{display:none;margin:.4rem 0 .55rem;color:#45545e;font-size:.85rem;line-height:1.45}
body.site-public .mb08-table-hint.is-visible{display:block}
body.site-public .mb08-table-scroll:not(.is-scrollable){border-color:transparent}

/* Navigazione da tastiera senza sostituire il menu esistente. */
body.site-public :where(a,button,input,select,textarea,summary,[tabindex="0"]):focus-visible{outline:3px solid #a02534;outline-offset:3px}
body.site-public .skip-link:focus-visible{z-index:100000;top:max(.5rem,env(safe-area-inset-top));transform:translateY(0)}
body.site-public :where(main[id],section[id],article[id],h2[id],h3[id]){scroll-margin-top:clamp(5.5rem,9vw,8.5rem)}
body.site-public :where(.site-breadcrumb a,.site-footer a){overflow-wrap:anywhere}
body.site-public .site-footer-grid>*{min-width:0}
body.site-public .site-footer-identity img{display:block;width:74px;height:auto;max-width:100%;object-fit:contain}
body.site-public .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@media(max-width:980px){
 body.site-public .site-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.site-public .site-footer-identity{grid-column:1/-1}
}
@media(max-width:760px){
 body.site-public .site-footer-grid{grid-template-columns:minmax(0,1fr)}
 body.site-public .site-footer-identity{grid-column:auto}
 body.site-public .archive-card-media{aspect-ratio:16/10}
 body.site-public .archive-card h2{font-size:clamp(1.45rem,6.1vw,2.2rem);line-height:1.07}
 body.site-public .site-footer nav{min-width:0}
 body.site-public .preview-header-inner{padding-inline:max(.85rem,env(safe-area-inset-left)) max(.85rem,env(safe-area-inset-right))}
 body.site-public .preview-brand{max-width:calc(100% - 3.25rem)}
 body.site-public .site-breadcrumb ol{max-width:100%;overflow-x:auto}
}
@media(max-width:420px){
 body.site-public .preview-header-inner{gap:.5rem}
 body.site-public .preview-brand strong{font-size:clamp(.92rem,4vw,1.06rem)}
 body.site-public .archive-card-body{padding:1rem}
 body.site-public :where(.archive-card-themes,.article-themes,.project-card-meta){gap:.4rem}
 body.site-public :where(.article-tool-actions,.archive-filter-actions) :where(a,button){max-width:100%;overflow-wrap:anywhere;white-space:normal}
}
@media(prefers-reduced-motion:reduce){
 body.site-public .archive-card-media img{transition:none!important;transform:none!important}
 body.site-public [data-reveal]{transition:none!important;animation:none!important;opacity:1!important;transform:none!important}
}
@media(forced-colors:active){
 body.site-public .mb08-table-scroll{border:1px solid CanvasText}
 body.site-public :where(a,button):focus-visible{outline-color:Highlight}
}
@media print{
 body.site-public .mb08-table-scroll{overflow:visible;border:0}
 body.site-public .mb08-table-scroll>table{width:100%;min-width:0;max-width:100%;table-layout:auto}
 body.site-public .mb08-table-hint{display:none!important}
}
