/* font‑weight utilities */
.fw-light    { font-weight: 300; }
.fw-regular  { font-weight: 400; }
.fw-medium   { font-weight: 500; }
.fw-bold     { font-weight: 700; }

/* ================================
   Font‑size utilities
================================ */
.fs-xs   { font-size: 0.75rem; }   /* 12px if base = 16px */
.fs-sm   { font-size: 0.875rem; }  /* 14px */
.fs-base { font-size: 1rem; }      /* 16px */
.fs-lg   { font-size: 1.125rem; }  /* 18px */
.fs-xl   { font-size: 1.25rem; }   /* 20px */
.fs-2xl  { font-size: 1.3rem; }    /* 24px */
.fs-3xl  { font-size: 1.875rem; }  /* 30px */
.fs-4xl  { font-size: 2.6rem; }   /* 36px */
   
/* ================================
Text‑color utilities
================================ */
.text-primary    { color: #333333; }   /* default body text */
.text-secondary  { color: #696974; }   /* lighter headings, captions */
.text-accent     { color: #d0ccd5; }   /* subtle accents */
.text-muted      { color: #888888; }   /* disabled or fine-print */
.text-white      { color: #ffffff; }   /* when on dark backgrounds */
.text-link       { color: #0275d8; }   /* link color */
.text-link:hover { color: #014c8c; }   /* link hover */

/* ===================================
Line‑height utilities
=================================== */
.lh-tight  { line-height: 1;    }  /* very tight */
.lh-sm     { line-height: 1.2;  }
.lh-base   { line-height: 1.5;  }  /* your default -->
.lh-lg     { line-height: 1.8;  }
.lh-relaxed{ line-height: 2;    }  /* very loose */
   
   

/* reset & base */
* { margin:0; padding:0; box-sizing:border-box }
body {
  font-family: sans-serif;
  color:#333;
  line-height:1.5;
}
a { color:inherit; text-decoration:none }
a:hover { text-decoration:underline }

/* layout */
.container {
  width:90%;
  max-width:1140px;
  margin:0 auto;
}
.row {
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
.row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
  }
  
  .col {
    /* exactly four columns per row */
    flex: 0 0 calc(25% - 1rem);
    max-width: calc(25% - 1rem);
  }
  


/* header */
.site-header {
  padding:1.5rem 0;
  text-align:center;
  background:#fafafa;
}
.site-branding {
  font-size:1.25rem;
  font-weight:800;
}

/* slideshow */
.swiper-container {
  width:100%;
  height:700px;
}
.swiper-slide {
  position:relative;
  background-size:cover;
  background-position:center;
}
.caption {
  position:absolute;
  bottom: -4.0rem;
  left:1rem;
 
}
.caption-inner {
  background:rgba(0, 0, 0, 0);
  color:#8d8d8d;
  padding:0.5rem;
  font-size:0.75rem;
}

/* panels */
.text-panel {
  padding:5rem 0;
  font-size: 1.5rem;
  color: #929292;
  text-align:center;
}
.panel-gradient {
  background:linear-gradient(180deg,#eee,#ccc);
}

/* buttons */
.btn {
  display:inline-block;
  margin:0.5rem;
  padding:0.75rem 1.5rem;
  border:2px solid #333;
  font-weight:500;
}
.btn:hover {
  background:#333;
  color:#fff;
}

/* footer */
.site-footer {
  background:#f8f8f8;
  padding:2rem 0;
  font-size:0.9rem;
}
.site-footer h4 {
  margin-bottom:0.75rem;
  font-weight:500;
}
.site-footer address {
  font-style:normal;
  line-height:1.4;
}
.list-unstyled {
  list-style:none;
  margin-bottom:1rem;
}
.list-unstyled li {
  margin-bottom:0.25rem;
}

/* typography */
h2 {
  font-size:1.75rem;
  margin-bottom:1rem;
}
p {
  margin-bottom:1rem;
}
