:root{
  --bg:#ffffff;
  --text:#0f172a;
  --muted:#475569;
  --border:#e2e8f0;
  --card:#f8fafc;
  /* Palette derived from the logo */
  --brand:#34cbd0;     /* bright aqua */
  --brand2:#1aa7b8;    /* deeper aqua */
  --shadow: 0 10px 30px rgba(2, 6, 23, .08);
  --radius: 18px;
  --max: 1100px;
}

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

a{color:inherit;text-decoration:none}
a:hover{opacity:.92}

.container{max-width:var(--max);margin:0 auto;padding:0 18px}

.img{
  width:100%;
  height:auto;
  border-radius: 20px;
  border:1px solid var(--border);
  box-shadow: var(--shadow);
}

.bio-grid{
  display:grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap:16px;
  align-items:center;
  margin-top:14px;
}
@media (max-width: 900px){
  .bio-grid{grid-template-columns:1fr}
}


.contactstrip{
  background: linear-gradient(135deg, rgba(26,167,184,.14), rgba(52,203,208,.12));
  border-bottom:1px solid var(--border);
  color:var(--muted);
  font-size:.92rem;
}
.contactstrip .container{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
  padding:8px 18px;
}
.contactstrip b{color:var(--text)}
.contactstrip a{color:var(--text); text-decoration:underline}
.contactstrip .sep{opacity:.55}

.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--border);
}

.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;
  gap:12px;
}

.brand{
  display:flex;align-items:center;gap:12px;font-weight:750;
  letter-spacing:.2px;
}
.logo{
  width:42px;height:42px;
  border-radius:14px;
  box-shadow:var(--shadow);
  display:grid;place-items:center;
  overflow:hidden;
  background:#ffffff;
}
.logo img{width:100%;height:100%;object-fit:cover;display:block}
.logo svg{display:none}

.navlinks{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.navlinks a{
  padding:8px 10px;border-radius:12px;
  color:var(--muted);
}
.navlinks a.active{color:var(--text);background:var(--card);border:1px solid var(--border)}
.cta{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:14px;
  background:linear-gradient(135deg,var(--brand2),var(--brand));
  color:white;font-weight:700;border:0;
  box-shadow:var(--shadow);
}

.hero{
  padding:54px 0 26px 0;
  background:
    radial-gradient(1000px 420px at 30% 0%, rgba(52,203,208,.18), transparent 65%),
    radial-gradient(900px 420px at 90% 30%, rgba(26,167,184,.14), transparent 60%);
}

.mapwrap{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  background:white;
}
.mapwrap iframe{
  width:100%;
  height:320px;
  border:0;
  display:block;
}
.hero-grid{
  display:grid;grid-template-columns: 1.15fr .85fr;gap:22px;align-items:stretch;
}
@media (max-width: 900px){
  .hero-grid{grid-template-columns:1fr}
}
.h-eyebrow{color:var(--brand2);font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}
h1{font-size:clamp(2rem,3.5vw,3.1rem);line-height:1.12;margin:10px 0 12px}
.lede{color:var(--muted);font-size:1.06rem;max-width:60ch}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:11px 14px;border-radius:14px;border:1px solid var(--border);
  background:white;color:var(--text);font-weight:750;
}
.btn.secondary{background:var(--card)}
.badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.badge{
  font-size:.92rem;color:var(--muted);
  border:1px solid var(--border);background:white;
  padding:8px 10px;border-radius:999px;
}

.card{
  background:white;border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:18px;
}
.card.soft{background:var(--card)}
.kpi{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.kpi .mini{padding:14px;border-radius:16px;border:1px solid var(--border);background:white}
.kpi .mini b{display:block;font-size:1.05rem}
.kpi .mini span{color:var(--muted);font-size:.93rem}

.section{padding:26px 0}
.section h2{font-size:1.55rem;margin:0 0 10px}
.section p{color:var(--muted);margin:0 0 10px}

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

.list{margin:10px 0 0 0;padding:0;list-style:none}
.list li{
  padding:12px 12px;border:1px solid var(--border);
  border-radius:14px;background:white;margin-bottom:10px;
}
.list li b{display:block;margin-bottom:2px}
.small{font-size:.95rem;color:var(--muted)}

.hr{height:1px;background:var(--border);margin:18px 0}

.footer{
  border-top:1px solid var(--border);
  padding:22px 0;color:var(--muted);font-size:.95rem;
}
.footer a{color:var(--muted);text-decoration:underline}

.form{
  display:grid;gap:12px;margin-top:6px
}
input, textarea{
  width:100%;
  padding:12px 12px;border-radius:14px;border:1px solid var(--border);
  font:inherit;
}
textarea{min-height:130px;resize:vertical}
.note{
  padding:12px 12px;border-radius:14px;border:1px solid var(--border);
  background:var(--card);color:var(--muted);
}

/* Gallery */
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:14px;
}
@media (max-width: 900px){
  .gallery-grid{grid-template-columns:1fr}
}
.gallery-card{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:white;
  box-shadow:var(--shadow);
}
.gallery-card img{
  width:100%;
  height:auto;
  display:block;
}
.gallery-meta{padding:14px}
.pill{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--muted);
  font-size:.88rem;
  font-weight:650;
}

.mapwrap{
  border:1px solid var(--border);
  border-radius: 16px;
  overflow:hidden;
  box-shadow: var(--shadow);
  background: white;
}
.mapwrap iframe{
  width:100%;
  height:320px;
  border:0;
  display:block;
}


/* Photo heroes */
.hero.hero-photo{
  background:
    linear-gradient(90deg, rgba(3,24,30,.78) 0%, rgba(3,24,30,.34) 55%, rgba(3,24,30,.10) 100%),
    radial-gradient(1000px 420px at 30% 0%, rgba(52,203,208,.18), transparent 65%),
    radial-gradient(900px 420px at 90% 30%, rgba(26,167,184,.14), transparent 60%),
    var(--hero-image);
  background-size: auto, auto, auto, cover;
  background-position: var(--hero-position, center);
  background-repeat:no-repeat;
  /* Match the visual weight of the homepage hero */
  position: relative;
  min-height: 620px;
  padding: 56px 0;
}

/* Center overlay content on photo heroes */
.hero.hero-photo > .container{
  min-height: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero.hero-photo .hero-grid{
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.hero.hero-photo .hero-copy{
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
  color: #fff;
}

.hero.hero-photo .hero-copy h1,
.hero.hero-photo .hero-copy p,
.hero.hero-photo .hero-copy span,
.hero.hero-photo .hero-copy a{
  color: #fff;
}

.hero.hero-photo .hero-copy p{
  color: rgba(255,255,255,.92);
}

/* Use the same hero image behavior across all pages */
.page-hero.hero{
  padding: 0; /* avoid extra vertical padding when used as image-only banner */
}
.page-hero.hero-photo{
  min-height: 460px; /* match home hero feel */
}
.hero.hero-photo .h-eyebrow{color:rgba(255,255,255,.88)}
.hero.hero-photo h1{color:white}
.hero.hero-photo .lede{color:rgba(255,255,255,.86)}
.hero.hero-photo .badge{
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.18);
  color:rgba(255,255,255,.86);
}
.hero.hero-photo .btn.secondary{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.18);
  color:white;
}

/* Decorative page banners */
.page-hero{padding:18px 0 0}
.page-hero-inner{
  /* Match the homepage hero feel: taller banner + centered, readable overlay text */
  position:relative;
  height:420px;
  border-radius:22px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
  background:
    linear-gradient(90deg, rgba(3,24,30,.55) 0%, rgba(3,24,30,.20) 55%, rgba(3,24,30,.06) 100%),
    var(--hero-image);
  background-size:auto, cover;
  background-position: var(--hero-position, center);
  background-repeat:no-repeat;

  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 18px;
}

.page-hero-overlay{
  color:#fff;
  max-width:820px;
}
.page-hero-overlay h1,
.page-hero-overlay p{color:#fff}
.page-hero-overlay .lede,
.page-hero-overlay .h-eyebrow{color:rgba(255,255,255,.92)}

@media (max-width: 900px){
  .page-hero-inner{height:320px}
}

