:root{
  --bg:#1f3b5c;
  --panel:#284b73;
  --text:#f1f5f9;
  --muted:#d1d5db;
  --line:#3a5f8f;
  --accent:#7cc6ff;
  --accent2:#9fe3c0;
  --warn:#ffd1d1;
  --max:1100px;
  --radius:18px;
  --shadow: 0 10px 24px rgba(0,0,0,.25);
  --pad: 18px;
  --pad2: 28px;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.55}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:var(--max);margin:0 auto;padding:0 16px}
.skip{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip:focus{left:16px;top:16px;width:auto;height:auto;background:var(--panel);padding:10px 12px;border-radius:10px;z-index:50}

header{
  position:sticky;top:0;background:rgba(11,12,16,.86);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--line);
  z-index:40;
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0; gap:12px;
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.2px}

/* Primary navigation links */
.menu{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:flex-end;
}
.menu a{
  color:var(--text);
  opacity:.92;
  font-weight:600;
}
.menu a:hover{opacity:1}
.menu a[aria-current="page"]{opacity:1; text-decoration:underline}

.brand-badge{
  display:inline-block;
  width:28px;
  height:18px;
  background: url("../img/tsns-flag.jpg") no-repeat center / cover;
  border-radius:3px;
}

/* Optional hero banner image (if used) */
.hero-image{
  width:100%;
  height:220px;
  background:
    linear-gradient(rgba(31,59,92,0.25), rgba(31,59,92,0.25)),
    url("../img/ShetlandFirstHeader.jpg");
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  border-bottom:1px solid var(--line);
}
@media (max-width: 768px){
  .hero-image{height:160px;}
}

.card{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:var(--pad2);
  box-shadow:var(--shadow);
}
.card.hero-image{
  padding: 0;
}

.h1{font-size: clamp(30px, 3.5vw, 44px); margin:0 0 8px}
.lead{color:var(--muted);font-size: 1.08rem;margin:0 0 14px}
.kicker{display:inline-flex;gap:8px;align-items:center;color:var(--muted);font-weight:600;font-size:.92rem;margin-bottom:10px}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 12px;border-radius:999px;
  border:1px solid var(--line); background:rgba(255,255,255,.02);
  color:var(--muted); font-size:.92rem;
}
.cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.04); color:var(--text); font-weight:650;
}
.btn.primary{background:linear-gradient(135deg,rgba(125,211,252,.25),rgba(167,243,208,.18)); border-color:rgba(125,211,252,.35)}
.btn:hover{text-decoration:none;filter:brightness(1.05)}

.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 30px;}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:18px 0 30px;}
@media (max-width: 900px){ .grid3,.grid2{grid-template-columns:1fr;} }

.h2{margin:0 0 8px;font-size:1.25rem}
.small{color:var(--muted);margin:0}
.notice{
  border-left:4px solid rgba(125,211,252,.55);
  padding:12px 14px;background:rgba(125,211,252,.07);
  border-radius:14px;border:1px solid rgba(125,211,252,.18);
}
footer{
  margin-top:32px;border-top:1px solid var(--line);
  padding:24px 0;color:var(--muted);font-size:.95rem;
}
.footer-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}
@media (max-width: 900px){ .footer-grid{grid-template-columns:1fr} }
.footer-links{display:flex;flex-wrap:wrap;gap:12px}

/* Banner */
.banner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin:18px 0;padding:14px 18px;
  border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);
  background: rgba(255,255,255,0.06);
}
.banner-flag{
  height:72px;width:auto;display:block;border-radius:8px;border:1px solid rgba(255,255,255,0.15);
  image-rendering: -webkit-optimize-contrast;
}
.banner-title{
  flex:1;text-align:center;font-family:"Times New Roman", Times, serif;font-weight:700;letter-spacing:.4px;
  font-size: clamp(36px, 5vw, 64px);line-height:1.05;color: var(--text);
  text-shadow: 0 3px 10px rgba(0,0,0,0.35);
}
@media (max-width: 640px){ .banner{gap:10px;padding:12px 14px;} .banner-flag{height:52px;} }
