/* Modular festival portal pages — extends approved PUBLIC V3 identity. */
.nav>a.current{color:var(--gold-soft);border-bottom-color:var(--gold)}
.narrow{max-width:900px}
.page-hero,.event-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 88% 18%,rgba(17,60,53,.68),transparent 47%),linear-gradient(140deg,#07101b 0%,#0b1821 50%,#0e302a 100%);border-bottom:1px solid var(--line)}
.page-hero .wrap{padding-top:72px;padding-bottom:78px}.page-hero h1,.event-hero h1{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:clamp(36px,5vw,62px);line-height:1.12;margin:16px 0 22px}.page-hero h1 span,.event-hero h1 span{display:block;color:var(--gold-soft)}
.breadcrumbs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:34px;color:#aebbb3;font-size:11px}.breadcrumbs a{color:#dce1dd}.breadcrumbs a:hover{color:var(--gold-soft)}
.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.btn-muted{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#9aa8a1;cursor:default}
.timeline{display:grid;gap:18px}.programme-day{display:grid;grid-template-columns:150px minmax(0,1fr);gap:34px;padding:32px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.03)}.programme-day.featured{background:linear-gradient(135deg,rgba(17,60,53,.65),rgba(12,29,37,.9));border-color:rgba(212,175,55,.48)}.programme-day h2{font-size:clamp(25px,3vw,36px);margin-top:8px}.programme-day p{color:#c7d0cb;max-width:850px}.programme-date{display:flex;align-items:flex-start;gap:14px;color:var(--gold-soft)}.programme-date b{font-family:Cinzel,Georgia,serif;font-size:58px;line-height:.9;font-weight:500}.programme-date span{font-size:10px;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;color:#b8c3bd}.status{display:inline-flex;margin-top:12px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;font-size:10px;color:var(--gold-soft);letter-spacing:.04em}
.notice{margin-top:28px;padding:20px 22px;border-left:3px solid var(--gold);background:rgba(212,175,55,.08);color:#dce2de;border-radius:0 14px 14px 0}.alt .notice{color:#37443f;background:#fff8e8}
.event-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:60px;align-items:end;padding-top:74px;padding-bottom:82px}.event-hero h1{font-size:clamp(38px,5.1vw,66px)}.event-ticket{background:var(--ivory);color:#17221f;border:1px solid rgba(212,175,55,.55);border-radius:20px;padding:30px;box-shadow:0 25px 60px rgba(0,0,0,.22)}.event-ticket .eyebrow{color:#806016}.event-ticket>strong{display:block;font-family:Cinzel,Georgia,serif;font-size:48px;font-weight:500;color:#6c5115;margin:8px 0}.event-ticket p{font-size:13px;color:#48534e}.mini-rule{height:1px;background:#dccca6;margin:22px 0}
.programme-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}.programme-block{background:#fffaf0;border:1px solid #dccca6;border-radius:18px;padding:28px}.programme-block h3{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:25px;margin:10px 0 14px}.dark-gold{color:#806016}.work-list{padding-left:18px;margin:18px 0 0}.work-list li{margin:11px 0;color:#46534d;font-size:13px;line-height:1.7}.reading{max-width:880px}.reading p{color:#c3cdc8;font-size:15px;line-height:1.9}.quote-panel{margin:32px 0;padding:26px 28px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(17,60,53,.65),rgba(255,255,255,.02))}.quote-panel p{margin:0}.quote-panel p+p{margin-top:10px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.info-grid article{padding:28px;border:1px solid #dccca6;border-radius:18px;background:#fffaf0}.info-grid h3{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:24px;margin:10px 0}.info-grid p{color:#46534d}.text-link{display:inline-block;margin-top:14px;color:#725716;font-weight:600;font-size:12px}.text-link:hover{text-decoration:underline}.schedule .text-link{color:var(--gold-soft)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:34px}.step{position:relative;background:#fffaf0;border:1px solid #dccca6;border-radius:18px;padding:30px}.step>b{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:var(--gold);color:var(--navy);font-family:Cinzel,Georgia,serif}.step h3{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:22px}.step p{color:#46534d;font-size:13px}
.part-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:34px}.part-card{background:#fffaf0;border:1px solid #dccca6;border-radius:18px;padding:26px;display:flex;flex-direction:column;align-items:flex-start;min-height:250px}.part-card>span:first-child{font-family:Cinzel,Georgia,serif;font-size:42px;color:#b08a29}.part-card h3{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:23px;margin:6px 0}.part-card p{color:#46534d;font-size:13px;flex:1}.part-card .btn{margin-top:18px;background:#eee6d4;border-color:#ddd0af;color:#7a7465}
.hero-grid.compact{min-height:auto;padding-block:70px}.institution-panel{justify-self:end;background:var(--ivory);border:1px solid rgba(212,175,55,.52);border-radius:20px;padding:30px;max-width:420px;color:#46534d}.institution-panel img{width:100%;height:auto;max-height:110px;object-fit:contain}.institution-panel p{text-align:center;font-size:12px;margin:24px 0 0}
.faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.faq-item{background:#fffaf0;border:1px solid #dccca6;border-radius:18px;padding:28px}.faq-item h3{font-family:Cinzel,Georgia,serif;font-weight:500;font-size:20px;line-height:1.4;margin:0 0 12px}.faq-item p{color:#46534d;font-size:13px;line-height:1.75;margin:0}.faq-item .text-link{margin-top:12px}
.error-page{min-height:100vh;display:grid;place-items:center;padding:40px 20px;background:radial-gradient(circle at 50% 15%,rgba(17,60,53,.7),transparent 42%),var(--navy)}.error-card{width:min(720px,100%);text-align:center;padding:48px 36px;border:1px solid rgba(212,175,55,.35);border-radius:24px;background:rgba(7,16,27,.82);box-shadow:0 28px 80px rgba(0,0,0,.35)}.error-card img{margin-bottom:18px}.error-card h1{font-family:Cinzel,Georgia,serif;font-size:clamp(64px,12vw,118px);font-weight:500;line-height:.9;margin:8px 0 18px;color:var(--gold-soft)}.error-card h2{font-family:Cinzel,Georgia,serif;font-size:clamp(22px,4vw,34px);font-weight:500;margin:0 0 18px}.error-card h2 span{color:#b7c1bc}.error-card p{max-width:560px;margin:10px auto;color:#c4cec8}.error-card .en-note{font-size:12px;color:#93a19a}.button-row.center{justify-content:center}

/* 2026-09-06: no opening interstitial; the festival identity is visible immediately in the page itself. */
.festival-opening,.festival-intro{display:none!important}

/* Companion button: one premium glass language, adapted rather than copied across devices. */
@media(min-width:961px){
  .festival-hub-button{right:28px!important;bottom:28px!important;min-height:60px!important;padding:9px 17px 9px 9px!important;border-color:rgba(244,224,151,.40)!important;box-shadow:0 20px 52px rgba(1,10,15,.34),inset 0 1px 0 rgba(255,255,255,.15),inset 0 -1px 0 rgba(212,175,55,.12)!important}
  .festival-hub-button .companion-mark{width:41px;height:41px;flex-basis:41px}.festival-hub-button .companion-mark img{width:32px;height:32px}
  .festival-hub-button .companion-button-copy strong{font-size:12.5px}.festival-hub-button .companion-button-copy small{font-size:9.5px}
}
@media(min-width:761px) and (max-width:960px){
  .festival-hub-button{right:18px!important;bottom:18px!important;min-height:58px!important;padding:8px 15px 8px 8px!important;box-shadow:0 18px 46px rgba(1,10,15,.31),inset 0 1px 0 rgba(255,255,255,.14)!important}
}
@media(hover:hover) and (pointer:fine){
  .festival-hub-button:hover{transform:translateY(-2px);border-color:rgba(244,224,151,.62)!important;box-shadow:0 24px 60px rgba(1,10,15,.38),0 0 0 1px rgba(212,175,55,.07),inset 0 1px 0 rgba(255,255,255,.17)!important}
}

@media(max-width:960px){.event-grid{grid-template-columns:1fr;gap:28px}.event-ticket{max-width:460px}.programme-columns{grid-template-columns:1fr}.part-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:1fr}.programme-day{grid-template-columns:115px 1fr}.info-grid,.faq-grid{grid-template-columns:1fr}.hero-grid.compact{grid-template-columns:1fr}.institution-panel{justify-self:start}}
@media(max-width:620px){.page-hero .wrap,.event-grid{padding-top:46px;padding-bottom:54px}.breadcrumbs{margin-bottom:24px}.page-hero h1,.event-hero h1{font-size:34px}.programme-day{grid-template-columns:1fr;gap:18px;padding:24px}.programme-date{align-items:center}.programme-date b{font-size:44px}.part-grid{grid-template-columns:1fr}.event-ticket{padding:24px}.programme-block,.step,.part-card,.faq-item{padding:24px}.error-card{padding:38px 22px}}
