/* =================================================================
   DishFlow — blog.css
   Magazine editoriale · Stile Monocle/Kinfolk
   Layout asimmetrico · Zero font esterni
   ================================================================= */

:root {
    --bg:     #07090f;
    --bg2:    #0b0e18;
    --card:   #0d1120;
    --gold:   #c9a84c;
    --goldh:  #e8c96a;
    --white:  #ffffff;
    --gray:   #8892a4;
    --gray2:  #4a5568;
    --green:  #22c55e;
    --blue:   #3b82f6;
    --purple: #a855f7;
    --border: rgba(201,168,76,.15);
    --brd2:   rgba(255,255,255,.07);
    --serif:  'Georgia','Times New Roman',serif;
    --sans:   -apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
    --ease:   cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { font-family:var(--sans); background:var(--bg); color:var(--white); overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
button { cursor:pointer; font-family:inherit; border:none; background:none; }
img { display:block; }
p { line-height:1.75; }

/* ── NOISE + ORBS ────────────────────────────────────────────── */
.noise {
    position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.022;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size:160px;
}
.ambient { position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.orb { position:absolute; border-radius:50%; filter:blur(120px); }
.o1 { width:700px; height:700px; top:-200px; right:-100px; background:radial-gradient(circle,rgba(201,168,76,.06) 0%,transparent 70%); animation:orbD 14s ease-in-out infinite; }
.o2 { width:500px; height:500px; bottom:-100px; left:-80px; background:radial-gradient(circle,rgba(201,168,76,.04) 0%,transparent 70%); animation:orbD 11s ease-in-out 6s infinite reverse; }
@keyframes orbD { 0%,100%{transform:translate(0,0)} 50%{transform:translate(20px,-18px)} }

/* ── REVEAL ──────────────────────────────────────────────────── */
.reveal {
    opacity:0; transform:translateY(24px);
    transition:opacity .75s var(--ease), transform .75s var(--ease);
    animation:revFall 0s 2s forwards;
}
.reveal.visible { opacity:1; transform:translateY(0); animation:none; }
@keyframes revFall { to { opacity:1; transform:translateY(0); } }

/* ── LAYOUT ──────────────────────────────────────────────────── */
.sc { max-width:1280px; margin:0 auto; padding:0 52px; }
.tag-dot { width:6px; height:6px; border-radius:50%; background:var(--gold); animation:blink 2s ease-in-out infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.2} }

/* ── NAVBAR ──────────────────────────────────────────────────── */
.nav {
    position:sticky; top:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:0 52px; height:68px;
    background:rgba(7,9,15,.92); border-bottom:1px solid var(--brd2);
    backdrop-filter:blur(20px);
}
.nav-logo { display:flex; align-items:center; }
.nav-logo img { height:32px; object-fit:contain; }
.nav-logo-txt { font-family:var(--serif); font-size:1.3rem; font-weight:700; }
.nav-logo-txt em { font-style:italic; color:var(--gold); }
.nav-center { display:flex; gap:28px; }
.nav-link {
    font-size:.83rem; font-weight:500; color:var(--gray);
    position:relative; transition:color .2s;
}
.nav-link::after {
    content:''; position:absolute; bottom:-3px; left:50%; right:50%;
    height:1px; background:var(--gold);
    transition:left .25s var(--ease), right .25s var(--ease);
}
.nav-link:hover { color:var(--white); }
.nav-link:hover::after { left:0; right:0; }
.nav-link--active { color:var(--gold); }
.nav-link--active::after { left:0; right:0; }
.nav-right { display:flex; align-items:center; gap:12px; }
.nav-ghost {
    font-size:.82rem; font-weight:600; color:var(--gray);
    border:1px solid var(--brd2); border-radius:50px; padding:7px 18px;
    transition:all .2s;
}
.nav-ghost:hover { color:var(--white); border-color:rgba(255,255,255,.2); }
.nav-gold {
    font-size:.82rem; font-weight:700; color:#07090f;
    background:var(--gold); border-radius:50px; padding:7px 20px;
    transition:background .2s, transform .2s;
    box-shadow:0 4px 14px rgba(201,168,76,.22);
}
.nav-gold:hover { background:var(--goldh); transform:translateY(-1px); }

/* ── BLOG HEADER ─────────────────────────────────────────────── */
.blog-header {
    position:relative; overflow:hidden;
    padding:96px 52px 72px;
    border-bottom:1px solid var(--brd2);
    z-index:2;
}
.bh-inner { max-width:640px; }

.bh-tag {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(201,168,76,.08); border:1px solid rgba(201,168,76,.22);
    border-radius:50px; padding:5px 14px;
    font-size:.67rem; font-weight:700; color:var(--gold);
    text-transform:uppercase; letter-spacing:2px; margin-bottom:22px;
}
.bh-title {
    font-family:var(--serif);
    font-size:clamp(3rem,5.5vw,5.2rem);
    font-weight:400; line-height:1.0;
    letter-spacing:-.02em; margin-bottom:18px;
}
.bh-title em { font-style:italic; color:var(--gold); }
.bh-desc { font-size:.96rem; color:var(--gray); font-weight:300; max-width:480px; }

/* Decorativi */
.bh-grid { position:absolute; inset:0; pointer-events:none; }
.bg-line { position:absolute; background:rgba(201,168,76,.055); }
.bg-v1 { width:1px; top:0; bottom:0; right:28%; }
.bg-v2 { width:1px; top:0; bottom:0; right:52%; opacity:.5; }
.bg-h1 { height:1px; left:0; right:0; top:68px; }
.bh-issue {
    position:absolute; right:-30px; top:50%; transform:translateY(-50%);
    font-family:var(--serif); font-size:22vw; font-weight:700;
    color:rgba(255,255,255,.018); pointer-events:none; user-select:none; line-height:1;
    letter-spacing:-3px;
}

/* ── FILTRI ──────────────────────────────────────────────────── */
.filters-bar {
    position:sticky; top:68px; z-index:90;
    background:rgba(7,9,15,.95); border-bottom:1px solid var(--brd2);
    backdrop-filter:blur(16px);
}
.filters-inner {
    display:flex; gap:6px; padding:14px 0;
    overflow-x:auto; scrollbar-width:none;
}
.filters-inner::-webkit-scrollbar { display:none; }
.filter-pill {
    background:transparent; border:1px solid var(--brd2);
    border-radius:50px; padding:7px 18px;
    font-size:.78rem; font-weight:600; color:var(--gray);
    white-space:nowrap; transition:all .2s ease;
    flex-shrink:0;
}
.filter-pill:hover { color:var(--white); border-color:rgba(255,255,255,.18); }
.filter-pill.active {
    background:var(--gold); border-color:var(--gold);
    color:#07090f;
}

/* ── BLOG MAIN ───────────────────────────────────────────────── */
.blog-main { padding:60px 0 80px; position:relative; z-index:2; }

/* ── FEATURED ARTICLE ────────────────────────────────────────── */
.featured-article {
    display:grid; grid-template-columns:1.1fr 1fr;
    gap:0; border:1px solid var(--brd2); border-radius:22px;
    overflow:hidden; margin-bottom:24px;
    background:var(--card);
    transition:border-color .3s, box-shadow .3s;
}
.featured-article:hover {
    border-color:rgba(201,168,76,.3);
    box-shadow:0 24px 60px rgba(0,0,0,.4);
}

.fa-image {
    position:relative; min-height:440px; overflow:hidden;
}
.fa-img-bg {
    position:absolute; inset:0; background-size:cover; background-position:center;
    transition:transform 8s ease;
}
.featured-article:hover .fa-img-bg { transform:scale(1.04); }
.fa-img-1 {
    background-image:linear-gradient(135deg, #1a2e1a 0%, #2d4a20 30%, #3a2808 60%, #1a1520 100%);
    background-color:#1a2e1a;
}
/* Aggiunge texture visiva con pattern */
.fa-img-1::after {
    content:''; position:absolute; inset:0;
    background:
        radial-gradient(ellipse at 30% 40%, rgba(201,168,76,.15) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 80%, rgba(34,100,34,.2) 0%, transparent 50%);
}

.fa-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to right, rgba(7,9,15,.1), rgba(7,9,15,.0));
}
.fa-badges {
    position:absolute; top:20px; left:20px;
    display:flex; gap:8px;
}
.fa-cat {
    background:rgba(201,168,76,.9); color:#07090f;
    border-radius:50px; padding:5px 12px;
    font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:1px;
}
.fa-featured {
    background:rgba(7,9,15,.75); backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,.15); color:var(--white);
    border-radius:50px; padding:5px 12px;
    font-size:.66rem; font-weight:700;
}

.fa-content {
    padding:44px 40px;
    display:flex; flex-direction:column; justify-content:center;
}
.fa-meta {
    display:flex; align-items:center; gap:9px;
    font-size:.74rem; color:var(--gray); margin-bottom:20px;
    flex-wrap:wrap;
}
.fa-author {
    display:flex; align-items:center; gap:8px; font-weight:600; color:var(--white);
}
.fa-av {
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:.58rem; font-weight:800;
}
.fa-av-1 { background:linear-gradient(135deg,#e8c96a,#c9703a); color:#07090f; }
.fa-sep { opacity:.35; }

.fa-title {
    font-family:var(--serif);
    font-size:clamp(1.4rem,2.2vw,2rem);
    font-weight:600; line-height:1.25;
    margin-bottom:16px; color:var(--white);
}
.fa-excerpt {
    font-size:.88rem; color:var(--gray);
    line-height:1.8; margin-bottom:28px;
}
.fa-read-more {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--gold); color:#07090f;
    border-radius:10px; padding:12px 22px;
    font-size:.86rem; font-weight:700;
    transition:all .25s var(--ease); width:fit-content;
    box-shadow:0 4px 14px rgba(201,168,76,.22);
}
.fa-read-more svg { width:15px; height:15px; transition:transform .25s; }
.fa-read-more:hover { background:var(--goldh); transform:translateY(-2px); }
.fa-read-more:hover svg { transform:translateX(4px); }

/* ── ARTICLE CARDS (griglia 2) ───────────────────────────────── */
.articles-grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:20px; margin-bottom:60px;
}

.article-card {
    background:var(--card); border:1px solid var(--brd2);
    border-radius:18px; overflow:hidden;
    transition:border-color .3s, transform .35s var(--ease), box-shadow .3s;
}
.article-card:hover {
    border-color:rgba(201,168,76,.3); transform:translateY(-5px);
    box-shadow:0 16px 40px rgba(0,0,0,.4);
}

.ac-image { position:relative; height:200px; overflow:hidden; }
.ac-img-bg {
    position:absolute; inset:0; background-size:cover; background-position:center;
    transition:transform 8s ease;
}
.article-card:hover .ac-img-bg { transform:scale(1.05); }
.ac-img-2 { background:linear-gradient(135deg, #0a1828 0%, #1a3050 40%, #282010 100%); }
.ac-img-2::after {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at 60% 30%, rgba(59,130,246,.2) 0%, transparent 60%);
}
.ac-img-3 { background:linear-gradient(135deg, #1a0a28 0%, #2d1050 40%, #0a1020 100%); }
.ac-img-3::after {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse at 40% 60%, rgba(168,85,247,.2) 0%, transparent 60%);
}
.ac-overlay {
    position:absolute; inset:0;
    background:linear-gradient(to bottom, transparent 40%, rgba(7,9,15,.6) 100%);
}
.ac-cat {
    position:absolute; top:14px; left:14px;
    background:rgba(7,9,15,.8); backdrop-filter:blur(8px);
    border:1px solid var(--brd2); border-radius:50px;
    padding:4px 12px; font-size:.64rem; font-weight:700;
    color:var(--gold); text-transform:uppercase; letter-spacing:.5px;
}
.ac-cat--purple { color:#c084fc; }

.ac-body { padding:22px 24px; }
.ac-meta {
    display:flex; align-items:center; gap:10px; margin-bottom:12px;
}
.ac-av {
    width:28px; height:28px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:.60rem; font-weight:800;
}
.ac-av-2 { background:linear-gradient(135deg,#3b82f6,#1d4ed8); color:white; }
.ac-av-3 { background:linear-gradient(135deg,#a855f7,#7c3aed); color:white; }
.ac-author { font-size:.78rem; font-weight:600; color:var(--white); display:block; }
.ac-date   { font-size:.70rem; color:var(--gray); display:block; }

.ac-title {
    font-family:var(--serif); font-size:1.05rem; font-weight:600;
    line-height:1.35; margin-bottom:10px; color:var(--white);
}
.ac-excerpt { font-size:.80rem; color:var(--gray); line-height:1.7; margin-bottom:16px; }
.ac-link {
    display:inline-flex; align-items:center; gap:6px;
    font-size:.78rem; font-weight:700; color:var(--gold);
    transition:gap .2s ease;
}
.ac-link svg { width:14px; height:14px; transition:transform .2s; }
.ac-link:hover { gap:10px; }
.ac-link:hover svg { transform:translateX(3px); }

/* ── LIST ARTICLES ───────────────────────────────────────────── */
.list-articles { border-top:1px solid var(--brd2); padding-top:48px; }
.la-header {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:0;
}
.la-title {
    font-family:var(--serif); font-size:1.4rem; font-weight:600;
}
.la-count { font-size:.76rem; color:var(--gray); }

.list-item {
    display:flex; align-items:center; gap:24px;
    padding:28px 0; border-bottom:1px solid var(--brd2);
    transition:background .2s; position:relative;
    cursor:pointer;
}
.list-item:last-of-type { border-bottom:none; }
.list-item:hover { opacity:.88; }

.li-num {
    font-family:var(--serif); font-size:1.8rem; font-weight:700;
    color:rgba(255,255,255,.08); flex-shrink:0; width:40px;
    text-align:right; line-height:1;
}
.li-img {
    width:88px; height:68px; border-radius:10px;
    overflow:hidden; flex-shrink:0;
}
.li-img-bg { width:100%; height:100%; background-size:cover; background-position:center; }
.li-img-1 { background:linear-gradient(135deg,#1a2e1a,#3a2808); }
.li-img-2 { background:linear-gradient(135deg,#0a1828,#1a3050); }
.li-img-3 { background:linear-gradient(135deg,#1a0a28,#2d1050); }

.li-body { flex:1; min-width:0; }
.li-tags { display:flex; align-items:center; gap:8px; margin-bottom:7px; }
.li-cat {
    font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.5px;
    color:var(--gold); background:rgba(201,168,76,.08);
    border:1px solid var(--border); border-radius:50px; padding:2px 9px;
}
.li-cat--blue   { color:var(--blue);   background:rgba(59,130,246,.08);  border-color:rgba(59,130,246,.25); }
.li-cat--purple { color:#c084fc; background:rgba(168,85,247,.08); border-color:rgba(168,85,247,.25); }
.li-time { font-size:.68rem; color:var(--gray2); }

.li-body h3 {
    font-family:var(--serif); font-size:.96rem; font-weight:600;
    line-height:1.35; margin-bottom:7px; color:var(--white);
}
.li-body p { font-size:.78rem; color:var(--gray); line-height:1.6; margin-bottom:10px; }
.li-meta {
    display:flex; align-items:center; gap:8px;
    font-size:.72rem; color:var(--gray);
}
.li-av {
    width:20px; height:20px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:.50rem; font-weight:800;
}
.li-av-1 { background:linear-gradient(135deg,#e8c96a,#c9703a); color:#07090f; }
.li-av-2 { background:linear-gradient(135deg,#3b82f6,#1d4ed8); color:white; }
.li-av-3 { background:linear-gradient(135deg,#a855f7,#7c3aed); color:white; }
.li-sep  { opacity:.3; }

.li-arrow {
    width:38px; height:38px; border-radius:50%; flex-shrink:0;
    background:rgba(255,255,255,.05); border:1px solid var(--brd2);
    display:flex; align-items:center; justify-content:center;
    color:var(--gray); transition:all .25s var(--ease);
}
.li-arrow svg { width:15px; height:15px; }
.li-arrow:hover { background:rgba(201,168,76,.12); border-color:var(--border); color:var(--gold); }

/* No results */
.no-results-blog {
    padding:60px 0; text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:12px;
}
.no-results-blog svg { width:36px; height:36px; stroke:var(--gray2); }
.no-results-blog p { font-size:.90rem; color:var(--gray); }
.nr-btn {
    background:rgba(201,168,76,.10); border:1px solid var(--border);
    border-radius:50px; padding:9px 20px;
    font-size:.80rem; font-weight:600; color:var(--gold);
    transition:all .2s; margin-top:4px;
}
.nr-btn:hover { background:rgba(201,168,76,.18); }

/* ── NEWSLETTER ──────────────────────────────────────────────── */
.newsletter-section { padding:0 0 80px; position:relative; z-index:2; }
.nl-card {
    display:grid; grid-template-columns:1fr 1fr;
    gap:60px; align-items:center;
    background:var(--card); border:1px solid var(--border);
    border-radius:22px; padding:52px 56px;
    background-image:linear-gradient(135deg, rgba(201,168,76,.05) 0%, transparent 50%);
    position:relative; overflow:hidden;
}
.nl-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(to right, transparent, var(--gold), transparent);
}

.nl-tag {
    display:flex; align-items:center; gap:7px;
    font-size:.67rem; font-weight:700; color:var(--gold);
    text-transform:uppercase; letter-spacing:2px; margin-bottom:10px;
}
.nl-left h2 {
    font-family:var(--serif); font-size:2rem; font-weight:400;
    line-height:1.2; margin-bottom:12px;
}
.nl-left h2 em { font-style:italic; color:var(--gold); }
.nl-left p { font-size:.86rem; color:var(--gray); line-height:1.8; }

.nl-form { display:flex; gap:10px; margin-bottom:10px; }
.nl-input-wrap {
    flex:1; position:relative; display:flex; align-items:center;
}
.nl-input-wrap svg {
    position:absolute; left:14px; width:15px; height:15px;
    stroke:rgba(255,255,255,.25); pointer-events:none; transition:stroke .2s;
}
.nl-input-wrap:focus-within svg { stroke:rgba(201,168,76,.65); }
.nl-input-wrap input {
    width:100%; background:rgba(255,255,255,.06);
    border:1px solid var(--brd2); border-radius:11px;
    padding:13px 14px 13px 42px;
    color:var(--white); font-size:.88rem; font-family:var(--sans);
    outline:none;
    transition:border-color .25s, background .25s;
}
.nl-input-wrap input::placeholder { color:rgba(255,255,255,.25); }
.nl-input-wrap input:focus { border-color:rgba(201,168,76,.45); background:rgba(255,255,255,.09); }

.nl-btn {
    background:linear-gradient(135deg,#e8c96a,#b8900a); color:#07090f;
    border-radius:11px; padding:13px 22px;
    font-size:.88rem; font-weight:800; flex-shrink:0;
    transition:all .25s var(--ease);
    box-shadow:0 4px 14px rgba(201,168,76,.22);
}
.nl-btn:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(201,168,76,.32); }
.nl-loader { display:flex; align-items:center; gap:4px; }
.nl-loader span {
    width:5px; height:5px; border-radius:50%; background:#07090f;
    animation:ldot .8s ease-in-out infinite;
}
.nl-loader span:nth-child(2) { animation-delay:.15s; }
.nl-loader span:nth-child(3) { animation-delay:.3s; }
@keyframes ldot { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
.nl-note { font-size:.72rem; color:var(--gray2); }

/* ── FOOTER ──────────────────────────────────────────────────── */
.footer { background:#040608; border-top:1px solid var(--brd2); padding:52px 0 0; }
.footer-inner {
    max-width:1280px; margin:0 auto; padding:0 52px 40px;
    display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr;
    gap:48px; border-bottom:1px solid var(--brd2);
}
.footer-logo { height:30px; object-fit:contain; margin-bottom:10px; }
.footer-logo-txt { font-family:var(--serif); font-size:1.2rem; font-weight:700; display:block; margin-bottom:10px; }
.footer-logo-txt em { font-style:italic; color:var(--gold); }
.footer-brand p { font-size:.80rem; color:var(--gray); }
.footer-col h4 { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--white); margin-bottom:14px; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:10px; }
.footer-col a { font-size:.82rem; color:var(--gray); transition:color .2s; }
.footer-col a:hover { color:var(--gold); }
.footer-bottom { max-width:1280px; margin:0 auto; padding:16px 52px; text-align:center; font-size:.70rem; color:var(--gray2); }

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media(max-width:1024px) {
    .featured-article { grid-template-columns:1fr; }
    .fa-image { min-height:280px; }
    .nl-card { grid-template-columns:1fr; gap:32px; }
}
@media(max-width:900px) {
    .sc { padding:0 24px; }
    .nav { padding:0 24px; }
    .nav-center { display:none; }
    .blog-header { padding:60px 24px 48px; }
    .bh-issue { display:none; }
    .filters-bar .sc { padding:0 20px; }
    .articles-grid { grid-template-columns:1fr; }
    .footer-inner { grid-template-columns:1fr 1fr; padding:0 24px 32px; }
}
@media(max-width:600px) {
    .list-item { flex-wrap:wrap; gap:12px; }
    .li-num { display:none; }
    .li-img { width:72px; height:56px; }
    .nl-form { flex-direction:column; }
    .nl-card { padding:32px 24px; }
    .footer-inner { grid-template-columns:1fr; }
    .footer-bottom { padding:16px 20px; }
}