/* Shared homepage inset keeps the artwork full bleed and the content aligned. */
.platform.screen-home{--page-gutter:clamp(24px,4vw,96px)}
@media(max-width:600px){.platform.screen-home{--page-gutter:20px}}
@media(max-width:600px){
 .platform.screen-home .pheader>div{gap:8px}
 .platform.screen-home .pheader .festime-official-logo{width:clamp(110px,36vw,170px);height:49px}
 .platform.screen-home .pheader-tools{gap:6px}
}
/* Five readable festival cards on desktop; native horizontal scrolling on every screen. */
.platform .festival-carousel{min-width:0;position:relative}
.platform .phome-content .festival-carousel .psection-title{flex-wrap:wrap}
.platform .festival-carousel-tools{display:flex;align-items:center;gap:12px;margin-inline-start:auto}
.platform .festival-carousel-tools>a{font-size:12px;white-space:nowrap}
.platform .festival-carousel-controls{display:flex;align-items:center;gap:8px}
.platform .festival-carousel-controls[hidden]{display:none}
.platform .festival-carousel-controls button{position:absolute;top:calc(50% + 16px);z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid var(--color-white);border-radius:50%;background:#7022ff;color:var(--color-white);cursor:pointer;box-shadow:0 3px 14px #24105730;transform:translateY(-50%)}
.platform [data-carousel-previous]{inset-inline-start:-22px}
.platform [data-carousel-next]{inset-inline-end:-22px}
.platform .festival-carousel-controls button:disabled{opacity:.35;cursor:default}
.platform .festival-carousel-controls button:hover:not(:disabled){background:#5113ce;border-color:#ede3ff}
.platform .festival-carousel-controls button:focus-visible,.platform .festival-carousel-track:focus-visible{outline:2px solid #7022ff;outline-offset:3px}
.platform .festival-carousel-count{font-size:12px;font-variant-numeric:tabular-nums;color:#506196;min-width:64px;text-align:center;direction:ltr}
.platform .phome-content .pfestival-grid.festival-carousel-track{--festival-gap:20px;--festival-columns:5;display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--festival-columns) - 1)*var(--festival-gap))/var(--festival-columns));gap:var(--festival-gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#bc9bfa #f1edfc;padding-block:4px 12px;min-width:0}
.platform .festival-carousel-track>.pcard{min-width:0;scroll-snap-align:start;scroll-margin:0}
.platform .phome-content .has-carousel-controls .festival-carousel-track{scrollbar-width:none}
.platform .has-carousel-controls .festival-carousel-track::-webkit-scrollbar{display:none}
.platform .phome-content .festival-carousel-track .pcard-cover{height:clamp(114px,8.6vw,164px)}
.platform .phome-content .festival-carousel-track .pcard-body{padding:0 12px 14px}
.platform .phome-content .festival-carousel-track .pcard-title{min-height:84px;gap:9px}
.platform .phome-content .festival-carousel-track .pcard-title h3{font-size:14px;line-height:1.4}
.platform .phome-content .festival-carousel-track .festival-logo{width:46px;height:46px;flex-basis:46px}
.platform .phome-content .festival-carousel-track .pcard-buttons{gap:8px}
.platform .phome-content .festival-carousel-track .pcard-buttons>*{white-space:normal;font-size:12px;min-height:40px;padding:8px 6px}
[dir=rtl] .festival-carousel-controls svg{transform:rotate(180deg)}
@media(max-width:1199px){.platform .phome-content .pfestival-grid.festival-carousel-track{--festival-columns:3}}
@media(max-width:800px){.platform .phome-content .pfestival-grid.festival-carousel-track{--festival-columns:2;--festival-gap:16px}}
@media(max-width:540px){
 .platform .phome-content .pfestival-grid.festival-carousel-track{--festival-columns:1}
 .platform .festival-carousel-tools{width:100%;justify-content:space-between;gap:8px}
 .platform .festival-carousel-controls button{width:40px;height:40px}
 .platform [data-carousel-previous]{inset-inline-start:-12px}
 .platform [data-carousel-next]{inset-inline-end:-12px}
 .platform .phome-content .festival-carousel-track .pcard-cover{height:160px}
 .platform .phome-content .festival-carousel-track .pcard-body{padding-inline:16px}
 .platform .phome-content .festival-carousel-track .pcard-title{min-height:72px}
 .platform .phome-content .festival-carousel-track .pcard-title h3{font-size:16px}
 .platform .phome-content .festival-carousel-track .pcard-buttons>*{font-size:13px;min-height:44px}
}

/* Crop the additional reference photos clear of badges baked into the mockup. */
.platform .festival-carousel-track .pcard-cover>.art-cannes{background-size:1072.5926% 2715.0000%;background-position:27.9513% 27.3423%}
.platform .festival-carousel-track .pcard-cover>.art-toronto{background-size:1072.5926% 2715.0000%;background-position:70.1447% 27.3423%}
.platform .festival-carousel-track .pcard-cover>.art-berlinale{background-size:1072.5926% 2715.0000%;background-position:91.2414% 27.3423%}
.platform .festival-carousel-track .pcard-cover>.art-sundance{background-size:1072.5926% 2715.0000%;background-position:27.9513% 49.5220%}
.platform .festival-carousel-track .pcard-cover>.art-tribeca{background-size:1072.5926% 2715.0000%;background-position:49.2765% 49.5220%}
.platform .festival-carousel-track .pcard-cover>.art-locarno{background-size:1072.5926% 2715.0000%;background-position:70.1447% 49.5220%}
.platform .festival-carousel-track .pcard-cover>.art-marrakech{background-size:1072.5926% 2715.0000%;background-position:91.2414% 49.5220%}

.platform .festival-carousel-controls [data-carousel-autoplay]{position:static;transform:none;width:30px;height:30px;min-height:30px;border:1px solid #d9ceff;border-radius:50%;background:#f7f3ff;color:#6220df;box-shadow:none;font-size:13px;line-height:1}
.platform .festival-carousel-controls [data-carousel-autoplay]:hover{background:#eae1ff;color:#4a10b0;border-color:#c2a5ff}
