/*
Theme Name: Eliano Manifesto
Theme URI: https://www.elianoricci.com
Author: Eliano Ricci
Author URI: https://www.elianoricci.com
Description: Tema custom brutalist editorial "Il Manifesto" per Eliano Ricci - Digital Marketing Strategist. Look coerente e omogeneo su pagine, blog, articoli e portfolio. Leggero, senza page builder.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: eliano-manifesto
Tags: custom, brutalist, marketing
*/

:root {
  --ink:    #0E0E0E;
  --ink-2:  #1C1C1A;
  --paper:  #F4F1EA;
  --paper-2:#EAE6DB;
  --acid:   #E8FE53;
  --red:    #FF4D2E;
  --blue:   #2B4FE8;
  --muted:  #6B675E;

  --font-black: 'Archivo Black', sans-serif;
  --font-d: 'Archivo', sans-serif;
  --font-b: 'Inter', sans-serif;
  --font-m: 'JetBrains Mono', monospace;

  --maxw: 1280px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-b);
  background: var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; }

/* selection */
::selection { background: var(--acid); color: var(--ink); }

/* utility */
.hl { background: var(--acid); color: var(--ink); -webkit-text-fill-color: var(--ink); padding: 0 .08em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.strike { position: relative; white-space: nowrap; }
.strike::after { content:''; position:absolute; left:-2%; right:-2%; top:52%; height:.09em; background:var(--red); transform:rotate(-1.5deg); }
.kicker {
  font-family: var(--font-m); font-size: 13px; font-weight: 500;
  letter-spacing: .04em; display:inline-flex; align-items:center; gap:12px;
  text-transform: uppercase;
}
.kicker::before { content:''; width:40px; height:2px; background:var(--ink); flex-shrink:0; }
.kicker.light { color: var(--paper); }
.kicker.light::before { background: var(--acid); }

/* ── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-d); font-weight:700; font-size:15px;
  text-transform:uppercase; letter-spacing:.02em;
  padding:18px 32px; border:2px solid var(--ink); cursor:pointer;
  transition: transform .15s, box-shadow .15s, background .15s, color .15s;
}
.btn-solid { background:var(--ink); color:var(--paper); }
.btn-solid:hover { background:var(--acid); color:var(--ink); box-shadow:6px 6px 0 var(--ink); transform:translate(-2px,-2px); }
.btn-ghost { background:transparent; color:var(--ink); }
.btn-ghost:hover { background:var(--ink); color:var(--paper); }
.btn-acid { background:var(--acid); color:var(--ink); border-color:var(--ink); }
.btn-acid:hover { box-shadow:6px 6px 0 var(--ink); transform:translate(-2px,-2px); }

/* ── NAV ── */
.nav {
  position:sticky; top:0; z-index:500;
  background:var(--paper); border-bottom:2px solid var(--ink);
}
.nav-inner { display:flex; justify-content:space-between; align-items:center; padding:18px 40px; max-width:var(--maxw); margin:0 auto; }
.logo { font-family:var(--font-black); font-size:21px; letter-spacing:-.02em; }
.logo .hl { padding:0 5px; }
.logo img { height:30px; }
.nav-links { display:flex; gap:26px; align-items:center; font-family:var(--font-d); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.nav-links a { position:relative; }
.nav-links a:not(.nav-cta)::after { content:''; position:absolute; left:0; bottom:-4px; width:0; height:2px; background:var(--ink); transition:width .2s; }
.nav-links a:not(.nav-cta):hover::after { width:100%; }
.nav-cta { background:var(--ink); color:var(--paper)!important; padding:9px 16px; }
.nav-cta:hover { background:var(--acid); color:var(--ink)!important; }
.nav-burger { display:none; background:none; border:none; font-size:22px; cursor:pointer; color:var(--ink); }

/* ── HERO ── */
.hero { padding:64px 0 72px; position:relative; }
.hero-grid { display:grid; grid-template-columns:1.25fr 0.75fr; gap:56px; align-items:center; }
.hero-kicker { margin-bottom:26px; }
.hero-h1 {
  font-family:var(--font-black);
  font-size:clamp(40px,6vw,84px); line-height:.92; letter-spacing:-.03em;
  text-transform:uppercase; margin-bottom:30px;
}
.hero-sub { font-size:19px; line-height:1.55; max-width:560px; margin-bottom:36px; font-weight:400; }
.hero-sub b { font-weight:700; }
.hero-cta-row { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-bottom:28px; }
.hero-trust { display:flex; align-items:center; gap:10px; font-family:var(--font-m); font-size:13px; color:var(--muted); }
.hero-trust .stars { color:var(--ink); letter-spacing:2px; }

/* Hero right — foto predominante + stat-timbri */
.hero-visual { display:flex; justify-content:center; }
.hv-photo-wrap { position:relative; width:100%; max-width:400px; }
.hv-photo { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:top center; display:block; border:3px solid var(--ink); background:var(--ink-2); filter:grayscale(1) contrast(1.05); box-shadow:12px 12px 0 var(--ink); }
.hv-tape { position:absolute; top:18px; left:-14px; background:var(--acid); color:var(--ink); font-family:var(--font-m); font-size:12px; font-weight:600; letter-spacing:.04em; padding:7px 14px; border:2px solid var(--ink); transform:rotate(-3deg); }
.hv-stamps { position:absolute; right:-18px; bottom:24px; display:flex; flex-direction:column; gap:10px; }
.hv-stamp { background:var(--paper); border:2px solid var(--ink); padding:10px 14px; box-shadow:4px 4px 0 var(--ink); min-width:118px; }
.hv-stamp:nth-child(odd) { background:var(--acid); }
.hv-stamp-n { font-family:var(--font-black); font-size:26px; line-height:.9; letter-spacing:-.02em; }
.hv-stamp-l { font-family:var(--font-d); font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--ink-2); margin-top:3px; }

/* ── MARQUEE ── */
.marquee { background:var(--ink); color:var(--acid); overflow:hidden; padding:15px 0; white-space:nowrap; border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.marquee-inner { display:inline-block; font-family:var(--font-black); font-size:20px; text-transform:uppercase; letter-spacing:.01em; animation:logoSlide 28s linear infinite; }
.marquee-inner span { padding:0 22px; }
.marquee-inner .dot { color:var(--red); }
.marquee:hover .marquee-inner { animation-play-state:paused; }
@keyframes logoSlide { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── SECTION SCAFFOLD ── */
.section { padding:96px 0; }
.section-ink { background:var(--ink); color:var(--paper); }
.section-ink .hl { color:var(--ink); -webkit-text-fill-color:var(--ink); }
.section-head { margin-bottom:56px; max-width:760px; }
.section-head .kicker { margin-bottom:22px; }
.section-h2 { font-family:var(--font-black); font-size:clamp(32px,5vw,60px); line-height:.96; letter-spacing:-.02em; text-transform:uppercase; }
.section-h2.small { font-size:clamp(28px,4vw,46px); }
.section-intro { font-size:18px; line-height:1.6; margin-top:20px; max-width:620px; color:var(--ink); }
.section-ink .section-intro { color:#C9C5BC; }

/* ── VANITY VS VALUE (signature section) ── */
.vv { background:var(--ink); color:var(--paper); padding:0; border-bottom:2px solid var(--ink); }
.vv-grid { display:grid; grid-template-columns:1fr 1fr; }
.vv-col { padding:72px 56px; }
.vv-col.vanity { border-right:2px solid #333; }
.vv-label { font-family:var(--font-m); font-size:13px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:28px; display:flex; align-items:center; gap:10px; }
.vv-col.vanity .vv-label { color:#777; }
.vv-col.value .vv-label { color:var(--acid); }
.vv-item { display:flex; align-items:flex-start; gap:14px; padding:16px 0; border-bottom:1px solid #2A2A28; font-size:17px; }
.vv-item:last-child { border-bottom:none; }
.vv-item i { font-size:15px; margin-top:3px; flex-shrink:0; }
.vv-col.vanity .vv-item { color:#8B877E; }
.vv-col.vanity .vv-item i { color:#5A5650; }
.vv-col.vanity .vv-item .t { text-decoration:line-through; text-decoration-color:var(--red); text-decoration-thickness:2px; }
.vv-col.value .vv-item i { color:var(--acid); }
.vv-punch { font-family:var(--font-black); font-size:clamp(20px,2.4vw,28px); line-height:1.1; text-transform:uppercase; letter-spacing:-.01em; margin-top:32px; }
.vv-col.value .vv-punch .hl { color:var(--ink); }

/* ── PROBLEMS ── */
.problems-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:2px solid var(--ink); }
.prob {
  padding:36px 30px; border-right:2px solid var(--ink); border-bottom:2px solid var(--ink);
  background:var(--paper); color:var(--ink); transition:background .2s;
}
.prob:nth-child(3n) { border-right:none; }
.prob:nth-child(n+4) { border-bottom:none; }
.prob:hover { background:var(--acid); }
.prob-num { font-family:var(--font-m); font-size:12px; color:var(--muted); margin-bottom:18px; }
.prob-icon { font-size:24px; margin-bottom:16px; color:var(--ink); }
.prob h4 { font-family:var(--font-d); font-weight:800; font-size:18px; text-transform:uppercase; letter-spacing:-.01em; margin-bottom:12px; line-height:1.4; display:inline-block; background:var(--acid); color:var(--ink); padding:2px 8px; }
.prob:hover h4 { background:var(--ink); color:var(--acid); }
.prob p { font-size:14px; line-height:1.55; color:var(--ink-2); }
.prob:hover p { color:var(--ink); }

/* ── METHOD ── */
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:#333; border:2px solid var(--ink); }
.phase { background:var(--ink); padding:34px 30px; transition:background .2s; position:relative; }
.phase:hover { background:var(--ink-2); }
.phase-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.phase-num { font-family:var(--font-black); font-size:40px; color:#3A3A38; line-height:1; transition:color .2s; }
.phase:hover .phase-num { color:var(--acid); }
.phase-icon { width:42px; height:42px; border:2px solid #3A3A38; display:flex; align-items:center; justify-content:center; color:var(--acid); font-size:17px; transition:border-color .2s; }
.phase:hover .phase-icon { border-color:var(--acid); }
.phase h4 { font-family:var(--font-d); font-weight:800; font-size:19px; text-transform:uppercase; color:var(--paper); margin-bottom:14px; }
.phase ul { list-style:none; display:flex; flex-direction:column; gap:8px; }
.phase li { font-size:13px; color:#9D998F; padding-left:16px; position:relative; line-height:1.45; }
.phase li::before { content:'→'; position:absolute; left:0; color:var(--acid); }

/* ── STATS BAND ── */
.stats-band { background:var(--acid); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); max-width:var(--maxw); margin:0 auto; }
.stat { padding:44px 32px; border-right:2px solid var(--ink); text-align:left; }
.stat:last-child { border-right:none; }
.stat-n { font-family:var(--font-black); font-size:clamp(38px,5vw,60px); line-height:.9; letter-spacing:-.02em; margin-bottom:8px; }
.stat-l { font-family:var(--font-d); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--ink-2); }

/* ── SERVICES ── */
.services-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0; border:2px solid var(--ink); }
.svc { padding:44px 40px; border-right:2px solid var(--ink); border-bottom:2px solid var(--ink); background:var(--paper); transition:background .2s; position:relative; }
.svc:nth-child(2n) { border-right:none; }
.svc:nth-child(n+3) { border-bottom:none; }
.svc:hover { background:var(--ink); color:var(--paper); }
.svc-top { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.svc-icon { width:54px; height:54px; background:var(--ink); color:var(--acid); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; transition:background .2s,color .2s; }
.svc:hover .svc-icon { background:var(--acid); color:var(--ink); }
.svc-tag { font-family:var(--font-m); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.svc:hover .svc-tag { color:var(--acid); }
.svc h3 { font-family:var(--font-d); font-weight:800; font-size:24px; text-transform:uppercase; letter-spacing:-.01em; margin-top:4px; }
.svc p { font-size:15px; line-height:1.6; margin-bottom:24px; color:var(--ink-2); }
.svc:hover p { color:#C9C5BC; }
.svc-list { list-style:none; display:flex; flex-direction:column; gap:9px; margin-bottom:28px; }
.svc-list li { font-size:14px; display:flex; align-items:flex-start; gap:10px; line-height:1.45; }
.svc-list li i { color:var(--blue); font-size:12px; margin-top:3px; flex-shrink:0; }
.svc:hover .svc-list li i { color:var(--acid); }
.svc-link { font-family:var(--font-d); font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:.02em; display:inline-flex; align-items:center; gap:8px; border-bottom:2px solid var(--ink); padding-bottom:3px; transition:gap .2s; }
.svc:hover .svc-link { border-color:var(--acid); color:var(--acid); }
.svc:hover .svc-link { gap:12px; }

/* ── LOGOS ── */
.logos { background:var(--paper-2); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); overflow:hidden; }
.logos-label { text-align:center; padding:22px 0 16px; font-family:var(--font-m); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.logos-track { display:flex; overflow:hidden; background:var(--paper); }
.logos-inner { display:flex; align-items:center; animation:logoSlide 38s linear infinite; }
.logos-inner:hover { animation-play-state:paused; }
.logo-item { display:flex; align-items:center; justify-content:center; padding:20px 40px; flex-shrink:0; height:96px; border-right:2px solid var(--paper-2); }
.logo-item img { height:38px; width:auto; max-width:130px; object-fit:contain; }

/* ── PULL QUOTE ── */
.pullquote { background:var(--acid); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); padding:84px 0; }
.pullquote-inner { max-width:1000px; margin:0 auto; position:relative; }
.pullquote-mark { font-family:Georgia,serif; font-size:120px; line-height:.6; color:var(--ink); display:block; height:54px; }
.pullquote q { quotes:none; }
.pullquote-text { font-family:var(--font-black); font-size:clamp(26px,4vw,50px); line-height:1.04; letter-spacing:-.02em; color:var(--ink); display:block; margin-bottom:28px; }
.pullquote-by { font-family:var(--font-m); font-size:14px; letter-spacing:.04em; color:var(--ink-2); display:inline-flex; align-items:center; gap:12px; }
.pullquote-by::before { content:''; width:32px; height:2px; background:var(--ink); }

/* ── TESTIMONIALS ── */
.testi-head-row { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:20px; }
.testi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.tcard { position:relative; background:var(--paper); border:2px solid var(--ink); padding:30px 28px; display:flex; flex-direction:column; transition:transform .15s, box-shadow .15s; overflow:hidden; }
.tcard::before { content:'\201D'; position:absolute; top:6px; right:20px; font-family:Georgia,serif; font-size:90px; line-height:1; color:var(--ink); pointer-events:none; }
.tcard::after { content:''; position:absolute; top:0; left:0; width:46px; height:8px; background:var(--acid); }
.tcard:hover { transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.tcard-stars { position:relative; z-index:1; color:#0E0E0E; background:var(--acid); display:inline-block; padding:3px 8px; font-size:12px; letter-spacing:2px; margin-bottom:18px; margin-top:6px; }
.tcard-text { position:relative; z-index:1; font-size:15px; line-height:1.6; margin-bottom:24px; flex:1; }
.tcard-text b { font-weight:700; }
.tcard-author { display:flex; align-items:center; gap:13px; padding-top:20px; border-top:2px solid var(--ink); }
.tcard-av { width:44px; height:44px; background:var(--ink); color:var(--acid); font-family:var(--font-black); font-size:14px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tcard-name { font-family:var(--font-d); font-weight:800; font-size:14px; text-transform:uppercase; letter-spacing:-.01em; }
.tcard-role { font-size:12px; color:var(--muted); }

/* ── ABOUT ── */
.about { background:var(--ink); color:var(--paper); }
.about-grid { display:grid; grid-template-columns:0.85fr 1fr; gap:64px; align-items:flex-start; }
.about-photo-wrap { position:relative; }
.about-photo { width:100%; height:auto; border:2px solid var(--acid); display:block; background:var(--ink-2); }
.about-photo-tag { position:absolute; bottom:-2px; left:-2px; background:var(--acid); color:var(--ink); font-family:var(--font-m); font-size:12px; font-weight:600; padding:8px 14px; letter-spacing:.04em; }
.about-content .kicker { margin-bottom:24px; }
.about-h2 { font-family:var(--font-black); font-size:clamp(30px,4vw,50px); line-height:.96; text-transform:uppercase; letter-spacing:-.02em; margin-bottom:24px; }
.about-h2 .hl { color:var(--ink); -webkit-text-fill-color:var(--ink); }
.about-content p { font-size:16px; line-height:1.7; color:#C9C5BC; margin-bottom:18px; }
.about-content p b { color:var(--paper); font-weight:600; }
.about-sign { font-family:var(--font-black); font-size:20px; color:var(--acid); margin-top:24px; margin-bottom:30px; text-transform:uppercase; letter-spacing:-.01em; }

/* ── BLOG ── */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.bcard { border:2px solid var(--ink); background:var(--paper); transition:transform .15s, box-shadow .15s; }
.bcard:hover { transform:translate(-3px,-3px); box-shadow:7px 7px 0 var(--ink); }
.bcard-img { aspect-ratio:16/10; border-bottom:2px solid var(--ink); overflow:hidden; background:var(--ink); }
.bcard-img img { width:100%; height:100%; object-fit:cover; filter:grayscale(.3); transition:filter .2s, transform .3s; }
.bcard:hover .bcard-img img { filter:grayscale(0); transform:scale(1.04); }
.bcard-body { padding:24px; }
.bcard-cat { font-family:var(--font-m); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); margin-bottom:10px; }
.bcard h4 { font-family:var(--font-d); font-weight:800; font-size:18px; line-height:1.15; text-transform:uppercase; letter-spacing:-.01em; margin-bottom:10px; }
.bcard p { font-size:14px; line-height:1.55; color:var(--ink-2); margin-bottom:16px; }
.bcard-more { font-family:var(--font-d); font-weight:700; font-size:13px; text-transform:uppercase; display:inline-flex; align-items:center; gap:7px; border-bottom:2px solid var(--ink); padding-bottom:2px; }

/* ── FAQ ── */
.faq-list { border-top:2px solid var(--ink); }
.faq-item { border-bottom:2px solid var(--ink); }
.faq-item summary { list-style:none; cursor:pointer; padding:26px 4px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-family:var(--font-d); font-weight:800; font-size:clamp(17px,2vw,22px); text-transform:uppercase; letter-spacing:-.01em; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary i { flex-shrink:0; font-size:16px; transition:transform .2s; width:38px; height:38px; border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; }
.faq-item[open] summary i { transform:rotate(45deg); background:var(--acid); }
.faq-item summary:hover i { background:var(--acid); }
.faq-a { padding:0 4px 28px; font-size:16px; line-height:1.7; max-width:820px; color:var(--ink-2); }
.faq-a b { font-weight:700; color:var(--ink); }

/* ── FINAL CTA ── */
.final { background:var(--acid); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); padding:90px 0; }
.final-inner { max-width:860px; margin:0 auto; text-align:center; }
.final h2 { font-family:var(--font-black); font-size:clamp(38px,6vw,76px); line-height:.92; text-transform:uppercase; letter-spacing:-.03em; margin-bottom:24px; }
.final p { font-size:19px; line-height:1.6; margin-bottom:38px; max-width:600px; margin-left:auto; margin-right:auto; }
.final p b { font-weight:700; }
.final-checklist { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-bottom:40px; }
.final-chip { display:inline-flex; align-items:center; gap:8px; background:var(--ink); color:var(--paper); font-family:var(--font-d); font-weight:600; font-size:13px; padding:10px 18px; text-transform:uppercase; letter-spacing:.02em; }
.final-chip i { color:var(--acid); font-size:12px; }
.final-note { font-family:var(--font-m); font-size:13px; color:var(--ink-2); margin-top:18px; }

/* ── FOOTER ── */
.footer { background:var(--ink); color:var(--paper); padding:64px 0 32px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:56px; margin-bottom:52px; }
.footer-logo { font-family:var(--font-black); font-size:24px; margin-bottom:18px; }
.footer-logo .hl { padding:0 5px; color:var(--ink); }
.footer-brand p { font-size:14px; line-height:1.65; color:#9D998F; max-width:320px; margin-bottom:22px; }
.footer-socials { display:flex; gap:12px; }
.footer-socials a { width:40px; height:40px; border:2px solid #3A3A38; display:flex; align-items:center; justify-content:center; font-size:16px; color:var(--paper); transition:all .2s; }
.footer-socials a:hover { background:var(--acid); color:var(--ink); border-color:var(--acid); }
.footer-col h5 { font-family:var(--font-m); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:20px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer-col a { font-size:14px; color:#C9C5BC; transition:color .2s; }
.footer-col a:hover { color:var(--acid); }
.footer-bottom { border-top:1px solid #2A2A28; padding-top:28px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-family:var(--font-m); font-size:12px; color:var(--muted); }
.footer-bottom a { color:var(--muted); }
.footer-bottom a:hover { color:var(--acid); }

/* ── REVEAL ── */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .5s ease, transform .5s ease; }
.reveal.vis { opacity:1; transform:translateY(0); }

/* ── RESPONSIVE ── */
@media (max-width:1080px) {
  .hero-grid { grid-template-columns:1fr; gap:44px; }
  .hero-visual { justify-content:flex-start; }
  .hv-photo-wrap { max-width:360px; }
  .hv-photo { box-shadow:8px 8px 0 var(--ink); }
  .vv-grid { grid-template-columns:1fr; }
  .vv-col.vanity { border-right:none; border-bottom:2px solid #333; }
  .about-grid { grid-template-columns:1fr; gap:40px; }
  .about-photo-wrap { max-width:380px; }
}
@media (max-width:900px) {
  .nav-links { display:none; }
  .nav-burger { display:block; }
  .problems-grid { grid-template-columns:1fr 1fr; }
  .prob:nth-child(3n) { border-right:2px solid var(--ink); }
  .prob:nth-child(2n) { border-right:none; }
  .prob:nth-child(n+4) { border-bottom:2px solid var(--ink); }
  .prob:nth-child(n+5) { border-bottom:none; }
  .method-grid { grid-template-columns:1fr 1fr; }
  .services-grid { grid-template-columns:1fr; }
  .svc { border-right:none; }
  .svc:nth-child(3) { border-bottom:2px solid var(--ink); }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat:nth-child(2n) { border-right:none; }
  .stat:nth-child(1),.stat:nth-child(2) { border-bottom:2px solid var(--ink); }
  .testi-grid { grid-template-columns:1fr 1fr; }
  .blog-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1/-1; }
}
@media (max-width:600px) {
  .wrap { padding:0 22px; }
  .nav-inner { padding:16px 22px; }
  .problems-grid { grid-template-columns:1fr; }
  .prob { border-right:none!important; border-bottom:2px solid var(--ink)!important; }
  .prob:last-child { border-bottom:none!important; }
  .method-grid { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:1fr; }
  .stat { border-right:none; border-bottom:2px solid var(--ink); }
  .stat:last-child { border-bottom:none; }
  .testi-grid { grid-template-columns:1fr; }
  .vv-col { padding:48px 28px; }
  .section { padding:64px 0; }
  .hero { padding:48px 0 56px; }
  .hv-stamps { right:-6px; }
  .hv-stamp { min-width:104px; }
  .pullquote { padding:60px 0; }
}

/* ═══════════════════════════════════════════
   BLOG · ARTICOLI · PORTFOLIO — stili nativi WP
   ═══════════════════════════════════════════ */

/* ── Page header (titolo archivio/blog/single) ── */
.page-hero { background:var(--ink); color:var(--paper); padding:80px 0 64px; border-bottom:2px solid var(--ink); }
.page-hero .breadcrumb { font-family:var(--font-m); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:24px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.page-hero .breadcrumb a { color:var(--muted); }
.page-hero .breadcrumb a:hover { color:var(--acid); }
.page-hero .breadcrumb .sep { color:var(--red); }
.page-hero h1 { font-family:var(--font-black); font-size:clamp(34px,5vw,64px); line-height:.95; letter-spacing:-.03em; text-transform:uppercase; }
.page-hero h1 .hl { color:var(--ink); -webkit-text-fill-color:var(--ink); }
.page-hero .page-hero-sub { font-size:18px; line-height:1.6; color:#C9C5BC; margin-top:20px; max-width:640px; }

/* ── Griglia articoli (blog index / archive) ── */
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; padding:80px 0; }
.post-card { background:var(--paper); border:2px solid var(--ink); display:flex; flex-direction:column; transition:transform .15s, box-shadow .15s; overflow:hidden; }
.post-card:hover { transform:translate(-4px,-4px); box-shadow:8px 8px 0 var(--ink); }
.post-card-thumb { display:block; aspect-ratio:16/10; overflow:hidden; border-bottom:2px solid var(--ink); background:var(--paper-2); }
.post-card-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.post-card-body { padding:26px 24px; display:flex; flex-direction:column; flex:1; }
.post-card-meta { font-family:var(--font-m); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:14px; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.post-card-cat { background:var(--acid); color:var(--ink); padding:2px 8px; font-weight:600; }
.post-card h2, .post-card h3 { font-family:var(--font-d); font-weight:800; font-size:20px; line-height:1.15; text-transform:uppercase; letter-spacing:-.01em; margin-bottom:12px; color:var(--ink); }
.post-card h2 a, .post-card h3 a { color:var(--ink); }
.post-card h2 a:hover, .post-card h3 a:hover { color:var(--blue); }
.post-card-excerpt { font-size:14px; line-height:1.6; color:var(--ink-2); margin-bottom:20px; flex:1; }
.post-card-link { font-family:var(--font-d); font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.02em; display:inline-flex; align-items:center; gap:8px; border-bottom:2px solid var(--ink); padding-bottom:3px; align-self:flex-start; transition:gap .15s; color:var(--ink); }
.post-card-link:hover { gap:12px; color:var(--blue); border-color:var(--blue); }

/* ── Articolo singolo ── */
.single-article { padding:72px 0 88px; }
.article-wrap { max-width:760px; margin:0 auto; }
.article-thumb { width:100%; height:auto !important; display:block; border:2px solid var(--ink); margin-bottom:40px; }
.article-wrap img{ height:auto !important; max-width:100%; }
.article-body { font-size:17px; line-height:1.8; color:var(--ink-2); }
.article-body > * { margin-bottom:24px; }
.article-body h2 { font-family:var(--font-black); font-size:clamp(24px,3vw,34px); line-height:1.05; text-transform:uppercase; letter-spacing:-.02em; color:var(--ink); margin-top:48px; margin-bottom:20px; }
.article-body h3 { font-family:var(--font-d); font-weight:800; font-size:22px; text-transform:uppercase; letter-spacing:-.01em; color:var(--ink); margin-top:36px; margin-bottom:16px; }
.article-body h4 { font-family:var(--font-d); font-weight:800; font-size:18px; text-transform:uppercase; color:var(--ink); margin-top:28px; margin-bottom:12px; }
.article-body p { margin-bottom:24px; }
.article-body a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.article-body a:hover { background:var(--acid); color:var(--ink); text-decoration:none; }
.article-body strong, .article-body b { font-weight:700; color:var(--ink); }
.article-body ul, .article-body ol { margin:0 0 24px 22px; }
.article-body li { margin-bottom:10px; line-height:1.7; }
.article-body blockquote { border-left:4px solid var(--acid); background:var(--paper-2); padding:24px 28px; margin:32px 0; font-family:var(--font-d); font-weight:600; font-size:20px; line-height:1.4; color:var(--ink); }
.article-body img { border:2px solid var(--ink); height:auto; }
.article-body figure { margin:32px 0; }
.article-body figcaption { font-family:var(--font-m); font-size:12px; color:var(--muted); margin-top:10px; text-align:center; }
.article-body code { font-family:var(--font-m); font-size:.9em; background:var(--ink); color:var(--acid); padding:2px 6px; }
.article-body pre { background:var(--ink); color:var(--paper); padding:24px; overflow-x:auto; border:2px solid var(--ink); }
.article-body pre code { background:none; padding:0; color:var(--paper); }

/* ── Meta articolo singolo ── */
.article-meta { font-family:var(--font-m); font-size:13px; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); margin-bottom:30px; display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.article-meta .cat { background:var(--acid); color:var(--ink); padding:3px 10px; font-weight:600; }

/* ── Tag e condivisione fine articolo ── */
.article-foot { max-width:760px; margin:48px auto 0; padding-top:32px; border-top:2px solid var(--ink); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px; }
.article-tags { display:flex; gap:8px; flex-wrap:wrap; }
.article-tag { font-family:var(--font-m); font-size:12px; text-transform:uppercase; letter-spacing:.03em; border:2px solid var(--ink); padding:4px 12px; color:var(--ink); transition:all .15s; }
.article-tag:hover { background:var(--ink); color:var(--paper); }

/* ── Paginazione ── */
.pagination { display:flex; justify-content:center; gap:10px; padding:0 0 88px; flex-wrap:wrap; }
.pagination .page-numbers { font-family:var(--font-d); font-weight:700; font-size:15px; min-width:48px; height:48px; display:flex; align-items:center; justify-content:center; border:2px solid var(--ink); padding:0 14px; transition:all .15s; color:var(--ink); }
.pagination .page-numbers:hover { background:var(--ink); color:var(--paper); }
.pagination .page-numbers.current { background:var(--acid); color:var(--ink); }
.pagination .page-numbers.dots { border:none; }

/* ── Portfolio ── */
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding:80px 0; }
.portfolio-card { position:relative; border:2px solid var(--ink); overflow:hidden; aspect-ratio:4/3; background:var(--ink); display:block; }
.portfolio-card img { width:100%; height:100%; object-fit:cover; transition:transform .3s, opacity .3s; opacity:.85; }
.portfolio-card:hover img { transform:scale(1.05); opacity:.4; }
.portfolio-card-label { position:absolute; left:0; bottom:0; right:0; padding:24px; z-index:2; }
.portfolio-card-cat { font-family:var(--font-m); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--acid); margin-bottom:8px; display:block; }
.portfolio-card h3 { font-family:var(--font-black); font-size:20px; text-transform:uppercase; letter-spacing:-.01em; color:var(--paper); line-height:1; }

/* ── Author box ── */
.author-box { max-width:760px; margin:48px auto 0; background:var(--ink); color:var(--paper); border:2px solid var(--ink); padding:32px; display:flex; gap:24px; align-items:flex-start; }
.author-box img { width:72px; height:72px; border:2px solid var(--acid); flex-shrink:0; }
.author-box-name { font-family:var(--font-d); font-weight:800; font-size:18px; text-transform:uppercase; color:var(--paper); margin-bottom:8px; }
.author-box-bio { font-size:14px; line-height:1.6; color:#C9C5BC; }

/* ── Commenti (essenziale, coerente) ── */
.comments-area { max-width:760px; margin:56px auto 0; }
.comments-area h3 { font-family:var(--font-black); font-size:24px; text-transform:uppercase; letter-spacing:-.02em; margin-bottom:28px; }
.comment-list { list-style:none; }
.comment-body { border:2px solid var(--ink); padding:24px; margin-bottom:20px; background:var(--paper); }
.comment-author { font-family:var(--font-d); font-weight:800; font-size:15px; text-transform:uppercase; }
.comment-meta { font-family:var(--font-m); font-size:12px; color:var(--muted); margin-bottom:12px; }
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea { width:100%; border:2px solid var(--ink); background:var(--paper); padding:14px 16px; font-family:var(--font-b); font-size:15px; margin-bottom:16px; }
.comment-form input:focus, .comment-form textarea:focus { outline:none; border-color:var(--blue); }

/* ── Search / 404 ── */
.notice-block { max-width:680px; margin:0 auto; text-align:center; padding:100px 0; }
.notice-block h1 { font-family:var(--font-black); font-size:clamp(48px,10vw,120px); line-height:.9; letter-spacing:-.03em; margin-bottom:20px; }
.notice-block p { font-size:18px; line-height:1.6; color:var(--ink-2); margin-bottom:32px; }
.search-form { display:flex; gap:0; max-width:480px; margin:0 auto; border:2px solid var(--ink); }
.search-form input[type=search] { flex:1; border:none; padding:16px 18px; font-family:var(--font-b); font-size:16px; background:var(--paper); }
.search-form input[type=search]:focus { outline:none; }
.search-form button { background:var(--ink); color:var(--paper); border:none; padding:0 24px; font-family:var(--font-d); font-weight:700; text-transform:uppercase; cursor:pointer; }
.search-form button:hover { background:var(--acid); color:var(--ink); }

/* ── WordPress utility classes ── */
.aligncenter { margin-left:auto; margin-right:auto; }
.alignleft { float:left; margin:0 24px 16px 0; }
.alignright { float:right; margin:0 0 16px 24px; }
.wp-caption { max-width:100%; }
.sticky, .gallery-caption, .bypostauthor { } /* placeholder per validatori */
.screen-reader-text { position:absolute; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

/* ── Responsive blog/portfolio ── */
@media(max-width:900px){
  .post-grid { grid-template-columns:1fr 1fr; }
  .portfolio-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:600px){
  .post-grid { grid-template-columns:1fr; gap:20px; padding:56px 0; }
  .portfolio-grid { grid-template-columns:1fr; }
  .author-box { flex-direction:column; gap:16px; }
  .page-hero { padding:56px 0 44px; }
  .single-article { padding:48px 0 64px; }
}

/* ── Sottomenu a tendina (Servizi) ── */
.nav-links li { position: relative; }
.nav-links .sub-menu {
  position: absolute; top: calc(100% + 14px); left: 0;
  background: var(--paper); border: 2px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  min-width: 240px; list-style: none; padding: 0; margin: 0;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility .18s; z-index: 600;
}
.nav-links .menu-item-has-children:hover > .sub-menu,
.nav-links .menu-item-has-children.is-open > .sub-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.nav-links .sub-menu li { display: block; }
.nav-links .sub-menu a {
  display: block; padding: 13px 18px; font-size: 12px;
  border-bottom: 1px solid var(--paper-2); white-space: nowrap;
}
.nav-links .sub-menu li:last-child a { border-bottom: none; }
.nav-links .sub-menu a:hover { background: var(--acid); color: var(--ink); }
.nav-links .sub-menu a::after { display: none; }
/* freccetta accanto a Servizi */
.nav-links .menu-item-has-children > a::before {
  content: ''; display: inline-block; width: 6px; height: 6px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); margin-right: 7px; vertical-align: middle;
  position: relative; top: -2px;
}
@media (max-width: 900px) {
  .nav-links .sub-menu {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: none; border-left: 2px solid var(--acid);
    margin: 8px 0 8px 12px; min-width: 0; display: none;
  }
  .nav-links .menu-item-has-children.is-open > .sub-menu { display: block; }
}

/* ── Fix nav generata da WordPress (menu vero) ── */
/* Toglie i puntini quando .nav-links è un <ul> generato da wp_nav_menu */
ul.nav-links { list-style: none; margin: 0; padding: 0; }
ul.nav-links > li { list-style: none; }
ul.nav-links > li > a { display: inline-flex; align-items: center; }
/* Rende pulsante la voce con classe .menu-cta (assegnata dal menu WP) */
.nav-links .menu-cta > a {
  background: var(--ink); color: var(--paper) !important;
  padding: 9px 16px;
}
.nav-links .menu-cta > a:hover { background: var(--acid); color: var(--ink) !important; }
.nav-links .menu-cta > a::after { display: none !important; }

/* ── Box CTA fine articolo [cta_consulenza] ── */
.cta-box{
  display:grid; grid-template-columns:240px 1fr; gap:0;
  background:var(--ink); color:var(--paper);
  border:2px solid var(--ink); box-shadow:10px 10px 0 var(--acid);
  margin:56px 0 32px; overflow:hidden;
}
.cta-box-photo{ position:relative; background:var(--ink-2); }
.cta-box-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; display:block; filter:grayscale(.2); }
.cta-box-body{ padding:36px 38px; display:flex; flex-direction:column; justify-content:center; }
.cta-box-kicker{ font-family:var(--font-m); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--acid); margin-bottom:14px; }
.cta-box .cta-box-title{ font-family:var(--font-black); font-size:clamp(22px,2.6vw,30px); line-height:1.02; text-transform:uppercase; letter-spacing:-.02em; color:var(--paper) !important; margin:0 0 16px; }
.cta-box .cta-box-title .cta-hl{ background:var(--acid); color:var(--ink) !important; -webkit-text-fill-color:var(--ink); padding:0 .08em; }
.cta-hl{ background:var(--acid); color:var(--ink); -webkit-text-fill-color:var(--ink); padding:0 .08em; }
.cta-box-text{ font-size:15px; line-height:1.6; color:#C9C5BC; margin:0 0 24px; }
.cta-box .cta-box-btn{
  display:inline-flex; align-items:center; gap:10px; align-self:flex-start;
  font-family:var(--font-d); font-weight:700; font-size:15px; text-transform:uppercase; letter-spacing:.02em;
  padding:16px 30px; background:var(--acid); color:var(--ink) !important; border:2px solid var(--acid);
  text-decoration:none !important; transition:transform .15s, box-shadow .15s;
}
.cta-box .cta-box-btn:hover{ box-shadow:5px 5px 0 var(--paper); transform:translate(-2px,-2px); background:var(--acid); color:var(--ink) !important; }
@media(max-width:680px){
  .cta-box{ grid-template-columns:1fr; box-shadow:6px 6px 0 var(--acid); }
  .cta-box-photo{ height:auto !important; }
  .cta-box-photo img{ height:auto !important; object-fit:contain !important; }
  .cta-box-body{ padding:28px 24px; }
}