.blog-grid { align-items:start; }
/* Schede fotografiche senza cornice: non ereditano lo stile delle vecchie
   blog-card. I metadati rimangono nel catalogo, non nella vista pubblica. */
.portfolio-photo { min-width:0; margin:0; padding:0; border:0; background:transparent; box-shadow:none; scroll-margin-top:100px; }
.portfolio-photo[hidden] { display:none; }
.project-carousel { position:relative; min-width:0; background:transparent; }
.project-carousel__track { display:flex; width:100%; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; }
.project-carousel__track::-webkit-scrollbar { display:none; }
.project-carousel__slide { flex:0 0 100%; min-width:0; aspect-ratio:1; scroll-snap-align:start; scroll-snap-stop:always; }
.project-carousel__slide img { display:block; width:100%; height:100%; object-fit:contain; }
.project-carousel__arrow { position:absolute; top:calc(50% - 18px); width:36px; height:36px; display:grid; place-items:center; padding:0; border:1px solid #7776; border-radius:50%; background:#151515c9; color:#eee; font-family:inherit; font-size:28px; line-height:1; cursor:pointer; }
.project-carousel__arrow--prev { left:10px; }
.project-carousel__arrow--next { right:10px; }
.project-carousel__arrow:disabled { opacity:0; pointer-events:none; }
/* Indicatori oro in sovrimpressione: il corrente cresce senza spostare gli altri. */
.project-carousel__dots { position:absolute; bottom:12px; left:50%; transform:translateX(-50%); display:flex; gap:2px; max-width:calc(100% - 32px); overflow-x:auto; padding:3px 10px; border-radius:24px; background:#101010a6; scrollbar-width:none; }
.project-carousel__dots button { flex:0 0 22px; width:22px; height:26px; padding:0; border:0; background:transparent; display:grid; place-items:center; cursor:pointer; }
.project-carousel__dots button span { width:5px; height:5px; border-radius:50%; background:#d5ad51; opacity:.62; transition:width .2s,height .2s,opacity .2s; }
.project-carousel__dots button.is-active span { width:10px; height:10px; opacity:1; }
@media(prefers-reduced-motion:reduce) { .project-carousel__dots button span { transition:none; } }
.project-carousel button:focus-visible,.project-carousel__track:focus-visible { outline:2px solid #d5ad51; outline-offset:-2px; }
.product-variant { display:grid; gap:8px; margin:20px 0 12px; color:var(--muted); font-size:.85rem; }
.product-variant select { width:100%; min-height:46px; padding:10px 12px; border:1px solid var(--line); border-radius:0; background:#292828; color:#eee; font:inherit; }
.product-variant select:focus-visible { outline:2px solid var(--yellow); outline-offset:2px; }
/* Editorial archive note: a quieter, bottom-aligned right column on desktop.
   Single-column layouts retain a natural left-aligned reading order. */
.portfolio-intro > div:last-child { align-self:end; justify-self:end; max-width:450px; text-align:right; }
.portfolio-intro > div:last-child .lead { font-size:14px; line-height:1.7; margin-bottom:12px; }
.portfolio-intro > div:last-child .muted { font-size:12px; line-height:1.65; margin-bottom:0; }
@media(max-width:700px) {
  .portfolio-intro > div:last-child { max-width:none; justify-self:stretch; text-align:left; }
}
