/* ─── SHARED BASE STYLES ─── */
/* Loaded before page-specific CSS. Contains design tokens, reset, nav, search, mobile menu, and footer. */

/* ─── DESIGN TOKENS ─── */
:root {
  --blue-deep: #0A1F44;
  --blue: #0039A6;
  --blue-soft: #E8EEF7;
  --blue-light: #F0F4FA;
  --red: #D52B1E;
  --red-soft: #FDF0EF;
  --white: #FFFFFF;
  --cream: #FAFBFC;
  --surface: #F5F6F8;
  --text: #0F172A;
  --text-secondary: #475569;
  --text-muted: #94A3B8;
  --border: #E2E8F0;
  --border-light: #F1F5F9;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --shadow-sm: 0 1px 2px rgba(15,23,42,0.04);
  --shadow-md: 0 4px 16px rgba(15,23,42,0.06);
  --shadow-lg: 0 12px 40px rgba(15,23,42,0.08);
  --shadow-xl: 0 24px 64px rgba(15,23,42,0.12);
  --transition-fast: 0.15s cubic-bezier(0.4,0,0.2,1);
  --transition-base: 0.3s cubic-bezier(0.4,0,0.2,1);
  --transition-slow: 0.5s cubic-bezier(0.4,0,0.2,1);
  --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ─── RESET & BASE ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--font-sans);
  color: var(--text);
  background: var(--white);
  line-height: 1.6;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; transition: color var(--transition-fast); }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }

/* ─── FLAG RIBBON ─── */
.flag-ribbon {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  height: 3px;
  background: linear-gradient(90deg, var(--white) 33.33%, var(--blue) 33.33%, var(--blue) 66.66%, var(--red) 66.66%);
}

/* ─── NAVIGATION ─── */
.site-nav {
  position: fixed; top: 3px; left: 0; right: 0; z-index: 900;
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-bottom: 1px solid rgba(226,232,240,0.6);
  transition: box-shadow var(--transition-base), background var(--transition-base);
}
.site-nav.scrolled {
  background: rgba(255,255,255,0.95);
  box-shadow: var(--shadow-sm);
}
.nav-container {
  max-width: 1280px; margin: 0 auto;
  height: 68px; display: flex; align-items: center;
  padding: 0 24px; gap: 32px;
}
.nav-brand {
  display: flex; flex-direction: column; flex-shrink: 0; gap: 2px;
}
.nav-brand-name {
  font-family: var(--font-serif); font-size: 20px; font-weight: 700;
  color: var(--blue-deep); letter-spacing: -0.02em; line-height: 1.1;
}
.nav-brand-role {
  font-size: 9.5px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--text-muted);
}
.nav-menu {
  display: flex; gap: 32px; flex: 1; justify-content: center;
}
.nav-menu a {
  font-size: 13px; font-weight: 500; color: var(--text-secondary);
  position: relative; padding: 4px 0; letter-spacing: -0.01em;
  transition: color var(--transition-fast);
}
.nav-menu a::after {
  content: ''; position: absolute; bottom: -2px; left: 50%; width: 0; height: 1.5px;
  background: var(--blue); border-radius: 1px;
  transform: translateX(-50%); transition: width var(--transition-base);
}
.nav-menu a:hover { color: var(--blue-deep); }
.nav-menu a:hover::after { width: 100%; }
.nav-actions {
  display: flex; align-items: center; gap: 12px; flex-shrink: 0;
}
.nav-btn-icon {
  width: 36px; height: 36px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-secondary); transition: all var(--transition-fast);
}
.nav-btn-icon:hover { background: var(--surface); color: var(--blue-deep); }
.nav-btn-primary {
  padding: 10px 22px; background: var(--blue-deep); color: var(--white);
  font-size: 12px; font-weight: 600; letter-spacing: 0.02em;
  border-radius: var(--radius-sm); transition: all var(--transition-base);
}
.nav-btn-primary:hover {
  background: var(--blue); transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(10,31,68,0.25);
}
.nav-burger { display: none; flex-direction: column; gap: 5px; padding: 4px; }
.nav-burger span { width: 22px; height: 1.5px; background: var(--text); border-radius: 1px; transition: var(--transition-base); }

/* Search overlay */
.search-overlay {
  display: none; position: fixed; top: 71px; left: 0; right: 0; z-index: 890;
  background: var(--white); border-bottom: 1px solid var(--border); padding: 16px 24px;
  box-shadow: var(--shadow-md);
}
.search-overlay.open { display: flex; gap: 12px; align-items: center; max-width: 1280px; margin: 0 auto; }
.search-input {
  flex: 1; padding: 11px 16px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  font-family: var(--font-sans); font-size: 14px; outline: none; transition: border-color var(--transition-fast);
  background: var(--surface);
}
.search-input:focus { border-color: var(--blue); }
.search-close { font-size: 22px; color: var(--text-muted); line-height: 1; padding: 4px; }
.search-close:hover { color: var(--text); }

/* Mobile menu */
.mobile-menu {
  display: none; position: fixed; top: 71px; left: 0; right: 0; z-index: 880;
  background: var(--white); border-bottom: 1px solid var(--border);
  flex-direction: column; padding: 8px 0; box-shadow: var(--shadow-lg);
}
.mobile-menu.open { display: flex; }
.mobile-menu a {
  padding: 12px 24px; font-size: 14px; font-weight: 500; color: var(--text-secondary);
  border-bottom: 1px solid var(--border-light); transition: background var(--transition-fast);
}
.mobile-menu a:hover { background: var(--cream); color: var(--blue); }
.mobile-menu-cta {
  margin: 12px 24px 16px; padding: 12px; background: var(--blue-deep); color: var(--white);
  text-align: center; font-size: 12px; font-weight: 600; border-radius: var(--radius-sm);
}

/* ─── INNER HERO (shared base) ─── */
.inner-hero { position: relative; padding: 140px 24px 80px; overflow: hidden; background: var(--cream); }
.inner-hero-content { position: relative; z-index: 2; max-width: 1280px; margin: 0 auto; }
.breadcrumbs { display: flex; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin-bottom: 20px; flex-wrap: wrap; }
.breadcrumbs a { color: rgba(255,255,255,0.7); transition: color var(--transition-fast); }
.breadcrumbs a:hover { color: var(--white); }
.inner-title { font-family: var(--font-serif); font-size: clamp(40px, 6vw, 72px); font-weight: 700; color: var(--white); line-height: 1.05; letter-spacing: -0.03em; }

@media (max-width: 768px) {
  .nav-menu, .nav-btn-primary { display: none; }
  .nav-burger { display: flex; }
  .inner-hero { padding: 120px 20px 60px; }
}

.site-footer{background:var(--blue-deep);padding:48px 24px 24px}.footer-inner{max-width:1280px;margin:0 auto}.footer-grid{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(180px,.8fr) minmax(260px,1fr) minmax(260px,1fr);gap:34px;align-items:start;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:22px}.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}.footer-brand-name{font-family:var(--font-serif);font-size:20px;font-weight:700;color:var(--white);letter-spacing:-.01em}.footer-brand img{width:32px;height:42px;object-fit:contain;opacity:.7;filter:brightness(0) invert(1)}.footer-brand-sub{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:16px}.footer-col-title{font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.3);margin-bottom:16px}.footer-col a,.footer-col span[data-contact]{display:block;font-size:13px;color:rgba(255,255,255,.45);margin-bottom:10px;transition:color var(--transition-fast)}.footer-col a:hover{color:var(--white)}.footer-officials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 14px;max-width:360px}.footer-col a.footer-official{min-height:0;padding:3px 0;border:0;border-radius:0;display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left;color:rgba(255,255,255,.48);margin-bottom:0;transition:all var(--transition-fast)}.footer-col a.footer-official:hover{color:var(--white)}.footer-official svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;fill:none}.footer-official span{font-size:12px;line-height:1.35}.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.footer-copy{font-size:11px;color:rgba(255,255,255,.18)}.footer-policy a{font-size:11px;color:rgba(255,255,255,.18);margin-left:20px;transition:color var(--transition-fast)}.footer-policy a:hover{color:rgba(255,255,255,.45)}@media(max-width:1024px){.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.footer-grid{grid-template-columns:1fr}.footer-grid .footer-col{display:block}.footer-officials{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-bottom{flex-direction:column;align-items:flex-start}.footer-policy a{display:block;margin:0 0 8px}}
