/* Contact page only: white canvas, open spacing, one retained warm event panel. */
body.mm-cinema, .mm-contact-page, .site-footer--contact { background: #fff; }
.mm-contact-page { color: #554536; }
.mm-contact-page .mm-open { background: #fff; margin-top: 0; padding: calc(var(--mm-top,100px) + clamp(32px,5vw,64px)) 0 clamp(36px,5vw,68px); min-height: 0; }
.mm-contact-page .mm-open__copy { padding: 0; max-width: none; background: none; }
.mm-contact-page .mm-contatti-hero__lead { color: #554536; line-height: 1.75; }
.mm-contact-page .mm-contatti-hero__foto { position: relative; isolation: isolate; overflow: hidden; border-radius: 3px; }
.mm-contact-page .mm-contatti-hero__foto img { filter: none; aspect-ratio: auto; width: 100%; height: auto; object-fit: contain; border-radius: 3px; }
.mm-contact-page .mm-contatti-hero__foto::after { content: none; }
.mm-contact-reach { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; padding-block: 30px 48px; border-block: 1px solid #e6e1da; }
.mm-contact-link { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 64px; color: inherit; text-decoration: none; overflow-wrap: anywhere; font-size: clamp(15px,1.5vw,19px); }
.mm-contact-link svg { flex: 0 0 32px; color: #8a7048; }
.mm-contact-link small { display: block; margin-top: 5px; font-size: 13px; letter-spacing: .04em; color: #6d6256; }
.mm-contact-link:hover span { text-decoration: underline; text-underline-offset: 5px; }
.mm-contact-link:focus-visible, .mm-contact-page a:focus-visible { outline: 2px solid #806431; outline-offset: 5px; }
.mm-contact-location { padding-block: clamp(48px,6vw,88px); }
.mm-contact-location > .mm-title { margin: 0 0 32px; }
.mm-contact-location__grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,.8fr); gap: clamp(32px,6vw,90px); }
.mm-contact-location__grid > div { min-width: 0; }
.mm-contact-page .mm-mappa { max-width: none; margin: 0; }
.mm-contact-page .mm-mappa__viewport { width: 100%; box-sizing: border-box; aspect-ratio: 5/3; min-height: 260px; background: #fff; }
.mm-contact-page .mm-mappa__status { flex-basis: 100%; font-size: 14px; line-height: 1.5; margin: 8px 0; }
.mm-contact-map-links { display: flex; gap: 12px 24px; flex-wrap: wrap; margin-top: 16px; }
.mm-contact-map-links a { min-height: 44px; display: inline-flex; align-items: center; }
.mm-contact-visit address { font-style: normal; font-size: 19px; line-height: 1.8; }
.mm-contact-visit h3, .mm-contact-arrival > h3 { font: 400 clamp(25px,3vw,36px)/1.2 var(--serif,Georgia,serif); margin: 30px 0 20px; }
.mm-contact-hours { margin: 0; }
.mm-contact-hours > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid #e6e1da; line-height: 1.7; }
.mm-contact-hours dt { font-weight: 500; }
.mm-contact-hours dd { margin: 0; font-variant-numeric: tabular-nums; }
.mm-contact-tree { display: block; width: 128px; height: auto; margin: 24px auto 0; }
.mm-contact-arrival { margin-top: 48px; border-top: 1px solid #e6e1da; padding-top: 8px; }
.mm-contact-arrival__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(24px,4vw,48px); }
.mm-contact-arrival h4 { font: 400 25px/1.3 var(--serif,Georgia,serif); margin: 0 0 15px; }
.mm-contact-arrival p { margin: 0 0 12px; line-height: 1.75; }
.mm-contact-arrival article { padding-left: 20px; border-left: 1px solid #d8cbb8; min-width: 0; }
.mm-contact-occasion { background: var(--cream,#fff8e7); }
.mm-contact-welcome { padding-block: clamp(56px,7vw,100px); text-align: center; }
.mm-contact-welcome > .mm-title { max-width: 860px; margin: 0 auto 24px; font-size: clamp(34px,4.6vw,60px); }
.mm-contact-welcome > p { max-width: 750px; margin: 0 auto 24px; line-height: 1.85; }
.mm-contact-signature { font-family: var(--serif,Georgia,serif); font-style: italic; font-size: 23px; }
.mm-contact-stay { margin: 44px auto 0; padding-top: 30px; border-top: 1px solid #e6e1da; max-width: 800px; }
.mm-contact-stay p { line-height: 1.7; margin: 0 0 24px; }
.mm-contact-stay .button { max-width: 100%; white-space: normal; text-align: center; line-height: 1.5; box-sizing: border-box; }
.site-footer--contact .site-footer__grid { grid-template-columns: 1.3fr 1fr 1fr; }
@media(max-width:899px) {
 .mm-contact-reach { grid-template-columns: 1fr; gap: 10px; padding-block: 22px; }
 .mm-contact-link { justify-content: flex-start; }
 .mm-contact-location__grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
 .mm-contact-arrival__grid { grid-template-columns: 1fr; gap: 28px; }
 .mm-contact-visit { max-width: 540px; }
 .mm-contact-visit { width: 100%; margin-inline: auto; }
 .mm-contact-tree { margin-inline: auto; }
}
@media(max-width:767px) {
 .site-footer--contact .site-footer__grid { grid-template-columns: 1fr; }
 .mm-contact-page .mm-mappa__viewport { min-height: 230px; }
 .mm-contact-stay .button { width: 100%; padding-inline: 18px; }
}
