/* =========================================================
   Components
   Buttons, Cards, Tiles, UI Blocks
   ========================================================= */


/* ---------------------------------------------------------
   Buttons
--------------------------------------------------------- */

.btn-uw{
  font-family:'Antonio',Arial,sans-serif;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.04em;
  border-radius:999px;
  padding:.8rem 1.5rem;
  border:2px solid transparent;
  transition:all .25s ease;
}

/* Primary */

.btn-uw-blue{
  background:var(--uw-blue);
  color:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}

.btn-uw-blue:hover{
  background:var(--uw-blue-dark);
  color:#fff;
  transform:translateY(-2px);
}

/* Red */

.btn-uw-red{
  background:var(--uw-red);
  color:#fff;
  box-shadow: 0 6px 18px rgba(220, 53, 69, 0.25);
}

.btn-uw-red:hover{
  background:var(--uw-red-bright);
  color:#fff;
  transform:translateY(-2px);
}

/* Yellow */

.btn-uw-yellow{
  background:var(--uw-yellow);
  color:var(--uw-blue-dark)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}

.btn-uw-yellow:hover{
  background:var(--uw-yellow-gold);
  color:var(--uw-blue-dark);
  transform:translateY(-2px);
}


/* Outline buttons */

.btn-uw-outline-blue{
  background:transparent;
  border-color:var(--uw-blue);
  color:var(--uw-blue);
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}

.btn-uw-outline-blue:hover{
  background:var(--uw-blue);
  color:#fff;
}

.btn-uw-outline-white{
  background:transparent;
  border-color:#fff;
  color:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.25);
}

.btn-uw-outline-white:hover{
  background:var(--uw-blue);
  border-color:var(--uw-blue);
}

/* ---------------------------------------------------
   Button Micro Interaction
--------------------------------------------------- */

.btn-uw{
transition:all .2s ease;
}

.btn-uw:hover{
transform:translateY(-2px);
box-shadow:0 8px 18px rgba(0,0,0,.18);
}

/* ---------------------------------------------------------
   Cards
--------------------------------------------------------- */

.uw-card{
  border-radius:var(--uw-radius-lg);
  background:#fff;
  box-shadow:var(--uw-shadow-soft);
  border:0;
  overflow:hidden;
}

/* Hoverable card */

.uw-card-hover{
  transition:all .25s ease;
}

.uw-card-hover:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 40px rgba(0,0,0,.14);
}


/* Card content padding */

.uw-card-body{
  padding:1.5rem;
}


/* Card titles */

.uw-card-title{
  font-family:'Antonio',Arial,sans-serif;
  text-transform:uppercase;
  font-weight:700;
  font-size:1.1rem;
  margin-bottom:.4rem;
  color:var(--uw-blue-dark);
}

.uw-card-text{
  font-size:.95rem;
  color:#555;
}
/* --------------------
    CONTENT CARD
----------------------- */
.uw-card-soft {
  position: relative;
  background: #ffffff;
  border-radius: 18px;
  padding: 30px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
  transition: all 0.25s ease;
}
.uw-card-soft::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  border-radius: 16px 16px 0 0;
}
.uw-card-soft:hover {
  transform: translateY(-5px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.08);
}

.uw-highlight-box {
  background: #f4f7fb;
  border-radius: 16px;
  padding: 2rem;
}

/* ---------------------------------------------------------
   CTA Tiles
--------------------------------------------------------- */

.uw-cta-tile{
  border-radius:var(--uw-radius-lg);
  padding:2rem;
  display:flex;
  flex-direction:column;
  gap:.75rem;
  text-decoration:none;
  transition:all .25s ease;
  min-height:220px;
}

.uw-cta-tile:hover{
  transform:translateY(-5px);
  box-shadow:0 16px 40px rgba(0,0,0,.12);
}

.uw-cta-title{
  font-family:'Antonio',Arial,sans-serif;
  text-transform:uppercase;
  font-weight:700;
  font-size:1.5rem;
  line-height:1.05;
}

.uw-cta-text{
  font-size:1.05rem;
  line-height:1.4;
}


/* CTA color variants */

.uw-cta-blue{
  background:var(--uw-blue);
  color:#fff;
}

.uw-cta-red{
  background:var(--uw-red);
  color:#fff;
}

.uw-cta-yellow{
  background:var(--uw-yellow);
  color:var(--uw-blue-dark);
}


/* ---------------------------------------------------------
   Feature Icons
--------------------------------------------------------- */

.uw-icon-circle{
  width:88px;
  height:88px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1rem;
  font-size:34px;
  position:relative;
}

.uw-icon-circle::after{
  content:'';
  position:absolute;
  inset:-8px;
  border-radius:50%;
  background:currentColor;
  opacity:.18;
  z-index:-1;
}

.uw-icon-blue{
  background:var(--uw-blue);
  color:var(--uw-blue);
}

.uw-icon-red{
  background:var(--uw-red);
  color:var(--uw-red);
}

.uw-icon-yellow{
  background:var(--uw-yellow);
  color:var(--uw-yellow);
}

.uw-icon-circle i{
  color:#fff;
  font-size:34px;
}


/* ---------------------------------------------------------
   Highlight Panels
--------------------------------------------------------- */

.uw-highlight{
  background:#f7f8fa;
  border-left:6px solid var(--uw-blue);
  padding:1.5rem;
  border-radius:var(--uw-radius-md);
}

.uw-highlight-red{
  border-left-color:var(--uw-red);
}

.uw-highlight-yellow{
  border-left-color:var(--uw-yellow);
}


/* ---------------------------------------------------------
   Stat Blocks
--------------------------------------------------------- */

.uw-stat-number{
  font-family:'Antonio',Arial,sans-serif;
  font-size:clamp(1.8rem,3vw,2.6rem);
  font-weight:700;
  color:var(--uw-blue);
  line-height:1;
}

.uw-stat-label{
  font-weight:600;
  font-size:.9rem;
  color:var(--uw-gray);
  margin-top:.25rem;
}


/* ---------------------------------------------------------
   Image Cards
--------------------------------------------------------- */

.uw-image-card{
  border-radius:var(--uw-radius-lg);
  overflow:hidden;
  box-shadow:var(--uw-shadow-soft);
}

.uw-image-card img{
  width:100%;
  height:200px;
  object-fit:cover;
}

.uw-image-card-body{
  padding:1.2rem;
}


/* ---------------------------------------------------------
   Callout Section
--------------------------------------------------------- */

.uw-callout{
  background:var(--uw-blue);
  color:#fff;
  border-radius:var(--uw-radius-lg);
  padding:2rem;
}

.uw-callout h3{
  color:#fff;
}

.uw-callout p{
  opacity:.95;
}


/* ---------------------------------------------------------
   Responsive Tweaks
--------------------------------------------------------- */

@media (max-width:768px){

  .uw-cta-tile{
    min-height:180px;
  }

  .uw-icon-circle{
    width:70px;
    height:70px;
  }

}


/* ---------------------------------------------------
   Animation Utilities
--------------------------------------------------- */

.uw-fade-up{
opacity:0;
transform:translateY(20px);
transition:all .6s ease;
}

.uw-fade-up.show{
opacity:1;
transform:translateY(0);
}

.uw-fade-in{
opacity:0;
transition:opacity .6s ease;
}

.uw-fade-in.show{
opacity:1;
}


/* ---------------------------------------------------
   Premium Hover Lift
--------------------------------------------------- */

.uw-hover-lift{
transition:transform .25s ease, box-shadow .25s ease;
}

.uw-hover-lift:hover{
transform:translateY(-6px);
box-shadow:0 16px 40px rgba(0,0,0,.14);
}


/* ---------------------------------------------------
   CTA Section
--------------------------------------------------- */

.uw-cta-section{

background:linear-gradient(
135deg,
var(--uw-blue-dark),
var(--uw-blue)
);

color:#fff;

border-radius:var(--uw-radius-lg);

padding:3rem;

text-align:center;

}

.uw-cta-title{

font-family:'Antonio',Arial,sans-serif;

text-transform:uppercase;

font-size:clamp(1.8rem,3vw,2.4rem);

margin-bottom:.5rem;

}

.uw-cta-text{

max-width:640px;

margin:auto;

opacity:.95;

margin-bottom:1.5rem;

}


/* ---------------------------------------------------
   Image Overlay Utility
--------------------------------------------------- */

.uw-img-overlay{
position:relative;
overflow:hidden;
border-radius:var(--uw-radius-lg);
}

.uw-img-overlay img{
width:100%;
display:block;
}

.uw-img-overlay::after{
content:'';
position:absolute;
inset:0;
background:linear-gradient(
to top,
rgba(0,0,0,.45),
rgba(0,0,0,.05)
);
}

/* ---------------------------------------------------
   Impact Section
--------------------------------------------------- */

.uw-impact-section{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.10);
}

.uw-impact-header{
  margin-bottom:3.5rem;
}

.uw-section-title{
  font-family:'Antonio',Arial,sans-serif;
  font-size:2.4rem;
  font-weight:700;
  color:var(--uw-blue);
}

.uw-section-intro{
  font-size:1.05rem;
  color:#555;
  max-width:720px;
}


/* ---------------------------------------------------
   Impact Cards
--------------------------------------------------- */

.uw-impact-card{
  border-radius:12px;
  overflow:hidden;
  height:100%;
  color:#fff;
  display:flex;
  flex-direction:column;
  transition: transform .25s ease, box-shadow .25s ease;
  box-shadow:0 3px 10px rgba(0,0,0,.08);
}

.uw-impact-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 32px rgba(0,0,0,.13);
}

.uw-impact-card img{
  width:100%;
  height:170px;
  object-fit:cover;
  transition:transform .45s ease;
}

.uw-impact-card:hover img{
  transform:scale(1.05);
}


.uw-impact-body{
  padding:1.3rem;
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}


.uw-impact-body h5{
  color:var(--uw-white);
  font-weight:700;
  margin-bottom:.5rem;
  letter-spacing:.03em;
}


/* yellow card text fix */

.bg-yellow .uw-impact-body h5{
  color:var(--uw-blue-dark);
}


.uw-impact-body p{
  font-size:.9rem;
  margin-bottom:0;
}


/* ---------------------------------------------------
   Card Colors
--------------------------------------------------- */

.bg-blue{
  background:#00428c;
}

.bg-yellow{
  background:#ffc72c;
  color:#1a1a1a;
}

.bg-navy{
  background:#1e2a5a;
}

.bg-red{
  background:#d32f2f;
}


/* ---------------------------------------------------<Action Icons>--------------------------------------------------- */

.uw-action-item{
  max-width:300px;
  margin:0 auto;
}


.uw-action-icon{
  width:92px;
  height:92px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1.2rem;
  position:relative;
  font-size:34px;
  transition:transform .25s ease, box-shadow .25s ease;
  box-shadow:0 6px 16px rgba(0,0,0,.15);
}


.uw-action-icon::after{
  content:'';
  position:absolute;
  inset:-10px;
  border-radius:50%;
  background:currentColor;
  opacity:.18;
  z-index:-1;
}

.uw-action-item:hover .uw-action-icon{
  transform:translateY(-5px);
  box-shadow:0 14px 28px rgba(0,0,0,.25);
}


/* icon color themes */

.uw-action-icon.blue{
  background:var(--uw-blue);
  color:var(--uw-blue);
}

.uw-action-icon.red{
  background:var(--uw-red);
  color:var(--uw-red);
}

.uw-action-icon.yellow{
  background:var(--uw-yellow);
  color:var(--uw-yellow);
}

.uw-action-icon i{
  color:#fff;
  font-size:36px;
  line-height:1;
}

.uw-action-item h5{
  font-weight:700;
  margin-bottom:.6rem;
  letter-spacing:.04em;
}

.uw-action-item p{
  font-size:.9rem;
  color:#555;
}

/* ---------------------------------------------------</Action Icons>--------------------------------------------------- */

/* ---------------------------------------------------<Accordion>--------------------------------------------------- */
.accordion-button {
  font-weight: 600;
}

.accordion-button:not(.collapsed) {
  background: var(--uw-blue);
  color: #fff;
}

/* ---------------------------------------------------</Accordion>--------------------------------------------------- */

.uw-badge {
  display: inline-block;
  background: #FFBA00;
  color: #1f2a68;
  padding: 6px 14px;
  border-radius: 50px;
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.grecaptcha-badge { visibility: hidden; }