/* ============================================================
   EHGEOM v3 — "State Register" premium edition
   Engraved guilloché · gold foil · Cormorant display
   ============================================================ */

:root {
  --navy-900: #07131f;
  --navy-800: #0a1c2e;
  --navy-700: #102942;
  --navy-600: #18395a;
  --navy-500: #244c72;

  --bordeaux: #6f1d2b;
  --bordeaux-2: #8a2737;

  --gold:       #c4a253;
  --gold-deep:  #9a7a31;
  --gold-bright:#ecd28f;
  --gold-pale:  #f3e6c4;

  --ivory:   #f6f1e7;
  --ivory-2: #efe7d6;
  --card:    #fffefa;
  --line:    #e0d6bf;
  --line-2:  #cfc1a0;

  --ink:      #16202c;
  --ink-soft: #56606f;

  --on-navy:      #f2ecdf;
  --on-navy-soft: #9fb0c2;

  /* hydro accent for geological art */
  --accent: #3aa6d4;
  --accent-deep: #1c7fb0;

  --display: "Cormorant Garamond", Georgia, serif;
  --serif: "Source Serif 4", Georgia, serif;
  --sans:  "IBM Plex Sans", system-ui, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, monospace;

  --maxw: 1280px;
  --r: 2px;
  --foil: linear-gradient(96deg, #9a7a31 0%, #d9b863 22%, #f3e6c4 40%, #c4a253 56%, #ecd28f 74%, #9a7a31 100%);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--sans);
  color: var(--ink);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
  line-height: 1.62;
  overflow-x: hidden;
  font-feature-settings: "onum" 1, "pnum" 1;
}
/* subtle paper grain */
body::before {
  content:""; position: fixed; inset: 0; pointer-events: none; z-index: 1; opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }

h1,h2,h3,h4 { font-weight: 600; line-height: 1.08; letter-spacing: -0.005em; }
.display { font-family: var(--display); font-weight: 500; letter-spacing: 0; }

/* gold foil text */
.foil {
  background: var(--foil);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; color: transparent;
}

/* ceremonial label */
.label {
  display: inline-flex; align-items: center; gap: 14px;
  font-family: var(--mono); font-size: 11.5px; letter-spacing: 0.34em; text-transform: uppercase;
  color: var(--gold-deep); font-weight: 500;
}
.label::before { content:""; height: 1px; width: 40px; background: var(--gold); }
.label.center { justify-content: center; }
.label.center::after { content:""; height: 1px; width: 40px; background: var(--gold); }
.label.on-navy { color: var(--gold-bright); }
.label.on-navy::before, .label.on-navy::after { background: var(--gold); opacity: .6; }

/* ornamental divider */
.ornament { display:flex; align-items:center; justify-content:center; gap: 14px; margin: 22px auto 0; }
.ornament i { height:1px; width: 80px; background: linear-gradient(90deg, transparent, var(--gold)); }
.ornament i:last-child { background: linear-gradient(90deg, var(--gold), transparent); }
.ornament svg { width: 22px; height: 22px; color: var(--gold); }

/* ---------- Utility bar ---------- */
.util { background: var(--navy-900); color: var(--on-navy-soft); font-size: 12.5px; border-bottom: 1px solid rgba(196,162,83,0.24); position: relative; z-index: 3; }
.util .wrap { display:flex; align-items:center; justify-content:space-between; height: 42px; }
.util .l, .util .r { display:flex; align-items:center; gap: 22px; }
.util .tricolor { display:inline-flex; height: 13px; width: 22px; border-radius: 1px; overflow:hidden; box-shadow: 0 0 0 1px rgba(255,255,255,0.14); }
.util .tricolor i { flex:1; }
.util a { color: var(--on-navy-soft); text-decoration:none; }
.util a:hover { color: var(--gold-bright); }
.util .az { display:flex; align-items:center; gap: 8px; }
.util .az button, .util .ulang button { background:none;border:none;color:var(--on-navy-soft);cursor:pointer;font-family:var(--mono);font-size:12px; padding:3px 7px; border-radius:2px; }
.util .az button:hover { color:#fff; }
.util .ulang { display:flex; gap:2px; }
.util .ulang button.active { background: var(--gold); color: var(--navy-900); }
.util .ulang button:hover:not(.active){ color:#fff; }

/* ---------- Masthead ---------- */
.masthead { background: var(--ivory); border-bottom: 1px solid var(--line); position: relative; z-index: 3; }
.masthead .wrap { display:flex; align-items:center; gap: 24px; padding: 26px 40px; }
.medallion { width: 78px; height: 78px; flex:none; position: relative; }
.titleblock .pre { font-family: var(--mono); font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--gold-deep); }
.titleblock { flex: 0 0 auto; }
.titleblock .nm { font-family: var(--display); font-size: 34px; font-weight: 600; color: var(--navy-800); letter-spacing: -0.005em; margin-top: 1px; line-height: 1.05; white-space: nowrap; width: fit-content; padding-right: 2px; }
.titleblock .sub { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; letter-spacing: .03em; }
.masthead .right { margin-left:auto; display:flex; align-items:center; gap: 24px; }
.ministry-mark { text-align:right; line-height: 1.25; padding-right: 24px; border-right: 1px solid var(--line); }
.ministry-mark .k { font-family: var(--mono); font-size: 10px; letter-spacing:.2em; text-transform:uppercase; color: var(--ink-soft); }
.ministry-mark .v { font-family: var(--display); font-size: 18px; color: var(--navy-700); font-weight: 600; }
.search-btn { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--card); display:grid; place-items:center; cursor:pointer; color: var(--navy-700); transition: all .2s; }
.search-btn:hover { border-color: var(--gold); color: var(--gold-deep); transform: rotate(-8deg); }

/* ---------- Nav band ---------- */
.navband { background: var(--navy-800); position: sticky; top: 0; z-index: 60; }
.navband .goldedge { height: 2px; background: var(--foil); }
.navband .wrap { display:flex; align-items:center; }
.navband a { color: var(--on-navy); text-decoration:none; font-size: 13.5px; font-weight: 500; letter-spacing: .02em; padding: 18px 22px; position: relative; transition: color .2s; }
.navband a:not(.navcta)::after { content:""; position:absolute; left:22px; right:22px; bottom:0; height:2px; background: var(--gold); transform: scaleX(0); transform-origin:center; transition: transform .28s; }
.navband a:not(.navcta):hover { color: var(--gold-bright); }
.navband a:not(.navcta):hover::after { transform: scaleX(1); }
.navband .spacer { margin-left:auto; }
.navband .navcta { background: var(--bordeaux); color:#fff; padding: 9px 22px; margin: 9px 0 9px 14px; border-radius: var(--r); font-weight:600; box-shadow: inset 0 0 0 1px rgba(236,210,143,0.3); }
.navband .navcta:hover { background: var(--bordeaux-2); }

/* ---------- Buttons ---------- */
.btn { font-family: var(--sans); font-weight:600; font-size:14.5px; cursor:pointer; text-decoration:none; display:inline-flex; align-items:center; gap:11px; padding: 14px 30px; border-radius: var(--r); transition: all .22s; border:none; letter-spacing: .01em; }
.btn-gold { background: var(--foil); color: #3a2c08; box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset, 0 10px 24px -14px rgba(154,122,49,0.8); }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset, 0 16px 30px -14px rgba(154,122,49,0.9); }
.btn-outline { background:transparent; color: var(--on-navy); box-shadow: inset 0 0 0 1px rgba(236,210,143,0.4); }
.btn-outline:hover { box-shadow: inset 0 0 0 1px var(--gold); color: var(--gold-bright); }
.btn-bordeaux { background: var(--bordeaux); color:#fff; }
.btn-bordeaux:hover { background: var(--bordeaux-2); transform: translateY(-2px); }

/* ---------- HERO ---------- */
.hero { position: relative; background: radial-gradient(120% 100% at 70% 10%, var(--navy-700), var(--navy-900) 70%); color: var(--on-navy); overflow: hidden; }
.hero .guillobg { position:absolute; inset:0; display:grid; place-items:center; opacity:0.9; }
.hero .guillobg [data-guilloche] { width: 1100px; height: 1100px; max-width: none; }
.hero .vign { position:absolute; inset:0; background: radial-gradient(120% 100% at 50% 50%, transparent 40%, rgba(7,19,31,0.55)); }
.hero .wrap { position:relative; display:grid; grid-template-columns: 1.04fr 0.96fr; gap: 54px; align-items:center; padding: 100px 40px 104px; }
.hero h1 { font-family: var(--display); font-size: clamp(46px, 6vw, 82px); font-weight: 500; color:#fff; margin: 24px 0 0; max-width: 13ch; line-height: 1.02; letter-spacing: -0.01em; }
.hero h1 em { font-style: italic; }
.hero .lede { margin-top: 26px; font-family: var(--serif); font-size: 19px; color: var(--on-navy-soft); max-width: 46ch; line-height: 1.62; }
.hero .rule { width: 70px; height: 2px; background: var(--foil); margin: 28px 0; }
.hero .actions { display:flex; gap: 16px; flex-wrap:wrap; }
.hero .seal-note { margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(196,162,83,0.28); display:flex; align-items:center; gap: 16px; font-size: 13px; color: var(--on-navy-soft); }
.hero .seal-note b { color: var(--on-navy); }

/* double engraved frame around the section diagram */
.plate { position: relative; padding: 22px; }
.plate::before { content:""; position:absolute; inset:0; border: 1px solid rgba(236,210,143,0.45); }
.plate::after { content:""; position:absolute; inset:8px; border: 1px solid rgba(196,162,83,0.28); }
.plate .corner { position:absolute; width: 12px; height:12px; }
.plate .corner::before, .plate .corner::after { content:""; position:absolute; background: var(--gold-bright); }
.plate .corner::before { width:12px; height:2px; } .plate .corner::after { width:2px; height:12px; }
.plate .corner.tl { top:2px; left:2px; } .plate .corner.tr { top:2px; right:2px; }
.plate .corner.bl { bottom:2px; left:2px; } .plate .corner.br { bottom:2px; right:2px; }
.plate .cap { position:absolute; top: 14px; left:50%; transform: translateX(-50%); font-family: var(--mono); font-size: 10px; letter-spacing:.28em; text-transform:uppercase; color: var(--gold-bright); background: var(--navy-800); padding: 0 12px; z-index:3; }
.aquifer { width:100%; height:auto; display:block; }

/* ---------- Sections ---------- */
section { padding: 116px 0; position: relative; }
.center-head { text-align:center; max-width: 780px; margin: 0 auto; }
.center-head h2 { font-family: var(--display); font-size: clamp(38px, 4.4vw, 58px); margin-top: 18px; color: var(--navy-800); font-weight: 600; line-height: 1.04; }
.center-head p { margin-top: 18px; font-family: var(--serif); font-size: 18px; color: var(--ink-soft); }
.light { background: var(--ivory); }
.light-2 { background: var(--ivory-2); }

/* section top hairline ornament */
.seam { position:absolute; top:0; left:0; right:0; height: 1px; background: linear-gradient(90deg, transparent, var(--line-2) 30%, var(--line-2) 70%, transparent); }

/* ---------- Quick access tiles ---------- */
.tiles { display:grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin-top: 60px; background: var(--line); border: 1px solid var(--line); }
.tile { padding: 42px 32px; background: var(--card); position: relative; transition: background .25s; }
.tile .rib { position:absolute; top:0; left:0; right:0; height:3px; background: var(--foil); transform: scaleX(0); transform-origin:left; transition: transform .35s ease; }
.tile:hover { background: var(--ivory); }
.tile:hover .rib { transform: scaleX(1); }
.tile .no { font-family: var(--display); font-size: 30px; color: var(--gold-deep); font-weight: 600; }
.tile .ic { width: 50px; height: 50px; color: var(--navy-700); margin: 16px 0 18px; }
.tile h3 { font-family: var(--display); font-size: 24px; color: var(--navy-800); font-weight: 600; }
.tile p { margin-top: 10px; font-size: 14px; color: var(--ink-soft); }
.tile .lk { margin-top: 20px; font-family: var(--mono); font-size: 11.5px; letter-spacing:.1em; color: var(--bordeaux); display:flex; align-items:center; gap:8px; text-transform: uppercase; }

/* ---------- Stat band ---------- */
.statband { background: var(--navy-900); color: var(--on-navy); padding: 0; position: relative; overflow:hidden; }
.statband .gw { position:absolute; inset:0; opacity:.6; }
.statband .grid { position:relative; display:grid; grid-template-columns: repeat(4,1fr); }
.statband .s { padding: 64px 32px; text-align:center; border-right: 1px solid rgba(236,210,143,0.14); }
.statband .s:last-child { border-right:none; }
.statband .n { font-family: var(--display); font-size: 66px; font-weight: 600; line-height:1; }
.statband .n small { font-size: 28px; }
.statband .t { margin-top: 14px; font-size: 13.5px; color: var(--on-navy-soft); max-width: 22ch; margin-inline:auto; }

/* ---------- Mandate / leadership ---------- */
.mandate .wrap { display:grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items:center; }
.mandate h2 { font-family: var(--display); font-size: clamp(36px,4vw,52px); color: var(--navy-800); margin-top: 18px; font-weight:600; line-height:1.04; }
.mandate .body { font-family: var(--serif); color: var(--ink); font-size: 17px; margin-top: 22px; }
.mandate .body p { margin-top: 16px; color: var(--ink-soft); }
.mandate .body p:first-child::first-letter {
  font-family: var(--display); font-size: 68px; line-height: .8; float: left; margin: 6px 14px 0 0;
  color: var(--bordeaux); font-weight: 600;
}
.leadcard { background: radial-gradient(120% 100% at 80% 0%, var(--navy-700), var(--navy-900)); color: var(--on-navy); padding: 46px; position: relative; overflow:hidden; }
.leadcard .gw { position:absolute; right:-30%; top:-20%; width: 90%; opacity:.5; }
.leadcard .quote-mark { font-family: var(--display); font-size: 110px; line-height: .5; color: var(--gold); opacity:.6; }
.leadcard blockquote { font-family: var(--display); font-style: italic; font-size: 27px; color:#fff; margin-top: 6px; line-height: 1.4; position:relative; }
.leadcard .who { margin-top: 30px; display:flex; align-items:center; gap: 16px; padding-top: 24px; border-top: 1px solid rgba(236,210,143,0.28); position:relative; }
.leadcard .avatar { width: 58px; height: 58px; border-radius:50%; background: var(--navy-600); box-shadow: 0 0 0 1px var(--gold); display:grid; place-items:center; font-family: var(--display); font-size: 22px; color: var(--gold-bright); }
.leadcard .who .nm { color:#fff; font-weight:600; font-size: 15px; }
.leadcard .who .rl { color: var(--on-navy-soft); font-size: 12.5px; }

.timeline { margin-top: 32px; }
.tl { display:grid; grid-template-columns: 96px 1fr; gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); }
.tl:last-child { border-bottom: 1px solid var(--line); }
.tl .yr { font-family: var(--display); font-size: 30px; color: var(--bordeaux); font-weight: 600; }
.tl h4 { font-family: var(--display); font-size: 19px; color: var(--navy-800); font-weight: 600; }
.tl p { margin-top: 3px; font-size: 14px; color: var(--ink-soft); }

/* ---------- Map ---------- */
.map-wrap { display:grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items:center; margin-top: 60px; }
.md-map { width:100%; height:auto; }

/* Outer cabinet frame — gold double rule + ornamental corners */
.md-map-frame {
  position: relative;
  padding: 14px;
  background:
    linear-gradient(180deg, #faf3df 0%, #f1ece1 100%);
  border: 1px solid var(--gold-deep);
  outline: 1px solid var(--gold);
  outline-offset: -7px;
  box-shadow:
    0 24px 60px -18px rgba(10,28,46,0.28),
    0 6px 18px rgba(10,28,46,0.08),
    inset 0 0 0 1px rgba(255,255,255,0.65);
}
/* corner medallions */
.md-map-frame::before,
.md-map-frame::after {
  content: ""; position: absolute; width: 26px; height: 26px;
  border: 1px solid var(--gold);
  background:
    radial-gradient(circle at 50% 50%, var(--gold) 0 1.5px, transparent 2px) center/100% 100% no-repeat;
}
.md-map-frame::before { top: -2px; left: -2px; border-right: 0; border-bottom: 0; }
.md-map-frame::after  { bottom: -2px; right: -2px; border-left: 0; border-top: 0; }

/* Leaflet canvas: cream paper, soft inner vignette via box-shadow */
.md-leaflet {
  width: 100%; height: 540px;
  background:
    radial-gradient(ellipse at center, #f7eed3 0%, #f1ece1 60%, #ebe1c8 100%);
  position: relative;
  box-shadow: inset 0 0 60px rgba(122, 92, 32, 0.18);
}
.md-leaflet::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 30px rgba(122, 92, 32, 0.22);
}

.leaflet-container { font-family: var(--sans, "IBM Plex Sans", sans-serif); background: transparent !important; outline: 0; }
.leaflet-control-zoom { border: 1px solid var(--gold-deep) !important; box-shadow: 0 3px 8px rgba(10,28,46,0.15) !important; }
.leaflet-control-zoom a {
  border-radius: 0 !important;
  background: linear-gradient(180deg, #faf3df, #ecdfb6) !important;
  color: var(--navy-800, #0a1c2e) !important;
  border-bottom: 1px solid var(--gold-deep) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,0.6);
  font-family: var(--display, "Cormorant Garamond", serif) !important;
  font-weight: 600 !important;
}
.leaflet-control-zoom a:last-child { border-bottom: 0 !important; }
.leaflet-control-zoom a:hover { background: var(--gold-pale, #f3e6c4) !important; color: var(--bordeaux) !important; }
.leaflet-control-attribution {
  background: rgba(241,236,225,0.85) !important;
  font-size: 9.5px !important; color: var(--ink-soft, #56606f) !important;
  padding: 2px 8px !important;
  border-top: 1px solid var(--gold);
  border-left: 1px solid var(--gold);
  font-family: var(--sans, "IBM Plex Sans", sans-serif) !important;
  letter-spacing: 0.02em;
}
.leaflet-control-attribution a { color: var(--navy-600) !important; text-decoration: none; }
.leaflet-control-attribution a:hover { color: var(--bordeaux) !important; }

/* Compass rose control (top-right corner of the map) */
.md-rose {
  width: 56px; height: 56px;
  margin: 10px 10px 0 0 !important;
  filter: drop-shadow(0 2px 4px rgba(10,28,46,0.25));
  pointer-events: none;
  opacity: 0.92;
}
.md-rose svg { width: 100%; height: 100%; display: block; }

/* Moldova border subtle glow via SVG filter (Leaflet renders paths in an <svg>) */
.leaflet-overlay-pane svg path.md-border-outer,
.leaflet-overlay-pane path.md-border-outer { /* fallback selector */
  filter: drop-shadow(0 0 4px rgba(196,162,83,0.55));
}

/* Pins */
.md-pin-wrap { background: transparent !important; border: 0 !important; }
.md-pin { position: relative; display: flex; align-items: center; white-space: nowrap; }
/* Label direction variants — re-positions the label relative to the dot */
.md-pin-dir-r { flex-direction: row; }
.md-pin-dir-l { flex-direction: row-reverse; }
.md-pin-dir-l .md-pin-label { margin-left: 0; margin-right: 7px; }
.md-pin-dir-tr { flex-direction: column; align-items: flex-start; }
.md-pin-dir-tl { flex-direction: column; align-items: flex-end; }
.md-pin-dir-tr .md-pin-label,
.md-pin-dir-tl .md-pin-label { margin-left: 0; margin-bottom: 3px; order: -1; }
.md-pin-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--bordeaux, #6f1d2b);
  border: 1.5px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.30), 0 0 0 1px rgba(196,162,83,0.4);
  flex-shrink: 0;
}
.md-pin-label {
  margin-left: 7px;
  font-size: 10.5px; font-weight: 600;
  color: var(--navy-800, #0a1c2e);
  background: linear-gradient(180deg, #faf3df, #f1ece1);
  padding: 2px 8px;
  border: 1px solid var(--gold-deep, #9a7a31);
  font-family: var(--sans, "IBM Plex Sans", sans-serif);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 1px 3px rgba(10,28,46,0.12);
}
.md-pin-seat .md-pin-dot {
  width: 13px; height: 13px;
  background:
    radial-gradient(circle at 35% 35%, #ecd28f 0%, var(--gold, #c4a253) 55%, var(--gold-deep, #9a7a31) 100%);
  border: 2px solid #fff;
  box-shadow: 0 2px 7px rgba(122,92,32,0.55), 0 0 0 1px var(--gold-deep);
}
.md-pin-seat .md-pin-pulse {
  position: absolute; left: -7px; top: -7px;
  width: 27px; height: 27px; border-radius: 50%;
  background: var(--gold, #c4a253); opacity: 0.32;
  animation: md-pulse-seat 2.8s ease-out infinite;
  pointer-events: none;
}
.md-pin-seat .md-pin-pulse-2 {
  animation-delay: 1.4s;
}
.md-pin-seat .md-pin-label {
  font-weight: 700;
  border-color: var(--gold, #c4a253);
  background: linear-gradient(180deg, #ecd28f, #f3e6c4);
  color: var(--navy-900);
  box-shadow: 0 2px 6px rgba(122,92,32,0.30);
}
@keyframes md-pulse-seat {
  0%   { transform: scale(0.8); opacity: 0.40; }
  70%  { opacity: 0; }
  100% { transform: scale(2.2); opacity: 0; }
}
.coverage { display:grid; grid-template-columns: repeat(2,1fr); gap: 1px; margin-top: 30px; background: var(--line); border:1px solid var(--line); }
.cov { padding: 26px 28px; background: var(--card); }
.cov .n { font-family: var(--display); font-size: 40px; font-weight:600; color: var(--navy-800); line-height:1; }
.cov .n small { color: var(--gold-deep); }
.cov .t { font-size: 13px; color: var(--ink-soft); margin-top: 6px; }

/* ---------- News ---------- */
.news-layout { display:grid; grid-template-columns: 1.25fr 1fr; gap: 50px; margin-top: 60px; align-items:start; }
.feature { background: var(--card); border:1px solid var(--line); }
.feature .ph { height: 300px; position: relative; background: var(--navy-800); overflow:hidden; border-bottom: 2px solid var(--gold); display:grid; place-items:center; }
.feature .ph .gw { position:absolute; inset:0; opacity:.55; }
.feature .ph .seal { width: 130px; height: 152px; position:relative; }
.feature .body { padding: 36px; }
.feature .meta { display:flex; gap: 14px; align-items:center; font-family: var(--mono); font-size: 11.5px; }
.feature .tag { color: var(--gold-bright); background: var(--bordeaux); padding: 4px 11px; letter-spacing:.1em; text-transform:uppercase; font-size: 10.5px; }
.feature .date { color: var(--ink-soft); }
.feature h3 { font-family: var(--display); font-size: 30px; margin-top: 16px; color: var(--navy-800); font-weight:600; line-height:1.08; }
.feature p { font-family: var(--serif); color: var(--ink-soft); margin-top: 14px; }
.newslist { display:flex; flex-direction:column; }
.ni { display:grid; grid-template-columns: 70px 1fr; gap: 22px; padding: 24px 0; border-top: 1px solid var(--line); text-decoration:none; color:inherit; transition: all .2s; }
.ni:last-child { border-bottom:1px solid var(--line); }
.ni:hover { padding-left: 10px; }
.ni:hover h4 { color: var(--bordeaux); }
.ni .d { text-align:center; border-right: 2px solid var(--gold); padding-right: 18px; }
.ni .d .day { font-family: var(--display); font-size: 30px; font-weight:600; color: var(--navy-800); line-height:1; }
.ni .d .mo { font-family: var(--mono); font-size: 10.5px; text-transform:uppercase; color: var(--ink-soft); letter-spacing:.14em; margin-top:2px; }
.ni .tag2 { font-family: var(--mono); font-size: 10.5px; letter-spacing:.12em; text-transform:uppercase; color: var(--gold-deep); }
.ni h4 { font-family: var(--display); font-size: 20px; color: var(--navy-800); margin-top: 4px; transition: color .2s; font-weight: 600; line-height:1.15; }

/* ---------- Documents ---------- */
.docs { display:grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 60px; }
.doc { background: var(--card); border:1px solid var(--line); padding: 32px; display:flex; gap: 20px; align-items:flex-start; text-decoration:none; color:inherit; transition: all .22s; position:relative; overflow:hidden; }
.doc .gw { position:absolute; right:-40%; bottom:-40%; width: 70%; opacity:.3; pointer-events:none; }
.doc:hover { border-color: var(--gold); box-shadow: 0 24px 46px -30px rgba(10,28,46,0.45); transform: translateY(-3px); }
.doc .seal { width: 50px; height: 60px; flex:none; }
.doc .k { font-family: var(--mono); font-size: 10.5px; letter-spacing:.12em; text-transform:uppercase; color: var(--gold-deep); }
.doc h4 { font-family: var(--display); font-size: 22px; color: var(--navy-800); margin-top: 5px; font-weight:600; }
.doc .meta { font-size: 12.5px; color: var(--ink-soft); margin-top: 8px; font-family: var(--mono); position:relative; }

/* ---------- Quote CTA ---------- */
.quote-cta { background: radial-gradient(120% 120% at 20% 20%, var(--navy-700), var(--navy-900)); color: var(--on-navy); position:relative; overflow:hidden; }
.quote-cta .gw { position:absolute; right:-12%; bottom:-30%; width: 620px; opacity:.5; }
.quote-cta .wrap { position:relative; display:grid; grid-template-columns: 1.06fr 1fr; gap: 64px; align-items:center; }
.quote-cta h2 { font-family: var(--display); color:#fff; font-size: clamp(36px,4.2vw,54px); margin-top:18px; font-weight:600; line-height:1.04; }
.quote-cta p { font-family: var(--serif); color: var(--on-navy-soft); margin-top: 18px; font-size: 18px; max-width: 44ch; }
.qform { background: rgba(255,255,255,0.04); border:1px solid rgba(236,210,143,0.28); padding: 38px; backdrop-filter: blur(2px); }
.qform .row { display:grid; grid-template-columns:1fr 1fr; gap: 16px; }
.field { margin-bottom: 18px; }
.field label { display:block; font-family: var(--mono); font-size: 10.5px; letter-spacing:.1em; text-transform:uppercase; color: var(--on-navy-soft); margin-bottom: 8px; }
.field input, .field select { width:100%; background: rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.16); border-radius: var(--r); padding: 13px 15px; color:#fff; font-family: var(--sans); font-size: 14.5px; }
.field input::placeholder { color:#70839a; }
.field input:focus, .field select:focus { outline:none; border-color: var(--gold); background: rgba(196,162,83,0.08); }
.field select option { color:#000; }
.qform .btn { width:100%; justify-content:center; }

/* ---------- Contact ---------- */
.contact-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; margin-top: 60px; background: var(--line); border:1px solid var(--line); }
.cc { padding: 38px; background: var(--card); }
.cc .ic { width: 34px; height: 34px; color: var(--gold-deep); margin-bottom: 20px; }
.cc h4 { font-family: var(--mono); font-size: 10.5px; text-transform:uppercase; letter-spacing:.16em; color: var(--ink-soft); font-weight:500; }
.cc .big { font-family: var(--display); font-size: 25px; color: var(--navy-800); margin-top: 10px; font-weight:600; }
.cc .sub { font-size: 13.5px; color: var(--ink-soft); margin-top: 8px; }

/* ---------- Footer ---------- */
.footer { background: var(--navy-900); color: var(--on-navy-soft); position:relative; overflow:hidden; }
.footer .goldrule { height: 2px; background: var(--foil); }
.footer .gw { position:absolute; left:50%; top:-40%; transform:translateX(-50%); width: 900px; opacity:.4; }
.footer .top { position:relative; display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 44px; padding: 72px 0 52px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.footer .fbrand { display:flex; gap: 18px; align-items:flex-start; }
.footer .fbrand .seal { width: 64px; height: 76px; flex:none; }
.footer .fbrand .nm { color:#fff; font-family: var(--display); font-size: 22px; font-weight:600; }
.footer .fbrand p { font-size: 13.5px; margin-top: 10px; max-width: 36ch; line-height: 1.65; }
.footer h5 { color:#fff; font-family: var(--mono); font-size: 11px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; margin-bottom: 20px; }
.footer a { color: var(--on-navy-soft); text-decoration:none; display:block; padding: 6px 0; font-size: 14px; }
.footer a:hover { color: var(--gold-bright); }
.footer .accr { display:flex; gap: 10px; margin-top: 20px; flex-wrap:wrap; }
.footer .accr span { font-family: var(--mono); font-size: 10.5px; padding: 6px 11px; border:1px solid rgba(236,210,143,0.3); color: var(--gold-bright); }
.footer .bottom { position:relative; display:flex; justify-content:space-between; align-items:center; padding: 26px 0 48px; font-size: 12.5px; }
.footer .bottom .tricolor { display:inline-flex; height:13px; width:22px; border-radius:1px; overflow:hidden; vertical-align:middle; margin-right:8px; }
.footer .bottom .tricolor i { flex:1; }

/* reveal */
.reveal { opacity:0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }

body.fs-lg { font-size: 17.5px; }

@media (max-width: 1000px) {
  .hero .wrap, .mandate .wrap, .map-wrap, .news-layout, .quote-cta .wrap { grid-template-columns: 1fr; }
  .tiles, .statband .grid { grid-template-columns: 1fr 1fr; }
  .docs, .contact-grid { grid-template-columns: 1fr; }
  .md-leaflet { height: 420px; }
}
@media (max-width: 620px) {
  .wrap { padding: 0 22px; }
  .tiles, .statband .grid, .footer .top, .coverage { grid-template-columns: 1fr; }
  .masthead .right { display:none; }
  .titleblock .nm { white-space: normal; font-size: 27px; }
  .util .l .hide-sm { display:none; }
  .navband .wrap { overflow-x:auto; }
}
