/* Home page: sezioni nello stile della v1 (sotto l'apertura della v2). Caricato solo in home. */
.v1 {
    --ink: #0d0d0d; --ink-2: #2a2a2a; --paper: #ffffff; --tint: #f5f3ef; --muted: #6d6a66;
    --line: rgba(13, 13, 13, 0.12); --accent: #a8875a;
    --display: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --ui: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --ease: cubic-bezier(0.22, 1, 0.36, 1); --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    background: var(--paper); color: var(--ink);
}
.v1 p { margin: 0 0 1em; }
.v1 .center {text-align: center;}
.v1 .label {display: block; margin: 0 0 14px;
    font-family: var(--ui); font-size: 0.72rem; font-weight: 600;
    letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted);}
.v1 .label--light {color: rgba(255, 255, 255, 0.72);}
.v1 .label a:hover {color: var(--ink);}
.v1 .h-display {font-family: var(--display); font-weight: 400; text-transform: uppercase;
    font-size: clamp(2rem, 4.4vw, 3.5rem); line-height: 1.08; letter-spacing: 0.04em;}
.v1 .h-sub {font-family: var(--display); font-size: clamp(1.5rem, 2.6vw, 2rem); text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.15; margin-bottom: 12px;}
.v1 .btn {position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    padding: 15px 30px; border: 1px solid transparent; border-radius: 0;
    font-family: var(--ui); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
    overflow: hidden; isolation: isolate;
    transition: color 0.45s var(--ease), border-color 0.45s var(--ease), transform 0.3s var(--ease);}
.v1 .btn::before {content: ''; position: absolute; inset: 0; z-index: -1;
    transform: scaleX(0); transform-origin: right; transition: transform 0.55s var(--ease);}
.v1 .btn:hover::before {transform: scaleX(1); transform-origin: left;}
.v1 .btn:active {transform: scale(0.98);}
.v1 .btn--dark {background: var(--ink); color: var(--paper); border-color: var(--ink);}
.v1 .btn--dark::before {background: var(--paper);}
.v1 .btn--dark:hover {color: var(--ink);}
.v1 .btn--light {background: var(--paper); color: var(--ink); border-color: var(--paper);}
.v1 .btn--light::before {background: var(--ink);}
.v1 .btn--light:hover {color: var(--paper); border-color: var(--paper);}
.v1 .btn--ghost {background: transparent; color: var(--ink); border-color: var(--ink);}
.v1 .btn--ghost::before {background: var(--ink);}
.v1 .btn--ghost:hover {color: var(--paper);}
.v1 .btn--ghost-light {background: transparent; color: var(--paper); border-color: rgba(255, 255, 255, 0.7);}
.v1 .btn--ghost-light::before {background: var(--paper);}
.v1 .btn--ghost-light:hover {color: var(--ink); border-color: var(--paper);}
.v1 .btn--block {width: 100%;}
.v1 .link-arrow {display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--ui); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
    background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%;
    padding-bottom: 4px; transition: background-size 0.5s var(--ease);}
.v1 .link-arrow .icon {width: 18px; height: 18px; transition: transform 0.45s var(--ease);}
.v1 .link-arrow:hover {background-size: 100% 1px;}
.v1 .link-arrow:hover .icon {transform: translateX(5px);}
@keyframes v1-kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes v1-line-up { from { transform: translateY(105%); } to { transform: none; } }
@keyframes v1-fade-up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes v1-scroll-dot { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(16px); } }
.v1 .section {padding-block: clamp(72px, 10vw, 140px);}
.v1 .section--tint {background: var(--tint);}
.v1 .section--flush {padding-top: 24px;}
.v1 .section-head {max-width: 760px; margin-bottom: clamp(36px, 5vw, 64px);}
.v1 .section-head__lead {margin-top: 18px; color: var(--muted); font-size: 1.05rem;}
.v1 .section-head--light .section-head__lead {color: rgba(255,255,255,0.78);}
.v1 .section-head--row {max-width: none; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px;}
.v1 .about-teaser__grid {display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(36px, 7vw, 110px); align-items: center;}
.v1 .about-teaser__media {aspect-ratio: 4 / 5; overflow: hidden; background: var(--tint);}
.v1 .about-teaser__media img {width: 100%; height: 100%; object-fit: cover;}
.v1 .quote {position: relative; margin: 28px 0 34px; padding-left: 28px; border-left: 1px solid var(--ink);}
.v1 .quote p {font-family: var(--display); font-style: italic; font-size: clamp(1.1rem, 1.7vw, 1.35rem); line-height: 1.65; color: var(--ink-2); margin: 0;}
.v1 .about-teaser__actions {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;}
.v1 .owner {display: flex; align-items: center; gap: 14px;}
.v1 .owner .label {margin: 0;}
.v1 .owner img {width: 130px; transition: opacity 0.3s;}
.v1 .owner:hover img {opacity: 0.7;}
.v1 .cats {list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(10px, 1.6vw, 20px); margin-bottom: clamp(40px, 6vw, 72px);}
.v1 .cats__link {position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; background: #1a1a1a; color: var(--paper);}
.v1 .cats__link img {width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), opacity 0.5s; opacity: 0.88;}
.v1 .cats__link::after {content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgba(0,0,0,0.7));}
.v1 .cats__name {position: absolute; z-index: 1; left: 20px; bottom: 38px; font-family: var(--display); font-size: clamp(1.2rem, 2vw, 1.7rem); text-transform: uppercase; letter-spacing: 0.06em;}
.v1 .cats__it {position: absolute; z-index: 1; left: 20px; bottom: 18px; font-family: var(--ui); font-size: 0.68rem; letter-spacing: 0.2em; text-transform: uppercase; opacity: 0.75;}
.v1 .cats__link:hover img {transform: scale(1.07); opacity: 1;}
.v1 .photo-grid {list-style: none;}
.v1 .photo-grid--home {display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(150px, 17vw, 240px); grid-auto-flow: dense; gap: clamp(8px, 1.2vw, 14px); margin-bottom: 48px;}
.v1 .photo-grid--home .photo-grid__item:nth-child(3n+1) {grid-row: span 2;}
.v1 .photo-grid--home .photo-grid__item, .v1 .photo-grid--home .photo-grid__link {height: 100%;}
.v1 .photo-grid--masonry {columns: 4 260px; column-gap: clamp(8px, 1.2vw, 14px);}
.v1 .photo-grid--masonry .photo-grid__item {break-inside: avoid; margin-bottom: clamp(8px, 1.2vw, 14px);}
.v1 .photo-grid__link {position: relative; display: block; overflow: hidden; background: #e9e6e1;}
.v1 .photo-grid--masonry .photo-grid__link {aspect-ratio: var(--ar, 0.75);}
.v1 .photo-grid__link img {width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease), filter 0.6s;}
.v1 .photo-grid__cap {position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 14px 12px;
    font-family: var(--ui); font-size: 0.72rem; letter-spacing: 0.08em; color: var(--paper);
    background: linear-gradient(180deg, transparent, rgba(0,0,0,0.65));
    opacity: 0; transform: translateY(8px); transition: opacity 0.4s, transform 0.5s var(--ease);}
@media (hover: hover) {
  .v1 .photo-grid__link:hover img {transform: scale(1.05);}
  .v1 .photo-grid__link:hover .photo-grid__cap {opacity: 1; transform: none;}
}
.v1 .services {position: relative; color: var(--paper); padding-block: clamp(88px, 12vw, 160px); overflow: hidden; isolation: isolate;}
.v1 .services__bg {position: absolute; inset: -14% 0; z-index: -2; will-change: transform;}
.v1 .services__bg img {width: 100%; height: 100%; object-fit: cover;}
.v1 .services__shade {position: absolute; inset: 0; z-index: -1; background: rgba(8, 8, 8, 0.74);}
.v1 .services__list {list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.14);}
.v1 .service {padding: clamp(28px, 3.4vw, 44px); background: rgba(10,10,10,0.55); transition: background-color 0.5s;}
.v1 .service:hover {background: rgba(10,10,10,0.25);}
.v1 .service__icon {display: inline-grid; place-items: center; width: 56px; height: 56px; border: 1px solid rgba(255,255,255,0.35); border-radius: 50%; margin-bottom: 24px; transition: transform 0.6s var(--ease), background-color 0.4s, color 0.4s;}
.v1 .service:hover .service__icon {transform: rotate(-8deg) scale(1.06); background: var(--paper); color: var(--ink);}
.v1 .service__title {font-family: var(--display); text-transform: uppercase; letter-spacing: 0.05em; font-size: 1.3rem; margin-bottom: 12px;}
.v1 .service p {color: rgba(255,255,255,0.78); margin: 0; font-size: 0.98rem;}
.v1 .services__cta {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; margin-top: 56px;}
.v1 .services__tagline {max-width: 620px; margin: 0; color: rgba(255,255,255,0.85);}
.v1 .services__tagline em {font-family: var(--display); font-size: 1.25rem; color: var(--paper); display: block; margin-bottom: 4px;}
.v1 .press .section-head {margin-bottom: 40px;}
.v1 .marquee {overflow: hidden; border-block: 1px solid var(--line); padding-block: 34px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.v1 .marquee__track {list-style: none; display: flex; width: max-content; align-items: center; gap: clamp(48px, 6vw, 88px); animation: v1-marquee 48s linear infinite;}
.v1 .marquee:hover .marquee__track {animation-play-state: paused;}
.v1 .marquee__item img {height: 44px; width: auto; max-width: 170px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: 0.62; transition: filter 0.4s, opacity 0.4s;}
.v1 .marquee__item img:hover {filter: none; opacity: 1;}
@keyframes v1-marquee { to { transform: translateX(calc(-50% - clamp(24px, 3vw, 44px))); } }
.v1 .cards {display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 40px);}
.v1 .card {display: flex; flex-direction: column;}
.v1 .card__media {position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #e9e6e1; margin-bottom: 20px;}
.v1 .card__media img {width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease);}
.v1 .card__ph {display: grid; place-items: center; height: 100%; font-family: var(--display); font-size: 2rem; color: rgba(0,0,0,0.2);}
.v1 .card__cat {position: absolute; left: 14px; top: 14px; padding: 6px 12px; background: var(--paper); font-family: var(--ui); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;}
.v1 .card__meta {font-family: var(--ui); font-size: 0.72rem; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 8px;}
.v1 .card__title {font-family: var(--display); font-size: 1.32rem; line-height: 1.28; margin-bottom: 10px;}
.v1 .card__title a {background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.6s var(--ease);}
.v1 .card__excerpt {color: var(--muted); font-size: 0.95rem; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;}
.v1 .card__more {margin-top: auto; font-family: var(--ui); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;}
.v1 .card__more span {display: inline-block; transition: transform 0.4s var(--ease);}
@media (hover: hover) {
  .v1 .card:hover .card__media img {transform: scale(1.05);}
  .v1 .card:hover .card__title a {background-size: 100% 1px;}
  .v1 .card:hover .card__more span {transform: translateX(6px);}
}
.v1 .testimonials .section-head {margin-inline: auto;}
.v1 .slider {max-width: 900px; margin: 0 auto;}
.v1 .slider__track {list-style: none; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;}
.v1 .slider__track::-webkit-scrollbar {display: none;}
.v1 .slider__slide {flex: 0 0 100%; scroll-snap-align: center; padding: 0 8px;}
.v1 .testimonial blockquote p {font-family: var(--display); font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.6; color: var(--ink-2);}
.v1 .testimonial blockquote p::before {content: '“'; display: block; font-size: 4rem; line-height: 0.6; color: var(--accent); margin-bottom: 16px;}
.v1 .testimonial figcaption {display: inline-flex; align-items: center; gap: 14px; margin-top: 28px; text-align: left; font-family: var(--ui); font-size: 0.9rem;}
.v1 .testimonial__avatar {width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: var(--paper); font-family: var(--display); font-size: 1rem; letter-spacing: 0.04em;}
.v1 .testimonial__role {color: var(--muted); font-size: 0.8rem;}
.v1 .slider__nav {display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 36px;}
.v1 .slider__btn {width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line); background: transparent; display: grid; place-items: center; transition: background-color 0.3s, color 0.3s;}
.v1 .slider__btn:hover {background: var(--ink); color: var(--paper);}
.v1 .slider__btn .icon {width: 18px; height: 18px;}
.v1 .slider__dots {display: flex; gap: 8px;}
.v1 .slider__dots button {width: 8px; height: 8px; padding: 0; border-radius: 8px; border: 0; background: var(--line); transition: width 0.5s var(--ease), background-color 0.3s;}
.v1 .slider__dots button[aria-selected="true"] {width: 28px; background: var(--ink);}
.v1 .contact-band {background: var(--ink); color: var(--paper); padding-block: clamp(72px, 10vw, 130px); text-align: center;}
.v1 .contact-band__inner {max-width: 820px;}
.v1 .contact-band p {color: rgba(255,255,255,0.75);}
.v1 .contact-band .h-display {margin-bottom: 18px;}
.v1 .contact-band__actions {display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px;}
@keyframes v1-settle { from { transform: scale(1.08); } to { transform: none; } }
.js .v1 .photo-grid .reveal {transform: translateY(18px) scale(0.98);}
.js .v1 .photo-grid .reveal.is-in {transform: none;}
@keyframes v1-vt-out { to { opacity: 0; } }
@keyframes v1-vt-in { from { opacity: 0; transform: translateY(8px); } }
@media (max-width: 1100px) {
  .v1 .cards {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 900px) {
  .v1 .about-teaser__grid {grid-template-columns: 1fr;}
  .v1 .cats {grid-template-columns: repeat(2, 1fr);}
  .v1 .photo-grid--home {grid-template-columns: repeat(2, 1fr);}
  .v1 .services__list {grid-template-columns: 1fr;}
}
@media (max-width: 640px) {
  .v1 .cards {grid-template-columns: 1fr;}
  .v1 .photo-grid--masonry {columns: 2;}
  .v1 .marquee__item img {height: 34px;}
}
@media (prefers-reduced-motion: reduce) {
  .v1 .marquee__track {animation: none; flex-wrap: wrap; width: auto; justify-content: center;}
  .v1 .marquee__item[aria-hidden="true"] {display: none;}
}
@media print {
  .v1 .contact-band, .v1 .marquee {display: none !important;}
}


/* Testate senza logo: nome composto in tipografia, stesso peso visivo dei loghi */
.v1 .press-name { display: block; white-space: nowrap; font-family: var(--display); font-size: 1.25rem; letter-spacing: .02em; color: var(--ink); opacity: .62; transition: opacity .4s; }
.v1 .marquee__item--name:hover .press-name { opacity: 1; }
.v1 .marquee__track { animation-duration: 150s; }
@media (max-width: 640px) { .v1 .press-name { font-size: 1.05rem; } }
