@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#0c2233;--sun:#f4c95d;--sun-ink:#806100;--yellow:#f4c95d;--ivory:#f5f1e9;--paper:#fffdf8;--line:rgba(12,34,51,.18);--serif:'DM Serif Display',Georgia,serif;--sans:'Manrope',Arial,sans-serif;--pad:clamp(1.25rem,4vw,5.5rem)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section-pad{padding-left:var(--pad);padding-right:var(--pad)}.site-shell{overflow:hidden}.site-header{height:86px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20;background:rgba(245,241,233,.92);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:.75rem;font-weight:800;letter-spacing:.12em;font-size:.76rem}.brand-mark{width:37px;height:37px;display:grid;place-items:center}.brand-mark img{width:100%;height:100%;display:block}.brand-wordmark{display:flex;gap:.28rem}.brand-wordmark span{color:var(--sun);font-weight:500}.main-nav{display:flex;align-items:center;gap:clamp(1.3rem,3vw,3.4rem);font-size:.76rem;font-weight:700}.main-nav>a:not(.nav-cta){position:relative}.main-nav>a:not(.nav-cta):after{content:'';position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--sun);transition:width .25s}.main-nav>a:not(.nav-cta):hover:after{width:100%}.nav-cta{padding:1rem 1.25rem;border:1px solid var(--ink);transition:.25s}.nav-cta:hover{background:var(--ink);color:var(--ivory)}.menu-toggle{display:none;background:none;border:0}.hero{min-height:calc(100vh - 86px);padding-top:clamp(3.8rem,8vw,7.5rem);padding-bottom:clamp(2.5rem,5vw,5rem);display:grid;grid-template-columns:minmax(280px,.86fr) minmax(360px,1.14fr);gap:clamp(2rem,6vw,7rem);align-items:center;position:relative}.eyebrow{display:flex;align-items:center;gap:.65rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800;font-size:.66rem;margin:0 0 1.8rem;color:var(--sun)}.eyebrow-line{width:31px;height:2px;background:currentColor;display:inline-block}.hero h1,h2{font:400 clamp(4rem,8.2vw,8.5rem)/.9 var(--serif);letter-spacing:-.055em;margin:0}.hero h1 em,h2 em{color:var(--sun);font-style:normal}.hero-intro{font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.35;margin:2.3rem 0 2.1rem}.button{display:inline-flex;align-items:center;gap:1.4rem;padding:1.1rem 1.35rem;border:1px solid transparent;font-size:.74rem;font-weight:800;letter-spacing:.02em;transition:transform .25s,background .25s,color .25s}.button span{font-size:1.1rem;font-weight:400}.button:hover{transform:translateY(-3px)}.button-coral{background:var(--sun);color:var(--paper)}.button-coral:hover{background:var(--ink)}.hero-visual{position:relative;min-height:min(64vw,610px);height:100%;margin-right:calc(var(--pad)*-1)}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,34,51,.27),transparent 55%),linear-gradient(0deg,rgba(12,34,51,.25),transparent 38%);pointer-events:none}.hero-visual img{width:100%;height:100%;min-height:inherit;display:block;object-fit:cover}.hero-sticker{position:absolute;z-index:2;left:-38px;bottom:48px;width:120px;height:120px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;text-align:center;font-size:.65rem;line-height:1.2;transform:rotate(-10deg)}.hero-sticker strong{font:400 1.45rem var(--serif)}.hero-sticker i{font-style:normal;position:absolute;right:13px;top:13px;font-size:1.1rem}.hero-scroll{position:absolute;bottom:3.2rem;left:var(--pad);display:flex;align-items:center;gap:1rem;transform:rotate(-90deg) translateX(-100%);transform-origin:left bottom;text-transform:uppercase;letter-spacing:.13em;font-size:.58rem;font-weight:800}.scroll-line{width:62px;height:1px;background:var(--ink)}.expertise{padding-top:clamp(6rem,11vw,11rem);padding-bottom:clamp(6rem,10vw,10rem)}.section-heading h2{font-size:clamp(3.6rem,6.5vw,7rem)}.expertise-intro{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin:3.5rem 0 4.4rem;margin-left:35%;max-width:720px}.expertise-intro p{max-width:430px;font-size:1.02rem;margin:0}.text-link{font-size:.75rem;font-weight:800;border-bottom:1px solid var(--ink);padding-bottom:.45rem;white-space:nowrap}.text-link span{color:var(--sun);font-size:1.1rem;margin-left:.5rem}.expertise-grid{display:grid;grid-template-columns:1.18fr .9fr .9fr;gap:1px;background:var(--ink);border:1px solid var(--ink)}.expertise-card{min-height:365px;padding:1.7rem;display:flex;flex-direction:column;background:var(--paper);position:relative;transition:transform .3s}.expertise-card:hover{transform:translateY(-7px);z-index:2}.expertise-card--large{background:var(--sun);color:var(--paper)}.expertise-card--dark{background:var(--ink);color:var(--ivory)}.card-number{font-size:.64rem;font-weight:800;letter-spacing:.13em}.card-icon{position:absolute;right:1.6rem;top:1.4rem;font-size:2rem}.expertise-card h3{font:400 clamp(2rem,3.2vw,3.5rem)/.95 var(--serif);letter-spacing:-.04em;margin:auto 0 1.6rem}.expertise-card h3 em{font-style:normal;color:var(--yellow)}.expertise-card:not(.expertise-card--large) h3 em{color:var(--sun)}.expertise-card p{font-size:.82rem;max-width:260px;margin:0 0 1.8rem}.expertise-card a{font-size:.69rem;font-weight:800;margin-top:auto}.expertise-card a span{color:var(--yellow);font-size:1.1rem;margin-left:.5rem}.agency{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,10vw,11rem);align-items:center;padding-top:5rem;padding-bottom:clamp(7rem,12vw,12rem);background:var(--paper)}.agency-art{aspect-ratio:1;max-width:510px;position:relative;display:grid;place-items:center;background:var(--yellow);overflow:hidden}.art-ring{position:absolute;border-radius:50%;border:1px solid var(--ink)}.art-ring--one{width:80%;height:80%}.art-ring--two{width:52%;height:52%;border-width:17px;border-color:var(--sun)}.art-dot{width:24px;height:24px;background:var(--ink);border-radius:50%;position:relative;z-index:1;box-shadow:0 0 0 15px rgba(244,201,93,.38)}.art-caption{position:absolute;left:1.5rem;bottom:1.2rem;font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;line-height:1.45}.agency-copy{max-width:500px}.agency-copy h2{font-size:clamp(3.4rem,5.8vw,6.2rem);margin-bottom:2.4rem}.agency-copy>p:not(.eyebrow){font-size:1.02rem}.agency-small{font-weight:800;font-size:.85rem!important;margin:2rem 0}.button-outline{border-color:var(--ink);margin-top:1.2rem}.button-outline:hover{background:var(--ink);color:var(--ivory)}.stats{background:var(--ink);color:var(--ivory)}.stats-inner{min-height:310px;display:grid;grid-template-columns:1.25fr repeat(3,1fr);align-items:center;gap:2rem}.eyebrow-light{color:var(--yellow)}.stats-heading p:last-child{font:400 1.55rem/1.2 var(--serif);margin:0}.stat{border-left:1px solid rgba(245,241,233,.32);padding-left:clamp(1.3rem,3vw,3.5rem);display:flex;flex-direction:column}.stat strong{font:400 clamp(3.4rem,5.3vw,5.3rem)/1 var(--serif);color:var(--yellow)}.stat strong span{color:var(--sun);font-size:.62em}.stat>span{font-size:.68rem;font-weight:700;max-width:130px}.engagements{padding-top:clamp(7rem,12vw,12rem);padding-bottom:clamp(7rem,12vw,12rem)}.engagement-list{margin-top:5rem;margin-left:25%;border-top:1px solid var(--line)}.engagement{display:grid;grid-template-columns:70px 1fr 50px;align-items:start;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);transition:.25s}.engagement:hover{padding-left:1rem}.engagement>span{font-weight:800;font-size:.7rem;color:var(--sun)}.engagement h3{font:400 2rem var(--serif);margin:0 0 .4rem}.engagement p{margin:0;max-width:480px;font-size:.86rem}.engagement b{font-size:1.4rem;font-weight:400;color:var(--sun)}.contact{background:var(--sun);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,9rem);padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem)}.contact h2{font-size:clamp(3.4rem,6vw,6.8rem)}.contact-copy>p:not(.eyebrow){max-width:380px;margin:2.6rem 0;font-size:1.03rem}.contact-details{display:grid;gap:.35rem;font-size:.77rem;margin-top:3rem}.contact-details a{font-size:1.1rem;font-weight:800}.contact-details a:hover{color:var(--yellow)}.contact-form{background:var(--paper);color:var(--ink);padding:clamp(1.5rem,3vw,3rem)}.form-heading{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:2rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.form-heading span{color:var(--sun)}.form-heading p{margin:0}.contact-form label{font-size:.69rem;font-weight:800;display:block;margin:1.2rem 0}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:.75rem 0;outline:0;resize:vertical;color:var(--ink)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--sun)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:rgba(12,34,51,.43)}.form-status{min-height:1.5rem;font-size:.72rem;margin:1rem 0;color:var(--sun)}.form-status.success{color:#2f7652}.button-yellow{background:var(--yellow);color:var(--ink);width:100%;justify-content:space-between}.button-yellow:hover{background:var(--ink);color:var(--ivory)}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.35rem var(--pad);background:var(--ink);color:var(--ivory);font-size:.66rem}.brand-footer .brand-mark{width:28px;height:28px}.brand-footer{font-size:.64rem}.site-footer p{margin:0;color:var(--yellow);font:400 1.05rem var(--serif)}.site-footer>span{opacity:.65}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}@media(max-width:850px){.site-header{height:72px}.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:.6rem}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:2px;background:var(--ink)}.main-nav{position:absolute;top:72px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);display:grid;gap:0;padding:1rem var(--pad);transform:translateY(-140%);transition:transform .3s;box-shadow:0 12px 20px rgba(12,34,51,.08)}.main-nav.is-open{transform:translateY(0)}.main-nav a{padding:1rem 0}.nav-cta{padding:1rem!important;text-align:center;margin:1rem 0}.hero{grid-template-columns:1fr;padding-top:4.5rem}.hero-copy{padding-right:1rem}.hero-visual{min-height:480px;margin-left:10%;margin-right:-1px}.hero-scroll{display:none}.hero-sticker{left:-22px;bottom:28px}.expertise-intro{margin-left:0;display:block}.text-link{display:inline-block;margin-top:1.5rem}.expertise-grid{grid-template-columns:1fr}.expertise-card{min-height:280px}.agency{grid-template-columns:1fr}.agency-art{max-width:100%;width:82%;margin:auto}.stats-inner{grid-template-columns:1fr 1fr;gap:2.4rem;padding-top:4rem;padding-bottom:4rem}.stats-heading{grid-column:1/-1}.engagement-list{margin-left:0;margin-top:3.5rem}.contact{grid-template-columns:1fr}.site-footer{flex-wrap:wrap}.site-footer p{order:3;width:100%}}@media(max-width:480px){.brand-wordmark{font-size:.64rem}.hero h1{font-size:4.2rem}.hero-visual{min-height:380px}.agency-art{width:100%}.engagement{grid-template-columns:35px 1fr 20px;gap:.7rem}.engagement h3{font-size:1.65rem}.site-footer>span{display:none}}

/* User-supplied event photography */
.agency-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.agency-art .art-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(12,34,51,.14),rgba(244,201,93,.42));z-index:1}.agency-art .art-ring,.agency-art .art-dot,.agency-art .art-caption{z-index:2}.expertise-card--photo{overflow:hidden}.expertise-card--photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.expertise-card--photo .card-photo-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,34,51,.2),rgba(12,34,51,.92));z-index:1}.expertise-card--photo>*:not(img):not(.card-photo-overlay){z-index:2}.expertise-card--photo h3 em{color:var(--yellow)}

/* Codecom identity and responsive navigation */
.site-header{background:var(--ink);border-bottom-color:rgba(255,255,255,.13)}
.brand-logo{display:block;width:166px;height:76px;object-fit:contain;object-position:left center}
.brand-footer .brand-logo{width:130px;height:60px}
.main-nav{color:var(--paper);gap:clamp(.9rem,1.8vw,2rem)}
.main-nav>a:not(.nav-cta):after{background:var(--yellow)}
.nav-cta{border-color:rgba(255,255,255,.68)}
.nav-cta:hover{background:var(--paper);color:var(--ink)}
.menu-toggle>span:not(.sr-only){background:var(--paper)}
.form-hint{font-size:.68rem;line-height:1.5;color:#53606b;margin:1rem 0 0}

/* The calendar separates confirmed historical dates from upcoming venues. */
.agenda{background:var(--paper);padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem)}
.agenda-heading,.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:3rem;margin-bottom:3.5rem}
.agenda-heading h2,.gallery-heading h2{font-size:clamp(3.5rem,6vw,6.7rem)}
.agenda-heading>p,.gallery-heading>p{max-width:370px;margin:0 0 .4rem;font-size:1rem}
.agenda-current{display:grid;grid-template-columns:minmax(260px,.78fr) 1.22fr;background:var(--ink);color:var(--paper)}
.agenda-current-intro{padding:clamp(2rem,4vw,4.25rem);background:#163248;display:flex;flex-direction:column;align-items:flex-start}
.agenda-kicker{font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--yellow);font-size:.68rem}
.agenda-current-intro h3{font:400 clamp(2.7rem,4.1vw,4.4rem)/.98 var(--serif);letter-spacing:-.035em;margin:2.1rem 0 1.2rem}
.agenda-current-intro p{max-width:350px;font-size:.85rem;color:#dee7e9;margin:0 0 2.5rem}
.agenda-current-intro a{border-bottom:1px solid var(--yellow);padding-bottom:.4rem;font-size:.72rem;font-weight:800;color:var(--yellow);margin-top:auto}
.agenda-current-intro a span{margin-left:.5rem}
.agenda-places{padding:1.5rem clamp(2rem,4vw,4.5rem);margin:0;list-style:none;display:grid;align-content:center}
.agenda-places li{display:grid;grid-template-columns:40px minmax(150px,1fr) auto;gap:1rem;align-items:center;min-height:82px;border-bottom:1px solid rgba(255,255,255,.2)}
.agenda-places li:last-child{border-bottom:0}
.agenda-places li>span{font-size:.65rem;font-weight:800;color:var(--yellow)}
.agenda-places strong{font:400 clamp(1.25rem,2vw,1.9rem) var(--serif)}
.agenda-places small{text-align:right;color:#bbced4;font-size:.68rem}
.agenda-past-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-top:clamp(4rem,7vw,7rem);margin-bottom:2rem}
.agenda-past-heading h3{font:400 clamp(2.6rem,4.2vw,4.8rem)/1 var(--serif);letter-spacing:-.04em;margin:0}
.agenda-past-heading h3 em{color:var(--sun);font-style:normal}
.agenda-past-heading>p{max-width:280px;font-size:.79rem;margin:0}
.agenda-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem}
.event-card{background:var(--ivory);min-width:0;display:flex;flex-direction:column}
.event-card>img{width:100%;height:250px;display:block;object-fit:cover}
.event-card-copy{padding:1.6rem;display:flex;flex-direction:column;flex:1;align-items:flex-start}
.event-card-copy>span{text-transform:uppercase;font-weight:800;letter-spacing:.1em;color:#806100;font-size:.63rem}
.event-card h4{font:400 1.8rem/1.07 var(--serif);margin:.8rem 0 1.5rem}
.event-card p{font-size:.83rem;font-weight:800;margin:auto 0 1.2rem}
.event-card a{font-size:.7rem;font-weight:800;text-decoration:underline;text-underline-offset:4px}
.event-card a:hover{color:#806100}

/* Complete supplied photo library, loaded on demand and displayed in a lightbox. */
.gallery{padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem);background:var(--ivory)}
.gallery-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.gallery-filters button{background:transparent;border:1px solid var(--line);color:var(--ink);font-size:.72rem;font-weight:800;padding:.8rem 1.1rem;transition:background .2s,color .2s}
.gallery-filters button:hover,.gallery-filters button.is-active{background:var(--ink);color:var(--paper)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.gallery-card{display:block;position:relative;border:0;padding:0;background:var(--ink);color:var(--paper);overflow:hidden;text-align:left;aspect-ratio:1.08;text-decoration:none}
.gallery-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}
.gallery-card:hover img,.gallery-card:focus-visible img{transform:scale(1.05)}
.gallery-card:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(12,34,51,.75));pointer-events:none}
.gallery-card span{position:absolute;z-index:1;bottom:1.3rem;left:1.4rem;right:1.4rem;font:400 clamp(1.3rem,2vw,2rem)/1.1 var(--serif);text-shadow:0 1px 5px rgba(0,0,0,.3)}
.gallery-actions{text-align:center;margin-top:2.5rem}
[data-gallery-more][hidden]{display:none!important}
.gallery-dialog{padding:0;border:0;background:var(--ink);color:white;width:min(92vw,980px);max-height:90vh;box-shadow:0 20px 80px rgba(0,0,0,.4)}
.gallery-dialog::backdrop{background:rgba(3,17,29,.88)}
.gallery-dialog img{width:100%;height:auto;max-height:78vh;object-fit:contain;display:block}
.gallery-dialog p{padding:.8rem 1.2rem;margin:0;font-size:.8rem}
.gallery-dialog button{position:absolute;right:.8rem;top:.8rem;border:0;background:var(--paper);color:var(--ink);width:42px;height:42px;font-size:1.7rem;line-height:1;z-index:2}
:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
@media(max-width:1050px){.site-header{height:76px}.brand-logo{height:68px;width:148px}.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:.6rem}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:2px}.main-nav{position:absolute;top:76px;left:0;right:0;background:var(--ink);color:var(--paper);border-bottom:1px solid rgba(255,255,255,.2);display:grid;gap:0;padding:1rem var(--pad);transform:translateY(-160%);transition:transform .3s;box-shadow:0 12px 20px rgba(12,34,51,.2)}.main-nav.is-open{transform:translateY(0)}.main-nav a{padding:.75rem 0}.nav-cta{padding:1rem!important;text-align:center;margin:.7rem 0}}
@media(max-width:850px){.agenda-heading,.gallery-heading,.agenda-past-heading{display:block}.agenda-heading>p,.gallery-heading>p,.agenda-past-heading>p{margin-top:1.5rem}.agenda-current{grid-template-columns:1fr}.agenda-places li{grid-template-columns:32px 1fr auto}.agenda-archive{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.agenda-heading h2,.gallery-heading h2{font-size:3.5rem}.agenda-places{padding:1rem 1.5rem}.agenda-places li{grid-template-columns:25px 1fr;gap:.2rem .8rem;padding:1rem 0}.agenda-places li small{grid-column:2;text-align:left}.agenda-archive,.gallery-grid{grid-template-columns:1fr}.event-card>img{height:240px}.gallery-card{aspect-ratio:1.1}.gallery-filters{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.5rem;margin-right:calc(var(--pad)*-1)}.gallery-filters button{flex:none}.site-footer .brand-logo{width:120px}}

/* Motion-led homepage: actual event footage, with native video controls. */
.hero-lantern-video{background:#081722;overflow:hidden}
.hero-lantern-video:after{background:linear-gradient(180deg,rgba(3,16,25,.62),transparent 32%,transparent 67%,rgba(3,16,25,.28))}
.hero-lantern-video video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;background:#081722}
.hero-lantern-video video[hidden]{display:none!important}
.video-caption{position:absolute;z-index:3;top:1.5rem;left:1.6rem;color:var(--paper);max-width:50%;display:grid;gap:.15rem;pointer-events:none;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.video-caption-label{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--yellow)}
.video-caption strong{font:400 clamp(1.2rem,1.9vw,1.9rem)/1.1 var(--serif)}
.video-controls{position:absolute;z-index:3;top:1.2rem;right:1.3rem;color:var(--paper);display:flex;align-items:center;gap:.6rem;background:rgba(8,23,34,.55);backdrop-filter:blur(10px);padding:.35rem}
.video-controls button{border:1px solid rgba(255,255,255,.42);background:transparent;color:var(--paper);width:34px;height:34px;font-size:1.1rem;line-height:1}
.video-controls button:hover{background:var(--yellow);color:var(--ink)}
.video-controls span{font-size:.63rem;font-weight:800;letter-spacing:.08em;white-space:nowrap}

/* Seasonal agenda using dates in the Codecom 2026 programme. */
.agenda-season-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin:-.5rem 0 1.6rem}
.agenda-season-nav a{border:1px solid var(--line);padding:.7rem 1rem;font-size:.7rem;font-weight:800;transition:background .2s,color .2s}
.agenda-season-nav a:hover,.agenda-season-nav a:focus-visible{background:var(--ink);color:white}
.agenda-notice{background:#eaf0e8;border-left:3px solid #436e55;padding:1rem 1.25rem;color:#284331;font-size:.79rem;margin:0}
.agenda-season{padding-top:2rem;scroll-margin-top:1.5rem}
.agenda-season .agenda-past-heading{margin-top:clamp(2.5rem,5vw,5rem)}
.agenda-archive--two{grid-template-columns:repeat(2,minmax(0,1fr))}
.agenda-archive--two .event-card>img{height:340px}
.agenda-archive--two .event-card h4{font-size:2.1rem}
.nature-event{background:#335a46;color:var(--paper);min-height:300px;padding:clamp(2rem,4vw,4rem);display:grid;grid-template-columns:minmax(180px,.55fr) 1fr auto;gap:clamp(2rem,5vw,6rem);align-items:center;position:relative;overflow:hidden}
.nature-event-date{display:grid;gap:.7rem;border-right:1px solid rgba(255,255,255,.28);height:100%;align-content:center}
.nature-event-date span{color:#d2e5a5;font-size:.7rem;font-weight:800;letter-spacing:.15em}
.nature-event-date strong{font:400 clamp(2.2rem,4vw,4.8rem)/.96 var(--serif);letter-spacing:-.04em}
.nature-event h4{font:400 clamp(2.5rem,4vw,4.5rem)/1 var(--serif);margin:1rem 0}
.nature-event p{max-width:470px;font-size:.87rem;margin:0}
.nature-event .agenda-kicker{color:#d2e5a5}
.nature-ornament{font-size:clamp(6rem,11vw,12rem);line-height:1;color:rgba(219,238,184,.15)}
.winter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.winter-event{min-height:205px;background:var(--ivory);padding:clamp(1.5rem,2.2vw,2.5rem);display:flex;flex-direction:column}
.winter-event>span{color:#806100;text-transform:uppercase;letter-spacing:.13em;font-size:.62rem;font-weight:800}
.winter-event h4{font:400 clamp(1.6rem,2.5vw,2.5rem)/1.05 var(--serif);margin:1.5rem 0 .7rem}
.winter-event p{font-size:.74rem;font-weight:800;margin:auto 0 0}
.agenda-festival-link{text-align:right;font-size:.8rem;margin:1.5rem 0 0}
.agenda-festival-link a{text-decoration:underline;text-underline-offset:4px;font-weight:800;color:#806100}
.agenda-history{margin-top:clamp(4rem,6vw,6rem);border-top:1px solid var(--line);padding-top:1.3rem;scroll-margin-top:2rem}
.agenda-history summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;font:400 clamp(1.65rem,2.7vw,2.6rem) var(--serif);list-style:none}
.agenda-history summary::-webkit-details-marker{display:none}
.agenda-history summary span{font-family:var(--sans);color:var(--sun)}
.agenda-history[open] summary span{transform:rotate(45deg)}
.agenda-history>p{font-size:.78rem;margin:.6rem 0 1.5rem}

/* Festival as its own editorial destination, distinct from the village calendar. */
.lantern-feature{background:#10243b;color:var(--paper);display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2.5rem,7vw,8rem);align-items:center;padding-top:clamp(6rem,10vw,10rem);padding-bottom:clamp(6rem,10vw,10rem)}
.lantern-feature h2{font-size:clamp(3.7rem,6vw,7rem);margin:0 0 2.2rem}
.lantern-feature h2 em{color:var(--yellow)}
.lantern-feature-copy>p:not(.eyebrow):not(.lantern-disclaimer){max-width:520px;font-size:1rem}
.lantern-date{margin:2.5rem 0;display:grid;gap:.5rem;border-top:1px solid rgba(255,255,255,.26);padding-top:1.4rem}
.lantern-date span{text-transform:uppercase;letter-spacing:.13em;color:var(--yellow);font-size:.65rem;font-weight:800}
.lantern-date strong{font:400 clamp(1.5rem,2.5vw,2.4rem) var(--serif)}
.lantern-disclaimer{color:#c7d5dc;font-size:.7rem;line-height:1.5;max-width:490px;margin:2rem 0 0}
.lantern-feature-art{height:min(58vw,680px);min-height:440px;position:relative}
.lantern-feature-art img{position:absolute;display:block;object-fit:cover}
.lantern-photo-primary{width:79%;height:85%;top:0;right:0}
.lantern-photo-secondary{width:47%;height:53%;bottom:0;left:0;border:9px solid #10243b}
.lantern-feature-art span{position:absolute;bottom:1.1rem;right:.1rem;font-size:.63rem;text-transform:uppercase;letter-spacing:.12em;color:var(--yellow);font-weight:800}
@media(max-width:850px){.winter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nature-event{grid-template-columns:1fr 1.6fr}.nature-ornament{display:none}.lantern-feature{grid-template-columns:1fr}.lantern-feature-art{height:550px}.agenda-archive--two .event-card>img{height:260px}}
@media(max-width:600px){.video-caption{top:1rem;left:1rem;max-width:48%}.video-caption-label{font-size:.52rem}.video-caption strong{font-size:1rem}.video-controls{top:.75rem;right:.7rem;gap:.2rem;padding:.2rem}.video-controls button{width:29px;height:29px}.video-controls span{font-size:.55rem}.hero-lantern-video{min-height:390px}.agenda-archive--two,.winter-grid{grid-template-columns:1fr}.agenda-archive--two .event-card>img{height:245px}.nature-event{grid-template-columns:1fr;gap:1.5rem}.nature-event-date{border-right:0;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1.5rem}.nature-event-date strong{font-size:3rem}.lantern-feature-art{height:390px;min-height:0}.lantern-feature h2{font-size:3.7rem}.agenda-season-nav{overflow-x:auto;flex-wrap:nowrap;margin-right:calc(var(--pad)*-1);padding-bottom:.5rem}.agenda-season-nav a{white-space:nowrap}}

/* Multi-page information architecture supplied by Codecom. */
.main-nav{gap:clamp(.65rem,1vw,1.4rem);font-size:.68rem}
.main-nav>a[aria-current="page"]{color:var(--yellow)}
.nav-dropdown{display:flex;align-items:center;position:relative;white-space:nowrap}
.nav-dropdown>a{padding:.9rem 0}
.nav-dropdown>button{border:0;background:transparent;color:var(--yellow);padding:.5rem .3rem .5rem .5rem;font-size:1.15rem;line-height:1}
.nav-dropdown-menu{display:none;position:absolute;z-index:30;top:100%;left:0;min-width:240px;background:var(--ink);border:1px solid rgba(255,255,255,.25);box-shadow:0 14px 28px rgba(0,0,0,.2);padding:.55rem}
.nav-dropdown.is-open .nav-dropdown-menu{display:grid}
.nav-dropdown-menu a{padding:.75rem .9rem;color:var(--paper);font-size:.75rem}
.nav-dropdown-menu a:hover,.nav-dropdown-menu a:focus-visible{background:#294960;color:var(--yellow)}
@media(max-width:1300px){.site-header{height:76px}.brand-logo{height:68px;width:148px}.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:.6rem}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:2px}.main-nav{position:absolute;top:76px;left:0;right:0;background:var(--ink);color:var(--paper);border-bottom:1px solid rgba(255,255,255,.2);display:grid;gap:0;padding:1rem var(--pad);transform:translateY(-160%);transition:transform .3s;box-shadow:0 12px 20px rgba(12,34,51,.2);max-height:calc(100vh - 76px);overflow-y:auto}.main-nav.is-open{transform:translateY(0)}.main-nav>a{padding:.7rem 0}.nav-dropdown{display:grid;grid-template-columns:1fr auto}.nav-dropdown>a{padding:.7rem 0}.nav-dropdown-menu{position:static;grid-column:1/-1;box-shadow:none;border:0;border-left:1px solid var(--yellow);min-width:0;margin:.2rem 0 .7rem .6rem}.nav-cta{padding:.8rem 1rem!important;text-align:center;margin:.6rem 0}}

/* Distinct, crawlable pages for Codecom's requested information architecture. */
.page-hero{min-height:430px;background:var(--ivory);display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(2rem,6vw,7rem);padding-top:clamp(4rem,7vw,7rem);padding-bottom:clamp(4rem,7vw,7rem)}
.page-hero h1{font:400 clamp(3.6rem,6vw,7.2rem)/.98 var(--serif);letter-spacing:-.055em;margin:0 0 1.6rem;max-width:900px}
.page-hero p:not(.eyebrow){max-width:650px;font-size:clamp(1rem,1.5vw,1.35rem);margin:0}
.page-hero>img{width:100%;height:min(32vw,400px);min-height:270px;object-fit:cover;display:block}
.page-section{background:var(--paper);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem)}
.page-section h2{font-size:clamp(2.8rem,5vw,5.5rem);margin:0 0 2rem}
.page-section p{font-size:.98rem;max-width:650px}
.page-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,8rem);align-items:center}
.page-split p{margin:0 0 1.4rem}
.page-split .button{margin-top:1.5rem}
.page-image{min-height:440px;height:100%}
.page-image img{width:100%;height:100%;max-height:670px;min-height:440px;object-fit:cover;display:block}
.page-tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.page-tile-grid--two{margin-top:3rem}
.page-tile{display:block;background:var(--ivory);padding-bottom:1.8rem;transition:transform .25s}
.page-tile:hover{transform:translateY(-5px)}
.page-tile img{display:block;width:100%;height:340px;object-fit:cover;margin-bottom:1.5rem}
.page-tile span{display:flex;align-items:center;justify-content:space-between;padding:0 1.6rem;font:400 clamp(1.6rem,2.5vw,2.5rem)/1.08 var(--serif)}
.page-tile span b{font:400 1.3rem var(--sans);color:var(--sun)}
.page-tile p{padding:0 1.6rem;margin:.8rem 0 0;font-size:.84rem}
.place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);list-style:none;margin:4rem 0 0;padding:0}
.place-grid li{background:var(--ivory);min-height:150px;padding:1.8rem;display:flex;flex-direction:column;justify-content:space-between}
.place-grid li span{font-size:.65rem;font-weight:800;color:#806100}
.place-grid li strong{font:400 1.8rem var(--serif)}
.page-note{margin-top:2rem!important;font-size:.78rem!important;color:#54616b}
.page-note a{color:#806100;text-decoration:underline;text-underline-offset:3px}
.festival-cities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.festival-cities article{background:var(--ivory);padding:clamp(1.5rem,2.5vw,2.8rem);min-height:360px;display:flex;flex-direction:column}
.festival-cities article>span{color:#806100;font-size:.66rem;text-transform:uppercase;font-weight:800;letter-spacing:.13em}
.festival-cities h2{font-size:clamp(2.5rem,3.8vw,4rem);margin:1.5rem 0 1rem}
.festival-cities p{font-size:.86rem;margin:0 0 1.5rem}
.festival-cities a{font-size:.74rem;font-weight:800;color:#806100;margin-top:auto;text-decoration:underline;text-underline-offset:4px}
.festival-archives{margin-top:clamp(5rem,8vw,8rem)}
.festival-archives>div:first-child p:not(.eyebrow){max-width:700px;margin:0 0 2rem}
.festival-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.festival-image-grid figure{margin:0;background:var(--ivory)}
.festival-image-grid img{display:block;width:100%;height:380px;object-fit:cover}
.festival-image-grid figcaption{padding:.8rem 1rem;font-size:.7rem;font-weight:800;color:#425060}
@media(max-width:850px){.page-hero,.page-split{grid-template-columns:1fr}.page-hero>img{height:340px}.page-image,.page-image img{min-height:340px}.festival-cities{grid-template-columns:1fr}.festival-cities article{min-height:0}.place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page-hero h1{font-size:3.6rem}.page-hero>img{height:260px;min-height:0}.page-tile-grid,.festival-image-grid,.place-grid{grid-template-columns:1fr}.page-tile img,.festival-image-grid img{height:260px}.page-section h2{font-size:3rem}.place-grid li{min-height:105px}.page-image,.page-image img{min-height:280px}}

/* First-party Codecom presentation: service métiers and Christmas retail brand. */
.page-services{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(4rem,7vw,7rem)}
.page-services article{background:var(--ivory);padding:1.7rem;min-height:260px}
.page-services span{font-size:.7rem;letter-spacing:.13em;color:#806100;font-weight:800}
.page-services h3{font:400 clamp(1.5rem,2vw,2.2rem)/1.05 var(--serif);margin:2.3rem 0 .8rem}
.page-services p{font-size:.75rem;margin:0}
.artisan-note{margin-top:clamp(5rem,8vw,8rem);padding:clamp(2rem,4vw,4rem);background:var(--ivory)}
.artisan-note h2{max-width:750px}
.artisan-note a{font-size:.8rem;text-decoration:underline;text-underline-offset:4px;font-weight:800;color:#806100}
@media(max-width:1050px){.page-services{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.page-services{grid-template-columns:1fr}.page-services article{min-height:160px}.page-services h3{margin:1rem 0 .5rem}}

/* Larger information architecture: two-tier desktop header instead of tiny nav labels. */
@media(min-width:1151px){
  .site-header{height:128px;display:grid;grid-template-columns:1fr;grid-template-rows:72px 56px;padding:0}
  .site-header .brand{margin-left:var(--pad);justify-self:start}
  .site-header .menu-toggle{display:none}
  .site-header .main-nav{grid-row:2;position:static;top:auto;left:auto;right:auto;display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:0 var(--pad);margin:0;width:100%;max-height:none;overflow:visible;transform:none;transition:none;box-shadow:none;border:0;border-top:1px solid rgba(255,255,255,.17);font-size:.9rem;line-height:1.1}
  .main-nav>a:not(.nav-cta),.nav-dropdown>a{white-space:nowrap;padding:.65rem 0}
  .nav-dropdown{display:flex;grid-template-columns:none}
  .nav-dropdown-menu{position:absolute;grid-column:auto;top:100%;left:0;min-width:270px;margin:0;padding:.6rem;border:1px solid rgba(255,255,255,.25);box-shadow:0 14px 28px rgba(0,0,0,.2)}
  .nav-dropdown-menu a{font-size:.87rem;padding:.85rem .9rem}
  .nav-cta{margin:0!important;padding:.65rem .85rem!important;white-space:nowrap}
}
@media(max-width:1150px){
  .site-header .main-nav{font-size:1rem}
  .site-header .main-nav>a,.site-header .nav-dropdown>a{padding:.85rem 0}
  .nav-dropdown-menu a{font-size:.96rem;padding:.85rem}
  .main-nav:not(.is-open){visibility:hidden}
  .main-nav.is-open{visibility:visible}
}

/* Videos: stage, native ratio, and controls outside the picture. */
.hero-lantern-video{height:auto;min-height:0;margin-right:0;overflow:visible;background:transparent}
.hero-lantern-video:after{content:none}
.video-stage{position:relative;width:100%;aspect-ratio:16 / 10;background:#07141f;overflow:hidden}
.hero-lantern-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#07141f}
.hero-lantern-video .hero-sticker{display:none}
.video-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;min-height:79px;padding:1rem 1.25rem;background:var(--ink);color:var(--paper)}
.video-toolbar .video-caption{position:static;max-width:none;display:grid;gap:.1rem;text-shadow:none;color:var(--paper)}
.video-toolbar .video-caption strong{font-size:1.1rem}
.video-toolbar .video-controls{position:static;padding:0;gap:.55rem;background:none;backdrop-filter:none;flex:none}
.video-toolbar .video-controls button{width:40px;height:40px}
@media(max-width:850px){.hero-lantern-video{margin-left:0;margin-right:0;min-height:0}}
@media(max-width:600px){.hero-lantern-video{min-height:0}.video-stage{aspect-ratio:16 / 10}.video-toolbar{padding:.8rem 1rem;gap:.75rem;min-height:72px}.video-toolbar .video-caption{max-width:55%}.video-toolbar .video-caption strong{font-size:.92rem}.video-toolbar .video-controls{gap:.25rem}.video-toolbar .video-controls button{width:32px;height:32px}}

/* Editorial media are displayed in full, not cropped to uniform boxes. */
.gallery-grid{display:block;columns:3;column-gap:1rem}
.gallery-card{width:100%;aspect-ratio:auto;break-inside:avoid;display:block;margin:0 0 1rem}
.gallery-card img{width:100%;height:auto;object-fit:contain;transform:none}
.gallery-card:hover img,.gallery-card:focus-visible img{transform:none}
.event-card>img,.page-hero>img,.page-image img,.page-tile img,.expertise-card--photo>img,.agency-art>img{object-fit:contain;background:#10243b}
.lantern-feature-art{height:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem;align-items:center}
.lantern-feature-art img{position:static;width:100%;height:auto;max-height:610px;object-fit:contain;background:#10243b}
.lantern-feature-art .lantern-photo-primary{grid-column:1/-1;width:100%;height:auto}
.lantern-feature-art .lantern-photo-secondary{width:100%;height:auto;border:0}
.lantern-feature-art span{position:static;grid-column:2;align-self:center;justify-self:start}
.festival-image-grid{align-items:start}
.festival-image-grid img{width:100%;height:auto;object-fit:contain}
@media(max-width:850px){.gallery-grid{display:block;columns:2}.lantern-feature-art{height:auto;min-height:0}}
@media(max-width:600px){.gallery-grid{display:block;columns:1}.lantern-feature-art{height:auto;grid-template-columns:1fr}.lantern-feature-art .lantern-photo-primary,.lantern-feature-art span{grid-column:1}.festival-image-grid img{height:auto}.page-hero>img,.page-image img,.page-tile img{object-fit:contain}}

/* Festival storytelling: original ratios and visible photo credits. */
.festival-lead{background:var(--paper);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
.festival-lead-copy{max-width:940px;margin-bottom:3rem}
.festival-lead h2,.festival-history h2,.festival-photos h2,.festival-outlook h2{font-size:clamp(3.2rem,6vw,6.5rem);margin:0 0 1.5rem}
.festival-lead-copy>p:not(.eyebrow){max-width:680px;font-size:1.06rem}
.festival-poster{margin:0;background:#10243b}
.festival-poster img{display:block;width:100%;height:auto;object-fit:contain}
.festival-poster figcaption{padding:.85rem 1.2rem;color:#d2dce3;font-size:.76rem}
.festival-film{background:#10243b;color:var(--paper);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem);display:grid;grid-template-columns:minmax(260px,.68fr) minmax(0,1.32fr);gap:clamp(2rem,5vw,6rem);align-items:center}
.festival-film h2{font-size:clamp(3rem,4.4vw,5.4rem);margin:0 0 1.5rem}
.festival-film h2 em{color:var(--yellow)}
.festival-film p:not(.eyebrow){font-size:.96rem;max-width:420px}
.festival-film video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#07141f;box-shadow:0 20px 55px rgba(0,0,0,.25)}
.festival-history{background:var(--ivory);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
.festival-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:3rem;background:var(--line);border:1px solid var(--line)}
.festival-timeline article{background:var(--paper);padding:clamp(1.3rem,2.3vw,2.5rem);display:flex;flex-direction:column;min-height:320px}
.festival-timeline article>span{font-size:.63rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:#806100}
.festival-timeline h3{font:400 clamp(1.7rem,2.35vw,2.7rem)/1 var(--serif);margin:1.5rem 0}
.festival-timeline p{font-size:.82rem;margin:0 0 1rem}
.festival-timeline p:last-of-type{font-weight:800;margin-top:auto}
.festival-timeline a{font-size:.76rem;font-weight:800;text-decoration:underline;text-underline-offset:4px;color:#806100}
.festival-timeline .festival-timeline-current{background:#24466a;color:var(--paper)}
.festival-timeline-current>span,.festival-timeline-current a{color:var(--yellow)!important}
.festival-source{max-width:740px;font-size:.74rem;margin:1.5rem 0 0}
.festival-source a{text-decoration:underline;text-underline-offset:3px}
.festival-photos{background:var(--paper);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
.festival-photos-heading{max-width:800px;margin-bottom:3rem}
.festival-photos-heading>p:not(.eyebrow){max-width:650px;font-size:.93rem}
.festival-photo-wall{columns:2;column-gap:1rem}
.festival-photo-wall figure{break-inside:avoid;margin:0 0 1rem;background:var(--ivory)}
.festival-photo-wall img,.festival-concepts img{display:block;width:100%;height:auto;object-fit:contain}
.festival-photo-wall figcaption,.festival-concepts figcaption{font-size:.75rem;font-weight:700;padding:.8rem 1rem;color:#425060}
.festival-concepts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-top:clamp(4rem,7vw,7rem);align-items:start}
.festival-concepts h3{font:400 clamp(2.5rem,4vw,4.5rem)/1 var(--serif);margin:0 0 1rem}
.festival-concepts h3 em{color:var(--sun);font-style:normal}
.festival-concepts p:not(.eyebrow){font-size:.82rem;max-width:290px}
.festival-concepts figure{margin:0;background:var(--ivory)}
.festival-outlook{background:#10243b;color:var(--paper);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem);display:flex;justify-content:space-between;align-items:end;gap:3rem}
.festival-outlook span{color:var(--yellow);text-transform:uppercase;font-size:.7rem;font-weight:800;letter-spacing:.15em}
.festival-outlook h2{max-width:900px;margin:1.5rem 0}
.festival-outlook h2 em{color:var(--yellow)}
.festival-outlook p{max-width:600px;font-size:.9rem}
.festival-outlook .button{width:auto;flex:none}
@media(max-width:950px){.festival-film{grid-template-columns:1fr}.festival-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-concepts{grid-template-columns:1fr 1fr}.festival-concepts>div{grid-column:1/-1}.festival-outlook{display:block}.festival-outlook .button{margin-top:1.5rem}}
@media(max-width:600px){.festival-lead h2,.festival-history h2,.festival-photos h2,.festival-outlook h2{font-size:3.2rem}.festival-photo-wall{columns:1}.festival-timeline,.festival-concepts{grid-template-columns:1fr}.festival-concepts>div{grid-column:1}.festival-timeline article{min-height:0}.festival-poster figcaption{font-size:.68rem}.festival-outlook .button{width:100%}}

/* Christmas village image archive: a non-cropping editorial photo wall. */
.noel-photos{background:var(--ivory);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
.noel-photos-intro{max-width:850px;margin-bottom:3rem}
.noel-photos h2{font-size:clamp(3.2rem,6vw,6.5rem);margin:0 0 1.5rem}
.noel-photos-intro>p:not(.eyebrow){max-width:680px;font-size:.92rem}
.noel-photo-wall{columns:3;column-gap:1rem}
.noel-photo-wall figure{break-inside:avoid;margin:0 0 1rem;background:var(--paper)}
.noel-photo-wall img{display:block;width:100%;height:auto;object-fit:contain}
.noel-photo-wall figcaption{font-size:.76rem;font-weight:700;color:#425060;padding:.8rem 1rem}
.noel-qr{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-top:clamp(4rem,6vw,6rem);padding:clamp(1.5rem,3vw,3rem);background:var(--paper)}
.noel-qr h3{font:400 clamp(2rem,3.5vw,3.6rem)/1 var(--serif);margin:0 0 1rem}
.noel-qr p:not(.eyebrow){font-size:.83rem;max-width:470px}
.noel-qr img{width:min(190px,35vw);height:auto;flex:none}
@media(min-width:1151px){.site-header .main-nav{font-size:clamp(.94rem,1.1vw,1.05rem);font-weight:800}}
@media(max-width:850px){.noel-photo-wall{columns:2}}
@media(max-width:600px){.noel-photo-wall{columns:1}.noel-photos h2{font-size:3.2rem}.noel-qr{display:block}.noel-qr img{width:170px;max-width:100%;margin-top:1.25rem}}

/* Additional event-specific photography from the Codecom archive. */
.noel-archives,.gastronomie-photos{background:var(--paper);padding-top:clamp(5rem,8vw,8rem);padding-bottom:clamp(5rem,8vw,8rem)}
.noel-archives{background:#e9e5dd}
.noel-archives h2,.gastronomie-photos h2{font-size:clamp(3.2rem,6vw,6.5rem);margin:0 0 1.5rem}
.noel-archives h3{font:400 clamp(2rem,3vw,3.2rem)/1 var(--serif);margin:4rem 0 1.5rem}
.noel-archives h3:first-of-type{margin-top:1.5rem}
.noel-archives .noel-photo-wall figure{background:var(--paper)}
.gastronomie-photo-wall{columns:3;column-gap:1rem}
.gastronomie-photo-wall figure{break-inside:avoid;margin:0 0 1rem;background:var(--ivory)}
.gastronomie-photo-wall img{width:100%;height:auto;object-fit:contain;display:block}
.gastronomie-photo-wall figcaption{font-size:.76rem;font-weight:700;color:#425060;padding:.8rem 1rem}
@media(max-width:850px){.gastronomie-photo-wall{columns:2}}
@media(max-width:600px){.gastronomie-photo-wall{columns:1}.noel-archives h2,.gastronomie-photos h2{font-size:3.2rem}}

/* Event cards show archival or illustrative photos without suggesting they are 2026 footage. */
.winter-event{min-height:370px;padding:clamp(1.1rem,1.8vw,2rem)}
.winter-event>img{display:block;width:100%;height:180px;object-fit:contain;background:#14273a;margin:1rem 0 .45rem}
.winter-event>small{font-size:.62rem;font-weight:800;color:#566674;line-height:1.35}
.winter-event h4{margin:1rem 0 .7rem}
.nature-visual{width:min(220px,18vw);margin:0}
.nature-visual img{width:100%;height:220px;object-fit:contain;display:block;background:#224735}
.nature-visual figcaption{font-size:.67rem;color:#d2e5a5;padding:.45rem 0;line-height:1.3}
@media(max-width:850px){.nature-visual{grid-column:1/-1;width:min(100%,420px)}.nature-visual img{height:240px}}
@media(max-width:600px){.winter-event{min-height:0}.winter-event>img{height:220px}.nature-visual img{height:220px}}

/* Sun-yellow identity: bright surfaces, readable ochre lettering on ivory. */
.hero h1 em,h2 em,.agenda-past-heading h3 em,.festival-concepts h3 em{color:var(--sun-ink)}
.eyebrow,.text-link span,.engagement>span,.engagement b,.agenda-history summary span,.page-tile span b{color:var(--sun-ink)}
.eyebrow-light,.stats .eyebrow,.lantern-feature .eyebrow,.festival-film .eyebrow,.festival-outlook .eyebrow{color:var(--yellow)}
.button-coral{background:var(--sun);color:var(--ink)}
.button-coral:hover{background:var(--ink);color:var(--paper)}
.expertise-card--large{background:var(--sun);color:var(--ink)}
.expertise-card--large h3 em,.expertise-card--large a span{color:var(--ink)}
.expertise-card:not(.expertise-card--large):not(.expertise-card--photo) h3 em{color:var(--sun-ink)}
.art-ring--two{border-color:var(--sun-ink)}
.art-dot{box-shadow:0 0 0 15px rgba(12,34,51,.25)}
.contact{background:var(--sun);color:var(--ink)}
.contact .eyebrow,.contact h2 em,.contact-details a:hover{color:var(--ink)}
.contact-details a:hover{text-decoration:underline;text-underline-offset:4px}
.form-heading span,.form-status:not(.success){color:var(--sun-ink)}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--sun-ink)}
/* Only the lantern film appears on Home; its square frame is fully visible. */
.hero-lantern-video .video-stage{aspect-ratio:4 / 3}
.hero-lantern-video .video-stage video{object-fit:contain}
.video-more{flex:none;font-size:.72rem;font-weight:800;color:var(--yellow);text-decoration:underline;text-underline-offset:4px}
.video-more:hover{color:var(--paper)}
.video-more span{font-size:1rem;margin-left:.3rem}
@media(max-width:850px){.hero-lantern-video .video-stage{aspect-ratio:1 / 1}}
@media(max-width:600px){.hero-lantern-video .video-stage{aspect-ratio:1 / 1}.video-toolbar .video-caption{max-width:58%}.video-more{max-width:38%;font-size:.66rem;line-height:1.35}}

:root{--sun-heading:#a17a00}
.hero h1 em,h2 em,.agenda-past-heading h3 em,.festival-concepts h3 em{color:var(--sun-heading)}

/* Brand stories: the supplied Intermarché and chefs images keep their full dimensions. */
.brands-intro,.brands-feature,.brands-case,.brands-geely,.brands-formats{padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem)}
.brands-intro{background:var(--paper)}
.brands-intro h2,.brands-feature h2,.brands-case h2,.brands-editorial h2,.brands-geely h2,.brands-formats h2{font-size:clamp(3.1rem,6vw,6.4rem);margin:0 0 1.6rem}
.brands-intro>p:not(.eyebrow),.brands-feature-heading>p:not(.eyebrow),.brands-case-heading>p:not(.eyebrow),.brands-formats-heading>p:not(.eyebrow){max-width:800px;font-size:clamp(.95rem,1.25vw,1.09rem)}
.brands-intro>p.brands-cover-note{max-width:740px;margin-top:1.2rem;padding-left:1rem;border-left:3px solid var(--sun);font-size:.78rem;color:#425060}
.brands-quicklinks{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:3rem}
.brands-quicklinks a{border:1px solid var(--ink);padding:.7rem 1rem;font-size:.76rem;font-weight:800}
.brands-quicklinks a:hover,.brands-quicklinks a:focus-visible{background:var(--ink);color:var(--paper)}
.brands-quicklinks span{color:var(--sun-ink)}
.brands-intermarche{background:var(--ivory)}
.brands-feature-heading,.brands-case-heading,.brands-formats-heading{max-width:900px;margin-bottom:clamp(2rem,4vw,4rem)}
.brands-photo-wall{columns:2;column-gap:1rem}
.brands-photo-wall figure{break-inside:avoid;margin:0 0 1rem;background:var(--paper)}
.brands-photo-wall img{display:block;width:100%;height:auto;object-fit:contain}
.brands-photo-wall figcaption{padding:.8rem 1rem;font-size:.76rem;font-weight:700;color:#425060}
.brands-photo-wall figcaption a,.brands-editorial figcaption a{text-decoration:underline;text-underline-offset:3px}
.brands-case{background:var(--paper)}
.brands-defile-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);padding:1px;margin:0;list-style:none}
.brands-defile-facts li{background:var(--ivory);padding:clamp(1.1rem,2vw,2rem);min-width:0}
.brands-defile-facts strong{display:block;font:400 clamp(1.65rem,2.5vw,2.8rem)/1 var(--serif);margin-bottom:.7rem}
.brands-defile-facts span{font-size:.76rem;line-height:1.4}
.brands-defile-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(2rem,4vw,4rem)}
.brands-defile-gallery figure{margin:0;min-width:0;background:var(--ivory)}
.brands-defile-gallery img{display:block;width:100%;height:auto;object-fit:contain}
.brands-defile-gallery figcaption{padding:.85rem 1rem;font-size:.74rem;font-weight:700;color:#425060}
.brands-press-archive{margin-top:clamp(1.7rem,3vw,2.5rem);padding:1.1rem 1.4rem;border-left:3px solid var(--sun);background:var(--ivory)}
.brands-press-archive p{font-size:.8rem;line-height:1.5;margin:0}
.brands-press-archive a{text-decoration:underline;text-underline-offset:3px;font-weight:800}
.brands-editorial{background:var(--ink);color:var(--paper);padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.brands-editorial h2 em{color:var(--yellow)}
.brands-editorial-copy{max-width:630px}
.brands-editorial-copy p:not(.eyebrow){font-size:1rem;color:#e2e9eb}
.brands-editorial-copy>a{display:inline-block;color:var(--yellow);font-size:.8rem;font-weight:800;text-decoration:underline;text-underline-offset:4px;margin-top:1rem}
.brands-editorial figure{margin:0;background:#183449;padding:clamp(.6rem,2vw,1.5rem)}
.brands-editorial img{width:100%;height:auto;max-width:480px;display:block;margin:auto;object-fit:contain}
.brands-editorial video{display:block;width:100%;height:auto;aspect-ratio:16 / 9;object-fit:contain;background:#07141f}
.brands-editorial figcaption{padding:.8rem .2rem 0;color:#dde6ea;font-size:.72rem}
.brands-geely{background:var(--ivory)}
.brands-formats{background:var(--paper)}
.brands-formats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:2.5rem 0 2rem}
.brands-formats-grid article{background:var(--ivory);padding:clamp(1.5rem,2.4vw,2.6rem)}
.brands-formats-grid article>span{color:var(--sun-ink);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.13em}
.brands-formats-grid h3{font:400 clamp(1.7rem,2.3vw,2.6rem)/1.12 var(--serif);margin:1.5rem 0 1rem}
.brands-formats-grid p,.brands-formats-grid li{font-size:.83rem}
.brands-formats-grid ul{padding-left:1.1rem;margin:1rem 0 0}
.brands-formats-grid li{margin-bottom:.55rem}
.brands-reference-note{font-size:.76rem;max-width:800px;color:#425060;margin:0 0 2rem}
@media(max-width:850px){.brands-formats-grid,.brands-editorial{grid-template-columns:1fr}.brands-editorial figure{width:min(100%,550px)}}
@media(max-width:850px){.brands-defile-gallery,.brands-defile-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.brands-photo-wall{columns:1}.brands-defile-gallery{grid-template-columns:1fr}.brands-quicklinks{gap:.45rem}.brands-quicklinks a{font-size:.7rem}}
@media(max-width:430px){.brands-defile-facts{grid-template-columns:1fr}}

/* Two-film home selection: the lantern film keeps its square frame, the making-of uses 16:9. */
.hero-lantern-video.is-widescreen .video-stage{aspect-ratio:16 / 9}
.video-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1.25rem;align-items:center}
.video-toolbar .video-caption{min-width:0;max-width:none}
.video-toolbar .video-controls{display:flex;align-items:center}
.video-toolbar .video-controls button{border:1px solid rgba(255,255,255,.5);border-radius:0}
.video-toolbar .video-controls span{min-width:3.5rem;text-align:center;color:var(--yellow)}
.video-toolbar .video-more{white-space:nowrap}
@media(max-width:740px){.video-toolbar{grid-template-columns:minmax(0,1fr) auto;gap:.6rem}.video-toolbar .video-caption{grid-column:1}.video-toolbar .video-controls{grid-column:2}.video-toolbar .video-more{grid-column:1/-1;white-space:normal;max-width:none!important}.video-toolbar .video-caption strong{font-size:.94rem}.video-toolbar .video-controls button{width:34px;height:34px}}
@media(max-width:430px){.video-toolbar .video-controls span{min-width:2.6rem;font-size:.58rem}.video-toolbar .video-controls button{width:30px;height:30px}}

/* Mobile ergonomics: stable carousel frame and generous touch targets. */
@media(max-width:740px){
  .hero-lantern-video.is-widescreen .video-stage{aspect-ratio:1 / 1}
  .video-toolbar .video-controls{gap:.4rem}
  .video-toolbar .video-controls button{width:44px;height:44px;font-size:1.35rem}
  .video-toolbar .video-more{display:inline-flex;align-items:center;min-height:44px}
  .menu-toggle{min-width:44px;min-height:44px;justify-content:center}
  .agenda-season-nav a,.gallery-filters button{display:inline-flex;align-items:center;min-height:44px}
}
@media(max-width:480px){
  .hero{min-height:0;align-content:start;padding-top:2.6rem;gap:1.7rem}
  .hero .eyebrow{margin-bottom:1.1rem}
  .hero h1{font-size:clamp(3.1rem,12.5vw,3.85rem);line-height:.94}
  .hero-intro{font-size:1.08rem;margin:1.4rem 0 1.45rem}
  .hero-copy{padding-right:0}
  .video-toolbar{padding:.8rem .75rem;gap:.45rem}
  .video-toolbar .video-controls span{min-width:2.5rem}
}
@media(max-width:350px){
  .video-toolbar{grid-template-columns:1fr}
  .video-toolbar .video-caption,.video-toolbar .video-controls,.video-toolbar .video-more{grid-column:1}
  .video-toolbar .video-controls{justify-content:space-between}
  .video-toolbar .video-caption strong{font-size:1rem}
}

/* Gastronomy: portraits in their native orientations and videos played only by visitors. */
.gastronomie-chef,.gastronomie-films{padding-top:clamp(5rem,9vw,9rem);padding-bottom:clamp(5rem,9vw,9rem)}
.gastronomie-chef{background:var(--ivory)}
.gastronomie-chef h2,.gastronomie-films h2{font-size:clamp(3.2rem,6vw,6.5rem);margin:0 0 1.5rem}
.gastronomie-chef-portraits{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:1rem;align-items:start}
.gastronomie-chef-portraits figure{margin:0;background:var(--paper)}
.gastronomie-chef-portraits img{display:block;width:100%;height:auto;object-fit:contain}
.gastronomie-chef-portraits figcaption{font-size:.76rem;font-weight:700;color:#425060;padding:.8rem 1rem}
.gastronomie-films{background:var(--ink);color:var(--paper);scroll-margin-top:1.5rem}
.gastronomie-films h2 em{color:var(--yellow)}
.gastronomie-film-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.gastronomie-film-grid article{background:#193447;min-width:0}
.gastronomie-film-grid video{display:block;width:100%;aspect-ratio:16 / 9;object-fit:contain;background:#07141f}
.gastronomie-film-grid article>div{padding:1.2rem 1.4rem 1.6rem}
.gastronomie-film-grid span{font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;color:var(--yellow);font-weight:800}
.gastronomie-film-grid h3{font:400 clamp(1.65rem,2.5vw,2.4rem)/1.12 var(--serif);margin:.6rem 0}
.gastronomie-film-grid p{font-size:.78rem;margin:0;color:#e0e8eb}
@media(max-width:750px){.gastronomie-chef-portraits,.gastronomie-film-grid{grid-template-columns:1fr}.gastronomie-chef-portraits figure{max-width:700px}}
