
:root{
  --brand:#243131;
  --text-dark:#0f172a;
  --text-light:#f8fafc;
  --muted:#64748b;
  --accent:#a3e635;      /* focus ring only */
  --maxw: 1100px;
  --radius: 14px;
  --shadow: 0 10px 30px rgba(0,0,0,.25);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color: var(--text-dark);
  background:#ffffff;
  line-height:1.6;
}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 20px}
.section{padding:48px 0}
.bg-green{background:var(--brand); color: var(--text-light)}
.bg-white{background:#fff; color: var(--text-dark)}
.bg-green a{color:#e2f2c2}
.bg-white a{color:var(--text-dark)}

.site-header{
  position:sticky; top:0; z-index:20;
  background: var(--brand);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header .nav{display:flex;align-items:center;justify-content:space-between;padding:12px 0}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--text-light)}
.brand img{height:36px;width:auto;display:block}
.brand .sr-only{position:absolute;left:-9999px}
nav a{color:var(--text-light);text-decoration:none;margin-left:18px;opacity:.9}
nav a:hover{opacity:1}

.site-footer{background:#0f1a19; color:#cbd5e1}
.site-footer .container{padding:24px 0}

h1,h2,h3{font-family:"Playfair Display", Georgia, "Times New Roman", serif; line-height:1.2; margin:0 0 12px}
h1{font-size: clamp(32px, 5vw, 44px)}
h2{font-size: clamp(24px, 3.2vw, 32px); margin-top:8px}
h3{font-size: clamp(18px, 2.2vw, 22px); margin-top:8px}
p{margin:0 0 14px}
.lead{font-size:1.15rem}

/* HERO: use per-page CSS variable (with fallback to hero.jpeg) */
.hero-rect{position:relative; padding:56px 0; background:var(--brand); color:var(--text-light); overflow:hidden}
.hero-image::before{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(180deg, rgba(36,49,49,.55), rgba(36,49,49,.55)),
    var(--hero-image, url('../img/hero.jpeg'));
  background-size: cover; background-position:center;
}
.hero, .hero-rect{min-height:360px; display:flex; align-items:center}
.hero h1{color:var(--text-light)}
.hero p{color:#e6f0ee}
.hero-rect > .container{position:relative; z-index:1}

/* Grid / media */
.split{display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:900px){ .split{grid-template-columns:1fr 1fr} }
.media-card{margin:0; border-radius:12px; overflow:hidden; box-shadow: var(--shadow); border:1px solid rgba(0,0,0,.06)}
.media-card img{display:block; width:100%; height:auto}
.banner img{display:block; width:100%; height:auto; border-radius:12px; box-shadow: var(--shadow)}

/* Buttons: white default */
.btn{
  display:inline-block; background:#ffffff; color:#243131; border:1px solid #d1d5db;
  font-weight:700; padding:10px 16px; border-radius:10px; text-decoration:none;
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}
.btn:hover{transform: translateY(-1px)}
.btn.btn-outline{
  background: transparent; color: var(--text-light); border:1px solid rgba(255,255,255,.6);
  box-shadow:none; padding:9px 15px
}

/* Contact */
.contact-grid{display:grid; grid-template-columns: 1fr; gap:18px}
@media(min-width:880px){ .contact-grid{ grid-template-columns: 1fr 1.4fr } }
.map-embed{width:100%; height:auto; border-radius:12px; overflow:hidden; border:1px solid rgba(0,0,0,.1); background:#0002}
.map-embed iframe{width:100%; height:320px; border:0}

/* Accessibility */
a:focus, button:focus{outline: 2px dashed var(--accent); outline-offset: 2px}
.caption{font-size:.9rem;color:#6b7280;margin-top:6px}
