
/* V1.3 — Contact, language and visual placeholders */
[data-lang] { cursor:pointer; }
[data-lang].is-active { font-weight:900; color:var(--mamma-red,#b22222); }
.lang-switch { display:flex; gap:12px; align-items:center; }

.contact-page { background:var(--mamma-cream,#f4f0e8); color:#151515; }
.contact-hero { min-height:70vh; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; padding:7rem 8vw 5rem; position:relative; overflow:hidden; }
.contact-hero__copy h1 { font-size:clamp(4rem,9vw,9rem); line-height:.82; margin:1rem 0 2rem; letter-spacing:-.05em; }
.contact-hero__copy p { max-width:600px; font:1.15rem/1.65 Georgia,serif; }
.contact-hero__cta { display:inline-block; margin-top:2rem; padding:1rem 1.5rem; background:var(--mamma-red,#b22222); color:#fff; text-decoration:none; box-shadow:6px 6px #111; font-weight:800; letter-spacing:.08em; }

.contact-poster { display:grid; place-items:center; }
.contact-poster__frame { width:min(100%,520px); background:#b22222; padding:1rem; border:8px solid #111; transform:rotate(2deg); box-shadow:15px 15px #b8b8b8; }
.contact-image-slot { height:430px; background:#fff; position:relative; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(0,0,0,.35); }
.contact-image-slot img { width:100%; height:100%; object-fit:contain; object-position:center; display:block; }
.contact-image-slot span { position:absolute; left:14px; top:14px; background:#fff; color:#111; padding:6px 8px; font:800 .65rem Arial; letter-spacing:.1em; }
.contact-poster__caption { color:#fff; padding:.8rem .3rem 0; font-weight:900; letter-spacing:.12em; }
.contact-poster__caption small { opacity:.8; }

.contact-grid { display:grid; grid-template-columns:repeat(4,1fr); padding:0 8vw 7rem; }
.contact-card { min-height:220px; padding:1.6rem; border:1px solid #111; border-right:0; color:#111; text-decoration:none; display:flex; flex-direction:column; justify-content:space-between; position:relative; background:#fff; }
.contact-card:last-child { border-right:1px solid #111; }
.contact-card--red { background:#b22222; color:#fff; }
.contact-card--cream { background:#eee9df; }
.contact-card__number { font:800 .7rem Arial; letter-spacing:.12em; }
.contact-card strong { font-size:1.6rem; }
.contact-card span:not(.contact-card__number) { font:1rem Georgia,serif; }
.contact-card b { align-self:flex-end; font-size:1.5rem; }

.contact-bottom { margin:0 8vw 8rem; min-height:300px; background:#111; color:#fff; padding:4rem; display:flex; gap:4rem; align-items:center; position:relative; overflow:hidden; }
.checker-strip { position:absolute; inset:0 0 auto; height:18px; background:repeating-conic-gradient(#b22222 0 25%,#fff 0 50%) 0/24px 24px; }
.contact-bottom h2 { font-size:clamp(2.5rem,6vw,6rem); line-height:.85; margin:.5rem 0; }
.contact-bottom__icon-slot { width:170px; height:170px; border:1px dashed rgba(255,255,255,.65); display:grid; place-items:center; text-align:center; flex:none; }
.contact-bottom__icon-slot span { font-weight:900; }
.contact-bottom__icon-slot small { opacity:.7; padding:0 15px; }

.formats-section { padding:7rem 8vw; background:#eee9df; }
.formats-heading h2 { font-size:clamp(3rem,7vw,7rem); line-height:.85; margin:.7rem 0 3rem; }
.formats-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #111; border-left:1px solid #111; }
.format-card { background:#fff; border-right:1px solid #111; border-bottom:1px solid #111; }
.format-card__media { height:240px; display:grid; place-items:center; border-bottom:1px solid #111; background:#b22222; color:#fff; position:relative; overflow:hidden; }
.format-card__media::before { content:""; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.55); }
.format-card__media span { position:relative; z-index:1; padding:8px; border:1px dashed rgba(255,255,255,.7); font:800 .65rem Arial; letter-spacing:.1em; }
.format-card > div:last-child { padding:1.4rem; }
.format-card small { color:#b22222; font-weight:900; }
.format-card h3 { margin:.4rem 0; font-size:2rem; }
.format-card p { font:.85rem/1.4 Georgia,serif; }

@media(max-width:900px) {
  .contact-hero { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr 1fr; }
  .contact-card:nth-child(2) { border-right:1px solid #111; }
  .formats-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:560px) {
  .contact-hero { padding:5rem 6vw 3rem; }
  .contact-grid, .formats-grid { grid-template-columns:1fr; padding-left:6vw; padding-right:6vw; }
  .contact-card { border-right:1px solid #111; }
  .contact-bottom { margin:0 6vw 5rem; padding:3rem 1.5rem; flex-direction:column; align-items:flex-start; }
}


/* ==========================================================
   V1.4 — CLEAN CINEMA FORMATS + LANGUAGE TOGGLE
   ========================================================== */

.language-switch {
    min-width: 28px;
    text-align: center;
    font-weight: 900;
    transition: color .2s ease, transform .2s ease;
}
.language-switch:hover {
    color: var(--mamma-red,#b22222);
    transform: translateY(-1px);
}

/* One formats section only. */
.formats-cinema {
    padding: 7rem 8vw 8rem;
    background: var(--mamma-cream,#f4f0e8);
    position: relative;
    overflow: hidden;
}
.formats-cinema::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 16px;
    background: repeating-conic-gradient(#b22222 0 25%,#fff 0 50%) 0/24px 24px;
}
.formats-cinema__head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: end;
    gap: 3rem;
    margin-bottom: 3.5rem;
}
.formats-cinema__head h2 {
    max-width: 900px;
    margin: .5rem 0 0;
    font-size: clamp(3.2rem, 7vw, 7rem);
    line-height: .84;
    letter-spacing: -.045em;
}
.formats-cinema__head > p {
    max-width: 260px;
    margin: 0 0 .5rem;
    font: 800 .72rem/1.5 var(--font-heading);
    letter-spacing: .13em;
    text-align: right;
}
.formats-cinema__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 18px;
}
.format-poster {
    background: #fff;
    border: 1px solid #111;
    box-shadow: 7px 7px 0 #111;
    transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease;
}
.format-poster:nth-child(2) { transform: translateY(28px); }
.format-poster:nth-child(3) { transform: translateY(8px); }
.format-poster:nth-child(4) { transform: translateY(38px); }
.format-poster:hover {
    transform: translate(-3px,-5px) !important;
    box-shadow: 11px 11px 0 #111;
}
.format-poster__media {
    height: 330px;
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #b22222;
    border-bottom: 1px solid #111;
}
.format-poster__media::after {
    content: "";
    position: absolute;
    inset: 13px;
    border: 1px solid rgba(255,255,255,.65);
    pointer-events: none;
}
.format-poster__media img {
    width: 100%;
    height: 100%;
    padding: 20px;
    object-fit: contain;
    object-position: center;
    display: block;
    position: relative;
    z-index: 1;
}
.format-poster__slot {
    position: absolute;
    z-index: 3;
    padding: 7px 9px;
    background: #fff;
    color: #111;
    border: 1px solid #111;
    font: 900 .62rem/1 var(--font-heading);
    letter-spacing: .1em;
}
.format-poster__media.has-image .format-poster__slot {
    display: none;
}
.format-poster__slot--always {
    position: static;
    background: transparent;
    color: #fff;
    border: 1px dashed rgba(255,255,255,.8);
}
.format-poster__slot-note {
    position: absolute;
    z-index: 2;
    bottom: 24px;
    color: #fff;
    font: 800 .58rem/1 var(--font-heading);
    letter-spacing: .12em;
}
.format-poster__info {
    padding: 1.25rem 1.25rem 1.5rem;
    min-height: 112px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.format-poster__info small {
    color: #b22222;
    font: 900 .62rem/1 var(--font-heading);
    letter-spacing: .14em;
}
.format-poster__info h3 {
    margin: .65rem 0 0;
    font-size: clamp(1.8rem, 2.5vw, 2.8rem);
    line-height: .9;
}
.formats-cinema .exp-back {
    margin-top: 80px;
}

/* The old V1.3 formats block is intentionally disabled if it remains in cached HTML. */
.formats-section { display: none !important; }

@media (max-width: 1000px) {
    .formats-cinema__grid { grid-template-columns: repeat(2,1fr); }
    .format-poster:nth-child(n) { transform:none; }
}
@media (max-width: 560px) {
    .formats-cinema { padding: 5.5rem 6vw 6rem; }
    .formats-cinema__head { grid-template-columns: 1fr; gap: 1rem; }
    .formats-cinema__head > p { text-align:left; }
    .formats-cinema__grid { grid-template-columns: 1fr; }
    .format-poster:nth-child(n) { transform:none; }
    .format-poster__media { height: 280px; }
}

/* Generic image slots: always center without cropping. */
.image-frame img,
.menu-poster__image img,
.exp-card__image img,
.exp-photo img,
.contact-image-slot img {
    object-fit: contain;
    object-position: center center;
}
