/* Parrocchia San Ponziano: template Joomla 5 ricavato dal progetto grafico del 23/10/2026. */
html{-webkit-text-size-adjust:100%}
body{margin:0}
img{max-width:100%;height:auto}
[hidden]{display:none!important}
.visually-hidden,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.salta{position:absolute;left:-999px;top:0;z-index:100;background:var(--oro);color:#fff;padding:.6rem 1rem}
.salta:focus{left:16px}

/* Layout: testata blu notte con menù a tendina, foto della chiesa in apertura, poi tre schede fisse (Messe, Segreteria, Dove siamo), il Vangelo della domenica e gli avvisi. */
:root{
  --marmo:#f5f4f1;        /* fondo: marmo bianco dell'altare */
  --carta:#ffffff;
  --inchiostro:#1f2433;
  --tenue:#5b6072;
  --notte:#1c2742;        /* blu notte: testata e piè di pagina */
  --notte-fg:#eef0f6;
  --porpora:#8e2c22;      /* rosso dei mosaici dell'abside */
  --oro:#a8823a;          /* oro antico del tabernacolo */
  --linea:#dedad2;
  --display:"Marcellus","Trajan Pro",Georgia,serif;
  --corpo:"Alegreya Sans","Segoe UI",system-ui,sans-serif;
  --citazione:"Alegreya",Georgia,serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --marmo:#14171f;--carta:#1b1f2a;--inchiostro:#e9e7e2;--tenue:#a6a9b6;--notte:#0e1424;--notte-fg:#e9ecf4;--porpora:#d9705f;--oro:#d2ad62;--linea:#2c3140;color-scheme:dark}}
:root[data-theme="dark"]{--marmo:#14171f;--carta:#1b1f2a;--inchiostro:#e9e7e2;--tenue:#a6a9b6;--notte:#0e1424;--notte-fg:#e9ecf4;--porpora:#d9705f;--oro:#d2ad62;--linea:#2c3140;color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--marmo);color:var(--inchiostro);font-family:var(--corpo);font-size:17px;line-height:1.6}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--notte)}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;line-height:1.15}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--oro);font-weight:700}
:focus-visible{outline:2px solid var(--oro);outline-offset:3px}

/* barra superiore */
.topbar{background:var(--notte);color:var(--notte-fg);font-size:.86rem;border-bottom:1px solid rgba(255,255,255,.08)}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:.3rem 1.6rem;padding-block:.45rem;opacity:.85}

/* testata */
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--notte);color:var(--notte-fg);box-shadow:0 2px 14px rgba(0,0,0,.18)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.7rem}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand svg.logo{width:92px;height:auto;flex:none;color:var(--notte-fg)}
@media (max-width:480px){.brand svg.logo{width:68px}}
.brand strong{display:block;font-family:var(--display);font-weight:400;font-size:1.35rem;letter-spacing:.02em;line-height:1.1}
.brand span{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7}

nav.menu>ul{list-style:none;margin:0;padding:0;display:flex;gap:.1rem}
nav.menu li{position:relative}
.voce{display:flex;align-items:center;gap:.35rem;background:none;border:0;color:inherit;font:inherit;font-size:.95rem;font-weight:500;padding:.65rem .8rem;cursor:pointer;text-decoration:none;border-radius:2px;white-space:nowrap}
.voce:hover,li.aperto>.voce{color:var(--oro)}
.voce svg{width:10px;height:10px;transition:transform .2s}
.tendina{position:absolute;top:100%;left:0;min-width:260px;background:var(--carta);color:var(--inchiostro);border-top:3px solid var(--oro);box-shadow:0 18px 40px rgba(10,15,30,.22);padding:.6rem 0;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s,transform .18s,visibility .18s}
.tendina.due{display:grid;grid-template-columns:1fr 1fr;min-width:440px;column-gap:.4rem}
nav.menu>ul>li:nth-last-child(-n+4) .tendina{left:auto;right:0}
.tendina a{display:block;padding:.45rem 1.2rem;text-decoration:none;font-size:.95rem;border-left:2px solid transparent}
.tendina a:hover,.tendina a:focus-visible{background:var(--marmo);border-left-color:var(--porpora);color:var(--porpora)}
@media (hover:hover) and (min-width:1001px){
  nav.menu li:hover>.tendina,nav.menu li:focus-within>.tendina{opacity:1;visibility:visible;transform:none}
  nav.menu li:hover>.voce svg{transform:rotate(180deg)}
}
li.aperto>.tendina{opacity:1;visibility:visible;transform:none}
.hamburger{display:none;background:none;border:1px solid rgba(255,255,255,.3);color:inherit;padding:.5rem .8rem;font:inherit;font-weight:500;cursor:pointer;border-radius:2px}

@media (max-width:1000px){
  .hamburger{display:block}
  nav.menu{position:absolute;top:100%;left:0;right:0;background:var(--notte);max-height:calc(100vh - 80px);overflow:auto;display:none;border-top:1px solid rgba(255,255,255,.1)}
  nav.menu.mostra{display:block}
  nav.menu>ul{flex-direction:column;padding:.5rem max(16px,env(safe-area-inset-right,0px)) 1.2rem max(16px,env(safe-area-inset-left,0px))}
  .voce{width:100%;justify-content:space-between;padding:.85rem .2rem;border-bottom:1px solid rgba(255,255,255,.08);font-size:1.05rem}
  .tendina,.tendina.due{position:static;min-width:0;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;border-top:0;background:transparent;color:var(--notte-fg);padding:.3rem 0 .6rem}
  li.aperto>.tendina{display:block}
  li.aperto>.voce svg{transform:rotate(180deg)}
  .tendina a{padding:.5rem .9rem;opacity:.9}
  .tendina a:hover{background:rgba(255,255,255,.06);color:var(--oro)}
}

/* apertura */
.hero{position:relative;min-height:min(78vh,640px);display:flex;align-items:flex-end;color:#fff;background:#2a3020 center 9%/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 75% at 12% 100%,rgba(12,16,28,.62),rgba(12,16,28,0) 70%),linear-gradient(180deg,rgba(12,16,28,0) 50%,rgba(12,16,28,.6) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:4rem 3.2rem;width:100%}
.hero .eyebrow{color:#e7cd8f}
.hero h1{font-size:clamp(2.2rem,5.4vw,4.1rem);max-width:16ch;margin:.5rem 0 1rem;text-shadow:0 2px 4px rgba(0,0,0,.55),0 2px 24px rgba(0,0,0,.45)}
.hero p{max-width:52ch;font-size:1.12rem;margin:0 0 1.6rem;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 18px rgba(0,0,0,.5)}
.hero .eyebrow{text-shadow:0 1px 3px rgba(0,0,0,.8)}
.bottoni{display:flex;flex-wrap:wrap;gap:.8rem}
.btn{display:inline-block;padding:.75rem 1.4rem;text-decoration:none;font-weight:700;font-size:.95rem;letter-spacing:.03em;border-radius:2px;border:1px solid transparent}
.btn.pieno{background:#a8823a;color:#fff}
.btn.pieno:hover{background:#8f6d2c}
.btn.vuoto{border-color:rgba(255,255,255,.7);color:#fff}
.btn.vuoto:hover{background:rgba(255,255,255,.12)}

/* schede fisse */
.info{margin-top:-2.4rem;position:relative;z-index:2}
.info .griglia{display:grid;grid-template-columns:1.25fr 1fr 1fr;background:var(--carta);box-shadow:0 10px 36px rgba(20,25,45,.12);border-top:3px solid var(--porpora)}
.scheda{padding:1.8rem 1.8rem 2rem;min-width:0}
.scheda+.scheda{border-left:1px solid var(--linea)}
.scheda h2{font-size:1.45rem;margin:.35rem 0 1rem}
.orari{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.2rem;margin:0}
.orari dt{font-weight:700;color:var(--tenue);font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;padding-top:.15rem}
.orari dd{margin:0;font-variant-numeric:tabular-nums;font-size:1.08rem}
.orari dd b{display:inline-block;font-weight:500;margin-right:.7rem}
.nota{font-size:.88rem;color:var(--tenue);margin:1rem 0 0}
.contatti{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.contatti li{display:grid;grid-template-columns:22px 1fr;gap:.6rem;align-items:start}
.contatti svg{width:18px;height:18px;margin-top:.3rem;color:var(--porpora)}
.contatti small{display:block;color:var(--tenue);font-size:.85rem}
.da-confermare{background:rgba(168,130,58,.14);border-radius:2px;padding:0 .3rem}
.link-freccia{display:inline-block;margin-top:1.1rem;font-weight:700;font-size:.92rem;color:var(--porpora);text-decoration:none;border-bottom:1px solid currentColor}

.foto-parco{height:130px;margin:-1.8rem -1.8rem 1.2rem;background:center 60%/cover no-repeat}
@media (max-width:480px){.foto-parco{margin:-1.5rem -1.2rem 1.1rem}}
/* Vangelo */
.vangelo{margin-top:5rem;background:var(--notte);color:var(--notte-fg)}
.vangelo .griglia{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}
.vangelo figure{margin:0;min-height:420px;background:center 30%/cover no-repeat}
.vangelo .testo{padding:3.6rem clamp(1.4rem,5vw,4.5rem);display:flex;flex-direction:column;justify-content:center;min-width:0}
.vangelo .eyebrow{color:var(--oro)}
.vangelo .liturgia{font-size:.95rem;opacity:.75;margin:.3rem 0 1.6rem}
.vangelo blockquote{margin:0;font-family:var(--citazione);font-style:italic;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.45;max-width:34ch}
.vangelo blockquote::before{content:"“";display:block;font-family:var(--display);font-style:normal;font-size:4rem;line-height:.6;color:var(--oro);margin-bottom:.6rem}
.vangelo cite{display:block;margin-top:1.2rem;font-style:normal;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;color:var(--oro)}
.vangelo .link-freccia{color:var(--notte-fg);align-self:flex-start}

/* avvisi */
section.avvisi{padding-block:5rem 4rem}
.intestazione{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--linea)}
.intestazione h2{font-size:clamp(1.8rem,3.4vw,2.4rem);margin-top:.3rem}
.lista-avvisi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem}
.avviso{display:grid;grid-template-columns:4.2rem 1fr;gap:1.2rem;padding:1.3rem 0;border-bottom:1px solid var(--linea)}
.data{text-align:center;border:1px solid var(--linea);background:var(--carta);padding:.4rem 0 .5rem;align-self:start}
.data b{display:block;font-family:var(--display);font-weight:400;font-size:1.7rem;line-height:1.1;color:var(--porpora)}
.data span{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tenue)}
.data.fisso b{font-size:1.15rem;padding-top:.35rem}
.avviso h3{font-family:var(--corpo);font-weight:700;font-size:1.08rem;line-height:1.35;margin-bottom:.25rem}
.avviso p{margin:0;color:var(--tenue);font-size:.98rem}
.tag{display:inline-block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--oro);margin-bottom:.25rem}

/* vita della parrocchia */
section.vita{padding-block:1rem 5rem}
.vita .griglia{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;background:var(--carta);border:1px solid var(--linea)}
.vita figure{margin:0;min-height:360px;background:center/cover no-repeat}
.vita .testo{padding:2.6rem clamp(1.4rem,4vw,3.2rem);min-width:0}
.vita h2{font-size:clamp(1.7rem,3vw,2.2rem);margin:.4rem 0 .8rem}
.vita p{color:var(--tenue);margin:0 0 1.4rem;max-width:52ch}
.porte{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.porte a{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border:1px solid var(--linea);text-decoration:none;font-weight:500;background:var(--marmo)}
.porte a:hover{border-color:var(--porpora);color:var(--porpora)}
.porte a::after{content:"→";color:var(--oro)}

/* piè di pagina */
footer{background:var(--notte);color:var(--notte-fg)}
footer .wrap{padding-block:3.4rem 1.6rem}
footer .colonne{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.4rem}
footer h3{font-size:1.15rem;margin-bottom:.8rem;color:var(--oro)}
footer p,footer li{font-size:.95rem;opacity:.85;margin:0 0 .35rem}
footer ul{list-style:none;margin:0;padding:0}
footer a{text-decoration:none}
footer a:hover{color:var(--oro)}
footer .fondo{margin-top:2.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12);font-size:.84rem;opacity:.6;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}

@media (max-width:900px){
  .info .griglia{grid-template-columns:1fr}
  .scheda+.scheda{border-left:0;border-top:1px solid var(--linea)}
  .vangelo .griglia,.vita .griglia{grid-template-columns:1fr}
  .vangelo figure{min-height:300px}
  .vita figure{min-height:240px}
  .lista-avvisi{grid-template-columns:1fr}
  footer .colonne{grid-template-columns:1fr}
}
@media (max-width:480px){
  .topbar .indirizzo{display:none}
  .brand strong{font-size:1.15rem}
  .porte{grid-template-columns:1fr}
  .scheda{padding:1.5rem 1.2rem 1.7rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---- aggiunte per Joomla ---- */
.topbar a{text-decoration:none}
.topbar a:hover{color:var(--oro)}
.hero .wrap>*:first-child{margin-top:0}
.hero .wrap p:last-child{margin-bottom:0}
.scheda h2 .sotto,.sotto{display:block;font-size:1rem;color:var(--tenue);margin-top:.3rem;font-family:var(--corpo)}
.scheda p{margin:0 0 .6rem}
.scheda>*:last-child{margin-bottom:0}
.scheda.dove p{color:var(--tenue)}
/* icone dei contatti: disegnate dal CSS, così l'editor non le cancella */
.contatti li{position:relative}
.contatti li::before{content:"";width:18px;height:18px;margin-top:.3rem;background:var(--porpora);-webkit-mask:var(--icona) center/contain no-repeat;mask:var(--icona) center/contain no-repeat}
.contatti li.tel{--icona:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/%3E%3C/svg%3E")}
.contatti li.mail{--icona:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='3' y='5' width='18' height='14' rx='1'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E")}
.contatti li.ore{--icona:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E")}
.contatti li:not(.tel):not(.mail):not(.ore){--icona:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4' fill='black'/%3E%3C/svg%3E")}
.contatti a{text-decoration:none}
.vangelo .testo p{margin:0}
.vangelo .testo p.liturgia{margin:.3rem 0 1.6rem}
.vita .testo>p:last-of-type{margin-bottom:1.4rem}
.lista-avvisi .avviso h3 a{text-decoration:none}
.lista-avvisi .avviso h3 a:hover{color:var(--porpora)}
.avviso p+p{margin-top:.3rem}

/* pagine interne */
.pagina{padding-block:3rem 4.5rem}
.pagina.con-colonna{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:3rem}
.pagina .principale{min-width:0}
.pagina aside .modulo{background:var(--carta);border:1px solid var(--linea);padding:1.4rem 1.5rem;margin-bottom:1.4rem}
.pagina aside .modulo>h3{font-size:1.2rem;margin-bottom:.8rem;color:var(--porpora)}
.pagina aside ul{list-style:none;margin:0;padding:0}
.pagina aside li{padding:.35rem 0;border-bottom:1px solid var(--linea)}
.pagina aside a{text-decoration:none}
.pagina aside a:hover{color:var(--porpora)}
@media (max-width:900px){.pagina.con-colonna{grid-template-columns:1fr}}
.briciole{background:var(--carta);border-bottom:1px solid var(--linea);font-size:.88rem;color:var(--tenue)}
.briciole .wrap{padding-block:.6rem}
.briciole ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem .5rem}
.briciole li+li::before{content:"›";margin-right:.5rem;color:var(--oro)}
.briciole a{text-decoration:none}
.briciole a:hover{color:var(--porpora)}
.principale h1,.principale .page-header h1,.principale .page-header h2{font-size:clamp(2rem,4vw,2.9rem);margin:0 0 1.2rem;color:var(--inchiostro)}
.principale h2{font-size:clamp(1.5rem,2.6vw,1.9rem);margin:2rem 0 .8rem}
.principale h3{font-size:1.3rem;margin:1.6rem 0 .6rem}
.principale .page-header h2 a,.principale h2 a{text-decoration:none}
.principale p,.principale li{max-width:72ch}
.principale a{color:var(--porpora)}
.principale img{border-radius:2px}
.principale blockquote{margin:1.5rem 0;padding:.4rem 0 .4rem 1.4rem;border-left:3px solid var(--oro);font-family:var(--citazione);font-style:italic;font-size:1.15rem}
.principale table{border-collapse:collapse;width:100%;margin:1rem 0;background:var(--carta)}
.principale th,.principale td{border:1px solid var(--linea);padding:.55rem .8rem;text-align:left;vertical-align:top}
.principale th{background:var(--marmo);font-weight:700}
.principale .article-info,.principale dl.article-info{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;margin:0 0 1.2rem;font-size:.88rem;color:var(--tenue)}
.principale .article-info dt{display:none}
.principale .article-info dd{margin:0}
.principale .blog-item,.principale .items-leading>div,.principale .com-content-category-blog__item{padding-bottom:1.8rem;margin-bottom:1.8rem;border-bottom:1px solid var(--linea)}
.principale .readmore a,.principale a.btn{display:inline-block;margin-top:.4rem;font-weight:700;font-size:.92rem;color:var(--porpora);text-decoration:none;border-bottom:1px solid currentColor}
.principale .pagination{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0}
.principale .pagination li a,.principale .pagination li span{display:block;padding:.35rem .75rem;border:1px solid var(--linea);background:var(--carta);text-decoration:none}
.principale .pagination li.active span,.principale .pagination li.active a{background:var(--notte);color:var(--notte-fg);border-color:var(--notte)}
.principale input,.principale textarea,.principale select{font:inherit;padding:.55rem .7rem;border:1px solid var(--linea);background:var(--carta);color:var(--inchiostro);border-radius:2px;max-width:100%}
.principale button,.principale .btn-primary,.principale input[type=submit]{font:inherit;font-weight:700;background:var(--oro);color:#fff;border:0;padding:.65rem 1.3rem;border-radius:2px;cursor:pointer}
.principale .float-start,.principale .pull-left,.principale .item-image.float-start{float:left;margin:0 1.4rem 1rem 0}
.principale .float-end,.principale .pull-right{float:right;margin:0 0 1rem 1.4rem}
.principale::after{content:"";display:block;clear:both}
@media (max-width:600px){.principale .float-start,.principale .float-end,.principale .pull-left,.principale .pull-right{float:none;margin:0 0 1rem}}
#system-message-container{margin-bottom:1rem}
#system-message-container joomla-alert,#system-message-container .alert{display:block;padding:.9rem 1.1rem;border-left:3px solid var(--oro);background:var(--carta);margin-bottom:.6rem}
.sopra-contenuto,.sotto-contenuto{margin-block:1.5rem}
footer .colonne ul,footer .colonne p{margin:0 0 .35rem}
footer .colonne .mod-menu{list-style:none;margin:0;padding:0}
footer .colonne li{margin:0 0 .35rem}
footer .fondo a{text-decoration:none}
/* pagina di errore */
.errore{padding-block:5rem;text-align:center}
.errore .codice{font-family:var(--display);font-size:clamp(4rem,12vw,7rem);color:var(--oro);line-height:1}
.errore h1{font-size:clamp(1.6rem,3vw,2.2rem);margin:.6rem 0 1rem}
.errore p{color:var(--tenue)}

/* foto predefinite (si cambiano dal campo "Immagine di sfondo" del modulo) */
.hero{background-image:url("../images/chiesa.jpg")}
.foto-parco{background-image:url("../images/viale.jpg")}
.vangelo figure{background-image:url("../images/crocifisso.jpg")}
.vita figure{background-image:url("../images/tabernacolo.jpg")}
