/* Shared POI component, isolated from homepage, listing cards and other themes. */
body[data-theme="case-vacanze"] .poi-photo-section .poi-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-grid { display:flex; width:100%; max-width:none; gap:20px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; padding:2px 2px 10px; box-sizing:border-box; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-grid::-webkit-scrollbar { display:none; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card { flex:0 0 calc((100% - 60px)/4); scroll-snap-align:start; }
.poi-photo-section .poi-carousel-controls { display:flex; gap:8px; }
.poi-photo-section .poi-carousel-controls button { width:38px; height:38px; border:1px solid var(--cvo-line,#e4e7e8); border-radius:50%; background:#fff; color:var(--cvo-ink,#082958); cursor:pointer; font-size:20px; }
.poi-photo-section .poi-carousel-controls button[hidden] { display:none; }
.poi-photo-section .poi-carousel-controls button:disabled { opacity:.45; cursor:default; }
.poi-photo-section .poi-carousel-controls button:focus-visible,.poi-photo-section .poi-card-grid:focus-visible { outline:2px solid var(--cvo-ink,#082958); outline-offset:2px; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card { display:flex; flex-direction:column; min-width:0; padding:0; border:1px solid var(--cvo-line,#e4e7e8); border-radius:18px; overflow:hidden; background:#fff; }
.poi-photo-section .poi-photo { margin:0; }
.poi-photo-section .poi-photo-visual { position:relative; aspect-ratio:16/9; overflow:hidden; background:#eef3f3; }
.poi-photo-section .poi-photo img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.poi-photo-section .poi-photo-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:linear-gradient(140deg,#e9f3f4,#f7eddf); color:#426577; font-size:13px; }
.poi-photo-section .poi-photo:not(.poi-photo-missing) .poi-photo-placeholder { visibility:hidden; }
.poi-photo-section .poi-photo-missing img,.poi-photo-section .poi-photo-missing figcaption { display:none; }
.poi-photo-section figcaption { padding:8px 16px 0; font-size:10px; line-height:1.5; color:#52646b; overflow-wrap:anywhere; }
.poi-photo-section figcaption a { color:inherit; text-decoration:underline; }
.poi-photo-section figcaption span { display:block; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-body { display:flex; flex:1; flex-direction:column; gap:8px; padding:18px 20px 22px; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-category { margin:0; color:var(--cvo-coral-dark,#bd422b); font-size:11px; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-name { margin:0; font-family:var(--font-body); font-size:20px; line-height:1.3; overflow-wrap:anywhere; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-meta { margin:0; font-size:13px; color:#52646b; }
body[data-theme="case-vacanze"] .poi-photo-section .poi-card-desc { margin:0; line-height:1.65; }
.poi-photo-section .poi-card-link { margin-top:auto; padding-top:8px; }
.poi-photo-section a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
@media(max-width:1050px) { body[data-theme="case-vacanze"] .poi-photo-section .poi-card { flex-basis:calc((100% - 40px)/2.5); } }
@media(max-width:680px) { body[data-theme="case-vacanze"] .poi-photo-section .poi-card { flex-basis:72%; } body[data-theme="case-vacanze"] .poi-photo-section .poi-card-grid { gap:14px; } }
@media(prefers-reduced-motion:reduce) { body[data-theme="case-vacanze"] .poi-photo-section .poi-card-grid { scroll-behavior:auto; } }
