/* Auto-cleaned version: exact duplicate blocks removed where possible */

/* ==========================================================================
   1. GLOBAL & CORE ELEMENT RESETS
   ========================================================================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html::-webkit-scrollbar {
  display: none;
  -webkit-appearance: none;
}

body {
  font-family: 'Offside', 'Trebuchet MS', sans-serif;
  background-color: #bacaf0;
  color: rgb(93, 81, 197);
  padding-top: 80px;
  font-weight: bold;
}

a {
  text-decoration: none;
  color: #333;
  font-size: 18px;
}

/* ==========================================================================
   2. HEADER & NAVIGATION CORE LAYOUTS
   ========================================================================== */
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: transparent;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 101;
  /* Removed margin-left and blur from here so it doesn't break the layout */
}

nav {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 20px 30px;
  flex-wrap: wrap;
  height: 80px;
  box-shadow: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0);
 /* Reset margin to prevent layout shift */
  margin-left: 0;
  /* Unified starting state: crisp, transparent, and unblurred */
  background-color: rgba(255, 255, 255, 0);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  /* Smoothly animates everything together as one unit */
  transition: background-color 0.4s ease, backdrop-filter 0.4s ease, border-bottom 0.4s ease, box-shadow 0.4s ease;
}

nav.scrolled {
  /* Blurs the zooming background seamlessly behind the entire navigation bar area */
  background-color: rgba(255, 255, 255, 0.15); 
  backdrop-filter: blur(15px); 
  -webkit-backdrop-filter: blur(15px);
  
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

nav.scrolled .nav-links a {
  color: #333; /* Darkens link color for better contrast against lighter background */
}

nav.scrolled .search {
  color: #333; /* Darkens search icon for better contrast against lighter background */
}

.logo {
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: bold;
  color: #fff;
  padding-left: 10px;
  /* Force top left placement */
  position: fixed;
  top: 20px;       /* Space from top edge */
  left: 25px;      /* Space from left edge */
  z-index: 1000;  
  background-color: rgb(93, 81, 197);
  border-radius: 0px; 
  width: 170px;
  height: 45px;
  white-space: nowrap;
  /* Keeps logo above other elements */
}

nav ul {
  display: flex;
  align-items: center;
  margin-left: auto;
}

nav ul li {
  list-style: none;
  display: inline-block;
  margin-right: 15px;
}

nav ul li a {
  color: #fff; /* White links to look great over background overlays */
  transition: color 0.3s ease;
}

nav ul li a:hover {
  color: rgb(93, 81, 197);
}

/* ==========================================================================
   2. HEADER & NAVIGATION CORE LAYOUTS
   ========================================================================== */
header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

nav {
  display: flex;
  justify-content: space-between; /* Pushes Logo to left, Menu to right */
  align-items: center;
  width: 100%;
  height: 80px;
  padding: 0 30px;
  background-color: rgba(255, 255, 255, 0);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  transition: all 0.4s ease;
}

nav.scrolled {
  background-color: rgba(255, 255, 255, 0.15); 
  backdrop-filter: blur(15px); 
  -webkit-backdrop-filter: blur(15px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}

.menu-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1001; /* Layered safely above overlays */
}

.menu-toggle .material-icons {
  color: #fff; /* White icon to pop cleanly over dark hero elements */
  font-size: 32px;
}

/* ==========================================================================
   MOBILE SIDEBAR LAYOUT (Activated at 768px or smaller)
   ========================================================================== */
@media screen and (max-width: 768px) {
  /* Show hamburger toggle button */
  .menu-toggle {
    display: block;
    margin-left: auto; /* Aligns button to the far right side */
  }

/* Morph horizontal layout into a hidden sidebar */
  nav ul {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 20px;
    
    position: fixed;
    top: 0;
    right: -280px; /* Safely hides panel off the screen right side */
    width: 280px;
    height: 100vh;
    background-color: #5d51c5; /* Using your brand purple palette color */
    padding: 100px 30px 30px 30px;
    box-shadow: -5px 0 15px rgba(0,0,0,0.2);
    transition: right 0.3s ease; /* Fluid sliding interaction */
  }

/* Toggled via JavaScript class injector */
  nav ul.active {
    right: 0;
  }

nav ul li {
    width: 100%;
  }

nav ul li a {
    font-size: 20px;
    display: block;
    padding: 8px 0;
  }

}


/* ==========================================================================
   3. HERO BACKGROUND ZOOM SLIDESHOW LAYOUTS
   ========================================================================== */
.hero {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  margin-top: -80px;
  padding-top: 80px;
}

.hero-bg-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  z-index: -1;
}

#bg1, #bg2 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1);
  will-change: opacity, transform;
}

/* Forward animations */
#bg1.zoom-in, #bg2.zoom-in {
  animation: zoomForward 1.5s ease-out forwards;
}

#bg1.zoom-out, #bg2.zoom-out {
  animation: fadeHoldScale 1.5s ease-in-out forwards;
}

@keyframes zoomForward {
  0% { opacity: 0; transform: scale(1); }

100% { opacity: 1; transform: scale(1.08); }

}

@keyframes fadeHoldScale {
  0% { opacity: 1; transform: scale(1.08); }

100% { opacity: 0; transform: scale(1.08); }

}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(186, 202, 240, 0.45);
  backdrop-filter: brightness(100%);
  -webkit-backdrop-filter: brightness(50%);
  pointer-events: none;
}

/* ==========================================================================
   4. HERO TYPOGRAPHY & TEXT ROTATOR ANIMATIONS
   ========================================================================== */
.hero .container {
  position: relative;
  z-index: 2;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 30px 20px;
  margin-top: -80px;
}

h1 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 48px;
  font-weight: normal;
  color: #fff;
}

.seperator {
  display: block;
  width: 24%;
  height: 4px;
  background-color: #fff;
  margin: 20px auto;
}

#rotating-text {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 48px;
  font-weight: bolder;
  color: #fff;
}

.fade-out-down {
  animation: fade-out-down 0.5s forwards ease-in;
}

.fade-in-up {
  animation: fade-in-up 0.5s forwards ease-out;
}

@keyframes fade-out-down {
  0% { opacity: 1; transform: translateY(0); }

100% { opacity: 0; transform: translateY(20px); }

}

@keyframes fade-in-up {
  0% { opacity: 0; transform: translateY(-20px); }

100% { opacity: 1; transform: translateY(0); }

}

/* ==========================================================================
   5. OAUTH NAVBAR DROPDOWN OVERLAY SYSTEM (CLEAN RE-FIX)
   ========================================================================== */
/* ==========================================================================
   DROPDOWN & BACKGROUND SYSTEM LAYOUTS
   ========================================================================== */


/* Navbar Interactive Actions Container */
.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-toggle {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.4);
    color: #ffffff;
    padding: 0.6rem 1.4rem;
    border-radius: 24px;
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 500;
    transition: all 0.25s ease;
    font-family: offside, cursive;
}

.dropdown-toggle:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: #ffffff;
}

.dropdown-item {
  width: 100%;
  background: rgba(239, 68, 68, 0.15);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.35);
  padding: 0.6rem;
  border-radius: 14px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
}

.dropdown-item:hover {
  background: rgba(239, 68, 68, 0.35);
  color: #ffffff;
  border-color: rgba(239, 68, 68, 0.6);
}

/* Scrolled Navbar Theme Tweaks */
nav.scrolled .dropdown-toggle {
    color: #333333;
    border-color: rgba(0, 0, 0, 0.2);
}

nav.scrolled .dropdown-toggle:hover {
    background: rgba(0, 0, 0, 0.05);
}

nav.scrolled .dropdown-menu {
    background: rgba(255, 255, 255, 0.95);
    border-color: rgba(0, 0, 0, 0.1);
}

/* ==========================================================================
   DROPDOWN OVERLAY LIFECYCLE (FIXED RE-ALIGNMENT)
   ========================================================================== */
.dropdown-menu {
    position: absolute;
    right: 0;
    top: calc(100% + 12px);
    width: 280px;
    background: rgba(255, 255, 255, 0.22); 
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(237, 233, 233, 0.2);
    border-radius: 30px;
    padding: 1.25rem;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.3);
    z-index: 1000;
    
    /* CRITICAL FIX: Leaves dimensions fully open and trackable for Google scripts, 
       but masks it entirely from the user's viewport without clipping layout */
    opacity: 0;
    pointer-events: none; 
    transform: scale(0.95) translateY(-10px);
    transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Active Class handles the dropdown open reveal */
.dropdown.show .dropdown-menu {
    opacity: 1;
    pointer-events: auto; 
    transform: scale(1) translateY(0);
}

/* Maintain background palette adjustment on scroll */
nav.scrolled .dropdown-menu {
    background: rgba(255, 255, 255, 0.95);
    border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Keeps scrolling theme variations aligned */
nav.scrolled .dropdown-menu {
    background: rgba(255, 255, 255, 0.95);
    border-color: transparent;
}

nav.scrolled .dropdown.show .dropdown-menu {
    border: 1px solid rgba(0, 0, 0, 0.1);
}

/* Custom internal User Profile views */
.profile-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 1.25rem;
  color: #ffffff;
}

.profile-info img {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  margin-bottom: 0.75rem;
}

.profile-info name {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 0.2rem;
  display: block;
}

.profile-info small {
  font-size: 0.82rem;
  opacity: 0.75;
  word-break: break-all;
}

/* Scrolled variations for readability */
nav.scrolled .dropdown-toggle {
  color: rgb(93, 81, 197);
  border-color: rgba(93, 81, 197, 0.4);
}

nav.scrolled .dropdown-toggle:hover {
  background: rgba(93, 81, 197, 0.1);
  border-color: rgb(93, 81, 197);
}

nav.scrolled .dropdown-menu {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(0, 0, 0, 0.1);
}

nav.scrolled .profile-info {
  color: #333;
}

nav.scrolled nav ul {
  color: #333;
}

/* ==========================================================================
   6. PAGE CONTENT SECTIONS (ABOUT, SERVICES, CONTACT)
   ========================================================================== */
.about-section,
.services-section,
.contact-section {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
}

.about-section {
  background-color: #bacaf0;
}

.services-section {
  background-color: #a8a8d8;
}

.contact-section {
  background-color: #9090c0;
}

h2 {
  font-size: 42px;
  color: rgb(93, 81, 197);
  margin-bottom: 30px;
  text-align: center;
}

.about-section p {
  font-size: 18px;
  line-height: 1.6;
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  color: #333;
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.service-card {
  background: rgba(255, 255, 255, 0.65);
  padding: 30px;
  border-radius: 30px;
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.service-card h3 {
  color: rgb(93, 81, 197);
  margin-bottom: 15px;
  font-size: 24px;
}

.service-card p {
  color: #333;
  font-size: 16px;
  line-height: 1.5;
}

footer {
  background-color: #bacaf0;
  color: #333;
  text-align: center;
  padding: 20px;
}

/* ==========================================================================
   7. RESPONSIVE MEDIA QUERIES
   ========================================================================== */
@media screen and (max-width: 768px) {
  
  /* Hamburger button appears only on mobile */
  .menu-toggle {
    display: block; 
    background: none;
    border: none;
    color: white;
    font-size: 28px;
    cursor: pointer;
  }

/* Converts horizontal list into a hidden sidebar */
  .nav-links {
    flex-direction: column;
    position: fixed;
    top: 0;
    left: -250px; /* Hidden off-screen to the left */
    width: 250px;
    height: 100vh;
    background-color: #222;
    padding: 60px 20px;
    transition: left 0.3s ease; /* Smooth slide effect */
    z-index: 1000;
  }

/* Revealed only when Javascript adds the .active class */
  .nav-links.active {
    left: 0; 
  }

}

/* ==========================================
   FIXED PURS CSS SCROLL & REVERSE ANIMATION
   ========================================== */

/* 1. Base hidden state for any browsers that don't support scroll-driven logic */
/* ==========================================
   CLASSIC TWO-WAY SCROLL ANIMATION
   ========================================== */
.scroll-animate {
  /* Base state when off-screen */
  opacity: 0;
  transform: scale(0.8) translateY(50px);
  
  /* Smoothly handles the scaling up and scaling down transitions */
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}

/* Active state when sitting inside the viewport */
.scroll-animate.in-view {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* 8 - Reach Out Section */
.reachout-info {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
  background: white;
  width: 80%;
  padding: 20px;
  height: 500px;
  transform: translateX(120px);
  border-radius: 30px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.reachout-info .left {
  display: flex;
  flex: 1;
  min-width: 300px;
}

.reachout-info .left img {
  max-width: 100%;
  border-radius: 20px;
  transform: translateY(70px);
  height: 300px;
  display: block;
}

.right {
  flex: 1;
  min-width: 300px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translateX(-20px);
}

.right contact {
  display: flex;
  font-size: 36px;
  color: rgb(93, 81, 197);
  margin-bottom: 20px;
}

.right compliment {
  display: flex;
  font-size: 18px;
  line-height: 1.6;
  color: #333;
}

.right info {
  display: flex;
  font-size: 18px;
  line-height: 1.6;
  color: #333;
}

form {
  display: flex;
  flex-direction: column;
  gap: 15px;
  margin-top: 20px;
}

input, textarea {
  padding: 10px;
  border: 1px solid #ccc;
  border-radius: 13px;
  font-size: 16px;
  font-family: offside, cursive;
}

.right button {
  padding: 10px;
  background-color: rgb(93, 81, 197);
  color: #fff;
  border: none;
  border-radius: 13px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  font-family: offside, cursive;
}

@media screen and (max-width: 889px) {
  .reachout-info {
    width: 100%;
    transform: translateX(0);
    padding: 15px;
    height: auto;
  }

.reachout-info .left img {
    width: 100%;
    min-width: unset;
    transform: translateY(20px);
  }

.right {
    transform: translateX(0);
  }

}

.search {
  display: flex;
  color: #fff;
  font-size: 24px;
  transition: color 0.3s ease;
  top: 2px;
  transform: translateX(1px);
  cursor: pointer;
  background: none;
  border: none;
}

.search:hover {
  color: rgb(93, 81, 197);
}

/* ==========================================================================
   GOOGLE BAR WITH OUTSIDE LIQUID SEPARATION BUTTON (PURE CSS)
   ========================================================================== */
/* ==========================================================================
   PORTAL MASK STACK (REPAIRS BACKDROP-FILTER CLIPPING TRAPS)
   ========================================================================== */
/* White inner magnifying glass vector art styling */
.search-show {
    width: 26px;  /* Proportional scaling matches the larger 72px bubble mass presence */
    height: 26px;
    opacity: 0;
    transform: scale(0.6);
    will-change: transform, opacity;
    color: #000;
}

/* ==========================================================================
   THE DROPOUT LIFE CYCLE ANIMATIONS
   ========================================================================== */

/* Once the white bar finishes loading on screen, the giant droplet splits off dynamically to the right */

/* Pop the search icon vectors into place right as the liquid snaps apart */
.tabcontent.active .search-show {
    opacity: 1;
    transform: scale(1.1);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.9s, opacity 0.3s ease 0.9s;
}

/* Premium smooth hover elevation scaling on the separated circle button */
.search-overlay-submit-outside-droplet:hover .droplet-liquid-blob {
    background: #5d51b5;
    transform: scale(1.06); /* Gentle scale cushion for large sizes */
}

/* Handles the organic stretchy separation keyframes calibrated for a 72px body */
@keyframes liquidGlassSeparateOutsideLarge {
    0% {
        opacity: 0;
        /* Anchored completely within the right boundary limit of the white bar */
        transform: translate3d(-130px, 0, 0) scale(0.2) scaleX(0.6);
    }

35% {
        opacity: 1;
        /* Budding out: stretches elastically with dramatic horizontal pull distortion */
        transform: translate3d(-65px, 0, 0) scale(0.85) scaleX(1.6); 
        border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%; /* Squished fluid teardrop profile */
    }

65% {
        /* The sticky bridge snaps! The massive droplet over-shoots from tension release momentum */
        transform: translate3d(10px, 0, 0) scale(1.08) scaleX(0.8);
    }

100% {
        opacity: 1;
        /* Settles neatly as a bold, giant standalone button standing completely outside the bar */
        transform: translate3d(0, 0, 0) scale(1) scaleX(1);
        border-radius: 50%;
    }

}

/* ==========================================================================
   CLOSE UI BUTTON & INTERACTION PROTECTION LOCKS
   ========================================================================== */
.close-search-btn {
    position: absolute;
    top: 35px;
    right: 45px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 3.5rem;
    cursor: pointer;
    line-height: 1;
    opacity: 0.6;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s;
    z-index: 10;
}

.close-search-btn:hover {
    transform: rotate(90deg) scale(1.1);
    opacity: 1;
}

/* Locks the page background from dragging or scrolling while overlay page is active */
body.search-mode-active {
    overflow: hidden !important;
    height: 100vh !important;
}

/* ==========================================================================
   ALIGNED GOOGLE-STYLE OVERLAY DESIGN SYSTEM
   ========================================================================== */

#portal-root {
    position: relative;
    z-index: 999999 !important;
}

.tabcontent {
    position: fixed; 
    top: 0;
    left: 0;
    width: 100vw; 
    height: 100vh; 
    background-color: rgba(93, 81, 197, 0.45);
    z-index: 100;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 160px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-20px);
    backdrop-filter: blur(15px) brightness(85%);
    transition: opacity 0.4s ease, transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.4s;
}

.tabcontent.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.search-modal-content {
    width: 100%;
    max-width: 760px;
    padding: 20px;
    text-align: center;
}

.search-modal-content h2 {
    font-size: 2.4rem;
    margin-bottom: 2.5rem;
    color: #ffffff;
    font-weight: normal;
    letter-spacing: -0.01em;
}

/* Staggered element entry fades */
.reveal-item {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
}

.tabcontent.active .reveal-item { opacity: 1; transform: translateY(0); }

.tabcontent.active .layer-1 { transition-delay: 0.1s; }

.tabcontent.active .layer-2 { transition-delay: 0.2s; }

.search-overlay-form {
    width: 100%;
}

/* FIX: Master position anchor locks all dimensions to the center column */
.search-row-anchor {
    position: relative;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
}

.google-search-bar-arrangement-box {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding-right: 90px; /* Golden padding reserves runway space for the giant 72px button */
}

/* THE WHITE GOOGLE PILL BAR: Crisp shadow sits right beneath its baseline */
.google-search-box-container {
    display: flex;
    align-items: center;
    width: 100%;
    height: 64px;
    background: #ffffff;
    border-radius: 32px;
    padding: 0 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12), 0 2px 5px rgba(0, 0, 0, 0.04);
    transform-origin: left center; 
    will-change: transform;
}

.left-decor-icon {
    color: #9aa0a6;
    margin-right: 14px;
    font-size: 1.1rem;
    flex-shrink: 0;
}

.search-overlay-input {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    outline: none;
    color: #202124; 
    font-size: 1.2rem;
    font-family: inherit;
    padding-right: 56px;
}

.search-overlay-input::-webkit-search-decoration,
.search-overlay-input::-webkit-search-cancel-button,
.search-overlay-input::-webkit-search-results-button,
.search-overlay-input::-webkit-search-results-decoration {
    display: none;
}

.clear-input-btn {
    position: absolute;
    right: 114px; 
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: #9aa0a6;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    z-index: 6;
    font-size: 1.1rem;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, color 0.2s ease, visibility 0.2s;
}

.clear-input-btn:hover { color: #202124; }

.clear-input-btn.visible { opacity: 1; visibility: visible; }

/* ==========================================================================
   THE DYNAMICALLY ALIGNED RECENT ITEMS DROPDOWN CARD
   ========================================================================== */
.search-history-dropdown {
    position: absolute;
    /* FIX: Placed exactly 8px below the 64px white capsule bar surface */
    top: 72px; 
    left: 0;
    
    /* FIX: Automatically matches the exact width of the white search capsule bar */
    width: calc(100% - 90px); 
    height: 270px;
    background: rgba(255, 255, 255, 0.55);
    border-radius: 40px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    z-index: 99; 
    overflow: hidden;
    max-height: 0px; 
    padding: 0;
    text-align: left;
    transition: opacity 0.2s cubic-bezier(0.16, 1, 0.3, 1), transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.search-history-dropdown.show {
    max-height: 290px;
}

.history-dropdown-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 24px;
}

.history-dropdown-header span {
    position: absolute;
    font-size: 0.78rem;
    font-weight: 700;
    color: #70757a;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    top: 28px;
    left: 28px;
}

.clear-all-history-btn {
    background: transparent;
    position: absolute;
    border: none;
    color: rgb(93, 81, 197);
    font-size: 0.8rem;
    font-weight: bold;
    cursor: pointer;
    font-family: inherit;
    padding: 4px 10px;
    border-radius: 6px;
    top: 25px;
    left: 84%;
    transition: background 0.2s ease;
}

.clear-all-history-btn:hover { background: rgba(93, 81, 197, 0.08); }

.history-item {
    display: flex;
    align-items: center;
    padding: 14px 24px;
    color: #3c4043;
    font-size: 0.95rem;
    cursor: pointer;
    transition: background 0.2s ease;
}

.history-item:hover { background: rgba(93, 81, 197, 0.05); }

.history-fa-clock { color: #9aa0a6; margin-right: 14px; font-size: 0.95rem; opacity: 0.8; }

.history-items-list-container {
  position: absolute;
  top: 55px;
}

/* Isolated liquid filter container path on the right edge */
.outside-liquid-separation-track {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;  
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: url('#liquid-glass-goo'); 
}

.search-overlay-submit-outside-droplet {
    position: relative;
    width: 72px;  
    height: 72px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    outline: none;
    z-index: 5;
    opacity: 0;
    transform: translate3d(-130px, 0, 0) scale(0.2);
    will-change: transform, opacity;
}

.search-fa-icon {
    font-size: 1.4rem; 
    color: #ffffff;
    opacity: 0;
    transform: scale(0.6);
}

/* ==========================================================================
   THE SEPARATION PHYSICS LOOPS
   ========================================================================== */
.tabcontent.active .search-overlay-submit-outside-droplet {
    animation: liquidGlassSeparateOutsideLarge 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    animation-delay: 0.45s; 
}

.tabcontent.active .google-search-box-container {
    animation: whitePillTinySnapJiggle 0.45s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: 0.85s; 
}

.tabcontent.active .search-fa-icon {
    opacity: 1;
    transform: scale(1.1);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.9s, opacity 0.3s ease 0.9s;
}

.search-overlay-submit-outside-droplet:hover .droplet-liquid-blob {
    background: #5d51b5;
    transform: scale(1.06);
}

@keyframes whitePillTinySnapJiggle {
    0% { transform: scaleX(1); }

25% { transform: scaleX(0.985); }

60% { transform: scaleX(1.006); }

100% { transform: scaleX(1); }

}

@keyframes liquidGlassSeparateOutsideLarge {
    0% { opacity: 0; transform: translate3d(-130px, 0, 0) scale(0.2) scaleX(0.6); }

35% { opacity: 1; transform: translate3d(-65px, 0, 0) scale(0.85) scaleX(1.6); border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%; }

65% { transform: translate3d(10px, 0, 0) scale(1.08) scaleX(0.8); }

100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) scaleX(1); border-radius: 50%; }

}

.close-search-btn {
    position: absolute;
    top: 35px;
    right: 45px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 2.2rem;
    cursor: pointer;
    line-height: 1;
    opacity: 0.6;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s;
    z-index: 10;
}

.results-page-tabcontent.active { transform: translateY(0); }

.results-page-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid rgba(93, 81, 197, 0.15); padding-bottom: 15px; margin-bottom: 25px; }

.results-page-header h3 { font-size: 1.6rem; color: rgb(93, 81, 197); }

.close-results-btn { background: transparent; border: none; font-size: 1.6rem; color: #999999; cursor: pointer; transition: color 0.2s; line-height: 1; }

.close-results-btn:hover { color: rgb(93, 81, 197); }

.no-results-msg { color: #666666; font-style: italic; margin-bottom: 20px; }

body.search-mode-active {
    overflow: hidden !important;
    height: 100vh !important;
}

.copyright-info {
  font-size: 14px;
  color: #333;
  text-align: center;
  margin-top: 20px;
  transform: translateX(-36%);
}

#year {
  font-weight: bold;
  color: #333;
}

.social-icons {
  position: relative;
  display: flex;
  justify-content: center;
  gap: 20px;
  bottom: 20px;
  transform: translateX(42%);
}

/* ==========================================================================
   ROBUST FULL-WIDTH LAYOUT SYSTEM (REPLACES NEGATIVE MARGIN HACKS)
   ========================================================================== */

/* 1. Establish absolute baseline containment on the master viewpoint */
html, body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden; /* Stops horizontal canvas swiping completely */
}

/* 2. Configure every section background color track to expand edge-to-edge cleanly */
.hero,
.about-section,
.services-section,
.contact-section {
    width: 100vw;       /* Forces the section background block to match full monitor width */
    max-width: 100%;
    margin-right: 0 !important; /* Safely overwrites and eliminates the old -20px margin glitch */
    margin-left: 0 !important;
    padding: 80px 20px; /* Gives breathable spacing away from screen bezel borders */
    box-sizing: border-box;
}

/* 3. Center and restrict the actual readable content inside those sections */
.about-section .container,
.services-section .container,
.contact-section .container {
    max-width: 1200px;  /* Limits your text and grid widths for readability */
    margin: 0 auto;     /* Automatically centers the container card on the screen surface */
    width: 100%;
    box-sizing: border-box;
}

/* 4. Fix your services grid layout definition to distribute cards proportionally */
.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Auto-fits layout columns cleanly */
    gap: 30px;
    width: 100%;
}

/* 5 - Coming Soon */
.status-indicator-hud {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 0; /* Keeps it in the background */
    font-family: offside, cursive;
    font-size: 13px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.85); /* Very subtle */
    pointer-events: none; /* Prevents it from blocking clicks */
    user-select: none;
}

/* ==========================================
   INTERACTIVE CUSTOM MOUSE HIGHLIGHT LAYER
   ========================================== */

/* Completely hide the default native pointer arrow (Optional, but looks way cleaner) */
html, body, button, a {
    cursor: none !important; 
}

.custom-cursor-highlight {
    width: 20px;
    height: 20px;
    background-color: rgba(93, 81, 197, 0.65); /* Translucent signature purple tone *//* Solid core boundary lines */
    border-radius: 50%;                         /* Forces a flawless circle shape */
    
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none; /* CRITICAL: Allows clicks to bleed right through onto underlying buttons */
    z-index: 9999999;     /* Floats above everything, including full-page portal overlays */
    
    /* Center alignment offset correction */
    transform: translate(-50%, -50%) scale(1);
    
    /* Ultra fluid velocity interpolation profile */
    transition: 
        transform 0.15s cubic-bezier(0.215, 0.61, 0.355, 1), 
        background-color 0.3s ease, 
        border-color 0.3s ease;
        
    will-change: transform;
}

/* GROWING SCALE STATE: Instantly activated via JavaScript when hovering over target selectors */
.custom-cursor-highlight.grow {
    transform: translate(-50%, -50%) scale(2.8); /* Expands the circle scale area significantly */
    background-color: rgba(93, 81, 197, 0.65);  /* Thins down opacity so background elements stay readable */   /* Optional: switches border to glowing white over active hover fields */
}

/* ==========================================================================
   GOOGLE-STYLE SEARCH OVERLAY REMAKE WITH FLUID BREAKOUT JIGGLES
   ========================================================================== */

#portal-root {
    position: relative;
    z-index: 999999 !important;
}

/* Master full-page curtain container track */
.tabcontent {
    position: fixed; 
    top: 0;
    left: 0;
    width: 100vw; 
    height: 100vh; 
    background-color: rgba(93, 81, 197, 0.45); /* Translucent signature purple overlay background tint */
    z-index: 100;
    
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 160px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    
    /* INACTIVE BLUR STATES: Shifts up slightly and turns down pixel blurring completely */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-20px);
    backdrop-filter: blur(0px) brightness(100%);
    -webkit-backdrop-filter: blur(0px) brightness(100%);
    
    /* Smoothly handles opacity, vertical glide, and pixel blurring concurrently */
    transition: 
        opacity 0.4s ease, 
        transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), 
        visibility 0.4s,
        backdrop-filter 0.45s ease,
        -webkit-backdrop-filter 0.45s ease;
        
    will-change: opacity, transform, backdrop-filter;
}

/* ACTIVATED OPEN LAYOUT: Glides down and intensifies filter to your exact 15px specification */
.tabcontent.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    backdrop-filter: blur(15px) brightness(85%);
    -webkit-backdrop-filter: blur(15px) brightness(85%);
}

/* Staggered element entry fades */
.reveal-item {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1), transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform;
}

/* Positional alignment shell wrapper bounds */
.search-form-position-wrapper {
    position: relative;
    width: 100%;
}

/* Master horizontal layout pipeline lane container */
.google-search-bar-arrangement-box {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 720px;
    padding-right: 90px; /* Generates wide horizontal runway gap for the giant standalone button circle */
}

/* THE WHITE GOOGLE PILL BAR: Solid, clean, sharp, and unaffected by the liquid blur distortion */
.google-search-box-container {
    display: flex;
    align-items: center;
    width: 100%;
    height: 64px;
    background: rgba(255, 255, 255, 0.55);
    border-radius: 32px;
    padding: 0 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15), 0 2px 5px rgba(0, 0, 0, 0.05);
    
    /* Anchors transform scaling to the left edge so recoil movement tracks rightward */
    transform-origin: left center; 
    will-change: transform;
}

.search-overlay-input {
    width: 100%;
    height: 100%;
    background: transparent;
    border: none;
    outline: none;
    color: #202124; 
    font-size: 1.2rem;
    font-family: inherit;
    padding-right: 56px; /* Protects characters from typing under clear button boundary fields */
}

.results-page-tabcontent {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100vw;
  height: 85vh;
  background: rgba(255, 255, 255, 0.57);
  backdrop-filter: blur(15px);
  border-top-left-radius: 50px;
  border-top-right-radius: 50px;
  z-index: 999999;
  padding: 30px;
  overflow-y: auto;
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Removes default inner browser input overlay clearing cross marks natively */
.search-overlay-input::-webkit-search-decoration,
.search-overlay-input::-webkit-search-cancel-button,
.search-overlay-input::-webkit-search-results-button,
.search-overlay-input::-webkit-search-results-decoration {
    display: none;
}

/* Font Awesome Input Clear Button */
.clear-input-btn {
    position: absolute;
    right: 114px; /* Positions perfectly left of the droplet track */
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    color: #9aa0a6;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
    z-index: 6;
    font-size: 1.1rem;
    
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, color 0.2s ease, visibility 0.2s;
}

/* ==========================================================================
   GIANT 72px OUTSIDE LIQUID GLASS SEPARATION CONTEXT
   ========================================================================== */
.outside-liquid-separation-track {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 80px;  
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    filter: url('#liquid-glass-goo'); /* Only blends elements within this isolated right track! */
}

.search-overlay-submit-outside-droplet {
    position: relative;
    width: 72px;  /* Giant prominent circular button architecture footprint */
    height: 72px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    outline: none;
    z-index: 5;
    
    /* Inactive Base: Hidden inside right edge of pill container bar */
    opacity: 0;
    transform: translate3d(-130px, 0, 0) scale(0.2);
    will-change: transform, opacity;
}

.droplet-liquid-blob {
    position: absolute;
    inset: 0;
    background: #fff; /* Exact purple hex matching your primary theme color code */
    border-radius: 50%;
    z-index: -1;
}

.search-fa-icon {
    font-size: 1.4rem; /* Scaled bold and readable inside the giant circle */
    color: #000;
    opacity: 0;
    transform: scale(0.6);
    will-change: transform, opacity;
}

/* ==========================================================================
   THE DROPOUT LIFE CYCLE ANIMATIONS & SYNCHRONIZED RECOILS
   ========================================================================== */

/* Once the white bar finishes loading on screen, the giant droplet splits off dynamically to the right */
.tabcontent.active .search-overlay-submit-outside-droplet {
    animation: liquidGlassSeparateOutsideLarge 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
    animation-delay: 0.45s; 
}

/* The white bar remains completely static, then executes a sharp jiggle at snap breakpoint */
.tabcontent.active .google-search-box-container {
    animation: whitePillTinySnapJiggle 0.45s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    animation-delay: 0.85s; /* Delay calibration maps precisely to connection snap instant */
}

/* Reveal inner icon graphics right as liquid bridge separates */
.tabcontent.active .search-fa-icon {
    opacity: 1;
    transform: scale(1.1);
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.9s, opacity 0.3s ease 0.9s;
}

/* Microscopic horizontal scale jiggle animation (Tension recoil logic) */
@keyframes whitePillTinySnapJiggle {
    0% { transform: scaleX(1); }

/* Fast 1.5% recoil horizontal contraction */
    60% { transform: scaleX(1.006); }

/* Tiny settling stabilization bounce */
    100% { transform: scaleX(1); }

/* Hard lock back to baseline solid pill matrix dimensions */
}

@keyframes liquidGlassSeparateOutsideLarge {
    0% {
        opacity: 0;
        transform: translate3d(-130px, 0, 0) scale(0.2) scaleX(0.6);
    }

35% {
        opacity: 1;
        transform: translate3d(-65px, 0, 0) scale(0.85) scaleX(1.6); 
        border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%; /* Squished liquid teardrop profile */
    }

}

.service-card {
  background: rgba(255, 255, 255, 0.9);
  padding: 30px;
  border-radius: 40px;

  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

body.dark-mode {
  background-color: black;
  color: white;
}

.hero.dark-mode {
  filter: brightness(80%);
}

.results-page-tabcontent.dark-mode {
  background: rgba(0, 0, 0, 0.64);
}

.google-search-box-container.dark-mode {
  background: rgba(0, 0, 0, 0.64);
}

.dark-mode-button {
  color: #fff;
  border: none;
  background: none;
}

/* Hide moon by default */
.dark-mode-button .icon-moon { opacity: 0;}

/* When in dark mode, hide sun, show moon */
body.dark-mode .dark-mode-button .icon-sun { opacity: 0;  }

body.dark-mode .dark-mode-button .icon-moon { opacity: 1; }

.banner {
  z-index: 102;
  position: absolute;
  width: 100%;
  background-color: rgb(93, 81, 197);
  height: 45px;
    display: flex;
  flex-direction: column;  /* Stack header and text vertically */
  justify-content: center; /* Center content vertically */
  align-items: center;     /* Center content horizontally */
  text-align: center; 
}

.banner-info {
  position: absolute;
  z-index: 102;
  font-family: 'Offside', 'Trebuchet MS', sans-serif;
  color: #fff;
  font-size: 18px;
}