/* User's seven annotated layouts, 23 October 2026. */

/* The supplied title SVG is already cropped to its native rectangular viewBox. */
.wordmark-crop{aspect-ratio:1157/485}
.wordmark-crop>img{position:static;display:block;width:100%;height:auto;max-width:100%;left:auto;top:auto}

/* Festival signature and date over the supplied Riviera artwork. */
.hero-main{grid-template-columns:.95fr 1.35fr;gap:60px;padding:50px 0 48px}
.hero-copy{display:flex;flex-direction:column;align-items:center;text-align:center}
.hero-wave{display:block;width:55%;max-width:290px;height:auto;margin:0 auto 8px}
.hero h1.hero-wordmark{width:100%;max-width:520px;margin:0}
.hero-wordmark .wordmark-crop{filter:brightness(0) invert(1)}
.hero-actions{justify-content:center;flex-direction:row;align-items:baseline;margin-top:28px;gap:20px}
.hero-art{padding:0;margin:0;align-self:center}
.art-frame{container-type:inline-size}
.hero-event-date{position:absolute;inset:14% 10% 12%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;color:var(--white);font-family:var(--serif);font-weight:400;text-align:center;text-shadow:0 2px 10px #062d3a24;pointer-events:none}
.hero-date-days{font-size:clamp(70px,12vw,170px);font-size:24cqw;letter-spacing:-.055em;line-height:.95;white-space:nowrap}
.hero-date-month{font-size:clamp(42px,7vw,110px);font-size:15cqw;letter-spacing:.045em;line-height:1;white-space:nowrap}
.hero-rule{border-top:1px solid #ffffff2b;height:26px}

/* Three comparable facts and four centred, numbered themes. */
.minute-mark{display:inline-block;font-size:.48em;line-height:1;vertical-align:top;margin-top:.02em;margin-left:3px;letter-spacing:0}
.themes-title{align-items:center;gap:48px}
.themes-title h2{max-width:740px;line-height:1.25}
.themes-title p{flex:none;max-width:290px}
.theme-grid{gap:18px}
.theme{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 12px 12px}
.theme-icon{margin:0 auto 27px}
.theme-bottom{justify-content:center;align-items:baseline;padding-right:0;gap:12px;width:100%}
.theme-bottom .number{font-size:12px;padding:0;font-variant-numeric:tabular-nums;flex:none}
.theme h3{text-align:center}

/* Programme: one clearly labelled column for each evening. */
.programme{container-type:inline-size}
.programme-heading{flex-direction:row;align-items:baseline;justify-content:space-between;margin-bottom:28px}
.programme-heading h3{margin:0;font-size:31px}
.programme-year{font-size:11px;letter-spacing:.14em;opacity:.7}
.programme-days{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px}
.programme-day{min-width:0;scroll-margin-top:110px}
.programme-day+.programme-day{border-left:1px solid var(--programme-line);padding-left:34px}
.programme-day-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:22px}
.programme-day-heading h4{font-family:var(--serif);font-size:32px;font-weight:400;line-height:1.1;letter-spacing:-.025em}
.programme-day-heading .programme-hours{font-size:18px;padding:0}
.programme-table tbody th{width:126px;padding-right:18px;font-size:11px}
.programme-table td strong{font-size:12px}
.programme-table td span{font-size:10px}
.programme .programme-note{max-width:1040px;margin-top:24px}
.bando-rule .programme-heading h3{margin:0}
.bando-rule .programme-day-heading h4{font-size:27px}
.bando-rule .programme-day-heading .programme-hours{font-size:16px}
.bando-rule:has(.programme){break-inside:auto}

/* Supplied institutional shapes, presented as in the footer reference. */
.footer-institutional .footer-top{display:block;padding:10px 0 40px}
.footer-institutions{display:flex;justify-content:center;align-items:center;gap:42px;min-width:0;padding:0;border:0}
.footer-institutions a{min-height:88px}
.institution-city{padding-right:40px;gap:17px!important}
.institution-city img{height:82px;width:auto}
.institution-city>span{font-size:13px;line-height:1.35}
.institution-region{background:transparent;padding:0;flex:none}
.region-mark{position:relative;display:block;width:200px}
.institution-region img{display:block;width:100%;height:auto;max-width:none;filter:none}
.institution-region .region-wordmark{position:absolute;inset:0;clip-path:inset(0 0 0 48%);filter:brightness(0) invert(1)}
.association-slot{width:210px;min-height:106px;margin:0;padding:17px 20px}
.association-slot>span{font-size:13px}
.association-slot>small{font-size:10px}
.bando-form-section{border:0;background:var(--paper);padding-top:55px}
.bando-form-top h1{font-size:clamp(38px,4vw,58px);line-height:1.06;font-weight:500;letter-spacing:-.04em;margin-top:15px}

@container (max-width:760px){
  .programme-days{grid-template-columns:1fr;gap:35px}
  .programme-day+.programme-day{border-left:0;border-top:1px solid var(--programme-line);padding:28px 0 0}
  .programme-day-heading h4{font-size:29px}
  .programme-day-heading .programme-hours{font-size:19px}
  .programme-table td strong{font-size:13px}
  .programme-table td span{font-size:11px}
}
@media(max-width:1150px){
  .hero-main{gap:35px;padding:45px 0}
  .hero-actions{flex-direction:row;flex-wrap:wrap;gap:18px}
  .hero-actions .btn{font-size:12px;padding-inline:16px;gap:12px}
  .hero-actions .text-link{font-size:11px}
  .footer-institutions{gap:30px}
  .institution-city{padding-right:30px}
}
@media(max-width:900px){
  .hero-main{grid-template-columns:1fr 1.2fr;gap:25px;padding:40px 0}
  .hero h1.hero-wordmark{margin:0}
  .hero-actions{gap:14px}
  .themes-title{gap:25px}
  .themes-title p{max-width:230px}
  .footer-institutions{gap:24px}
  .institution-city{padding-right:22px}
  .institution-city img{height:72px}
  .institution-city>span{font-size:11px}
  .region-mark{width:175px}
  .association-slot{width:185px;min-height:96px;padding:15px}
}
@media(max-width:640px){
  .hero-main{display:flex;gap:30px;padding:27px 0 28px}
  .hero-wave{width:49%;max-width:190px;margin-bottom:7px}
  .hero h1.hero-wordmark{max-width:400px}
  .hero-actions{margin-top:21px;gap:18px}
  .hero-actions .btn{font-size:11px;padding-inline:17px}
  .hero-event-date{inset:14% 10% 12%}
  .hero-rule{height:20px}
  .themes-title h2{font-size:27px}
  .themes-title p{max-width:300px}
  .theme-grid{gap:22px 16px}
  .theme{padding:23px 3px 7px}
  .theme-icon{margin-bottom:19px}
  .theme-bottom{gap:8px;align-items:baseline}
  .theme h3{font-size:13px}
  .theme-bottom .number{font-size:10px}
  .programme-heading{margin-bottom:24px}
  .programme-heading h3{font-size:28px}
  .programme-day-heading{gap:12px;margin-bottom:18px}
  .programme-day-heading h4{font-size:28px}
  .programme-day-heading .programme-hours{font-size:17px}
  .programme-table tbody th{width:112px;font-size:11px;padding-right:13px}
  .footer-institutional .footer-top{padding:3px 0 30px}
  .footer-institutions{display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}
  .footer-institutions a{min-height:80px}
  .institution-city{padding-right:15px;gap:10px!important}
  .institution-city img{height:66px}
  .institution-city>span{font-size:10px}
  .institution-region{padding:0}
  .region-mark{width:100%;max-width:175px}
  .institution-region img{width:100%;max-width:none}
  .association-slot{grid-column:1/-1;width:100%;min-height:67px;padding:16px;flex-direction:row;align-items:center;justify-content:space-between}
  .association-slot>span{font-size:12px}
  .association-slot>small{margin:0;font-size:10px}
  .bando-form-section{padding-top:32px}
  .bando-form-top h1{font-size:43px;margin-bottom:20px}
}
@media(max-width:370px){
  .programme-day-heading h4{font-size:25px}
  .programme-day-heading .programme-hours{font-size:15px}
  .institution-city>span{font-size:9px}
  .institution-city img{height:56px}
}
@media print{
  .hero-wave{width:160px}
  .programme-days{display:block}
  .programme-day+.programme-day{padding:20px 0 0;border:0}
  .programme-day{break-inside:avoid}
  .programme-heading h3{font-size:20pt}
}

/* Official FilmFreeway submission button supplied by the organiser. */
.filmfreeway-button{display:inline-flex;align-items:center;justify-content:center;width:263px;max-width:100%;line-height:0;vertical-align:middle;flex-shrink:0}
.filmfreeway-button img{display:block;width:100%;max-width:263px;height:auto}
.filmfreeway-button.header-cta{padding:0;min-height:0}
.mobile-nav>.filmfreeway-button{margin-top:28px;padding:0;border:0;line-height:0}
@media(min-width:901px) and (max-width:1100px){.filmfreeway-button.header-cta{width:220px}}
@media(max-width:900px){.filmfreeway-button.header-cta{display:none}}
@media print{.filmfreeway-button{display:none!important}}

/* General organisation email above the individual phone contacts. */
.language-bar{background:var(--sand);border-bottom:1px solid var(--line)}
.language-bar-inner{display:flex;justify-content:flex-end;align-items:center;min-height:34px}
.footer-bottom{align-items:flex-start}
.footer-copy{max-width:1000px}
.footer-copy p+p{margin-top:7px}
.footer-links{flex-shrink:0}
@media print{.language-bar{display:none}}

.contact-general{margin-bottom:30px}
.contact-general>.eyebrow{display:block;margin-bottom:10px}
.contact-email{display:inline-block;max-width:100%;font-size:clamp(17px,3vw,34px);font-weight:500;line-height:1.3;letter-spacing:-.02em;overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
#contatti .contact-card{padding-right:0}

/* Supplied Fuori Rotta identity and additional footer marks. */
.association-mark{width:200px;max-width:100%;flex:none;line-height:0}
.association-mark img{display:block;width:100%;height:auto}
.footer-additional-logos{display:flex;align-items:center;justify-content:center;gap:52px;margin-top:36px}
.footer-additional-logos img{display:block;max-width:100%;height:auto}
.footer-filmfreeway-logo{width:230px}
.footer-gold-logo{width:140px}
@media(max-width:900px){.association-mark{width:200px}}
@media(max-width:640px){
  .association-mark{grid-column:1/-1;justify-self:center;width:min(200px,100%);margin-top:8px}
  .footer-additional-logos{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:28px;max-width:330px;margin:30px auto 0}
  .footer-additional-logos img{width:100%}
}

/* Programme retained offline until the final timetable is published. */
.programme-announcement{font-size:clamp(17px,2vw,23px);line-height:1.55;max-width:780px;padding:3px 0 7px}

/* Footer actions and the full organiser-supplied rules. */
.footer-copy{min-width:0}
.footer-links{flex-wrap:wrap;align-items:baseline;column-gap:20px;row-gap:10px}
.footer-links>a:hover{text-decoration:underline;text-underline-offset:3px}
body.dialog-open{overflow:hidden}
.terms-dialog{width:min(850px,calc(100% - 32px));height:min(84dvh,860px);max-height:84dvh;overflow:hidden}
.terms-dialog[open]{display:flex;flex-direction:column}
.terms-header{position:relative;flex:none;padding:25px 64px 22px 32px;border-bottom:1px solid var(--line)}
.terms-header h2{font-size:clamp(24px,3vw,32px);line-height:1.15;letter-spacing:-.03em;font-weight:500;margin-top:8px}
.terms-header .dialog-close{top:20px;right:20px}
.terms-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 32px 8px}
.terms-content:focus-visible{outline:2px solid var(--sea);outline-offset:-3px}
.terms-article{padding:22px 0;border-bottom:1px solid var(--line)}
.terms-article:last-child{border-bottom:0}
.terms-article h3{font-size:16px;font-weight:700;line-height:1.4;margin-bottom:10px}
.terms-article p,.terms-article li{font-size:14px;line-height:1.75;color:var(--muted)}
.terms-article p+p{margin-top:10px}
.terms-article ul{margin:10px 0 12px;padding-left:22px}
.terms-article li+li{margin-top:5px}
.terms-article strong{color:var(--ink)}
.terms-actions{flex:none;border-top:1px solid var(--line);padding:14px 32px;display:flex;justify-content:flex-end}
.terms-actions .btn{min-height:42px;padding:8px 24px}
@media(max-width:640px){
  .footer-links{width:100%;column-gap:18px;row-gap:12px}
  .terms-dialog{width:calc(100% - 20px);height:90dvh;max-height:90dvh}
  .terms-header{padding:21px 54px 18px 22px}
  .terms-header .dialog-close{top:17px;right:12px}
  .terms-content{padding-inline:22px}
  .terms-article{padding:19px 0}
  .terms-article h3{font-size:15px}
  .terms-article p,.terms-article li{font-size:13px}
  .terms-actions{padding:12px 22px}
}
