:root{
  --primary:#0d47a1;
  --secondary:#1976d2;
  --light:#f4f9ff;
  --dark:#071c38;
  --white:#fff;
  --shadow:0 15px 40px rgba(0,0,0,0.08);
  --radius:24px;
}

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  scroll-behavior:smooth;
}

body{
  font-family:'Poppins',sans-serif;
  background:var(--light);
  color:#222;
  overflow-x:hidden;
}


/* =========================
   HEADER BASE STYLES
========================= */
/* =========================
   HEADER BASE
========================= */

header{
  position:fixed;
  width:100%;
  top:0;
  left:0;
  z-index:1000;

  padding:18px 8%;

  display:flex;
  justify-content:space-between;
  align-items:center;

  backdrop-filter:blur(14px);
  background:rgba(255,255,255,0.8);

  box-shadow:0 5px 20px rgba(0,0,0,0.04);
}

.logo{
  display:flex;
  align-items:center;
  gap:14px;
}

.logo img{
  height:58px;
}

/* LOGO COLOR FIX */
.logo span{
  font-size:18px;
  font-weight:800;
  background: linear-gradient(135deg,#1976d2,#0d47a1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.brand-title{
  font-size:22px;
  font-weight:800;
  background: linear-gradient(
    90deg,
    #0d47a1,
    #1976d2,
    #00bcd4,
    #4fc3f7
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing:0.5px;
}

.logo-text span{
  font-weight:800;
  font-size:18px;
}

.logo-text .g{ color:#2ecc71; }   /* green */
.logo-text .p{ color:#e91e63; }   /* pink */
.logo-text .b{ color:#1976d2; }   /* blue */
.logo-text .o{ color:#ff9800; }   /* orange */
/* HAMBURGER */
.menu-toggle{
  display:none;
  font-size:26px;
  color:#0d47a1;
  cursor:pointer;
}

/* MOBILE NAV */
@media(max-width:900px){

  .menu-toggle{
    display:block;
  }

  nav{
    position:absolute;
    top:80px;
    left:0;
    width:100%;
    background:white;
    flex-direction:column;
    gap:15px;
    padding:20px;
    display:none;
    box-shadow:0 10px 30px rgba(0,0,0,0.1);
  }

  nav.active{
    display:flex;
  }

  nav a{
    padding:10px 0;
    text-align:center;
  }
}

nav{
  display:flex;
  align-items:center;
  gap:28px;
}

nav a{
  text-decoration:none;
  color:#333;
  font-weight:500;
  transition:0.3s;
}

nav a:hover{
  color:var(--secondary);
}

.btn{
  padding:14px 28px;
  border:none;
  border-radius:50px;

  background:linear-gradient(135deg,var(--secondary),var(--primary));

  color:white;
  text-decoration:none;
  font-weight:600;
  cursor:pointer;

  transition:0.4s;
}

.btn:hover{
  transform:translateY(-4px);
  box-shadow:0 12px 25px rgba(25,118,210,0.25);
}
/* HAMBURGER */

.hero{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  gap:70px;

  padding:140px 8% 80px;
}

.hero-text h1{
  font-size:64px;
  line-height:1.15;
  color:var(--primary);
  margin-bottom:25px;
}

.hero-text p{
  font-size:18px;
  color:#555;
  line-height:1.9;
  margin-bottom:35px;
}

.hero-buttons{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
}

.hero-image{
  position:relative;
}

.hero-image img{
  width:100%;
  border-radius:30px;
  box-shadow:var(--shadow);

  animation:float 4s ease-in-out infinite;
}

@keyframes float{
  50%{
    transform:translateY(-12px);
  }
}
/* =========================
   BASE BUTTON STYLE
========================= */

/* SECTION */

section{
  padding:110px 8%;
}

.section-title{
  text-align:center;
  margin-bottom:70px;
}

.section-title h2{

  font-size: clamp(28px, 5vw, 48px);
  color:var(--primary);
  margin-bottom:15px;
}

.section-title p{
  max-width:700px;
  margin:auto;
  color:#666;
  line-height:1.8;
}
.services-slider{
  display:flex;
  gap:25px;
  overflow-x:auto;
  padding:20px 10px;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
}

/* hide scrollbar */
.services-slider::-webkit-scrollbar{
  display:none;
}

.service-slide{
  min-width:320px;
  max-width:320px;
  background:white;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,0.08);
  scroll-snap-align:start;
  flex-shrink:0;
  transition:0.3s;
}

.service-slide:hover{
  transform:translateY(-8px);
}

.service-slide img{
  width:100%;
  height:200px;
  object-fit:cover;
  display:block;
}

.slide-content{
  padding:20px;
  text-align:left;
}

.slide-content i{
  font-size:24px;
  color:#1976d2;
  margin-bottom:10px;
  display:inline-block;
}

.slide-content h3{
  margin:10px 0;
  color:#0d47a1;
}

.slide-content p{
  color:#555;
  line-height:1.6;
  font-size:14px;
}
/* GLASS CARD */

.glass{
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.4);
}

/* SERVICES */

.slideshow-container{
  position:relative;
  width:100%;
  height:520px;
  overflow:hidden;
  border-radius:20px;
}

.slide{
  display:none;
  width:100%;
  height:100%;
  position:relative;
}

.slide img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* overlay text */
.caption{
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  padding:35px;
  background:linear-gradient(to top, rgba(0,0,0,0.75), transparent);
  color:white;
}

.caption h2{
  font-size:32px;
  margin-bottom:10px;
}

.caption p{
  font-size:16px;
  line-height:1.6;
  max-width:700px;
}

/* arrows */
.prev, .next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(0,0,0,0.4);
  color:white;
  font-size:30px;
  padding:12px 16px;
  border-radius:50%;
  cursor:pointer;
}

.prev{left:15px;}
.next{right:15px;}

.prev:hover, .next:hover{
  background:rgba(0,0,0,0.7);
}

/* fade animation */
.fade{
  animation:fadeEffect 1s ease-in-out;
}

@keyframes fadeEffect{
  from{opacity:0.4;}
  to{opacity:1;}
}

/* MOBILE */
@media(max-width:768px){
  .slideshow-container{
    height:360px;
  }

  .caption h2{
    font-size:22px;
  }

  .caption p{
    font-size:14px;
  }
}

/* =========================
   BASE BUTTON STYLE
========================= */

.btn,
button,
input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:14px 26px;
  border-radius:50px;

  font-weight:600;
  font-size:15px;

  text-decoration:none;
  border:none;
  cursor:pointer;

  color:#fff;

  background:linear-gradient(135deg,#1976d2,#0d47a1);

  box-shadow:0 8px 20px rgba(25,118,210,0.25);

  transition:all 0.3s ease;

  white-space:nowrap; /* prevents text breaking */
}

/* hover effect */
.btn:hover,
button:hover,
input[type="submit"]:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 25px rgba(25,118,210,0.35);
}

/* active click */
.btn:active{
  transform:scale(0.96);
}

/* =========================
   SECONDARY BUTTON
========================= */

.btn-outline{
  background:transparent;
  color:#1976d2;
  border:2px solid #1976d2;
  box-shadow:none;
}

.btn-outline:hover{
  background:#1976d2;
  color:#fff;
}

/* =========================
   MOBILE FIX
========================= */

@media(max-width:768px){

  .btn,
  button{
    width:100%;      /* full width on mobile */
    padding:13px;
    font-size:14px;
  }
}

/* =========================
   CREDENTIALS (DESKTOP BASE)
========================= */

#credentials{
  padding:80px 6%;
}

.credentials-bg{
  background:linear-gradient(rgba(7,28,56,0.85),rgba(7,28,56,0.85)),
  url('bg.jpg') center/cover no-repeat;

  border-radius:20px;
  padding:60px 5%;
  color:#fff;
}

.credentials-content{
  max-width:1100px;
  margin:auto;
  text-align:center;
}

.credentials-content h2{
  font-size:32px;
  margin-bottom:15px;
}

.credentials-content p{
  max-width:800px;
  margin:0 auto 35px;
  color:#d0d0d0;
  line-height:1.6;
}

/* GRID DESKTOP */
.credentials-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:20px;
}

/* BOX */
.credential-box{
  background:rgba(255,255,255,0.08);
  padding:20px;
  border-radius:15px;
  text-align:center;
}

/* =========================
   MOBILE FIX (IMPORTANT PART)
========================= */

@media(max-width:768px){

  #credentials{
    padding:60px 4%;
  }

  .credentials-bg{
    padding:40px 4%;
    border-radius:16px;
  }

  .credentials-content h2{
    font-size:22px;
  }

  .credentials-content p{
    font-size:13px;
    padding:0 5px;
  }

  /* FORCE SAFE GRID ON PHONE */
  .credentials-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }

  .credential-box{
    padding:16px;
  }

  .credential-box h3{
    font-size:20px;
  }

  .credential-box p{
    font-size:12px;
  }
}

/* SMALL PHONES */
@media(max-width:480px){

  .credentials-grid{
    grid-template-columns:1fr;
  }
}

/* BOOKING */


.booking-section{
  padding:100px 8%;
  background:linear-gradient(135deg,#f4f9ff,#ffffff);
}

.booking-container{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:50px;
  align-items:center;
}

/* LEFT SIDE */
.booking-info h2{
  font-size:42px;
  color:#0d47a1;
  margin-bottom:15px;
}

.booking-info p{
  color:#555;
  line-height:1.8;
  margin-bottom:20px;
}

.booking-info ul{
  list-style:none;
  margin-bottom:25px;
}

.booking-info ul li{
  margin:10px 0;
  color:#333;
}

/* BUTTON */
.book-btn{
  display:inline-block;
  padding:16px 30px;
  background:linear-gradient(135deg,#1976d2,#0d47a1);
  color:white;
  font-weight:600;
  border-radius:40px;
  text-decoration:none;
  transition:0.3s;
  box-shadow:0 10px 25px rgba(25,118,210,0.25);
}

.book-btn:hover{
  transform:translateY(-5px);
}

/* RIGHT CARD */
.booking-card{
  background:white;
  padding:35px;
  border-radius:25px;
  box-shadow:0 15px 40px rgba(0,0,0,0.08);
}

.booking-card h3{
  margin-bottom:20px;
  color:#0d47a1;
}
.booking-card img{
  width:100%;
  height:auto;
  max-height:220px;
  object-fit:cover;

  border-radius:15px;
  margin:15px 0;

  box-shadow:0 10px 25px rgba(0,0,0,0.15);

  transition:0.4s ease;
}

.feature{
  display:flex;
  gap:15px;
  margin-bottom:15px;
  align-items:flex-start;
}

.feature span{
  font-size:20px;
}

/* RESPONSIVE */
@media(max-width:900px){
  .booking-container{
    grid-template-columns:1fr;
  }
}
/* FAQ */

.faq-item{
  background:white;
  margin-bottom:20px;
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.faq-question{
  padding:25px;
  font-weight:600;
  cursor:pointer;
}

.faq-answer{
  padding:0 25px 25px;
  color:#555;
  line-height:1.8;
}

/* FOOTER */


.footer{
  position:relative;
  background:#071c38;
  color:white;
  padding:90px 8% 30px;
  overflow:hidden;
}

/* glowing animated background */
.footer-glow{
  position:absolute;
  width:600px;
  height:600px;
  background:rgba(25,118,210,0.25);
  filter:blur(120px);
  border-radius:50%;
  top:-200px;
  right:-200px;
  animation:floatGlow 8s infinite alternate;
}

@keyframes floatGlow{
  100%{
    transform:translate(-80px,80px);
  }
}

/* layout */
.footer-container{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:40px;
  position:relative;
  z-index:2;
}

/* text box */
.footer-box h3{
  margin-bottom:20px;
  font-size:20px;
  color:#fff;
}

.footer-box p,
.footer-box a{
  color:#cfd8dc;
  line-height:1.9;
  text-decoration:none;
  display:block;
  transition:0.3s;
}

.footer-box a:hover{
  color:#4fc3f7;
  transform:translateX(5px);
}

/* social icons */
.socials{
  display:flex;
  gap:15px;
  margin-top:15px;
}

.socials a{
  width:45px;
  height:45px;
  display:flex;
  justify-content:center;
  align-items:center;
  border-radius:50%;
  background:rgba(255,255,255,0.1);
  color:white;
  font-size:18px;
  transition:0.3s;
  backdrop-filter:blur(10px);
}

.socials a:hover{
  transform:translateY(-5px) scale(1.1);
  background:#1976d2;
}

/* bottom */
.footer-bottom{
  margin-top:60px;
  text-align:center;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.1);
  color:#90a4ae;
  font-size:14px;
}
/* WHATSAPP */

.whatsapp{
  position:fixed;
  right:25px;
  bottom:25px;

  width:70px;
  height:70px;

  border-radius:50%;
  background:#25D366;

  display:flex;
  justify-content:center;
  align-items:center;

  color:white;
  text-decoration:none;

  font-size:32px;

  box-shadow:0 10px 30px rgba(0,0,0,0.2);

  z-index:999;
}

/* MOBILE */

@media(max-width:900px){

  .hero{
    grid-template-columns:1fr;
  }

  .hero-text h1{
    font-size:44px;
  }

  nav{
    display:none;
  }

  section{
    padding:90px 6%;
  }

  .booking{
    padding:35px;
  }

}
