/* Scoped to the dedicated WordPress menu. Existing logo and header backgrounds remain theme-owned. */
.main-navigation .imn-menu { --imn-accent:var(--idiomelon-burgundy,#8a1f22); }
.main-navigation .imn-menu .imn-parent-toggle { display:flex; align-items:center; gap:8px; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; text-transform:inherit; cursor:pointer; position:relative; }
.main-navigation .imn-menu .imn-chevron { width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-4px; }
.main-navigation .imn-menu .imn-parent-toggle:focus-visible { outline:2px solid var(--imn-accent); outline-offset:-3px; }
.main-navigation .imn-menu > li.menu-cta > a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:12px 20px; margin:0 0 0 14px; background:var(--imn-accent); color:#fff; font-weight:700; line-height:1.2; border-radius:2px; letter-spacing:.04em; }
.main-navigation .imn-menu > li.menu-cta > a:hover,.main-navigation .imn-menu > li.menu-cta > a:focus { background:var(--idiomelon-burgundy-dark,#641619); color:#fff; }
.main-navigation .imn-menu > li.menu-cta > a::after { content:none; }
@media(min-width:1025px) {
 .main-navigation .imn-menu { display:flex; align-items:center; flex-wrap:nowrap; }
 .main-navigation .imn-menu > li { float:none; flex-shrink:0; position:relative; }
 .main-navigation .imn-menu > li > a,.main-navigation .imn-menu > li > .imn-parent-toggle { padding-inline:12px; font-size:15px; white-space:nowrap; line-height:var(--header-height,82px); }
 .main-navigation .imn-menu > li.menu-cta > a { line-height:1.2; padding:13px 20px; font-size:14px; }
 .main-navigation .imn-menu .sub-menu { display:block!important; position:absolute; top:100%; left:0; right:auto; width:260px; padding:10px 0; margin:0; background:var(--idiomelon-background,#f7f3ee); box-shadow:0 12px 30px #0002; border-top:2px solid var(--imn-accent); opacity:0; visibility:hidden; pointer-events:none; height:auto; overflow:visible; z-index:9999; }
 .main-navigation .imn-menu .sub-menu li { display:block; float:none; width:100%; }
 .main-navigation .imn-menu .sub-menu a { display:block; padding:12px 20px; line-height:1.4; font-size:17px; text-transform:none; color:var(--idiomelon-ink,#1d1f20); background:transparent; }
 .main-navigation .imn-menu .sub-menu a:hover,.main-navigation .imn-menu .sub-menu a:focus-visible { background:#8a1f220b; color:var(--imn-accent); }
 .main-navigation .imn-menu > li.imn-open > .sub-menu,.main-navigation .imn-menu:not(.imn-ready) > li:focus-within > .sub-menu,.main-navigation .imn-menu:not(.imn-ready) > li:hover > .sub-menu { opacity:1; visibility:visible; pointer-events:auto; }
 .main-navigation .imn-menu > li > .imn-parent-toggle::after { content:""; position:absolute; left:0; right:0; bottom:15px; height:3px; background:var(--accent,#8a1f22); transform:scaleX(0); transform-origin:center; transition:transform 800ms ease; }
 .main-navigation .imn-menu > li:is(.imn-open,.current-menu-ancestor) > .imn-parent-toggle::after,.main-navigation .imn-menu > li > .imn-parent-toggle:focus-visible::after { transform:scaleX(1); }
 .main-navigation .imn-menu.imn-hide-home > .imn-home { display:none; }
}
@media(max-width:1024px) {
 .main-navigation .imn-menu { padding:12px 0 22px; }
 .main-navigation .imn-menu > li { float:none; width:100%; }
 .main-navigation .imn-menu > li > a,.main-navigation .imn-menu > li > .imn-parent-toggle { display:flex; width:100%; box-sizing:border-box; padding:12px 22px; line-height:1.35; font-size:18px; }
 .main-navigation .imn-menu .imn-parent-toggle { font-weight:700; cursor:default; }
 .main-navigation .imn-menu .imn-chevron,.main-navigation .imn-menu .dropdown-menu-toggle { display:none!important; }
 .main-navigation .imn-menu .sub-menu { display:block!important; position:static!important; float:none!important; opacity:1!important; visibility:visible!important; pointer-events:auto!important; width:auto!important; height:auto!important; max-height:none!important; overflow:visible!important; left:auto!important; transform:none!important; box-shadow:none; background:transparent; padding:0 0 12px; margin:0 22px 8px 34px; border:0; border-left:1px solid var(--idiomelon-border,#ddd); }
 .main-navigation .imn-menu .sub-menu li { display:block; float:none; width:100%; }
 .main-navigation .imn-menu .sub-menu a { display:block; padding:10px 16px; line-height:1.4; font-size:17px; text-transform:none; }
 .main-navigation .imn-menu > li > a::after { content:none; }
 .main-navigation .imn-menu > li.menu-cta > a { width:calc(100% - 44px); margin:14px 22px 0; min-height:48px; }
 .main-navigation.imn-navigation.toggled .main-nav { max-height:calc(100dvh - var(--header-height-mobile,68px) - var(--imn-admin,0px)); overflow-y:auto; overscroll-behavior:contain; }
 body.admin-bar { --imn-admin:46px; }
}
/* Native modal dialog supplies focus containment and inert background. */
#imn-programme-dialog { padding:0; border:0; margin:0 0 0 auto; width:min(480px,100vw); max-width:100vw; height:100dvh; max-height:100dvh; background:var(--idiomelon-background,#f7f3ee); color:var(--idiomelon-ink,#1d1f20); overflow:hidden; transform:translateX(100%); opacity:0; transition:transform 280ms ease,opacity 280ms ease; }
#imn-programme-dialog.imn-visible { transform:translateX(0); opacity:1; }
#imn-programme-dialog::backdrop { background:rgba(0,0,0,0); transition:background 280ms ease; }
#imn-programme-dialog.imn-visible::backdrop { background:rgba(0,0,0,.48); }
#imn-programme-dialog .imn-panel { height:100%; display:flex; flex-direction:column; }
#imn-programme-dialog .imn-panel-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:30px 28px 22px; border-bottom:1px solid var(--idiomelon-border,#ddd); }
#imn-programme-dialog .imn-panel-header p { margin:0 0 5px; font-size:12px; letter-spacing:.12em; color:var(--idiomelon-burgundy,#8a1f22); }
#imn-programme-dialog h2 { margin:0; font-family:"EB Garamond",Georgia,serif; font-size:38px; line-height:1.15; }
#imn-programme-dialog .imn-close { flex:0 0 44px; width:44px; height:44px; padding:0; border:1px solid var(--idiomelon-border,#ddd); background:transparent; color:inherit; font-size:30px; line-height:1; cursor:pointer; }
#imn-programme-dialog .imn-agenda { overflow-y:auto; overscroll-behavior:contain; flex:1; padding:24px 28px; }
#imn-programme-dialog h3 { margin:22px 0 8px; color:var(--idiomelon-burgundy,#8a1f22); font-size:19px; line-height:1.4; }
#imn-programme-dialog h3:first-child { margin-top:0; }
#imn-programme-dialog .imn-entry { display:grid; grid-template-columns:56px 1fr; gap:12px; padding:15px 0; color:inherit; text-decoration:none; border-bottom:1px solid var(--idiomelon-border,#ddd); }
#imn-programme-dialog .imn-time { font-size:16px; }
#imn-programme-dialog .imn-entry strong { display:block; font-size:21px; font-weight:600; line-height:1.2; }
#imn-programme-dialog .imn-entry small { display:block; font-size:14px; line-height:1.5; margin-top:6px; color:#615c58; }
#imn-programme-dialog .imn-entry:hover strong { color:var(--idiomelon-burgundy,#8a1f22); text-decoration:underline; }
#imn-programme-dialog footer { padding:20px 28px calc(20px + env(safe-area-inset-bottom)); border-top:1px solid var(--idiomelon-border,#ddd); }
#imn-programme-dialog footer a { display:block; padding:14px; background:var(--idiomelon-burgundy,#8a1f22); color:white; text-align:center; text-decoration:none; }
@media(max-width:600px) { #imn-programme-dialog { width:100vw; } }
@media(prefers-reduced-motion:reduce) { #imn-programme-dialog,#imn-programme-dialog::backdrop,.main-navigation .imn-menu > li > .imn-parent-toggle::after { transition:none; } }

/* 1.0.1 — keep submenu page states neutral; highlight the top-level group only. */
body .main-navigation .main-nav .imn-menu .sub-menu li > a,
body .main-navigation .main-nav .imn-menu .sub-menu li > a:visited,
body .main-navigation .main-nav .imn-menu .sub-menu li > a[aria-current] {
 color:var(--idiomelon-ink,#1d1f20)!important;
 background:transparent!important;
 opacity:1!important;
 -webkit-text-fill-color:currentColor;
}
body .main-navigation .main-nav .imn-menu .sub-menu li > a:hover,
body .main-navigation .main-nav .imn-menu .sub-menu li > a:focus-visible {
 color:var(--idiomelon-burgundy,#8a1f22)!important;
 background:rgba(138,31,34,.06)!important;
}
body .main-navigation .main-nav .imn-menu .sub-menu li > a::after { content:none!important; }
body .main-navigation .imn-menu .imn-parent-toggle {
 color:var(--imn-parent-color,var(--idiomelon-ink,#1d1f20))!important;
 font-family:var(--imn-parent-font,inherit);
 font-weight:var(--imn-parent-weight,inherit);
 text-transform:var(--imn-parent-case,inherit);
 letter-spacing:var(--imn-parent-spacing,normal);
 opacity:1;
}
@media(max-width:1024px) {
 body .main-navigation .imn-menu > .current-menu-ancestor > .imn-parent-toggle {
  box-shadow:inset 3px 0 var(--idiomelon-burgundy,#8a1f22);
 }
}

/* 1.0.2 — Programme retains its button surface in merged/Page Hero headers. */
body .main-navigation .main-nav > ul.imn-menu > li.imn-programme.menu-cta > a,
body .main-navigation .main-nav > ul.imn-menu > li.imn-programme.menu-cta > a:visited {
 background:var(--idiomelon-burgundy,#8a1f22)!important;
 color:#fff!important;
 -webkit-text-fill-color:#fff;
 opacity:1!important;
}
body .main-navigation .main-nav > ul.imn-menu > li.imn-programme.menu-cta > a:hover,
body .main-navigation .main-nav > ul.imn-menu > li.imn-programme.menu-cta > a:focus {
 background:var(--idiomelon-burgundy-dark,#641619)!important;
 color:#fff!important;
}
