/* Editorial festival direction: open layouts, generous photography, technical clarity. */
:root { --paper:#fff; --ink:#181a18; --coal:#262924; --orange:#ff8617; --muted:#555b55; --radius:.35rem; }
.shell { width:min(calc(100% - 3rem),1240px); }
section { scroll-margin-top:90px; }
h1,h2,h3 { line-height:1.06; letter-spacing:-.045em; overflow-wrap:normal; }
h1 { font-size:clamp(3rem,5.9vw,5.9rem); max-width:1000px; }
h2 { font-size:clamp(2.4rem,4.5vw,4.5rem); }
.eyebrow { font-size:.875rem; letter-spacing:.11em; }
section:not(.hero):not(.operation):not(.contact) .eyebrow { color:#a74400; }
.nav-wrap { gap:1rem; }
nav { gap:1.1rem; }
.lang-btn, .header-cta, label, .product-chip, .press-foot, .footer-links a { font-size:.875rem; }
.btn { border-radius:.3rem; }
.hero { padding:4.5rem 0 0; }
.hero-grid { display:block; }
.hero-copy { display:grid; grid-template-columns:1.4fr 1fr; gap:1.2rem 3.5rem; align-items:end; padding-bottom:3rem; }
.hero-copy .eyebrow { grid-column:1/-1; }
.hero-copy h1 { grid-row:2/4; }
.hero-copy .lead { margin:0; font-size:1.13rem; }
.hero-actions { margin-top:0; align-self:start; }
.hero-media { border:0; border-radius:0; min-height:0; height:auto; aspect-ratio:2.2; }
.hero-media img { min-height:0; height:100%; object-position:center 48%; }
.photo-label { max-width:460px; border-radius:.2rem; }
.trust-item { padding:1.3rem 1rem; }
.trust-item small { font-size:.875rem; }
.cards { gap:2.3rem; }
.card { padding:1.5rem 0 0; background:none; border:0; border-top:2px solid var(--ink); border-radius:0; min-height:0; }
.card-num { margin-bottom:1.5rem; background:none; color:#a74400; place-items:start; width:auto; height:auto; aspect-ratio:auto; font-size:.875rem; }
.signature { background:#f4f5f1; border-radius:0; padding:0; gap:0; overflow:hidden; }
.signature-media { min-height:0; border-radius:0; }
.signature-media img { min-height:0; height:auto; }
.signature-copy { padding:clamp(1.5rem,4vw,3.5rem); }
.signature-copy h3 { font-size:clamp(2rem,3.1vw,3rem); line-height:1.1; }
.operation-grid { gap:3rem; grid-template-columns:1fr 1fr; }
.stat { border:0; border-top:1px solid #4a4e48; border-radius:0; background:none; padding:1.25rem 0; }
.stat-icon { background:none; color:var(--orange); font-size:.875rem; }
.stat p { color:#c3c8c0; font-size:1rem; }
.operation-gallery { grid-template-columns:1fr 1fr; gap:1.25rem; margin:0; }
.operation-photo { min-height:0; aspect-ratio:1.5; border-radius:0; }
.operation-photo:first-child { min-height:0; grid-column:auto; }
.operation-photo:last-child { display:none; }
.operation-photo img { height:100%; }
.operation-photo figcaption { font-size:.875rem; border-radius:.2rem; }
.case-study { margin-top:3rem; display:grid; grid-template-columns:.65fr 1.35fr; gap:3rem; padding:2rem; background:var(--orange); }
.case-number { font-size:clamp(4rem,9vw,8rem); font-weight:900; letter-spacing:-.07em; line-height:1; }
.case-study h3 { margin-bottom:1rem; }
.case-study p { max-width:650px; }
.case-study small { display:block; margin-top:1rem; font-size:.8125rem; }
.festival-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; border:1px solid var(--line); background:var(--line); }
.festival { display:flex; min-width:0; min-height:232px; flex-direction:column; align-items:stretch; justify-content:space-between; gap:1rem; padding:1rem; border:0; border-radius:0; background:#fff!important; }
.festival-logo { position:relative; display:grid; min-height:128px; place-items:center; padding:1rem; box-sizing:border-box; border:1px solid #dedede; background:#fff; color:inherit; text-decoration:none; overflow:hidden; transition:border-color .18s ease, transform .18s ease, background .18s ease; }
a.festival-logo::after { content:"↗"; position:absolute; top:.4rem; right:.5rem; font-size:.9rem; font-weight:900; opacity:.58; }
.festival-logo:hover { border-color:var(--orange); background:#fff; transform:translateY(-2px); }
.festival-logo:focus-visible { outline:3px solid var(--orange); outline-offset:3px; }
.festival-logo img { display:block; width:100%; max-width:270px; height:92px; object-fit:contain; filter:none!important; opacity:1!important; }
.festival-logo-dark { background:#202328; border-color:#34383e; }
.festival-logo-gozo img { max-width:146px; }
.festival-laxe img { max-width:230px; height:92px; }
.festival p { display:grid; min-height:3.3rem; align-content:start; gap:.2rem; margin:0; font-size:1rem; font-weight:820; line-height:1.28; letter-spacing:-.015em; }
.festival p strong { font:inherit; }
.festival p span { color:#555b55; font-size:.875rem; font-weight:600; letter-spacing:0; }
.festival-nearby { background:#fff8ef!important; }
.festival-wordmark { background:var(--orange); }
.festival-wordmark span { font-size:clamp(1.25rem,2.3vw,1.8rem); font-weight:950; letter-spacing:.12em; }
.technical-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:4rem; align-items:start; }
.technical-photo { margin:2rem 0 0; width:100%; aspect-ratio:1.48; object-fit:cover; }
.specs { margin:0; }
.spec-row { border-top:1px solid #bfc5bb; padding:1rem 0; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.spec-row dt { color:var(--muted); }
.spec-row dd { margin:0; font-weight:750; }
.spec-note { margin-top:1.5rem; font-size:.9rem; color:var(--muted); }
#technical { background:#f4f5f1; }
.press { background:white; }
.press-grid { grid-template-columns:1fr 1fr; }
.press-card { min-height:260px!important; border:1px solid var(--line); border-radius:0; background:none!important; color:var(--ink)!important; }
.press-card:first-child p { color:var(--muted); }
.press-card:last-child { display:none; }
.press-card .tag { font-size:.8125rem; }
.press-foot { color:#686c64; }
.contact { background:var(--ink); color:white; border-top:6px solid var(--orange); }
.contact .eyebrow { color:var(--orange)!important; }
.contact-copy p { color:#c3c8c0; }
.contact-copy a { color:white; text-underline-offset:5px; }
form { border-radius:.4rem; box-shadow:none; }
.form-note,.check { font-size:.875rem; }
footer { border-top:1px solid #42473d; }
@media(max-width:920px) {
 .hero-copy { display:block; } .hero-copy h1 { margin-bottom:1.8rem; }
 .hero-copy .lead { max-width:650px; } .hero-actions { margin-top:1.5rem; }
 .hero-media { aspect-ratio:1.65; }
 .technical-grid,.operation-grid { grid-template-columns:1fr; gap:2rem; }
 .signature { grid-template-columns:1fr 1fr; }
 .press-card:first-child { grid-column:auto; }
 .festival-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
 .shell { width:calc(100% - 2rem); } .hero { padding-top:3rem; }
 h1 { font-size:clamp(2.7rem,10.8vw,4rem); }
 .hero-media { aspect-ratio:1.35; } .photo-label { inset:auto .6rem .6rem; padding:.6rem; font-size:.8rem; }
 .signature,.case-study,.press-grid { grid-template-columns:1fr; }
 .operation-gallery { grid-template-columns:1fr; }
 .operation-photo { aspect-ratio:1.5; }
 .case-study { gap:1rem; padding:1.5rem; }
 .spec-row { grid-template-columns:1fr; gap:.35rem; }
 .festival-grid { grid-template-columns:1fr; gap:.7rem; border:0; background:transparent; }
 .festival { display:grid; grid-template-columns:minmax(96px,32%) minmax(0,1fr); min-height:104px; align-items:center; gap:.85rem; padding:.7rem; border:1px solid var(--line); }
 .festival-logo { min-height:88px; padding:.6rem; }
 .festival-logo img { height:70px; max-height:70px; }
 .festival p { font-size:.95rem; overflow-wrap:anywhere; }
 .festival-wordmark span { font-size:1rem; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; } }
.info-access{margin-bottom:5rem;padding:0!important}.info-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}.info-access-card{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;min-height:170px;padding:1.5rem;border:1px solid #565b54;background:#20231f;color:#fff;text-decoration:none}.info-access-card:hover{border-color:var(--orange)}.info-access-num{color:var(--orange);font-size:.875rem;font-weight:850}.info-access-card strong{display:block;font-size:clamp(1.5rem,2.2vw,2.1rem);line-height:1;letter-spacing:-.04em}.info-access-card small{display:block;margin-top:.75rem;color:#c3c8c0;font-size:1rem}.info-access-arrow{font-size:1.5rem}@media(max-width:620px){.info-access-grid{grid-template-columns:1fr}}
