/*
Theme Name: Imago
Theme URI: https://www.imagopisa.it/
Author: Associazione Culturale Imago
Author URI: https://www.imagopisa.it/
Description: Tema WordPress custom per l'Associazione Culturale Imago di Pisa. Include la home con video di sfondo, gallerie random, sezioni reel Instagram, news con immagini in evidenza, custom post type per Corsi e Gallerie fotografi, pagina dedicata Maratona, pagina Sostieni con 5x1000, pagina Accessibilità conforme AgID.
Version: 6.9.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: imago
Tags: photography, custom-post-type, responsive, italian, dark-hero, light-theme
*/


  /* ============ RESET / BASE ============ */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{
    font-family:'Montserrat',sans-serif;
    background:#fafafa;
    color:#1a1a1a;
    line-height:1.55;
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-x:hidden;
  }
  img{display:block;max-width:100%;height:auto}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit;border:0;cursor:pointer;background:none;color:inherit;font-size:inherit}
  ul{list-style:none}

  :root{
    --red:#d4141a;
    --red-dark:#a8101a;
    --ink:#1a1a1a;
    --ink-soft:#404040;
    --ink-faint:#6a6a6a;
    --bg:#ffffff;
    --bg-soft:#f5f5f5;
    --bg-warm:#fafaf8;
    --line:#e6e6e6;
    --line-strong:#cccccc;
    --black:#0a0a0a;
  }

  /* ============ TYPOGRAPHY ============ */
  h1,h2,h3,h4{font-weight:800;letter-spacing:-.01em;line-height:1.04;color:var(--ink)}
  .uppercase{text-transform:uppercase}
  .eyebrow{
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  .eyebrow.red{color:var(--red)}
  .eyebrow.light{color:rgba(255,255,255,.85)}

  /* ============ LAYOUT ============ */
  .wrap{max-width:1280px;margin:0 auto;padding:0 24px}
  @media(min-width:768px){.wrap{padding:0 56px}}
  @media(min-width:1100px){.wrap{padding:0 80px}}
  section.page{display:none;animation:fadeIn .35s ease}
  section.page.active{display:block}
  @keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

  /* ============ HEADER ============ */
  header.site{
    position:sticky;top:0;z-index:100;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex;align-items:center;justify-content:space-between;
    height:74px;
  }
  /* logo image on white needs a colored backdrop */
  .logo-wrap{
    display:flex;align-items:center;padding:0;
  }
  .logo-img{
    display:block;height:42px;width:auto;
  }

  /* desktop nav */
  nav.primary{display:none}
  @media(min-width:1080px){
    nav.primary{display:flex;gap:4px}
    nav.primary button{
      padding:10px 14px;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);
      border-bottom:2px solid transparent;transition:.2s;
    }
    nav.primary button:hover{color:var(--ink)}
    nav.primary button.active{color:var(--ink);border-bottom-color:var(--red)}
  }
  /* mobile menu button */
  .hamburger{display:inline-flex;flex-direction:column;gap:5px;padding:12px}
  .hamburger span{width:24px;height:2px;background:var(--ink);display:block;transition:.2s}
  .hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .hamburger.open span:nth-child(2){opacity:0}
  .hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  @media(min-width:1080px){.hamburger{display:none}}

  /* mobile menu panel */
  .mobile-nav{
    position:fixed;inset:74px 0 0 0;
    background:#fff;
    z-index:90;
    transform:translateX(100%);
    transition:transform .3s ease;
    overflow-y:auto;
  }
  .mobile-nav.open{transform:translateX(0)}
  .mobile-nav button{
    display:block;width:100%;text-align:left;
    padding:22px 28px;font-size:1.05rem;font-weight:700;
    border-bottom:1px solid var(--line);
    text-transform:uppercase;letter-spacing:.04em;
    color:var(--ink);
  }
  .mobile-nav button.active{background:var(--red);color:#fff}

  /* ============ HERO HOME (video + sfumatura diagonale) ============ */
  .hero{
    position:relative;
    min-height:92vh;
    display:grid;
    grid-template-columns:1fr;
    background:#000;
    overflow:hidden;
  }
  .hero-bg-fallback{
    position:absolute;inset:-5%;
    background:url('images/lightbulb.jpg') center/cover no-repeat;
    animation:kenBurns 24s ease-in-out infinite alternate;
    will-change:transform;
    z-index:1;
  }
  @keyframes kenBurns{
    0%   {transform:scale(1) translate(0,0)}
    100% {transform:scale(1.15) translate(-2%,-2%)}
  }
  .hero-video-frame{
    position:absolute;inset:0;
    overflow:hidden;
    pointer-events:none;
    z-index:2;
  }
  .hero-video-frame iframe,
  .hero-video-frame #ytPlayer{
    position:absolute;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:max(100vw, calc(100vh * 1.78));
    height:max(100vh, calc(100vw * 0.5625));
    border:0;
    pointer-events:none;
  }
  /* su desktop ingrandisce 130% per nascondere le bande nere del 16:9 */
  @media(min-width:900px){
    .hero-video-frame iframe,
    .hero-video-frame #ytPlayer{
      transform:translate(-50%,-50%) scale(1.3);
    }
  }
  .hero-video-frame.hidden #ytPlayer,
  .hero-video-frame.hidden iframe{display:none}
  /* dark diagonal overlay - darker on bottom-left where text is */
  .hero-overlay{
    position:absolute;inset:0;
    background:
      linear-gradient(40deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.7) 30%, rgba(0,0,0,.35) 65%, rgba(0,0,0,.2) 100%),
      linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.5) 100%);
    z-index:3;
  }
  .hero-content{
    position:relative;z-index:4;
    padding:120px 24px 90px;
    align-self:end;
    width:100%;
    color:#fff;
  }
  @media(min-width:768px){.hero-content{padding:160px 56px 110px}}
  @media(min-width:1100px){.hero-content{padding:180px 80px 130px;max-width:1280px;margin:0 auto}}
  .hero h1{
    font-weight:900;
    font-size:clamp(2.5rem,9vw,5.8rem);
    line-height:.95;
    letter-spacing:-.025em;
    max-width:16ch;
    margin-bottom:24px;
    color:#fff;
    text-shadow:0 2px 24px rgba(0,0,0,.4);
  }
  .hero h1 .red-word{color:var(--red)}
  .hero p.lead{
    font-size:clamp(1rem,2.2vw,1.2rem);
    font-weight:400;
    max-width:46ch;
    color:#e8e8e8;
    margin-bottom:36px;
    text-shadow:0 2px 12px rgba(0,0,0,.6);
  }
  .hero-ctas{display:flex;flex-wrap:wrap;gap:0}

  /* ============ BUTTONS / CTAs ============ */
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:18px 30px;
    font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    transition:.2s;
    border:0;
  }
  .btn-red{background:var(--red);color:#fff}
  .btn-red:hover{background:var(--red-dark)}
  .btn-dark{background:var(--ink);color:#fff}
  .btn-dark:hover{background:var(--black)}
  .btn-ghost-light{background:transparent;color:#fff;border:2px solid #fff}
  .btn-ghost-light:hover{background:#fff;color:var(--ink)}
  .btn-ghost-dark{background:transparent;color:var(--ink);border:2px solid var(--ink)}
  .btn-ghost-dark:hover{background:var(--ink);color:#fff}
  .btn-arrow::after{content:"→";font-weight:400;font-size:1rem;margin-left:6px}

  /* ============ SECTION HEAD ============ */
  .section-head{
    padding:72px 0 32px;
    display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:20px;
    border-top:1px solid var(--line);
  }
  .section-head.no-border{border-top:0;padding-top:48px}
  .section-head h2{
    font-size:clamp(1.7rem,4.5vw,2.8rem);
    margin-top:10px;
  }
  .section-head .eyebrow{margin-bottom:4px;display:block}
  .section-head .section-action{
    font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);
    padding-bottom:8px;cursor:pointer;
  }
  .section-head .section-action:hover{color:var(--ink)}

  /* ============ RANDOM GALLERY (HOME) ============ */
  .random-gallery{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:4px;
  }
  @media(min-width:900px){
    .random-gallery{grid-template-columns:repeat(4,1fr)}
  }
  .rg-cell{
    position:relative;
    aspect-ratio:1/1;
    overflow:hidden;
    background:var(--bg-soft);
  }
  .rg-cell img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 1.2s ease, opacity .6s ease;
    opacity:0;
  }
  .rg-cell img.loaded{opacity:1}
  .rg-cell:hover img{transform:scale(1.05)}
  .rg-shuffle{
    display:inline-flex;align-items:center;gap:10px;
    padding:12px 22px;
    background:transparent;color:var(--red);
    border:2px solid var(--red);
    font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    transition:.2s;cursor:pointer;
  }
  .rg-shuffle:hover{background:var(--red);color:#fff}
  .rg-shuffle .ico{display:inline-block;transition:transform .5s ease}
  .rg-shuffle:hover .ico{transform:rotate(180deg)}

  /* ============ INSTAGRAM REELS (HOME) - 9:16 verticali ============ */
  .reels-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:24px;
  }
  @media(min-width:680px){.reels-grid{grid-template-columns:repeat(3,1fr);gap:20px}}
  .reel{
    position:relative;
    aspect-ratio:9/16;
    overflow:hidden;
    background:#0a0a0a;
    cursor:pointer;
    transition:.2s;
  }
  .reel:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.18)}
  .reel img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease, filter .4s;
    filter:brightness(.7);
  }
  .reel:hover img{filter:brightness(.85);transform:scale(1.05)}
  .reel-overlay{
    position:absolute;inset:0;
    display:flex;flex-direction:column;justify-content:space-between;
    padding:16px;
    background:linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.7) 100%);
    color:#fff;
    pointer-events:none;
  }
  .reel-overlay .badge{
    display:inline-flex;align-items:center;gap:6px;
    font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    background:rgba(0,0,0,.45);padding:6px 10px;
    backdrop-filter:blur(4px);
    -webkit-backdrop-filter:blur(4px);
    align-self:flex-start;
  }
  .reel-play{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:64px;height:64px;border-radius:50%;
    background:rgba(255,255,255,.95);
    display:flex;align-items:center;justify-content:center;
    transition:.2s;
  }
  .reel:hover .reel-play{background:#fff;transform:translate(-50%,-50%) scale(1.1)}
  .reel-play::before{
    content:"";display:block;
    width:0;height:0;
    border-left:18px solid var(--ink);
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    margin-left:5px;
  }
  .reel-meta{
    position:relative;z-index:1;
    font-size:.84rem;font-weight:600;line-height:1.3;
  }
  .reel-meta .reel-tag{
    font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    color:rgba(255,255,255,.8);display:block;margin-bottom:4px;
  }

  /* ============ NEWS GRID (HOME) ============ */
  .news-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:32px;
  }
  @media(min-width:760px){.news-grid{grid-template-columns:repeat(2,1fr);gap:24px}}
  @media(min-width:1100px){.news-grid{grid-template-columns:repeat(3,1fr)}}
  .news-card{
    background:#fff;
    border:1px solid var(--line);
    display:flex;flex-direction:column;
    transition:.2s;
    cursor:pointer;
    overflow:hidden;
  }
  .news-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 40px rgba(0,0,0,.08);
    border-color:var(--line-strong);
  }
  .news-card .thumb{
    aspect-ratio:16/10;
    overflow:hidden;background:var(--bg-soft);
  }
  .news-card .thumb img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease;
  }
  .news-card:hover .thumb img{transform:scale(1.05)}
  .news-card .body{
    padding:28px;
    flex:1;
    display:flex;flex-direction:column;
  }
  .news-card .date{
    font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
    color:var(--red);margin-bottom:14px;
  }
  .news-card h3{
    font-size:1.2rem;font-weight:800;
    margin-bottom:14px;letter-spacing:-.005em;line-height:1.22;color:var(--ink);
  }
  .news-card p{color:var(--ink-soft);font-size:.92rem;flex:1;line-height:1.55}
  .news-card .more{
    margin-top:22px;font-size:.72rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
    color:var(--ink);
  }
  /* Feature card (full-width) */
  .news-card.feature{grid-column:1/-1}
  @media(min-width:760px){
    .news-card.feature{display:grid;grid-template-columns:1.2fr 1fr}
    .news-card.feature .thumb{aspect-ratio:auto;height:100%;min-height:340px}
  }
  .news-card.feature .body{padding:40px 36px}
  .news-card.feature h3{font-size:1.7rem;line-height:1.16}
  @media(min-width:760px){.news-card.feature h3{font-size:2.1rem}}
  .news-card.feature p{font-size:1.02rem}

  /* ============ CTA BLOCKS ============ */
  .cta-grid{
    display:grid;grid-template-columns:1fr;gap:4px;
  }
  @media(min-width:768px){.cta-grid{grid-template-columns:repeat(3,1fr)}}
  .cta-block{
    padding:48px 36px;
    min-height:280px;
    display:flex;flex-direction:column;justify-content:space-between;
    transition:.2s;
    cursor:pointer;
  }
  .cta-block.dark{background:var(--ink);color:#fff}
  .cta-block.dark:hover{background:var(--black)}
  .cta-block.dark .eyebrow{color:var(--red)}
  .cta-block.dark p{color:#c5c5c5}
  .cta-block.red{background:var(--red);color:#fff}
  .cta-block.red:hover{background:var(--red-dark)}
  .cta-block.red .eyebrow{color:rgba(255,255,255,.85)}
  .cta-block.light{background:var(--bg-soft);color:var(--ink)}
  .cta-block.light:hover{background:#ececec}
  .cta-block.light p{color:var(--ink-soft)}
  .cta-block h3{font-size:1.8rem;line-height:1.05;margin-top:18px}
  .cta-block p{font-size:.94rem;margin:16px 0 28px;line-height:1.5}
  .cta-block .arrow{font-size:1.6rem;font-weight:300}

  /* ============ PAGE HEADER ============ */
  .page-hero{
    padding:88px 0 48px;
    background:#fff;
    border-bottom:1px solid var(--line);
  }
  .page-hero .eyebrow{margin-bottom:14px;display:block}
  .page-hero h1{
    font-size:clamp(2rem,6.5vw,4.2rem);
    line-height:1;letter-spacing:-.02em;
    max-width:22ch;
  }
  .page-hero h1 .red-word{color:var(--red)}

  /* ============ CONTENT BLOCKS ============ */
  .content{padding:64px 0 96px}
  .content p{
    max-width:72ch;
    font-size:1rem;line-height:1.7;color:var(--ink-soft);
    margin-bottom:1.3em;
  }
  .content p.lead-paragraph{font-size:1.18rem;color:var(--ink);font-weight:500;line-height:1.55}
  .content h2{
    font-size:clamp(1.5rem,3.8vw,2rem);
    margin:56px 0 20px;color:var(--ink);
  }
  .content h3{
    font-size:1.05rem;margin:28px 0 12px;color:var(--red);text-transform:uppercase;letter-spacing:.06em;
    font-weight:700;
  }
  .content a.inline{color:var(--red);border-bottom:1px solid var(--red);transition:.2s}
  .content a.inline:hover{background:var(--red);color:#fff}
  .content strong{color:var(--ink);font-weight:700}

  .two-col{
    display:grid;grid-template-columns:1fr;gap:48px;align-items:start;
  }
  @media(min-width:980px){.two-col{grid-template-columns:1.7fr 1fr;gap:80px}}
  .side-card{
    background:var(--bg-warm);
    border-left:4px solid var(--red);
    padding:36px 32px;
    position:sticky;top:96px;
  }
  .side-card h4{font-size:.74rem;color:var(--red);letter-spacing:.18em;margin-bottom:18px;font-weight:700;text-transform:uppercase}
  .side-card .stat{
    display:flex;justify-content:space-between;align-items:baseline;
    padding:16px 0;border-bottom:1px solid var(--line);
  }
  .side-card .stat:last-child{border-bottom:0}
  .side-card .stat .num{font-size:1.7rem;font-weight:800;color:var(--ink)}
  .side-card .stat .label{font-size:.78rem;color:var(--ink-faint);letter-spacing:.04em;text-align:right;max-width:60%}

  /* ============ MARATONA HERO PHOTO ============ */
  .maratona-hero-photo{
    margin:0 auto;
    max-width:1100px;
    padding:0 24px;
  }
  @media(min-width:768px){.maratona-hero-photo{padding:0 56px}}
  @media(min-width:1100px){.maratona-hero-photo{padding:0 80px}}
  .maratona-hero-photo .ph-wrapper{
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--bg-soft);
    margin-top:32px;
  }
  .maratona-hero-photo img{
    width:100%;height:100%;object-fit:cover;
  }
  .maratona-hero-photo .caption{
    font-size:.8rem;color:var(--ink-faint);
    padding:12px 0 0;
    font-style:italic;
  }

  /* ============ MARATONA CONTENT ============ */
  .maratona-block{
    background:var(--bg-warm);
    padding:36px 32px;
    border:1px solid var(--line);
    border-left:4px solid var(--red);
    margin-bottom:20px;
  }
  .maratona-block h3{font-size:1.18rem;color:var(--ink);margin-bottom:14px;text-transform:none;letter-spacing:0}
  .maratona-block p{color:var(--ink-soft);font-size:.96rem;line-height:1.6;margin:0}

  .category-grid{
    display:grid;grid-template-columns:1fr;gap:4px;margin:28px 0;
  }
  @media(min-width:768px){.category-grid{grid-template-columns:repeat(2,1fr)}}
  @media(min-width:1100px){.category-grid{grid-template-columns:repeat(4,1fr)}}
  .category{
    background:var(--bg-soft);
    border-top:4px solid var(--red);
    padding:30px 24px;
    min-height:180px;
  }
  .category h4{font-size:.92rem;color:var(--red);letter-spacing:.06em;font-weight:700;text-transform:uppercase;margin-bottom:12px}
  .category p{margin-top:0;font-size:.88rem;color:var(--ink-soft);line-height:1.55}

  /* ============ MARATONA PHOTO GALLERY ============ */
  .past-marathons-gallery{
    display:grid;grid-template-columns:repeat(2,1fr);gap:4px;
    margin-top:32px;
  }
  @media(min-width:680px){.past-marathons-gallery{grid-template-columns:repeat(3,1fr)}}
  @media(min-width:1100px){.past-marathons-gallery{grid-template-columns:repeat(4,1fr)}}
  .past-marathon-cell{
    aspect-ratio:1/1;overflow:hidden;background:var(--bg-soft);cursor:zoom-in;position:relative;
  }
  .past-marathon-cell img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease;
  }
  .past-marathon-cell:hover img{transform:scale(1.06)}
  .past-marathon-cell .ph-tag{
    position:absolute;left:12px;bottom:12px;
    background:rgba(255,255,255,.95);color:var(--ink);
    padding:5px 10px;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    opacity:0;transition:.2s;
  }
  .past-marathon-cell:hover .ph-tag{opacity:1}

  /* ============ CORSI ============ */
  .corso{
    display:grid;
    grid-template-columns:1fr;
    background:#fff;
    border:1px solid var(--line);
    margin-bottom:24px;
    transition:.2s;
    overflow:hidden;
  }
  .corso:hover{
    border-color:var(--line-strong);
    box-shadow:0 18px 40px rgba(0,0,0,.06);
  }
  @media(min-width:768px){.corso{grid-template-columns:340px 1fr}}
  .corso .corso-image{
    aspect-ratio:1/1;
    overflow:hidden;
    background:var(--bg-soft);
  }
  @media(min-width:768px){.corso .corso-image{aspect-ratio:auto;height:100%}}
  .corso .corso-image img{
    width:100%;height:100%;object-fit:cover;
  }
  .corso .body{padding:32px 32px}
  @media(min-width:768px){.corso .body{padding:36px 40px}}
  .corso .eyebrow{margin-bottom:10px;display:block}
  .corso h3{
    font-size:1.4rem;font-weight:800;
    margin-bottom:10px;letter-spacing:-.005em;color:var(--ink);line-height:1.2;
  }
  .corso h3 a{color:inherit;text-decoration:none}
  .corso h3 a:focus-visible{outline:2px solid var(--red);outline-offset:3px}
  .corso .subtitle{font-size:1rem;color:var(--red);font-weight:600;margin-bottom:16px;letter-spacing:0}
  .corso .description{font-size:.94rem;color:var(--ink-soft);line-height:1.6;margin-bottom:18px}
  .corso .teacher{
    display:inline-block;
    font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
    padding:7px 13px;border:1px solid var(--line);color:var(--ink-soft);
  }
  .corso .status{
    display:inline-block;
    font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    padding:6px 12px;background:var(--bg-soft);color:var(--ink-faint);
    margin-bottom:12px;
  }
  .corso .status.upcoming{background:#ffefef;color:var(--red)}

  /* ============ SOSTIENI ============ */
  .donate-box{
    background:var(--red);color:#fff;
    padding:56px 36px;margin:40px 0;
  }
  .donate-box .cf{
    font-family:'Courier New',monospace;
    font-size:clamp(1.5rem,5vw,2.4rem);
    font-weight:700;letter-spacing:.06em;
    padding:22px 0;
    border-top:2px solid rgba(255,255,255,.35);
    border-bottom:2px solid rgba(255,255,255,.35);
    margin:22px 0;
  }
  .donate-box .label{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.92;line-height:1.5}

  .donate-grid{display:grid;grid-template-columns:1fr;gap:4px;margin-top:32px}
  @media(min-width:768px){.donate-grid{grid-template-columns:repeat(2,1fr)}}
  .donate-method{background:var(--bg-warm);border:1px solid var(--line);padding:32px 28px}
  .donate-method h4{font-size:.95rem;color:var(--red);letter-spacing:.04em;margin-bottom:14px;font-weight:700;text-transform:uppercase}
  .donate-method p{font-size:.94rem;color:var(--ink-soft);word-break:break-all;line-height:1.55}

  /* ============ NEWS LIST (pagina news) ============ */
  .news-list{
    display:flex;flex-direction:column;gap:20px;
    margin-bottom:48px;
  }
  .news-item{
    background:#fff;
    border:1px solid var(--line);
    display:grid;grid-template-columns:1fr;
    cursor:pointer;
    transition:.2s;
    overflow:hidden;
  }
  .news-item:hover{border-color:var(--line-strong);box-shadow:0 14px 32px rgba(0,0,0,.06)}
  @media(min-width:768px){
    .news-item{grid-template-columns:300px 1fr}
  }
  .news-item .thumb{
    aspect-ratio:16/10;background:var(--bg-soft);overflow:hidden;
  }
  @media(min-width:768px){.news-item .thumb{aspect-ratio:auto;height:100%;min-height:200px}}
  .news-item .thumb img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease;
  }
  .news-item:hover .thumb img{transform:scale(1.05)}
  .news-item .body{padding:30px 32px}
  .news-item .date-stamp{
    color:var(--red);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
    margin-bottom:12px;
  }
  .news-item h3{
    font-size:1.3rem;font-weight:800;
    margin-bottom:12px;letter-spacing:-.005em;line-height:1.22;color:var(--ink);
  }
  .news-item p{color:var(--ink-soft);font-size:.94rem;line-height:1.55}

  /* ============ GALLERIE ============ */
  .photographer-block{
    margin-bottom:96px;
    padding-bottom:80px;
    border-bottom:1px solid var(--line);
  }
  .photographer-block:last-child{border-bottom:0;padding-bottom:0;margin-bottom:0}
  .photographer-block .ph-head{margin-bottom:32px;max-width:64ch}
  .photographer-block .ph-eyebrow{
    font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--red);
    margin-bottom:12px;display:block;
  }
  .photographer-block h2{
    font-size:clamp(1.8rem,4.5vw,2.6rem);
    margin-bottom:18px;color:var(--ink);
  }
  .photographer-block .ph-bio{
    color:var(--ink-soft);font-size:.98rem;line-height:1.7;
  }
  .photo-grid{
    display:grid;grid-template-columns:repeat(2,1fr);gap:4px;
  }
  @media(min-width:600px){.photo-grid{grid-template-columns:repeat(3,1fr)}}
  @media(min-width:980px){.photo-grid{grid-template-columns:repeat(4,1fr)}}
  .photo-cell{
    aspect-ratio:1/1;overflow:hidden;background:var(--bg-soft);cursor:zoom-in;position:relative;
  }
  .photo-cell img{
    width:100%;height:100%;object-fit:cover;
    transition:transform .6s ease;
  }
  .photo-cell:hover img{transform:scale(1.05)}

  /* ============ LIGHTBOX ============ */
  .lightbox{
    position:fixed;inset:0;z-index:200;
    background:rgba(15,15,15,.97);
    display:none;align-items:center;justify-content:center;
    padding:24px;
  }
  .lightbox.open{display:flex}
  .lightbox img{
    max-width:96vw;max-height:90vh;
    width:auto;height:auto;
  }
  .lightbox-close{
    position:absolute;top:24px;right:24px;
    width:48px;height:48px;
    background:rgba(255,255,255,.15);color:#fff;
    font-size:1.6rem;font-weight:300;
    display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;
  }
  .lightbox-close:hover{background:var(--red)}

  /* ============ CONTATTI ============ */
  .contact-grid{
    display:grid;grid-template-columns:1fr;gap:32px;
  }
  @media(min-width:980px){.contact-grid{grid-template-columns:1fr 1fr;gap:48px}}
  .contact-info{
    background:var(--bg-warm);padding:44px 36px;
    border-left:4px solid var(--red);
  }
  .contact-info .row{padding:20px 0;border-bottom:1px solid var(--line)}
  .contact-info .row:last-child{border-bottom:0}
  .contact-info .row .label{
    font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--red);
    margin-bottom:8px;
  }
  .contact-info .row .value{font-size:1.05rem;font-weight:600;color:var(--ink);line-height:1.4}
  .contact-info .row .value a{color:inherit;border-bottom:1px solid transparent;transition:.2s}
  .contact-info .row .value a:hover{border-bottom-color:var(--ink)}

  form.contact{display:flex;flex-direction:column;gap:18px;padding:44px 36px;background:var(--bg-warm)}
  form.contact label{
    font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--red);
    margin-bottom:6px;display:block;
  }
  form.contact input,form.contact textarea{
    width:100%;padding:14px 16px;
    background:#fff;border:1px solid var(--line);
    color:var(--ink);font-family:inherit;font-size:.95rem;
  }
  form.contact input:focus,form.contact textarea:focus{outline:0;border-color:var(--red)}
  form.contact textarea{min-height:140px;resize:vertical}
  form.contact button{
    margin-top:8px;padding:18px;background:var(--red);color:#fff;
    font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;
  }
  form.contact button:hover{background:var(--red-dark)}

  /* ============ ACCESSIBILITÀ ============ */
  .access-section{
    margin-bottom:36px;
    padding-bottom:32px;
    border-bottom:1px solid var(--line);
  }
  .access-section:last-child{border-bottom:0}
  .access-section h2{
    font-size:1.3rem;color:var(--ink);
    margin:0 0 18px;
    text-transform:none;letter-spacing:-.005em;
  }
  .access-section ul.list{
    list-style:disc;
    margin:14px 0 18px 22px;
    color:var(--ink-soft);
  }
  .access-section ul.list li{padding:6px 0;font-size:.94rem;line-height:1.5}
  .access-section .conformity-status{
    display:inline-block;
    padding:8px 14px;
    background:#fff4d4;color:#7a5a00;
    font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    margin-bottom:14px;
  }

  /* ============ FOOTER ============ */
  footer.site{background:var(--ink);color:#cfcfcf;padding:64px 0 36px;margin-top:96px}
  footer .foot-grid{display:grid;grid-template-columns:1fr;gap:40px}
  @media(min-width:768px){footer .foot-grid{grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}}
  footer p, footer .foot-col li{font-size:.86rem;color:#aaa;line-height:1.7}
  footer a{color:#cfcfcf;transition:.2s}
  footer a:hover{color:var(--red)}
  footer .foot-col h5{
    font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;margin-bottom:18px;
  }
  footer .foot-col ul li{margin-bottom:8px}
  footer .foot-col ul li button{font-size:.86rem;color:#aaa;transition:.2s;text-align:left}
  footer .foot-col ul li button:hover{color:var(--red)}
  /* Social icons */
  .socials{display:flex;gap:14px;margin-top:18px}
  .socials a{
    display:inline-flex;align-items:center;justify-content:center;
    width:42px;height:42px;
    background:rgba(255,255,255,.06);
    transition:.2s;
  }
  .socials a:hover{background:var(--red);color:#fff}
  .socials svg{width:18px;height:18px;fill:currentColor}
  .foot-logo-img{height:42px;width:auto;display:block;margin-bottom:18px}
  .foot-bottom{
    border-top:1px solid rgba(255,255,255,.08);margin-top:48px;padding-top:28px;
    display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;
    font-size:.78rem;color:#888;
  }
  .foot-bottom a{color:#888}
  .foot-bottom a:hover{color:var(--red)}
  .red-bar{height:6px;background:var(--red);width:100%}


/* ============================================================
   FORMS + COOKIE BANNER + NEWSLETTER (added in v6)
   ============================================================ */

/* ---- Form base ---- */
.imago-form{margin-top:24px;max-width:680px}
.imago-form label.block{display:block;margin-bottom:14px}
.imago-form label.block > span{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:6px}
.imago-form .form-row{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:14px}
@media(min-width:640px){.imago-form .form-row{grid-template-columns:1fr 1fr}}
.imago-form .form-row label{display:block}
.imago-form .form-row label > span{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:6px}
.imago-form input[type=text],
.imago-form input[type=email],
.imago-form input[type=tel],
.imago-form textarea{width:100%;padding:12px 14px;border:1px solid #d4d4d4;border-radius:6px;font-family:inherit;font-size:1rem;background:#fff;transition:border-color .15s}
.imago-form input:focus,
.imago-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(220,38,38,.1)}
.imago-form textarea{resize:vertical;min-height:120px}

/* Privacy checkbox */
.imago-form .form-privacy{display:flex;align-items:flex-start;gap:10px;margin:16px 0;padding:14px 16px;background:var(--bg-soft);border-radius:6px;cursor:pointer;font-size:.92rem;line-height:1.5}
.imago-form .form-privacy input{margin-top:3px;flex-shrink:0;width:18px;height:18px;cursor:pointer}
.imago-form .form-privacy span{color:var(--ink-soft)}
.imago-form .form-privacy a{color:var(--red);text-decoration:underline}

/* Submit */
.imago-form .form-submit{margin-top:18px}
.imago-form button[type=submit]{cursor:pointer;border:0}

/* Messages */
.form-msg{padding:14px 18px;border-radius:6px;margin:16px 0;font-size:.95rem}
.form-msg-ok{background:#e8f5e9;color:#1b5e20;border-left:4px solid #1b5e20}
.form-msg-info{background:#e3f2fd;color:#0d47a1;border-left:4px solid #0d47a1}
.form-msg-err{background:#ffebee;color:#b71c1c;border-left:4px solid #b71c1c}

/* ---- Course status badges ---- */
.status-badge{display:inline-block;padding:6px 12px;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-radius:4px;margin-bottom:8px}
.status-badge.status-upcoming{background:#fff3e0;color:#e65100}
.status-badge.status-pending{background:#ffefef;color:var(--red)}
.status-badge.status-active{background:#e8f5e9;color:#1b5e20}
.status-badge.status-archived{background:var(--bg-soft);color:var(--ink-faint)}

/* Course meta in sidebar */
.course-meta{margin:18px 0;padding-bottom:14px;border-bottom:1px solid #eee}
.course-meta:last-child{border-bottom:0}
.course-meta h4{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-faint);font-weight:700;margin:0 0 6px}
.course-meta p{margin:0;font-size:.95rem;color:var(--ink-soft)}

/* Course meta row in archive */
.corso-meta-row{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:10px;font-size:.85rem;color:var(--ink-faint)}
.corso-meta-pill{display:inline-flex;align-items:center;padding:4px 10px;background:var(--bg-soft);border-radius:20px;font-size:.78rem;font-weight:600;color:var(--ink-soft)}

/* ---- Newsletter block ---- */
.newsletter-block{display:grid;grid-template-columns:1fr;gap:28px;padding:40px;background:linear-gradient(135deg,#1a1a1a,#2a2a2a);color:#fff;border-radius:8px;margin:40px 0}
@media(min-width:900px){.newsletter-block{grid-template-columns:1fr 1.2fr;align-items:center;padding:56px}}
.newsletter-block .newsletter-text .eyebrow{color:var(--red)}
.newsletter-block .newsletter-text h3{color:#fff;font-size:clamp(1.6rem,3vw,2.4rem);margin:8px 0 12px;font-weight:800;line-height:1.1}
.newsletter-block .newsletter-text p{color:#ccc;font-size:1rem;line-height:1.55;margin:0}
.newsletter-form .form-privacy{background:rgba(255,255,255,.06)}
.newsletter-form .form-privacy span{color:#ddd}
.newsletter-form .form-privacy a{color:#fff}
.newsletter-form input[type=text],
.newsletter-form input[type=email]{background:#fff;color:#222}

/* ---- Cookie banner ---- */
.imago-cookie{position:fixed;left:0;right:0;bottom:0;z-index:9990;background:#fff;border-top:1px solid #e5e5e5;box-shadow:0 -8px 24px rgba(0,0,0,.12);padding:20px 24px;display:none;font-family:Montserrat,sans-serif}
.imago-cookie.open{display:block;animation:icSlideUp .3s ease-out}
@keyframes icSlideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.ic-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:18px;align-items:center}
@media(min-width:900px){.ic-inner{grid-template-columns:1fr auto}}
.imago-cookie h4{margin:0 0 6px;font-size:1.1rem;font-weight:800}
.imago-cookie p{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink-soft)}
.imago-cookie a{color:var(--red);text-decoration:underline}
.ic-actions{display:flex;flex-wrap:wrap;gap:10px}
.ic-btn{padding:11px 20px;font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:0;border-radius:6px;cursor:pointer;transition:all .15s;font-family:inherit}
.ic-btn-primary{background:var(--red);color:#fff}
.ic-btn-primary:hover{background:#b71c1c}
.ic-btn-ghost{background:transparent;color:var(--ink);border:1px solid #d4d4d4}
.ic-btn-ghost:hover{background:var(--bg-soft)}
.ic-prefs{grid-column:1/-1;border-top:1px solid #eee;padding-top:18px;margin-top:6px}
.ic-pref-row{padding:14px 0;border-bottom:1px solid #f5f5f5}
.ic-pref-row:last-of-type{border-bottom:0}
.ic-pref-row label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:1rem}
.ic-pref-row label input{width:18px;height:18px;cursor:pointer}
.ic-pref-row p{margin:6px 0 0 28px;font-size:.85rem;color:var(--ink-faint)}
.ic-pref-actions{padding-top:14px;text-align:right}
.imago-cookie-reopen{position:fixed;bottom:20px;left:20px;z-index:9988;width:48px;height:48px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-size:1.4rem;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.2);transition:transform .15s}
.imago-cookie-reopen:hover{transform:scale(1.1)}


/* ============================================================
   FIX MENU NAV (WordPress wp_nav_menu output) — v6.1
   ============================================================ */

/* Reset lista UL del menu */
.primary-menu,
.primary-menu li,
.mobile-menu,
.mobile-menu li,
.foot-col ul,
.foot-col ul li{
	list-style:none;
	margin:0;
	padding:0;
}

/* DESKTOP nav: voci una accanto all'altra */
nav.primary{display:none}
@media(min-width:1080px){
	nav.primary{display:block}
	.primary-menu{
		display:flex;
		gap:4px;
		align-items:center;
	}
	.primary-menu li{display:inline-flex}
	.primary-menu a{
		display:inline-block;
		padding:10px 14px;
		font-size:.72rem;
		font-weight:600;
		letter-spacing:.08em;
		text-transform:uppercase;
		color:var(--ink-soft);
		text-decoration:none;
		border-bottom:2px solid transparent;
		transition:.2s;
	}
	.primary-menu a:hover,
	.primary-menu .current-menu-item > a,
	.primary-menu .current_page_item > a{
		color:var(--ink);
		border-bottom-color:var(--red);
	}
}

/* MOBILE nav */
.mobile-menu{
	display:block;
}
.mobile-menu li{
	display:block;
	border-bottom:1px solid var(--line);
}
.mobile-menu a{
	display:block;
	width:100%;
	padding:22px 28px;
	font-size:1.05rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.04em;
	color:var(--ink);
	text-decoration:none;
}
.mobile-menu a:hover,
.mobile-menu .current-menu-item > a{
	background:var(--red);
	color:#fff;
}

/* Footer menus (Naviga, Partecipa, Legale) */
.foot-col ul{margin-top:8px}
.foot-col ul li{padding:6px 0}
.foot-col ul a{
	color:#aaa;
	text-decoration:none;
	font-size:.85rem;
	transition:color .15s;
}
.foot-col ul a:hover{color:#fff}

/* Pagina Home: contenuto editor (se presente) tra hero e gallery */
.home-content-section{
	padding:48px 0;
	background:#fff;
}
.home-content-section .wrap > *:first-child{margin-top:0}


/* ============================================================
   v6.2 — HERO FOTO PAGINE + CTA DARK + ASPECT RATIO + CONTENT LINK
   ============================================================ */

/* HERO con foto in evidenza e sfumatura scura per leggibilità titolo */
.page-hero{position:relative;padding:64px 0 56px;background:var(--bg-soft);overflow:hidden}
.page-hero.has-photo{
	min-height:62vh;
	background-size:cover !important;
	background-position:center !important;
	background-repeat:no-repeat !important;
	display:flex;
	align-items:flex-end;
	color:#fff;
	padding:120px 0 56px;
	position:relative;
}
.page-hero.has-photo::before{
	content:'';
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 50%, rgba(0,0,0,.85) 100%);
	z-index:1;
}
.page-hero.has-photo .page-hero-inner{position:relative;z-index:2;width:100%}
.page-hero.has-photo h1{color:#fff;font-size:clamp(2.5rem,6vw,4.8rem);text-shadow:0 2px 16px rgba(0,0,0,.4);margin-top:14px}
.page-hero.has-photo .eyebrow{color:#fff !important;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.page-hero.has-photo .eyebrow.red{color:var(--red) !important;text-shadow:0 1px 4px rgba(0,0,0,.5)}

/* Fix CTA DARK — titolo nero su sfondo nero (issue v6.2) */
.cta-block.dark,
.cta-block.dark *,
.home-ctas .cta.dark,
.home-ctas .cta.dark *{color:#fff !important}
.cta-block.dark h2,
.cta-block.dark h3,
.cta-block.dark h4,
.cta-block.dark .eyebrow,
.home-ctas .cta.dark h2,
.home-ctas .cta.dark h3,
.home-ctas .cta.dark h4{color:#fff !important}
.cta-block.dark .eyebrow{color:var(--red) !important}
.cta-block.dark p{color:rgba(255,255,255,.8) !important}
.cta-block.dark .btn-ghost-light{border-color:rgba(255,255,255,.4);color:#fff}

/* NEWS / CORSI immagini: aspect ratio adattivo (4:5 portrait, 1:1 landscape/square) */
.news-card .news-img,
.corso .corso-image,
article.news-card > a > .news-img{
	aspect-ratio:1/1;
	overflow:hidden;
	position:relative;
	background:var(--bg-soft);
}
.news-card .news-img.portrait,
.corso .corso-image.portrait{aspect-ratio:4/5}
.news-card .news-img.landscape,
.corso .corso-image.landscape{aspect-ratio:1/1}
.news-card .news-img img,
.corso .corso-image img{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center;
	display:block;
}

/* Link rossi automatici dentro le aree di contenuto pagina/post */
.imago-page .content a:not(.btn):not(.eyebrow):not(.cta):not(.foot-col a),
.content > .wrap a:not(.btn):not(.eyebrow):not(.cta),
article.imago-page .content p a,
article.imago-page .content li a,
article.imago-page .content h2 a,
article.imago-page .content h3 a{
	color:var(--red);
	text-decoration:underline;
	text-decoration-thickness:1px;
	text-underline-offset:3px;
	font-weight:500;
}
.imago-page .content a:hover{color:var(--red-dark)}

/* Box rettangolari dentro le pagine (Maratona, Sostieni) — riusa il design vecchio */
.imago-page .content .maratona-block,
.imago-page .content .donate-list .row,
.imago-page .content .feature-box,
.imago-page .content .info-card{
	padding:24px 28px;
	border-radius:8px;
	background:var(--bg-soft);
	margin:20px 0;
	border-left:4px solid var(--red);
}
.imago-page .content .maratona-block h3,
.imago-page .content .feature-box h3{margin-top:0;color:var(--ink)}
.imago-page .content .category-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:18px;
	margin:24px 0;
}
@media(min-width:720px){.imago-page .content .category-grid{grid-template-columns:1fr 1fr}}
.imago-page .content .category-grid .category{
	padding:24px 26px;
	border:1px solid var(--line);
	border-radius:8px;
	background:#fff;
}
.imago-page .content .category-grid .category h4{
	font-size:1.05rem;
	margin:0 0 10px;
	color:var(--red);
	text-transform:uppercase;
	letter-spacing:.05em;
}

/* Foto inline nelle pagine */
.imago-page .content .wp-block-image{margin:36px 0}
.imago-page .content .wp-block-image img{border-radius:6px}
.imago-page .content figcaption{
	font-size:.85rem;
	color:var(--ink-faint);
	text-align:center;
	margin-top:8px;
	font-style:italic;
}


/* ============================================================
   v6.3 — IG REELS EMBED + ARCHIVE HEROES
   ============================================================ */

/* Reels grid: iframe Instagram embed */
.reels-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-top:24px}
@media(min-width:720px){.reels-grid{grid-template-columns:1fr 1fr 1fr}}
.reel-embed{
	background:#000;
	border-radius:8px;
	overflow:hidden;
	box-shadow:0 6px 24px rgba(0,0,0,.12);
	transition:transform .25s ease;
	aspect-ratio:9/16;
	position:relative;
}
.reel-embed:hover{transform:translateY(-4px)}
.reel-embed iframe{
	width:100%;
	height:100%;
	min-height:500px;
	border:0;
	display:block;
}
.reel-placeholder{grid-column:1/-1}


/* ============================================================
   v6.4 — SINGLE POST RIDISEGNATO + IMAGE RATIO "IN INTERO"
   ============================================================ */

/* === IMAGE RATIO: mostra TUTTA l'immagine (object-fit: contain) === */
/* Contenitore 4:5 se portrait, 1:1 se landscape — img dentro è "contain" */
.news-card .news-img,
.corso .corso-image,
.photoblog-card .news-img{
	overflow:hidden;
	position:relative;
	background:#f8f6f1;  /* tonalità calda neutra per il letterbox */
}
.news-card .news-img,
.photoblog-card .news-img{
	aspect-ratio:1/1;
}
.news-card .news-img.portrait,
.photoblog-card .news-img.portrait{aspect-ratio:4/5}

.news-card .news-img img,
.corso .corso-image img,
.photoblog-card .news-img img{
	width:100%;
	height:100%;
	object-fit:contain !important;   /* MOSTRA INTERA */
	object-position:center;
	display:block;
}

/* === SINGLE POST: layout nuovo === */

/* 1. Header del titolo */
.single-post .post-title-header{
	padding:80px 0 56px;
	background:var(--bg-soft);
	border-bottom:1px solid var(--line);
}
.single-post .post-title-header h1{
	font-size:clamp(2.2rem,5vw,3.6rem);
	line-height:1.15;
	margin:14px 0 16px;
	max-width:880px;
}
.single-post .post-title-header .eyebrow{
	color:var(--red);
	font-size:.78rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	font-weight:700;
}
.single-post .post-title-header .post-excerpt{
	font-size:1.2rem;
	color:var(--ink-soft);
	max-width:760px;
	line-height:1.55;
	margin:8px 0 0;
}

/* 2. Foto hero con sfumatura scura */
.single-post .post-hero-photo{
	width:100%;
	min-height:52vh;
	background-size:cover !important;
	background-position:center !important;
	background-repeat:no-repeat !important;
}

/* 3. Corpo articolo + sidebar */
.single-post .post-body-area{padding:64px 0 80px}
.single-post .post-two-col{
	display:grid;
	grid-template-columns:1fr;
	gap:48px;
}
@media(min-width:960px){
	.single-post .post-two-col{
		grid-template-columns:minmax(0,1fr) 320px;
		gap:56px;
		position:relative;
	}
	/* riga rossa verticale di separazione */
	.single-post .post-two-col::before{
		content:'';
		position:absolute;
		left:calc(100% - 320px - 28px);
		top:0;
		bottom:0;
		width:2px;
		background:var(--red);
		opacity:.85;
	}
}

/* Corpo articolo */
.single-post .post-content{min-width:0}
.single-post .post-content > p:first-of-type,
.single-post .post-content > .lead-paragraph,
.single-post .post-content > .wp-block-paragraph.lead-paragraph{
	font-size:1.25rem;
	line-height:1.55;
	color:var(--ink);
	margin-bottom:28px;
}
.single-post .post-content h2{
	font-size:1.75rem;
	margin:36px 0 14px;
	padding-top:8px;
}
.single-post .post-content h3{font-size:1.3rem;margin:28px 0 10px}
.single-post .post-content p{margin:0 0 16px;line-height:1.65}
.single-post .post-content ul,
.single-post .post-content ol{margin:0 0 18px 22px}
.single-post .post-content li{margin-bottom:8px;line-height:1.6}
.single-post .post-content a:not(.btn){
	color:var(--red);
	text-decoration:underline;
	text-decoration-thickness:1px;
	text-underline-offset:3px;
}
.single-post .post-content .maratona-block,
.single-post .post-content .feature-box,
.single-post .post-content .category-grid{margin:24px 0}

.post-share-bar{
	margin-top:48px;
	padding-top:24px;
	border-top:1px solid var(--line);
	font-size:.95rem;
	color:var(--ink-soft);
}
.post-share-bar .eyebrow{
	display:block;
	font-size:.72rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--ink-faint);
	margin-bottom:10px;
}
.post-share-bar a{color:var(--red);text-decoration:none;font-weight:500}
.post-share-bar a:hover{text-decoration:underline}

/* Sidebar */
.single-post .post-sidebar{display:flex;flex-direction:column;gap:24px}

/* Foto laterale INTERA (4:5 o 1:1, object-fit contain) */
.post-side-photo{
	width:100%;
	aspect-ratio:1/1;
	background:#f8f6f1;
	border-radius:8px;
	overflow:hidden;
	box-shadow:0 4px 20px rgba(0,0,0,.08);
}
.post-side-photo.portrait{aspect-ratio:4/5}
.post-side-photo img,
.post-side-photo .post-side-photo-img{
	width:100%;
	height:100%;
	object-fit:contain !important;
	object-position:center;
	display:block;
}

/* Info card */
.post-info-card{
	background:var(--bg-soft);
	border-radius:8px;
	padding:24px 22px;
}
.post-info-card h4{
	font-size:.75rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--ink-faint);
	margin:0 0 14px;
	font-weight:700;
}
.post-info-dl{margin:0}
.post-info-dl dt{
	font-size:.78rem;
	color:var(--ink-faint);
	text-transform:uppercase;
	letter-spacing:.08em;
	margin-top:12px;
	font-weight:600;
}
.post-info-dl dt:first-child{margin-top:0}
.post-info-dl dd{
	margin:4px 0 0;
	font-size:.95rem;
	color:var(--ink);
	font-weight:500;
}

/* 4. Related */
.post-related{padding:60px 0;border-top:1px solid var(--line);background:var(--bg-soft)}
.related-heading{
	font-size:1.6rem;
	margin:0 0 28px;
	text-align:center;
}
.related-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:24px;
}
@media(min-width:720px){
	.related-grid{grid-template-columns:repeat(3,1fr)}
}

/* === PHOTOBLOG grid (categoria dedicata) === */
.photoblog-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:24px;
	margin-top:32px;
}
@media(min-width:600px){.photoblog-grid{grid-template-columns:1fr 1fr}}
@media(min-width:960px){.photoblog-grid{grid-template-columns:repeat(3,1fr)}}
.photoblog-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	transition:transform .25s ease,box-shadow .25s ease;
	cursor:pointer;
}
.photoblog-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(0,0,0,.08)}
.photoblog-card .body{padding:18px 20px 22px}
.photoblog-card .date{font-size:.78rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}
.photoblog-card h3{font-size:1.1rem;line-height:1.35;margin:8px 0 10px}
.photoblog-card .excerpt{font-size:.92rem;color:var(--ink-soft);line-height:1.5;margin:0}


/* ============================================================
   v6.5 — HOME NEWS 1+3 + SINGLE HERO STILE HOME (FOTO+TITOLO)
   ============================================================ */

/* === HOME NEWS: 1 grande + 3 piccole sotto === */
.news-grid-1plus3{
	display:grid;
	grid-template-columns:1fr;
	gap:20px;
	margin-top:8px;
}
.news-grid-1plus3 .news-card{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	cursor:pointer;
	transition:transform .25s ease,box-shadow .25s ease;
}
.news-grid-1plus3 .news-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(0,0,0,.08)}
.news-grid-1plus3 .news-card .body{padding:18px 22px 22px}
.news-grid-1plus3 .news-card.feature .body{padding:28px 32px 32px}
.news-grid-1plus3 .news-card h3{font-size:1.1rem;margin:8px 0 8px;line-height:1.3}
.news-grid-1plus3 .news-card.feature h3{font-size:1.7rem;line-height:1.2;margin:12px 0 14px}
.news-grid-1plus3 .news-card.feature p{font-size:1rem;color:var(--ink-soft);line-height:1.55;margin:0 0 14px}
.news-grid-1plus3 .news-card.small p{display:none}
.news-grid-1plus3 .news-card .more{font-size:.85rem;color:var(--red);font-weight:600;letter-spacing:.02em}

@media(min-width:760px){
	/* Featured card: a tutta larghezza, 2 colonne foto+testo */
	.news-grid-1plus3{
		grid-template-columns:repeat(3,1fr);
		gap:22px;
	}
	.news-grid-1plus3 .news-card.feature{
		grid-column:1 / -1;
		display:grid;
		grid-template-columns:1fr 1fr;
		min-height:380px;
	}
	.news-grid-1plus3 .news-card.feature .thumb{
		aspect-ratio:auto !important;
		height:100%;
		min-height:100%;
	}
	.news-grid-1plus3 .news-card.feature .thumb img{
		object-fit:cover !important;
		height:100%;
	}
	.news-grid-1plus3 .news-card.feature .body{
		display:flex;
		flex-direction:column;
		justify-content:center;
	}
}

/* === SINGLE POST: HERO STILE HOME (foto+sfumatura+titolo sopra) === */
.single-post .single-hero{
	position:relative;
	padding:120px 0 64px;
	background:var(--bg-soft);
	color:var(--ink);
	min-height:64vh;
	display:flex;
	align-items:flex-end;
	border-bottom:1px solid var(--line);
}
.single-post .single-hero.has-photo{
	background-size:cover !important;
	background-position:center !important;
	background-repeat:no-repeat !important;
	color:#fff;
	isolation:isolate;
	min-height:78vh;
	border-bottom:none;
}
.single-post .single-hero.has-photo::before{
	content:'';
	position:absolute;
	inset:0;
	background:linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.85) 100%);
	z-index:1;
}
.single-post .single-hero-inner{
	position:relative;
	z-index:2;
	width:100%;
}
.single-post .single-hero h1{
	font-size:clamp(2.2rem,5.5vw,4.2rem);
	line-height:1.1;
	margin:14px 0 14px;
	max-width:1000px;
}
.single-post .single-hero.has-photo h1{
	color:#fff;
	text-shadow:0 2px 16px rgba(0,0,0,.45);
}
.single-post .single-hero .post-excerpt{
	font-size:1.2rem;
	line-height:1.55;
	max-width:760px;
	margin:0;
	color:var(--ink-soft);
}
.single-post .single-hero.has-photo .post-excerpt{
	color:#fff;
	text-shadow:0 1px 8px rgba(0,0,0,.5);
}
.single-post .single-hero .eyebrow{
	font-size:.78rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	font-weight:700;
}
.single-post .single-hero.has-photo .eyebrow{
	color:#fff;
	text-shadow:0 2px 8px rgba(0,0,0,.5);
}
.single-post .single-hero.has-photo .eyebrow.red{color:var(--red)}

/* Rimuovo il vecchio .post-title-header / .post-hero-photo se presenti */
.single-post .post-title-header{display:none}
.single-post .post-hero-photo{display:none}


/* ============================================================
   v6.6 — SUB-MENU + PAYPAL + SEO POLISH
   ============================================================ */

/* === SUB-MENU: voci di secondo livello (es. Photoblog sotto News) === */

/* Desktop: dropdown al hover */
.primary-menu li.menu-item-has-children{position:relative}
.primary-menu li.menu-item-has-children > a::after{
	content:' ▾';
	font-size:.7em;
	opacity:.7;
	margin-left:4px;
}
.primary-menu .sub-menu{
	position:absolute;
	top:100%;
	left:0;
	background:#fff;
	border:1px solid var(--line);
	border-top:3px solid var(--red);
	border-radius:0 0 8px 8px;
	box-shadow:0 12px 32px rgba(0,0,0,.12);
	padding:8px 0;
	margin:0;
	list-style:none;
	min-width:220px;
	opacity:0;
	visibility:hidden;
	transform:translateY(-8px);
	transition:opacity .2s ease,transform .2s ease,visibility .2s;
	z-index:200;
}
.primary-menu li.menu-item-has-children:hover > .sub-menu,
.primary-menu li.menu-item-has-children:focus-within > .sub-menu{
	opacity:1;
	visibility:visible;
	transform:translateY(0);
}
.primary-menu .sub-menu li{display:block;padding:0;margin:0;border:0}
.primary-menu .sub-menu li a{
	display:block;
	padding:10px 18px;
	font-size:.92rem;
	color:var(--ink);
	text-decoration:none;
	border-bottom:0;
	transition:background .15s,color .15s,padding-left .2s;
}
.primary-menu .sub-menu li a:hover,
.primary-menu .sub-menu li a:focus{
	background:var(--bg-soft);
	color:var(--red);
	padding-left:24px;
}
.primary-menu .sub-menu li.current-menu-item > a{
	color:var(--red);
	font-weight:600;
}

/* Mobile menu: sub-items indentati */
.mobile-menu .sub-menu,
.menu-mobile .sub-menu{
	list-style:none;
	padding:0 0 0 18px;
	margin:6px 0 14px;
	border-left:2px solid var(--line);
}
.mobile-menu .sub-menu li a,
.menu-mobile .sub-menu li a{
	font-size:.94rem;
	padding:8px 0;
	color:var(--ink-soft);
	text-transform:none;
	letter-spacing:0;
	font-weight:400;
}
.mobile-menu .sub-menu li a::before,
.menu-mobile .sub-menu li a::before{
	content:'└ ';
	color:var(--red);
	margin-right:6px;
}

/* === MARATONA: BOTTONI PAYPAL (v7.0 — design pulito) === */
.maratona-paypal{
	display:grid;
	grid-template-columns:1fr;
	gap:18px;
	margin:32px 0;
}
@media(min-width:680px){
	.maratona-paypal{grid-template-columns:1fr 1fr}
}
.maratona-paypal-card{
	background:#fff;
	border:1px solid #e5e7eb;
	border-radius:12px;
	padding:28px 24px 24px;
	text-align:center;
	transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
	display:flex;
	flex-direction:column;
}
.maratona-paypal-card:hover{
	transform:translateY(-3px);
	box-shadow:0 12px 28px rgba(0,0,0,.08);
	border-color:#cbd5e1;
}
.maratona-paypal-card .pp-icon{
	font-size:2.2rem;
	line-height:1;
	margin:0 0 8px;
	display:block;
}
.maratona-paypal-card .pp-cat{
	font-size:.72rem;
	text-transform:uppercase;
	letter-spacing:.14em;
	color:#94a3b8;
	font-weight:700;
	margin:0 0 4px;
}
.maratona-paypal-card .pp-name{
	font-size:1.2rem;
	font-weight:700;
	margin:0 0 14px;
	color:#0f172a;
	line-height:1.2;
}
.maratona-paypal-card .pp-price{
	font-size:2.4rem;
	font-weight:800;
	color:#0f172a;
	margin:8px 0 18px;
	line-height:1;
	font-variant-numeric:tabular-nums;
}
.maratona-paypal-card .pp-price .pp-price-currency{
	font-size:1.3rem;
	color:#64748b;
	font-weight:600;
	vertical-align:.4em;
	margin-right:2px;
}
.maratona-paypal-card .pp-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	padding:13px 22px;
	background:#0070ba;
	color:#fff !important;
	text-decoration:none !important;
	border-radius:8px;
	font-weight:700;
	font-size:.95rem;
	transition:background .15s ease,transform .15s ease;
	box-shadow:0 1px 2px rgba(0,112,186,.2);
}
.maratona-paypal-card .pp-button:hover{
	background:#005ea6;
	transform:translateY(-1px);
	box-shadow:0 4px 10px rgba(0,112,186,.3);
}
.maratona-paypal-card .pp-button:focus-visible{
	outline:3px solid #93c5fd;
	outline-offset:2px;
}
.maratona-paypal-card .pp-button .pp-logo{
	font-style:italic;
	font-weight:800;
	letter-spacing:-.02em;
}
.maratona-paypal-card .pp-note{
	font-size:.78rem;
	color:#64748b;
	margin:14px 0 0;
	font-style:normal;
	line-height:1.45;
	flex-grow:1;
	display:flex;
	align-items:flex-end;
	justify-content:center;
}


/* ============================================================
   v6.7 — EVENTI + SEARCH + LIGHTBOX + DONATE + FILTRI CORSI + FAQ + 404
   ============================================================ */

/* === HEADER: SEARCH ICON + DROPDOWN === */
.header-search-toggle{
	background:none;
	border:0;
	padding:8px;
	cursor:pointer;
	color:var(--ink);
	margin-right:6px;
	transition:color .15s;
	display:inline-flex;
	align-items:center;
}
.header-search-toggle:hover{color:var(--red)}
.header-search-panel{
	max-height:0;
	overflow:hidden;
	transition:max-height .25s ease,padding .25s ease;
	background:var(--bg-soft);
	border-top:1px solid var(--line);
}
.header-search-panel.open{
	max-height:120px;
	padding:18px 0;
}
.imago-searchform{
	display:flex;
	gap:8px;
	align-items:center;
	background:#fff;
	border:1px solid var(--line);
	border-radius:6px;
	padding:6px 12px;
}
.imago-searchform input[type="search"]{
	flex:1;
	border:0;
	outline:none;
	font-size:1rem;
	padding:8px 4px;
	background:transparent;
	color:var(--ink);
	font-family:inherit;
}
.imago-searchform button{
	background:var(--red);
	border:0;
	color:#fff;
	border-radius:4px;
	padding:8px 12px;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
}
.imago-searchform button:hover{background:var(--red-dark)}

/* === EVENTI: archive list + home widget === */
.eventi-list{
	display:flex;
	flex-direction:column;
	gap:18px;
	margin-top:36px;
}
.evento-card{
	display:grid;
	grid-template-columns:96px 1fr;
	gap:0;
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	cursor:pointer;
	transition:transform .2s ease,box-shadow .2s ease;
}
@media(min-width:760px){
	.evento-card{grid-template-columns:110px 220px 1fr}
}
.evento-card:hover{transform:translateX(4px);box-shadow:0 6px 22px rgba(0,0,0,.08)}
.evento-card .evento-date{
	background:var(--red);
	color:#fff;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	padding:18px 12px;
	text-align:center;
}
.evento-card .evento-date .day{font-size:2.2rem;font-weight:800;line-height:1;font-family:'Courier New',monospace}
.evento-card .evento-date .month{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-top:4px}
.evento-card .evento-date .year{font-size:.68rem;opacity:.75;margin-top:2px;font-weight:500}
.evento-card .evento-thumb{display:none;background:var(--bg-soft);overflow:hidden}
.evento-card .evento-thumb img{width:100%;height:100%;object-fit:cover}
.evento-card .evento-thumb-fallback{display:flex;align-items:center;justify-content:center;height:100%;font-size:3rem;opacity:.3}
@media(min-width:760px){.evento-card .evento-thumb{display:block}}
.evento-card .evento-body{padding:18px 22px;display:flex;flex-direction:column;justify-content:center}
.evento-card .evento-body h3{font-size:1.2rem;margin:0 0 6px;line-height:1.3}
.evento-card .evento-meta{
	font-size:.84rem;
	color:var(--ink-soft);
	margin:0 0 8px;
	display:flex;
	gap:14px;
	flex-wrap:wrap;
}
.evento-card .evento-body p{font-size:.92rem;color:var(--ink-soft);line-height:1.5;margin:0 0 8px}
.evento-card .evento-more{font-size:.82rem;color:var(--red);font-weight:600}

/* Eventi home widget */
.eventi-home-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	margin-top:24px;
}
@media(min-width:720px){.eventi-home-grid{grid-template-columns:repeat(3,1fr)}}
.evento-card-home{
	display:grid;
	grid-template-columns:84px 1fr;
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	cursor:pointer;
	transition:transform .2s,box-shadow .2s;
}
.evento-card-home:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,.08)}
.evento-card-home .evento-date{
	background:#1a1a1a;
	color:#fff;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	padding:16px 8px;
	text-align:center;
}
.evento-card-home .evento-date .day{font-size:1.8rem;font-weight:800;line-height:1;font-family:'Courier New',monospace}
.evento-card-home .evento-date .month{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin-top:3px;color:var(--red)}
.evento-card-home .evento-body{padding:14px 18px;display:flex;flex-direction:column;justify-content:center}
.evento-card-home .evento-body h3{font-size:1rem;margin:0;line-height:1.3}
.evento-card-home .evento-when{font-size:.78rem;color:var(--ink-faint);margin:6px 0 0}

/* === LIGHTBOX VANILLA === */
#imago-lightbox{
	position:fixed;
	inset:0;
	background:rgba(0,0,0,.95);
	z-index:9999;
	display:none;
	align-items:center;
	justify-content:center;
	padding:40px 16px;
}
#imago-lightbox.open{display:flex}
#imago-lightbox .lb-stage{
	max-width:90vw;
	max-height:80vh;
	display:flex;
	align-items:center;
	justify-content:center;
}
#imago-lightbox .lb-stage img{
	max-width:100%;
	max-height:100%;
	display:block;
	box-shadow:0 20px 60px rgba(0,0,0,.5);
}
#imago-lightbox .lb-close,
#imago-lightbox .lb-prev,
#imago-lightbox .lb-next{
	position:absolute;
	background:rgba(255,255,255,.08);
	color:#fff;
	border:0;
	font-size:2rem;
	width:48px;
	height:48px;
	border-radius:50%;
	cursor:pointer;
	transition:background .2s;
	display:flex;
	align-items:center;
	justify-content:center;
}
#imago-lightbox .lb-close:hover,
#imago-lightbox .lb-prev:hover,
#imago-lightbox .lb-next:hover{background:rgba(255,255,255,.2)}
#imago-lightbox .lb-close{top:20px;right:20px;font-size:1.8rem}
#imago-lightbox .lb-prev{left:20px;top:50%;transform:translateY(-50%)}
#imago-lightbox .lb-next{right:20px;top:50%;transform:translateY(-50%)}
#imago-lightbox .lb-caption{
	position:absolute;
	bottom:24px;
	left:50%;
	transform:translateX(-50%);
	color:#fff;
	background:rgba(0,0,0,.5);
	padding:8px 16px;
	border-radius:4px;
	font-size:.9rem;
	max-width:80vw;
	text-align:center;
}

/* === DONATE STICKY === */
.imago-donate-sticky{
	position:fixed;
	bottom:24px;
	right:24px;
	background:var(--red);
	color:#fff !important;
	padding:14px 22px;
	border-radius:32px;
	font-weight:700;
	font-size:.95rem;
	text-decoration:none !important;
	box-shadow:0 8px 24px rgba(212,20,26,.35);
	z-index:90;
	display:flex;
	align-items:center;
	gap:8px;
	transition:transform .2s,box-shadow .2s;
}
.imago-donate-sticky:hover{
	transform:translateY(-2px) scale(1.03);
	box-shadow:0 12px 32px rgba(212,20,26,.45);
	color:#fff !important;
}
.imago-donate-sticky .dd-icon{font-size:1.1rem}
@media(max-width:600px){
	.imago-donate-sticky .dd-text{display:none}
	.imago-donate-sticky{padding:12px 14px}
	.imago-donate-sticky .dd-icon{font-size:1.4rem}
}

/* === FILTRI CORSI === */
.corsi-filters{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:32px 0 24px;
	padding:0 0 16px;
	border-bottom:1px solid var(--line);
}
.corsi-filter{
	background:transparent;
	border:1px solid var(--line);
	color:var(--ink-soft);
	padding:8px 16px;
	border-radius:20px;
	font-size:.85rem;
	font-weight:500;
	cursor:pointer;
	transition:all .2s;
	font-family:inherit;
}
.corsi-filter:hover{
	border-color:var(--red);
	color:var(--red);
}
.corsi-filter.is-active{
	background:var(--red);
	border-color:var(--red);
	color:#fff;
}

/* === SEARCH RESULTS === */
.search-results{
	display:flex;
	flex-direction:column;
	gap:24px;
	margin-top:24px;
}
.search-result-item{
	display:grid;
	grid-template-columns:120px 1fr;
	gap:20px;
	padding:18px 0;
	border-bottom:1px solid var(--line);
}
.search-result-thumb{
	background:var(--bg-soft);
	aspect-ratio:1/1;
	overflow:hidden;
	border-radius:4px;
}
.search-result-thumb img{width:100%;height:100%;object-fit:cover}
.search-thumb-fallback{
	display:flex;
	align-items:center;
	justify-content:center;
	height:100%;
	font-size:2rem;
	opacity:.3;
}
.search-result-type{
	display:inline-block;
	font-size:.72rem;
	text-transform:uppercase;
	letter-spacing:.12em;
	color:var(--red);
	font-weight:700;
	margin-bottom:6px;
}
.search-result-body h3{font-size:1.15rem;margin:0 0 6px;line-height:1.3}
.search-result-body h3 a{color:var(--ink);text-decoration:none}
.search-result-body h3 a:hover{color:var(--red)}
.search-result-body p{margin:0;color:var(--ink-soft);line-height:1.5;font-size:.95rem}

/* === FAQ ACCORDION === */
.imago-faq-list{margin:32px 0}
.imago-faq{
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	margin-bottom:12px;
	overflow:hidden;
}
.imago-faq summary{
	padding:18px 24px;
	cursor:pointer;
	font-weight:600;
	font-size:1.05rem;
	color:var(--ink);
	list-style:none;
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:16px;
	transition:background .15s;
}
.imago-faq summary::-webkit-details-marker{display:none}
.imago-faq summary::after{
	content:'+';
	font-size:1.6rem;
	font-weight:300;
	color:var(--red);
	flex-shrink:0;
	transition:transform .25s;
	width:24px;
	height:24px;
	display:flex;
	align-items:center;
	justify-content:center;
}
.imago-faq[open] summary::after{transform:rotate(45deg)}
.imago-faq[open] summary{background:var(--bg-soft);border-bottom:1px solid var(--line)}
.imago-faq summary:hover{background:var(--bg-soft)}
.imago-faq-body{padding:18px 24px 22px;color:var(--ink-soft);line-height:1.65;font-size:.95rem}
.imago-faq-body p{margin:0 0 10px}
.imago-faq-body p:last-child{margin-bottom:0}

/* === SR-ONLY (accessibility) === */
.sr-only{
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}


/* ============================================================
   v6.7 — LIGHTBOX + SEARCH + FILTRI CORSI + 404 + EVENTI + FAQ
   ============================================================ */

/* === LIGHTBOX === */
#imago-lightbox{
	position:fixed;
	inset:0;
	background:rgba(10,10,10,.94);
	z-index:9999;
	display:none;
	align-items:center;
	justify-content:center;
	padding:24px;
}
#imago-lightbox.open{display:flex}
#imago-lightbox img{
	max-width:100%;
	max-height:85vh;
	object-fit:contain;
	display:block;
	margin:0 auto;
}
#imago-lightbox .lb-stage{
	margin:0;
	max-width:1200px;
	width:100%;
	text-align:center;
}
#imago-lightbox figcaption{
	color:rgba(255,255,255,.8);
	font-size:.92rem;
	margin-top:14px;
	font-style:italic;
}
#imago-lightbox .lb-close,
#imago-lightbox .lb-prev,
#imago-lightbox .lb-next{
	position:absolute;
	background:rgba(255,255,255,.1);
	border:0;
	color:#fff;
	width:48px;height:48px;
	border-radius:50%;
	font-size:1.5rem;
	cursor:pointer;
	display:flex;align-items:center;justify-content:center;
	transition:background .2s;
}
#imago-lightbox .lb-close{top:20px;right:20px;font-size:2rem;line-height:1}
#imago-lightbox .lb-prev{left:20px;top:50%;transform:translateY(-50%)}
#imago-lightbox .lb-next{right:20px;top:50%;transform:translateY(-50%)}
#imago-lightbox button:hover{background:rgba(255,255,255,.22)}
.content .wp-block-image img,
.imago-maratone-gallery img,
.photoblog-grid img{cursor:zoom-in}

/* === SEARCH FORM === */
.imago-search-form{
	display:flex;
	gap:0;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	background:#fff;
	max-width:600px;
}
.imago-search-form input[type=search]{
	flex:1;
	border:0;
	padding:14px 18px;
	font-size:1rem;
	outline:none;
	min-width:0;
}
.imago-search-form button{
	border:0;
	background:var(--red);
	color:#fff;
	padding:0 22px;
	cursor:pointer;
	font-weight:600;
	display:flex;
	align-items:center;
	gap:6px;
}
.imago-search-form button:hover{background:var(--red-dark)}
.imago-search-form-404{max-width:none}

/* Header search panel */
.header-search-panel{
	display:none;
	padding:18px 0;
	background:var(--bg-soft);
	border-bottom:1px solid var(--line);
}
.header-search-panel.open{display:block}
.header-search-toggle{
	background:none;
	border:0;
	width:44px;height:44px;
	display:flex;align-items:center;justify-content:center;
	color:var(--ink);
	cursor:pointer;
	border-radius:50%;
	transition:background .15s;
}
.header-search-toggle:hover{background:var(--bg-soft)}

/* === SEARCH RESULTS GRID === */
.search-results-grid{
	display:grid;
	grid-template-columns:1fr;
	gap:18px;
}
@media(min-width:720px){.search-results-grid{grid-template-columns:1fr 1fr}}
.search-result-card{
	display:grid;
	grid-template-columns:120px 1fr;
	gap:18px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:8px;
	overflow:hidden;
	cursor:pointer;
	transition:transform .2s,box-shadow .2s;
}
.search-result-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.search-result-card .thumb{aspect-ratio:1/1;background:#f8f6f1}
.search-result-card .body{padding:14px 18px 14px 0;min-width:0}
.search-result-card .result-type{
	font-size:.7rem;
	letter-spacing:.18em;
	text-transform:uppercase;
	color:var(--red);
	font-weight:700;
}
.search-result-card h3{font-size:1.05rem;margin:6px 0 6px;line-height:1.3}
.search-result-card p{font-size:.88rem;color:var(--ink-soft);margin:0 0 8px;line-height:1.45}
.search-result-card .more{font-size:.82rem;color:var(--red);font-weight:600}

/* === FILTRI CORSI === */
.corsi-filters{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:24px 0 0;
	border-bottom:1px solid var(--line);
	padding-bottom:14px;
}
.corsi-filters .corsi-filter{
	background:none;
	border:1px solid var(--line);
	color:var(--ink-soft);
	padding:7px 14px;
	border-radius:20px;
	font-size:.85rem;
	font-weight:500;
	cursor:pointer;
	transition:all .2s;
}
.corsi-filters .corsi-filter:hover{border-color:var(--red);color:var(--red)}
.corsi-filters .corsi-filter.is-active{background:var(--red);border-color:var(--red);color:#fff}

/* === EVENTI page === */
.eventi-list{
	display:grid;
	grid-template-columns:1fr;
	gap:18px;
	margin:32px 0;
}
.evento-card{
	display:grid;
	grid-template-columns:90px 1fr;
	gap:22px;
	padding:22px;
	background:#fff;
	border:1px solid var(--line);
	border-left:4px solid var(--red);
	border-radius:8px;
	transition:transform .2s,box-shadow .2s;
}
.evento-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.evento-card.passato{opacity:.65;border-left-color:var(--line)}
.evento-data{
	text-align:center;
	border-right:1px solid var(--line);
	padding-right:18px;
}
.evento-data .giorno{font-size:2rem;font-weight:800;line-height:1;color:var(--red)}
.evento-data .mese{
	display:block;
	font-size:.72rem;
	text-transform:uppercase;
	letter-spacing:.12em;
	margin-top:4px;
	color:var(--ink-faint);
	font-weight:700;
}
.evento-data .anno{
	display:block;
	font-size:.78rem;
	color:var(--ink-faint);
	margin-top:2px;
}
.evento-body h3{font-size:1.15rem;margin:0 0 6px;line-height:1.3}
.evento-body h3 a{color:var(--ink);text-decoration:none}
.evento-body h3 a:hover{color:var(--red)}
.evento-body .meta{font-size:.82rem;color:var(--ink-faint);margin:0 0 8px}
.evento-body p{font-size:.92rem;color:var(--ink-soft);line-height:1.5;margin:0}

/* === FAQ === */
.imago-faq{margin:32px 0}
.imago-faq-item{
	border-bottom:1px solid var(--line);
	padding:0;
}
.imago-faq-item:first-child{border-top:1px solid var(--line)}
.imago-faq-q{
	display:flex;
	justify-content:space-between;
	align-items:center;
	padding:20px 0;
	cursor:pointer;
	font-weight:600;
	font-size:1.05rem;
	color:var(--ink);
	list-style:none;
}
.imago-faq-q::-webkit-details-marker{display:none}
.imago-faq-q::after{
	content:'+';
	font-size:1.5rem;
	font-weight:400;
	color:var(--red);
	transition:transform .2s;
	margin-left:14px;
	flex-shrink:0;
}
.imago-faq-item[open] .imago-faq-q::after{transform:rotate(45deg)}
.imago-faq-a{
	padding:0 0 24px;
	color:var(--ink-soft);
	line-height:1.6;
}
.imago-faq-a p:first-child{margin-top:0}
.imago-faq-a p:last-child{margin-bottom:0}

/* === Error 404 page === */
.error-404 .page-hero.has-photo{min-height:50vh}
.error-404 .category-grid h4{margin:0 0 8px;color:var(--red)}


/* ============================================================
   v6.8 — EVENTO CARD con featured image
   ============================================================ */
.evento-card{
	display:grid;
	grid-template-columns:90px 1fr;
	gap:22px;
	padding:20px 22px;
	background:#fff;
	border:1px solid var(--line);
	border-left:4px solid var(--red);
	border-radius:8px;
	transition:transform .2s,box-shadow .2s;
	align-items:center;
}
.evento-card.has-thumb{
	grid-template-columns:90px 140px 1fr;
}
@media(max-width:600px){
	.evento-card.has-thumb{
		grid-template-columns:70px 100px 1fr;
		gap:14px;
		padding:14px 16px;
	}
	.evento-card.has-thumb .evento-thumb img{height:100px}
}
.evento-thumb{
	display:block;
	border-radius:6px;
	overflow:hidden;
	background:var(--bg-soft);
	aspect-ratio:1/1;
}
.evento-thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .3s ease;
}
.evento-card:hover .evento-thumb img{transform:scale(1.04)}


/* ============================================================
   v7.1 — FORM ISCRIZIONE MARATONA
   ============================================================ */
.imago-iscrizione-wrap{margin:32px 0}
.imago-iscrizione-form fieldset{
	border:0;
	padding:0;
	margin:0 0 32px;
}
.imago-iscrizione-form legend{
	font-size:.85rem;
	font-weight:700;
	text-transform:uppercase;
	letter-spacing:.12em;
	color:#0f172a;
	padding:0;
	margin:0 0 14px;
	border-bottom:1px solid #e5e7eb;
	width:100%;
	padding-bottom:8px;
}

/* Categoria radio cards (stesso look dei card paypal ma cliccabili) */
.maratona-paypal-card.cat-radio{
	cursor:pointer;
	position:relative;
	user-select:none;
}
.maratona-paypal-card.cat-radio input[type=radio]{
	position:absolute;
	opacity:0;
	pointer-events:none;
}
.maratona-paypal-card.cat-radio:hover{
	border-color:#0070ba;
}
.maratona-paypal-card.cat-radio:has(input[type=radio]:checked){
	border-color:#0070ba;
	border-width:2px;
	padding:27px 23px 23px;
	background:#f0f9ff;
	box-shadow:0 6px 18px rgba(0,112,186,.15);
}
.maratona-paypal-card.cat-radio:has(input[type=radio]:checked)::after{
	content:'✓';
	position:absolute;
	top:10px;
	right:14px;
	color:#0070ba;
	font-size:1.2rem;
	font-weight:800;
}

/* Form rows */
.imago-form-row{
	display:grid;
	grid-template-columns:1fr;
	gap:14px;
	margin-bottom:14px;
}
@media(min-width:600px){
	.imago-form-row{grid-template-columns:1fr 1fr}
}
.imago-iscrizione-form label{
	display:block;
	font-weight:600;
	margin-bottom:6px;
	color:#0f172a;
	font-size:.95rem;
}
.imago-iscrizione-form input[type=text],
.imago-iscrizione-form input[type=email],
.imago-iscrizione-form input[type=tel]{
	width:100%;
	padding:11px 14px;
	border:1px solid #cbd5e1;
	border-radius:8px;
	font-size:1rem;
	box-sizing:border-box;
	transition:border-color .15s ease,box-shadow .15s ease;
	background:#fff;
}
.imago-iscrizione-form input:focus{
	outline:0;
	border-color:#0070ba;
	box-shadow:0 0 0 3px rgba(0,112,186,.15);
}

/* Checkbox per regolamento/privacy */
.imago-checkbox{
	display:flex;
	gap:12px;
	align-items:flex-start;
	margin:12px 0;
	font-weight:400;
	color:#334155;
	line-height:1.5;
	font-size:.95rem;
}
.imago-checkbox input[type=checkbox]{
	margin-top:3px;
	width:18px;
	height:18px;
	flex-shrink:0;
	accent-color:#0070ba;
}
.imago-checkbox a{color:#0070ba;text-decoration:underline}

/* Submit button */
.imago-form-submit{
	display:block;
	width:100%;
	padding:16px 28px;
	background:#0070ba;
	color:#fff;
	border:0;
	border-radius:10px;
	font-size:1.05rem;
	font-weight:700;
	cursor:pointer;
	transition:background .15s ease,transform .15s ease,box-shadow .15s ease;
	box-shadow:0 2px 4px rgba(0,112,186,.2);
}
.imago-form-submit:hover{
	background:#005ea6;
	transform:translateY(-1px);
	box-shadow:0 6px 14px rgba(0,112,186,.3);
}
.imago-form-submit:focus-visible{
	outline:3px solid #93c5fd;
	outline-offset:2px;
}
.imago-form-fineprint{
	font-size:.82rem;
	color:#64748b;
	text-align:center;
	margin:14px 0 0;
	line-height:1.5;
}

/* Messaggi success/error */
.imago-form-success,.imago-form-error{
	padding:20px 24px;
	border-radius:10px;
	margin:24px 0;
}
.imago-form-success{
	background:#ecfdf5;
	border:1px solid #6ee7b7;
	color:#065f46;
}
.imago-form-success h3{margin:0 0 10px;color:#047857}
.imago-form-error{
	background:#fef2f2;
	border:1px solid #fecaca;
	color:#991b1b;
}
.imago-btn-secondary{
	display:inline-block;
	margin-top:10px;
	padding:10px 18px;
	background:#fff;
	border:1px solid #065f46;
	color:#065f46 !important;
	border-radius:8px;
	text-decoration:none !important;
	font-weight:600;
}