/* Palette ispirata alle opere: blu notte, turchese, verde, oro e avorio. */
:root { --ink: #102b4e; --paper: #f5f0e4; --blue: #083c6d; --gold: #b88722; --coral: #167f85; --pink: #dce8d5; }
body { letter-spacing: .005em; }
.site-header { mix-blend-mode: multiply; }
.brand { font-size: 11px; }
nav a { letter-spacing: .08em; text-transform: uppercase; font-size: 10px; }
.hero { background: linear-gradient(118deg, #c69a36 0 49%, #f5f0e4 49%); }
.hero::before { content: "ARTE · MATERIA · LUCE"; position: absolute; top: 115px; left: 4vw; font: 9px "DM Mono", monospace; letter-spacing: .2em; transform: rotate(-90deg) translateX(-100%); transform-origin: left top; opacity: .8; }
.hero-copy h1 { text-shadow: 5px 5px 0 rgba(255,255,255,.25); }
.hero-copy .intro { font-size: 16px; }
.hero-art img { aspect-ratio: 1 / 1; object-position: center; box-shadow: 18px 18px 0 #083c6d; }
.hero-art::before { content: "01"; position: absolute; z-index: 1; top: -30px; right: -20px; width: 66px; height: 66px; border-radius: 50%; display: grid; place-items: center; background: #e6eee0; color: #083c6d; font: 22px "Playfair Display", serif; }
.button-dark { background: #083c6d; }
.button { transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translate(-3px,-3px); box-shadow: 5px 5px 0 #d6aa45; }
.statement { background: #f5f0e4; }
.statement h2 { max-width: 720px; }
.collection { background: #fffdf8; }
.section-heading { border-top: 1px solid rgba(16,43,78,.25); padding-top: 18px; }
.art-grid { grid-template-columns: repeat(12, 1fr); gap: 28px 20px; }
.art-grid .art-card { grid-column: span 4; }
.art-grid .art-card:nth-child(1) { grid-column: span 5; }
.art-grid .art-card:nth-child(2) { grid-column: span 3; padding-top: 72px; }
.art-grid .art-card:nth-child(3) { grid-column: span 4; }
.art-grid .art-card:nth-child(4) { grid-column: 2 / span 4; }
.art-grid .art-card:nth-child(5) { grid-column: 7 / span 4; padding-top: 60px; }
.art-card { transition: transform .25s ease; }
.art-card:hover { transform: translateY(-8px); }
.art-info h3 { font-size: 25px; }
.art-info p { color: #466179; }
.inquire { color: #083c6d; }
.artist { background: #0c5961; }
.artist-mark { color: #d9ae49; }
.restoration { background: #d7dfc9; }
.custom-order { background: #d6aa45; }
.custom-order { border-radius: 0 58px 0 0; }
.custom-images img:first-child { transform: rotate(-2deg); }
.custom-images img:last-child { transform: rotate(3deg); }
.exhibitions { background: #e6eee0; }
.show-photo { box-shadow: 0 0 0 1px rgba(16,43,78,.15); transition: transform .25s ease; }
.show-photo:hover { transform: rotate(-1.5deg) scale(1.02); }
.contact { background: #083c6d; }
.contact { position: relative; overflow: hidden; }
.contact::after { content: "MI"; position: absolute; right: 6vw; bottom: -74px; color: rgba(214,170,69,.22); font: 260px/.7 "Playfair Display", serif; pointer-events: none; }
.contact > * { position: relative; z-index: 1; }
.artwork-photo { background: #e8d3bd; }
.artwork-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.artwork-photo, .tall .artwork-photo { height: auto; aspect-ratio: 1 / 1; }
.photo-tree img { object-position: center 43%; }
.photo-flowers, .tall .photo-flowers { aspect-ratio: 3 / 4; }
.photo-flowers img { object-position: center 48%; }
.photo-seaside img { object-position: center 43%; }
.photo-series, .tall .photo-series { aspect-ratio: 16 / 9; }
.photo-series img { object-position: center 33%; }
.photo-moon, .tall .photo-moon { aspect-ratio: 1 / 1; }
.photo-moon img { object-position: center; }
.art-grid .artwork-photo, .art-grid .tall .artwork-photo { aspect-ratio: 4 / 5; height: auto; padding: 12px; background: #e9e1cf; }
.art-grid .artwork-photo img { object-fit: contain; object-position: center; }
.custom-order { margin-top: 55px; padding: 42px; background: #e1c164; max-width: 980px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; align-items: center; }
.custom-order h3 { font-family: "Playfair Display", serif; font-size: 34px; font-weight: 500; margin: 8px 0 12px; }
.custom-order > p:not(.eyebrow) { max-width: 510px; font-size: 14px; }
.custom-images { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.custom-images img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; }
.exhibitions { padding: 75px 8vw 110px; background: #e9e5dd; }
.exhibition-grid { display: grid; grid-template-columns: 1.35fr 1fr 1fr; gap: 22px; align-items: end; }
.show-photo { margin: 0; aspect-ratio: 1 / 1; overflow: hidden; }
.show-photo img, .show-large img { width: 100%; height: 100%; object-fit: cover; display: block; object-position: center 43%; }
.show-photo figcaption { font: 10px "DM Mono", monospace; letter-spacing: .08em; text-transform: uppercase; margin-top: 12px; }
.exhibition-link { display: inline-block; margin-top: 36px; color: inherit; text-decoration: none; font-size: 12px; font-weight: 700; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.exhibition-link span { font-size: 17px; margin-left: 8px; }
.art-caption { max-width: 580px; margin: 20px 0 0 auto; padding-left: 18px; border-left: 3px solid #d6aa45; font: italic 16px "Playfair Display", serif; }
.calendar { padding: 110px 8vw; background: #fffdf8; display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.calendar-heading > p:last-child { max-width: 280px; margin-top: 22px; }
.event-list { border-top: 1px solid rgba(16,43,78,.25); }
.event { display: grid; grid-template-columns: .9fr 1fr auto; gap: 24px; align-items: center; padding: 25px 0; border-bottom: 1px solid rgba(16,43,78,.25); }
.event-date { display: grid; gap: 3px; }
.event-date strong { font: 25px "Playfair Display", serif; font-weight: 500; }
.event-date span, .event-place { font-size: 12px; }
.event a { color: #083c6d; text-decoration: none; font-size: 11px; font-weight: 700; border-bottom: 1px solid; }
.event.muted { opacity: .52; }
.calendar-note { grid-column: 2; font-size: 10px; color: #466179; }
.how-to-order { padding: 110px 8vw; background: #d6aa45; }
.how-to-order h2 { margin: 10px 0 50px; }
.order-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; margin-bottom: 45px; }
.order-steps article { border-top: 1px solid rgba(16,43,78,.55); padding-top: 16px; }
.order-steps span { font: 11px "DM Mono", monospace; }
.order-steps h3 { font: 27px "Playfair Display", serif; font-weight: 500; margin: 25px 0 10px; }
.order-steps p { max-width: 260px; font-size: 13px; }
.contact-links { display: grid; justify-items: start; gap: 12px; }
.contact-links > a:not(.button) { color: inherit; font-size: 13px; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.65); padding-bottom: 2px; }
.whatsapp-float { position: fixed; right: 22px; bottom: 22px; z-index: 1100; display: inline-flex; align-items: center; gap: 10px; padding: 13px 16px; border-radius: 999px; background: #25d366; color: #073b2e; box-shadow: 0 10px 25px rgba(8, 60, 109, .28); text-decoration: none; font-size: 12px; font-weight: 800; transition: transform .2s ease, box-shadow .2s ease; }
.whatsapp-float b { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.7); font-size: 14px; }
.whatsapp-float:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(8, 60, 109, .35); }

@media (max-width: 760px) {
  .site-header { position: fixed; z-index: 1000; background: rgba(245, 240, 228, .96); backdrop-filter: blur(10px); }
  #menu.open { position: fixed; z-index: 1001; top: 75px; left: 0; right: 0; min-height: calc(100vh - 75px); padding: 34px 7vw; background: #f5f0e4; box-shadow: 0 18px 30px rgba(16, 43, 78, .12); }
  #menu.open a { font-family: "Playfair Display", serif; font-size: 29px; letter-spacing: -.03em; text-transform: none; }
  #menu.open .nav-cta { margin-top: 10px; align-self: flex-start; }
  .hero { background: linear-gradient(160deg, #c69a36 0 56%, #f5f0e4 56%); }
  .hero::before { display: none; }
  .hero-art::before { top: -20px; right: -12px; width: 54px; height: 54px; }
  .art-grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
  .art-grid .art-card, .art-grid .art-card:nth-child(n) { grid-column: auto; padding-top: 0; }
  .exhibitions { padding: 65px 7vw; }
  .exhibition-grid { grid-template-columns: 1fr; gap: 24px; }
  .custom-order { grid-template-columns: 1fr; padding: 28px; }
  .show-photo img, .show-large img { height: 100%; }
  .calendar { padding: 75px 7vw; display: block; }
  .calendar-heading { margin-bottom: 42px; }
  .event { grid-template-columns: 1fr; gap: 8px; }
  .calendar-note { margin-top: 20px; }
  .how-to-order { padding: 75px 7vw; }
  .order-steps { grid-template-columns: 1fr; gap: 28px; }
  .whatsapp-float { right: 16px; bottom: 16px; padding: 12px 14px; }
}

/* Galleria estesa: immagini sempre intere, senza ritagli. */
.extended-gallery { padding: clamp(5rem, 10vw, 9rem) 7vw; background: #102a4d; color: #fffdf7; }
.gallery-heading { border-color: rgba(255, 255, 255, .23); }
.gallery-heading .availability { color: rgba(255, 253, 247, .72); }
.gallery-wall { columns: 4 220px; column-gap: 1.05rem; margin-top: 2.7rem; }
.gallery-card { break-inside: avoid; margin: 0 0 1.05rem; padding: .55rem; background: rgba(255, 253, 247, .09); border: 1px solid rgba(255, 255, 255, .13); border-radius: 1.15rem; box-shadow: 0 14px 28px rgba(0, 0, 0, .18); transition: transform .25s ease, background .25s ease; }
.gallery-card:hover { transform: translateY(-5px) rotate(-.4deg); background: rgba(255, 253, 247, .15); }
.gallery-card[role="button"], .show-photo[role="button"] { cursor: zoom-in; }
.gallery-card:focus-visible, .show-photo:focus-visible { outline: 3px solid #f5ca50; outline-offset: 4px; }
.gallery-card img { display: block; width: 100%; height: auto; max-height: 32rem; object-fit: contain; border-radius: .78rem; background: #0a1b33; }
.gallery-card figcaption { padding: .7rem .25rem .15rem; color: #fffdf7; font-family: "DM Mono", monospace; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; }
.favors-gallery { display: grid; grid-template-columns: minmax(14rem, .78fr) minmax(0, 1.22fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; margin-top: clamp(3.5rem, 8vw, 7rem); padding-top: clamp(3.5rem, 7vw, 6rem); border-top: 1px solid rgba(255, 255, 255, .2); }
.favors-gallery h3 { margin: .7rem 0 1rem; color: #f5ca50; font-family: "Playfair Display", serif; font-size: clamp(2rem, 4vw, 3.7rem); font-weight: 500; line-height: 1.05; }
.favors-gallery p:not(.eyebrow) { max-width: 29rem; color: rgba(255, 253, 247, .76); line-height: 1.7; }
.favors-gallery .text-link { color: #fffdf7; }
.favors-images { display: grid; grid-template-columns: 1.2fr .8fr; gap: .9rem; }
.favors-images img { display: block; width: 100%; height: 100%; min-height: 10rem; object-fit: cover; border-radius: .9rem; border: 1px solid rgba(255,255,255,.2); }
.favors-images img:first-child { grid-row: span 2; }
.gallery-lightbox { width: min(94vw, 72rem); max-width: none; max-height: 92vh; margin: auto; padding: 1rem; border: 1px solid rgba(255,255,255,.34); border-radius: 1.25rem; background: #07172c; color: #fffdf7; box-shadow: 0 28px 80px rgba(0,0,0,.7); }
.gallery-lightbox::backdrop { background: rgba(3, 12, 25, .88); backdrop-filter: blur(5px); }
.gallery-lightbox img { display: block; width: auto; max-width: 100%; max-height: calc(92vh - 4.5rem); margin: 0 auto; object-fit: contain; border-radius: .8rem; }
.gallery-lightbox p { margin: .75rem .5rem .1rem; font: 11px "DM Mono", monospace; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.lightbox-close { position: absolute; z-index: 1; top: .55rem; right: .55rem; width: 2.6rem; height: 2.6rem; border: 0; border-radius: 999px; background: #fffdf7; color: #102a4d; cursor: pointer; font-size: 2rem; line-height: 1; }

@media (max-width: 760px) {
  .extended-gallery { padding: 4.5rem 5.5vw; }
  .gallery-wall { columns: 1; margin-top: 2rem; }
  .gallery-card { margin-bottom: 1rem; }
  .gallery-card img { max-height: none; }
  .gallery-lightbox { width: 96vw; padding: .65rem; }
  .gallery-lightbox img { max-height: calc(90vh - 4.4rem); }
  .favors-gallery { grid-template-columns: 1fr; gap: 2rem; }
  .favors-images { grid-template-columns: 1fr 1fr; }
  .favors-images img:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 1.5; }
}
