:root{
  --c-dark: #000000;
  --c-brand:#4e57d4;
  --c-brand-light:#9096e9;
  --c-brand-rgb:78,87,212;
  --font-base: sans-serif;
  --box-shadow: 0 15px 25px rgba(0,0,0,0.08);
  --transition: all .5s ease;
  --nav-h: 90px;               /* fixed navbar height */
}

html, body { max-width: 100%; overflow-x: hidden; }
body{
  font-family: var(--font-base); 
  background: linear-gradient(rgba(2,10,39,.7), rgb(77,139,179));
  padding-top: var(--nav-h);   /* one single offset for fixed navbar */
}

a{ color:#fff; transition: var(--transition); }
a:hover{ color: var(--c-brand-light); }
img{ max-width:100%; height:auto; display:block; }
.box{ height:100px; }

/* ===== Navbar ===== */
.navbar{
  background: linear-gradient(rgba(2,10,39,.7), rgb(77,139,179));
  box-shadow: 1px 1px 25px rgba(0,0,0,.25);
  border-bottom: 1px solid #fff;
  height: var(--nav-h);
}
.navbar-nav .nav-link{
  font-weight: 500;
  color: #faf4f4;
  position: relative;
}
.navbar-brand{ color:#faf4f4; font-weight: 700; }
.navbar .navbar-brand .Logo{ width:70px; height:70px; mix-blend-mode: screen; }

.navbar .offcanvas-header{
  background-color: var(--c-brand);
  border-bottom: 1px solid #fff;
}

.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-2px;
  width:100%; height:2px;
  background: rgb(34,9,203);
  opacity:0; transition: .2s;
}
.nav-link:hover::after{ opacity:1; }

/* Offcanvas container visual tweak on small screens */
@media (max-width: 791px){
  .slidery{
    background: transparent;
    backdrop-filter: blur(10px);
  }
}

/* ===== Section Title ===== */
.section-title{ margin-bottom: 40px; text-align:center; }
.section-title .line{
  width: 60px; height: 4px;
  background-color: var(--c-brand);
  margin: 16px auto 24px;
}
.section-title p{
  max-width: 500px;
  margin: 0 auto;
}

/* ===== Slider (Hero) ===== */
#slider{
  position: relative;
  height: calc(100vh - var(--nav-h));
  overflow: hidden;
  z-index: 1;
  margin-top: 0 !important;
}


/* Overlay content */
#slider .slider-stuff{
  position: absolute !important;
  inset: 0 !important;
  z-index: 2;
  display: grid !important;
  place-items: center !important;
  text-align: center;
  padding: 1rem;
  transform: none !important;
}
#slider .slider-inner,
#slider .slider-stuff > .col-12{
  max-width: min(90vw, 900px);
  margin: 0 auto;
}

/* Overlay typography & buttons */
#slider .slider-stuff p{
  color:#fff;
  font-weight: 800;
  font-size: clamp(2rem, 6vw, 3rem);
  line-height: 1.1;
  margin: 0 0 .5rem;
}
#slider .slider-stuff h5{
  color:#fff;
  font-size: clamp(1rem, 3vw, 1.5rem);
  margin-bottom: 1.25rem;
}
#slider .slider-stuff .btn{
  margin: .25rem .4rem;
  padding: .6rem 1.2rem;
  font-size: 1rem;
  border-radius: 10px;
}

/* Slider controls */
.slider-controls{
  position: absolute; inset: 0;
  pointer-events: none; z-index: 3;
}
.slider-arrow{
  position: absolute; top:50%; transform: translateY(-50%);
  width:44px; height:44px; border:0; border-radius:999px;
  display:grid; place-items:center;
  background: rgba(0,0,0,.4); color:#fff; pointer-events:auto;
}
.slider-arrow:hover{ background: rgba(0,0,0,.6); }
.slider-arrow:focus{ outline:2px solid #fff; outline-offset:2px; }
.slider-prev{ left:14px; }
.slider-next{ right:14px; }

.slider-dots{
  position:absolute; left:50%; bottom:18px; transform: translateX(-50%);
  display:flex; gap:8px; z-index:4; pointer-events:auto;
}
.slider-dot{
  width:10px; height:10px; border-radius:999px; border:0;
  background: rgba(255,255,255,.6);
}
.slider-dot[aria-current="true"]{ background:#fff; }

@media (max-width: 576px){
  #slider{ height: calc(88vh - var(--nav-h)); }
  .slider-arrow{ width:40px; height:40px; }
}

/* ===== Portfolio (image zoom) ===== */
.image-zoom{ position:relative; overflow:hidden; }
.image-zoom-wrapper{ position:relative; overflow:hidden; }
.image-zoom-wrapper img{ transition: var(--transition); }
.image-zoom:hover .image-zoom-wrapper img{ transform: scale(1.1); }

.portfolio-item .iconbox{
  width:70px; height:70px; display:inline-flex; align-items:center; justify-content:center;
  background-color: var(--c-brand); color:#fff; font-size:34px;
  position:absolute; top:40%; left:50%; transform: translate(-50%,-50%); opacity:0; transition: var(--transition);
}
.portfolio-item:hover .iconbox{ opacity:1; top:50%; }

/* ===== Parallax ===== */
#parallax section{
  font-size:2rem; padding:2rem; background:#000; color:#fff;
}
#parallax .wrapper{
  min-height:100vh; height:auto;
  overflow-x:hidden;
  perspective: 10px;
}
#parallax header{
  display:flex; justify-content:center; align-items:center;
  width:100%; min-height: 60vh;
  transform-style: preserve-3d;
  z-index: 0;
}
#parallax .background, #parallax .foreground{
  position:absolute; inset:0; object-fit:cover; z-index:-1;
}
#parallax .background{ transform: translateZ(-10px) scale(1); }
#parallax .foreground{ transform: translateZ(-5px) scale(1); }
#parallax .title{
  font-size: clamp(50px, 8vw, 100px);
  color:#fff; text-shadow: 0 0 5px #000;
}

/* Mobile: simplify parallax to avoid stuck scroll */
@media (max-width: 768px){
  #parallax .wrapper{ overflow: visible; perspective: none; }
  #parallax header{ position:relative; transform:none; }
  #parallax .background, #parallax .foreground{ transform:none; }
}

/* ===== Icons & Feature boxes ===== */
.iconbox{
  width:70px; height:70px; display:inline-flex; align-items:center; justify-content:center;
  background: rgba(0,0,0,0.08); color: rgb(34,9,203); font-size:34px; flex:none;
}

/* ===== Reviews ===== */
#reviews{ background:#f9f9fb; padding: 80px 0; }
#reviews .section-title h1{ font-weight:700; color: var(--c-dark); }
#reviews .line{ background:#FFD700; } /* gold underline */

/* static + live cards */
.review .review-head,
.review-card{
  background:#fff;
  border-radius:16px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.review .review-head{ padding:2rem; position:relative; }
.review-card .review-head{ padding:1rem; }
.review-card{ border:1px solid rgba(0,0,0,0.06); }

.review .review-head:hover,
.review-card:hover{
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0,0,0,0.12);
}

.review small{ font-weight:600; text-transform:uppercase; color: var(--c-brand); }
.review-person .img-shape{
  width:60px; height:60px; border-radius:50%; object-fit:cover; border:3px solid #FFD700;
}
.review-person h5{ margin:0 0 2px; font-weight:600; }
.review-person small{ color: var(--c-brand); font-size:.9rem; }

/* star color (gold) */
.text-warning,
.review .ri-star-fill,
.review-card .ri-star-fill{ color:#FFD700; }
.stars i{ margin-right:2px; vertical-align: middle; }

/* clamp utility (used on mobile via JS toggling) */
.review-text.clamp-5{
  display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical;
  overflow:hidden; position:relative;
}
.review-text.clamp-5::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2.2rem;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
  pointer-events:none;
}
.review-text.expanded{ -webkit-line-clamp: unset; }
.review-text.expanded::after{ display:none; }

/* review mobile polish */
@media (max-width: 576px){
  #reviews.section-padding{ padding: 40px 0; }
  .review .review-head p, .review-card .review-head p{ font-size:1rem; line-height:1.55; }
  .review-person small{ font-size:.85rem; }
  .review-card{ margin-bottom:1.2rem; border-radius:12px; box-shadow: 0 6px 16px rgba(0,0,0,.08); }
  .row.gy-5.gx-4 > [class*="col-"]{ padding-inline:12px; }
}

/* Star picker (form) with tier color via --star-active-color */
.star-picker{
  --star-active-color: #FFD700;       /* JS updates to bronze/silver/gold */
  display:inline-flex; flex-direction: row-reverse; gap:10px;
  font-size:1.9rem; line-height:1; user-select:none;
}
.star-picker input{ display:none; }
.star-picker label{
  cursor:pointer; color:#ccc; transition: color .2s ease, transform .2s ease;
}
.star-picker label:hover,
.star-picker label:hover ~ label{ color:#FFD700; transform: scale(1.1); }
.star-picker input:checked ~ label{ color: var(--star-active-color); }
.star-picker label i{ color: inherit; }

/* pop animation */
@keyframes star-pop{
  0%{ transform:scale(1); filter: drop-shadow(0 0 0 rgba(0,0,0,0)); }
  50%{ transform:scale(1.25); filter: drop-shadow(0 0 6px rgba(0,0,0,.4)); }
  100%{ transform:scale(1); filter: drop-shadow(0 0 0 rgba(0,0,0,0)); }
}
.star-picker label.pop i{ animation: star-pop 250ms ease-out; }

/* iOS zoom fix for inputs */
#review-form input,
#review-form textarea,
#review-form button{ font-size:16px; }

/* ===== Contact ===== */
#contact{ position:relative; z-index:2; }
#contact::after{
  content:""; position:absolute; inset:0 0 auto 0; height:70%;
  background: linear-gradient(rgba(2,10,39,.3), rgba(77,139,179,.9)), url(background.jpg) center/cover no-repeat;
  z-index:-1;
}
#contact .form-control{ border-radius:0; }
#contact .form-control:focus{ box-shadow:none; border-color: var(--c-brand); }
#contact .row .btn{ background-color: aqua; }

/* ===== Footer ===== */
footer{ padding-top: 100px; }
.footer-top{
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-bottom{ padding: 40px 0; }
footer a{ color:#fff; }
footer .line{
  width:40px; height:4px; background: var(--c-brand);
  margin: 12px 0 24px;
}
.social-icons a{
  width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,0.1); border-radius: 100px;
}
.social-icons a:hover{ background: var(--c-brand); color:#fff; }
/* kill any spacing between slides while animating */


/* --- HARD RESET: hero slider track renders above background --- */
/* ===== Slider (Hero) ===== */
#slider{
  position: relative;
  height: calc(100vh - var(--nav-h));
  overflow: hidden;
  z-index: 1;
}

#slider figure {
  display: flex;                 /* track */
  align-items: stretch;
  gap: 0;
  margin: 0;
  padding: 0;
  width: auto;                   /* let children define width */
  height: 100%;
  transform: translate3d(0,0,0); /* JS updates this */
  transition: transform .6s ease;
  backface-visibility: hidden;
  will-change: transform;
}

#slider figure img {
  display: block;
  flex: 0 0 100%;                /* each slide = 100% viewport width */
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  backface-visibility: hidden;
}

/* overlay */
#slider .slider-stuff{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  z-index: 2;
  background: transparent;
}

