/*
Theme Name: DNArt
Theme URI: https://www.dnart.it
Description: Child theme Genesis per DNArt — sistema visivo BN-O Corporate 01 (Archivo + Public Sans, navy/arancio). Restyle globale, archivi Layout B (hero pillar + griglia + cluster), mega-menu, logo a colori, footer brand.
Author: DNArt — Strumenti di Comunicazione
Author URI: https://www.dnart.it
Template: genesis
Version: 1.0.1
Text Domain: dnart
Tags: genesis, brand, custom-logo, full-width
*/

/* ==========================================================================
   1. Token brand — BN-O Corporate 01
   ========================================================================== */
:root{
	--navy:#123856;
	--blue:#0E4C85;
	--blue-2:#2B6499;
	--orange:#FF8704;
	--orange-ink:#CC6600;
	--orange-50:#FFF1E0;
	--nebbia:#F8F8F7;
	--ink:#1B2836;
	--muted:#4B5563;
	--line:#E7ECF1;
	--inactive:#C8D8E8;
	--white:#fff;
	--radius:10px;
	--radius-lg:14px;
	--wrap:1200px;
	--read:760px;
	--font-display:'Archivo',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
	--font-text:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box;}
body{
	margin:0;
	font-family:var(--font-text);
	font-size:17px;
	line-height:1.7;
	color:var(--ink);
	background:var(--white);
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--blue);text-decoration:none;transition:color .15s ease;}
a:hover,a:focus{color:var(--orange);}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px;}
.material-symbols-rounded{
	font-family:'Material Symbols Rounded';font-weight:400;font-style:normal;
	line-height:1;vertical-align:middle;-webkit-font-feature-settings:'liga';font-feature-settings:'liga';
	font-variation-settings:'opsz' 24;
}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:24px;}
html{overflow-x:hidden;}
img,iframe,video,table,pre{max-width:100%;}

/* ==========================================================================
   3. Tipografia
   ========================================================================== */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--navy);line-height:1.12;margin:0 0 .5em;}
h1{font-weight:900;font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.01em;}
h2{font-weight:800;font-size:clamp(1.5rem,2.6vw,2.25rem);letter-spacing:-.005em;}
h3{font-weight:700;font-size:1.4rem;}
h4{font-weight:700;font-size:1.15rem;}
p{margin:0 0 1.2em;}
strong,b{font-weight:700;}
.dnart-kicker,.kicker{
	font-family:var(--font-display);font-weight:700;font-size:.78rem;
	letter-spacing:.2em;text-transform:uppercase;color:var(--blue);margin:0 0 .6em;
}
blockquote{
	margin:1.8em 0;padding:.4em 0 .4em 1.4em;border-left:3px solid var(--orange);
	font-size:1.15rem;color:var(--navy);font-style:italic;
}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
hr{border:0;border-top:1px solid var(--line);margin:2.5em 0;}

/* ==========================================================================
   4. Header + logo
   ========================================================================== */
.site-header{background:var(--white);border-bottom:1px solid var(--line);}
.site-header .wrap{display:flex;align-items:center;gap:24px;min-height:84px;}
.title-area{margin:0;padding:0;}
.custom-logo-link{display:inline-flex;align-items:center;}
.custom-logo{height:46px;width:auto;}
.site-title{font-family:var(--font-display);font-weight:900;font-size:1.6rem;margin:0;}
.site-title a{color:var(--navy);}
.site-description{display:none;}
.nav-primary{margin-left:auto;}

/* ==========================================================================
   5. Navigazione primaria + dropdown + mega-menu
   ========================================================================== */
.nav-primary{position:relative;}
.genesis-nav-menu{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0;padding:0;list-style:none;}
.genesis-nav-menu .menu-item{position:relative;}
.genesis-nav-menu a{
	display:block;padding:10px 14px;font-family:var(--font-display);font-weight:600;
	font-size:.95rem;color:var(--navy);border-radius:8px;
}
.genesis-nav-menu .menu-item:hover>a,
.genesis-nav-menu .current-menu-item>a{color:var(--orange);}
.genesis-nav-menu .menu-item-has-children>a::after{
	content:'expand_more';font-family:'Material Symbols Rounded';font-size:1.1em;
	font-feature-settings:'liga';vertical-align:-3px;margin-left:2px;color:var(--inactive);
}

/* CTA in fondo al menu */
.genesis-nav-menu .dnart-nav-cta a{
	background:var(--orange);color:var(--white);text-transform:uppercase;
	letter-spacing:.1em;font-size:.78rem;font-weight:700;padding:11px 18px;margin-left:8px;
}
.genesis-nav-menu .dnart-nav-cta a:hover{background:#E87800;color:var(--white);}

/* Dropdown standard */
.genesis-nav-menu .sub-menu{
	position:absolute;top:100%;left:0;z-index:99;min-width:250px;
	background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
	padding:8px;margin:0;list-style:none;
	opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s,visibility .15s;
}
.genesis-nav-menu .sub-menu a{font-weight:500;font-family:var(--font-text);padding:9px 12px;color:var(--ink);}
.genesis-nav-menu .sub-menu a:hover{background:var(--nebbia);color:var(--blue);}
.genesis-nav-menu .menu-item:hover>.sub-menu,
.genesis-nav-menu .menu-item.dnart-focus>.sub-menu,
.genesis-nav-menu .menu-item:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none;}
.genesis-nav-menu .sub-menu .sub-menu{top:0;left:100%;}

/* Mega-menu: pannello largo multi-colonna (es. voce SEO con 12 link) */
.genesis-nav-menu .menu-item.dnart-mega{position:static;}
.genesis-nav-menu .dnart-mega>.sub-menu{
	left:0;right:0;width:100%;max-width:var(--wrap);
	display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 24px;
	padding:22px 24px;
}
.genesis-nav-menu .dnart-mega>.sub-menu>.menu-item>a{font-weight:600;color:var(--navy);}

/* Toggle mobile (iniettati da dnart.js) */
.menu-toggle,.sub-menu-toggle{display:none;border:0;background:none;cursor:pointer;}
.menu-toggle{
	align-items:center;gap:8px;font-family:var(--font-display);font-weight:700;
	font-size:.9rem;color:var(--navy);padding:10px 12px;border:1px solid var(--line);border-radius:8px;
}
.menu-toggle .material-symbols-rounded{font-size:1.4em;}

/* ==========================================================================
   6. Bottoni / CTA / blocchi
   ========================================================================== */
.button,.wp-block-button__link,input[type=submit],button[type=submit],.dnart-cta{
	display:inline-flex;align-items:center;gap:8px;
	font-family:var(--font-display);font-weight:600;font-size:.82rem;
	letter-spacing:.1em;text-transform:uppercase;
	background:var(--orange);color:var(--white);
	padding:14px 26px;border:0;border-radius:8px;cursor:pointer;line-height:1;transition:background .15s;
}
.button:hover,.wp-block-button__link:hover,input[type=submit]:hover,button[type=submit]:hover,.dnart-cta:hover{
	background:#E87800;color:var(--white);
}
.wp-block-button.is-style-outline .wp-block-button__link,.button.secondary{
	background:transparent;color:var(--navy);border:1.5px solid var(--navy);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--navy);color:var(--white);}

/* Sezioni scure (hero / CTA homepage) */
.dnart-dark{background:var(--navy);}
.dnart-dark,.dnart-dark h1,.dnart-dark h2,.dnart-dark h3,.dnart-dark h4,.dnart-dark p,.dnart-dark li{color:var(--white);}
.dnart-dark .dnart-kicker{color:var(--orange);}
.dnart-dark .wp-block-button.is-style-outline .wp-block-button__link{border-color:rgba(255,255,255,.55);color:var(--white);}
.dnart-dark .wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--white);color:var(--navy);}
.dnart-section{padding-block:72px;}
.dnart-section--nebbia{background:var(--nebbia);}
.dnart-eyebrow{font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue);}

/* Card servizi (homepage) */
.dnart-svc{display:flex;flex-direction:column;gap:8px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px;height:100%;}
.dnart-svc .material-symbols-rounded{font-size:2rem;color:var(--orange);}
.dnart-svc h3{margin:.2em 0;}

/* Latest posts (guide in evidenza) */
.wp-block-latest-posts.is-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin:0;padding:0;list-style:none;}
.wp-block-latest-posts.is-grid li{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;}
.wp-block-latest-posts__featured-image img{width:100%;aspect-ratio:16/9;object-fit:cover;}
.wp-block-latest-posts__post-title{display:block;font-family:var(--font-display);font-weight:700;font-size:1.1rem;line-height:1.25;color:var(--navy);padding:16px 18px 0;}
.wp-block-latest-posts__post-date{display:block;font-size:.78rem;color:#7A8794;padding:6px 18px 0;}
.wp-block-latest-posts__post-excerpt{font-size:.92rem;color:var(--muted);padding:8px 18px 18px;margin:0;}

/* ==========================================================================
   7. Contenuto / entry / single
   ========================================================================== */
.site-inner{padding:48px 0 64px;}
.full-width-content .content{width:100%;}
.entry{margin-bottom:40px;}
.single .entry-content,.page .entry-content{font-size:1.08rem;}
/* Colonna di lettura: i blocchi normali sono limitati e centrati; alignwide/alignfull escono. */
.entry-content>*{max-width:var(--read);margin-left:auto;margin-right:auto;}
.entry-content>.alignwide{max-width:1100px;}
.entry-content>.alignfull{max-width:none;}
.entry-header,.breadcrumb,.entry-footer,.author-box,.comment-respond,.entry-comments,.adjacent-entry-pagination,.archive-description{max-width:var(--read);margin-left:auto;margin-right:auto;}
.entry-header{margin-bottom:1.2em;}
.entry-title{margin-bottom:.3em;}
.entry-meta{font-size:.85rem;color:var(--muted);margin-bottom:1.5em;}
.entry-meta a{color:var(--muted);}
.entry-content a{text-decoration:underline;text-underline-offset:2px;}
.entry-content h2{margin-top:1.8em;}
.entry-content h3{margin-top:1.5em;}
.entry-content ul,.entry-content ol{padding-left:1.3em;}
.entry-content li{margin-bottom:.5em;}
.entry-content img,.wp-block-image{border-radius:var(--radius);}
/* Sezioni full-width: a tutta larghezza ma con respiro interno (no testo sui bordi). */
.alignfull{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);max-width:100vw;padding-left:24px;padding-right:24px;}

/* Landing auto-contenute: solo header + footer, il design gestisce tutto da sé. */
.dnart-selfcontained .site-inner{padding:0;}
.dnart-selfcontained .site-inner>.wrap{max-width:none;padding-left:0;padding-right:0;}
.dnart-selfcontained .entry-content>*{max-width:none;margin-left:0;margin-right:0;}
.dnart-selfcontained .breadcrumb,.dnart-selfcontained .entry-header{display:none;}

/* Tabelle */
table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:.95rem;}
th,td{border:1px solid var(--line);padding:10px 14px;text-align:left;}
thead th{background:var(--navy);color:var(--white);font-family:var(--font-display);}
tbody tr:nth-child(even){background:var(--nebbia);}

/* Paginazione */
.archive-pagination,.pagination{margin-top:40px;}
.archive-pagination ul{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;justify-content:center;}
.archive-pagination a,.archive-pagination .active a{
	display:block;padding:9px 14px;border:1px solid var(--line);border-radius:8px;
	font-family:var(--font-display);font-weight:600;color:var(--navy);
}
.archive-pagination .active a{background:var(--navy);color:var(--white);border-color:var(--navy);}
.archive-pagination a:hover{border-color:var(--inactive);}

/* ==========================================================================
   8. Archivio — Layout B
   ========================================================================== */
.dnart-archive{max-width:var(--wrap);margin-inline:auto;}
.dnart-arch-head{margin-bottom:32px;}
.dnart-arch-title{font-size:clamp(2.1rem,4vw,3rem);margin:.1em 0 .25em;}
.dnart-standfirst{color:var(--muted);max-width:62ch;font-size:1.05rem;}
.dnart-count{font-family:var(--font-display);font-weight:700;color:var(--blue);font-size:.85rem;margin-top:.6em;}

/* Thumbnail (immagine reale o blocco colore) */
.dnart-thumb{position:relative;overflow:hidden;background:var(--navy);}
.dnart-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.dnart-thumb--ph{display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.92);}
.dnart-thumb--ph .material-symbols-rounded{font-size:2.4rem;}
.dnart-flag{
	position:absolute;top:10px;left:10px;background:var(--orange);color:var(--white);
	font-family:var(--font-display);font-weight:700;font-size:.62rem;letter-spacing:.12em;
	text-transform:uppercase;padding:4px 9px;border-radius:5px;
}
.dnart-cat{font-family:var(--font-display);font-weight:700;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);}
.dnart-meta{font-size:.78rem;color:#7A8794;}

/* Hero in evidenza */
.dnart-hero{
	display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:0;
	background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);
	overflow:hidden;margin-bottom:40px;
}
.dnart-hero .dnart-thumb{min-height:280px;}
.dnart-hero-b{padding:36px 40px;display:flex;flex-direction:column;justify-content:center;}
.dnart-hero-t{font-size:clamp(1.5rem,2.5vw,2.1rem);font-weight:900;margin:.3em 0 .4em;}
.dnart-hero-e{color:var(--muted);font-size:1.05rem;margin-bottom:1.2em;}
.dnart-hero .dnart-cta{align-self:flex-start;margin-bottom:14px;}

/* Griglia card */
.dnart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px;}
.dnart-card{
	display:flex;flex-direction:column;background:var(--white);
	border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s,transform .15s;
}
.dnart-card:hover{border-color:var(--inactive);transform:translateY(-2px);}
.dnart-card .dnart-thumb{aspect-ratio:16/9;}
.dnart-card-b{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1;}
.dnart-card-t{font-size:1.12rem;font-weight:700;line-height:1.25;margin:0;}
.dnart-card-e{color:var(--muted);font-size:.92rem;line-height:1.55;margin:0;flex:1;}

/* Sezioni cluster */
.dnart-cluster{margin-bottom:48px;}
.dnart-cluster-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:2px solid var(--navy);margin-bottom:20px;}
.dnart-cluster-n{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;background:var(--navy);color:var(--white);font-family:var(--font-display);font-weight:900;font-size:.9rem;}
.dnart-cluster-t{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--navy);}
.dnart-cluster-c{background:var(--blue);color:var(--white);font-size:.72rem;font-weight:600;padding:3px 11px;border-radius:20px;}
.dnart-cluster-d{color:var(--muted);font-size:.9rem;}

.dnart-pillar{display:grid;grid-template-columns:minmax(0,260px) 1fr;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:14px;}
.dnart-pillar .dnart-thumb{min-height:180px;}
.dnart-pillar-b{padding:24px 28px;}
.dnart-pillar-t{font-size:1.3rem;font-weight:800;margin:.4em 0 .35em;}
.dnart-pillar-e{color:var(--muted);font-size:.98rem;margin-bottom:.8em;}
.dnart-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-display);font-weight:700;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:6px;}
.dnart-badge--pillar{background:var(--orange-50);color:var(--orange-ink);}
.dnart-badge--pillar .material-symbols-rounded{font-size:1em;}
.dnart-badge--news{background:#E9F0F7;color:var(--blue);}

.dnart-sub{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;}
.dnart-subi{display:flex;gap:14px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;transition:border-color .15s;}
.dnart-subi:hover{border-color:var(--inactive);}
.dnart-sq{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:9px;flex-shrink:0;color:var(--white);}
.dnart-sq .material-symbols-rounded{font-size:1.2rem;}
.dnart-subi-b{display:flex;flex-direction:column;gap:4px;min-width:0;}
.dnart-subi-t{font-family:var(--font-display);font-weight:700;font-size:.98rem;line-height:1.25;color:var(--navy);}

/* ==========================================================================
   9. Footer brand (navy)
   ========================================================================== */
.site-footer{background:var(--navy);color:#C8D8E8;padding:0;border:0;}
.dnart-footer-inner{max-width:var(--wrap);margin-inline:auto;padding:48px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:20px 40px;}
.dnart-footer-brand{display:flex;align-items:center;gap:18px;}
.dnart-footer-logo{height:48px;width:auto;}
.dnart-footer-payoff{font-family:var(--font-display);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;color:var(--orange);margin:0;}
.dnart-footer-nav .genesis-nav-menu{gap:0 6px;}
.dnart-footer-nav a{color:#C8D8E8;font-family:var(--font-text);font-weight:500;font-size:.9rem;padding:6px 10px;}
.dnart-footer-nav a:hover{color:var(--white);}
.dnart-footer-credit{width:100%;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;margin:0;font-size:.82rem;color:#7A9BBD;}

/* ==========================================================================
   10. Form (Contact Form 7) + search
   ========================================================================== */
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=search],input[type=number],textarea,select{
	width:100%;font-family:var(--font-text);font-size:1rem;color:var(--ink);
	background:var(--white);border:1px solid var(--inactive);border-radius:8px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;
}
input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(14,76,133,.12);outline:none;}
label{font-weight:600;color:var(--navy);display:block;margin-bottom:6px;}
.wpcf7-form p{margin-bottom:1.1em;}
.wpcf7 .wpcf7-spinner{margin-top:10px;}

/* ==========================================================================
   11. Responsive
   ========================================================================== */
@media (max-width:1023px){
	.genesis-nav-menu .dnart-mega>.sub-menu{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:880px){
	.site-header .wrap{min-height:68px;flex-wrap:wrap;}
	.menu-toggle{display:inline-flex;margin-left:auto;}
	.nav-primary{width:100%;}
	.nav-primary .genesis-nav-menu{display:none;flex-direction:column;align-items:stretch;gap:2px;padding:12px 0;}
	.nav-primary.dnart-open .genesis-nav-menu{display:flex;}
	.genesis-nav-menu .menu-item{position:static;}
	.genesis-nav-menu .menu-item-has-children>a::after{display:none;}
	.genesis-nav-menu a{padding:12px 8px;border-radius:6px;}
	.genesis-nav-menu .sub-menu,
	.genesis-nav-menu .dnart-mega>.sub-menu{
		position:static;opacity:1;visibility:visible;transform:none;display:none;
		border:0;border-left:2px solid var(--line);border-radius:0;padding:0 0 0 12px;margin:0 0 4px 8px;min-width:0;max-width:none;grid-template-columns:1fr;
	}
	.genesis-nav-menu .menu-item.dnart-expanded>.sub-menu{display:block;}
	.dnart-mega>.sub-menu{display:none;}
	.menu-item.dnart-expanded.dnart-mega>.sub-menu{display:grid;}
	.sub-menu-toggle{display:inline-flex;position:absolute;right:0;top:0;padding:12px;color:var(--navy);}
	.genesis-nav-menu .menu-item-has-children{position:relative;}
	.dnart-nav-cta{margin-top:8px;}
	.genesis-nav-menu .dnart-nav-cta a{display:inline-flex;justify-content:center;}

	.dnart-hero{grid-template-columns:1fr;}
	.dnart-hero .dnart-thumb{min-height:200px;aspect-ratio:16/9;}
	.dnart-hero-b{padding:26px 24px;}
	.dnart-pillar{grid-template-columns:1fr;}
	.dnart-pillar .dnart-thumb{aspect-ratio:16/9;min-height:0;}
	.site-inner{padding:32px 0 48px;}
}
@media (max-width:560px){
	body{font-size:16px;}
	.dnart-grid{grid-template-columns:1fr;}
	.dnart-sub{grid-template-columns:1fr;}
	.dnart-footer-inner{padding:36px 24px;}
}
