/* =========================================
   clamp.css - Minimal CSS Framework
   version: 1.0
   Created by: Mr. Nr (Nirob Chandra Saha)
   - Co-Founder and CTO at https://ascender-solutions.com/
   Github : https://github.com/NirobSaha420
   Facebook Page : Mr. Nr
   Created : 17th December 2025
========================================= */
/* Reset & Base Styles */
*,
::after,
::before {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --color-white: #fff;
  --color-black: #000;
  --spacing: 0.5rem;
  --spacing-vw: 0.5vw;
  --transition: 0.3s ease;
}

/* Typography */
h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 500;
  line-height: 1.2;
}

p {
  line-height: 1.5;
  margin: 0 0 1rem;
}

a {
  text-decoration: none;
}

hr {
  margin: 1rem 0;
}

iframe {
  border: 0;
}

img,
svg {
  vertical-align: middle;
}

/* Lists */
ol,
ul {
  list-style-type: none;
  padding-left: 2rem;
  margin: 0 0 1rem;
}

.m-0,
ol ol,
ol ul,
ul ol,
ul ul {
  margin: 0;
}

/* Layout & Containers */
.container {
  max-width: 100%;
  width: 100%;
  contain: style;
  padding: 0 clamp(0.5rem, 0.429rem + 0.357vw, 1rem);
  margin: 0 auto;
}

section {
  padding: clamp(2.5rem, 1.429rem + 5.357vw, 10rem) 0;
  contain: content;
  content-visibility: auto;
  contain-intrinsic-size: auto clamp(25vh, 60vh, 90vh);
}

/* Flexbox */
.flex,
.row {
  display: flex;
}

.flex-wrap,
.row {
  flex-wrap: wrap;
}

.row > * {
  max-width: 100%;
  width: 100%;
  padding-left: calc(var(--spacing) * 1.5);
  padding-right: calc(var(--spacing) * 1.5);
  flex-shrink: 0;
}

.flex-column {
  flex-direction: column;
}

.flex-row {
  flex-direction: row;
}

.flex-row-reverse {
  flex-direction: row-reverse;
}

.flex-left {
  justify-content: left;
}

.flex-right {
  justify-content: right;
}

.flex-center {
  justify-content: center;
  align-items: center;
}

.flex-between {
  justify-content: space-between;
}

.flex-around {
  justify-content: space-around;
}

.flex-evenly {
  justify-content: space-evenly;
}

.flex-align-center {
  align-items: center;
}

/* Grid */
.grid {
  display: grid;
}

.grid-nr-2 {
  grid-template-columns: repeat(2, 1fr);
}

.grid-nr-3 {
  grid-template-columns: repeat(3, 1fr);
}

.grid-nr-4 {
  grid-template-columns: repeat(4, 1fr);
}

.grid-nr-5 {
  grid-template-columns: repeat(5, 1fr);
}

.grid-nr-6 {
  grid-template-columns: repeat(6, 1fr);
}

.grid-center {
  place-items: center;
}

/* Width & Height Utilities */
.w-100,
[class*="col-nr-"] {
  width: 100%;
}

.w-fit {
  width: fit-content;
}

.w-25 {
  width: 25%;
}

.w-50 {
  width: 50%;
}

.w-75 {
  width: 75%;
}

.h-100 {
  height: 100%;
}

.h-25 {
  height: 25%;
}

.h-50 {
  height: 50%;
}

.h-75 {
  height: 75%;
}

/* Display Utilities */
.block {
  display: block;
}

.none {
  display: none;
}

/* Text Utilities */
.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-capital {
  text-transform: capitalize;
}

/* Font Weight Utilities */
.fw-400 {
  font-weight: 400;
}

.fw-500 {
  font-weight: 500;
}

.fw-600 {
  font-weight: 600;
}

.fw-700 {
  font-weight: 700;
}

.img {
  max-width: 100%;
  display: flex;
  overflow: hidden;
  aspect-ratio: var(--aspect-width, 16) / var(--aspect-height, 9);
  contain: paint;
  justify-content: center;
  align-items: center;
}

.img img {
  display: block;
  height: auto;
}


.over-hidden {
  overflow: hidden;
}

/* Positioning & Z-index */
.hov-underline,
[class*="col-nr-"] {
  position: relative;
}

.z-9 {
  z-index: 9;
}

.z-99 {
  z-index: 99;
}

.z-999 {
  z-index: 999;
}

.z-9999 {
  z-index: 9999;
}

/* Gap Utilities */
.gap-2 {
  gap: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.gap-3 {
  gap: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.gap-4 {
  gap: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

.gap-6 {
  gap: clamp(
    calc(var(--spacing) * 6),
    calc(var(--spacing) * 6 + var(--spacing-vw) * 6),
    calc(var(--spacing) * 36)
  );
}

/* Margin Utilities */
.m-1 {
  margin: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.m-2 {
  margin: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.m-3 {
  margin: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.m-4 {
  margin: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Margin Top */
.mt-1 {
  margin-top: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.mt-2 {
  margin-top: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.mt-3 {
  margin-top: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.mt-4 {
  margin-top: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Margin Right */
.mr-1 {
  margin-right: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.mr-2 {
  margin-right: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.mr-3 {
  margin-right: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.mr-4 {
  margin-right: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Margin Bottom */
.mb-1 {
  margin-bottom: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.mb-2 {
  margin-bottom: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.mb-3 {
  margin-bottom: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.mb-4 {
  margin-bottom: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Margin Left */
.ml-1 {
  margin-left: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.ml-2 {
  margin-left: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.ml-3 {
  margin-left: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.ml-4 {
  margin-left: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Margin Block/Inline */
.mtb-1 {
  margin-block: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.mtb-2 {
  margin-block: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.mtb-3 {
  margin-block: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.mtb-4 {
  margin-block: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

.mrl-1 {
  margin-inline: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.mrl-2 {
  margin-inline: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.mrl-3 {
  margin-inline: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.mrl-4 {
  margin-inline: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Utilities */
.p-0 {
  padding: 0;
}

.p-1 {
  padding: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.p-2 {
  padding: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.p-3 {
  padding: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.p-4 {
  padding: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Top */
.pt-1 {
  padding-top: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.pt-2 {
  padding-top: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.pt-3 {
  padding-top: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.pt-4 {
  padding-top: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Right */
.pr-1 {
  padding-right: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.pr-2 {
  padding-right: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.pr-3 {
  padding-right: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.pr-4 {
  padding-right: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Bottom */
.pb-1 {
  padding-bottom: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.pb-2 {
  padding-bottom: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.pb-3 {
  padding-bottom: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.pb-4 {
  padding-bottom: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Left */
.pl-1 {
  padding-left: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.pl-2 {
  padding-left: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.pl-3 {
  padding-left: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.pl-4 {
  padding-left: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Padding Block/Inline */
.ptb-1 {
  padding-block: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.ptb-2 {
  padding-block: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.ptb-3 {
  padding-block: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.ptb-4 {
  padding-block: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

.prl-1 {
  padding-inline: clamp(
    calc(var(--spacing) * 1),
    calc(var(--spacing) * 1 + var(--spacing-vw) * 1),
    calc(var(--spacing) * 3)
  );
}

.prl-2 {
  padding-inline: clamp(
    calc(var(--spacing) * 2),
    calc(var(--spacing) * 2 + var(--spacing-vw) * 2),
    calc(var(--spacing) * 6)
  );
}

.prl-3 {
  padding-inline: clamp(
    calc(var(--spacing) * 3),
    calc(var(--spacing) * 3 + var(--spacing-vw) * 3),
    calc(var(--spacing) * 9)
  );
}

.prl-4 {
  padding-inline: clamp(
    calc(var(--spacing) * 4),
    calc(var(--spacing) * 4 + var(--spacing-vw) * 4),
    calc(var(--spacing) * 12)
  );
}

/* Border Utilities */
.border-1-black {
  border: 1px solid var(--color-black);
}

.bra-5 {
  border-radius: 5px;
}

.bra-10 {
  border-radius: 10px;
}

.bra-50 {
  border-radius: 50%;
}

/* Transform */
.NO-translate {
  transform: translate(0) !important;
}

/* Button Component - NOW GROUPED */
.btn {
  display: flex;
  border-radius: 8px;
  border: 1px solid #fff0;
  justify-content: center;
  background-color: var(--color-black);
  transition: var(--transition);
}

.btn:hover {
  background-color: red;
  border: 1px solid blue;
  cursor: pointer;
}

.btn a,
.whatsapp-button,
[class*="hov-"] {
  transition: var(--transition);
}

.btn a {
  color: var(--color-white);
  font-weight: 700;
  font-size: clamp(0.75rem, 0.563rem + 0.935vw, 2rem);
  padding: clamp(0.375rem, 0.268rem + 0.536vw, 1.125rem)
    clamp(0.938rem, 0.642rem + 1.478vw, 2.813rem);
}

.btn:hover a {
  color: var(--color-white);
}

/* CTA Links */
.cta a {
  font-weight: 700;
  font-size: clamp(0.5rem, 0.268rem + 1.161vw, 2.125rem);
  letter-spacing: clamp(0.063rem, 0.054rem + 0.045vw, 0.125rem);
  color: var(--color-black);
}

.cta a svg {
  width: clamp(0.75rem, 0.411rem + 1.696vw, 3.125rem);
  margin-left: clamp(0.094rem, 0.063rem + 0.156vw, 0.313rem);
}

/* Hover Effects - NOW GROUPED */
[class*="hov-"] {
  cursor: pointer;
}

.hov-underline::before {
  height: clamp(0.063rem, 0.054rem + 0.045vw, 0.125rem);
  background-color: var(--color-black);
  content: "";
  bottom: 0;
  left: 0;
  position: absolute;
  width: 0;
  transition: width var(--transition);
}

.hov-underline:hover::before {
  font-weight: 700;
  width: 100%;
}

.hov-scale:hover {
  transform: scale(1.05);
}

.hov-y:hover {
  transform: translateY(clamp(-0.313rem, -0.179rem + -0.67vw, -1.25rem))
    translateZ(0);
}

/* Navbar Component - NOW GROUPED */
.navbar {
  position: fixed;
  contain: layout style;
  background: rgb(255 255 255 / 0.7);
  -webkit-backdrop-filter: blur(15px);
  backdrop-filter: blur(15px);
  padding: 2% 5%;
}

.navbar .brand,
.navbar .brand a,
.navbar .hamburger .close-icon,
.navbar .nav-link {
  color: var(--color-black);
}

.navbar .brand {
  font-size: clamp(0.75rem, 0.366rem + 1.92vw, 3.438rem);
  padding-bottom: clamp(0rem, -0.045rem + 0.223vw, 0.313rem);
}

.navbar .nav-link,
.navbar .nav-right .r-nav-div .contact-btn {
  font-size: clamp(0.5rem, 0.277rem + 1.116vw, 2.063rem);
  padding-bottom: 0.25rem;
}

.navbar .ham-container {
  border-radius: 1px;
  padding-bottom: clamp(0rem, -0.045rem + 0.223vw, 0.313rem);
}

.navbar .ham-container:focus {
  border: 1px solid rgb(0 0 0 / 0.13);
  box-shadow: 0 8px 32px rgb(255 255 255 / 0.1),
    inset 0 0 10px 5px rgb(255 255 255 / 0.25);
}

.navbar .ham-container:not(:focus) {
  border: none;
  box-shadow: none;
}

.navbar .nav-right .r-nav-div,
.navbar-centered {
  border-radius: 100px;
}

.navbar .hamburger {
  position: relative;
  width: 4vw;
  height: 3vw;
  cursor: pointer;
  transition: all var(--transition);
}

.navbar .hamburger .close-icon {
  position: absolute;
  top: 0;
  left: 0;
  display: none;
}

.navbar .hamburger.active .close-icon,
.navbar .hamburger.active .close-icon use {
  display: block;
}

.navbar .hamburger span {
  height: 1px;
  background-color: var(--color-black);
  transition: all var(--transition);
}

.navbar .hamburger span:first-child {
  transform-origin: top left;
}

.navbar .hamburger.active span {
  opacity: 0;
  transform: scale(0);
}

.hamburger.active span:nth-child(2) {
  opacity: 0;
}

.hamburger span:nth-child(3) {
  transform-origin: bottom left;
}

.hamburger.active span:first-child {
  transform: rotate(45deg) translate(2px, -2px);
}

.hamburger.active span:nth-child(3) {
  transform: rotate(-45deg) translate(2px, 2px);
}

.navbar .nav-links .nav-link.active {
  font-weight: 900;
  color: var(--color-black);
  border-bottom: none;
  position: relative;
  transition: all var(--transition);
}

.navbar .nav-links .nav-link.active::after {
  position: absolute;
  width: 100%;
  transition: all var(--transition);
  height: clamp(0.063rem, 0.054rem + 0.045vw, 0.125rem);
  background-color: var(--color-black);
  content: "";
  bottom: 0;
  left: 0;
}

.hamburger:focus-visible,
.nav-link:focus-visible {
  outline: 1px solid var(--color-black);
  outline-offset: 2.5px;
  border-radius: 1px;
}

/* Navbar Centered */
.navbar-centered {
  background-color: var(--color-white);
  margin: 1vw 0;
  box-shadow: none;
  padding: 1% 2%;
  justify-self: center;
}

.navbar .nav-right .r-nav-div {
  background-color: var(--color-black);
}

.navbar .nav-right .r-nav-div .contact-btn {
  color: var(--color-white);
}

/* Overlay - NOW GROUPED */
#overlay {
  position: fixed;
  top: 0;
  left: 0;
  background: rgb(0 0 0 / 0.5);
  visibility: hidden;
  transition: opacity var(--transition), visibility var(--transition);
  opacity: 0;
  contain: layout style;
}

#overlay.active {
  opacity: 1;
  visibility: visible;
}

/* Section Headings */
.sec-headings {
  margin-bottom: clamp(0.75rem, 0.411rem + 1.696vw, 3.125rem);
  font-size: clamp(1.375rem, 0.857rem + 2.589vw, 5rem);
  position: relative;
  text-align: center;
}

.sec-headings::before {
  position: absolute;
  content: "";
  width: 15vw;
  height: 1px;
  top: -15%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--color-black);
}

/* Header */
.header p {
  margin-bottom: clamp(2.625rem, 2.375rem + 1.25vw, 4.375rem);
  font-size: clamp(0.5rem, 0.25rem + 1.25vw, 2.25rem);
  color: #5f5f5f;
}

/* Footer Component - NOW GROUPED */
#footer {
  padding: 4vw 0;
  position: relative;
  background-color: var(--color-black);
}

#footer,
#footer .footer-contents h4,
.copyright,
.copyright-links a {
  color: var(--color-white);
}

#footer .footer-contents h4 {
  font-size: clamp(0.625rem, 0.357rem + 1.339vw, 2.5rem);
}

#footer .footer-contents .img img {
  filter: drop-shadow(-3px 2px 15px var(--color-primary));
}

#footer .footer-contents p {
  font-size: clamp(0.625rem, 0.429rem + 0.982vw, 2rem);
}

#footer .footer-contents ul li a {
  font-size: clamp(0.563rem, 0.375rem + 0.938vw, 1.875rem);
  color: var(--color-white);
}

#footer .footer-contents .follow-us ul li a {
  width: clamp(1rem, 0.464rem + 2.679vw, 4.75rem);
  height: clamp(1rem, 0.464rem + 2.679vw, 4.75rem);
}

.copyright {
  border-top: 1px solid var(--color-white);
  font-size: clamp(0.5rem, 0.357rem + 0.714vw, 1.5rem);
}

.copyright-links a {
  margin-right: clamp(2rem, 2.196rem + -0.982vw, 0.625rem);
  padding-bottom: 0.25rem;
}

/* WhatsApp Button - NOW GROUPED */
.whatsapp-button {
  position: fixed;
  bottom: 5%;
  right: 2.5%;
  contain: layout paint;
  width: clamp(2rem, 1.482rem + 2.589vw, 5.625rem);
  height: clamp(2rem, 1.482rem + 2.589vw, 5.625rem);
  background-color: #25d366;
  box-shadow: 0 4px 20px rgb(37 211 102 / 0.5);
  animation: 2s infinite pulse;
  color: var(--color-white);
}

.whatsapp-button:hover {
  background-color: var(--color-black);
  transform: scale(1.1);
  box-shadow: 0 5px 20px rgb(37 211 102 / 0.7),
    0 -5px 20px rgb(37 211 102 / 0.7);
  animation: none;
}

.whatsapp-button svg {
  width: clamp(1rem, 0.688rem + 1.563vw, 3.188rem);
}

/* Animation */
@keyframes pulse {
  0% {
    box-shadow: 0 0 0 0 rgb(37 211 102 / 0.7);
  }
  70% {
    box-shadow: 0 0 0 clamp(0.625rem, 0.446rem + 0.893vw, 1.875rem) #fff0;
  }
  100% {
    box-shadow: 0 0 0 0 #fff0;
  }
}

/* Icon Component - NOW GROUPED */
.icon {
  contain: strict;
  width: clamp(16px, calc(16px + 28 * (100vw - 320px) / 2240), 44px);
  height: clamp(16px, calc(16px + 28 * (100vw - 320px) / 2240), 44px);
  stroke-width: 1.5;
  fill: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: inline-block;
  pointer-events: none;
  aspect-ratio: 1;
  flex-shrink: 0;
  background-color: #fff0;
  position: relative;
}

/* Responsive Classes */
.left,
.right {
  width: 50%;
}

/* Media Queries */
@media (max-width: 575.98px) {
  .navbar {
    padding: 3% 5%;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
  }

  .navbar .nav-links {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: rgb(255 255 255 / 0.8);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 3% 5%;
    border-top: 3px solid rgb(255 255 255 / 0.2);
    opacity: 0;
    visibility: hidden;
    transition: all var(--transition);
  }

  .navbar .nav-links a {
    padding: 1vw;
  }

  .navbar .nav-links.active {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
  }

  .ham-container,
  .mobile-contact {
    display: block;
  }

  .hamburger {
    display: flex;
  }

  .navbar .nav-links-of-centered-nav {
    border-radius: 15px;
  }

  .navbar .nav-right .r-nav-div {
    display: none;
  }

  #footer .footer-contents p {
    text-align: center;
  }

  #footer .footer-contents .img img {
    width: 25%;
  }

  #footer .width50 {
    width: 50%;
    margin: 5vw 0;
  }

  #footer .footer-contents .social {
    display: flex;
    justify-content: center;
  }

  #footer .footer-contents .social .follow-us {
    text-align: center;
    margin-left: 8vw;
  }

  #footer .footer-contents .social .follow-us h4 {
    margin-bottom: 4vw;
  }

  .left,
  .right {
    width: auto;
  }

  .res-phone-column {
    flex-direction: column;
  }

  .mousefollower,
  .movercirc {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

@media (min-width: 576px) {
  .container {
    max-width: 540px;
  }

  #footer .footer-contents p {
    text-align: center;
  }

  #footer .footer-contents .img img {
    width: 25%;
  }

  #footer .row .r-576-w-33 {
    width: 33%;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }

  .col-nr-12 {
    flex: 0 0 auto;
    width: 100%;
  }

  .col-nr-3,
  .col-nr-4,
  .col-nr-6 {
    flex: 0 0 auto;
  }

  #footer .footer-contents .img img,
  .col-nr-6 {
    width: 50%;
  }

  .col-nr-4 {
    width: 33.333333%;
  }

  #footer .row .r-992-w-25,
  .col-nr-3 {
    width: 25%;
  }

  #footer .footer-contents p {
    text-align: left;
  }
}

@media (min-width: 1250px) {
  .container {
    max-width: 1160px;
  }
}

@media (min-width: 1550px) {
  .container {
    max-width: 1500px;
  }
}

@media (min-width: 1840px) {
  .container {
    max-width: 1940px;
    width: 90%;
  }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  *,
  ::after,
  ::before {
    animation-duration: 0s !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0s !important;
    scroll-behavior: auto !important;
  }
}

/* Debug */
.debug * {
  outline: red solid 1px !important;
}