/* ==========================================================================
   Embassy of India, Caracas — Stylesheet
   Layout from the "new-ui" design, reworked to the
   Digital Brand Identity Manual (DBIM) v3, Jan 2025 and GIGW 3.0.
   ========================================================================== */


/* ---------------------------------------------------------------------- */
/* 0. NOTO SANS — self-hosted (DBIM §4.1; no third-party font request)     */
/* ---------------------------------------------------------------------- */
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/noto-sans-devanagari-400-normal.woff2) format("woff2"); unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/noto-sans-devanagari-500-normal.woff2) format("woff2"); unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/noto-sans-devanagari-600-normal.woff2) format("woff2"); unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:700; font-display:swap; src:url(fonts/noto-sans-devanagari-700-normal.woff2) format("woff2"); unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/noto-sans-latin-ext-400-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/noto-sans-latin-ext-500-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/noto-sans-latin-ext-600-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:700; font-display:swap; src:url(fonts/noto-sans-latin-ext-700-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:400; font-display:swap; src:url(fonts/noto-sans-latin-400-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:500; font-display:swap; src:url(fonts/noto-sans-latin-500-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:600; font-display:swap; src:url(fonts/noto-sans-latin-600-normal.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; }
@font-face{ font-family:"Noto Sans"; font-style:normal; font-weight:700; font-display:swap; src:url(fonts/noto-sans-latin-700-normal.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; }

/* ---------------------------------------------------------------------- */
/* 1. DESIGN TOKENS                                                        */
/*    Primary palette: ONE colour group (DBIM §2.1, Figure 1) — "Blue":    */
/*    #162F6A · #214AAB · #5279D7 · #A3BBF3 · #D2DFFF                      */
/* ---------------------------------------------------------------------- */
:root{
  --key-900:#162F6A;   /* key colour — darkest shade: footer, icons, PM quote, headings */
  --key-700:#214AAB;   /* buttons, links, active states */
  --key-500:#5279D7;
  --key-200:#A3BBF3;   /* borders */
  --key-50:#D2DFFF;    /* light backgrounds, icon circles, hover */

  /* Functional palette — exact DBIM Table 1 values */
  --linen:#EBEAEA;
  --inclusive:#FFFFFF;
  --text:#150202;      /* Deep Earthy Brown */
  --success:#198754;
  --warning:#FFC107;
  --error:#DC3545;
  --info:#0D6EFD;
  --grey1:#C6C6C6;
  --grey2:#8E8E8E;
  --grey3:#606060;

  --card-shadow:0 2px 8px rgba(0,0,0,.08);
  --font:"Noto Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --content-width:1440px;
  --fs-base:16px;
}
html.hc{
  --key-900:#000; --key-700:#000; --key-200:#fff; --key-50:#fff;
  --linen:#fff; --text:#000; --info:#0000EE; --grey3:#000;
}
html.hc img{ filter:grayscale(1) contrast(1.1); }

/* ---------------------------------------------------------------------- */
/* 2. BASE                                                                 */
/* ---------------------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ font-size:var(--fs-base); scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--inclusive); color:var(--text);
  font-family:var(--font); font-size:1rem; font-weight:400; line-height:1.5;
}
a{ color:var(--info); text-decoration:none; }   /* DBIM Table 1: Blue #0D6EFD for hyperlinks */
a:hover{ color:var(--key-900); text-decoration:underline; }
img{ max-width:100%; display:block; }
picture{ display:contents; }   /* WebP <source> wrapper must not change layout */
picture > source{ display:none; }
img[data-fallback]{ background:var(--linen); }
button{ font:inherit; }
ul{ list-style:none; margin:0; padding:0; }
:focus-visible{ outline:3px solid var(--warning); outline-offset:2px; }

/* Type scale — desktop (DBIM Table 3); body text left-aligned */
h1,h2,h3,h4{ font-family:var(--font); color:var(--key-900); margin:0 0 16px; line-height:1.3; }
h1{ font-size:2.25rem; font-weight:700; }
h2{ font-size:1.5rem;  font-weight:700; }
h3{ font-size:1.25rem; font-weight:600; }
h4{ font-size:1rem;    font-weight:600; }
p{ margin:0 0 12px; }

.wrap{ max-width:var(--content-width); margin:0 auto; padding:0 32px; }
.card{ background:var(--key-50); border:1px solid var(--key-200); border-radius:0; box-shadow:var(--card-shadow); }
.icon{ width:22px; height:22px; flex:none; stroke:currentColor; fill:none; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.icon.sm{ width:16px; height:16px; }
.icon.md{ width:20px; height:20px; }
.sr-only{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px; }
.skip-link{ position:absolute; left:-9999px; top:0; background:var(--key-900); color:#fff; padding:10px 16px; z-index:2000; font-weight:600; }
.skip-link:focus{ left:10px; top:10px; color:#fff; }
.section-title{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:24px; }
.section-title h2{ margin:0; position:relative; padding-bottom:8px; }
.section-title h2::after{ content:""; position:absolute; left:0; bottom:0; width:48px; height:4px; background:var(--key-700); }
.ft{ font-size:.6875rem; font-weight:700; color:var(--error); border:1px solid currentColor; padding:0 4px; margin-left:4px; vertical-align:1px; }
.btn-primary{ display:inline-flex; align-items:center; gap:6px; background:var(--key-700); color:#fff; padding:10px 20px; font-size:.875rem; font-weight:600; border:2px solid var(--key-700); cursor:pointer; }
.btn-primary:hover,.btn-primary:focus-visible{ background:var(--key-900); border-color:var(--key-900); color:#fff; text-decoration:none; }
.btn-outline{ display:inline-flex; align-items:center; gap:6px; background:#fff; color:var(--key-700); padding:8px 18px; font-size:.875rem; font-weight:600; border:2px solid var(--key-700); cursor:pointer; }
.btn-outline:hover,.btn-outline:focus-visible{ background:var(--key-700); color:#fff; text-decoration:none; }
.ctl-btn{ width:34px; height:34px; border:1px solid var(--key-200); background:#fff; color:var(--key-900); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.ctl-btn:hover{ background:var(--key-50); }

/* ---------------------------------------------------------------------- */
/* 3. USER-CONTROLS BAR                                                    */
/* ---------------------------------------------------------------------- */
.utility-bar{ background:var(--key-900); color:#fff; font-size:.8125rem; }
.utility-bar .wrap{ display:flex; justify-content:space-between; align-items:center; padding:6px 32px; flex-wrap:wrap; gap:8px; min-height:40px; }
.utility-bar a{ color:#fff; }
.utility-bar a:hover{ color:#fff; text-decoration:underline; }
.util-links{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.util-right{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.ctl-group{ display:flex; align-items:center; gap:5px; }
.ctl-group button,.ctl-group a{
  background:none; border:1px solid rgba(255,255,255,.55); color:#fff; border-radius:3px;
  min-width:28px; height:26px; padding:0 8px; font-size:.75rem; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.ctl-group button:hover,.ctl-group a:hover,
.ctl-group button[aria-pressed="true"],.ctl-group a[aria-current="true"]{ background:#fff; color:var(--key-900); text-decoration:none; }

/* ---------------------------------------------------------------------- */
/* 4. HEADER — Logo Lockup 3A (DBIM §5.2.3) + search                       */
/* ---------------------------------------------------------------------- */
header.site-header{ border-bottom:1px solid var(--linen); background:#fff; }
.header-inner{ display:flex; justify-content:space-between; align-items:center; padding:18px 32px; gap:20px; flex-wrap:wrap; }
.brand{ display:flex; align-items:center; gap:16px; color:var(--text); text-decoration:none; }
.brand:hover{ text-decoration:none; color:var(--text); }
.brand img.emblem{ height:76px; width:auto; flex-shrink:0; }
.brand .divider{ width:1px; height:58px; background:var(--grey1); }
.brand-text-block{ display:flex; flex-direction:column; }
.brand .name-main{ font-size:1.25rem; font-weight:700; color:var(--text); margin:0; line-height:1.25; }
.brand .name-tag{ font-size:.8125rem; color:var(--grey3); margin:2px 0 0; }
.header-tools{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.search-box{ display:flex; align-items:center; border:2px solid var(--key-700); width:380px; max-width:100%; background:#fff; }
.search-box:focus-within{ box-shadow:0 0 0 3px var(--warning); }
.search-box input{ border:none; outline:none; flex:1; font-size:.875rem; font-family:var(--font); min-width:0; padding:10px 14px; color:var(--text); background:transparent; }
.search-box button{ border:none; background:var(--key-700); color:#fff; cursor:pointer; align-self:stretch; padding:0 14px; display:flex; align-items:center; }
.search-box button:hover{ background:var(--key-900); }

/* ---------------------------------------------------------------------- */
/* 5. PRIMARY NAVIGATION — 5 level-1 sections (DBIM Annexure A.1)          */
/* ---------------------------------------------------------------------- */
nav.main-nav{ background:#fff; border-bottom:1px solid var(--linen); position:sticky; top:0; z-index:100; box-shadow:0 2px 6px rgba(0,0,0,.05); }
nav.main-nav > .wrap{ padding:0 32px; position:relative; }
.nav-toggle{ display:none; background:none; border:0; color:var(--key-900); font-weight:600; padding:12px 0; cursor:pointer; align-items:center; gap:8px; }
ul.nav-list{ display:flex; flex-wrap:wrap; }
ul.nav-list > li{ position:static; }
ul.nav-list > li > a, ul.nav-list > li > button{
  display:flex; align-items:center; gap:6px; padding:16px 18px; font-weight:600; color:var(--text);
  font-size:.9375rem; background:none; border:0; border-bottom:3px solid transparent; cursor:pointer; text-decoration:none;
}
ul.nav-list > li > a:hover, ul.nav-list > li > button:hover,
ul.nav-list > li > button[aria-expanded="true"]{ color:var(--key-700); border-bottom-color:var(--key-700); text-decoration:none; }
ul.nav-list > li > a[aria-current="page"]{ color:var(--key-700); }
.chev{ width:14px; height:14px; color:var(--grey2); transition:transform .2s; }
button[aria-expanded="true"] .chev{ transform:rotate(180deg); color:var(--key-900); }
.dropdown{
  display:none; position:absolute; top:100%; left:32px; right:32px; background:#fff;
  border:1px solid var(--linen); border-top:3px solid var(--key-700); box-shadow:0 14px 30px rgba(0,0,0,.14);
  padding:24px; z-index:200; max-height:calc(100vh - 150px); overflow-y:auto;
}
ul.nav-list > li.open > .dropdown{ display:block; }
.no-js ul.nav-list > li:focus-within > .dropdown{ display:block; }
.dd-grid{ display:grid; grid-template-columns:repeat(var(--cols,3),minmax(0,1fr)); gap:20px 32px; }
.dd-grid h3{ font-size:.8125rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--key-700); padding-bottom:8px; margin-bottom:6px; border-bottom:1px solid var(--linen); }
.dd-grid ul.two{ display:grid; grid-template-columns:1fr 1fr; column-gap:16px; }
.dd-grid .span2{ grid-column:span 2; }
.dropdown a{ display:block; padding:7px 10px; margin:0 -10px; color:var(--text); font-size:.875rem; }
.dropdown a:hover,.dropdown a:focus-visible{ background:var(--key-50); color:var(--key-700); text-decoration:underline; }

/* ---------------------------------------------------------------------- */
/* 6. TOP BANNER CAROUSEL — full width 1800×600, CCPS banner first         */
/* ---------------------------------------------------------------------- */
.hero-banner{ position:relative; background:var(--key-900); overflow:hidden; }
.slides{ position:relative; aspect-ratio:1800/600; max-height:600px; width:100%; }
.slide{ position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .6s,visibility .6s; }
.slide.on{ opacity:1; visibility:visible; }
.slide img{ width:100%; height:100%; object-fit:cover; }
.slide .cap{ position:absolute; left:0; right:0; bottom:0; padding:60px 0 56px; color:#fff; background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,0)); }
.slide .cap .date{ font-size:.875rem; color:#fff; font-weight:600; opacity:.92; }
.slide .cap p.t{ color:#fff; font-size:1.5rem; font-weight:700; line-height:1.35; max-width:900px; margin:6px 0 0; }
.slide.ccps{ background:linear-gradient(120deg,var(--key-900),var(--key-700)); display:flex; align-items:center; justify-content:center; color:#fff; text-align:center; padding:24px; }
.slide.ccps .badge{ display:inline-block; border:1px solid rgba(255,255,255,.6); font-size:.75rem; padding:2px 10px; margin-bottom:12px; }
.slide.ccps p.t{ font-size:1.5rem; font-weight:700; margin:0; }
.slide.ccps p.s{ opacity:.9; font-size:.875rem; margin:6px 0 0; }
.hero-ctrl{ position:absolute; right:32px; bottom:14px; display:flex; gap:8px; align-items:center; z-index:5; }
.hero-ctrl button{ width:36px; height:36px; border:1.5px solid rgba(255,255,255,.8); background:rgba(0,0,0,.4); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.hero-ctrl button:hover{ background:rgba(0,0,0,.7); }
.dots{ display:flex; gap:6px; margin-right:6px; flex-wrap:wrap; }
.dots button{ width:12px; height:12px; padding:0; border-radius:50%; background:rgba(255,255,255,.45); border-color:transparent; }
.dots button[aria-current="true"]{ background:#fff; }
.slide-count{ color:#fff; font-size:.75rem; text-shadow:0 1px 2px rgba(0,0,0,.6); }

/* ---------------------------------------------------------------------- */
/* 7. LIVE TRACKER (alerts ticker)                                         */
/* ---------------------------------------------------------------------- */
.live-tracker-outer{ max-width:var(--content-width); margin:0 auto; padding:14px 32px 0; }
.live-tracker{ display:flex; align-items:stretch; min-height:52px; }
.lt-label{ background:var(--error); color:#fff; flex:0 0 220px; display:flex; align-items:center; justify-content:space-between; padding:0 20px; font-size:1.125rem; font-weight:700; gap:10px; }
.lt-pause{ width:34px; height:34px; border:1.5px solid rgba(255,255,255,.8); background:none; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.lt-pause:hover{ background:rgba(255,255,255,.15); }
.lt-ticker{ flex:1; background:var(--linen); display:flex; align-items:center; overflow:hidden; padding:0 20px; }
.lt-ticker ul{ display:flex; gap:44px; white-space:nowrap; width:max-content; animation:tick 70s linear infinite; }
.live-tracker:hover .lt-ticker ul,.live-tracker:focus-within .lt-ticker ul,.live-tracker.paused .lt-ticker ul{ animation-play-state:paused; }
.lt-ticker a{ color:var(--text); font-size:.9375rem; }
.lt-ticker a:hover,.lt-ticker a:focus-visible{ color:var(--key-700); text-decoration:underline; }
.lt-ticker li::before{ content:"●"; color:var(--error); margin-right:10px; font-size:.6rem; vertical-align:middle; }
.lt-badge-new{ background:var(--success); color:#fff; font-size:.6875rem; font-weight:700; padding:2px 8px; border-radius:10px; margin-left:8px; }
@keyframes tick{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){
  .lt-ticker ul{ animation:none; flex-wrap:wrap; white-space:normal; width:auto; row-gap:6px; padding:8px 0; }
  .lt-ticker li[aria-hidden="true"]{ display:none; }
}

/* ---------------------------------------------------------------------- */
/* 8. PM QUOTE + HEAD OF MISSION                                           */
/* ---------------------------------------------------------------------- */
.leaders{ padding:40px 0 0; }
.leaders-grid{ display:flex; gap:28px; align-items:stretch; }
.pm-quote{ flex:1.8 1 600px; background:var(--key-900); color:#fff; display:grid; grid-template-columns:200px 1fr; gap:28px; padding:28px 28px 0; align-items:center; margin:0; overflow:hidden; }
.pm-quote img{ width:200px; height:248px; object-fit:contain; object-position:bottom; align-self:end; }
.pm-quote figcaption{ padding-bottom:28px; }
.pm-quote blockquote{ margin:0; font-size:1.125rem; line-height:1.55; font-weight:500; }
.pm-quote blockquote::before{ content:"\201C"; font-size:3rem; line-height:0; vertical-align:-.4em; margin-right:4px; opacity:.6; }
.pm-quote .cite{ display:block; margin-top:12px; font-size:.875rem; opacity:.92; }
.pm-quote .cite a{ color:#fff; text-decoration:underline; }
.hom-card{ flex:1 1 320px; }
.hom-card .card{ padding:24px; text-align:center; height:100%; }
.hom-card img{ width:150px; height:150px; object-fit:cover; object-position:top; border-radius:50%; margin:0 auto 16px; border:4px solid #fff; box-shadow:var(--card-shadow); }
.hom-card .role{ font-size:.8125rem; color:var(--grey3); margin-bottom:4px; }
.hom-card h3{ font-size:1.25rem; margin-bottom:16px; }
.hom-card .links a{ color:var(--key-900); display:block; padding:9px 0; font-size:.875rem; font-weight:600; border-top:1px solid var(--key-200); }

/* ---------------------------------------------------------------------- */
/* 9. MEDIA TABS + HIGHLIGHTS FEED                                         */
/* ---------------------------------------------------------------------- */
.split-section{ padding:48px 0; }
.split-grid{ display:flex; gap:28px; align-items:flex-start; }
.media-tabs{ flex:1.8 1 600px; min-width:0; }
.tab-buttons{ display:flex; gap:4px; border-bottom:2px solid var(--key-200); margin-bottom:20px; flex-wrap:wrap; }
.tab-buttons button{ background:none; border:none; padding:12px 16px; font-size:1rem; font-weight:600; color:var(--grey3); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; }
.tab-buttons button[aria-selected="true"]{ color:var(--key-700); border-bottom-color:var(--key-700); }
.tab-buttons button:hover{ color:var(--key-700); }
.tab-panel[hidden]{ display:none; }
.tab-panel li{ display:flex; justify-content:space-between; gap:20px; padding:14px 0; border-bottom:1px solid var(--linen); }
.tab-panel li a{ color:var(--text); font-size:.9375rem; }
.tab-panel li a:hover{ color:var(--key-700); }
.tab-panel li .date{ color:var(--grey3); font-size:.8125rem; white-space:nowrap; text-align:right; }
.tab-panel .more{ margin-top:16px; }

.hero-feed{ flex:1 1 380px; min-width:0; }
.hero-feed .feed-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.hero-feed .feed-head h2{ font-size:1.25rem; margin:0; }
.hero-feed-viewport{ height:460px; overflow:hidden; position:relative; }
.hero-feed-viewport::before,.hero-feed-viewport::after{ content:""; position:absolute; left:0; right:0; height:24px; z-index:5; pointer-events:none; }
.hero-feed-viewport::before{ top:0; background:linear-gradient(#fff,rgba(255,255,255,0)); }
.hero-feed-viewport::after{ bottom:0; background:linear-gradient(rgba(255,255,255,0),#fff); }
.hero-feed-track{ display:flex; flex-direction:column; gap:16px; will-change:transform; }
.feed-item{ display:flex; gap:12px; background:var(--key-50); border:1px solid var(--key-200); padding:10px; color:var(--text); }
.feed-item:hover{ border-color:var(--key-700); text-decoration:none; color:var(--text); }
.feed-item img{ width:96px; height:72px; object-fit:cover; flex-shrink:0; }
.feed-item .date{ font-size:.75rem; color:var(--key-700); font-weight:700; }
.feed-item p{ font-size:.8125rem; line-height:1.45; margin:4px 0 0; }
@media (prefers-reduced-motion:reduce){ .hero-feed-viewport{ height:auto; } .feed-item[aria-hidden="true"]{ display:none; } }

/* ---------------------------------------------------------------------- */
/* 10. PERFORMANCE INSIGHTS                                                */
/* ---------------------------------------------------------------------- */
.perf-insights{ padding:44px 0; background:#fff; border-top:1px solid var(--linen); }
.perf-controls{ display:flex; align-items:center; gap:8px; }
.perf-track-wrap{ overflow:hidden; }
.perf-track{ display:flex; gap:20px; transition:transform .4s ease; }
.perf-card{ flex:0 0 calc(25% - 15px); border:1px solid var(--key-200); background:#fff; padding:22px; }
.perf-card .num{ font-size:2.25rem; font-weight:700; color:var(--key-700); line-height:1.15; }
.perf-card p{ font-size:.9375rem; margin:8px 0 10px; }
.perf-card .range{ font-size:.75rem; color:var(--grey3); }
@media (prefers-reduced-motion:reduce){ .perf-track{ transition:none; } }

/* ---------------------------------------------------------------------- */
/* 11. CITIZEN'S CORNER + IN FOCUS                                         */
/* ---------------------------------------------------------------------- */
.citizen-corner{ padding:48px 0; background:var(--key-50); }
.cc-layout{ display:flex; gap:40px; align-items:flex-start; }
.cc-links{ flex:1.4 1 520px; min-width:0; }
.cc-list{ display:flex; flex-wrap:wrap; column-gap:40px; }
.cc-list a{ flex:1 1 46%; max-width:46%; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:15px 0; border-bottom:1px solid var(--key-200); color:var(--text); font-size:1rem; }
.cc-list a .lbl{ display:flex; align-items:center; gap:12px; }
.cc-list a .lbl .icon{ color:var(--key-900); }
.cc-list a:hover{ color:var(--key-700); text-decoration:none; }
.cc-list a > .icon{ color:var(--key-900); }
.in-focus{ flex:1 1 380px; min-width:0; }
.in-focus-box{ border:1px solid var(--key-200); background:#fff; }
.in-focus-box img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.in-focus-box .b{ padding:20px 22px; }
.in-focus-box .date{ font-size:.75rem; font-weight:700; color:var(--key-700); }
.in-focus-box h3{ font-size:1.125rem; margin:6px 0 16px; }

/* ---------------------------------------------------------------------- */
/* 12. USER PERSONAS (DBIM Annexure A.2)                                   */
/* ---------------------------------------------------------------------- */
.personas-section{ padding:48px 0; }
.personas{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.persona{ border:1px solid var(--key-200); background:#fff; padding:24px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; color:var(--text); box-shadow:var(--card-shadow); }
.persona:hover,.persona:focus-visible{ border-color:var(--key-700); text-decoration:none; color:var(--text); }
.persona .av{ width:72px; height:72px; border-radius:50%; background:var(--key-50); color:var(--key-900); display:flex; align-items:center; justify-content:center; }
.persona .av .icon{ width:34px; height:34px; }
.persona h3{ font-size:1rem; margin:0; }
.persona p{ font-size:.8125rem; color:var(--grey3); margin:0; }

/* ---------------------------------------------------------------------- */
/* 13. CCPS CENTRAL POSTS — 960×245, 3 grids (DBIM §7.4.3)                 */
/* ---------------------------------------------------------------------- */
.ccps-section{ padding:48px 0; background:var(--key-50); }
.ccps-posts{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:16px; min-height:245px; }
.ccps-posts > div{ background:#fff; border:1px dashed var(--key-700); display:flex; align-items:center; justify-content:center; text-align:center; color:var(--key-900); font-size:.875rem; font-weight:500; padding:12px; }
.ccps-post{ display:flex; flex-direction:column; gap:14px; background:#fff; border:1px solid var(--key-200); box-shadow:var(--card-shadow); color:var(--text); padding:24px; position:relative; overflow:hidden; }
.ccps-post:hover,.ccps-post:focus-visible{ border-color:var(--key-700); text-decoration:none; color:var(--text); }
.ccps-post .ic{ width:52px; height:52px; border-radius:50%; background:var(--key-50); color:var(--key-900); display:flex; align-items:center; justify-content:center; }
.ccps-post .ic .icon{ width:26px; height:26px; }
.ccps-post .b{ display:flex; flex-direction:column; gap:8px; flex:1; }
.ccps-post .ttl{ font-size:1.25rem; font-weight:700; color:var(--key-900); line-height:1.3; }
.ccps-post .txt{ font-size:.9375rem; line-height:1.5; flex:1; }
.ccps-post .cta{ display:inline-flex; align-items:center; gap:6px; font-size:.875rem; font-weight:700; color:var(--key-700); margin-top:4px; }
.ccps-post:hover .cta{ text-decoration:underline; }
.ccps-post.feature{ background:linear-gradient(120deg,var(--key-900),var(--key-700)); border-color:var(--key-900); color:#fff; justify-content:center; padding:32px 36px; }
.ccps-post.feature .ic{ background:rgba(255,255,255,.15); color:#fff; }
.ccps-post.feature .ttl{ color:#fff; font-size:1.5rem; }
.ccps-post.feature .txt{ color:#fff; max-width:520px; flex:0 0 auto; }
.ccps-post.feature .cta{ align-self:flex-start; background:#fff; color:var(--key-900); padding:9px 18px; }
.ccps-post.feature::after{ content:""; position:absolute; right:-60px; bottom:-60px; width:240px; height:240px; border-radius:50%; border:40px solid rgba(255,255,255,.07); pointer-events:none; }
.ccps-post.feature:hover,.ccps-post.feature:focus-visible{ color:#fff; }

/* ---------------------------------------------------------------------- */
/* 14. SOCIAL MEDIA WALL — X, Facebook, Instagram, YouTube                 */
/* ---------------------------------------------------------------------- */
.social-wall{ padding:48px 0; }
.sw-follow{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.sw-follow a{ display:inline-flex; align-items:center; gap:8px; border:1px solid var(--key-200); padding:8px 14px; color:var(--key-900); font-size:.875rem; font-weight:600; background:#fff; }
.sw-follow a:hover,.sw-follow a:focus-visible{ border-color:var(--key-700); background:var(--key-50); text-decoration:none; }
.sw-grid{ display:flex; gap:24px; }
.sw-col{ flex:1 1 340px; min-width:0; }
.sw-col.sw-fb{ flex:1 1 38%; }
.sw-col.sw-yt{ flex:1 1 62%; }
.sw-col .head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:10px; }
.sw-col .head h3{ font-size:1.25rem; margin:0; }
.embed-gate{ height:340px; background:var(--key-50); border:1px solid var(--key-200); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; padding:20px; font-size:.875rem; color:var(--grey3); }
.embed-gate iframe{ width:100%; height:100%; border:0; display:block; }
.embed-gate.loaded{ padding:0; background:#fff; }

/* ---------------------------------------------------------------------- */
/* 15. CONTACT HUB (tabbed)                                                */
/* ---------------------------------------------------------------------- */
.contact-hub{ padding:0 0 48px; }
.hub-tabs{ display:flex; gap:4px; }
.hub-tabs button{ flex:1; background:var(--key-50); border:1px solid var(--key-200); border-bottom:none; padding:14px; font-size:1rem; font-weight:600; color:var(--grey3); cursor:pointer; }
.hub-tabs button[aria-selected="true"]{ background:var(--key-700); color:#fff; }
.hub-panel{ padding:28px; display:flex; flex-wrap:wrap; gap:30px; }
.hub-panel[hidden]{ display:none; }
.hub-panel .col{ flex:1 1 240px; min-width:0; }
.hub-panel h3{ font-size:1rem; margin-bottom:10px; }
.hub-panel a{ color:var(--key-900); text-decoration:underline; }   /* links on light key-colour panels: #0D6EFD fails contrast here */
.hub-panel p{ font-size:.875rem; overflow-wrap:anywhere; }
.hub-panel .embed-gate{ height:280px; }

/* ---------------------------------------------------------------------- */
/* 16. IMPORTANT LINKS — logo carousel                                     */
/* ---------------------------------------------------------------------- */
.promo-section{ background:var(--key-50); padding:40px 0; }
.promo-section .section-title{ justify-content:space-between; }
.promo-track-wrap{ overflow:hidden; padding:6px 0; position:relative; }
.promo-track{ display:flex; gap:24px; width:max-content; }
.promo-item{ flex:0 0 180px; height:100px; background:#fff; border:1px solid var(--key-200); box-shadow:var(--card-shadow); display:flex; align-items:center; justify-content:center; padding:14px; }
.promo-item:hover,.promo-item:focus-visible{ border-color:var(--key-700); }
.promo-item img{ max-height:64px; max-width:100%; object-fit:contain; }
@media (prefers-reduced-motion:reduce){ .promo-track{ flex-wrap:wrap; width:auto; transform:none!important; } .promo-item[aria-hidden="true"]{ display:none; } }

/* ---------------------------------------------------------------------- */
/* 17. FOOTER — key colour, darkest shade (DBIM §5.6)                       */
/* ---------------------------------------------------------------------- */
footer.site-footer{ background:var(--key-900); color:#fff; }
.footer-band{ padding:36px 0 0; }
.site-footer a{ color:#fff; }
.site-footer a:hover,.site-footer a:focus-visible{ color:#fff; text-decoration:underline; }
.footer-band-top{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:20px; padding-bottom:24px; }
.footer-embassy-info h2{ font-size:1.0625rem; color:#fff; margin:0 0 8px; }
.footer-embassy-info address{ font-style:normal; font-size:.875rem; line-height:1.7; overflow-wrap:anywhere; }
.footer-social{ display:flex; gap:10px; }
.footer-social a{ width:40px; height:40px; border:1.5px solid rgba(255,255,255,.6); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.footer-social a:hover,.footer-social a:focus-visible{ background:#fff; color:var(--key-900); }
.footer-social .icon{ width:18px; height:18px; }
.footer-quicknav{ padding:16px 0; display:flex; flex-wrap:wrap; gap:10px 28px; border-top:1px solid rgba(255,255,255,.22); }
.footer-quicknav a{ font-size:.875rem; font-weight:600; }
.footer-legal-row{ border-top:1px solid rgba(255,255,255,.22); padding:16px 0; display:flex; flex-wrap:wrap; gap:6px 18px; }
.footer-legal-row a{ font-size:.8125rem; }
.footer-meta-row{ border-top:1px solid rgba(255,255,255,.22); padding:16px 0 28px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.footer-meta-row p{ font-size:.8125rem; margin:0 0 4px; }
.footer-meta-right{ text-align:right; }
.lineage{ font-size:.875rem!important; font-weight:500; }

/* ---------------------------------------------------------------------- */
/* 18. FLOATING: back to top, chatbot                                      */
/* ---------------------------------------------------------------------- */
.back-to-top{ position:fixed; bottom:24px; left:24px; width:44px; height:44px; border:1.5px solid var(--key-700); background:#fff; color:var(--key-900); display:none; align-items:center; justify-content:center; cursor:pointer; z-index:999; box-shadow:var(--card-shadow); }
.back-to-top.show{ display:flex; }
.chatbot-fab{ position:fixed; bottom:24px; right:24px; width:58px; height:58px; border-radius:50%; background:var(--key-700); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.25); z-index:1000; border:none; }
.chatbot-fab:hover{ background:var(--key-900); }
.chatbot-fab .icon{ width:28px; height:28px; }
.chatbot-window{ position:fixed; bottom:92px; right:24px; width:340px; max-width:88vw; height:420px; background:#fff; border:1px solid var(--key-200); box-shadow:0 8px 30px rgba(0,0,0,.2); display:flex; flex-direction:column; z-index:1000; }
.chatbot-window[hidden]{ display:none; }
.chatbot-header{ background:var(--key-700); color:#fff; padding:12px 16px; font-size:1rem; display:flex; justify-content:space-between; align-items:center; }
.chatbot-header h2{ color:#fff; font-size:1rem; margin:0; }
.chatbot-header button{ background:none; border:none; color:#fff; cursor:pointer; display:flex; }
.chatbot-body{ flex:1; padding:16px; font-size:.875rem; overflow-y:auto; }

/* ---------------------------------------------------------------------- */
/* 19. COOKIE CONSENT — DPDP Act 2023 (DBIM §7.6)                           */
/* ---------------------------------------------------------------------- */
.cookie{ position:fixed; left:0; right:0; bottom:0; background:#fff; border-top:3px solid var(--key-700); box-shadow:0 -6px 20px rgba(0,0,0,.15); z-index:1500; padding:16px 0; }
.cookie .wrap{ display:flex; gap:20px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.cookie p{ font-size:.875rem; max-width:780px; margin:0; }
.cookie .acts{ display:flex; gap:8px; flex-wrap:wrap; }
.cookie-prefs{ display:none; width:100%; padding-top:12px; border-top:1px solid var(--linen); gap:24px; flex-wrap:wrap; align-items:center; font-size:.875rem; }
.cookie.custom .cookie-prefs{ display:flex; }
.cookie-prefs label{ display:flex; gap:8px; align-items:center; cursor:pointer; }
.cookie-prefs input{ width:18px; height:18px; accent-color:var(--key-700); }
[hidden]{ display:none!important; }

/* ---------------------------------------------------------------------- */
/* 20. RESPONSIVE — mobile type scale (DBIM Table 4)                        */
/* ---------------------------------------------------------------------- */
@media (max-width:1100px){
  .perf-card{ flex:0 0 calc(50% - 10px); }
  .dd-grid{ --cols:2!important; }
  .personas{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px){
  .leaders-grid,.split-grid,.sw-grid,.cc-layout{ flex-direction:column; }
  .leaders-grid > *,.split-grid > *,.sw-grid > *,.cc-layout > *{ flex:1 1 auto; width:100%; }
  .cc-list a{ flex:1 1 100%; max-width:100%; }
  .search-box{ width:100%; }
  .header-tools{ flex-basis:100%; }
  ul.nav-list > li > a, ul.nav-list > li > button{ padding:14px 12px; }
}
@media (max-width:760px){
  h1{ font-size:1.5rem; } h2{ font-size:1.25rem; } h3{ font-size:1rem; }
  body{ font-size:.875rem; }
  .wrap,.utility-bar .wrap,.header-inner,nav.main-nav > .wrap,.live-tracker-outer{ padding-left:16px; padding-right:16px; }
  .util-links .hide-sm{ display:none; }
  .brand img.emblem{ height:58px; }
  .brand .divider{ height:46px; }
  .brand .name-main{ font-size:1rem; }
  .nav-toggle{ display:flex; }
  nav.main-nav > .wrap{ display:flex; flex-direction:column; }
  ul.nav-list{ display:none; flex-direction:column; padding-bottom:8px; }
  nav.main-nav.open ul.nav-list{ display:flex; }
  ul.nav-list > li > a, ul.nav-list > li > button{ width:100%; justify-content:space-between; border-top:1px solid var(--linen); border-bottom:0; padding:12px 4px; }
  .dropdown{ position:static; box-shadow:none; border:0; border-left:3px solid var(--key-700); padding:8px 16px; max-height:none; background:var(--key-50); }
  .dd-grid{ --cols:1!important; }
  .dd-grid .span2{ grid-column:auto; }
  .dd-grid ul.two{ grid-template-columns:1fr; }
  .slides{ aspect-ratio:4/3; }
  .slide .cap{ padding:40px 0 60px; }
  .slide .cap p.t,.slide.ccps p.t{ font-size:1rem; }
  .hero-ctrl{ right:16px; }
  .live-tracker{ flex-direction:column; }
  .lt-label{ flex:0 0 auto; padding:8px 16px; font-size:1rem; }
  .lt-ticker{ padding:10px 16px; }
  .pm-quote{ grid-template-columns:1fr; padding-top:20px; }
  .pm-quote img{ width:150px; height:186px; order:2; justify-self:center; }
  .pm-quote figcaption{ padding-bottom:0; }
  .perf-card{ flex:0 0 100%; }
  .perf-card .num{ font-size:1.5rem; }
  .personas{ grid-template-columns:1fr; }
  .ccps-posts{ grid-template-columns:1fr; }
  .ccps-posts > div{ min-height:110px; }
  .ccps-post.feature{ padding:24px; }
  .hub-tabs{ flex-direction:column; }
  .hub-tabs button{ border-bottom:1px solid var(--key-200); }
  .tab-panel li{ flex-direction:column; gap:4px; }
  .tab-panel li .date{ text-align:left; }
  .footer-meta-right{ text-align:left; }
  .chatbot-fab{ bottom:16px; right:16px; width:52px; height:52px; }
  .back-to-top{ bottom:16px; left:16px; }
}

/* ---------------------------------------------------------------------- */
/* 21. PRINT                                                                */
/* ---------------------------------------------------------------------- */
@media print{
  .utility-bar,nav.main-nav,.hero-ctrl,.lt-pause,.promo-section,.cookie,.chatbot-fab,.chatbot-window,.back-to-top,.search-box,.embed-gate{ display:none!important; }
  .slide{ position:static; opacity:1; visibility:visible; }
  .slide:not(.on){ display:none; }
  footer.site-footer{ background:#fff; color:#000; }
  .site-footer a{ color:#000; }
}

/* ---------------------------------------------------------------------- */
/* SEARCH SUGGESTIONS (DBIM Article 9) — combobox + listbox                 */
/* ---------------------------------------------------------------------- */
.search-box{ position:relative; }
.search-pop{ position:absolute; top:100%; left:-2px; right:-2px; z-index:300; background:#fff; border:2px solid var(--key-700); border-top:0; box-shadow:0 14px 30px rgba(0,0,0,.14); max-height:min(420px,70vh); overflow-y:auto; }
.search-pop[hidden]{ display:none; }
.search-pop .sp-head{ font-size:.75rem; font-weight:600; color:var(--grey3); padding:8px 14px 4px; margin:0; }
.search-pop ul{ padding:0 0 6px; }
.search-pop li a{ display:block; padding:8px 14px; color:var(--text); font-size:.875rem; line-height:1.35; }
.search-pop li a .cat{ display:block; font-size:.75rem; color:var(--grey3); margin-top:2px; }
.search-pop li a mark{ background:var(--key-50); color:inherit; font-weight:700; }
.search-pop li a:hover,.search-pop li a[aria-selected="true"]{ background:var(--key-50); text-decoration:none; outline:2px solid var(--key-700); outline-offset:-2px; }
@media print{ .search-pop{ display:none!important; } }

/* ======================================================================
   INNER PAGES (About Us and other level-2 pages) — DBIM Annexure A.5
   ====================================================================== */
.page-hero{ background:linear-gradient(120deg,var(--key-900),var(--key-700)); color:#fff; padding:22px 0 30px; }
.breadcrumb ol{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 0; font-size:.875rem; }
.breadcrumb li{ display:flex; align-items:center; }
.breadcrumb li + li::before{ content:"›"; margin:0 8px; opacity:.8; }
.breadcrumb a{ color:#fff; text-decoration:underline; }
.breadcrumb a:hover,.breadcrumb a:focus-visible{ color:#fff; text-decoration:none; }
.breadcrumb [aria-current="page"]{ font-weight:600; }
.page-hero h1{ color:#fff; margin:14px 0 6px; }
.page-hero .lead{ color:#fff; opacity:.94; max-width:780px; margin:0; font-size:1.0625rem; }

.page-layout{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:40px; padding-top:40px; padding-bottom:56px; align-items:start; }
.content > section{ margin-bottom:40px; scroll-margin-top:90px; }
.content > section:last-child{ margin-bottom:0; }
.content h2{ position:relative; padding-bottom:8px; margin-bottom:16px; }
.content h2::after{ content:""; position:absolute; left:0; bottom:0; width:48px; height:4px; background:var(--key-700); }
.content p{ line-height:1.65; max-width:75ch; }
.content .note{ font-size:.8125rem; color:var(--grey3); }
.page-tools{ display:flex; justify-content:flex-end; margin-bottom:8px; }

.tick-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 24px; margin:0; padding:0; list-style:none; }
.tick-list li{ display:flex; gap:12px; align-items:flex-start; background:#fff; border:1px solid var(--key-200); padding:14px 16px; line-height:1.5; }
.tick-list li .icon{ color:#fff; background:var(--key-700); border-radius:50%; padding:3px; width:22px; height:22px; flex:none; margin-top:1px; }

.facts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.fact{ background:var(--key-50); border:1px solid var(--key-200); padding:20px; display:flex; flex-direction:column; gap:6px; }
.fact .ic{ color:var(--key-900); }
.fact .n{ font-size:1.5rem; font-weight:700; color:var(--key-900); line-height:1.2; }
.fact .l{ font-size:.875rem; line-height:1.5; }

.hom-row{ display:grid; grid-template-columns:160px minmax(0,1fr); gap:24px; align-items:start; background:var(--key-50); border:1px solid var(--key-200); padding:24px; }
.hom-row img{ width:160px; height:160px; object-fit:cover; object-position:top; border:4px solid #fff; box-shadow:var(--card-shadow); }
.hom-row h3{ margin:0 0 4px; }
.hom-row .role{ color:var(--grey3); font-size:.875rem; margin:0 0 10px; }
.hom-row dl{ display:grid; grid-template-columns:max-content 1fr; gap:6px 16px; margin:0 0 16px; font-size:.9375rem; }
.hom-row dt{ font-weight:600; }
.hom-row dd{ margin:0; }

.charter{ display:flex; gap:20px; align-items:center; justify-content:space-between; flex-wrap:wrap; border-left:6px solid var(--key-700); background:#fff; box-shadow:var(--card-shadow); padding:20px 24px; }
.charter p{ margin:0; }

.sidebar{ display:flex; flex-direction:column; gap:20px; position:sticky; top:84px; }
.side-box{ background:#fff; border:1px solid var(--key-200); box-shadow:var(--card-shadow); }
.side-box h2{ font-size:1rem; margin:0; padding:14px 18px; background:var(--key-900); color:#fff; }
.side-nav ul{ list-style:none; margin:0; padding:6px 0; }
.side-nav a{ display:block; padding:10px 18px; color:var(--text); border-left:4px solid transparent; font-size:.9375rem; }
.side-nav a:hover,.side-nav a:focus-visible{ background:var(--key-50); color:var(--key-700); text-decoration:underline; }
.side-nav a[aria-current="page"]{ border-left-color:var(--key-700); background:var(--key-50); color:var(--key-900); font-weight:700; }
.side-info{ padding:16px 18px; font-size:.875rem; line-height:1.6; }
.side-info p{ margin:0 0 10px; }
.side-info p:last-child{ margin:0; }
.side-info strong{ display:block; color:var(--key-900); }
.side-box.emergency h2{ background:var(--error); }

@media (max-width:1100px){
  .facts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px){
  .page-layout{ grid-template-columns:minmax(0,1fr); gap:32px; }
  .sidebar{ position:static; }
}
@media (max-width:760px){
  .page-hero{ padding:16px 0 22px; }
  .page-layout{ padding-top:28px; padding-bottom:40px; }
  .tick-list,.facts{ grid-template-columns:minmax(0,1fr); }
  .hom-row{ grid-template-columns:minmax(0,1fr); }
  .hom-row img{ width:130px; height:130px; }
  .hom-row dl{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .hom-row dd{ margin-bottom:8px; }
}
/* Profile pages (Ambassador's Profile) */
.profile-card{ position:relative; text-align:center; background:#fff; border:1px solid var(--key-200); box-shadow:var(--card-shadow); padding:0 24px 28px; overflow:hidden; }
.profile-card::before{ content:""; position:absolute; left:0; right:0; top:0; height:110px; background:linear-gradient(120deg,var(--key-900),var(--key-700)); }
.profile-photo{ position:relative; width:200px; height:200px; margin:28px auto 18px; border-radius:50%; border:6px solid #fff; box-shadow:0 6px 18px rgba(0,0,0,.18); overflow:hidden; background:var(--key-50); }
.profile-photo img{ width:100%; height:100%; object-fit:cover; object-position:center top; transform:scale(1.14); transform-origin:center 30%; }
.profile-card h2{ font-size:1.75rem; margin:0 0 6px; padding:0; color:var(--key-900); }
.profile-card h2::after{ display:none; }
.profile-card .role{ font-size:1.0625rem; color:var(--grey3); margin:0 auto 24px; max-width:560px; }
.profile-facts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0; text-align:left; }
.profile-facts > div{ background:var(--key-50); border:1px solid var(--key-200); border-top:4px solid var(--key-700); padding:14px 16px; }
.profile-facts dt{ display:flex; align-items:center; gap:8px; font-size:.8125rem; font-weight:600; color:var(--grey3); text-transform:uppercase; letter-spacing:.04em; }
.profile-facts dt .icon{ width:18px; height:18px; color:var(--key-700); }
.profile-facts dd{ margin:6px 0 0; font-size:1.0625rem; font-weight:700; color:var(--key-900); }
.detail-list{ display:grid; grid-template-columns:max-content minmax(0,1fr); gap:8px 20px; margin:0; }
.detail-list dt{ font-weight:600; color:var(--key-900); }
.detail-list dd{ margin:0; }
.detail-list{ background:#fff; border:1px solid var(--key-200); padding:20px 24px; gap:14px 24px; }
.timeline{ list-style:none; margin:0; padding:0 0 0 22px; border-left:3px solid var(--key-200); }
.timeline li{ position:relative; display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; padding:0 0 18px 6px; }
.timeline li:last-child{ padding-bottom:0; }
.timeline li::before{ content:""; position:absolute; left:-31px; top:4px; width:13px; height:13px; border-radius:50%; background:#fff; border:3px solid var(--key-700); }
.timeline li:first-child::before{ background:var(--key-700); }
.timeline .when{ font-weight:700; color:var(--key-700); font-size:.9375rem; }
.timeline .what strong{ display:block; color:var(--text); }
.timeline .what{ color:var(--grey3); font-size:.9375rem; line-height:1.5; }
.chips{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
.chips li{ background:var(--key-50); border:1px solid var(--key-200); color:var(--key-900); padding:3px 12px; font-size:.875rem; font-weight:600; }
@media (max-width:760px){
  .profile-card{ padding:0 16px 20px; }
  .profile-card::before{ height:90px; }
  .profile-photo{ width:160px; height:160px; margin-top:20px; }
  .profile-card h2{ font-size:1.375rem; }
  .profile-card .role{ font-size:.9375rem; }
  .profile-facts{ grid-template-columns:minmax(0,1fr); gap:10px; }
  .detail-list{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .detail-list dd{ margin-bottom:10px; }
  .timeline li{ grid-template-columns:minmax(0,1fr); gap:2px; }
}
/* Tables, lists and cards for inner pages (GIGW: captions, header cells, scrollable on small screens) */
.table-wrap{ position:relative; overflow-x:auto; max-width:100%; border:1px solid var(--key-200); background:#fff; }
.page-layout > .content, .page-layout > .sidebar{ min-width:0; }
.table-wrap:focus-visible{ outline:3px solid var(--warning); outline-offset:2px; }
.data-table{ width:100%; border-collapse:collapse; font-size:.9375rem; }
.data-table caption{ text-align:left; padding:12px 16px; font-weight:600; color:var(--key-900); background:var(--key-50); border-bottom:1px solid var(--key-200); }
.data-table th,.data-table td{ text-align:left; vertical-align:top; padding:12px 16px; border-bottom:1px solid var(--linen); }
.data-table thead th{ background:var(--key-900); color:#fff; font-weight:600; white-space:nowrap; }
.data-table tbody th{ font-weight:600; color:var(--key-900); }
.data-table tbody tr:nth-child(even){ background:#F7F9FF; }
.data-table tbody tr:last-child th,.data-table tbody tr:last-child td{ border-bottom:0; }
.data-table.kv tbody th{ width:38%; }
.data-table time{ white-space:nowrap; }
.addr-card{ font-style:normal; background:var(--key-50); border:1px solid var(--key-200); border-left:6px solid var(--key-700); padding:18px 22px; line-height:1.7; margin-bottom:12px; }
.addr-card strong{ color:var(--key-900); }
.map-gate{ height:380px; }
.country-list{ margin:0 0 12px; padding-left:22px; line-height:1.8; }
.rti-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-bottom:12px; }
.rti-card{ background:#fff; border:1px solid var(--key-200); border-top:4px solid var(--key-700); padding:18px 20px; box-shadow:var(--card-shadow); }
.rti-card h3{ font-size:.875rem; text-transform:uppercase; letter-spacing:.04em; color:var(--grey3); margin:0 0 8px; }
.rti-card .nm{ font-size:1.125rem; font-weight:700; color:var(--key-900); margin:0 0 2px; }
.rti-card p{ margin:0 0 8px; font-size:.9375rem; overflow-wrap:anywhere; }
.steps{ margin:0; padding-left:22px; line-height:1.65; }
.steps li{ margin-bottom:8px; padding-left:4px; }
.steps li::marker{ font-weight:700; color:var(--key-700); }
.doc-list{ list-style:none; margin:0 0 12px; padding:0; border:1px solid var(--key-200); background:#fff; }
.doc-list li{ border-bottom:1px solid var(--linen); }
.doc-list li:last-child{ border-bottom:0; }
.doc-list a{ display:block; padding:12px 16px; color:var(--text); }
.doc-list a:hover,.doc-list a:focus-visible{ background:var(--key-50); color:var(--key-700); }
@media (max-width:760px){
  .rti-grid{ grid-template-columns:minmax(0,1fr); }
  .data-table{ font-size:.875rem; }
  .data-table th,.data-table td{ padding:10px 12px; }
  .map-gate{ height:300px; }
}

/* ---------------------------------------------------------------------- */
/* Inner pages — services, media, forms, help (batch 4)                    */
/* ---------------------------------------------------------------------- */
.content > section + section{ margin-top:36px; }
.content h3{ font-size:1.0625rem; color:var(--key-900); margin:22px 0 8px; }
.content ul.plain{ padding-left:22px; line-height:1.65; }
.content ul.plain li{ margin-bottom:6px; }
.callout{ background:var(--key-50); border:1px solid var(--key-200); border-left:6px solid var(--key-700); padding:16px 20px; margin:16px 0; line-height:1.6; }
.callout p{ margin:0 0 8px; } .callout p:last-child{ margin-bottom:0; }
.callout.warn{ background:#FFF8E1; border-color:#E0B300; border-left-color:#8A6D00; }
.link-cards{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.link-cards a{ display:flex; flex-direction:column; gap:6px; height:100%; padding:18px 20px; background:#fff; border:1px solid var(--key-200); border-top:4px solid var(--key-700); color:var(--text); }
.link-cards a:hover,.link-cards a:focus-visible{ background:var(--key-50); text-decoration:none; }
.link-cards strong{ color:var(--key-900); font-size:1rem; }
.link-cards span{ font-size:.875rem; color:var(--grey3); line-height:1.5; }
.media-list{ list-style:none; margin:0; padding:0; border-top:1px solid var(--key-200); }
.media-list li{ display:grid; grid-template-columns:150px minmax(0,1fr); gap:16px; padding:14px 4px; border-bottom:1px solid var(--linen); }
.media-list time{ font-size:.875rem; font-weight:600; color:var(--key-700); }
.media-list a{ color:var(--text); font-weight:500; }
.media-list a:hover,.media-list a:focus-visible{ color:var(--key-700); }
.gallery-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.gallery-grid a{ display:block; background:#fff; border:1px solid var(--key-200); color:var(--text); height:100%; }
.gallery-grid a:hover,.gallery-grid a:focus-visible{ border-color:var(--key-700); text-decoration:none; }
.gallery-grid img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--linen); }
.gallery-grid .cap{ display:block; padding:10px 12px; font-size:.875rem; line-height:1.45; }
.gallery-grid time{ display:block; font-size:.8125rem; color:var(--grey3); margin-top:4px; }
.faq details{ border:1px solid var(--key-200); background:#fff; margin-bottom:8px; }
.faq summary{ cursor:pointer; padding:14px 18px; font-weight:600; color:var(--key-900); list-style-position:outside; }
.faq summary:focus-visible{ outline:3px solid var(--warning); outline-offset:2px; }
.faq details[open] summary{ border-bottom:1px solid var(--linen); background:var(--key-50); }
.faq .ans{ padding:12px 18px 14px; line-height:1.6; }
.faq .ans p{ margin:0 0 8px; }
.sitemap-list{ columns:2; column-gap:32px; }
.sitemap-list > li{ break-inside:avoid; margin-bottom:18px; }
.sitemap-list, .sitemap-list ul{ list-style:none; padding:0; margin:0; }
.sitemap-list ul{ padding-left:16px; border-left:2px solid var(--key-200); margin-top:6px; }
.sitemap-list ul li{ padding:3px 0; }
.sitemap-list > li > strong{ color:var(--key-900); }
.form{ display:grid; gap:18px; max-width:720px; }
.form fieldset{ border:1px solid var(--key-200); padding:16px 20px 20px; margin:0; display:grid; gap:16px; }
.form legend{ font-weight:700; color:var(--key-900); padding:0 6px; }
.form .row2{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.field label{ display:block; font-weight:600; margin-bottom:6px; font-size:.9375rem; }
.field .req{ color:var(--error); }
.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=date],.field input[type=number],.field select,.field textarea{
  width:100%; font:inherit; color:var(--text); background:#fff; border:1px solid var(--grey2); padding:10px 12px; min-height:44px; }
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{ outline:3px solid var(--warning); outline-offset:1px; border-color:var(--key-700); }
.field .hint{ display:block; font-size:.8125rem; color:var(--grey3); margin-top:4px; }
.field [aria-invalid=true]{ border-color:var(--error); border-width:2px; }
.field .err{ display:block; color:var(--error); font-size:.875rem; font-weight:600; margin-top:4px; }
.radio-row{ display:flex; flex-wrap:wrap; gap:8px 20px; }
.radio-row label{ font-weight:400; display:inline-flex; align-items:center; gap:6px; margin:0; }
.radio-row input{ width:20px; height:20px; }
.form-msg{ padding:14px 18px; border:1px solid; border-left-width:6px; margin-bottom:18px; }
.form-msg.ok{ background:#E8F5EE; border-color:var(--success); }
.form-msg.bad{ background:#FDECEE; border-color:var(--error); }
.form-msg ul{ margin:6px 0 0; padding-left:20px; }
.sr-table td:first-child{ font-weight:600; }
.field label.check{ display:flex; gap:10px; align-items:flex-start; font-weight:400; }
.field label.check input{ width:20px; height:20px; flex:none; margin-top:2px; }
.page-layout.no-side{ grid-template-columns:minmax(0,1fr); }
@media (max-width:760px){
  .link-cards,.gallery-grid,.form .row2{ grid-template-columns:minmax(0,1fr); }
  .media-list li{ grid-template-columns:minmax(0,1fr); gap:2px; }
  .sitemap-list{ columns:1; }
}
@media (min-width:761px) and (max-width:1100px){ .gallery-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }


/* Photo Gallery: album cards, photo grid, lightbox */
.album-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.album-grid a{ display:flex; flex-direction:column; height:100%; background:#fff; border:1px solid var(--key-200); color:var(--text); }
.album-grid a:hover,.album-grid a:focus-visible{ border-color:var(--key-700); box-shadow:var(--card-shadow); text-decoration:none; }
.album-grid img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--linen); }
.album-title{ display:block; padding:12px 14px 4px; font-weight:600; line-height:1.4; color:var(--key-900); }
.album-meta{ display:block; padding:0 14px 14px; margin-top:auto; font-size:.8125rem; color:var(--grey3); }
.album-info{ color:var(--grey3); }
.photo-grid{ list-style:none; margin:0 0 20px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.photo-grid a{ display:block; border:1px solid var(--key-200); background:var(--linen); }
.photo-grid a:focus-visible{ outline:3px solid var(--warning); outline-offset:2px; }
.photo-grid img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.lightbox{ position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.88); display:flex; align-items:center; justify-content:center; padding:56px 64px; }
.lightbox[hidden]{ display:none; }
.lb-inner{ position:static; max-width:100%; max-height:100%; }
.lightbox figure{ margin:0; text-align:center; }
.lightbox img{ max-width:100%; max-height:calc(100vh - 140px); width:auto; height:auto; display:block; margin:0 auto; background:#222; }
.lightbox figcaption{ color:#fff; margin-top:10px; font-size:.9375rem; }
.lb-btn{ position:absolute; display:flex; align-items:center; justify-content:center; width:48px; height:48px; border:2px solid #fff; background:rgba(0,0,0,.6); color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
.lb-btn:hover,.lb-btn:focus-visible{ background:var(--key-700); outline:3px solid var(--warning); outline-offset:2px; }
.lb-prev{ left:8px; top:50%; transform:translateY(-50%); } .lb-next{ right:8px; top:50%; transform:translateY(-50%); } .lb-close{ right:8px; top:8px; }
body.lb-open{ overflow:hidden; }
.sp-all{ font-weight:600; border-top:1px solid var(--linen); }
/* Search results page */
.search-page-form{ display:flex; gap:8px; max-width:640px; margin-bottom:20px; }
.search-page-form input{ flex:1; min-width:0; font:inherit; border:1px solid var(--grey2); padding:10px 12px; min-height:44px; }
.search-page-form input:focus-visible{ outline:3px solid var(--warning); outline-offset:1px; }
.results{ list-style:none; margin:0; padding:0; }
.results li{ padding:16px 0; border-bottom:1px solid var(--linen); }
.results a.r-title{ font-size:1.0625rem; font-weight:600; }
.results .r-path{ display:block; font-size:.8125rem; color:var(--success); margin:2px 0 4px; }
.results p{ margin:0; line-height:1.6; }
.results mark{ background:#FFF3BF; color:inherit; padding:0 1px; }
@media (max-width:760px){
  .album-grid,.photo-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .lightbox{ padding:64px 8px; }
  .lb-prev,.lb-next{ top:auto; bottom:8px; transform:none; }
}
@media (max-width:420px){ .album-grid{ grid-template-columns:minmax(0,1fr); } }

@media print{
  .page-hero{ background:#fff; color:#000; padding:0; }
  .page-hero h1,.page-hero .lead,.breadcrumb a{ color:#000; }
  .page-layout{ grid-template-columns:1fr; }
  .sidebar,.page-tools{ display:none!important; }
}

/* Press release page */
.pr-meta{ font-weight:600; color:var(--key-700); margin-bottom:14px; }
.pr-body p{ line-height:1.75; max-width:75ch; margin:0 0 14px; }
.media-list .tag{ display:inline-block; margin-left:6px; padding:0 8px; font-size:.75rem; font-weight:600; color:var(--key-900); background:var(--key-50); border:1px solid var(--key-200); vertical-align:middle; }

/* Lists of migrated items: year filter and page numbers */
.list-filter{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0 0 14px; }
.list-filter label{ font-weight:600; }
.list-filter select{ font:inherit; min-height:44px; padding:8px 10px; border:1px solid var(--grey2); background:#fff; color:var(--text); }
.list-filter select:focus-visible{ outline:3px solid var(--warning); outline-offset:1px; }
.pager ul{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:20px 0 0; padding:0; }
.pager li{ display:flex; align-items:center; }
.pager a{ display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:0 12px; border:1px solid var(--key-200); background:#fff; color:var(--key-700); font-weight:600; }
.pager a:hover,.pager a:focus-visible{ background:var(--key-50); text-decoration:none; }
.pager a[aria-current="page"]{ background:var(--key-700); border-color:var(--key-700); color:#fff; }
.album-noimg{ display:block; width:100%; aspect-ratio:4/3; background:var(--key-50); }
.pr-body img{ max-width:100%; height:auto; }
.pr-body ul,.pr-body ol{ padding-left:22px; line-height:1.65; }
.pr-body h2,.pr-body h3{ color:var(--key-900); margin:20px 0 8px; }
.pr-body{ overflow-wrap:anywhere; }
