:root {
	--primary: rgba(37, 37, 37, 1.0);
	--secondary: rgba(252, 41, 74, 1.0);
	--shades: rgba(238, 238, 238, 1.0);
}

* {
	scroll-behavior: smooth;
}

/* font styles */
@font-face {
  font-family: 'CrossfitDemo-Bold';
  src: url('fonts/CrossfitDemo-Bold.ttf');
}
/* font styles */

body {
	font-family: 'CrossfitDemo-Bold';
	line-height: 1.6;
	margin: 0;
}

.header,
.home,
.about,
.portfolio,
.contact {
	height: auto;
}

.header,
.home,
.about,
.portfolio,
.contact,
.footer {
	position: relative;
}

.header h1,
.home h1,
.about h1,
.portfolio h1,
.contact h1,
.footer h1 {
	margin: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.header h1::before,
.home h1::before,
.about h1::before,
.portfolio h1::before,
.contact h1::before,
.footer h1::before {
	content: '#';
}

.header h1,
.footer h1 {
	color: var(--shades);
}

.footer {
	height: 50vh;
	background-color: var(--primary);
}

.header{
		height: auto;          /* overrides earlier 100 vh */
    min-height: 85vh;      /* still tall enough on desktop */
    display: flex;         /* centres the image nicely   */
    justify-content: center;
    align-items: center;
    overflow: hidden;      /* trims any overspill        */
}

/* 2. Make the hero image itself smaller */
.header .responsive-image{
    max-height: 80vh;      /* never taller than 60 % of viewport */
    width: 100%;
    height: auto;
    object-fit: contain;
}

/* 3. On tablets / phones: header can be even shorter,
      and we eliminate the empty gap that used to follow it */
@media (max-width: 800px){
    .header{ min-height: auto; }     /* image + social decide height */
    .intro-social{
        margin-bottom: 0;            /* remove trailing space        */
        padding-bottom: 0;
    }
}

/* ── Fit the intro‑social strip completely inside the header ────────── */
.header .intro-social{
    /* centre vertically so neither end gets clipped */
    top: 36%;
    transform: translateY(-50%) rotate(90deg) translateX(-50%);

    /* nudge it a little further in from the right edge */
    left: calc(100% - 4rem);   /* was 6rem */

    /* make the line shorter so it fits within 60 vh header height */
    padding-left: 10rem;       /* was 12rem */
    font-size: 1rem;           /* was 1.3rem */
    letter-spacing: .2em;      /* was .3em  */
}

@media (max-width: 800px) {
  .header {
    min-height: auto;
    height: auto;
    padding: 1rem 0;
    flex-direction: column;
  }

  .header .responsive-image {
    width: 100%;
    height: auto;
    max-height: none; /* ⬅ disables height limit */
    object-fit: contain;
  }
}



.navbar {
	padding-top: .5em;
	padding-bottom: .5em;
	background-color: var(--primary);
	-webkit-box-shadow: 0 14px 14px -14px rgba(0, 0, 0, .75);
	-moz-box-shadow: 0 14px 14px -14px rgba(0, 0, 0, .75);
	box-shadow: 0 14px 14px -14px rgba(0, 0, 0, .75);
	z-index: 10000;
}

.intro-social {
    background-color: #e31655;
    z-index          : 1;
    list-style       : none;
    display          : flex;
    font-size        : 1.3rem;
    font-weight      : 400;
    text-transform   : uppercase;
    letter-spacing   : .3em;
    margin           : 0;
    padding          : 0 0 0 12rem;
    transform        : rotate(90deg) translateX(-50%);
    transform-origin : left bottom;
    position         : absolute;
    top              : 38%;
    left             : calc(100% - 6rem);
}

.intro-social li {
    padding : 0 1.2rem;
}

.intro-social a {
  color: white;
  text-decoration: none;         /* ✅ Remove underline */
  animation: fadeInUp 1.2s ease forwards;
  opacity: 0;                    /* start hidden for animation */
}


.intro-social a:focus,
.intro-social a:hover {
    color : white;
}



@media screen and (max-width: 1200px) {
    .intro-social {
        left : calc(100% - 4rem);
    }
}

/* ── LAST‑MILE MOBILE VISIBILITY FIX FOR intro‑social ──────────────── */
/* ── MOBILE LAYOUT FOR intro‑social (≤ 800 px) ─────────────────────── */
/* ── FINAL “ALWAYS‑SHOW” PATCH FOR intro‑social ON SMALL SCREENS ───── */
@media (max-width: 800px){

  /* Make the header stack image + bar */
  .header{
    display:flex;
    flex-direction:column;
    align-items:center;
    height:auto;
    padding-bottom:1rem;
  }

  /* Keep hero image full‑width, no cropping */
  .header .responsive-image{
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
  }

  /* Force intro‑social to be visible and horizontal */
  .intro-social{
    position:relative !important;   /* flow under image   */
    transform:none !important;      /* cancel rotation    */
    top:auto; left:auto;

    display:flex !important;        /* NEVER hidden       */
    flex-wrap:wrap;
    justify-content:center;
    width:100%;

    margin:0;
    padding:1rem .5rem;
    background:#e31655;             /* magenta strip      */
    letter-spacing:.15em;
  }

  /* Guarantee the text itself is visible */
  .intro-social a{
    color:#fff !important;
    text-decoration:none;
    font-size:1rem;
    opacity:1 !important;           /* override 0         */
    animation:none !important;      /* no fade needed     */
  }

  .intro-social li{ padding:.4rem .8rem; }
}

/* Also override the old “hide under 350 px” rule */
@media (max-width: 350px){
  .intro-social{ display:flex !important; }
}



@media screen and (max-width: 500px) {
    .s-intro {
        --text-huge-multiplier : .55;
    }

    .intro-social {
        left : 1.4rem;
    }
}

@media screen and (max-width: 400px) {
    .intro-social {
        left : 0;
    }
}

@media screen and (max-width: 350px) {
    .intro-social {
        display : none;
    }
}


/* ── SERVICES SECTION (Refined Parallax Hero) ─────────────────────── */
/* ── SERVICES SECTION (Refined Parallax Hero) ─────────────────────── */
/* This section creates a large, fixed-background image (parallax effect)
   and pulls the service grid content up over the bottom of the image. */
.services {
  position: relative;
  width: 100%;
  background-color: transparent;
  overflow: hidden;
	padding: 0;
}

/* Hero background image area */
.services::before {
  content: "";
  position: absolute;
  inset: 0;
  /* NOTE: Update these image paths if they are different in your project */
  background: url("images/service1.png") center top / cover no-repeat;
  background-attachment: fixed;  /* Parallax effect */
  height: 60vh;                  /* Only top half visible */
  z-index: 0;
  opacity: 0.85;                 /* Slight dim for readability */
}

/* Foreground content (cards container) */
.services .container {
  position: relative;
  z-index: 2;
  margin-top: 45vh;              /* Starts right after visible image area */
	/* max-width: 1200px;               /* Limit the container width (adjust this value as needed) */ */
  /* margin: 0 auto;                  /* Center the container horizontally */ */
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  padding: 4rem 2rem;
}

/* Smooth transition from parallax image to white card grid */
.services::after {
  content: "";
  position: absolute;
  top: 55vh;
  left: 0;
  width: 100%;
  height: 10vh;
  background: linear-gradient(to bottom, rgba(0,0,0,0), #fff);
  z-index: 1;
}

/* ──────────────────────────────────────────────────────────────── */
/* CSS to create a 2-column layout for list items inside a service card */
/* ──────────────────────────────────────────────────────────────── */

/* 1. Style the parent list container (the <ul> or <ol> inside the card) */
.service-card__features {
    display: grid;
    /* Creates two columns of equal width (1fr) */
    grid-template-columns: repeat(2, 1fr);
    gap: 8px 15px; /* Vertical gap of 8px, horizontal gap of 15px */

    list-style: none; /* Remove default bullet points */
    padding: 0;
    margin: 0 0 0;
}

/* 2. Style the individual list items */
.service-card__features li {
    font-size: 0.9rem;
    line-height: 1.4;
    text-align: left;
		font-size: 18px;
    /* Add space for a custom bullet point */
    position: relative;
    padding-left: 1.2rem;
}

/* 3. Add a custom, colored bullet point for a clean look */
.service-card__features li::before {
    content: "•"; /* Or use a checkmark: '\2713' */
    color: var(--secondary); /* Uses your brand accent color */
    font-weight: bold;
    position: absolute;
    left: 0;
    top: 0;
}

/* Mobile Adjustment: Switch to a single column on very small screens */
@media (max-width: 400px) {
    .service-card__features {
        grid-template-columns: 1fr; /* Forces a single item per row */
    }
}

/* Mobile and Tablet adjustments for Parallax Hero */
@media (max-width: 1024px) {
  .services::before {
    background-attachment: scroll; /* disable fixed for smooth mobile scroll */
    height: 45vh;
  }
  .services .container {
    margin-top: 35vh;
    padding: 3rem 1.5rem;
  }
}

@media (max-width: 600px) {
  .services::before {
    /* NOTE: Update this mobile image path */
    background: url("images/servicemob1.png") top center / cover no-repeat;
    height: 40vh;
  }
  .services .container {
    margin-top: 30vh;
    padding: 2.5rem 1rem;
  }
}

/* ── SERVICES GRID STYLES ───────────────────────────────────── */
.services{
  padding: 4rem 1rem;
  max-width: 1800px;
  margin-top: 80px;
}

.services__title{
  text-align:center;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  color: var(--secondary);
  margin-bottom: 3rem;
}

.services__grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
  gap: 2rem;
}

.service-card{
  background:#fff;
  border-radius:12px;
  box-shadow: 0 4px 16px rgba(0,0,0,.05);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:2.5rem 1.5rem;
  transition:transform .3s ease, box-shadow .3s ease;
}

.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}

.service-card__img{
  width: 64px;         /* adjust if your icons differ */
  height: 64px;
  object-fit:contain;
  margin-bottom:1.2rem;
}

.service-card__title{
  font-size:1rem;
  font-weight:600;
	top:50%;
  color:var(--secondary);
  text-align:center;
  margin:0;
  line-height:1.3;
  text-transform:capitalize;
}

/* small phones: single column, tighter spacing */
@media (max-width:480px){
  .services__grid{ gap:1.2rem; }
  .service-card{ padding:2rem 1rem; }
  .service-card__img{ width:56px; height:56px; }
}

@media screen and (min-width: 992px){
  .services__grid{
    grid-template-columns: repeat(3, 1fr);   /* always three cards */
  }
}

/* Phones: 2‑column services grid */
@media screen and (max-width: 600px){
  .services__grid{
    grid-template-columns: repeat(2, 1fr);   /* always two cards */
  }
	/* Services section: halve the top padding */
  .services{
    padding-top: 2rem !important;
  }
}

/* ── Responsive vertical position for the services grid ────────────── */
/* This controls how much the grid overlaps the main image */
.services__grid{
  margin-top:-170px;     /* desktop / large‑laptop “pull‑up”          */
}

/* medium laptops & large tablets */
@media (max-width: 1199px){
  .services__grid{ margin-top:-120px; }
}

/* small tablets */
@media (max-width: 991px){
  .services__grid{ margin-top:-80px; }
}

/* large phones */
@media (max-width: 767px){
  .services__grid{ margin-top:-40px; }
}

/* small phones: no negative margin, so no blank gap */
@media (max-width: 600px){
  .services__grid{ margin-top:0; }
}

/* ── SERVICE ITEM STYLES (for image/text hover effect) ─────────────── */
/* These styles are for individual service items within the grid that might contain an image background */
.service-item {
      position: relative;
      overflow: hidden;
      color: var(--dark); /* Assuming --dark is a defined color variable */
      border-radius: 8px;
    }

    .service-item .bg-img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      opacity: 1;
      z-index: 1;
      transition: transform 0.5s ease, opacity 0.5s ease;
    }

    .service-item:hover .bg-img {
      transform: scale(1.1);
      opacity: 0.9;
    }

    .service-item .service-text {
      position: relative;
      z-index: 2;
      background: rgba(255, 255, 255, 0.85); /* semi-transparent overlay */
      transition: background 0.5s ease, color 0.5s ease;
      border-radius: 6px;
    }

    .service-item:hover .service-text {
      background: rgba(0, 0, 0, 0.6);
      color: #fff;
    }

    .service-item:hover .service-text * {
      color: #fff;
    }

    .service-item .btn {
      width: 40px;
      height: 40px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: var(--dark);
      background: #fff;
      white-space: nowrap;
      overflow: hidden;
      transition: .5s;
      z-index: 3;
      position: relative;
    }

    .service-item:hover .btn {
      width: 140px;
      color: #fff;
      background: var(--primary);
    }

.responsive-image {
	width: 100% !important;
	height: auto;
	display: block;
	object-fit: cover;
}

.responsive-image {
width: 100%;
height: auto;
max-width: 100%;
display: block;
}

/* Tablet (max-width: 1024px) */
@media (max-width: 1024px) {
.responsive-image {
	width: 100%;
}
}

/* Mobile (max-width: 600px) */
@media (max-width: 600px) {
.responsive-image {
	width: 100%;
}
}

/* Large screens (above 1024px) */
@media (min-width: 1025px) {
.responsive-image {
	width: 70%;
}
}
.sticky {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 1;
}

.hidden {                      /* keep it in the DOM but off‑screen */
 position: absolute;
 left:   -9999px;
 width:  1px;
 height: 1px;
 overflow: hidden;
}

.display__logo {
	font-size: 2.5rem;
	margin-bottom: .5rem;
	font-family: inherit;
	font-weight: 500;
	line-height: 1.2;
	color: inherit;
}

.nav__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nav__link {
	color: var(--shades);
	text-decoration: none;
}

.brand {
	margin: 0;
	font-size: 1.45em;
}

.brand a {
	padding: 10px 15px;
	text-align: center;
	display: block;
}

.logo {
	display: inline-block;
	padding-top: .3125rem;
	padding-bottom: .3125rem;
	margin-right: 1rem;
	line-height: inherit;
}

.logo::before {
	display: inline-block;
	vertical-align: top;
	content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 300' width='30' className='d-inline-block align-top' fill='%23d52128'%3E%3Cpath d='m1877 2568c-183-227-346-430-362-451-32-40-64-54-88-40-8 4-33 31-54 58-29 37-54 90-93 200-50 140-57 154-111 213-33 34-87 104-120 155-77 116-79 118-69 71 7-29 4-59-11-119-12-44-22-81-23-83-2-1-35 16-73 38-55 31-74 48-88 79-11 26-36 52-71 77-30 20-56 35-58 33s-7-45-12-95c-7-68-6-99 3-120 7-16 12-46 13-66 0-47 98-295 185-468 79-158 163-365 175-434 5-28 17-74 27-103 17-52 17-52-11-123-15-39-44-89-63-112s-41-54-49-69c-20-39-71-114-86-127-7-5-26-12-43-14-26-3-32-10-56-73-15-38-72-144-128-235l-101-165 40-40 40-41-20-160c-11-87-20-164-20-171s13-9 39-6c34 5 40 2 61-27 14-19 25-53 28-81s10-49 16-49c7 0 40 9 74 21 70 23 47-7 197 269 138 253 207 355 329 486 71 77 80 77 114 5 11-23 32-44 57-57 39-20 40-23 62-115 12-52 25-104 28-115 4-20 182-170 191-162 2 2-4 46-12 96-9 51-14 98-11 106 6 15 59 28 81 20 7-3 27-24 44-47 20-28 53-54 97-77 78-41 85-37 85 56 0 64 11 84 45 84 16 0 26-10 37-38 13-34 20-39 76-55 34-9 66-17 71-17s14 30 20 66c13 73 18 61-70 191-26 38-70 114-97 169-63 124-84 153-149 203-42 33-53 48-58 78-3 21-8 47-10 58s-36 69-75 128c-63 98-70 113-70 159 0 47 4 55 48 102 27 28 68 89 93 136 53 103 183 298 293 440 118 152 124 161 219 315 79 126 87 145 87 189v49l-77-75c-49-47-92-80-117-88-37-12-39-11-62 16-27 32-27 31 3 226 13 88 14 110 3 122-7 9-16 16-21 16-4 0-158-186-342-412z' transform='matrix(.1 0 0 -.1 0 300)' /%3E%3C/svg%3E");
}

.nav__items {
	margin-top: 5px;

}

.brand .nav__link,
.nav__items .nav__link {
	padding: 10px 15px;
	text-align: center;
	display: block;
}

.nav__items .nav__link {
	color: var(--shades);
	font-size: 0.99rem;
}

.nav__items .nav__link:hover {
	color: var(--secondary);
}

.nav__item:nth-child(1) .nav__link::before {
	content: '1. ';
}

.nav__item:nth-child(2) .nav__link::before {
	content: '2. ';
}

.nav__item:nth-child(3) .nav__link::before {
	content: '3. ';
}

.nav__item:nth-child(4) .nav__link::before {
	content: '4. ';
}

@media (min-width: 800px) {

	.navbar,
	.nav__items {
		display: flex;
	}

	.navbar {
		flex-direction: column;
		align-items: center;
	}

	.navbar {
		flex-direction: row;
		justify-content: space-between;
	}
}

@media screen and (max-width: 799px) {
	.nav {
		position: fixed;
		top: 0;
		left: 0;
		height: 100%;
		width: 100%;
		z-index: -1;
		background-color: var(--primary);
		opacity: 0;
		transition: all 0.2s ease;
		pointer-events: none; 
	}

	.nav .nav__items {
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		width: 100%;
		padding-inline-start: 0;
	}

	.nav .nav__items .nav__item {
		display: block;
		float: none;
		width: 100%;
		text-align: right;
		margin-bottom: 10px;
	}

	.nav .nav__items .nav__item:nth-child(1) a {
		transition-delay: 0.2s;
	}

	.nav .nav__items .nav__item:nth-child(2) a {
		transition-delay: 0.3s;
	}

	.nav .nav__items .nav__item:nth-child(3) a {
		transition-delay: 0.4s;
	}

	.nav .nav__items .nav__item:nth-child(4) a {
		transition-delay: 0.5s;
	}

	.nav .nav__items .nav__item:not(:first-child) {
		margin-left: 0;
	}

	.nav .nav__items .nav__item .nav__link {
		padding: 10px 25px;
		opacity: 0;
		color: var(--shades);
		font-size: 24px;
		font-weight: 600;
		transform: translateY(-20px);
		transition: all 0.2s ease;
	}

	.nav .nav__items .nav__item .nav__link:hover {
		color: var(--secondary);
	}

	.nav__open {
		position: absolute;
		right: 10px;
		top: 16px;
		display: block;
		width: 48px;
		height: 48px;
		cursor: pointer;
		z-index: 9999;
		border-radius: 50%;
	}

	.nav__open i {
		display: block;
		width: 20px;
		height: 2px;
		background-color: var(--secondary);
		border-radius: 2px;
		margin-left: 14px;
	}

	.nav__open i:nth-child(1) {
		margin-top: 16px;
	}

	.nav__open i:nth-child(2) {
		margin-top: 4px;
		opacity: 1;
	}

	.nav__open i:nth-child(3) {
		margin-top: 4px;
	}

}


#nav:checked+.nav__open {
	transform: rotate(45deg);
}

#nav:checked+.nav__open i {
	background-color: var(--shades);
	transition: transform 0.2s ease;
}

#nav:checked+.nav__open i:nth-child(1) {
	transform: translateY(6px) rotate(180deg);
}

#nav:checked+.nav__open i:nth-child(2) {
	opacity: 0;
}

#nav:checked~.nav__item a {
	display: block !important;
}

#nav:checked+.nav__open i:nth-child(3) {
	transform: translateY(-6px) rotate(90deg);
}

#nav:checked~.nav {
	z-index: 9990;
	opacity: 1;
	pointer-events: auto; 
}

#nav:checked~.nav ul li a {
	opacity: 1;
	transform: translateY(0);
}

@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── SERVICES GRID ───────────────────────────────────── */
.services{
  padding: 4rem 1rem;
  max-width: 1800px;
  margin: 0 auto;
}

.services__title{
  text-align:center;
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  color: var(--secondary);
  margin-bottom: 3rem;
}

.services__grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px,1fr));
  gap: 2rem;
}

.service-card{
  background:#fff;
  border-radius:12px;
  box-shadow: 0 4px 16px rgba(0,0,0,.05);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:2.5rem 1.5rem;
  transition:transform .3s ease, box-shadow .3s ease;
}

.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 8px 24px rgba(0,0,0,.12);
}

.service-card__img{
  width: 64px;         /* adjust if your icons differ */
  height: 64px;
  object-fit:contain;
  margin-bottom:1.2rem;
}

.service-card__title{
  font-size:1rem;
  font-weight:600;
	top:50%;
  color:var(--secondary);
  text-align:center;
  margin:0;
  line-height:1.3;
  text-transform:capitalize;
}

/* small phones: single column, tighter spacing */
@media (max-width:480px){
  .services__grid{ gap:1.2rem; }
  .service-card{ padding:2rem 1rem; }
  .service-card__img{ width:56px; height:56px; }
}
@media screen and (min-width: 992px){
  .services__grid{
    grid-template-columns: repeat(3, 1fr);   /* always three cards */
  }
}
/* ── Phones: 2‑column services grid (no other changes) ─────────────── */
@media screen and (max-width: 600px){
  .services__grid{
    grid-template-columns: repeat(2, 1fr);   /* always two cards */
  }
	/* Services section: halve the top padding (from 4 rem → 2 rem) */
  .services{
    padding-top: 2rem !important;
  }
}

/* ── ABOUT‑SECTION IMAGE RESPONSIVENESS ────────────────────────────── */
#about img{
  width:100% !important;        /* fills the container on small screens      */
  max-width: 100%;    /* never stretches beyond its natural size   */
  height: auto;       /* keeps the original aspect ratio           */
  display: block;     /* removes inline‑image whitespace           */
  object-fit: cover;  /* trims edges if the parent’s height grows  */
}

/* Large screens: centre the picture and narrow it for breathing room */
@media (min-width: 1025px){
  #about img{
    width: 70%;       /* leave 15 % margin on both sides           */
    margin: 0 auto;   /* centres the image within the section      */
  }
}

@media (max-width: 768px){
  .background{
    …
    margin-bottom: 50px;
    background-color:#000;   /* ← this solid black layer */
  }
}

/* ── Kill the black fallback + extra gap on mobiles ────────────────── */
@media (max-width: 768px){
  .background{
    background-color:transparent !important;  /* no black patch      */
    margin-bottom:0 !important;               /* closes extra space  */
  }
}

/* ── CONTACT INFO FULL‑WIDTH IMAGE SECTION ────────────────────────── */
.contact-banner{
  width: 100%;
  min-height: 60vh;                       /* same feel as hero        */
  background: url("images/contact-bg.jpg") center / cover no-repeat; /* ✔ */
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}

/* dark overlay for text readability */
.contact-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.45);             /* adjust opacity if needed */
}

/* content wrapper (on top of overlay) */
.contact-banner__overlay{
  position:relative;
  z-index:1;
  width:100%;
  padding:2rem 1rem;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.contact-banner__title{
  font-size:clamp(1.8rem, 4vw, 3.2rem);
  font-weight:700;
  margin:0 0 1rem;
  line-height:1.2;
}

.contact-banner__text{
  margin:0;
  font-size:1.1rem;
  line-height:1.6;
}

.contact-banner__text a{
  color:#fff;
  text-decoration:underline;
}

/* phones: slightly smaller body text */
@media (max-width:600px){
  .contact-banner__text{ font-size:1rem; }
}
/* ── CONTACT SECTION: make fully responsive & remove black patches ── */
.contact-banner{
  /* let the image determine height on every device */
  min-height:auto !important;
  padding:0 !important;

  /* kill the dark overlay & any fallback colour */
  background:none !important;
}
.contact-banner::before{ display:none !important; }

/* make the <img> inside fill the viewport width */
.contact-banner__content img{
  width:100%;
  height:auto;
  display:block;
  object-fit:cover;
}
/* ── Remove the ghost “black patch” produced by .background ────────── */
.background{
  /* let the section shrink to its actual content (often zero) */
  min-height: 0 !important;
  height: auto !important;

  /* kill the solid black fallback */
  background-color: transparent !important;

  /* close the 50‑px gap that followed it */
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* If the element ends up completely empty, hide it altogether */
.background:empty{ display:none !important; }
/* ── Responsive vertical position for the services grid ────────────── */
.services__grid{
  margin-top:-170px;     /* desktop / large‑laptop “pull‑up”          */
}

/* medium laptops & large tablets */
@media (max-width: 1199px){
  .services__grid{ margin-top:-120px; }
}

/* small tablets */
@media (max-width: 991px){
  .services__grid{ margin-top:-80px; }
}

/* large phones */
@media (max-width: 767px){
  .services__grid{ margin-top:-40px; }
}

/* small phones: no negative margin, so no blank gap */
@media (max-width: 600px){
  .services__grid{ margin-top:0; }
}
.nav__items .nav__link::before{
  content:none !important;
}
/* ── NAVIGATION COLOR SCHEME UPDATE ───────────────────────────────── */
.navbar {
  background-color: #ffffff !important;  /* white navbar background */
}

.nav__items .nav__link,
.brand .nav__link {
  color: #e31655 !important;             /* magenta text for links */
}

/* Active + hover state (optional, to match theme) */
.nav__items .nav__link:hover {
  color: #000000;                        /* black on hover (or adjust as needed) */
}
/* ── CONTACT IMAGE: full‑bleed, zero side margins ─────────────────── */
.contact-banner{
  padding:0 !important;        /* clear any side padding */
}

.contact-banner__overlay{
  padding:0 !important;        /* clear overlay padding  */
}

.contact-banner__content img{
  width:100vw;                 /* span entire viewport   */
  max-width:100vw;
  height:auto;
  display:block;
  margin:0;                    /* kill side margins      */
  object-fit:cover;            /* keeps aspect ratio     */
}
/* ── FINAL MOBILE VISIBILITY FIX: INTRO‑SOCIAL STRIP ──────────────── */
@media screen and (max-width: 800px){

  /* 1. Let the header show what’s inside it */
  .header{
    overflow: visible !important;      /* override earlier hidden */
  }

  /* 2. Make the bar horizontal, full‑width, and always visible */
  .header .intro-social{
    position: relative !important;
    top:auto; left:auto;
    transform:none !important;

    display: flex !important;          /* defeats any display:none */
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;

    margin: 0;
    padding: 1rem .5rem;
    background: #e31655;               /* magenta strip            */
    z-index: 5;                        /* above image if overlapped */
  }

  .header .intro-social li{
    flex: 1 1 50%;                     /* two items per row        */
    text-align: center;
    padding: .5rem 0;
  }

  .header .intro-social a{
    color: #ffffff !important;
    opacity: 1 !important;             /* kill fade‑in transparency */
    font-size: 1rem;
    letter-spacing: .05em;
    text-decoration: none;
    line-height: 1.4;
  }
}

/* 3. Absolutely never hide the strip on the tiniest phones */
@media screen and (max-width: 350px){
  .intro-social{ display:flex !important; }
}
/* ── When hamburger menu is open ─────────────────────────────── */
body.nav-open{
  overflow:hidden;               /* stop scrolling */
}

/* hide the magenta social bar & the full‑width contact banner */
body.nav-open .intro-social,
body.nav-open .contact-banner{
  display:none !important;
}
/* ── HERO‑STYLE IMAGE SECTION: FULLY RESPONSIVE ──────────────────── */
.innovative{
  width:100%;
  min-height:100%;                        /* takes full viewport on desktop */
  background:url("images/ICBG.png") center/cover no-repeat;
  display:flex;
  justify-content:center;
  background-image:content;
  padding:3rem 1rem;                       /* small side gutters on phones   */
}

/* make the single banner image fluid */
.ic-img{
  width:100%;
  max-width:1200px;                        /* cap on very large monitors     */
  height:auto;
}

/* phones: tighten padding so no horizontal scroll */
@media (max-width:600px){
  .innovative{ padding:3rem .5rem; }
  .ic-img{
  width:100%;
  max-width:1200px;                        /* cap on very large monitors     */
  height:auto;
}
}
/* ── CLIENTELE / LOGO SLIDER ──────────────────────────────────────── */
.logo-slider{
  background:#ffffff;                     /* matches navbar/body white  */
  padding:4rem 0;
  overflow:hidden;
  position:relative;
}

.logo-slider__title{
  text-align:center;
  font-size:clamp(1.6rem,4vw,2.4rem);
  font-weight:700;
  color:#e31655;                          /* brand pink                 */
  margin:0 0 2rem;
}

.logos-track{                             /* wrapper that scrolls left  */
  display:flex;
  width:max-content;
  animation:scroll 25s linear infinite;
}

.logo-slider:hover .logos-track{
  animation-play-state:paused;            /* pause on hover             */
}

.logos-slide{
  display:flex;
  gap:3.5rem;                             /* space between each logo    */
}

.logos-slide img{
  width:180px;
  height:auto;
  filter:grayscale(100%);
  opacity:.6;
  transition:.3s ease;
}

.logos-slide img:hover{
  filter:none;                            /* pop‑colour on hover        */
  opacity:1;
  transform:scale(1.05);
}

/* phones: smaller logos so they stay sharp */
@media (max-width:600px){
  .logos-slide img{ width:120px; gap:2rem; }
}

/* keyframes for smooth, gap‑free marquee */
@keyframes scroll{
  0%   { transform:translateX(0); }
  100% { transform:translateX(-50%); }    /* 50 % because we doubled track */
}
/* Override for Social List Items */
.intro-social > li,
.intro-social > .social-list__item {
    /* Apply your desired social-list styles here */
    list-style: none !important; /* Example: Ensure no bullets */
    margin: 0 !important;        /* Example: Ensure no margin conflict */
    padding: 0.6rem 1.2rem !important;/* Example: Ensure custom spacing */
		font-size: 13px !important;
		font-weight: bold !important;
}
.navbar {
    /* Ensure your existing background color is here, otherwise the content
       below will scroll through the transparent navbar!
    */
	  background-color: var(--primary);

    /* --- STICKY FIX --- */
    position: sticky !important; /* Force position to be sticky */
    top: 0 !important;           /* Stick it to the top of the viewport */
    z-index: 1030 !important;    /* High z-index to stay above other Bootstrap elements (like modals) */
    width: 100% !important;      /* Ensures it spans the full width when sticky */
}

/* Update the default size and weight for desktop links */
.nav__items .nav__link {
    color: var(--shades);
    text-decoration: none;

    /* 🛠️ MODIFIED STYLES FOR BOLD LOOK */
    font-size: 1.05rem; /* Increased from 0.99rem for a larger size */
    font-weight: 700;  /* Increased from default (usually 400) for bold text */
    letter-spacing: 0.05em; /* Optional: Slightly increase spacing for better readability with bold text */
    /* ---------------------------------- */
}

/* Ensure the hover effect color remains distinct */
.nav__items .nav__link:hover {
    color: var(--secondary);
}

/* Update the default size and weight for desktop links */
.nav__items .nav__link {
    color: var(--shades);
    text-decoration: none;

    /* 🛠️ MODIFIED STYLES FOR BOLD LOOK */
    font-size: 1.05rem; /* Increased from 0.99rem for a larger size */
    font-weight: 700;  /* Increased from default (usually 400) for bold text */
    letter-spacing: 0.05em; /* Optional: Slightly increase spacing for better readability with bold text */
    /* ---------------------------------- */
}

/* Ensure the hover effect color remains distinct */
.nav__items .nav__link:hover {
    color: var(--secondary);
}


