/*
Theme Name: Luca Monti
Theme URI: https://lucamonti.it
Author: Luca Monti
Author URI: https://lucamonti.it
Description: Tema editoriale per critico d'arte. Stile zine/risograph: carta crema, sovrastampe pop, tipografia Archivo Black e ornamenti calligrafici. Pubblica articoli generici di WordPress, organizzati con le categorie standard.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lucamonti
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --paper:#F4EDDF;
  --ink:#15110E;
  --orange:#FF5A1F;
  --pink:#FF4D8D;
  --blue:#2A4FE0;
  --yellow:#FFD23F;
  --muted:#6f6a61;
  --muted-2:#8a857c;
  --line:#e3ddcf;
  --max:1240px;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box;}
html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Hanken Grotesk',system-ui,sans-serif;
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
.lm-wrap{ max-width:var(--max); margin:0 auto; padding-left:40px; padding-right:40px; }
.lm-display{ font-family:'Archivo',sans-serif; font-weight:900; letter-spacing:-0.03em; }
.lm-hand{ font-family:'Caveat',cursive; font-weight:600; color:var(--blue); transform:rotate(-2deg); display:inline-block; }
.lm-rule{ border:0; border-top:3px solid var(--ink); }

/* ============================================================
   BUTTONS / BADGES
   ============================================================ */
.lm-btn{ display:inline-block; background:var(--ink); color:#fff; font-weight:700; font-size:15px; padding:13px 24px; border-radius:100px; }
.lm-btn-outline{ display:inline-block; border:2px solid var(--ink); color:var(--ink); font-weight:700; font-size:15px; padding:12px 22px; border-radius:100px; }
.lm-badge{ display:inline-block; font-family:'Archivo',sans-serif; font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:0.06em; padding:6px 13px; border-radius:100px; }
.lm-kicker{ font-family:'Archivo',sans-serif; font-weight:800; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:var(--pink); }
.lm-stars{ color:#FFB020; letter-spacing:2px; }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.lm-header{ border-bottom:3px solid var(--ink); }
.lm-header .lm-wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:20px; padding-bottom:20px; gap:20px; }
.lm-brand{ display:flex; align-items:baseline; gap:11px; }
.lm-brand .name{ font-family:'Archivo',sans-serif; font-weight:900; font-size:24px; letter-spacing:-0.03em; }
.lm-brand .tag{ font-size:11px; font-weight:700; color:var(--pink); text-transform:uppercase; letter-spacing:0.12em; }
.lm-menu{ display:flex; gap:4px; flex-wrap:wrap; align-items:center; }
.lm-menu a{ font-weight:600; font-size:13px; padding:7px 14px; border-radius:100px; }
.lm-menu a:hover{ background:var(--ink); color:#fff; }
.lm-menu .current-menu-item > a,
.lm-menu .current_page_item > a,
.lm-menu a[aria-current="page"]{ background:var(--orange); color:#fff; }
.lm-menu li:last-child a{ background:var(--ink); color:#fff; }
.lm-menu ul{ list-style:none; display:flex; gap:4px; flex-wrap:wrap; }
.lm-nav-toggle{ display:none; }

/* ============================================================
   PAGE TITLE BAND
   ============================================================ */
.lm-titleband{ border-bottom:3px solid var(--ink); }
.lm-titleband .lm-wrap{ padding-top:56px; padding-bottom:44px; }
.lm-pagetitle{ font-family:'Archivo',sans-serif; font-weight:900; font-size:84px; line-height:0.9; letter-spacing:-0.04em; margin-top:12px; text-transform:uppercase; }
.lm-filters{ display:flex; gap:8px; margin-top:28px; flex-wrap:wrap; font-weight:600; font-size:14px; }
.lm-chip{ padding:9px 18px; border:2px solid var(--ink); border-radius:100px; }
.lm-chip.is-active{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* ============================================================
   HERO (front page)
   ============================================================ */
.lm-hero{ position:relative; border-bottom:3px solid var(--ink); overflow:hidden; }
.lm-hero .lm-wrap{ position:relative; padding-top:72px; padding-bottom:64px; }
.lm-hero .inner{ max-width:720px; position:relative; z-index:2; }
.lm-hero h1{ font-family:'Archivo',sans-serif; font-weight:900; font-size:104px; line-height:0.88; letter-spacing:-0.045em; }
.lm-hero h1 .accent{ color:var(--orange); }
.lm-hero .lead{ font-size:22px; line-height:1.45; margin-top:28px; max-width:500px; color:#3a342c; }
.lm-hero .cta{ display:flex; gap:12px; margin-top:32px; flex-wrap:wrap; }
.lm-hero .sticker{ display:inline-block; transform:rotate(-3deg); background:var(--ink); color:var(--yellow); font-family:'Archivo',sans-serif; font-weight:800; font-size:13px; padding:7px 15px; border-radius:5px; margin-bottom:26px; letter-spacing:0.02em; }
.lm-blob{ position:absolute; border-radius:50%; mix-blend-mode:multiply; z-index:1; }
.lm-blob.b1{ top:-90px; right:-40px; width:380px; height:380px; background:var(--pink); opacity:.92; }
.lm-blob.b2{ top:60px; right:160px; width:300px; height:300px; background:var(--blue); opacity:.9; }
.lm-blob.b3{ bottom:-110px; right:330px; width:220px; height:220px; background:var(--yellow); opacity:.85; }
.lm-grain{ position:absolute; inset:0; background-image:radial-gradient(rgba(0,0,0,0.16) 0.5px,transparent 0.6px); background-size:3px 3px; mix-blend-mode:multiply; pointer-events:none; z-index:60; }

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.lm-section{ padding-top:56px; padding-bottom:56px; }
.lm-sechead{ display:flex; align-items:center; gap:16px; margin-bottom:28px; }
.lm-sechead h2{ font-family:'Archivo',sans-serif; font-weight:900; font-size:26px; letter-spacing:-0.02em; }
.lm-sechead .bar{ flex:1; height:3px; background:var(--ink); }
.lm-sechead .more{ font-weight:700; font-size:13px; color:var(--pink); white-space:nowrap; }

/* ============================================================
   CARD GRID
   ============================================================ */
.lm-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.lm-grid.two{ grid-template-columns:repeat(2,1fr); }
.lm-grid.feature{ grid-template-columns:1.5fr 1fr; }
.lm-card{ border:3px solid var(--ink); border-radius:8px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.lm-card.blue{ background:var(--blue); color:#fff; }
.lm-card.yellow{ background:var(--yellow); }
.lm-card.dark{ background:var(--ink); color:var(--paper); }
.lm-card .thumb{ height:200px; background:var(--blue); }
.lm-card.big .thumb{ height:280px; }
.lm-card .body{ padding:22px; }
.lm-card .body.lg{ padding:26px; }
.lm-card .meta{ display:flex; justify-content:space-between; align-items:baseline; }
.lm-card h3{ font-family:'Archivo',sans-serif; font-weight:900; line-height:1.02; letter-spacing:-0.02em; margin-top:8px; font-size:24px; }
.lm-card.big h3{ font-size:34px; line-height:1; margin-top:10px; }
.lm-card p{ font-size:14px; color:var(--muted); line-height:1.45; margin-top:10px; }
.lm-card.blue p, .lm-card.dark p{ color:rgba(255,255,255,.78); }
.lm-card .cat{ font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.08em; color:var(--orange); }
.lm-card .thumb-cap{ display:flex; align-items:flex-end; height:100%; padding:14px; }
.lm-card .thumb-cap span{ background:#fff; color:var(--ink); font-size:11px; font-weight:600; padding:4px 8px; border-radius:4px; }

/* placeholder fills */
.fill-stripe-o{ background:repeating-linear-gradient(45deg,var(--orange),var(--orange) 26px,var(--pink) 26px,var(--pink) 52px); }
.fill-stripe-py{ background:repeating-linear-gradient(-45deg,var(--pink),var(--pink) 22px,var(--yellow) 22px,var(--yellow) 44px); }
.fill-stripe-bp{ background:repeating-linear-gradient(45deg,var(--blue),var(--blue) 22px,var(--pink) 22px,var(--pink) 44px); }
.fill-grad-blue{ background:linear-gradient(135deg,var(--blue),#0c1f6e); }
.fill-grad-yo{ background:linear-gradient(135deg,var(--yellow),var(--orange)); }
.fill-grad-dark{ background:linear-gradient(135deg,#3a3a3a,var(--ink)); }

/* ============================================================
   DARK BAND (essays)
   ============================================================ */
.lm-band{ background:var(--ink); color:var(--paper); border-top:3px solid var(--ink); border-bottom:3px solid var(--ink); }
.lm-band .lm-wrap{ padding-top:52px; padding-bottom:52px; }
.lm-band .head{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:28px; }
.lm-band h2{ font-family:'Archivo',sans-serif; font-weight:900; font-size:26px; color:var(--yellow); letter-spacing:-0.02em; }
.lm-band .more{ font-size:13px; font-weight:700; color:var(--orange); }
.lm-essays{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.lm-essay{ border-top:2px solid var(--pink); padding-top:16px; }
.lm-essay:nth-child(2){ border-top-color:var(--blue); }
.lm-essay:nth-child(3){ border-top-color:var(--yellow); }
.lm-essay .num{ font-family:'Archivo',sans-serif; font-weight:800; font-size:13px; color:var(--pink); }
.lm-essay h3{ font-family:'Archivo',sans-serif; font-weight:800; font-size:25px; line-height:1.08; margin-top:8px; }
.lm-essay .small{ font-size:14px; color:#a39d92; margin-top:10px; }

/* ============================================================
   ARTICLE (single)
   ============================================================ */
.lm-article-head{ border-bottom:3px solid var(--ink); }
.lm-article-head .lm-wrap{ max-width:820px; padding-top:48px; padding-bottom:40px; }
.lm-article-head h1{ font-family:'Archivo',sans-serif; font-weight:900; font-size:60px; line-height:0.98; letter-spacing:-0.035em; margin-top:18px; }
.lm-article-head .lead{ font-size:21px; line-height:1.45; color:#3a342c; margin-top:18px; }
.lm-byline{ display:flex; align-items:center; gap:14px; margin-top:26px; padding-top:22px; border-top:2px solid var(--line); }
.lm-avatar{ width:46px; height:46px; border-radius:50%; background:var(--blue); border:2px solid var(--ink); display:flex; align-items:center; justify-content:center; font-family:'Archivo',sans-serif; font-weight:900; color:#fff; font-size:16px; }
.lm-hero-img{ max-width:1100px; margin:40px auto 0; padding:0 40px; }
.lm-hero-img .frame{ border:3px solid var(--ink); border-radius:10px; overflow:hidden; height:440px; }
.lm-article-grid{ max-width:1100px; margin:0 auto; padding:44px 40px 64px; display:grid; grid-template-columns:1fr 300px; gap:56px; align-items:start; }
.lm-prose{ font-size:19px; line-height:1.65; color:#2a261f; }
.lm-prose > p{ margin-bottom:22px; }
.lm-prose h2{ font-family:'Archivo',sans-serif; font-weight:900; font-size:30px; line-height:1.05; letter-spacing:-0.02em; margin:36px 0 16px; }
.lm-prose > p:first-of-type::first-letter{ font-family:'Archivo',sans-serif; font-weight:900; font-size:74px; line-height:0.72; float:left; padding:6px 12px 0 0; color:var(--orange); }
.lm-prose blockquote{ border:3px solid var(--ink); border-left:6px solid var(--pink); background:#fff; border-radius:8px; padding:24px 28px; margin:32px 0; font-family:'Archivo',sans-serif; font-weight:800; font-size:26px; line-height:1.15; }
.lm-aside{ position:sticky; top:24px; display:flex; flex-direction:column; gap:20px; }
.lm-scheda{ border:3px solid var(--ink); border-radius:10px; padding:22px; background:var(--yellow); }
.lm-scheda .h{ font-family:'Archivo',sans-serif; font-weight:800; font-size:13px; text-transform:uppercase; letter-spacing:0.08em; margin-bottom:14px; }
.lm-scheda .row{ padding:8px 0; border-bottom:1.5px solid rgba(21,17,14,0.18); font-size:14px; line-height:1.5; }
.lm-scheda .row:last-child{ border-bottom:0; }
.lm-scheda .row .lbl{ color:#7a6a18; font-weight:700; }

/* ============================================================
   LIST (saggi / archivio rows)
   ============================================================ */
.lm-list{ border-top:3px solid var(--ink); }
.lm-listrow{ display:flex; align-items:center; justify-content:space-between; gap:30px; padding:28px 0; border-bottom:2px solid var(--line); }
.lm-listrow .num{ font-family:'Archivo',sans-serif; font-weight:800; font-size:12px; color:var(--pink); }
.lm-listrow h3{ font-family:'Archivo',sans-serif; font-weight:900; font-size:34px; line-height:1; letter-spacing:-0.02em; margin-top:6px; }
.lm-listrow p{ font-size:16px; color:var(--muted); margin-top:8px; line-height:1.45; }
.lm-listrow .right{ flex:none; font-weight:700; font-size:14px; color:var(--muted-2); }

/* archivio year groups */
.lm-yeargroup{ display:grid; grid-template-columns:120px 1fr; gap:32px; padding:36px 0; border-bottom:2px solid var(--line); }
.lm-year{ font-family:'Archivo',sans-serif; font-weight:900; font-size:42px; letter-spacing:-0.03em; color:var(--orange); }
.lm-arch-row{ display:flex; justify-content:space-between; align-items:baseline; gap:20px; padding:14px 0; border-bottom:1px solid var(--line); }
.lm-arch-row:last-child{ border-bottom:0; }
.lm-arch-row .t{ font-family:'Archivo',sans-serif; font-weight:700; font-size:22px; line-height:1.1; }
.lm-arch-row .m{ flex:none; font-size:13px; color:var(--muted-2); }

/* ============================================================
   BIO
   ============================================================ */
.lm-bio-intro{ border-bottom:3px solid var(--ink); position:relative; overflow:hidden; }
.lm-bio-intro .lm-wrap{ position:relative; padding-top:56px; padding-bottom:56px; display:grid; grid-template-columns:1fr 360px; gap:48px; align-items:center; }
.lm-bio-portrait{ border:3px solid var(--ink); border-radius:12px; height:380px; }
.lm-stats{ display:flex; flex-direction:column; gap:16px; }
.lm-stat{ border:3px solid var(--ink); border-radius:10px; padding:22px; }
.lm-stat .n{ font-family:'Archivo',sans-serif; font-weight:900; font-size:42px; line-height:1; }
.lm-stat .l{ font-size:14px; color:var(--muted); margin-top:4px; }
.lm-timeline{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.lm-tl{ border-top:2px solid var(--pink); padding-top:14px; }
.lm-tl .y{ font-family:'Archivo',sans-serif; font-weight:900; font-size:22px; color:var(--pink); }
.lm-tl p{ font-size:15px; line-height:1.45; margin-top:8px; color:#cfc9be; }

/* ============================================================
   CONTATTI (form)
   ============================================================ */
.lm-contact{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.lm-form{ border:3px solid var(--ink); border-radius:14px; padding:34px; background:#fff; }
.lm-form h2{ font-family:'Archivo',sans-serif; font-weight:900; font-size:30px; letter-spacing:-0.02em; }
.lm-field{ margin-top:18px; }
.lm-field label{ display:block; font-size:13px; font-weight:700; margin-bottom:7px; }
.lm-field input, .lm-field textarea{ width:100%; border:2px solid var(--ink); border-radius:8px; padding:13px 16px; font-size:15px; font-family:inherit; background:#fff; color:var(--ink); }
.lm-field textarea{ min-height:120px; resize:vertical; }
.lm-form button{ width:100%; margin-top:18px; cursor:pointer; border:0; }
.lm-contactcard{ border:3px solid var(--ink); border-radius:10px; padding:20px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.lm-contactcard.yellow{ background:var(--yellow); }
.lm-contactcard .l{ font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:0.06em; }
.lm-contactcard .v{ font-family:'Archivo',sans-serif; font-weight:800; font-size:22px; margin-top:2px; }

/* ============================================================
   FOOTER
   ============================================================ */
.lm-footer{ border-top:3px solid var(--ink); background:var(--ink); color:#a39d92; }
.lm-footer .lm-wrap{ padding-top:30px; padding-bottom:30px; display:flex; align-items:center; justify-content:space-between; font-size:13px; flex-wrap:wrap; gap:12px; }
.lm-footer .fbrand{ font-family:'Archivo',sans-serif; font-weight:900; color:var(--paper); font-size:18px; }
.lm-footer .fmenu{ display:flex; gap:22px; flex-wrap:wrap; }
.lm-footer .fmenu a:hover{ color:#fff; }
.lm-newsletter{ border-top:3px solid var(--ink); background:var(--orange); color:#fff; }
.lm-newsletter .lm-wrap{ padding-top:54px; padding-bottom:54px; display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.lm-newsletter h2{ font-family:'Archivo',sans-serif; font-weight:900; font-size:46px; line-height:0.95; letter-spacing:-0.03em; }
.lm-newsletter p{ font-size:17px; margin-top:14px; color:#ffe8dd; }
.lm-newsletter .field{ display:flex; gap:10px; background:#fff; padding:8px; border-radius:100px; border:3px solid var(--ink); }
.lm-newsletter .field input{ border:0; padding:11px 18px; font-size:15px; background:transparent; min-width:200px; }
.lm-newsletter .field button{ background:var(--ink); color:#fff; font-weight:700; font-size:15px; padding:12px 22px; border-radius:100px; border:0; cursor:pointer; }

/* pagination */
.lm-pagination{ display:flex; justify-content:center; gap:10px; margin-top:48px; }
.lm-pagination .page-numbers{ border:2px solid var(--ink); font-weight:700; font-size:15px; padding:10px 18px; border-radius:100px; }
.lm-pagination .page-numbers.current{ background:var(--ink); color:#fff; }

/* WP core alignments / captions */
.alignleft{ float:left; margin:0 24px 16px 0; }
.alignright{ float:right; margin:0 0 16px 24px; }
.aligncenter{ margin-left:auto; margin-right:auto; }
.wp-caption-text, figcaption{ font-size:13px; color:var(--muted); margin-top:6px; }
.screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.sticky, .bypostauthor{}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .lm-hero h1{ font-size:74px; }
  .lm-pagetitle{ font-size:64px; }
  .lm-grid, .lm-grid.feature, .lm-grid.two, .lm-essays, .lm-timeline{ grid-template-columns:1fr 1fr; }
  .lm-article-grid{ grid-template-columns:1fr; }
  .lm-aside{ position:static; }
  .lm-bio-intro .lm-wrap, .lm-contact{ grid-template-columns:1fr; }
}
@media(max-width:680px){
  .lm-wrap{ padding-left:22px; padding-right:22px; }
  .lm-hero h1{ font-size:54px; }
  .lm-pagetitle{ font-size:46px; }
  .lm-article-head h1{ font-size:40px; }
  .lm-grid, .lm-grid.feature, .lm-grid.two, .lm-essays, .lm-timeline{ grid-template-columns:1fr; }
  .lm-header .lm-wrap{ flex-direction:column; align-items:flex-start; }
  .lm-yeargroup{ grid-template-columns:1fr; gap:12px; }
  .lm-listrow{ flex-direction:column; align-items:flex-start; gap:8px; }
  .lm-listrow h3{ font-size:26px; }
}
