/* DESRIST 2027 theme colors: Notre Dame blue, white and gold + Indiana University crimson.
   Loaded after the theme's own styles on every page. Change a color here and the whole site follows. */
:root {
  --d27-blue: #0C2340;        /* Notre Dame Blue */
  --d27-blue-mid: #1F4A7A;    /* lighter blue for secondary elements */
  --d27-gold: #C99700;        /* Notre Dame Gold */
  --d27-gold-metallic: #AE9142;
  --d27-gold-tint: #F3EAD0;
  --d27-crimson: #990000;     /* Indiana University Crimson */
  --d27-crimson-tint: #F5DCDC;
  --d27-white: #FFFFFF;
  --d27-text: #1B2533;
  --d27-bg-soft: #F5F7FA;
  --d27-line: #DCE2EA;

  /* Theme (Astra) palette: every Elementor block refers to these */
  --ast-global-color-0: var(--d27-crimson);
  --ast-global-color-1: var(--d27-crimson);   /* was orange: main accent */
  --ast-global-color-2: var(--d27-gold);      /* was marigold: secondary accent */
  --ast-global-color-3: var(--d27-text);      /* body text */
  --ast-global-color-4: var(--d27-white);     /* page background */
  --ast-global-color-5: var(--d27-bg-soft);
  --ast-global-color-6: var(--d27-blue);
  --ast-global-color-7: var(--d27-line);
  --ast-global-color-8: var(--d27-blue);      /* links */
  --e-global-color-primary: var(--d27-blue);
  --e-global-color-accent: var(--d27-crimson);
}

/* Elementor's style kit keeps its own copy of the palette on <body>; point it at ours */
body.elementor-kit-23, body {
  --e-global-color-astglobalcolor0: var(--d27-crimson);
  --e-global-color-astglobalcolor1: var(--d27-crimson);
  --e-global-color-astglobalcolor2: var(--d27-gold);
  --e-global-color-astglobalcolor3: var(--d27-text);
  --e-global-color-astglobalcolor4: var(--d27-white);
  --e-global-color-astglobalcolor5: var(--d27-bg-soft);
  --e-global-color-astglobalcolor6: var(--d27-blue);
  --e-global-color-astglobalcolor7: var(--d27-line);
  --e-global-color-astglobalcolor8: var(--d27-blue);
  --e-global-color-primary: var(--d27-blue);
  --e-global-color-accent: var(--d27-crimson);
}

body { background-color: var(--d27-white); color: var(--d27-text); }
h1, h2, h3, h4, h5, h6, .elementor-heading-title { color: var(--d27-blue); }
a:hover, a:focus { color: var(--d27-crimson); }
::selection { background: var(--d27-gold); color: var(--d27-blue); }

/* Header: white with a gold rule; blue menu, crimson for hover/current page */
#masthead, .elementor-1288 > .e-con, .elementor-1288 .e-con-full.e-parent { background-color: var(--d27-white) !important; }
#masthead { border-bottom: 3px solid var(--d27-gold); }
.hfe-nav-menu a.hfe-menu-item, .hfe-nav-menu a.hfe-sub-menu-item { color: var(--d27-blue) !important; }
.hfe-nav-menu a.hfe-menu-item:hover, .hfe-nav-menu .current-menu-item > a.hfe-menu-item,
.hfe-nav-menu .current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item { color: var(--d27-crimson) !important; }
.hfe-nav-menu .sub-menu { border-top: 2px solid var(--d27-gold) !important; }
.hfe-nav-menu-icon, .hfe-nav-menu-icon svg { color: var(--d27-blue) !important; fill: var(--d27-blue) !important; }

/* Dividers and buttons */
.elementor-divider-separator { border-color: var(--d27-gold) !important; }
.elementor-button, .wp-block-button__link, button.ast-button, .ast-custom-button {
  background-color: var(--d27-blue) !important; color: var(--d27-white) !important; border-color: var(--d27-blue) !important;
}
.elementor-button:hover, .wp-block-button__link:hover { background-color: var(--d27-crimson) !important; border-color: var(--d27-crimson) !important; }

/* Footer: Notre Dame blue */
footer.site-footer, footer.site-footer .ast-builder-grid-row-container, footer.site-footer [class*="site-below-footer"] {
  background-color: var(--d27-blue) !important; color: var(--d27-white);
}
footer.site-footer, footer.site-footer p, footer.site-footer .ast-footer-copyright { color: rgba(255,255,255,.88) !important; }
footer.site-footer a { color: var(--d27-white) !important; }
footer.site-footer a:hover { color: var(--d27-gold) !important; }

/* Accordions / tabs */
.e-n-accordion-item-title:hover .e-n-accordion-item-title-text, details[open] > .e-n-accordion-item-title .e-n-accordion-item-title-text { color: var(--d27-crimson); }
.e-n-tab-title[aria-selected="true"] { border-color: var(--d27-gold) !important; }

/* Program schedule block */
body .cw-tab.active, body .cw-th { background: var(--d27-blue) !important; color: var(--d27-white) !important; }
body .cc-o { background: var(--d27-blue); color: #fff; }          /* Paper sessions */
body .cc-t { background: var(--d27-crimson); color: #fff; }       /* Workshops */
body .cc-r { background: var(--d27-gold); color: var(--d27-blue); }  /* Keynote */
body .cc-g { background: var(--d27-blue-mid); color: #fff; }      /* Demos & forum */
body .cc-p { background: var(--d27-gold-tint); color: var(--d27-blue); }   /* Panel */
body .cc-s { background: var(--d27-crimson-tint); color: #5C0000; }       /* Social */
body .cc-r .cw-pt, body .cc-r .cw-pa, body .cc-p .cw-pt, body .cc-p .cw-pa { color: var(--d27-blue); }
body .cc-s .cw-pt, body .cc-s .cw-pa { color: #5C0000; }
.cw-leg-dot[style*="E8904A" i] { background: var(--d27-blue) !important; }
.cw-leg-dot[style*="9B65B0" i] { background: var(--d27-crimson) !important; }
.cw-leg-dot[style*="C04878" i] { background: var(--d27-gold) !important; }
.cw-leg-dot[style*="C06880" i] { background: var(--d27-blue-mid) !important; }
.cw-leg-dot[style*="CAAED8" i] { background: var(--d27-gold-tint) !important; border: 1px solid var(--d27-gold); }
.cw-leg-dot[style*="EAC4D8" i] { background: var(--d27-crimson-tint) !important; border: 1px solid #e3b3b3; }

/* Proceedings block */
body #dr-proceedings { --ink: var(--d27-text); --orange: var(--d27-crimson); --marigold: var(--d27-gold); --slate: #46566B; --bg: var(--d27-bg-soft); --line: var(--d27-line); }
body #dr-proceedings .dr-search:focus, body #dr-proceedings .dr-select:focus { box-shadow: 0 0 0 3px rgba(12,35,64,.15) !important; }
body #dr-proceedings .dr-act:hover svg { fill: var(--d27-crimson) !important; }

/* Cookie banner buttons */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept { background-color: var(--d27-blue) !important; border-color: var(--d27-blue) !important; color: #fff !important; }
.cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept) { color: var(--d27-blue) !important; }
body #dr-proceedings .dr-part { background: var(--d27-white); border-top: 3px solid var(--d27-gold); }
body #dr-proceedings .dr-part-link { background: var(--d27-gold); color: var(--d27-blue); }
body #dr-proceedings .dr-part:hover .dr-part-link { background: var(--d27-blue); color: var(--d27-white); }
body #dr-proceedings .dr-thumb { background: var(--d27-bg-soft); }

/* Home page hero: full-width downtown Chicago photo (click it in the editor to replace it).
   The photo credit sits on the image's bottom-right corner; keep it while this photo is used. */
.elementor-2805 .elementor-element.elementor-element-101eb04 {
  width: 100%; max-width: 100%; --container-widget-width: 100%; --flex-grow: 1; align-self: stretch;
}
.elementor-2805 .elementor-element.elementor-element-101eb04 .elementor-widget-container {
  position: relative; border-radius: 14px; overflow: hidden; line-height: 0;
}
.elementor-2805 .elementor-element.elementor-element-101eb04 img {
  width: 100%; max-width: 100%; height: 500px; object-fit: cover; object-position: center 35%; display: block;
  opacity: 1 !important; filter: none !important; border-radius: 0 !important;
}
.elementor-2805 .elementor-element.elementor-element-101eb04 .d27-credit {
  position: absolute; right: 0; bottom: 0; padding: 4px 10px; font-size: 11px; line-height: 1.3;
  color: rgba(255,255,255,.9); background: rgba(12,35,64,.55); border-top-left-radius: 8px;
}
.elementor-2805 .elementor-element.elementor-element-101eb04 .d27-credit a { color: #fff; text-decoration: underline; }
@media (max-width: 767px) {
  .elementor-2805 .elementor-element.elementor-element-101eb04 .elementor-widget-container { border-radius: 10px; }
  .elementor-2805 .elementor-element.elementor-element-101eb04 img { height: 260px; }
  .elementor-2805 .elementor-element.elementor-element-101eb04 .d27-credit { font-size: 10px; }
}

/* Header DESRIST 2027 logo (upper left): the full badge, a bit larger than the old icon slot */
body .elementor-1288 .elementor-element.elementor-element-e0151d8 { width: auto; max-width: none; --container-widget-width: auto; flex-shrink: 0; }
body .elementor-1288 .elementor-element.elementor-element-e0151d8 img { width: 84px; max-width: none; height: auto; }
@media (max-width: 1024px) { body .elementor-1288 .elementor-element.elementor-element-e0151d8 img { width: 80px; } }
@media (max-width: 767px) { body .elementor-1288 .elementor-element.elementor-element-e0151d8 img { width: 64px; } }

/* Header partner logos (HAL + Lucy Institute): fixed sizes so Elementor's percentage widths don't shrink them.
   'body' raises specificity above the copy of the header styles Elementor prints inline later in the page. */
body .elementor-1288 .elementor-element.elementor-element-cc52bc1,
body .elementor-1288 .elementor-element.elementor-element-bf9ba7a { width: auto; max-width: none; --container-widget-width: auto; }
body .elementor-1288 .elementor-element.elementor-element-cc52bc1 img { width: 96px; max-width: none; }
body .elementor-1288 .elementor-element.elementor-element-bf9ba7a img { width: 116px; max-width: none; }
@media (max-width: 1024px) {
  body .elementor-1288 .elementor-element.elementor-element-cc52bc1 img { width: 110px; }
  body .elementor-1288 .elementor-element.elementor-element-bf9ba7a img { width: 125px; }
}
@media (max-width: 767px) {
  /* On phones Elementor lets these slots shrink below their image width, so the logos overlapped */
  body .elementor-1288 .elementor-element.elementor-element-cc52bc1,
  body .elementor-1288 .elementor-element.elementor-element-bf9ba7a { --flex-shrink: 0; flex-shrink: 0; min-width: max-content; }
  body .elementor-1288 .elementor-element.elementor-element-cc52bc1 img { width: 78px; }
  body .elementor-1288 .elementor-element.elementor-element-bf9ba7a img { width: 84px; }
}

/* Desktop header with four logos (DESRIST, HAL, Lucy, DSAIL): let the menu take only the width it needs,
   stop the logo slots from shrinking (they overlapped), and size logos so the row fits in 1200px */
@media (min-width: 1025px) {
  body .elementor-1288 .elementor-element.elementor-element-2181cee { width: auto; max-width: none; --container-widget-width: auto; }
  body .elementor-1288 .elementor-element.elementor-element-cc52bc1,
  body .elementor-1288 .elementor-element.elementor-element-bf9ba7a { --flex-shrink: 0; flex-shrink: 0; min-width: max-content; }
  body .elementor-1288 .elementor-element.elementor-element-e0151d8 img { width: 80px; }
  body .elementor-1288 .elementor-element.elementor-element-cc52bc1 img { width: 80px; }
  body .elementor-1288 .elementor-element.elementor-element-bf9ba7a img { width: 88px; }
}

/* Narrow desktops (1025–1239px): not enough room for the menu and four logos on one line, so let the menu wrap */
@media (min-width: 1025px) and (max-width: 1239px) {
  body .elementor-1288 .elementor-element.elementor-element-2181cee { flex: 1 1 0; min-width: 0; --flex-shrink: 1; }
  body .elementor-1288 .elementor-element.elementor-element-2181cee ul.hfe-nav-menu { flex-wrap: wrap; }
}

/* The collapsed mobile menu sits just past the right edge and made phones scroll sideways (also on the 2026 site) */
html, body { overflow-x: clip; }
