/* Shared readable scale. Layout widths remain fluid; text and controls do not stretch. */
.platform{font-size:var(--font-size-base);line-height:1.5}
.platform .pheading h1{font-size:var(--font-size-4xl);line-height:1.2;letter-spacing:-.6px}
.platform .pheading p{font-size:var(--font-size-md);line-height:1.55;margin-top:var(--space-2)}
.platform .pbox{padding:var(--space-6);margin-bottom:var(--space-6);border-radius:var(--radius-md)}
.platform .pbox h2{font-size:var(--font-size-2xl);line-height:1.3;margin-bottom:var(--space-4)}
.platform .pbox h3{font-size:var(--font-size-lg);line-height:1.4}
.platform .pfield{font-size:var(--font-size-base);line-height:1.4;gap:var(--space-2);margin-bottom:var(--space-5)}
.platform .pfield input:not([type=checkbox]):not([type=radio]):not([type=range]),
.platform .pfield select{height:44px;min-height:44px;font-size:var(--font-size-base);padding:10px 12px;border-radius:var(--radius-sm);line-height:1.4}
.platform .pfield textarea{min-height:116px;font-size:var(--font-size-base);line-height:1.6;padding:var(--space-3);border-radius:var(--radius-sm)}
.platform .pfield small{font-size:var(--font-size-xs);line-height:1.5}
.platform .pbtn{min-height:42px;padding:10px 18px;font-size:var(--font-size-base);line-height:1.35;border-radius:var(--radius-sm)}
.platform .pbtn.compact{min-height:36px;padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}
.platform .pbtn svg{width:18px;height:18px;flex-shrink:0}
.platform .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-6)}
.platform .pwork-main .ptable{font-size:var(--font-size-sm);line-height:1.5}
.platform .pwork-main .ptable td{padding:14px 12px}
.platform .pwork-main .ptable .pfield{font-size:var(--font-size-sm)}
.platform .pwork-main .ptable .pfield select{min-height:36px;height:36px;padding:7px 10px;font-size:var(--font-size-sm)}
.platform .file-row{padding-block:14px;gap:var(--space-4);line-height:1.5}
.platform.screen-criteria .pbox>form:has([name=title]){display:grid;grid-template-columns:minmax(200px,2fr) 1fr 1fr auto;gap:var(--space-4);align-items:end}
.platform.screen-criteria .pbox>form:has([name=title]) .pfield{margin:0}

/* Homepage: four balanced cards with legible metadata and aligned actions. */
.platform .phome-content .psection-title{margin-top:var(--space-6);margin-bottom:14px;gap:var(--space-5)}
.platform .phome-content .psection-title h2{font-size:var(--font-size-2xl);line-height:1.35}
.platform .phome-content .psection-title h2 small{font-size:var(--font-size-xs);line-height:1.5;margin-left:var(--space-3)}
.platform .phome-content .psection-title>a{font-size:var(--font-size-xs);white-space:nowrap}
.platform .phome-content .pcategories{gap:var(--space-4)}
.platform .phome-content .pcategories a{height:80px;font-size:var(--font-size-xs);gap:10px}
.platform .phome-content .pfestival-grid{gap:var(--space-5);align-items:stretch}
.platform .phome-content .pcard{display:flex;flex-direction:column;border-radius:11px}
.platform .phome-content .pcard-cover{height:clamp(118px,9vw,168px);aspect-ratio:auto;flex-shrink:0}
.platform .phome-content .pcard-body{padding:0 var(--space-4) var(--space-4);display:flex;flex-direction:column;flex:1}
.platform .phome-content .pcard-title{min-height:72px;gap:var(--space-3);align-items:center}
.platform .phome-content .pcard-title .festival-logo{width:56px;height:56px;flex:0 0 56px;margin-top:-18px}
.platform .phome-content .pcard-title h3{font-size:var(--font-size-lg);line-height:1.35;margin:var(--space-3) 0;font-weight:700;overflow-wrap:anywhere}
.platform .phome-content .pcard .country{font-size:var(--font-size-xs);line-height:1.5;margin:0 0 var(--space-2)}
.platform .phome-content .pcard .ptag{font-size:10px;line-height:1.4;padding:3px 9px}
.platform .phome-content .pcard-deadline{font-size:var(--font-size-sm);line-height:1.4;margin:8px 0 14px;gap:var(--space-3)}
.platform .phome-content .pcard-deadline small{font-size:var(--font-size-2xs);line-height:1.5;margin-bottom:2px}
.platform .phome-content .pcard-buttons{gap:10px;margin-top:auto;flex-direction:row}
.platform .phome-content .pcard-buttons>*{min-height:40px;padding:9px 10px;font-size:var(--font-size-sm);line-height:1.35;min-width:0}

/* Smart Match: image, introduction, film profile and result use a shared rhythm. */
.platform .phome-content .pmatch-banner{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(210px,1.1fr) minmax(210px,1fr) minmax(285px,1.35fr);align-items:stretch;margin-top:28px;min-height:208px;height:auto;padding:var(--space-4);gap:var(--space-5)}
.platform .phome-content .pmatch-banner>.art{width:100%;height:100%;min-height:176px;max-height:228px;border-radius:var(--radius-sm)}
.platform .phome-content .match-intro{min-width:0;display:flex;flex-direction:column;justify-content:center;padding:var(--space-1) 0}
.platform .phome-content .match-intro h2{font-size:19px;line-height:1.3;margin:0}
.platform .phome-content .match-intro p{font-size:var(--font-size-sm);line-height:1.6;margin:var(--space-3) 0 var(--space-4)}
.platform .phome-content .match-intro p br{display:none}
.platform .phome-content .match-intro .pbtn{align-self:flex-start;min-height:40px;padding:9px 16px;font-size:var(--font-size-sm)}
.platform .phome-content .match-film,.platform .phome-content .match-result{display:block;width:auto;min-width:0;padding:var(--space-4);border-radius:9px;font-size:var(--font-size-xs)}
.platform .phome-content .match-film>div{font-size:var(--font-size-xs);gap:var(--space-4);margin-bottom:var(--space-2)}
.platform .phome-content .match-film progress{height:6px;margin-bottom:var(--space-2)}
.platform .phome-content .match-film p{font-size:var(--font-size-xs);line-height:1.5;margin:5px 0}
.platform .phome-content .match-film svg{width:14px;height:14px;margin-right:var(--space-2)}
.platform .phome-content .match-result h3{font-size:var(--font-size-base);line-height:1.4;margin:0 0 14px}
.platform .phome-content .match-result-body{gap:14px;margin-top:0;min-width:0}
.platform .phome-content .match-result-body>div:last-child{min-width:0}
.platform .phome-content .match-result .ring{width:88px;height:88px}
.platform .phome-content .match-result .ring strong{font-size:25px}
.platform .phome-content .match-result .ring small{font-size:10px}
.platform .phome-content .match-result-body a{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 8px;font-size:var(--font-size-2xs);line-height:1.35;margin:9px 0}
.platform .phome-content .match-result-body a .art{grid-row:span 2;width:28px;height:32px}
.platform .phome-content .match-result-body a strong{margin-left:0;font-size:10px}

/* Offers share equal widths, comfortable reading sizes and a common CTA baseline. */
.platform .phome-content .ppartners{min-height:80px;height:auto;gap:var(--space-6);padding:var(--space-5) 0;margin-top:var(--space-2)}
.platform .phome-content .ppartners h2{font-size:var(--font-size-lg);line-height:1.35}
.platform .phome-content .ppartners p{font-size:var(--font-size-xs);line-height:1.5;margin-top:5px}
.platform .phome-content .ppartners>div:last-child{font-size:var(--font-size-base)}
.platform .phome-content .ppartners small{font-size:var(--font-size-2xs);line-height:1.5}
.platform .phome-content .ppricing-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:var(--space-3);margin-bottom:28px;align-items:stretch}
.platform .phome-content .ppricing-strip>div:first-child{grid-column:1/-1;margin-bottom:0}
.platform .phome-content .ppricing-strip h2{font-size:var(--font-size-2xl);line-height:1.35}
.platform .phome-content .ppricing-strip>div:first-child p{font-size:var(--font-size-sm);line-height:1.5;margin-top:6px}
.platform .phome-content .pplan,.platform .phome-content .plus-plan{display:flex;flex-direction:column;min-height:230px;padding:var(--space-5);border-radius:10px}
.platform .phome-content .pplan h3,.platform .phome-content .plus-plan h3{font-size:19px;line-height:1.35;gap:10px;margin:0 0 6px}
.platform .phome-content .pplan>small{font-size:var(--font-size-xs);line-height:1.5;min-height:18px}
.platform .phome-content .pplan ul{font-size:var(--font-size-sm);line-height:1.6;margin:14px 0 20px}
.platform .phome-content .pplan li+li{margin-top:6px}
.platform .phome-content .pplan .pbtn,.platform .phome-content .plus-plan .pbtn{min-height:40px;padding:9px 12px;font-size:var(--font-size-sm);margin-top:auto}
.platform .phome-content .plus-plan p{font-size:var(--font-size-base);line-height:1.6;margin:18px 0 20px}
.platform .phero .psearch{height:50px;min-height:50px}
.platform .phero .psearch input{font-size:var(--font-size-base)}
.platform .phero .psearch .pbtn{height:44px;min-height:44px;font-size:var(--font-size-sm)}

@media(min-width:1800px){
 .platform .phome-content .match-result-body a{grid-template-columns:32px minmax(0,1fr) auto;gap:10px}
 .platform .phome-content .match-result-body a .art{grid-row:auto}
 .platform .phome-content .match-result-body a strong{font-size:var(--font-size-2xs)}
}
@media(max-width:1180px){
 .platform .phome-content .pmatch-banner{grid-template-columns:repeat(2,minmax(0,1fr))}
 .platform .phome-content .pmatch-banner>.art{height:190px;min-height:0}
 .platform .phome-content .match-intro{padding:var(--space-1) var(--space-2)}
 .platform .phome-content .match-result{min-width:0}
 .platform.screen-criteria .pbox>form:has([name=title]){grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
 .platform .phome-content .ppricing-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
 .platform .phome-content .pcard-cover{height:148px}
 .platform .phome-content .psection-title{align-items:flex-start}
}
@media(max-width:600px){
 .platform .pheading h1{font-size:27px}
 .platform .pbox{padding:18px;margin-bottom:18px}
 .platform .form-grid,.platform.screen-criteria .pbox>form:has([name=title]){grid-template-columns:minmax(0,1fr);gap:0}
 .platform.screen-criteria .pbox>form:has([name=title]) .pfield{margin-bottom:18px}
 .platform .pfield input:not([type=checkbox]):not([type=radio]):not([type=range]),.platform .pfield select,.platform .pfield textarea{font-size:var(--font-size-lg)}
 .platform .phome-content .psection-title h2{font-size:19px}
 .platform .phome-content .psection-title>a{font-size:var(--font-size-2xs);white-space:normal;text-align:right}
 .platform .phome-content .pcategories{gap:10px}
 .platform .phome-content .pcategories a{height:72px;font-size:var(--font-size-2xs)}
 .platform .phome-content .pfestival-grid{grid-template-columns:minmax(0,1fr);gap:18px}
 .platform .phome-content .pcard-cover{height:150px}
 .platform .phome-content .pcard-title h3{font-size:var(--font-size-lg)}
 .platform .phome-content .pcard-buttons>*{min-height:42px;font-size:var(--font-size-sm)}
 .platform .phome-content .pmatch-banner{grid-template-columns:minmax(0,1fr);padding:14px;gap:var(--space-4);margin-top:var(--space-6)}
 .platform .phome-content .pmatch-banner>.art{height:164px;min-height:0}
 .platform .phome-content .match-intro{padding:var(--space-1)}
 .platform .phome-content .match-film,.platform .phome-content .match-result{min-width:0;min-height:0}
 .platform .phome-content .ppricing-strip{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
 .platform .phome-content .pplan,.platform .phome-content .plus-plan{min-height:210px;padding:var(--space-5)}
 .platform .phome-content .ppartners{gap:var(--space-4);flex-wrap:wrap}
 .platform .phome-content .partner-logos{flex-basis:100%;order:3}
}

/* Absolute .sr-only labels inside scrollable tables must stay clipped by the wrapper (no page-level horizontal scroll on mobile). */
.ptable-wrap{position:relative}
