/*
Theme Name: Gelmini Editoriale
Theme URI: https://diego.gelmini.it/
Author: Diego Gelmini
Description: Tema editoriale sobrio per diego.gelmini.it (bozza A approvata il 06/10/2026). Nessuna dipendenza da plugin di theme builder.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: gelmini-editoriale
*/
:root{--ink:#ebe7da;--ink2:#cdd1d8;--muted:#9fa9b7;--rule:#2d3643;--paper:#11161d;--field:#1a212b;--on-ink:#11161d;--blue:#79b0ee;--blue-d:#a6cbf5;--serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",system-ui,-apple-system,Arial,sans-serif}
*,*:before,*:after{box-sizing:border-box}
html{color-scheme:dark only;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--serif);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{color:var(--blue)}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}
.narrow{max-width:760px;margin:0 auto;padding:0 24px}
.screen-reader-text{position:absolute;left:-9999px}
/* ---- barra superiore ---- */
.topbar{border-bottom:1px solid var(--rule);font:13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;background:var(--paper);position:sticky;top:0;z-index:50}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:54px;color:var(--muted)}
.topbar .date{white-space:nowrap}
.topbar nav ul{list-style:none;margin:0;padding:0;display:flex;gap:28px}
.topbar nav a{color:var(--ink);display:block;padding:18px 0}
.topbar nav .current-menu-item a,.topbar nav .current-menu-ancestor a,.topbar nav a:hover{color:var(--blue);box-shadow:inset 0 -2px 0 var(--blue)}
.navtoggle{display:none}
.menu-btn{display:none;font:13px var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;padding:16px 0}
/* ---- testata ---- */
.mast{text-align:center;padding:46px 0 26px;border-bottom:3px double var(--ink)}
.mast .dg{font:italic 28px var(--serif);color:var(--blue);letter-spacing:.05em}
.mast h1,.mast .title{margin:6px 0 4px;font:700 64px/1.05 var(--serif);letter-spacing:-.01em}
.mast p{margin:0;font:15px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.mast.small{padding:26px 0 18px}.mast.small .title{font-size:40px}.mast.small .dg{font-size:20px}
/* ---- elementi comuni ---- */
.kicker{font:12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:12px;display:block}
.meta{font:13px var(--sans);color:var(--muted)}
.btn{display:inline-block;margin-top:12px;font:13px var(--sans);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--blue);padding-bottom:3px;color:var(--blue)}
.btn:hover{color:var(--blue-d);border-color:var(--blue-d)}
.sec{padding:36px 0;border-bottom:1px solid var(--rule)}
.sec>h2,.sec-title{font:12px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin:0 0 24px;display:flex;align-items:center;gap:14px;font-weight:600}
.sec>h2:after,.sec-title:after{content:"";flex:1;height:1px;background:var(--rule)}
/* ---- home: apertura ---- */
.lead{display:grid;grid-template-columns:1.7fr 1fr;gap:44px;padding:40px 0;border-bottom:1px solid var(--rule)}
.lead .hero{width:100%;height:340px;object-fit:cover;display:block;margin-bottom:18px}
.lead h2{font:700 38px/1.15 var(--serif);margin:0 0 12px}
.lead p{margin:0 0 6px}
.side{border-left:1px solid var(--rule);padding-left:34px}
.side img{width:100%;max-width:260px;display:block;margin:0 auto 20px;filter:grayscale(1)}
blockquote.pull{margin:0;font:italic 20px/1.5 var(--serif)}
blockquote.pull cite{display:block;margin-top:12px;font:13px var(--sans);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
/* ---- schede articolo ---- */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.card h3,.card h4{font:700 22px/1.25 var(--serif);margin:0 0 8px}
.card p{margin:0;font-size:15.5px;color:var(--ink2)}
.card .meta{display:block;margin-bottom:8px}
.card .thumb{display:block;margin-bottom:12px;aspect-ratio:3/2;object-fit:cover;width:100%}
.rub{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.rub a{font:14px var(--sans);border:1px solid var(--ink);padding:9px 18px;border-radius:2px;display:block}
.rub a:hover,.rub .current a{background:var(--ink);color:var(--on-ink)}
/* ---- libro ---- */
.libro{display:grid;grid-template-columns:180px 1fr;gap:34px;align-items:center}
.cover{background:var(--ink);color:var(--on-ink);aspect-ratio:2/3;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:16px;font:700 22px/1.2 var(--serif)}
.cover small{font:11px var(--sans);letter-spacing:.18em;text-transform:uppercase;margin-top:12px;opacity:.85}
.libro h3{font:700 28px/1.2 var(--serif);margin:0 0 8px}
/* ---- archivio / elenco ---- */
.list article{display:grid;grid-template-columns:240px 1fr;gap:28px;padding:26px 0;border-bottom:1px solid var(--rule)}
.list article.noimg{grid-template-columns:1fr}
.list h2{font:700 26px/1.25 var(--serif);margin:0 0 8px}
.list img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.pagination{display:flex;gap:10px;justify-content:center;padding:34px 0;font:14px var(--sans)}
.pagination a,.pagination span{padding:8px 14px;border:1px solid var(--rule)}.pagination .current{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.chips{padding:22px 0}
/* ---- articolo singolo ---- */
.post-head{padding:44px 0 20px;text-align:center}
.post-head h1{font:700 46px/1.15 var(--serif);margin:0 0 14px}
.post-fig{max-width:1000px;margin:0 auto 10px;padding:0 24px}.post-fig img{width:100%;height:auto;display:block}
.entry{font-size:19px;line-height:1.75}
.entry p{margin:0 0 1.2em}
.entry h2,.entry h3{font-family:var(--serif);line-height:1.25;margin:1.6em 0 .5em}
.entry a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
.entry blockquote{border-left:3px solid var(--blue);margin:1.5em 0;padding:.2em 0 .2em 1.2em;font-style:italic}
.entry img{height:auto}
.entry table{border-collapse:collapse;width:100%;font:15px var(--sans)}.entry td,.entry th{border:1px solid var(--rule);padding:8px}
.post-nav{display:flex;justify-content:space-between;gap:20px;padding:26px 0;border-top:1px solid var(--rule);margin-top:34px;font:15px var(--sans)}
.tags a{font:12px var(--sans);letter-spacing:.1em;text-transform:uppercase;margin-right:12px;color:var(--muted)}
/* ---- pagine ---- */
.page-head{padding:38px 0 10px}.page-head h1{font:700 44px/1.1 var(--serif);margin:0}
.page-body{padding:20px 0 50px}
.page-body .elementor-section,.page-body .e-con{background-image:none}
/* ---- articoli archiviati ---- */
.arch-tools{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:18px 0 8px}
.arch-tools input{font:16px var(--sans);padding:11px 14px;border:1px solid var(--ink);background:var(--field);min-width:280px;flex:1}
.years{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 26px}
.years button{font:14px var(--sans);border:1px solid var(--ink);background:transparent;padding:7px 14px;cursor:pointer;color:var(--ink)}
.years button.on,.years button:hover{background:var(--ink);color:var(--on-ink)}
.year{display:none}.year.show{display:block}.arch-all .year{display:block}
.year h2{font:700 30px var(--serif);margin:26px 0 8px;border-bottom:1px solid var(--rule);padding-bottom:6px}
.year ul{list-style:none;margin:0;padding:0}
.year li{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px dotted var(--rule)}
.year li a{color:var(--ink)}.year li a:hover{color:var(--blue)}
.year li .d{font:13px var(--sans);color:var(--muted);white-space:nowrap}
.count{font:13px var(--sans);color:var(--muted)}
details.indice{margin-top:18px}details.indice summary{cursor:pointer;font:600 13px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
details.indice ul{list-style:none;padding:0;margin:14px 0 0;columns:2;column-gap:40px}
details.indice li{padding:5px 0;break-inside:avoid;border-bottom:1px dotted var(--rule)}
/* ---- footer ---- */
.site-footer{padding:34px 0 50px;font:14px/1.7 var(--sans);color:var(--muted);border-top:3px double var(--ink);margin-top:30px}
.site-footer .wrap{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;gap:34px}
.site-footer b,.site-footer h4{color:var(--ink);font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;margin:0 0 8px;display:block}
.site-footer ul{list-style:none;margin:0;padding:0}.site-footer a:hover{color:var(--blue)}
.site-footer .legal{grid-column:1/-1;border-top:1px solid var(--rule);padding-top:16px;font-size:13px}
/* ---- responsive ---- */
@media(max-width:860px){
 body{font-size:16.5px}.wrap{padding:0 20px}
 .mast h1,.mast .title{font-size:40px}.lead{grid-template-columns:1fr;gap:24px}.side{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:24px}
 .grid{grid-template-columns:1fr;gap:26px}.libro{grid-template-columns:120px 1fr;gap:20px}.list article{grid-template-columns:1fr}
 .post-head h1{font-size:32px}.entry{font-size:17.5px}.site-footer .wrap{grid-template-columns:1fr}
 .topbar .date{display:none}.menu-btn{display:block}.topbar nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--rule)}
 .navtoggle:checked~nav{display:block}.topbar nav ul{flex-direction:column;gap:0;padding:6px 20px}.topbar nav a{padding:13px 0;border-bottom:1px solid var(--rule)}
 details.indice ul{columns:1}
}

/* ---- rifiniture ---- */
.libro.top{align-items:start}.libro.top .cover{position:sticky;top:80px}
/* Pagine costruite con Elementor (About, Contatti, Privacy...): stesso sfondo e stessi caratteri del resto del sito */
[data-elementor-type="wp-page"] .elementor-section,[data-elementor-type="wp-page"] .elementor-top-section,[data-elementor-type="wp-page"] .e-con,[data-elementor-type="wp-page"] .elementor-column-wrap,[data-elementor-type="wp-page"] .elementor-widget-wrap,[data-elementor-type="wp-page"] .elementor-background-overlay{background:transparent!important;background-image:none!important}
[data-elementor-type="wp-page"] .elementor-heading-title{font-family:var(--serif)!important;font-weight:700!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important}
[data-elementor-type="wp-page"] .elementor-widget-text-editor,[data-elementor-type="wp-page"] .elementor-widget-text-editor p,[data-elementor-type="wp-page"] .elementor-widget-text-editor li{font-family:var(--serif)!important;color:var(--ink)!important;font-size:18px;line-height:1.7}
[data-elementor-type="wp-page"] .elementor-widget-text-editor a{color:var(--blue)!important;text-decoration:underline;text-underline-offset:3px}
[data-elementor-type="wp-page"]{max-width:1000px;margin:0 auto}
[data-elementor-type="wp-page"] .elementor-section.elementor-section-boxed>.elementor-container{max-width:100%}
[data-elementor-type="wp-page"] img{filter:none}
/* modulo di contatto (Contact Form 7) */
.wpcf7 label,[data-elementor-type="wp-page"] .wpcf7 p{font:600 13px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 textarea{width:100%;max-width:640px;font:17px var(--serif);padding:12px 14px;border:1px solid var(--ink);background:var(--field);color:var(--ink);border-radius:2px;margin-top:6px}
.wpcf7 textarea{min-height:160px}
.wpcf7 input[type=submit]{font:600 13px var(--sans);letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--on-ink);border:0;padding:14px 34px;cursor:pointer;border-radius:2px}
.wpcf7 input[type=submit]:hover{background:var(--blue)}
.wpcf7-not-valid-tip,.wpcf7-response-output{font:14px var(--sans)}
[data-elementor-type="wp-page"] .elementor-social-icon{background:transparent!important}[data-elementor-type="wp-page"] .elementor-social-icon i{color:var(--ink)!important}

[data-elementor-type="wp-page"] .elementor-widget-heading .elementor-heading-title{line-height:1.15}
body.elementor-page .elementor-section.elementor-top-section{padding-top:10px;padding-bottom:10px}
body.ge.elementor-page main{padding-bottom:20px}

[data-elementor-type="wp-page"]{padding-top:26px}
[data-elementor-type="wp-page"] .elementor-heading-title{font-size:clamp(28px,4vw,42px)!important}
[data-elementor-type="wp-page"] .elementor-widget-heading h3.elementor-heading-title,[data-elementor-type="wp-page"] .elementor-widget-heading h4.elementor-heading-title{font-size:clamp(22px,3vw,30px)!important}

/* ---- nome in carattere "da testata" (egiziano grassetto). Per usare il carattere ufficiale: sostituire fonts/testata.ttf mantenendo il nome ---- */
@font-face{font-family:"Testata";src:url("fonts/testata.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap}
.mast .title,.mast.small .title,.mast .title a{font-family:"Testata","Bitter",Georgia,serif;font-weight:800;letter-spacing:-.015em}
.mast .title a:hover{color:var(--blue)}
.mast.small{padding:22px 0 16px}
.mast h1{margin:0 0 6px}
/* ---- pagina About: due curriculum come "biscotti" ---- */
.cv{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:30px 0 6px}
.cv-card{display:flex;align-items:center;gap:22px;background:var(--field);border:1.5px solid var(--ink);border-radius:90px;padding:14px 34px 14px 26px;transition:background .2s,color .2s,transform .2s}
.cv-card svg{flex:0 0 170px;width:170px;height:auto;color:var(--ink)}
.cv-card .t{display:flex;flex-direction:column;line-height:1.2}
.cv-card .k{font:600 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--blue)}
.cv-card strong{font:800 30px/1.1 "Testata","Bitter",Georgia,serif}
.cv-card em{font:13px var(--sans);font-style:normal;color:var(--muted);margin-top:4px}
.cv-card .go{margin-left:auto;font:22px var(--sans);color:var(--blue)}
.cv-card:hover{background:var(--ink);color:var(--on-ink);transform:translateY(-2px)}
.cv-card:hover svg,.cv-card:hover em,.cv-card:hover .k,.cv-card:hover .go{color:var(--on-ink)}
.cv-card:hover svg .bg{fill:var(--ink)}.cv-card:hover svg .bgs{stroke:var(--ink)}
@media(max-width:860px){.cv{grid-template-columns:1fr}.cv-card{border-radius:60px;padding:12px 22px 12px 16px}.cv-card svg{flex-basis:110px;width:110px}.cv-card strong{font-size:24px}}

.cv-card svg .bg{fill:var(--field)}.cv-card svg .bgs{stroke:var(--field)}.cv-card svg .wave{stroke:var(--blue);fill:none}
.cv-card:hover svg .wave{stroke:var(--on-ink)}

/* ---- breve contenuto tra titolo e data ---- */
.brief{margin:2px 0 6px;font:italic 400 15.5px/1.5 var(--serif);color:var(--muted);opacity:.9}
.card .brief{font-size:14.5px}
.post-head .brief{font-size:18px;max-width:640px;margin:8px auto 10px}
.lead .brief{font-size:17px}
/* ---- pulsante Indietro (tutte le pagine tranne la home) ---- */
.backbar{padding-top:18px}
.back{display:inline-block;font:600 12.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border:1px solid var(--rule);border-radius:40px;padding:9px 20px 9px 16px;background:transparent;transition:background .15s,color .15s,border-color .15s}
.back:hover{background:var(--ink);color:var(--on-ink);border-color:var(--ink)}
.back:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
/* ---- lettore PDF ---- */
.pdf-head{padding-bottom:6px}
.pdf-actions{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 0}
.btn-solid,.btn-line{display:inline-block;font:600 12.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:11px 22px;border-radius:3px}
.btn-solid{background:var(--ink);color:var(--on-ink)}.btn-solid:hover{background:var(--blue);color:var(--on-ink)}
.btn-line{border:1px solid var(--ink);color:var(--ink)}.btn-line:hover{background:var(--ink);color:var(--on-ink)}
.pdf-frame{margin:18px 0 40px;border:1px solid var(--rule);background:var(--field)}
.pdf-frame object{display:block;width:100%;height:82vh;min-height:520px}
.pdf-frame p{padding:24px}
@media(max-width:860px){.pdf-frame object{height:70vh}}

/* icone social di Contatti: contrasto pieno */
[data-elementor-type="wp-page"] .elementor-social-icon,[data-elementor-type="wp-page"] .elementor-social-icon *{color:var(--ink)!important;fill:var(--ink)!important}
