/* =========================================================================
   Custom additions: News Ticker, Language Switcher, Key Persons full-width
   grid, Services grid refinements.
   Loaded after style.css, so rules here override where needed.
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Language switcher (English / Marathi)
   ---------------------------------------------------------------------- */
.lang-switch{ display:flex; gap:4px; }
.lang-btn{
  background:transparent; border:1px solid #4a6f8f; color:#dce8f2;
  border-radius:3px; padding:2px 10px; cursor:pointer; font-size:.8rem; font-family:inherit;
}
.lang-btn:hover{ background:var(--saffron); border-color:var(--saffron); color:var(--navy-dark); }
.lang-btn.is-active{ background:var(--saffron); border-color:var(--saffron); color:var(--navy-dark); font-weight:600; }

/* Bilingual text pairs: only one language shows at a time. English by default. */
.lang-text.lang-mr{ display:none; }
html.lang-mr .lang-text.lang-en{ display:none; }
html.lang-mr .lang-text.lang-mr{ display:inline; }

/* Bilingual content blocks (e.g. Page body text) — same idea, block-level. */
.lang-block.lang-mr{ display:none; }
html.lang-mr .lang-block.lang-en{ display:none; }
html.lang-mr .lang-block.lang-mr{ display:block; }

/* -------------------------------------------------------------------------
   2. News ticker
   ---------------------------------------------------------------------- */
.news-ticker{
  display:flex; align-items:stretch; background:#fdf0d6; border-bottom:1px solid var(--border);
  overflow:hidden;
}
.news-ticker__label{
  flex:0 0 auto; background:var(--saffron); color:var(--navy-dark); font-weight:700; font-size:.85rem;
  padding:8px 18px; display:flex; align-items:center; white-space:nowrap;
}
.news-ticker__viewport{ flex:1 1 auto; overflow:hidden; position:relative; }
.news-ticker__track{
  display:flex; gap:60px; white-space:nowrap; padding:8px 20px;
  animation:gdc-ticker-scroll 30s linear infinite;
}
.news-ticker__viewport:hover .news-ticker__track,
.news-ticker__viewport:focus-within .news-ticker__track{ animation-play-state:paused; }
.news-ticker__track li{ display:inline-flex; align-items:center; gap:6px; font-size:.88rem; color:var(--text); }
.news-ticker__track a{ color:var(--navy); font-weight:600; }
.news-ticker__icon{ width:18px; height:18px; object-fit:contain; flex:0 0 auto; }

@keyframes gdc-ticker-scroll{
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }
}

/* WCAG 2.2.2 (Pause, Stop, Hide) — respect the operating system's "reduce
   motion" setting for anyone who finds continuously-scrolling content
   distracting or disorienting. Content stays fully readable, just static;
   the viewport becomes scrollable instead so nothing is lost. */
@media (prefers-reduced-motion:reduce){
  .news-ticker__track{ animation:none; }
  .news-ticker__viewport{ overflow-x:auto; }
}

@media (max-width:640px){
  .news-ticker__label{ padding:8px 12px; font-size:.75rem; }
  .news-ticker__track li{ font-size:.8rem; }
}

/* -------------------------------------------------------------------------
   3. Key Persons — full width, single inline row on desktop, square photos
   ---------------------------------------------------------------------- */

/* Desktop: always one horizontal row — never wraps, never scrolls. Cards
   grow to fill the full row width at a comfortable size; if there are
   enough people that they don't all fit at that size, they shrink
   together gently (down to a sensible floor) so everyone still fits on
   one line without looking cramped or triggering a scrollbar. */
@media (min-width:961px){
  .key-persons.key-persons--full{
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    gap:14px;
  }
  .key-persons--full .key-persons__card{
    flex:1 1 150px;
    min-width:100px;
    max-width:190px;
  }
}

/* Tablet / mobile: wraps into a responsive grid instead of forcing a scroll. */
@media (max-width:960px){
  .key-persons.key-persons--full{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(130px, 1fr));
    gap:14px;
  }
}
@media (max-width:480px){
  .key-persons.key-persons--full{ grid-template-columns:repeat(2, 1fr); gap:10px; }
}

.key-persons--full .key-persons__card{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  height:auto; align-self:stretch; width:100%; padding:0 0 14px; /* auto height: the card always grows to fit its text (height:100% blocked equal-height stretch and could clip long designations) */
  background:var(--card-bg); border:1px solid var(--border); border-radius:8px;
  box-shadow:var(--shadow); overflow:visible; position:relative;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.key-persons--full .key-persons__card::before{
  content:""; display:block; width:100%; height:4px; flex:0 0 auto;
  background:linear-gradient(90deg, var(--navy), var(--saffron));
  border-radius:8px 8px 0 0; /* card no longer clips, so round the top bar itself */
}
.key-persons--full .key-persons__card:hover{
  transform:translateY(-6px);
  box-shadow:0 14px 30px rgba(34,49,122,.24);
  border-color:var(--saffron);
}

/* Square photos, neatly framed — no circular crop. */
.key-persons--full .key-persons__card .key-persons__photo-wrap{
  width:calc(100% - 20px); aspect-ratio:1/1; overflow:hidden; border-radius:6px;
  margin:10px auto 10px; box-shadow:0 2px 6px rgba(34,49,122,.15);
  background:var(--bg);
  flex:0 0 auto; /* never let long designation text squash the photo out of its square */
}
.key-persons--full .key-persons__card img{
  width:100%; height:100%; object-fit:cover; object-position:center top; display:block;
}
/* Zoom-on-hover only for devices with a real pointer — on touch/mobile a tap
   can leave :hover "stuck" active, so the zoomed-in image ends up cropping
   more of the head off instead of showing it cleanly. */
@media (hover:hover) and (pointer:fine){
  .key-persons--full .key-persons__card img{ transition:transform .4s ease; }
  .key-persons--full .key-persons__card:hover img{ transform:scale(1.1); }
}

.key-persons--full .key-persons__card h3{
  font-size:.82rem; margin:0 10px 6px; position:relative; padding-bottom:6px; line-height:1.25; flex:0 0 auto; overflow-wrap:break-word;
}
.key-persons--full .key-persons__card h3::after{
  content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%);
  width:24px; height:2px; background:var(--saffron); border-radius:2px;
}
.key-persons--full .key-persons__card p{
  display:inline-block; font-size:.6rem; font-weight:600; letter-spacing:.02em; text-transform:uppercase;
  color:var(--navy); background:var(--bg); padding:3px 9px; border-radius:12px; margin:0 10px 6px; /* 12px, not a full pill, so multi-line text isn't cramped by the curve */
  flex:0 0 auto; max-width:calc(100% - 20px); overflow-wrap:break-word;
}
.key-persons--full .key-persons__desc{
  font-size:.68rem; font-style:italic; color:var(--text-muted); margin:0 10px; text-transform:none;
  background:none; padding:0; border-radius:0; flex:0 0 auto; font-weight:400; letter-spacing:normal; display:block;
}

/* -------------------------------------------------------------------------
   4. Services grid — equal card size, equal image size
   ---------------------------------------------------------------------- */
.services-grid{ grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.service-card{ display:flex; flex-direction:column; height:100%; }
.service-card__icon{ overflow:hidden; }
.service-card__icon img{ width:100%; height:100%; object-fit:cover; border-radius:50%; }
.service-card p{ flex:1 1 auto; }

/* -------------------------------------------------------------------------
   5. External Link "Leaving Website" popup
   ---------------------------------------------------------------------- */
body.gdc-extlink-open{ overflow:hidden; }

.gdc-extlink-overlay{
  position:fixed; inset:0; z-index:10000;
  background:rgba(8,26,45,.6);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  animation:gdc-extlink-fade-in .18s ease;
}
.gdc-extlink-overlay[hidden]{ display:none; }

@keyframes gdc-extlink-fade-in{
  from{ opacity:0; }
  to{ opacity:1; }
}
@keyframes gdc-extlink-pop-in{
  from{ opacity:0; transform:translateY(12px) scale(.97); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}

.gdc-extlink-modal{
  position:relative; background:var(--card-bg); border-radius:10px;
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  max-width:460px; width:100%; padding:32px 28px 26px;
  border-top:5px solid var(--saffron);
  animation:gdc-extlink-pop-in .22s ease;
}
.gdc-extlink-modal__close{
  position:absolute; top:12px; right:12px; background:none; border:0; cursor:pointer;
  color:var(--text-muted); padding:6px; border-radius:4px; display:flex;
}
.gdc-extlink-modal__close:hover{ color:var(--saffron-dark); background:var(--bg); }
.gdc-extlink-modal__title{
  font-size:1.15rem; margin:0 28px 12px 0; color:var(--navy);
}
.gdc-extlink-modal__message{
  font-size:.92rem; color:var(--text); line-height:1.6; margin:0 0 14px;
}
.gdc-extlink-modal__url{
  font-size:.78rem; color:var(--text-muted); background:var(--bg); border-radius:4px;
  padding:8px 12px; margin:0 0 22px; word-break:break-all; font-family:monospace;
}
.gdc-extlink-modal__actions{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end;
}
.gdc-extlink-modal__cancel{
  background:#fff; color:var(--navy); border:2px solid var(--border);
  padding:9px 20px; border-radius:4px; font-size:.9rem; font-weight:600; cursor:pointer;
}
.gdc-extlink-modal__cancel:hover{ background:var(--bg); border-color:var(--navy); }
.gdc-extlink-modal__continue{
  margin-top:0;
}

@media (max-width:480px){
  .gdc-extlink-modal{ padding:26px 18px 20px; }
  .gdc-extlink-modal__actions{ flex-direction:column-reverse; }
  .gdc-extlink-modal__actions .btn,
  .gdc-extlink-modal__cancel{ width:100%; justify-content:center; }
}

/* -------------------------------------------------------------------------
   6. Document/File "Open Document" popup — independent of the External
   Link popup above (separate overlay, separate modal, own settings), but
   shares the same visual language. A navy top border (vs. saffron for
   External Links) gives it a distinct identity at a glance.
   ---------------------------------------------------------------------- */
body.gdc-docpopup-open{ overflow:hidden; }

.gdc-docpopup-overlay{
  position:fixed; inset:0; z-index:10000;
  background:rgba(8,26,45,.6);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  animation:gdc-extlink-fade-in .18s ease;
}
.gdc-docpopup-overlay[hidden]{ display:none; }

.gdc-docpopup-modal{
  position:relative; background:var(--card-bg); border-radius:10px;
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  max-width:460px; width:100%; padding:32px 28px 26px;
  border-top:5px solid var(--navy);
  animation:gdc-extlink-pop-in .22s ease;
}
.gdc-docpopup-modal__close{
  position:absolute; top:12px; right:12px; background:none; border:0; cursor:pointer;
  color:var(--text-muted); padding:6px; border-radius:4px; display:flex;
}
.gdc-docpopup-modal__close:hover{ color:var(--saffron-dark); background:var(--bg); }
.gdc-docpopup-modal__title{
  font-size:1.15rem; margin:0 28px 12px 0; color:var(--navy);
}
.gdc-docpopup-modal__message{
  font-size:.92rem; color:var(--text); line-height:1.6; margin:0 0 14px;
}
.gdc-docpopup-modal__filename{
  font-size:.78rem; color:var(--text-muted); background:var(--bg); border-radius:4px;
  padding:8px 12px; margin:0 0 22px; word-break:break-all; font-family:monospace;
}
.gdc-docpopup-modal__actions{
  display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end;
}
.gdc-docpopup-modal__cancel{
  background:#fff; color:var(--navy); border:2px solid var(--border);
  padding:9px 20px; border-radius:4px; font-size:.9rem; font-weight:600; cursor:pointer;
}
.gdc-docpopup-modal__cancel:hover{ background:var(--bg); border-color:var(--navy); }
.gdc-docpopup-modal__continue{ margin-top:0; }

@media (max-width:480px){
  .gdc-docpopup-modal{ padding:26px 18px 20px; }
  .gdc-docpopup-modal__actions{ flex-direction:column-reverse; }
  .gdc-docpopup-modal__actions .btn,
  .gdc-docpopup-modal__cancel{ width:100%; justify-content:center; }
}

/* -------------------------------------------------------------------------
   7. Event Section — fully controlled from Theme Options → Event Section.
   Appearance/scrolling values arrive as inline CSS custom properties on
   #gdc-event-section (see front-page.php); this stylesheet just consumes
   them, with sane fallbacks so the block still looks right before any
   settings have been saved.
   ---------------------------------------------------------------------- */
.events-block{
  --event-text: var(--text);
  --event-hover: var(--navy);
  --event-border: var(--border);
  --event-radius: 6px;
  --event-shadow: 0 1px 4px rgba(34,49,122,.08);
  --event-padding: 12px;
  --event-gap: 8px;
  --event-font: var(--font-base);
  --event-font-size: 15px;
  --event-scroll-duration: 25s;
  --event-pause-duration: 2s;
  --event-visible-count: 3;
  font-family:var(--event-font);
  color:var(--event-text);
  border-radius:var(--event-radius);
}
.events-block__subtitle{ color:var(--text-muted); font-size:.85rem; margin:-6px 0 14px; }

/* ---- Card ---- */
.events-list{ list-style:none; margin:0; padding:0; }
.event-card{
  display:flex; gap:12px;
  padding:var(--event-padding) 0;
  margin-bottom:var(--event-gap);
  border-bottom:1px solid var(--event-border);
  font-size:var(--event-font-size);
}
.events-block--static .events-list,
.events-block--pagination .events-list{ background:transparent; }
.event-card:last-child{ border-bottom:0; }
.event-card__media{ position:relative; flex:0 0 auto; }
.event-card__media img{
  width:64px; height:64px; object-fit:cover; display:block;
  border-radius:calc(var(--event-radius) * .6);
  box-shadow:var(--event-shadow);
}
.event-card__badge{
  position:absolute; top:-6px; right:-6px;
  background:var(--saffron); color:var(--navy-dark); font-size:.6rem; font-weight:700;
  letter-spacing:.03em; padding:2px 6px; border-radius:999px;
  box-shadow:0 1px 4px rgba(0,0,0,.25);
}
.event-card__body{ min-width:0; flex:1 1 auto; }
.event-card__title{
  display:block; font-weight:600; font-size:1em; color:var(--event-text);
  text-decoration:none;
}
.event-card__title:hover,
.event-card__title:focus{ color:var(--event-hover); text-decoration:underline; }
.event-card__meta{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:4px;
  font-size:.78em; color:var(--text-muted);
}
.event-card__date,
.event-card__time{ display:inline-flex; align-items:center; gap:4px; }
.event-card__date .gdc-icon,
.event-card__time .gdc-icon{ width:14px; height:14px; }
.event-card__desc{ margin:6px 0 0; font-size:.85em; color:var(--text-muted); line-height:1.5; }
.event-card__readmore{
  display:inline-flex; align-items:center; gap:4px; margin-top:6px;
  font-size:.8em; font-weight:600; color:var(--event-hover); text-decoration:none;
}
.event-card__readmore:hover{ text-decoration:underline; }
.events-list__empty{ color:var(--text-muted); font-size:.9em; padding:12px 0; }

/* ---- Entrance / transition animation style ---- */
.events-block.anim-fade .event-card{ animation:gdc-event-fade-in .35s ease both; }
.events-block.anim-slide .event-card{ animation:gdc-event-slide-in .35s ease both; }
@keyframes gdc-event-fade-in{ from{ opacity:0; } to{ opacity:1; } }
@keyframes gdc-event-slide-in{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion:reduce){
  .events-block.anim-fade .event-card,
  .events-block.anim-slide .event-card{ animation:none; }
}

/* ---- Mode: Vertical Auto Scrolling ---- */
.events-block--scroll .events-block__viewport{
  overflow:hidden; /* no browser scrollbar visible */
  position:relative;
  /* Cap the viewport to roughly N visible cards; JS refines this to the
     actual measured row height once the cards have rendered. */
  max-height:calc(var(--event-visible-count) * 92px);
}
/* Scrolling itself is JS-driven (event-section.js) — a single item-height
   "step" at a time, so "Pause Duration Between Events" and "Scroll Speed"
   can both be honored precisely (a continuous CSS keyframe can't pause
   between items). CSS only supplies the smooth-transition easing. */
.events-block--scroll .events-list{ will-change:transform; }
.events-block--scroll[data-smooth="1"] .events-list{ transition:transform .6s ease; }
.events-block--scroll[data-smooth="0"] .events-list{ transition:none; }
@media (prefers-reduced-motion:reduce){
  .events-block--scroll .events-list{ transition:none !important; transform:none !important; }
  .events-block--scroll .events-block__viewport{ overflow:visible; max-height:none; }
}

.events-block__pause-toggle{
  display:inline-flex; align-items:center; gap:6px; margin-top:10px;
  background:transparent; border:1px solid var(--event-border); border-radius:4px;
  padding:5px 10px; font-size:.78rem; font-family:inherit; color:var(--event-text);
  cursor:pointer;
}
.events-block__pause-toggle:hover{ background:var(--bg); border-color:var(--event-hover); }
.events-block__pause-toggle:focus-visible{ outline:2px solid var(--event-hover); outline-offset:2px; }
.events-block__pause-icon{ width:10px; height:10px; flex:0 0 auto; position:relative; }
.events-block__pause-icon::before,
.events-block__pause-icon::after{
  content:""; position:absolute; top:0; width:3px; height:10px; background:currentColor;
}
.events-block__pause-icon::before{ left:0; }
.events-block__pause-icon::after{ left:6px; }
.events-block__pause-toggle.is-paused .events-block__pause-icon{
  width:0; height:0; border-top:5px solid transparent; border-bottom:5px solid transparent;
  border-left:8px solid currentColor;
}
.events-block__pause-toggle.is-paused .events-block__pause-icon::before,
.events-block__pause-toggle.is-paused .events-block__pause-icon::after{ content:none; }
.events-block__pause-state--resume{ display:none; }
.events-block__pause-toggle.is-paused .events-block__pause-state--pause{ display:none; }
.events-block__pause-toggle.is-paused .events-block__pause-state--resume{ display:inline; }

/* ---- Mode: Static List ---- */
.events-block--static .events-block__viewport{ overflow:visible; }

/* ---- Mode: Pagination ---- */
.events-block--pagination .events-block__viewport{ overflow:visible; }
.events-block--pagination.is-loading .events-list{ opacity:.5; pointer-events:none; transition:opacity .15s ease; }

.event-section__pagination{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:14px;
}
.event-section__pagination a{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:32px; height:32px; padding:0 8px;
  border:1px solid var(--event-border); border-radius:4px;
  font-size:.82rem; color:var(--event-text); text-decoration:none;
}
.event-section__pagination a:hover{ background:var(--bg); border-color:var(--event-hover); }
.event-section__pagination a.is-active{
  background:var(--event-hover); border-color:var(--event-hover); color:#fff; font-weight:700;
}
.event-section__pagination a:focus-visible{ outline:2px solid var(--event-hover); outline-offset:2px; }

@media (max-width:480px){
  .event-section__pagination a{ min-width:28px; height:28px; font-size:.75rem; }
}

/* ==========================================================================
   Tender Management — [tender_list] shortcode
   Card list with responsive grid, accessible focus states, and a reduced
   -motion-safe hover lift. Colours reuse the theme's existing custom
   properties so it inherits any palette change automatically.
   ========================================================================== */
.gdc-tenders{ margin:0 0 24px; }

/* --- Search bar --- */
.gdc-tenders__search{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 20px;
}
.gdc-tenders__search input[type="search"]{
  flex:1 1 240px; min-width:0; padding:9px 12px;
  border:1px solid var(--border); border-radius:4px; font-size:.95rem;
}
.gdc-tenders__clear{ font-size:.9rem; text-decoration:underline; }

/* --- List --- */
.gdc-tenders__list{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:18px;
}
.gdc-tender-card{
  background:var(--card-bg); border:1px solid var(--border);
  border-left:4px solid var(--saffron); border-radius:6px;
  padding:18px 20px; box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease;
}
.gdc-tender-card:hover{ transform:translateY(-3px); box-shadow:0 6px 18px rgba(0,0,0,.12); }
.gdc-tender-card--closed{ border-left-color:var(--border); opacity:.75; }

/* --- Card head --- */
.gdc-tender-card__head{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:8px; margin-bottom:8px; }
.gdc-tender-card__title{ flex:1 1 auto; margin:0; font-size:1.05rem; line-height:1.4; }
.gdc-tender-card__filetype{
  flex:0 0 auto; background:var(--navy); color:#fff;
  font-size:.68rem; font-weight:700; letter-spacing:.03em;
  padding:3px 7px; border-radius:3px; margin-top:2px;
}
.gdc-tender-card__badge{
  flex:0 0 auto; font-size:.68rem; font-weight:700; letter-spacing:.04em;
  padding:3px 8px; border-radius:999px; margin-top:2px;
}
.gdc-tender-card__badge--new{ background:#0b7a3b; color:#fff; }
.gdc-tender-card__badge--closed{ background:#6b7280; color:#fff; }

/* --- Body --- */
.gdc-tender-card__number{ margin:0 0 8px; font-size:.88rem; color:var(--text-muted); }
.gdc-tender-card__label{ font-weight:600; color:var(--text); }
.gdc-tender-card__desc{ font-size:.92rem; line-height:1.6; margin-bottom:10px; }
.gdc-tender-card__desc p{ margin:0 0 .6em; }

.gdc-tender-card__meta{ margin:0 0 14px; padding:0; display:flex; flex-wrap:wrap; gap:6px 20px; }
.gdc-tender-card__meta-item{ display:flex; flex-direction:column; }
.gdc-tender-card__meta dt{
  font-size:.72rem; text-transform:uppercase; letter-spacing:.04em;
  color:var(--text-muted); font-weight:600;
}
.gdc-tender-card__meta dd{ margin:0; font-size:.9rem; font-weight:600; color:var(--text); }

/* --- Actions --- */
.gdc-tender-card__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:0; }
.gdc-tender-card__fileinfo{ font-size:.8rem; color:var(--text-muted); }

/* --- Empty state --- */
.gdc-tenders__empty{
  padding:22px; text-align:center; color:var(--text-muted);
  background:var(--card-bg); border:1px dashed var(--border); border-radius:6px;
}

/* --- Pagination --- */
.gdc-tenders__pagination{ display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin-top:22px; }
.gdc-tenders__page{
  display:inline-block; min-width:38px; padding:7px 11px; text-align:center;
  border:1px solid var(--border); border-radius:4px; text-decoration:none;
  color:var(--navy); background:var(--card-bg); font-size:.9rem;
}
.gdc-tenders__page:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }
.gdc-tenders__page.is-current{ background:var(--navy); color:#fff; border-color:var(--navy); font-weight:700; }
.gdc-tenders__page.is-disabled{ opacity:.4; cursor:default; pointer-events:none; }

/* Respect users who ask for reduced motion (WCAG 2.2 SC 2.3.3). */
@media (prefers-reduced-motion:reduce){
  .gdc-tender-card{ transition:none; }
  .gdc-tender-card:hover{ transform:none; }
}

@media (max-width:640px){
  .gdc-tenders__list{ grid-template-columns:1fr; }
  .gdc-tender-card{ padding:15px 16px; }
}

/* ==========================================================================
   Page Title Banner  (Theme Options → Page Title Design)
   Inline styles set the admin-chosen colours/fonts; these rules handle
   structure only, so the two never fight.
   ========================================================================== */
.gdc-page-title{ position:relative; overflow:hidden; }
.gdc-page-title__overlay{ position:absolute; inset:0; z-index:1; }
.gdc-page-title__inner{ position:relative; z-index:2; }
.gdc-page-title__heading{ margin:0; line-height:1.25; }
.gdc-page-title__heading .lang-text{ color:inherit; font:inherit; }
.gdc-page-title__crumbs{ margin-top:8px; }
.gdc-page-title__crumbs .breadcrumbs,
.gdc-page-title__crumbs .breadcrumbs a{ color:inherit; opacity:.9; }
.gdc-page-title--has-image .gdc-page-title__crumbs .breadcrumbs{ text-shadow:0 1px 2px rgba(0,0,0,.4); }

@media (max-width:640px){
  .gdc-page-title__heading{ font-size:1.5rem !important; }
}

/* ==========================================================================
   Global Slogan  (Theme Options → Global Slogan)
   ========================================================================== */
.gdc-slogan{ width:100%; }
.gdc-slogan__text p{ margin:0 0 .4em; }
.gdc-slogan__text p:last-child{ margin-bottom:0; }
.gdc-slogan__text .lang-block{ font:inherit; color:inherit; }

@keyframes gdcSloganFade{ from{ opacity:0; } to{ opacity:1; } }
@keyframes gdcSloganSlide{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.gdc-slogan--anim-fade .gdc-slogan__text{ animation:gdcSloganFade .8s ease both; }
.gdc-slogan--anim-slide .gdc-slogan__text{ animation:gdcSloganSlide .8s ease both; }

/* WCAG 2.2 — never animate for visitors who asked for reduced motion. */
@media (prefers-reduced-motion:reduce){
  .gdc-slogan--anim-fade .gdc-slogan__text,
  .gdc-slogan--anim-slide .gdc-slogan__text{ animation:none; }
}

@media (max-width:640px){
  .gdc-slogan__text{ font-size:1rem !important; }
}

/* ==========================================================================
   Four-Column Footer  (Theme Options → Footer Columns)
   Only applies to the opt-in layout; the classic three-column footer keeps
   its own existing rules untouched.
   ========================================================================== */
.footer-columns--four{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:30px; align-items:start;
}
.footer-columns--four .footer-column{ min-width:0; }

.footer-institute__logo{ max-width:110px; height:auto; margin:0 0 12px; display:block; }
.footer-institute__name{ margin:0 0 8px; line-height:1.4; }
.footer-institute__map{ margin:12px 0 0; }
.btn--sm{ padding:7px 13px; font-size:.85rem; }

/* Same free-text rich content pattern as the 4th column's extra content
   below — any image placed here (e.g. pasted into the Address field)
   needs the same size cap, or it renders at full native pixel size and
   breaks the column layout. */
.footer-address img{
  max-width:140px; width:100%; height:auto; display:block; margin:12px auto 0;
}

.footer-columns--four .footer-menu{ list-style:none; margin:0; padding:0; }
.footer-columns--four .footer-menu li{ margin:0 0 8px; }
.footer-columns--four .footer-menu a{ text-decoration:none; }
.footer-columns--four .footer-menu a:hover,
.footer-columns--four .footer-menu a:focus-visible{ text-decoration:underline; }

.footer-extra__content p{ margin:0 0 .6em; }
.footer-extra__content p:last-child{ margin-bottom:0; }
.footer-extra__content img{
  max-width:140px; width:100%; height:auto; display:block; margin:16px auto 0;
}

@media (max-width:1024px){
  .footer-columns--four{ grid-template-columns:repeat(2, 1fr); gap:26px; }
}
@media (max-width:600px){
  .footer-columns--four{ grid-template-columns:1fr; gap:24px; }
  .footer-institute__logo{ margin-left:auto; margin-right:auto; }
}

/* ==========================================================================
   Tender Management — LIST layout  ([tender_list layout="list"])
   Overrides the default card grid into full-width horizontal rows. Card
   styles are inherited; these rules only change the parts that differ, so
   the two layouts stay in sync if the base card design changes.
   ========================================================================== */
.gdc-tenders--list .gdc-tenders__list{
  display:block; /* one column instead of the auto-fill grid */
}
.gdc-tenders--list .gdc-tender-card{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 22px;
  border-left-width:5px; margin-bottom:12px;
  transition:transform .18s ease, box-shadow .18s ease,
             border-color .18s ease, background-color .18s ease;
}
.gdc-tenders--list .gdc-tender-card:last-child{ margin-bottom:0; }

/* Row hover: slide right + saffron edge + subtle tint, instead of the
   card grid's "lift" effect. */
.gdc-tenders--list .gdc-tender-card:hover{
  transform:translateX(4px);
  border-left-color:var(--saffron);
  background-color:var(--bg);
  box-shadow:0 4px 14px rgba(0,0,0,.10);
}
.gdc-tenders--list .gdc-tender-card:focus-within{
  border-left-color:var(--saffron);
  box-shadow:0 0 0 2px var(--saffron);
}

/* Lay the inner blocks out along the row rather than stacked. */
.gdc-tenders--list .gdc-tender-card__head{ flex:1 1 260px; margin-bottom:0; }
.gdc-tenders--list .gdc-tender-card__number{ flex:0 0 auto; margin:0; }
.gdc-tenders--list .gdc-tender-card__desc{
  flex:1 1 100%; order:5; margin:6px 0 0; font-size:.88rem;
}
.gdc-tenders--list .gdc-tender-card__meta{
  flex:1 1 auto; margin:0; gap:6px 22px;
}
.gdc-tenders--list .gdc-tender-card__actions{ flex:0 0 auto; margin-left:auto; }

/* On narrow screens the row naturally stacks back to a card-like column. */
@media (max-width:640px){
  .gdc-tenders--list .gdc-tender-card{ align-items:flex-start; }
  .gdc-tenders--list .gdc-tender-card__actions{ margin-left:0; }
  .gdc-tenders--list .gdc-tender-card:hover{ transform:none; } /* no sideways slide on touch */
}

/* Respect reduced-motion for the list hover too (WCAG 2.2 SC 2.3.3). */
@media (prefers-reduced-motion:reduce){
  .gdc-tenders--list .gdc-tender-card{ transition:none; }
  .gdc-tenders--list .gdc-tender-card:hover{ transform:none; }
}

/* Tender/Quotation type badge (distinct colour per type). */
.gdc-tender-card__badge--type{ color:#fff; }
.gdc-tender-card__badge--tender{ background:#0b5394; }     /* blue = tender */
.gdc-tender-card__badge--quotation{ background:#7a4b0b; }  /* amber-brown = quotation */
.gdc-tender-card__badge--type .lang-text{ color:#fff; }

/* Tenders — All / Tender / Quotation filter tabs. Plain accessible links
   (works with no JS, full page reload — consistent with the pagination
   nav below the list), styled as a pill tab bar. */
.gdc-tenders__filter{
  display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px;
}
.gdc-tenders__tab{
  display:inline-flex; align-items:center; gap:5px;
  padding:7px 16px; border:1px solid var(--border); border-radius:999px;
  background:var(--card-bg); color:var(--navy); font-size:.9rem; font-weight:600;
  text-decoration:none;
}
.gdc-tenders__tab:hover{ border-color:var(--saffron); }
.gdc-tenders__tab.is-active{
  background:var(--navy); border-color:var(--navy); color:#fff;
}
.gdc-tenders__tab-count{ font-weight:500; opacity:.8; font-size:.82rem; }

@media (max-width:480px){
  .gdc-tenders__filter{ gap:6px; }
  .gdc-tenders__tab{ padding:6px 12px; font-size:.85rem; }
}

/* -------------------------------------------------------------------------
   Rajyageet (State Anthem) header badge + popup — up to three options
   (Image, PDF, Music). If more than one file is uploaded, clicking the
   badge opens a dropdown so the visitor picks which one to view.
   Independent of every other popup on the site.
   ---------------------------------------------------------------------- */
.rajyageet-dropdown{ position:relative; }
.rajyageet-badge{
  background:var(--saffron); color:#241c00; font-weight:700; font-size:.82rem;
  padding:6px 16px; border-radius:999px; border:0; cursor:pointer;
  transition:background .2s ease, transform .15s ease;
}
.rajyageet-badge:hover{ background:var(--saffron-dark); transform:translateY(-1px); }

.rajyageet-menu{
  position:absolute; top:calc(100% + 6px); left:0; z-index:60;
  background:#fff; border-radius:8px; box-shadow:var(--shadow);
  min-width:150px; padding:6px; list-style:none; margin:0;
  border:1px solid var(--border);
}
.rajyageet-menu[hidden]{ display:none; }
.rajyageet-menu__item{
  display:block; width:100%; text-align:left; background:none; border:0;
  padding:9px 12px; border-radius:5px; font-size:.88rem; color:var(--text);
  cursor:pointer; font-family:inherit;
}
.rajyageet-menu__item:hover, .rajyageet-menu__item:focus{
  background:var(--bg); color:var(--navy); outline:none;
}

body.gdc-rajyageet-open{ overflow:hidden; }

.gdc-rajyageet-overlay{
  position:fixed; inset:0; z-index:10000;
  background:rgba(8,26,45,.75);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
  animation:gdc-extlink-fade-in .18s ease;
}
.gdc-rajyageet-overlay[hidden]{ display:none; }

.gdc-rajyageet-modal{
  position:relative; background:var(--card-bg); border-radius:10px;
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  max-width:640px; width:100%; max-height:90vh; overflow-y:auto;
  padding:32px 28px 28px;
  border-top:5px solid var(--saffron);
  animation:gdc-extlink-pop-in .22s ease;
}
.gdc-rajyageet-modal__close{
  position:absolute; top:12px; right:12px; background:none; border:0; cursor:pointer;
  color:var(--text-muted); padding:6px; border-radius:4px; display:flex;
}
.gdc-rajyageet-modal__close:hover{ color:var(--saffron-dark); background:var(--bg); }
.gdc-rajyageet-modal__title{
  font-size:1.15rem; margin:0 28px 18px 0; color:var(--navy); text-align:center;
}
.gdc-rajyageet-modal__body{ text-align:center; }
.gdc-rajyageet-panel[hidden]{ display:none; }
.gdc-rajyageet-modal__image{ max-width:100%; height:auto; border-radius:6px; margin:0 auto; }
.gdc-rajyageet-modal__pdf{
  width:100%; height:65vh; border:1px solid var(--border); border-radius:6px; background:var(--bg);
}
.gdc-rajyageet-modal__fallback{ font-size:.82rem; margin:10px 0 0; }
.gdc-rajyageet-modal__audio{ width:100%; }

@media (max-width:480px){
  .gdc-rajyageet-modal{ padding:26px 18px 20px; }
  .gdc-rajyageet-modal__pdf{ height:55vh; }
  .rajyageet-menu{ left:auto; right:0; }
}

/* -------------------------------------------------------------------------
   Accordion Tabs — unlimited vertical (collapsible) or horizontal
   (tab-strip) groups, each admin-managed via Theme Options → Accordion
   Tabs. Colors/spacing come from CSS custom properties injected by
   gdc_accordion_dynamic_css() based on the admin's Global Accordion Style
   settings, with sensible fallbacks if that hasn't run for some reason.
   ---------------------------------------------------------------------- */
.gdc-accordion{
  font-family:var(--gdc-acc-font, inherit);
  font-size:var(--gdc-acc-font-size, 16px);
  margin:0 0 24px;
}

/* ---- Vertical (classic stacked accordion) ---- */
.gdc-accordion--vertical .gdc-accordion__item{
  margin-bottom:var(--gdc-acc-margin, 10px);
  border:1px solid var(--gdc-acc-border, var(--border));
  border-radius:var(--gdc-acc-radius, 8px);
  overflow:hidden;
  background:var(--gdc-acc-bg, var(--card-bg));
  transition:border-color var(--gdc-acc-speed, 300ms) ease, box-shadow var(--gdc-acc-speed, 300ms) ease;
}
.gdc-accordion--vertical .gdc-accordion__item:last-child{ margin-bottom:0; }
.gdc-accordion--vertical .gdc-accordion__item:hover{ box-shadow:var(--shadow); }
.gdc-accordion__header{ margin:0; }
.gdc-accordion__trigger{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  width:100%; text-align:left; background:none; border:0; cursor:pointer;
  padding:var(--gdc-acc-padding, 14px) calc(var(--gdc-acc-padding, 14px) + 4px);
  font:inherit; font-weight:600; color:var(--navy);
  transition:background var(--gdc-acc-speed, 300ms) ease, color var(--gdc-acc-speed, 300ms) ease;
}
.gdc-accordion__trigger:hover{ background:var(--gdc-acc-hover, var(--bg)); }
.gdc-accordion__trigger[aria-expanded="true"]{ color:var(--gdc-acc-active, var(--saffron-dark)); }
.gdc-accordion__trigger:focus-visible{ outline:3px solid var(--gdc-acc-active, var(--navy-dark)); outline-offset:-3px; box-shadow:0 0 0 3px rgba(255,255,255,.9); }
.gdc-accordion__title{ flex:1 1 auto; }
.gdc-accordion__icon{ flex:0 0 auto; display:flex; }
.gdc-accordion__icon img{ width:24px; height:24px; object-fit:cover; border-radius:4px; }
.gdc-accordion__chevron{
  flex:0 0 auto; display:flex; color:var(--gdc-acc-active, var(--saffron));
  transition:transform var(--gdc-acc-speed, 300ms) ease;
}
.gdc-accordion__trigger[aria-expanded="true"] .gdc-accordion__chevron{ transform:rotate(90deg); }
.gdc-accordion__panel{
  padding:0 calc(var(--gdc-acc-padding, 14px) + 4px) var(--gdc-acc-padding, 14px);
  border-top:1px solid var(--gdc-acc-border, var(--border));
}
.gdc-accordion__panel[hidden]{ display:none; }

/* ---- Horizontal (tab strip, converts to vertical button stack on mobile) ---- */
.gdc-accordion--horizontal{
  border:1px solid var(--gdc-acc-border, var(--border));
  border-radius:var(--gdc-acc-radius, 8px);
  overflow:hidden;
  background:var(--gdc-acc-bg, var(--card-bg));
}
.gdc-accordion__headers{
  display:flex; flex-wrap:wrap; border-bottom:1px solid var(--gdc-acc-border, var(--border));
}
.gdc-accordion--horizontal .gdc-accordion__trigger{
  flex:1 1 auto; justify-content:center; width:auto;
  border-bottom:3px solid transparent; font-weight:600; color:var(--text-muted);
}
.gdc-accordion--horizontal .gdc-accordion__trigger:hover{ background:var(--gdc-acc-hover, var(--bg)); color:var(--navy); }
.gdc-accordion--horizontal .gdc-accordion__trigger.is-active{
  color:var(--navy); border-bottom-color:var(--gdc-acc-active, var(--saffron));
}
.gdc-accordion__panels{ padding:var(--gdc-acc-padding, 14px) calc(var(--gdc-acc-padding, 14px) + 4px); }
.gdc-accordion__panel[hidden]{ display:none; }

@media (max-width:640px){
  .gdc-accordion__headers{ flex-direction:column; border-bottom:0; }
  .gdc-accordion--horizontal .gdc-accordion__trigger{
    justify-content:flex-start; border-bottom:1px solid var(--gdc-acc-border, var(--border));
    border-left:3px solid transparent;
  }
  .gdc-accordion--horizontal .gdc-accordion__trigger.is-active{
    border-bottom-color:var(--gdc-acc-border, var(--border)); border-left-color:var(--gdc-acc-active, var(--saffron));
  }
}

/* ---- Left Tabs (tabs stacked down the left side, content area to the
   right; stacks into a simple top-to-bottom list on mobile) ---- */
.gdc-accordion--left{
  border:1px solid var(--gdc-acc-border, var(--border));
  border-radius:var(--gdc-acc-radius, 8px);
  overflow:hidden;
  background:var(--gdc-acc-bg, var(--card-bg));
  display:flex;
  align-items:stretch;
}
.gdc-accordion--left .gdc-accordion__headers{
  flex:0 0 220px;
  flex-direction:column;
  flex-wrap:nowrap;
  border-bottom:0;
  border-right:1px solid var(--gdc-acc-border, var(--border));
  background:var(--gdc-acc-hover, var(--bg));
  overflow-y:auto;
}
.gdc-accordion--left .gdc-accordion__trigger{
  flex:0 0 auto;
  justify-content:flex-start; width:100%;
  border-bottom:1px solid var(--gdc-acc-border, var(--border));
  border-left:3px solid transparent;
  font-weight:600; color:var(--text-muted);
}
.gdc-accordion--left .gdc-accordion__trigger:hover{ background:var(--gdc-acc-bg, var(--card-bg)); color:var(--navy); }
.gdc-accordion--left .gdc-accordion__trigger.is-active{
  color:var(--navy); background:var(--gdc-acc-bg, var(--card-bg));
  border-left-color:var(--gdc-acc-active, var(--saffron));
}
.gdc-accordion--left .gdc-accordion__panels{ flex:1 1 auto; min-width:0; }

@media (max-width:640px){
  .gdc-accordion--left{ flex-direction:column; }
  .gdc-accordion--left .gdc-accordion__headers{
    flex:0 0 auto; width:100%;
    border-right:0; border-bottom:1px solid var(--gdc-acc-border, var(--border));
  }
}

/* ---- Shared panel content (both layouts) ---- */
.gdc-accordion__content{ font-size:.95rem; line-height:1.7; }
.gdc-accordion__content p:first-child{ margin-top:0; }
.gdc-accordion__content p:last-child{ margin-bottom:0; }
.gdc-accordion__image{ max-width:100%; height:auto; border-radius:6px; margin-top:12px; }
.gdc-accordion__file, .gdc-accordion__link{ margin:14px 0 0; }
.gdc-accordion__file a{
  display:inline-flex; align-items:center; gap:6px; color:var(--navy); font-weight:600; font-size:.88rem;
}
.gdc-accordion__file a:hover{ color:var(--saffron-dark); }

/* -------------------------------------------------------------------------
   Faculty Members — [gdc_faculty dept="..."] shortcode output. A responsive
   card grid: photo (or initials fallback) on a gradient banner, then name,
   designation pill, qualification and email. Uses the theme's own colour
   variables so it always matches the rest of the site automatically.
   ---------------------------------------------------------------------- */
.gdc-faculty{ margin:0 0 40px; }

.gdc-faculty__head{
  display:flex; align-items:center; gap:12px;
  font-size:1.3rem; color:var(--navy); margin:0 0 24px; padding-bottom:10px;
  border-width:0 0 3px 0; border-style:solid; border-color:transparent;
  border-image:var(--gradient-accent) 1;
}
.gdc-faculty__head::before{
  content:''; flex:0 0 auto; width:12px; height:12px; border-radius:50%; background:var(--saffron);
}

.gdc-faculty__grid{ display:grid; gap:24px; }
.gdc-faculty__grid--2{ grid-template-columns:repeat(2,1fr); }
.gdc-faculty__grid--3{ grid-template-columns:repeat(3,1fr); }
.gdc-faculty__grid--4{ grid-template-columns:repeat(4,1fr); }
.gdc-faculty__grid--5{ grid-template-columns:repeat(5,1fr); }

.gdc-faculty__card{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden; text-align:center;
  display:flex; flex-direction:column; position:relative;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.gdc-faculty__card::before{
  content:''; display:block; height:5px; width:100%; background:var(--gradient-accent);
}
.gdc-faculty__card:hover{
  transform:translateY(-6px); box-shadow:0 14px 32px rgba(34,49,122,.22); border-color:var(--saffron);
}

.gdc-faculty__photo{
  width:120px; height:120px; margin:22px auto 0; border-radius:50%; overflow:hidden;
  background:var(--gradient-brand);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(34,49,122,.28);
  border:4px solid var(--card-bg);
  transition:transform .3s ease;
}
.gdc-faculty__card:hover .gdc-faculty__photo{ transform:scale(1.05); }
.gdc-faculty__photo img{ width:100%; height:100%; object-fit:cover; display:block; }

.gdc-faculty__body{ padding:16px 18px 22px; flex:1 1 auto; display:flex; flex-direction:column; }
.gdc-faculty__name{
  font-size:1.02rem; color:var(--navy); margin:0 0 10px; line-height:1.4; font-weight:700;
}
.gdc-faculty__desig{
  display:inline-block; margin:0 auto 10px; padding:4px 14px; border-radius:999px;
  background:var(--bg); color:var(--navy); font-size:.8rem; font-weight:600;
  border:1px solid var(--border);
}
.gdc-faculty__qual{ font-size:.82rem; color:var(--text-muted); margin:0 0 8px; }
.gdc-faculty__email{ font-size:.8rem; margin:auto 0 0; word-break:break-word; }
.gdc-faculty__email a{ color:var(--navy); text-decoration:none; }
.gdc-faculty__email a:hover{ color:var(--saffron-dark); text-decoration:underline; }

/* ---- List view (compact directory rows) ---- */
.gdc-faculty__list{
  background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden;
}
.gdc-faculty__row{
  display:flex; align-items:center; gap:18px; padding:16px 22px;
  border-bottom:1px solid var(--border); transition:background .2s ease;
}
.gdc-faculty__row:last-child{ border-bottom:0; }
.gdc-faculty__row:hover{ background:var(--bg); }
.gdc-faculty__row-photo{
  flex:0 0 auto; width:60px; height:60px; border-radius:50%; overflow:hidden;
  background:var(--gradient-brand); display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(34,49,122,.22);
}
.gdc-faculty__row-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.gdc-faculty__row-body{ flex:1 1 auto; min-width:0; }
.gdc-faculty__row-body .gdc-faculty__name{ margin:0 0 2px; font-size:.98rem; }
.gdc-faculty__desig--inline{
  display:inline-block; margin:0 10px 0 0; padding:2px 10px; border-radius:999px;
  background:var(--bg); color:var(--navy); font-size:.76rem; font-weight:600;
  border:1px solid var(--border);
}
.gdc-faculty__row-meta{ display:inline; font-size:.8rem; color:var(--text-muted); margin:0; }
.gdc-faculty__row-meta a{ color:var(--navy); text-decoration:none; }
.gdc-faculty__row-meta a:hover{ color:var(--saffron-dark); text-decoration:underline; }

@media (max-width:600px){
  .gdc-faculty__row{ flex-wrap:wrap; gap:12px; padding:14px 16px; }
  .gdc-faculty__row-photo{ width:48px; height:48px; }
  .gdc-faculty__desig--inline{ display:block; margin:2px 0 4px; width:fit-content; }
}

@media (max-width:1024px){
  .gdc-faculty__grid--4, .gdc-faculty__grid--5{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px){
  .gdc-faculty__grid--3, .gdc-faculty__grid--4, .gdc-faculty__grid--5{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px){
  .gdc-faculty__grid{ grid-template-columns:1fr !important; }
  .gdc-faculty__photo{ width:100px; height:100px; }
}


/* ==========================================================================
   Large desktop scaling (>= 1401px) — see style.css. Keeps fixed-pixel
   sizes in proportion with the fluid root font size. Unchanged below 1401px.
   ========================================================================== */
@media (min-width:1401px){
  .key-persons--full .key-persons__card{ max-width:15rem; }
  .key-persons--full .key-persons__card h3{ font-size:.9rem; }
  .key-persons--full .key-persons__card p{ font-size:.66rem; }
  .key-persons--full .key-persons__desc{ font-size:.74rem; }
  .gdc-accordion--left .gdc-accordion__headers{ flex-basis:13.75rem; }
  .footer-institute__logo{ max-width:6.875rem; }
  .gdc-faculty__photo{ width:7.5rem; height:7.5rem; }
}
@media (min-width:1401px) and (prefers-reduced-motion:no-preference){
  .events-block--scroll .events-block__viewport{ max-height:calc(var(--event-visible-count) * 5.75rem); }
}
