/* Academy of Zurich – Swiss look for Cassiopeia */
:root {
  --aoz-ink: #111418;
  --aoz-muted: #5b6270;
  --aoz-line: #e3e5e8;
  --aoz-accent: #0f3b8c;
  --aoz-accent-dark: #0a2a66;
  --aoz-soft: #f4f6f9;
  --cassiopeia-color-primary: #0f3b8c;
  --cassiopeia-color-link: #0f3b8c;
  --cassiopeia-color-hover: #0a2a66;
  --cassiopeia-font-family-body: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
  --cassiopeia-font-family-headings: "Helvetica Neue", Helvetica, Arial, "Segoe UI", sans-serif;
  --body-font-family: var(--cassiopeia-font-family-body);
}

body.site { background: #fff; color: var(--aoz-ink); font-family: var(--cassiopeia-font-family-body); line-height: 1.6; }
h1, h2, h3, .h1, .h2, .h3 { font-family: var(--cassiopeia-font-family-headings); color: var(--aoz-ink); font-weight: 700; letter-spacing: -0.01em; }
a { color: var(--aoz-accent); }
a:hover, a:focus { color: var(--aoz-accent-dark); }

/* Header: white, quiet, one blue line */
.container-header { background: #fff !important; background-image: none !important; color: var(--aoz-ink); border-top: 4px solid var(--aoz-accent); border-bottom: 1px solid var(--aoz-line); box-shadow: none; }
.container-header .navbar-brand, .container-header .navbar-brand a, .container-header .brand-logo { color: var(--aoz-ink) !important; font-weight: 700; font-size: 1.35rem; letter-spacing: 0.02em; text-transform: uppercase; }
.container-header .site-description { color: var(--aoz-muted); }
.container-header .mod-menu > li > a, .container-header .mod-menu > li > button, .container-header .metismenu > li > a, .container-header .metismenu > li > button { color: var(--aoz-ink) !important; font-weight: 500; }
.container-header .metismenu > li.active > a, .container-header .metismenu > li > a:hover { color: var(--aoz-accent) !important; text-decoration: none; box-shadow: inset 0 -2px 0 var(--aoz-accent); }
.container-header .metismenu > li > a:after, .container-header .metismenu > li > a:before { background: var(--aoz-accent); }
.container-header .navbar-toggler { color: var(--aoz-ink); border-color: var(--aoz-line); }
.container-header .metismenu .mm-collapse { background: #fff; border: 1px solid var(--aoz-line); box-shadow: 0 8px 24px rgba(17,20,24,.08); }
.container-header .metismenu .mm-collapse a { color: var(--aoz-ink) !important; }

/* Language switcher: DE FR IT EN */
.container-search .mod-languages ul { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.container-search .mod-languages li { margin: 0; }
.container-search .mod-languages a { display: inline-block; padding: .2rem .45rem; color: var(--aoz-muted) !important; font-size: .85rem; font-weight: 600; text-decoration: none; text-transform: uppercase; border-radius: 2px; }
.container-search .mod-languages li.lang-active a { color: #fff !important; background: var(--aoz-accent); }

/* Hero */
.aoz-hero { padding: 3.5rem 0 3rem; border-bottom: 1px solid var(--aoz-line); margin-bottom: 2.5rem; }
.aoz-kicker { text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 700; color: var(--aoz-accent); margin-bottom: 1rem; }
.aoz-hero h1 { font-size: clamp(2.1rem, 5vw, 3.6rem); line-height: 1.08; max-width: 18ch; margin-bottom: 1.25rem; }
.aoz-lead { font-size: 1.2rem; color: var(--aoz-muted); max-width: 60ch; }
.aoz-actions { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: .75rem; }

/* Buttons: square, confident */
.btn { border-radius: 2px; font-weight: 600; padding: .65rem 1.3rem; }
.btn-primary { background: var(--aoz-accent); border-color: var(--aoz-accent); color: #fff; }
.btn-primary:hover, .btn-primary:focus { background: var(--aoz-accent-dark); border-color: var(--aoz-accent-dark); color: #fff; }
.btn-outline-primary { color: var(--aoz-accent); border-color: var(--aoz-accent); }
.btn-outline-primary:hover { background: var(--aoz-accent); color: #fff; }

/* Cards */
.aoz-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.5rem; margin: 2rem 0 2.5rem; }
.aoz-card { border-top: 3px solid var(--aoz-accent); padding: 1.25rem 0 0; }
.aoz-card h3 { font-size: 1.15rem; margin-bottom: .5rem; }
.aoz-card p { color: var(--aoz-muted); margin: 0; }

/* Sections, lists, formats */
.aoz-section { margin: 2.5rem 0; }
.aoz-section h2, .com-content-article h2 { font-size: 1.6rem; margin-top: 2.25rem; }
.aoz-list { list-style: none; padding: 0; }
.aoz-list li { padding: .85rem 0; border-bottom: 1px solid var(--aoz-line); }
.aoz-list li:last-child { border-bottom: 0; }
.aoz-steps { counter-reset: s; list-style: none; padding: 0; }
.aoz-steps li { counter-increment: s; position: relative; padding: .85rem 0 .85rem 3rem; border-bottom: 1px solid var(--aoz-line); }
.aoz-steps li:before { content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: .85rem; font-weight: 700; color: var(--aoz-accent); }
.aoz-format { padding: 1.75rem 0; border-bottom: 1px solid var(--aoz-line); }
.aoz-format h2 { margin-top: 0 !important; }
.aoz-meta { font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; color: var(--aoz-muted); margin: .5rem 0 0; }
.com-content-article > h1, .com-content-article .item-page > h1, .item-page h1 { font-size: clamp(1.9rem, 4vw, 2.8rem); margin: 1.5rem 0 1rem; }

/* Footer */
.container-footer { background: var(--aoz-ink) !important; background-image: none !important; color: #c9ccd2; }
.container-footer a { color: #fff; }

/* Mobile */
@media (max-width: 767.98px) {
  .aoz-hero { padding: 2rem 0; }
  .aoz-lead { font-size: 1.05rem; }
}
