/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_30_e73a6410.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_31_5d670e3a.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_32_1395117e.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_33_33d52664.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_34_cd49b5d4.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_35_57cf58f9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_33_33d52664.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_34_cd49b5d4.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_35_57cf58f9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_33_33d52664.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_34_cd49b5d4.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_35_57cf58f9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_36_6d4c2277.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_37_a42ec5b2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/asset_38_369436ad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_36_6d4c2277.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_37_a42ec5b2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/asset_38_369436ad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_36_6d4c2277.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_37_a42ec5b2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/asset_38_369436ad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/asset_36_6d4c2277.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/asset_37_a42ec5b2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/asset_38_369436ad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/asset_36_6d4c2277.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/asset_37_a42ec5b2.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Public Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/fonts/asset_38_369436ad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Public Sans',system-ui,sans-serif;color:#15171c;background:#fff;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button{font-family:inherit}
::selection{background:rgba(168,67,15,.18)}
@keyframes necFade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes necMenu{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes necPop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}

/* --- Nav dropdown megamenus ---
   Panels are direct children of <header>, not the trigger link, so
   left:0;right:0 spans the full header width (header is the nearest
   positioned ancestor via position:sticky). Shown/hidden by site.js
   toggling .is-open in response to real mouseenter/mouseleave. */
.nav-dropdown{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #e8e3d9;box-shadow:0 26px 50px -28px rgba(20,15,10,.4);z-index:70}
.nav-dropdown.is-open{display:block;animation:necMenu .18s ease both}

/* --- Generic hover-style elements (see /js/site.js) --- */
[data-hover]{transition:background-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease,border-color .15s ease}

/* --- Member / detail modal (native <dialog>) --- */
dialog.nec-modal{border:none;padding:0;border-radius:18px;width:100%;max-width:540px;box-shadow:0 40px 90px -30px rgba(0,0,0,.6);animation:necPop .2s ease both}
dialog.nec-modal::backdrop{background:rgba(15,13,11,.62);backdrop-filter:blur(3px)}

/* --- Mobile nav toggle ---
   #mobile-nav must default to hidden regardless of viewport width — it's a
   bare <nav> full of links with no other styling, so without this rule it
   renders as a naked list of text links above the fold on every page. */
.mobile-nav-toggle{display:none}
#mobile-nav{display:none;flex-direction:column;background:#fff;border-top:1px solid #e8e3d9;padding:10px 20px 20px}
@media (max-width:1050px){
  /* Both the nav and the Contact Us link carry an inline display:flex from
     the desktop markup, which beats a plain (non-!important) override from
     an external stylesheet — these need !important to actually hide. */
  header > div:first-child nav{display:none !important}
  header .contact-cta{display:none !important}
  header .nav-dropdown{display:none !important}
  .mobile-nav-toggle{display:flex}
  #mobile-nav.open{display:flex}
  #mobile-nav a{padding:12px 0;font-weight:600;border-bottom:1px solid #f0ebe1}

  /* Every section on the site lays out its columns via inline
     grid-template-columns; collapsing all of them to a single column is
     the correct behaviour everywhere the site uses a grid, so a blanket
     rule is more reliable than trying to enumerate each section. Every
     image+text split in the markup already puts the text div before the
     image div in DOM order, so stacking to one column already puts text
     first with no reordering needed. */
  [style*="grid-template-columns"]{grid-template-columns:1fr !important}

  section{padding-left:20px !important;padding-right:20px !important}
  footer{padding-left:20px !important;padding-right:20px !important}
  header > div:first-child{padding-left:20px !important;padding-right:20px !important}
  [style*="padding:9px 40px"]{padding-left:20px !important;padding-right:20px !important}
  .announcement-info{display:none !important}

  /* Desktop section padding (tuned for large viewports) reads as mostly
     dead space at mobile widths; scale the common values down. Matched by
     exact leading padding string since these are shorthand declarations. */
  [style*="padding:104px 40px"]{padding:56px 20px !important}
  [style*="padding:104px 56px 104px 40px"]{padding:56px 20px !important}
  [style*="padding:110px 40px 120px"]{padding:64px 20px !important}
  [style*="padding:96px 40px"]{padding:48px 20px !important}
  [style*="padding:84px 40px 96px"]{padding:48px 20px 56px !important}
  [style*="padding:80px 40px 56px"]{padding:48px 20px 36px !important}
  [style*="padding:80px 40px 96px"]{padding:48px 20px 56px !important}
  [style*="padding:76px 40px 0"]{padding:48px 20px 0 !important}
  [style*="padding:72px 40px 96px"]{padding:44px 20px 56px !important}
  [style*="padding:72px 64px"]{padding:36px 24px !important}
  [style*="padding:64px 40px 58px"]{padding:40px 20px 36px !important}
  [style*="padding:64px 40px 96px"]{padding:40px 20px 56px !important}

  /* Hero bottom stats strip is an absolutely-positioned overlay pinned to
     the bottom of the hero photo on desktop. At mobile widths the hero
     text block (large serif heading + paragraph + two buttons) is taller
     than the hero's min-height, so the overlay's "bottom:0" collides with
     and hides behind the CTA buttons above it. Let it flow normally
     instead of overlaying — but the hero section itself is display:flex
     (row, the default direction) with align-items:center, so once the
     stats strip stops being absolutely positioned it becomes a flex *item*
     sitting beside the content column, not below it. Force column
     direction so the two items stack instead. */
  [style*="min-height:660px"]{flex-direction:column !important;align-items:stretch !important;min-height:0 !important}
  /* The hero photo is landscape (~1.56:1); "cover" against a narrow, tall
     mobile box zooms in hard and centers on a bland strip of plain wall
     rather than the building's swept roofline. Swap in a near-square crop
     that keeps the roofline + mosaic panel in frame, so mobile's own
     "cover" crop lands somewhere interesting instead. */
  .hero-bg{background-image:url('/images/hero-parliament-haus-mobile.jpg') !important;background-position:center 30% !important}
  /* position:relative (not static) — it needs to stay a positioned element
     so it keeps painting above the hero's other position:absolute layers
     (background photo, gradients) in DOM order; a fully static element
     would drop behind them regardless of DOM order. */
  .hero-stats{position:relative !important;backdrop-filter:none !important;background:#ecdfc0 !important;border-top:1px solid rgba(60,47,26,.14) !important;margin-top:28px}
  .hero-stats > div{padding-left:20px !important;padding-right:20px !important}
  .hero-stats > div > div{border-right:none !important;border-bottom:1px solid rgba(60,47,26,.14) !important;padding:16px 0 !important}
  .hero-stats > div > div:last-child{border-bottom:none !important}

  /* Icon + wrapped-text list rows (publication documents, gazettes) center
     the icon against the text block on desktop, which looks disjointed
     once the title/meta wrap to multiple lines at mobile widths. */
  .doc-row{align-items:flex-start !important}
}
