/*
 * MOFA Missions Overseas — front-end styles.
 * Everything is scoped under #mofa-missions so it cannot leak into the
 * theme, and the theme cannot leak into it.
 */

#mofa-missions{
  --mofa-teal:#0D7D72;
  --mofa-teal-dark:#0A6259;
  --mofa-navy:#0D2B4A;
  --mofa-navy-2:#12395F;
  --mofa-ink:#123047;
  --mofa-body:#4A5C6B;
  --mofa-line:#E2E9EE;
  --mofa-bg:#F5F8FA;
  --mofa-radius:10px;
  --mofa-shadow:0 2px 10px rgba(13,43,74,.07);
  --mofa-shadow-hover:0 10px 26px rgba(13,43,74,.14);
  --mofa-embassy:#1C6DAE;
  --mofa-hc:#0D7D72;
  --mofa-pm:#14487A;
  box-sizing:border-box;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--mofa-ink);
  background:#fff;
  line-height:1.55;
}
#mofa-missions *,#mofa-missions *::before,#mofa-missions *::after{box-sizing:border-box}
#mofa-missions img,#mofa-missions svg{max-width:100%}
#mofa-missions a{color:var(--mofa-teal);text-decoration:none}
#mofa-missions a:hover{text-decoration:underline}
#mofa-missions :focus-visible{outline:3px solid #F0B429;outline-offset:2px;border-radius:4px}

/* ---------- HERO ---------- */
#mofa-missions .mofa-hero{
  position:relative;
  background:
    radial-gradient(1200px 420px at 80% 20%, rgba(13,125,114,.30), transparent 60%),
    linear-gradient(120deg,var(--mofa-navy) 0%,var(--mofa-navy-2) 55%,#0F4E6B 100%);
  color:#fff;
  padding:64px 20px 100px;
  text-align:center;
  overflow:hidden;
}
#mofa-missions .mofa-hero::after{
  content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;
  background-image:radial-gradient(#9FD9D2 1px,transparent 1px);
  background-size:16px 16px;
}
#mofa-missions .mofa-hero-inner{position:relative;z-index:1;max-width:820px;margin:0 auto}
#mofa-missions .mofa-hero h1{
  margin:0 0 14px;font-size:clamp(28px,5vw,46px);line-height:1.15;
  font-weight:800;letter-spacing:-.5px;color:#fff;
}
#mofa-missions .mofa-hero p{margin:0 auto;max-width:640px;font-size:clamp(15px,2vw,18px);color:#D6E4EE}
#mofa-missions .mofa-hero-rule{width:74px;height:4px;border-radius:4px;background:#39B5A4;margin:22px auto 0}

/* ---------- SEARCH BAR ---------- */
#mofa-missions .mofa-searchwrap{max-width:1180px;margin:-46px auto 0;padding:0 20px;position:relative;z-index:3}
#mofa-missions .mofa-searchbar{
  background:#fff;border:1px solid var(--mofa-line);border-radius:var(--mofa-radius);
  box-shadow:0 8px 26px rgba(13,43,74,.13);
  padding:14px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;
}
#mofa-missions .mofa-search-field{position:relative;flex:1 1 320px;min-width:240px}
#mofa-missions .mofa-search-field svg{
  position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:19px;height:19px;color:#7E93A3;pointer-events:none;
}
#mofa-missions .mofa-search-field input{
  width:100%;padding:13px 14px 13px 44px;font-size:15px;font-family:inherit;color:var(--mofa-ink);
  border:1px solid var(--mofa-line);border-radius:8px;background:#FBFDFE;
}
#mofa-missions .mofa-search-field input:focus{border-color:var(--mofa-teal);background:#fff;outline:none;box-shadow:0 0 0 3px rgba(13,125,114,.15)}
#mofa-missions .mofa-searchbar select{
  flex:0 1 210px;min-width:170px;padding:13px 38px 13px 14px;font-size:15px;font-family:inherit;
  color:var(--mofa-ink);border:1px solid var(--mofa-line);border-radius:8px;background-color:#FBFDFE;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237E93A3' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:16px;
}
#mofa-missions .mofa-searchbar select:focus{border-color:var(--mofa-teal);outline:none;box-shadow:0 0 0 3px rgba(13,125,114,.15)}

/* ---------- FILTER PILLS ---------- */
#mofa-missions .mofa-body{max-width:1180px;margin:0 auto;padding:30px 20px 0}
#mofa-missions .mofa-filterrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
#mofa-missions .mofa-filterlabel{font-size:13.5px;font-weight:700;color:var(--mofa-body);margin-right:4px;white-space:nowrap}
#mofa-missions .mofa-pill{
  display:inline-flex;align-items:center;gap:7px;
  padding:9px 16px;border:1px solid var(--mofa-line);border-radius:999px;background:#fff;
  font-size:13.5px;font-weight:600;font-family:inherit;color:var(--mofa-body);
  cursor:pointer;transition:.16s ease;line-height:1.2;
}
#mofa-missions .mofa-pill:hover{border-color:#B9CFD9;color:var(--mofa-ink);box-shadow:var(--mofa-shadow)}
#mofa-missions .mofa-pill svg{width:16px;height:16px;flex:none}
#mofa-missions .mofa-pill[aria-pressed="true"]{background:var(--mofa-teal);border-color:var(--mofa-teal);color:#fff;box-shadow:0 3px 10px rgba(13,125,114,.3)}
#mofa-missions .mofa-pill[aria-pressed="true"] svg{color:#fff}

#mofa-missions .mofa-count{font-size:14px;color:var(--mofa-body);margin:6px 0 22px;border-top:1px solid var(--mofa-line);padding-top:16px}
#mofa-missions .mofa-count b{color:var(--mofa-ink)}
#mofa-missions .mofa-reset{
  margin-left:10px;background:none;border:none;padding:0;font:inherit;font-size:14px;
  color:var(--mofa-teal);cursor:pointer;text-decoration:underline;
}

/* ---------- REGION SECTIONS ---------- */
#mofa-missions .mofa-region{margin:0 0 40px}
#mofa-missions .mofa-region[hidden]{display:none}
#mofa-missions .mofa-region-head{display:flex;align-items:center;gap:12px;margin:0 0 20px}
#mofa-missions .mofa-region-icon{
  width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--mofa-teal);color:#fff;
}
#mofa-missions .mofa-region-icon svg{width:20px;height:20px}
#mofa-missions .mofa-region-head h2{
  margin:0;font-size:21px;font-weight:800;color:var(--mofa-teal-dark);letter-spacing:-.2px;
  padding-bottom:6px;border-bottom:3px solid var(--mofa-teal);
}

/* ---------- CARD GRID ---------- */
#mofa-missions .mofa-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
#mofa-missions .mofa-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--mofa-line);
  border-top:4px solid var(--mofa-teal);border-radius:var(--mofa-radius);
  box-shadow:var(--mofa-shadow);padding:20px 18px;transition:.18s ease;
}
#mofa-missions .mofa-card:hover{box-shadow:var(--mofa-shadow-hover);transform:translateY(-3px)}
#mofa-missions .mofa-card[hidden]{display:none}
#mofa-missions .mofa-card-top{display:flex;align-items:center;gap:11px;margin-bottom:10px}
#mofa-missions .mofa-flag{
  width:34px;height:23px;flex:none;border-radius:3px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(13,43,74,.14);display:block;
}
#mofa-missions .mofa-flag svg{display:block;width:100%;height:100%}
#mofa-missions .mofa-city{font-size:16.5px;font-weight:800;color:var(--mofa-ink);letter-spacing:-.2px}

#mofa-missions .mofa-badge{
  align-self:flex-start;display:inline-block;padding:4px 11px;border-radius:4px;
  font-size:10.5px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:#fff;margin-bottom:12px;
}
#mofa-missions .mofa-badge.t-embassy{background:var(--mofa-embassy)}
#mofa-missions .mofa-badge.t-high-commission{background:var(--mofa-hc)}
#mofa-missions .mofa-badge.t-permanent-mission{background:var(--mofa-pm)}

#mofa-missions .mofa-name{font-size:15px;font-weight:700;color:var(--mofa-ink);text-align:center;margin:0 0 12px;line-height:1.35}
#mofa-missions .mofa-hom{text-align:center;margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--mofa-line)}
#mofa-missions .mofa-hom-label{display:block;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#8195A3;margin-bottom:3px}
#mofa-missions .mofa-hom-name{display:block;font-size:13.5px;font-weight:700;color:var(--mofa-ink)}
#mofa-missions .mofa-hom-title{display:block;font-size:12.5px;color:var(--mofa-body)}

#mofa-missions .mofa-details{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:9px;flex:1 1 auto}
#mofa-missions .mofa-details li{display:flex;gap:10px;font-size:13px;color:var(--mofa-body);line-height:1.5}
#mofa-missions .mofa-details li svg{width:15px;height:15px;flex:none;margin-top:2px;color:var(--mofa-teal)}
#mofa-missions .mofa-details a{word-break:break-word}
#mofa-missions .mofa-tag{font-size:11.5px;color:#8195A3}

#mofa-missions .mofa-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto}
#mofa-missions .mofa-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:9px 8px;border-radius:6px;font-size:12.5px;font-weight:700;font-family:inherit;
  text-decoration:none;border:1px solid transparent;transition:.15s ease;cursor:pointer;text-align:center;
}
#mofa-missions .mofa-btn svg{width:14px;height:14px;flex:none}
#mofa-missions .mofa-btn-solid{background:var(--mofa-teal);color:#fff}
#mofa-missions .mofa-btn-solid:hover{background:var(--mofa-teal-dark);color:#fff;text-decoration:none}
#mofa-missions .mofa-btn-ghost{background:#fff;border-color:var(--mofa-line);color:var(--mofa-teal-dark)}
#mofa-missions .mofa-btn-ghost:hover{border-color:var(--mofa-teal);background:#F2FAF9;text-decoration:none}
#mofa-missions .mofa-btn.is-disabled{background:#F3F6F8;color:#A9B8C2;border-color:var(--mofa-line);pointer-events:none}

/* ---------- EMPTY STATE + FOOTER NOTE ---------- */
#mofa-missions .mofa-empty{
  display:none;text-align:center;padding:56px 20px;border:1px dashed #C7D6DE;border-radius:var(--mofa-radius);
  background:var(--mofa-bg);color:var(--mofa-body);margin-bottom:40px;
}
#mofa-missions .mofa-empty.is-shown{display:block}
#mofa-missions .mofa-empty strong{display:block;font-size:17px;color:var(--mofa-ink);margin-bottom:6px}

#mofa-missions .mofa-note{
  display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between;
  background:var(--mofa-bg);border:1px solid var(--mofa-line);border-radius:var(--mofa-radius);
  padding:16px 20px;margin:10px 0 46px;font-size:13px;color:var(--mofa-body);
}
#mofa-missions .mofa-note-item{display:flex;align-items:center;gap:9px}
#mofa-missions .mofa-note-item svg{width:17px;height:17px;color:var(--mofa-teal);flex:none}

@media (max-width:640px){
  #mofa-missions .mofa-hero{padding:46px 18px 88px}
  #mofa-missions .mofa-searchbar select{flex:1 1 100%}
  #mofa-missions .mofa-grid{grid-template-columns:1fr}
  #mofa-missions .mofa-filterrow{gap:8px}
  #mofa-missions .mofa-pill{padding:8px 13px;font-size:12.5px}
  #mofa-missions .mofa-note{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  #mofa-missions *{transition:none!important;transform:none!important}
}
@media print{
  #mofa-missions .mofa-hero,#mofa-missions .mofa-searchwrap,#mofa-missions .mofa-filterrow,
  #mofa-missions .mofa-actions,#mofa-missions .mofa-count{display:none!important}
  #mofa-missions .mofa-card{break-inside:avoid;box-shadow:none}
}

/* Screen-reader-only text (WordPress core class, redeclared so the block
   still works if a theme omits it). */
#mofa-missions .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#mofa-missions .mofa-searchwrap.mofa-nohero{margin-top:0;padding-top:24px}

/* Special Envoys (added v1.1.0) -------------------------------------------
   A distinct badge colour so an envoy is never mistaken for a diplomatic
   mission, and a centred grid so a single card does not look like a page
   that failed to load. */
#mofa-missions{--mofa-envoy:#A9761B}
#mofa-missions .mofa-badge.t-special-envoy{background:var(--mofa-envoy)}
#mofa-missions .mofa-grid.mofa-centered{max-width:430px;margin-left:auto;margin-right:auto;grid-template-columns:1fr}
@media (min-width:641px){
  #mofa-missions .mofa-grid.mofa-centered .mofa-card{padding:26px 24px}
  #mofa-missions .mofa-grid.mofa-centered .mofa-name{font-size:16px}
}

/* No-hero pages (v1.2.0): the search bar sits directly under normal page
   flow instead of overlapping a hero banner, so it needs top margin instead
   of the negative overlap margin used when a hero is present. */
#mofa-missions .mofa-searchwrap.mofa-nohero{margin-top:0;padding-top:8px}
/* On a flat (single-type) page the region/type <select> elements are not
   printed at all, so the search field alone should still look intentional
   rather than starved for width. */
#mofa-missions .mofa-searchbar:has(.mofa-search-field:only-child) .mofa-search-field{flex:1 1 100%}
