:root{
  --red:#b3241a; --red-dark:#7d160f; --gold:#cf9a1f; --gold-dark:#96690c;
  --brown:#4a3018; --brown-dark:#2c1c0f; --cream:#faf5ea; --paper:#ffffff;
  --ink:#241b14; --ink-soft:#5a4a3c; --line:#e6dbc4;
  --focus:#1a5fb4;
  --link:#7d160f;
  --shadow:0 10px 26px -12px rgba(44,28,15,.28);
  --wrap-pad:16px;
  --sect-pad:32px;
  color-scheme: light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html, body{max-width:100%; overflow-x:hidden;}
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:"Noto Sans","Segoe UI",Verdana,Arial,sans-serif; line-height:1.65;
  font-size:100%;
}
body.contrast{
  --cream:#000000; --paper:#0c0c0c; --ink:#ffffff; --ink-soft:#f2f2f2;
  --red:#ff5a4a; --red-dark:#ff8a7a; --gold:#ffd23d; --gold-dark:#ffe37a;
  --brown:#ffd9a0; --line:#555555; --link:#8fd0ff; --focus:#ffd23d;
}
img{max-width:100%; display:block;}
h1,h2,h3,h4{font-family:"Noto Serif",Georgia,serif; color:var(--brown-dark); margin:0 0 .5em; letter-spacing:-.01em;}
body.contrast h1, body.contrast h2, body.contrast h3, body.contrast h4{color:var(--gold);}
a{color:var(--link);}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible{
  outline:3px solid var(--focus); outline-offset:2px;
}
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--red); color:#fff;
  padding:.7em 1.2em; z-index:200; border-radius:0 0 8px 0; font-weight:600;
}
.skip-link:focus{left:0;}
.wrap{max-width:1180px; margin:0 auto; padding:0 var(--wrap-pad);}

/* ============================================================
   BASE (mobile-first): everything below is the small-screen
   layout. Larger screens are progressively enhanced further
   down via min-width media queries.
   ============================================================ */

/* Accessibility bar */
.a11y-bar{background:var(--brown-dark); color:#f6ead9; font-size:.85rem;}
.a11y-bar .wrap{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; padding:8px var(--wrap-pad); text-align:center;}
.a11y-bar .grp{display:flex; align-items:center; gap:6px; flex-wrap:wrap; justify-content:center;}
.a11y-bar .contact-mini{width:100%; justify-content:center; display:flex; flex-wrap:wrap;}
.a11y-bar button{
  background:#ffffff1f; color:#fff; border:1px solid #ffffff55; border-radius:6px;
  padding:6px 10px; cursor:pointer; font-size:.85em; transition:background .15s ease; min-height:38px;
}
.a11y-bar button:hover{background:#ffffff38;}
.a11y-bar .contact-mini a{color:#ffe9c7; margin:0 8px; text-decoration:none;}
.a11y-bar .contact-mini a:hover{text-decoration:underline;}
.weather-widget{color:#ffe9c7; font-weight:600; white-space:nowrap;}

/* Header */
header.site-head{background:var(--paper); border-bottom:4px solid var(--gold); position:sticky; top:0; z-index:100; box-shadow:0 2px 10px rgba(44,28,15,.06);}
.head-inner{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px var(--wrap-pad); flex-wrap:wrap; row-gap:8px;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); min-width:0;}
.brand img{height:42px; width:auto; flex:none;}
.brand-text{font-family:"Noto Serif",Georgia,serif; font-weight:700; color:var(--red-dark); line-height:1.2; font-size:.88rem;}
body.contrast .brand-text{color:var(--gold);}
.brand-text small{display:none; font-weight:400; color:var(--ink-soft); font-size:.62rem;}

nav.main-nav{background:linear-gradient(180deg, var(--red), var(--red-dark));}
body.contrast nav.main-nav{background:#1a1a1a; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
nav.main-nav ul{list-style:none; display:none; flex-direction:column; margin:0; padding:8px 0;}
nav.main-nav ul.open{display:flex;}
nav.main-nav li{width:100%;}
nav.main-nav a{
  display:block; color:#fff; text-decoration:none; padding:14px 20px; font-weight:600; font-size:.95rem;
  border-bottom:1px solid #ffffff25; transition:border-color .15s ease, background .15s ease; min-height:44px;
}
nav.main-nav a:hover, nav.main-nav a:focus-visible{background:#00000020;}
nav.main-nav a[aria-current="page"]{background:#00000025; box-shadow:inset 3px 0 0 var(--gold);}
.nav-toggle{display:inline-flex; align-items:center; gap:6px; background:var(--red); color:#fff; border:none; padding:10px 14px; font-size:1rem; border-radius:6px; min-height:44px; cursor:pointer;}

main{display:block;}
section{padding:var(--sect-pad) 0;}
section.alt{background:var(--paper);}
body.contrast section.alt{background:#0c0c0c;}
.eyebrow{color:var(--gold-dark); font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.78rem; margin-bottom:6px;}
body.contrast .eyebrow{color:var(--gold);}
.lead{font-size:1.05rem; color:var(--ink-soft); max-width:70ch;}

/* Hero */
.hero{position:relative; color:#fff; overflow:hidden;}
.hero-bg{position:absolute; inset:0; background-size:cover; background-position:center;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(120deg, rgba(44,20,12,.94) 8%, rgba(122,32,18,.80) 55%, rgba(44,20,12,.55) 100%);}
.hero-content{position:relative; padding:44px 0 32px;}
.hero-badge{display:inline-flex; align-items:center; gap:10px; background:#ffffff20; border:1px solid #ffffff55; padding:6px 14px; border-radius:999px; font-size:.8rem; margin-bottom:16px;}
.hero-badge img{height:24px;}
.hero h1{color:#fff; font-size:clamp(1.4rem,6vw,2.6rem); max-width:20ch;}
.hero p.lead{color:#fbe9d6;}
.hero-actions{display:flex; flex-direction:column; gap:12px; margin-top:22px;}
.btn{
  display:inline-block; padding:12px 22px; border-radius:8px; font-weight:700; text-decoration:none;
  border:2px solid transparent; cursor:pointer; font-size:1rem; font-family:inherit; transition:background .15s ease, transform .1s ease;
  text-align:center; min-height:44px;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--gold); color:var(--brown-dark);}
.btn-primary:hover{background:var(--gold-dark); color:#fff;}
.btn-outline{background:transparent; border-color:#fff; color:#fff;}
.btn-outline:hover{background:#ffffff20;}
.btn-solid{background:var(--red); color:#fff;}
.btn-solid:hover{background:var(--red-dark);}

.stats{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:-16px; position:relative; z-index:2;}
.stat-card{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:14px; text-align:center; box-shadow:var(--shadow);}
.stat-card .num{font-size:1.4rem; font-weight:800; color:var(--red-dark); font-family:"Noto Serif",Georgia,serif;}
body.contrast .stat-card .num{color:var(--gold);}
.stat-card .cap{font-size:.8rem; color:var(--ink-soft);}
.stat-note{font-size:.78rem; color:var(--ink-soft); text-align:center; margin-top:10px;}

.section-head{display:flex; flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:22px;}

.grid-3, .grid-2, .quicklinks, .team-grid, .icon-grid, .news-grid{display:grid; grid-template-columns:1fr; gap:16px;}
.card{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:20px; height:100%; transition:box-shadow .15s ease, transform .15s ease;}
.card:hover{box-shadow:var(--shadow); transform:translateY(-2px);}
body.contrast .card{background:#111;}
.card h3{font-size:1.1rem; margin-bottom:8px;}
.tag{display:inline-block; background:var(--cream); border:1px solid var(--line); color:var(--brown); font-size:.75rem; padding:2px 10px; border-radius:999px; margin-bottom:8px; font-weight:600;}
body.contrast .tag{background:#1a1a1a;}

.qlink{display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; text-decoration:none; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:20px 10px; transition:border-color .15s ease, box-shadow .15s ease; min-height:44px; justify-content:center;}
.qlink:hover{border-color:var(--gold-dark); background:var(--cream); box-shadow:var(--shadow);}
.qlink svg{width:34px; height:34px; stroke:var(--red-dark); fill:none;}
body.contrast .qlink svg{stroke:var(--gold);}
.qlink span{font-weight:700; font-size:.9rem;}

.timeline{border-left:3px solid var(--gold-dark); margin-left:10px; padding-left:20px;}
.timeline .t-item{position:relative; margin-bottom:22px;}
.timeline .t-item::before{content:""; position:absolute; left:-27px; top:4px; width:12px; height:12px; border-radius:50%; background:var(--red); border:3px solid var(--gold);}
.timeline .yr{font-weight:800; color:var(--red-dark); font-family:"Noto Serif",Georgia,serif;}
body.contrast .timeline .yr{color:var(--gold);}

blockquote.mission{background:linear-gradient(135deg,var(--red),var(--red-dark)); color:#fff; padding:24px; border-radius:14px; font-size:1.05rem; font-family:"Noto Serif",Georgia,serif; margin:0; box-shadow:var(--shadow);}
blockquote.mission cite{display:block; margin-top:10px; font-size:.8rem; font-style:normal; color:#ffe9c7;}

.director{display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:22px;}
.director img{width:130px; border-radius:12px; border:3px solid var(--gold);}
.director .role{color:var(--gold-dark); font-weight:700; text-transform:uppercase; font-size:.8rem; letter-spacing:.05em;}

.team-card{background:var(--paper); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow);}
.team-card img{width:100%; height:200px; object-fit:cover; object-position:top;}
.team-card figcaption{padding:12px 16px; font-weight:700; color:var(--brown-dark);}
body.contrast .team-card figcaption{color:var(--gold);}
figure{margin:0;}

.icon-card{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:20px; text-align:center;}
.icon-card svg{width:36px; height:36px; stroke:var(--red-dark); fill:none; margin-bottom:10px;}
body.contrast .icon-card svg{stroke:var(--gold);}

table{width:100%; border-collapse:collapse; background:var(--paper);}
caption{text-align:left; font-weight:700; margin-bottom:8px; color:var(--brown-dark);}
th, td{border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; font-size:.88rem;}
th{background:var(--brown-dark); color:#fff; font-family:"Noto Serif",Georgia,serif;}
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:10px;}
.table-scroll table{min-width:480px;}

form.contact-form{display:grid; gap:16px; background:var(--paper); border:1px solid var(--line); border-radius:14px; padding:18px; box-shadow:var(--shadow);}
form.contact-form label{display:block; font-weight:700; margin-bottom:6px;}
form.contact-form .req::after{content:" *"; color:var(--red);}
form.contact-form input, form.contact-form select, form.contact-form textarea{
  width:100%; padding:12px; border:1px solid var(--line); border-radius:8px; font:inherit; background:var(--cream); color:var(--ink);
  font-size:16px; /* prevents iOS auto-zoom on focus */
}
form.contact-form .hint{font-size:.8rem; color:var(--ink-soft); margin-top:4px;}
form.contact-form fieldset{border:1px solid var(--line); border-radius:10px; padding:14px;}
form.contact-form legend{font-weight:700; padding:0 6px;}
form.contact-form .grid-2{gap:16px;}
.form-msg{padding:12px 14px; border-radius:8px; background:#e6f6e9; border:1px solid #86c99a; display:none;}
.form-msg.show{display:block;}
body.contrast .form-msg{background:#062b0c; border-color:#3a8;}

.filter-bar{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:20px;}
.filter-bar button{background:var(--paper); border:1px solid var(--line); padding:8px 14px; border-radius:999px; cursor:pointer; font-weight:600; color:var(--ink); min-height:40px;}
.filter-bar button[aria-pressed="true"]{background:var(--red); color:#fff; border-color:var(--red);}
.filter-bar input[type="search"]{flex:1 1 100%; min-width:0; padding:10px 14px; border:1px solid var(--line); border-radius:999px; font:inherit; font-size:16px; background:var(--paper); color:var(--ink);}

.news-card{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:16px; display:flex; flex-direction:column; gap:8px;}
.news-meta{font-size:.8rem; color:var(--ink-soft); display:flex; gap:10px; flex-wrap:wrap;}

.doc-card{background:var(--paper); border:1px solid var(--line); border-radius:12px; padding:16px;}
.doc-card .meta{font-size:.8rem; color:var(--ink-soft); margin-bottom:6px;}
.doc-actions{display:flex; gap:10px; margin-top:12px; flex-wrap:wrap;}
.btn-small{padding:10px 14px; font-size:.85rem; border-radius:6px; min-height:40px;}

details.faq{background:var(--paper); border:1px solid var(--line); border-radius:10px; padding:14px 16px; margin-bottom:10px;}
details.faq summary{font-weight:700; cursor:pointer; min-height:24px;}
details.faq[open] summary{margin-bottom:10px;}

.accord-steps{counter-reset:step; list-style:none; padding:0; margin:0; display:grid; gap:12px;}
.accord-steps li{position:relative; padding-left:44px; background:var(--paper); border:1px solid var(--line); border-radius:10px; padding-top:12px; padding-bottom:12px; padding-right:14px;}
.accord-steps li::before{counter-increment:step; content:counter(step); position:absolute; left:12px; top:12px; width:24px; height:24px; border-radius:50%; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.8rem;}

footer.site-foot{background:var(--brown-dark); color:#f3e6d3; padding:36px 0 20px;}
footer.site-foot a{color:#ffe9c7;}
.foot-grid{grid-template-columns:1fr; gap:24px; text-align:left;}
.foot-grid h4{color:#ffe9c7; font-size:1rem; margin-bottom:12px;}
.foot-grid ul{list-style:none; margin:0; padding:0;}
.foot-grid li{margin-bottom:8px; font-size:.92rem;}
.foot-brand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.foot-brand img{height:40px;}
.foot-bottom{border-top:1px solid #ffffff30; margin-top:24px; padding-top:16px; font-size:.78rem; text-align:center; color:#d9c6ab;}

.back-top{position:fixed; right:16px; bottom:16px; background:var(--red); color:#fff; border:none; border-radius:50%; width:50px; height:50px; font-size:1.2rem; cursor:pointer; box-shadow:0 4px 12px #0006; display:none; z-index:90;}
.back-top.show{display:block;}

/* ============================================================
   ≥600px — large phones / small tablets: 2-column grids
   ============================================================ */
@media (min-width: 600px){
  :root{ --wrap-pad:20px; }
  .grid-3, .grid-2, .quicklinks, .team-grid, .icon-grid, .news-grid, .foot-grid{grid-template-columns:1fr 1fr;}
  .stats{grid-template-columns:repeat(4,1fr);}
  .hero-actions{flex-direction:row; flex-wrap:wrap;}
  .btn{display:inline-block;}
  .director{flex-direction:row; text-align:left; align-items:flex-start;}
  .brand-text small{display:block;}
  .filter-bar input[type="search"]{flex:1 1 auto;}
}

/* ============================================================
   ≥860px — tablet landscape and up: horizontal nav returns
   ============================================================ */
@media (min-width: 860px){
  :root{ --sect-pad:56px; }
  .head-inner{flex-wrap:nowrap;}
  .brand img{height:56px;}
  .brand-text{font-size:1rem;}
  nav.main-nav ul{display:flex !important; flex-direction:row; flex-wrap:wrap; padding:0 var(--wrap-pad); max-width:1180px; margin:0 auto;}
  nav.main-nav li{width:auto;}
  nav.main-nav a{padding:12px 16px; border-bottom:3px solid transparent; min-height:0;}
  nav.main-nav a:hover, nav.main-nav a:focus-visible{border-bottom-color:var(--gold);}
  nav.main-nav a[aria-current="page"]{border-bottom-color:var(--gold); box-shadow:none;}
  .nav-toggle{display:none;}
  .a11y-bar .wrap{justify-content:space-between; text-align:left;}
  .a11y-bar .contact-mini{width:auto; justify-content:flex-start;}
  .hero-content{padding:70px 0 50px;}
  .stats{margin-top:-40px;}
  .section-head{flex-direction:row; align-items:flex-end; justify-content:space-between;}
}

/* ============================================================
   ≥1000px — desktop: 3/4-column grids where the content calls for it
   ============================================================ */
@media (min-width: 1000px){
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .quicklinks{grid-template-columns:repeat(4,1fr);}
  .icon-grid{grid-template-columns:repeat(3,1fr);}
  .news-grid{grid-template-columns:repeat(3,1fr);}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:2fr 1fr 1fr 1.2fr; text-align:left;}
}
@media (min-width: 600px){
  .team-grid-3{grid-template-columns:1fr 1fr;}
}
@media (min-width: 1000px){
  .team-grid-3{grid-template-columns:repeat(3,1fr);}
}

/* Comfortable touch targets on touch devices */
@media (hover: none) and (pointer: coarse){
  .btn, nav.main-nav a, .qlink, .a11y-bar button, .filter-bar button, .nav-toggle{min-height:44px;}
  .back-top{width:52px; height:52px;}
}
