/* Luoghi: pagine autonome, finestre e gallerie fotografiche. */
.place-inline{text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:.2em;cursor:pointer}
.place-inline:hover{text-decoration-style:solid;text-decoration-thickness:2px}
.places-home{padding-block:0 5.5rem}
.places-home .section-heading{margin-bottom:2rem}
.places-intro{max-width:410px;font-size:1rem}
.place-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.place-card{min-width:0}
.place-card-main{display:block;text-decoration:none}
.place-card-picture{position:relative;overflow:hidden;border-radius:6px;background:var(--forest);aspect-ratio:4/3}
.place-card-picture img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.place-card-main:hover img{transform:scale(1.04)}
.place-card-index{position:absolute;top:1rem;left:1rem;display:grid;place-items:center;min-width:38px;height:38px;padding:0 .5rem;border-radius:50%;background:var(--peach);color:var(--ink);font-weight:700;font-size:.875rem}
.place-card-main h3{margin-top:1.1rem;font-size:1.35rem;line-height:1.3;font-weight:700;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.place-card-main h3 svg{flex-shrink:0}
.place-card-subtitle{margin-top:.4rem;font-size:.9375rem;line-height:1.5}
.place-card-credit{margin-top:.7rem;font-size:.75rem;line-height:1.5}
.venue-pills{display:flex;gap:.75rem 1.25rem;flex-wrap:wrap;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.venue-pills a{display:inline-flex;gap:.35rem;align-items:center;font-size:.875rem;line-height:1.5;padding:.25rem 0}
.venue-pills svg{width:17px;height:17px}
button{font:inherit;color:inherit;cursor:pointer}
[hidden]{display:none!important}
.place-dialog{width:min(1060px,calc(100vw - 3rem));max-width:none;max-height:calc(100vh - 3rem);max-height:calc(100dvh - 3rem);margin:auto;border:1px solid var(--line);border-radius:12px;padding:0;background:var(--cream);color:var(--ink);overscroll-behavior:contain;box-shadow:0 30px 90px rgba(0,40,30,.3)}
.place-dialog:not([open]){display:none}
.place-dialog::backdrop{background:rgba(0,36,29,.7);backdrop-filter:blur(5px)}
.dialog-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 1.5rem;border-bottom:1px solid var(--line);background:var(--peach)}
.dialog-toolbar p{font-size:.8125rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.dialog-close{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:44px;padding:.45rem .6rem;border:0;border-radius:3px;background:transparent;font-size:.875rem;font-weight:700}
.dialog-close:hover{background:rgba(52,77,107,.09)}
.place-content{padding:2.25rem}
.place-heading{margin-bottom:1.75rem}
.place-heading .eyebrow{color:var(--red);margin-bottom:.85rem}
.place-title{font-family:Festival Serif,Georgia,serif;font-size:clamp(2.1rem,4.4vw,3.8rem);line-height:1.08;letter-spacing:-.04em;color:var(--blue)}
.place-subtitle{margin-top:.75rem;font-size:1.0625rem;line-height:1.5}
.place-gallery{position:relative;margin:0 0 2rem}
.place-gallery figure{margin:0 0 1.5rem}
.place-gallery.gallery-ready figure{margin-bottom:0}
.place-gallery figure img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:5px;background:var(--peach);touch-action:pan-y}
.place-gallery figcaption{margin-top:.75rem;font-size:.875rem;line-height:1.5}
.place-gallery .photo-portrait img{object-fit:contain;background:#e4d7cc}
.photo-detail{position:relative;overflow:hidden;aspect-ratio:16/9;border-radius:5px;background:var(--peach)}
.place-gallery .photo-detail img{position:absolute;max-width:none;width:240%;height:auto;aspect-ratio:auto;left:-65%;top:-132%;border-radius:0;object-fit:initial}
.photo-caption{display:block}
.photo-attribution{display:block;font-size:.75rem;line-height:1.65;margin-top:.25rem}
.gallery-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem}
.gallery-count{font-size:.875rem;font-variant-numeric:tabular-nums}
.gallery-buttons{display:flex;align-items:center;gap:.65rem}
.gallery-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--peach);transition:background .2s,color .2s}
.gallery-button:hover{background:var(--forest);color:var(--cream)}
.gallery-button.prev svg{transform:rotate(180deg)}
.place-details{display:grid;grid-template-columns:1.12fr 1fr;gap:2.5rem}
.place-story p{margin-bottom:1.1rem;font-size:1rem;line-height:1.75}
.place-story h2,.place-story h3{font-size:1.25rem;font-weight:700;margin-bottom:1rem;line-height:1.4}
.place-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.place-events{padding:1.5rem;border:1px solid var(--line);border-radius:5px;background:var(--peach);align-self:start}
.place-events h2,.place-events h3{font-size:1.125rem;line-height:1.4;font-weight:700}
.place-events-date{font-size:.875rem;margin-top:.35rem}
.venue-event-list{list-style:none;padding:0;margin:1.2rem 0 0}
.venue-event{display:grid;grid-template-columns:3.1rem 1fr;gap:.8rem;padding:.85rem 0;border-top:1px solid var(--line);font-size:.875rem;line-height:1.5}
.venue-event time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--red)}
.place-events .text-link{margin-top:1.1rem;font-size:.875rem}
.place-sources{padding-top:1rem;margin-top:1.5rem;border-top:1px solid var(--line);font-size:.8125rem;line-height:1.7}
.place-sources summary{cursor:pointer;font-size:.8125rem;font-weight:700;padding:.25rem 0}
.place-sources ul{padding-left:1.1rem;margin:.6rem 0 0}
.place-sources p{font-size:.8125rem;margin:.5rem 0 0}
.place-page{padding-block:2rem 4rem}
.place-page .place-content{padding:2rem 0 0}
.place-page .place-title{font-size:clamp(2.4rem,5.5vw,4.7rem)}
.place-page .place-gallery figure img{max-height:610px}
.place-page .place-heading{margin-bottom:2.25rem}
.place-page .place-details{grid-template-columns:1.2fr 1fr;gap:4rem}
.place-back{display:inline-flex;align-items:center;gap:.6rem;font-size:.875rem;font-weight:700;text-decoration:none}
.place-back svg{transform:rotate(180deg)}
.place-back:hover{text-decoration:underline}
.other-places{margin-top:3.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.other-places h2{font-family:Festival Serif,Georgia,serif;font-size:2rem;line-height:1.15;letter-spacing:-.02em;margin-bottom:1.1rem}
.other-places-links{display:flex;gap:1rem 2rem;flex-wrap:wrap}
.other-places-links a{display:inline-flex;gap:.6rem;align-items:center;min-height:40px;font-size:.9375rem}
@media(max-width:900px){.place-cards{gap:1.1rem}.place-card-main h3{font-size:1.2rem}.place-details,.place-page .place-details{gap:2rem;grid-template-columns:1fr 1fr}}
@media(max-width:760px){
 .places-home{padding-bottom:3.5rem}
 .places-intro{max-width:none}
 .place-cards{grid-template-columns:1fr;gap:2.5rem}
 .place-card-picture{aspect-ratio:16/10}
 .place-card-main h3{font-size:1.35rem}
 .place-card-credit{margin-top:.6rem}
 .venue-pills{gap:.65rem 1.2rem}
 .place-dialog{width:100%;height:100%;height:100dvh;max-height:100%;max-height:100dvh;margin:0;border:0;border-radius:0}
 .dialog-toolbar{padding:.6rem 1.1rem}
 .dialog-toolbar p{font-size:.75rem}
 .place-content{padding:1.5rem 1.25rem 2.5rem}
 .place-title{font-size:2.5rem}
 .place-subtitle{font-size:1rem}
 .place-gallery figure img{aspect-ratio:4/3}
 .photo-detail{aspect-ratio:16/9}
 .place-gallery .photo-detail img{aspect-ratio:auto}
 .place-details,.place-page .place-details{grid-template-columns:1fr;gap:1.75rem}
 .place-events{padding:1.25rem}
 .place-gallery{margin-bottom:1.75rem}
 .place-page{padding-block:1.5rem 3rem}
 .place-page .place-title{font-size:2.65rem}
 .place-page .place-heading{margin-bottom:1.5rem}
 .place-page .place-content{padding-top:1.5rem}
 .place-page .place-gallery figure img{max-height:none}
 .place-actions{gap:1.25rem}
 .other-places{margin-top:2.5rem}
}
@media print{
 .place-dialog,.venue-pills,.places-home,.gallery-controls,.place-back,.place-actions,.other-places{display:none!important}
 .place-page{padding:0}
 .place-page .place-content{padding:0}
 .place-page .place-title{font-size:26pt}
 .place-page .place-subtitle{font-size:11pt}
 .place-page .place-gallery{max-width:65%;margin:0 0 1rem}
 .place-page .place-gallery img{max-height:60mm!important}
 .place-details,.place-page .place-details{display:block}
 .place-story p{font-size:10pt;line-height:1.5}
 .place-events{break-inside:avoid;background:white;padding:.8rem}
 .place-sources{display:none}
}
