:root{
  --bg:#f7f7fb;
  --card:#ffffff;
  --muted:#6b7280;
  --accent:#2563eb;
}

/* Responsive base type */
html{
  font-size: clamp(14px, 1.2vw + 12px, 18px);
  -webkit-text-size-adjust: 100%;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial;
  background:var(--bg);
  color:#111827;
  line-height:1.5;
  min-height:100vh;
}

/* Fluid container: adapts to viewport width but caps at a max */
.container{
  max-width:1200px;
  width: clamp(320px, 90%, 900px);
  margin:0 auto;
  padding:1rem;
}

/* Header */
.site-header{background:linear-gradient(90deg,rgba(37,99,235,0.1),transparent);}
.site-header .container{display:flex;align-items:center;justify-content:space-between;padding:1rem}
.logo{margin:0;font-size:clamp(1rem, 2.2vw, 1.25rem)}

/* Brand gradient logo: dark blue -> orange */
.logo{
  background: linear-gradient(90deg, #0b3d91 20%, #ff7a00 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight:700;
}

/* Navigation */
.nav{list-style:none;margin:0;padding:0;display:flex;gap:0.5rem;align-items:center}
.nav a{text-decoration:none;color:var(--muted);padding:0.25rem 0.5rem;border-radius:6px;display:inline-block}
.nav a:hover{background:rgba(0,0,0,0.03);color:var(--accent)}

/* Hero & cards */
.hero{background:var(--card);padding:clamp(1rem, 3.5vw, 2.5rem);border-radius:8px;box-shadow:0 1px 2px rgba(16,24,40,0.05);margin:1rem 0;min-height:clamp(220px, 30vh, 420px)}
.hero h2{margin-top:0}
.btn{display:inline-block;background:var(--accent);color:white;padding:0.5rem 1rem;border-radius:6px;text-decoration:none;border:none;cursor:pointer}
.card{background:var(--card);padding:1rem;margin:1rem 0;border-radius:8px;box-shadow:0 1px 2px rgba(16,24,40,0.04)}

/* Transparent card variant: remove background so content blends with slideshow */
.card.transparent{
  background: transparent;
  box-shadow: none;
  padding: 1rem;
}

/* Text styling when blended over images */
.card.transparent h2,
.card.transparent p,
.card.transparent li{
  color: rgba(255,255,255,0.95);
  text-shadow: 0 2px 8px rgba(0,0,0,0.65);
}

/* For accessibility on small screens, use a subtle overlay to keep text readable */
@media (max-width:600px){
  .card.transparent{
    background: linear-gradient(180deg, rgba(0,0,0,0.35), rgba(0,0,0,0.15));
    border-radius:8px;
  }
}

/* Specific override: About section should use black text to match branding */
#about.card.transparent h2,
#about.card.transparent p,
#about.card.transparent li{
  color: #000;
  text-shadow: none;
}

/* ABOUT: white text and larger, more legible sizing over the image */
#about.card.transparent h2,
#about.card.transparent p,
#about.card.transparent li{
  color: #ffffff;
  text-shadow: 0 2px 10px rgba(0,0,0,0.75);
  line-height: 1.6;
}

/* larger headline and body sizes for About section */
#about.card.transparent h2{
  font-size: clamp(1.4rem, 2.4vw + 0.6rem, 2rem);
  margin-top: 0;
}
#about.card.transparent p,
#about.card.transparent li{
  font-size: clamp(1rem, 1.6vw + 0.2rem, 1.125rem);
}

/* Ensure About US heading is white and matches the other about text */
#about.card.transparent h1 {
  color: #ffffff;
  text-shadow: 0 2px 10px rgba(0,0,0,0.75);
  font-size: clamp(1.6rem, 2.6vw + 0.6rem, 2.4rem);
  margin-top: 0;
}

/* Contact link styling for the transparent card */
#contact.card.transparent h2 {
  color: #ffffff;
  text-shadow: 0 2px 10px rgba(0,0,0,0.75);
  margin-top: 0;
  font-size: clamp(1.2rem, 2.2vw + 0.4rem, 1.6rem);
}

#contact.card.transparent p {
  color: #ffffff;
  text-shadow: 0 2px 8px rgba(0,0,0,0.6);
  margin: 0.5rem 0;
  font-size: clamp(1rem, 1.6vw + 0.2rem, 1.125rem);
}

#contact.card.transparent .contact-email {
  color: #ffffff;
  text-decoration: underline;
  font-weight:600;
}

form{display:grid;gap:0.5rem}
input,textarea{padding:0.5rem;border:1px solid #e5e7eb;border-radius:6px;width:100%;max-width:100%}
label{font-size:0.9rem;color:var(--muted)}
.site-footer{padding:1rem 0;color:var(--muted);text-align:center}

/* Images and media */
img, svg{max-width:100%;height:auto;display:block}

/* Fullscreen slideshow styles */
#slideshow{
  position:fixed;
  inset:0;
  z-index:-1; /* behind the page content */
  overflow:hidden;
  background:#111;
}
.slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 400ms ease-in-out;
  display:flex;
}
.slide.visible{opacity:1}

/* ensure picture/img fills the slide and renders at best quality */
.slide picture,
.slide img {
  width:100%;
  height:100%;
  display:block;
}
.slide-img{
  width:100%;
  height:100%;
  object-fit:cover;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  image-rendering: auto;
}

/* Small-screen behavior */
@media (max-width:900px){
  .site-header .container{padding:0.75rem}
  .nav{gap:0.25rem}
  .hero{margin:0.75rem 0}
}

/* Mobile-first adjustments */
@media (max-width:600px){
  .site-header .container{flex-direction:column;align-items:flex-start}
  .nav{flex-direction:column;flex-wrap:nowrap;width:100%}
  .nav a{width:100%;padding:0.6rem 0.75rem}
  .btn{width:100%;text-align:center}
  form{grid-auto-rows:min-content}
  input,textarea{font-size:0.95rem}
  .container{padding:0.75rem}
}

/* Animated image used on the homepage */
.animated-image{
  display:block;
  margin:0 auto 1rem;
  width: clamp(180px, 30vw, 420px);
  height:auto;
  border-radius:12px;
  object-fit:cover;
  animation: float 1s ease-in-out infinite;
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion: reduce){
  .animated-image{animation: none;}
}

@keyframes float{
  0%{ transform: translateY(0) rotate(0deg); }
  50%{ transform: translateY(-8px) rotate(-2deg); }
  100%{ transform: translateY(0) rotate(0deg); }
}

