/* =========================================================
   Peguis Free Spirits - Cassiopeia user.css (Consolidated)
   Palette:
   Teal   #6ed3cf
   Purple #9068be
   Grey   #e1e8f0
   ========================================================= */

/* -------------------------
   1) Theme variables
-------------------------- */
:root{
  --pfs-teal: #6ed3cf;
  --pfs-purple: #9068be;
  --pfs-grey: #e1e8f0;

  --pfs-ink: #0f172a;
  --pfs-muted: #475569;

  --pfs-surface: #ffffff;
  --pfs-border: rgba(15, 23, 42, .10);

  --pfs-shadow: 0 10px 26px rgba(15, 23, 42, .10);
  --pfs-shadow-hover: 0 16px 36px rgba(15, 23, 42, .14);

  --pfs-radius: 18px;
  --pfs-radius-sm: 12px;
  --pfs-pill: 999px;

  --pfs-ring: 0 0 0 4px rgba(110, 211, 207, .35);

  /* Bootstrap + Cassiopeia variables */
  --bs-primary: var(--pfs-teal);
  --bs-secondary: var(--pfs-purple);
  --bs-link-color: var(--pfs-purple);
  --bs-link-hover-color: var(--pfs-teal);

  --cassiopeia-color-primary: var(--pfs-teal);
  --cassiopeia-color-link: var(--pfs-purple);
  --cassiopeia-color-hover: var(--pfs-teal);
}

/* -------------------------
   2) Base / background
-------------------------- */
html, body{
  background: var(--pfs-grey) !important;
  color: var(--pfs-ink);
}

p, li{
  color: var(--pfs-muted);
}

::selection{
  background: rgba(110,211,207,.35);
}

.container-component,
.site,
main{
  background: transparent !important;
}

/* Links: airy underline on hover */
a{
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 2px;
  background-position: 0 100%;
  background-repeat: no-repeat;
  transition: color .18s ease, background-size .18s ease;
}
a:hover{
  background-size: 100% 2px;
}

/* -------------------------
   3) Header - less flat + accent band (Option B style)
      + Branding badge
      + Sticky header
-------------------------- */
.container-header,
.header{
  background: var(--pfs-surface) !important;
  border-bottom: 1px solid var(--pfs-border) !important;
  position: sticky;
  top: 0;
  z-index: 999;
  box-shadow: var(--pfs-shadow);
}

/* Accent band across top */
.container-header::before{
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 10px;
  background: linear-gradient(90deg, var(--pfs-teal), var(--pfs-purple));
}

/* Soft tint behind nav area */
.container-header::after{
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: 10px; bottom: 0;
  background:
    radial-gradient(900px 220px at 15% 0%, rgba(110,211,207,.14), transparent 60%),
    radial-gradient(900px 220px at 85% 0%, rgba(144,104,190,.12), transparent 60%);
  pointer-events: none;
  z-index: 0;
}

/* Put header content above overlays */
.container-header > *{
  position: relative;
  z-index: 1;
}

/* Breathing room */
.container-header{
  padding-top: 10px;
  padding-bottom: 10px;
}

/* Branding: keep as one row */
header .navbar-brand,
header .site-branding,
header .site-branding a{
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
}

/* Logo sizing */
header .navbar-brand img,
header .site-branding img{
  display: block !important;
  height: 56px !important;
  width: auto !important;
  margin-right: 12px !important;
  border-radius: var(--pfs-radius-sm);
}

/* Keep title/tagline inline */
header .site-title,
header .site-description,
header .navbar-brand span,
header .navbar-brand small{
  display: inline-block !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Brand badge feel */
.container-header .site-branding,
.container-header .navbar-brand{
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  padding: .45rem .75rem;
  border-radius: var(--pfs-pill);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
  backdrop-filter: blur(6px);
}

/* Brand text readable on white header */
.container-header .site-title,
.container-header .site-title a,
.container-header .site-description,
.container-header .navbar-brand,
.container-header .navbar-brand a{
  color: var(--pfs-ink) !important;
}

/* Nav link pills */
.navbar .nav-link,
.mod-menu .nav-link{
  color: var(--pfs-ink) !important;
  border-radius: var(--pfs-pill);
  padding: .5rem .95rem;
  transition: background-color .18s ease, transform .14s ease, box-shadow .18s ease;
}
.navbar .nav-link:hover,
.mod-menu .nav-link:hover{
  background: rgba(110,211,207,.18);
  transform: translateY(-1px);
}
.navbar .nav-item.active > .nav-link,
.mod-menu .nav-item.active > .nav-link,
.navbar .nav-link.active{
  background: rgba(144,104,190,.16);
  box-shadow: inset 0 0 0 2px rgba(144,104,190,.22);
  color: var(--pfs-ink) !important;
}

/* Search styling in header */
.container-header input[type="search"],
.container-header input[type="text"]{
  border-radius: var(--pfs-pill) !important;
  border: 1px solid rgba(15, 23, 42, .16) !important;
  background: rgba(255,255,255,.90) !important;
}
.container-header input[type="search"]:focus,
.container-header input[type="text"]:focus{
  outline: none !important;
  box-shadow: var(--pfs-ring) !important;
  border-color: rgba(110, 211, 207, .85) !important;
}

/* Header buttons */
.container-header .btn,
.container-header button,
.container-header .btn-primary{
  border-radius: var(--pfs-pill) !important;
}
.container-header .btn-primary,
.container-header button.btn-primary{
  border: 0 !important;
  background: linear-gradient(135deg, var(--pfs-teal), var(--pfs-purple)) !important;
  box-shadow: 0 10px 22px rgba(144,104,190,.18);
}
.container-header .btn-primary:hover,
.container-header button.btn-primary:hover{
  filter: brightness(1.04);
}

/* Focus ring (keyboard accessibility) */
.container-header a:focus-visible,
.container-header button:focus-visible,
.container-header input:focus-visible{
  outline: none !important;
  box-shadow: var(--pfs-ring) !important;
}

/* -------------------------
   4) Desktop: branding + menu + search on one row
      + center ONLY ul.menu-center
-------------------------- */
@media (min-width: 992px){
  header.container-header{
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
  }

  header.container-header .container-branding{
    flex: 0 0 auto;
  }

  header.container-header .container-nav{
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
  }

  header.container-header .container-nav > nav.navbar{
    flex: 1 1 auto;
    min-width: 0;
  }

  header.container-header .container-nav > .container-search{
    flex: 0 0 auto;
    margin-left: auto;
  }

  header.container-header nav.navbar .navbar-collapse ul.menu-center{
    display: flex;
    justify-content: center;
    width: 100%;
    margin: 0;
    padding-left: 0;
  }

  header.container-header nav.navbar .navbar-collapse ul.menu-center > li{
    margin: 0;
  }
}

/* -------------------------
   5) Hero/Banner text contrast (white text + overlay)
-------------------------- */
.container-banner,
.container-banner .banner,
.container-banner .banner-overlay{
  position: relative;
}

.container-banner::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(15, 23, 42, .55),
    rgba(15, 23, 42, .25)
  );
  pointer-events: none;
  z-index: 0;
}

.container-banner > *{
  position: relative;
  z-index: 1;
}

.container-banner,
.container-banner h1,
.container-banner h2,
.container-banner h3,
.container-banner p,
.container-banner a{
  color: #ffffff !important;
}

.container-banner h1,
.container-banner h2,
.container-banner p{
  text-shadow: 0 2px 18px rgba(0,0,0,.45);
}

/* -------------------------
   6) Cards / modules / blog items general
-------------------------- */
.card,
.moduletable,
.blog-item,
.com-content-category-blog .blog-items .item,
.item-content{
  background: var(--pfs-surface) !important;
  border: 1px solid var(--pfs-border) !important;
  border-radius: var(--pfs-radius) !important;
  box-shadow: var(--pfs-shadow) !important;
  overflow: hidden;
}

.card:hover,
.moduletable:hover,
.blog-item:hover,
.com-content-category-blog .blog-items .item:hover,
.item-content:hover{
  box-shadow: var(--pfs-shadow-hover) !important;
  border-color: rgba(144,104,190,.22) !important;
}

img{
  border-radius: var(--pfs-radius-sm);
  max-width: 100%;
  height: auto;
}

/* Blog tile padding */
.com-content-category-blog .blog-items .item,
.blog-items .blog-item{
  padding: 1rem;
}

/* Headings */
h1, h2, h3, h4{
  color: var(--pfs-ink);
}

/* Article meta toned down */
.article-info,
.content-info{
  color: rgba(15,23,42,.60) !important;
}

/* Buttons (site-wide) */
.btn,
button,
input[type="submit"]{
  border-radius: var(--pfs-pill) !important;
}
.btn-primary{
  border: 0 !important;
  background: linear-gradient(135deg, var(--pfs-teal), var(--pfs-purple)) !important;
}
.btn-primary:hover{
  filter: brightness(1.03);
}
.btn-outline-primary{
  border-color: rgba(110,211,207,.8) !important;
  color: var(--pfs-purple) !important;
}
.btn-outline-primary:hover{
  background: rgba(110,211,207,.18) !important;
}

/* Forms */
input[type="text"],
input[type="email"],
input[type="password"],
textarea,
select{
  background: var(--pfs-surface) !important;
  border: 1px solid rgba(15,23,42,.16) !important;
  border-radius: 12px !important;
}
input:focus,
textarea:focus,
select:focus{
  outline: none !important;
  box-shadow: var(--pfs-ring) !important;
  border-color: rgba(110,211,207,.8) !important;
}

/* Footer */
.container-footer,
.footer{
  background: rgba(255,255,255,.75) !important;
  border-top: 1px solid var(--pfs-border);
}

/* -------------------------
   7) TEAM SECTIONS (Joomla "Articles" modules)
   Usage:
   - In each team module (Management/CCA/ECE/CCP/etc):
     Advanced -> Module Class: team-section team-grid
   - In module Display Options:
     Show Introtext = Show (for bios)
     Introtext Limit = optional (e.g. 250)
-------------------------- */

/* Module wrapper */
.team-section.team-grid{
  margin: 1.25rem 0 2rem;
}

/* Section heading */
.team-section.team-grid .module-title,
.team-section.team-grid .moduletable-title{
  margin: 0 0 .85rem;
  padding-left: .85rem;
  border-left: 6px solid var(--pfs-teal);
  font-weight: 800;
}

/* Turn the Articles module list into a responsive grid */
.team-section.team-grid .mod-articles,
.team-section.team-grid ul.mod-articles{
  list-style: none;
  padding: 0;
  margin: 0;

  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1rem;
}

/* Card */
.team-section.team-grid .mod-articles__item{
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(15, 23, 42, .10);
  transition: transform .16s ease, box-shadow .18s ease;
}
.team-section.team-grid .mod-articles__item:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(15, 23, 42, .14);
}

/* Image */
.team-section.team-grid .mod-articles__image img{
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  border-radius: 0;
}

/* Name/title */
.team-section.team-grid .mod-articles__title{
  margin: .85rem 1rem .4rem;
  font-weight: 800;
  line-height: 1.15;
}
.team-section.team-grid .mod-articles__title a{
  color: var(--pfs-ink);
  text-decoration: none;
}
.team-section.team-grid .mod-articles__title a:hover{
  color: var(--pfs-purple);
}

/* Bio/excerpt */
.team-section.team-grid .mod-articles__introtext{
  margin: 0 1rem 1rem;
  color: rgba(15, 23, 42, .75);
  font-size: .95rem;

  /* Keep cards similar height */
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Hide category/group label lines if the module prints them */
.team-section.team-grid .mod-articles__category,
.team-section.team-grid .mod-articles__group,
.team-section.team-grid .category{
  display: none !important;
}