/* VARIABLES */
:root {
  --or:     #f4843a;
  --or-dk:  #e06820;
  --or-lt:  #f9b07a;
  --or-pl:  #fde8d8;
  --tl:     #0f6f78;
  --tl-md:  #1b7f8a;
  --tl-lt:  #e0f4f6;
  --dk:     #0d1f3c;
  --dk2:    #162d50;
  --cream:  #f7f2e8;
  --cream2: #ede5d0;
  --mt:     #6b7a8d;
  --wh:     #ffffff;
  --sh-sm:  0 2px 12px rgba(13,31,60,.08);
  --sh-md:  0 8px 30px rgba(13,31,60,.13);
  --sh-lg:  0 20px 60px rgba(13,31,60,.19);
  --r:      18px;
  --ok:     #2e9960;
  --err:    #e05252;
}

/* RESET & BASE */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--cream);
  color: var(--dk);
  overflow-x: hidden;
  width: 100%;
  position: relative;
}

/* BACKGROUND LAYERS */
body::before {
  content: '';
  position: fixed; inset: 0;
  pointer-events: none; z-index: 0;
  background:
    radial-gradient(ellipse 70% 70% at 80% 15%, rgba(244,132,58,.09) 0%, transparent 55%),
    radial-gradient(ellipse 55% 60% at 5%  85%, rgba(15,111,120,.07) 0%, transparent 50%),
    radial-gradient(ellipse 40% 40% at 50% 50%, rgba(244,132,58,.04) 0%, transparent 60%);
}
body::after {
  content: '';
  position: fixed; inset: 0;
  pointer-events: none; z-index: 0;
  opacity: .4;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
}

/* PARTICLE CANVAS */
#pc { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 0; }

/* DECORATIVE RINGS */
.ring {
  position: fixed; border-radius: 50%;
  pointer-events: none; z-index: 0;
  border: 1px solid rgba(244,132,58,.1);
  animation: rp 5s ease-in-out infinite;
}
.r1 { width: 520px; height: 520px; top: -140px; right: -140px; }
.r2 { width: 330px; height: 330px; top: -65px;  right: -65px;  border-color: rgba(244,132,58,.06); animation-delay: 1.2s; }
.r3 { width: 220px; height: 220px; bottom: 80px; left: -60px;  border-color: rgba(15,111,120,.05); animation-delay: 2.5s; }

/* KEYFRAMES */
@keyframes fadeUp    { from { opacity:0; transform:translateY(30px)  } to { opacity:1; transform:translateY(0)  } }
@keyframes fadeRight { from { opacity:0; transform:translateX(44px)  } to { opacity:1; transform:translateX(0)  } }
@keyframes fadeLeft  { from { opacity:0; transform:translateX(-44px) } to { opacity:1; transform:translateX(0)  } }
@keyframes floatY    { 0%,100%{transform:translateY(0)}   50%{transform:translateY(-13px)} }
@keyframes floatChip { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-8px) rotate(2deg)} }
@keyframes pulse     { 0%,100%{box-shadow:0 0 0 0 rgba(244,132,58,.38)} 50%{box-shadow:0 0 0 9px rgba(244,132,58,0)} }
@keyframes pulseTl   { 0%,100%{box-shadow:0 0 0 0 rgba(15,111,120,.38)} 50%{box-shadow:0 0 0 9px rgba(15,111,120,0)} }
@keyframes rp        { 0%,100%{transform:scale(1);opacity:.12} 50%{transform:scale(1.05);opacity:.22} }
@keyframes uline     { to { transform: scaleX(1) } }
@keyframes shimmer   { 0%{background-position:-200% center} 100%{background-position:200% center} }
@keyframes bShimmer  { 0%{left:-100%} 40%{left:140%} 100%{left:140%} }
@keyframes blob      { 0%,100%{border-radius:30% 70% 70% 30%/30% 30% 70% 70%} 50%{border-radius:70% 30% 30% 70%/70% 70% 30% 30%} }
@keyframes spinRing  { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes countIn   { from{opacity:0;transform:scale(.7)} to{opacity:1;transform:scale(1)} }
@keyframes slideTab  { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }
@keyframes glowPulse { 0%,100%{filter:drop-shadow(0 0 0px rgba(244,132,58,0))} 50%{filter:drop-shadow(0 0 18px rgba(244,132,58,.35))} }
@keyframes imgReveal { from{opacity:0;transform:scale(1.06)} to{opacity:1;transform:scale(1)} }
@keyframes shakeErr  { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-6px)} 60%{transform:translateX(6px)} }
@keyframes waPulse   {
  0%,100% { box-shadow: 0 6px 24px rgba(37,211,102,.45), 0 0 0 0 rgba(37,211,102,.4); }
  50%     { box-shadow: 0 6px 24px rgba(37,211,102,.45), 0 0 0 12px rgba(37,211,102,0); }
}
@keyframes waEntrance { from{opacity:0;transform:scale(.5) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }

/* SCROLL REVEAL */
.rv { opacity:0; transform:translateY(30px); transition:opacity .72s ease, transform .72s ease; }
.rv.fl { transform:translateX(-34px); }
.rv.fr { transform:translateX(34px); }
.rv.in { opacity:1; transform:translate(0,0) !important; }
.d1{transition-delay:.1s} .d2{transition-delay:.2s} .d3{transition-delay:.3s}
.d4{transition-delay:.4s} .d5{transition-delay:.5s} .d6{transition-delay:.6s}

/* LAYOUT UTILITIES */
.wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 60px);
  width: 100%;
  position: relative;
  z-index: 1;
}
section { padding: 20px 0 30px;margin-top: 30px; position: relative; overflow: hidden; }
.sec-alt { background: var(--wh); }

/* TAG BADGE */
.tag {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--or-pl); border: 1px solid rgba(244,132,58,.28);
  color: var(--or-dk); font-size: .71rem; font-weight: 600;
  letter-spacing: 1.8px; text-transform: uppercase;
  padding: 6px 14px; border-radius: 50px; margin-bottom: 18px;
  position: relative; overflow: hidden;
}
.tag::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  background-size:200% 100%; animation:shimmer 2.8s 1s ease infinite;
}
.tdot { width:6px; height:6px; background:var(--or); border-radius:50%; animation:pulse 2s infinite; }

/* SECTION HEADING */
.st {
  font-family: 'Playfair Display', serif;
  font-size: clamp(2rem, 4.5vw, 3rem);
  color: var(--dk); line-height: 1.14;
  margin-bottom: 14px; letter-spacing: -.3px;
}
.st em, .acc-txt {
  color: var(--or); font-style: italic;
  position: relative; display: inline;
}
.st em::after, .acc-txt::after {
  content: ''; position: absolute;
  bottom: 2px; left: 0; width: 100%; height: 3px;
  background: linear-gradient(90deg, var(--or), var(--or-lt));
  border-radius: 2px; transform: scaleX(0); transform-origin: left;
  animation: uline .7s .65s ease forwards;
}
.sl { color: var(--tl); font-size: 1rem; font-weight: 400; line-height: 1.74; max-width: 580px; }
.divider {
  width: 52px; height: 4px;
  background: linear-gradient(90deg, var(--or), var(--or-lt));
  border-radius: 4px; margin: 14px 0 22px;
}

/*  BUTTONS */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 32px; border-radius: 50px;
  font-family: 'DM Sans', sans-serif; font-size: .93rem; font-weight: 600;
  cursor: pointer; text-decoration: none; border: none;
  transition: all .3s; position: relative; overflow: hidden;
}
.btn-or {
  background: linear-gradient(135deg, var(--or), var(--or-dk));
  color: var(--wh); box-shadow: 0 6px 22px rgba(244,132,58,.38);
}
.btn-or::before {
  content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-20deg); animation:bShimmer 3s 1.5s ease infinite;
}
.btn-or:hover { transform:translateY(-3px); box-shadow:0 13px 34px rgba(244,132,58,.52); }
.btn-tl {
  background:transparent; color:var(--tl);
  border: 2px solid var(--tl); padding: 13px 30px;
}
.btn-tl:hover { background:var(--tl); color:var(--wh); transform:translateY(-3px); box-shadow:0 8px 24px rgba(15,111,120,.3); }

/* NAVBAR */
.navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(247,242,232,.95);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(244,132,58,.14);
  transition: box-shadow .3s, background .3s;
}
.navbar.scrolled { box-shadow: 0 4px 28px rgba(13,31,60,.1); }
.nav-inner {
  max-width: 1200px; margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 60px);
  height: 78px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px;
}
.nav-logo img {
  height: 80px; width: auto; max-width: 220px; object-fit: contain;
  filter: none;
  transition: transform .3s;
}
.nav-logo img:hover { transform: scale(1.03); animation: glowPulse 1.5s ease infinite; }

.nav-links { display:flex; align-items:center; gap:2px; list-style:none; }
.nav-links a {
  text-decoration:none; color:var(--dk); font-size:.87rem; font-weight:500;
  padding:7px 13px; border-radius:50px; transition:all .25s;
  white-space:nowrap; position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:4px; left:50%; right:50%;
  height:2px; background:var(--or); border-radius:2px;
  transition:left .25s ease, right .25s ease;
}
.nav-links a:hover::after, .nav-links a.active::after { left:14px; right:14px; }
.nav-links a:hover { color:var(--tl); }
.nav-links a.active { color:var(--tl); font-weight:600; }

.nav-enq {
  background: linear-gradient(135deg, var(--or), var(--or-dk)) !important;
  color: var(--wh) !important; padding: 10px 20px !important;
  border-radius: 50px !important; font-weight: 600 !important;
  box-shadow: 0 4px 16px rgba(244,132,58,.38) !important;
  overflow: hidden; position: relative;
}
.nav-enq::before {
  content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-20deg); animation:bShimmer 3s 1s ease infinite;
}
.nav-enq::after { display:none !important; }
.nav-enq:hover { transform:translateY(-2px) !important; box-shadow:0 8px 24px rgba(244,132,58,.52) !important; }

/* hamburger */
.ham {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; padding:8px; background:none; border:none;
}
.ham span { display:block; width:24px; height:2.5px; background:var(--dk); border-radius:4px; transition:all .3s; }
.ham.open span:nth-child(1) { transform:translateY(7.5px) rotate(45deg); }
.ham.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.ham.open span:nth-child(3) { transform:translateY(-7.5px) rotate(-45deg); }

.mob-menu {
  display:none; flex-direction:column;
  background:rgba(247,242,232,.98); backdrop-filter:blur(18px);
  border-top:1px solid rgba(244,132,58,.14);
  padding:14px clamp(16px,4vw,60px) 18px; gap:4px;
}
.mob-menu.open { display:flex; }
.mob-menu a {
  text-decoration:none; color:var(--dk); font-size:.93rem;
  font-weight:500; padding:12px 16px; border-radius:12px; transition:all .25s;
}
.mob-menu a:hover { background:var(--tl-lt); color:var(--tl); }
.mob-enq {
  background: linear-gradient(135deg, var(--or), var(--or-dk)) !important;
  color: var(--wh) !important; font-weight: 600 !important;
  text-align: center; margin-top: 8px; border-radius: 12px !important;
  box-shadow: 0 4px 14px rgba(244,132,58,.35);
}

/* HERO */
#home { min-height: 100vh; padding-top: 78px; display: flex; align-items: center; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:56px; }

.hero-badge {
  display:inline-flex; align-items:center; gap:7px;
  background:var(--tl-lt); border:1px solid rgba(15,111,120,.25);
  color:var(--tl); font-size:.71rem; font-weight:600;
  letter-spacing:1.8px; text-transform:uppercase;
  padding:6px 14px; border-radius:50px; margin-bottom:22px;
  animation:fadeUp .8s .1s ease both; position:relative; overflow:hidden;
}
.hero-badge::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
  background-size:200% 100%; animation:shimmer 3s 2s ease infinite;
}
.hbdot { width:6px; height:6px; background:var(--tl); border-radius:50%; animation:pulseTl 2s infinite; }

.hero-h1 {
  font-family:'Playfair Display',serif;
  font-size:clamp(2.7rem,5vw,4rem);
  color:var(--dk); line-height:1.12; letter-spacing:-.5px;
  margin-bottom:4px; animation:fadeUp 1s .15s ease both;
}
.hero-h1 .block { display:block; }
.hero-h1 .acc { color:var(--or); font-style:italic; display:inline-block; position:relative; }
.hero-h1 .acc::after {
  content:''; position:absolute; bottom:3px; left:0; width:100%; height:3px;
  background:linear-gradient(90deg,var(--or),var(--or-lt)); border-radius:2px;
  transform:scaleX(0); transform-origin:left; animation:uline .7s 1s ease forwards;
}
.hero-sub {
  color:var(--tl); font-size:1.04rem; font-weight:400; line-height:1.72;
  max-width:450px; margin:20px 0 34px; animation:fadeUp 1s .22s ease both;
}
.hero-btns { display:flex; gap:14px; flex-wrap:wrap; animation:fadeUp 1s .32s ease both; }
.hero-stats { display:flex; gap:30px; margin-top:42px; animation:fadeUp 1s .44s ease both; flex-wrap:wrap; }
.stat-num { font-family:'Playfair Display',serif; font-size:1.85rem; font-weight:700; color:var(--dk); line-height:1; animation:countIn .8s .6s ease both; }
.stat-num span { color:var(--or); }
.stat-lbl { font-size:.76rem; color:var(--mt); font-weight:500; margin-top:4px; letter-spacing:.4px; }

.hero-right { position:relative; display:flex; justify-content:center; align-items:center; animation:fadeRight 1.1s .3s ease both; }
.hero-glow { position:absolute; width:440px; height:440px; background:radial-gradient(ellipse,rgba(244,132,58,.13) 0%,transparent 70%); border-radius:50%; pointer-events:none; animation:rp 4s ease-in-out infinite; }
.hero-ring  { position:absolute; width:380px; height:380px; border-radius:50%; border:1px dashed rgba(244,132,58,.2);  animation:spinRing 20s linear infinite; }
.hero-ring2 { position:absolute; width:280px; height:280px; border-radius:50%; border:1px dashed rgba(15,111,120,.18); animation:spinRing 14s linear infinite reverse; }
.hero-img {
  max-width: 480px; width: 100%; position:relative; z-index:1;
  border-radius: 28px;
  box-shadow: 0 24px 60px rgba(13,31,60,.22), 0 0 0 6px rgba(244,132,58,.12);
  animation: floatY 6s ease-in-out infinite, imgReveal 1.2s .3s ease both;
  object-fit: cover; aspect-ratio: 4/5;
}

/* GALLERY STRIP */
#gallery { padding: 60px 0; background: var(--wh); overflow: hidden; }
.gallery-track {
  display: flex; gap: 20px; animation: galleryScroll 30s linear infinite;
  width: max-content;
}
.gallery-track:hover { animation-play-state: paused; }
@keyframes galleryScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.gallery-img {
  width: 280px; height: 190px; object-fit: cover;
  border-radius: 18px; flex-shrink: 0;
  box-shadow: var(--sh-sm);
  transition: transform .35s cubic-bezier(.34,1.2,.64,1), box-shadow .35s;
}
.gallery-img:hover { transform: scale(1.05) translateY(-4px); box-shadow: var(--sh-md); }

/* VISION & MISSION */
#vision { background: var(--wh); }
#vision::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 55% 50% at 90% 50%,rgba(244,132,58,.05) 0%,transparent 55%);
}
.vm-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.vm-card {
  background:var(--cream); border-radius:24px; padding:40px 36px;
  border-left:5px solid var(--or); box-shadow:var(--sh-sm);
  transition:all .38s cubic-bezier(.34,1.2,.64,1);
  position:relative; overflow:hidden;
}
.vm-card::before {
  content:''; position:absolute; top:-70px; right:-70px;
  width:200px; height:200px; border-radius:50%; pointer-events:none;
  background:radial-gradient(ellipse,rgba(244,132,58,.08),transparent 70%);
}
.vm-card:nth-child(2) { border-left-color:var(--tl); }
.vm-card:nth-child(2)::before { background:radial-gradient(ellipse,rgba(15,111,120,.08),transparent 70%); }
.vm-card:hover { transform:translateY(-7px); box-shadow:var(--sh-md); }
.vm-icon {
  width:58px; height:58px; border-radius:16px; background:var(--or-pl);
  display:flex; align-items:center; justify-content:center;
  font-size:1.65rem; margin-bottom:20px;
  box-shadow:0 4px 14px rgba(244,132,58,.2); transition:transform .3s;
}
.vm-card:nth-child(2) .vm-icon { background:var(--tl-lt); box-shadow:0 4px 14px rgba(15,111,120,.18); }
.vm-card:hover .vm-icon { transform:scale(1.1) rotate(-5deg); }
.vm-card h3 { font-family:'Playfair Display',serif; font-size:1.55rem; color:var(--dk); margin-bottom:12px; }
.vm-card > p { color:var(--tl); font-size:.94rem; line-height:1.74; }
.mission-list { list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:11px; }
.mission-list li {
  display:flex; align-items:flex-start; gap:10px;
  color:var(--tl); font-size:.92rem; line-height:1.62;
  padding:10px 14px; background:rgba(15,111,120,.05); border-radius:10px;
  transition:background .25s;
}
.mission-list li:hover { background:rgba(15,111,120,.1); }
.mission-list li::before { content:'✦'; color:var(--or); font-size:.7rem; margin-top:3px; flex-shrink:0; }

/* ABOUT */
#about { background:var(--cream); }
#about::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 8% 50%,rgba(15,111,120,.05) 0%,transparent 60%);
}
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }

.about-mosaic { position:relative; }
.mosaic-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows: 220px 220px;
  gap: 14px;
  position: relative; z-index:1;
}
.mosaic-img {
  width:100%; height:100%; object-fit:cover; border-radius:20px;
  box-shadow:var(--sh-md); transition:transform .35s cubic-bezier(.34,1.2,.64,1);
}
.mosaic-img:hover { transform:scale(1.04) translateY(-4px); }
.mosaic-big { grid-row: span 2; height:100%; }

.about-text p { color:var(--tl); font-size:.95rem; line-height:1.76; margin-bottom:14px; }
.about-text p:last-child { margin-bottom:0; }
.partner-pills { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.ppill {
  background:var(--wh); border:1px solid rgba(15,111,120,.2);
  color:var(--tl); font-size:.77rem; font-weight:600;
  padding:7px 15px; border-radius:50px;
  box-shadow:var(--sh-sm); transition:all .28s; cursor:default;
}
.ppill:hover { background:var(--tl); color:var(--wh); transform:translateY(-2px); box-shadow:0 6px 18px rgba(15,111,120,.32); }

/* COURSES */
#courses { background:var(--wh); }
#courses::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 65% 55% at 88% 20%,rgba(244,132,58,.06) 0%,transparent 55%);
}
.courses-hd { text-align:center; margin-bottom:48px; }
.courses-hd .sl { margin:0 auto; }

.ctabs {
  display:flex; gap:12px; justify-content:center;
  flex-wrap:wrap; margin-bottom:44px; position:relative;
}
.ctabs::after {
  content:''; position:absolute; bottom:-8px; left:50%; transform:translateX(-50%);
  width:80px; height:2px; background:linear-gradient(90deg,var(--or),var(--or-lt)); border-radius:2px;
}
.ctab {
  background:transparent; border:2px solid rgba(15,111,120,.22);
  color:var(--tl); font-family:'DM Sans',sans-serif; font-size:.88rem; font-weight:600;
  padding:11px 26px; border-radius:50px; cursor:pointer; transition:all .3s;
  display:flex; align-items:center; gap:9px; position:relative; overflow:hidden;
}
.ctab::before {
  content:''; position:absolute; inset:0; background:var(--tl-lt);
  transform:scaleX(0); transform-origin:left; transition:transform .3s ease; z-index:-1;
}
.ctab:hover::before { transform:scaleX(1); }
.ctab:hover { border-color:var(--tl); }
.ctab.active {
  background:linear-gradient(135deg,var(--tl),var(--tl-md));
  color:var(--wh); border-color:transparent; box-shadow:0 6px 20px rgba(15,111,120,.32);
}
.ctab-ico { font-size:1rem; }

.cpanel { display:none; animation:slideTab .45s ease; }
.cpanel.active { display:block; }

.cat-banner {
  background:var(--cream); border-radius:24px; padding:34px 38px;
  margin-bottom:40px; border-left:5px solid var(--tl);
  display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center;
  position:relative; overflow:hidden; box-shadow:var(--sh-sm);
}
.cat-banner::before {
  content:''; position:absolute; top:-40px; right:-40px;
  width:160px; height:160px; border-radius:50%;
  background:radial-gradient(ellipse,rgba(15,111,120,.1),transparent 70%);
  pointer-events:none;
}
.cat-banner p { color:var(--tl); font-size:.94rem; line-height:1.74; max-width:640px; }
.cat-badge {
  color:var(--wh); border-radius:18px; padding:18px 22px; text-align:center;
  min-width:115px; box-shadow:var(--sh-md);
}
.cat-badge-ico { font-size:2rem; display:block; margin-bottom:5px; }
.cat-badge-txt { font-size:.7rem; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; opacity:.92; }

.pgrid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pcard {
  background:var(--cream); border-radius:22px; overflow:hidden;
  border:1px solid rgba(244,132,58,.1); box-shadow:var(--sh-sm);
  transition:all .38s cubic-bezier(.34,1.2,.64,1); position:relative;
  display:flex; flex-direction:column;
}
.pcard:hover { transform:translateY(-8px); box-shadow:var(--sh-lg); border-color:rgba(244,132,58,.3); }
.pcard-top { height:160px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.pcard-top img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.pcard:hover .pcard-top img { transform:scale(1.06); }
.pcard-top-overlay {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(13,31,60,.35);
}
.pcard-ico { font-size:2.8rem; filter:drop-shadow(0 3px 10px rgba(0,0,0,.2)); }
.pcard-verified {
  position:absolute; top:11px; right:11px;
  background:rgba(255,255,255,.22); backdrop-filter:blur(8px);
  color:var(--wh); font-size:.62rem; font-weight:600; letter-spacing:1.4px;
  text-transform:uppercase; padding:4px 10px; border-radius:50px;
  border:1px solid rgba(255,255,255,.28);
}
.pcard-body { padding:24px; display:flex; flex-direction:column; flex:1; }
.pcard-name { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--dk); margin-bottom:8px; font-weight:700; }
.pcard-sub { font-size:.8rem; color:var(--mt); line-height:1.57; margin-bottom:14px; }
.prog-list { list-style:none; display:flex; flex-direction:column; gap:6px; margin-bottom:14px; flex-grow:1; }
.prog-list li {
  font-size:.8rem; color:var(--dk); display:flex; align-items:flex-start; gap:7px;
  padding:6px 10px; border-radius:8px; transition:background .2s;
}
.prog-list li:hover { background:rgba(15,111,120,.06); }
.prog-list li::before { content:'›'; color:var(--or); font-weight:700; font-size:1rem; flex-shrink:0; }
.btags { display:flex; flex-wrap:wrap; gap:6px; padding-top:14px; border-top:1px solid rgba(244,132,58,.1); margin-top:auto; }
.btag {
  background:var(--or-pl); color:var(--or-dk); font-size:.64rem;
  font-weight:600; letter-spacing:1px; text-transform:uppercase;
  padding:4px 10px; border-radius:50px;
}
.pcard-btn {
  margin-top:10px; padding-top:16px; width:100%; padding:11px;
  background:transparent; border:2px solid var(--tl); color:var(--tl);
  border-radius:12px; font-family:'DM Sans',sans-serif; font-size:.86rem; font-weight:600;
  cursor:pointer; transition:all .3s; position:relative; overflow:hidden;
}
.pcard-btn::before {
  content:''; position:absolute; inset:0; background:var(--tl);
  transform:scaleX(0); transform-origin:left; transition:transform .3s; z-index:0;
}
.pcard-btn:hover::before { transform:scaleX(1); }
.pcard-btn span { position:relative; z-index:1; transition:color .3s; }
.pcard-btn:hover span { color:var(--wh); }
.pcard-btn:hover { box-shadow:0 6px 18px rgba(15,111,120,.32); transform:translateY(-2px); }

.why-hd { font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--dk); margin-bottom:28px; margin-top:48px; }
.why-hd em { color:var(--or); font-style:italic; }
.why-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; }
.why-card {
  background:var(--cream); border-radius:18px; padding:26px 18px;
  text-align:center; border-top:4px solid var(--or);
  box-shadow:var(--sh-sm); transition:all .32s cubic-bezier(.34,1.2,.64,1);
}
.why-card:nth-child(2){border-top-color:var(--tl)}
.why-card:nth-child(3){border-top-color:var(--dk2)}
.why-card:nth-child(4){border-top-color:var(--tl-md)}
.why-card:nth-child(5){border-top-color:var(--or-dk)}
.why-card:hover { transform:translateY(-6px); box-shadow:var(--sh-md); }
.why-ico { font-size:2.1rem; margin-bottom:11px; display:block; transition:transform .3s; }
.why-card:hover .why-ico { transform:scale(1.2) rotate(-8deg); }
.why-card h4 { font-weight:600; color:var(--dk); font-size:.9rem; margin-bottom:7px; }
.why-card p  { font-size:.79rem; color:var(--mt); line-height:1.55; }

/* CONTACT */
#contact { background:var(--cream); }
#contact::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 55% 60% at 85% 55%,rgba(15,111,120,.06) 0%,transparent 55%);
}
.contact-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:start; }
.cinfo { display:flex; flex-direction:column; gap:14px; }
.ci {
  display:flex; align-items:flex-start; gap:14px; padding:20px;
  background:var(--wh); border-radius:16px; border-left:4px solid var(--or);
  box-shadow:var(--sh-sm); transition:all .3s;
}
.ci:hover { transform:translateX(6px); box-shadow:var(--sh-md); }
.ci:nth-child(2){border-left-color:var(--tl)}
.ci:nth-child(3){border-left-color:var(--dk2)}
.ci:nth-child(4){border-left-color:var(--tl-md)}
.ci-ico {
  width:44px; height:44px; border-radius:12px; background:var(--or-pl);
  display:flex; align-items:center; justify-content:center;
  font-size:1.25rem; flex-shrink:0; transition:transform .3s;
}
.ci:hover .ci-ico { transform:scale(1.12) rotate(-6deg); }
.ci:nth-child(2) .ci-ico{background:var(--tl-lt)}
.ci:nth-child(3) .ci-ico{background:rgba(22,45,80,.07)}
.ci:nth-child(4) .ci-ico{background:var(--tl-lt)}
.ci h4 { font-weight:600; color:var(--dk); font-size:.91rem; margin-bottom:4px; }
.ci p, .ci a { font-size:.83rem; color:var(--mt); line-height:1.55; text-decoration:none; }
.ci a:hover { color:var(--or); }
.map-placeholder {
  border-radius:16px; overflow:hidden; box-shadow:var(--sh-sm);
  height:180px; background:linear-gradient(135deg,var(--tl),var(--tl-md));
  display:flex; align-items:center; justify-content:center;
  color:var(--wh); gap:12px; font-weight:600; cursor:pointer;
  transition:transform .3s; position:relative;
}
.map-placeholder::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0px,rgba(255,255,255,.04) 1px,transparent 1px,transparent 8px);
}
.map-placeholder:hover { transform:scale(1.02); }
.map-ico { font-size:2.2rem; animation:floatY 3s ease-in-out infinite; }

/* form */
.cform-wrap {
  background:var(--wh); border-radius:24px; padding:38px 34px;
  border:1px solid rgba(244,132,58,.12); box-shadow:var(--sh-sm);
}
.cform-wrap h3 { font-family:'Playfair Display',serif; font-size:1.45rem; color:var(--dk); margin-bottom:6px; }
.cform-wrap > p { font-size:.86rem; color:var(--mt); margin-bottom:26px; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:0; }
.fg { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.fg label { font-size:.79rem; font-weight:600; color:var(--dk); letter-spacing:.3px; }
.req-star { color:var(--err); font-size:.8rem; }
.fg input, .fg select, .fg textarea {
  padding:12px 15px; border:1.5px solid #e5dece; border-radius:12px;
  font-family:'DM Sans',sans-serif; font-size:.91rem; color:var(--dk);
  background:var(--cream); outline:none; width:100%;
  transition:border-color .25s, box-shadow .25s, background .25s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus {
  border-color:var(--tl); background:var(--wh);
  box-shadow:0 0 0 4px rgba(15,111,120,.1);
}
.fg input::placeholder, .fg textarea::placeholder { color:#bbb; }
.fg textarea { resize:vertical; min-height:105px; }

/* validation states */
.fg input.inp-error,
.fg select.inp-error,
.fg textarea.inp-error {
  border-color: var(--err) !important;
  background: #fff5f5 !important;
  box-shadow: 0 0 0 4px rgba(224,82,82,.1) !important;
  animation: shakeErr 0.35s ease;
}
.fg input.inp-ok,
.fg select.inp-ok,
.fg textarea.inp-ok {
  border-color: var(--ok) !important;
  background: #f3fff8 !important;
  box-shadow: 0 0 0 3px rgba(46,153,96,.1) !important;
}
.field-err {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: .74rem;
  color: var(--err);
  font-weight: 500;
  margin-top: 3px;
  padding: 5px 10px;
  background: rgba(224,82,82,.07);
  border-radius: 8px;
  border-left: 3px solid var(--err);
  animation: fadeUp 0.22s ease;
}

.fsub {
  width:100%; padding:15px;
  background:linear-gradient(135deg,var(--or),var(--or-dk));
  color:var(--wh); border:none; border-radius:14px;
  font-family:'DM Sans',sans-serif; font-size:.94rem; font-weight:600;
  cursor:pointer; transition:all .3s;
  box-shadow:0 6px 20px rgba(244,132,58,.35); position:relative; overflow:hidden;
}
.fsub::before {
  content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-20deg); animation:bShimmer 3s 2s ease infinite;
}
.fsub:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(244,132,58,.48); }
.fsuccess { display:none; text-align:center; padding:20px; animation:fadeUp .5s ease; }
.fsuccess.show { display:block; }
.fsuccess-ico { font-size:2.6rem; margin-bottom:10px; }
.fsuccess h4 { font-family:'Playfair Display',serif; color:var(--dk); font-size:1.25rem; margin-bottom:7px; }
.fsuccess p  { color:var(--mt); font-size:.86rem; }

/* FOOTER */
.site-footer {
  background:var(--dk); color:rgba(255,255,255,.68);
  padding:15px 0 0; position:relative; overflow:hidden;
}
.logo-footer{
  width: 125px;
  height: auto;
}
.site-footer::before {
  content:''; position:absolute; top:-100px; right:-100px;
  width:360px; height:360px; border-radius:50%;
  background:radial-gradient(ellipse,rgba(244,132,58,.06),transparent 70%);
  pointer-events:none;
}
.fg-grid {
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:44px;
  padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.07);
}
.fb img { height:54px; width:auto; filter:brightness(0) invert(1) opacity(.9); margin-bottom:16px; display:block; }
.fb p  { font-size:.84rem; line-height:1.72; margin-bottom:20px; }
.socials { display:flex; gap:10px; }
.soc {
  width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.11);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .3s; color:rgba(255,255,255,.65);
  text-decoration:none; font-size:.84rem; font-weight:600;
}
.soc:hover { background:var(--or); border-color:var(--or); color:var(--wh); transform:translateY(-3px); }
.fc h4 {
  font-family:'Playfair Display',serif; color:var(--wh); font-size:.97rem;
  margin-bottom:16px; padding-bottom:10px; position:relative;
}
.fc h4::after { content:''; position:absolute; bottom:0; left:0; width:28px; height:2px; background:var(--or); border-radius:2px; }
.fc ul { list-style:none; display:flex; flex-direction:column; gap:9px; }
.fc ul li a { text-decoration:none; color:rgba(255,255,255,.6); font-size:.83rem; transition:all .2s; display:flex; align-items:center; gap:6px; }
.fc ul li a::before { content:'›'; color:var(--or); font-size:1rem; }
.fc ul li a:hover { color:var(--or); padding-left:4px; }
.footer-bottom {
  padding:22px 0; display:flex; justify-content:space-between;
  align-items:center; font-size:.8rem; flex-wrap:wrap; gap:10px;
}
.footer-bottom a { color:rgba(255,255,255,.45); text-decoration:none; transition:color .2s; }
.footer-bottom a:hover { color:var(--or); }

/* POPUP */
.overlay {
  position:fixed; inset:0; background:rgba(13,31,60,.65);
  backdrop-filter:blur(6px); z-index:2000;
  display:flex; align-items:center; justify-content:center;
  padding:20px; opacity:0; pointer-events:none; transition:opacity .35s ease;
}
.overlay.active { opacity:1; pointer-events:all; }
.popup {
  background:var(--wh); border-radius:28px; padding:46px 42px;
  width:100%; max-width:440px; position:relative;
  box-shadow:0 40px 100px rgba(13,31,60,.28);
  transform:translateY(36px) scale(.95);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1);
  overflow:hidden; text-align:center;
}
.popup::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--or-dk),var(--or),var(--or-lt));
}
.overlay.active .popup { transform:translateY(0) scale(1); }
.pop-x {
  position:absolute; top:18px; right:20px; background:#f4f0e8; border:none;
  width:32px; height:32px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--mt); font-size:.9rem; transition:all .2s;
}
.pop-x:hover { background:var(--cream2); color:var(--dk); transform:rotate(90deg); }
.pop-ico { font-size:2.8rem; margin-bottom:14px; }
.popup h2 { font-family:'Playfair Display',serif; color:var(--dk); font-size:1.72rem; margin-bottom:8px; }
.popup > p { color:var(--mt); font-size:.88rem; line-height:1.65; margin-bottom:24px; }
.pform { display:flex; flex-direction:column; gap:12px; }
.piw { position:relative; }
.piw svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); color:#ccc; pointer-events:none; transition:color .2s; }
.piw:focus-within svg { color:var(--tl); }
.pform input, .pform select {
  width:100%; padding:13px 16px 13px 40px; border:1.5px solid #e8e0cf;
  border-radius:14px; font-size:.91rem; font-family:'DM Sans',sans-serif;
  color:var(--dk); background:#faf7f1; outline:none;
  transition:border-color .25s, box-shadow .25s, background .25s;
}
.pform input:focus, .pform select:focus {
  border-color:var(--tl); background:var(--wh);
  box-shadow:0 0 0 4px rgba(15,111,120,.12);
}
.pform input::placeholder { color:#bfb9ad; }
.pop-btn {
  background:linear-gradient(135deg,var(--or),var(--or-dk)); color:var(--wh);
  border:none; padding:15px; border-radius:14px;
  font-size:.93rem; font-family:'DM Sans',sans-serif; font-weight:600;
  cursor:pointer; transition:all .3s;
  box-shadow:0 6px 20px rgba(244,132,58,.38); margin-top:4px;
}
.pop-btn:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(244,132,58,.48); }
.psuccess { display:none; animation:fadeUp .5s ease; }
.psuccess.show { display:block; }
.pcheck {
  width:68px; height:68px;
  background:linear-gradient(135deg,#4caf7d,#2e9960);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin:0 auto 16px; box-shadow:0 8px 24px rgba(78,175,122,.35); font-size:2rem;
}
.psuccess h3 { font-family:'Playfair Display',serif; color:var(--dk); font-size:1.4rem; margin-bottom:8px; }
.psuccess p  { color:var(--mt); font-size:.87rem; }

/* SCROLL TO TOP */
.s2t {
  position:fixed; bottom:28px; right:28px;
  width:48px; height:48px;
  background:linear-gradient(135deg,var(--or),var(--or-dk));
  color:var(--wh); border:none; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:1.1rem;
  box-shadow:0 6px 20px rgba(244,132,58,.42);
  transition:all .3s; opacity:0; pointer-events:none; z-index:500;
}
.s2t.vis { opacity:1; pointer-events:all; }
.s2t:hover { transform:translateY(-4px) scale(1.1); }

/* WHATSAPP FLOAT */
.whatsapp-float {
  position: fixed;
  bottom: 88px;
  right: 28px;
  z-index: 499;
  width: 58px;
  height: 58px;
  background: linear-gradient(135deg, #25D366, #128C7E);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 24px rgba(37,211,102,.5);
  text-decoration: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease, transform .35s cubic-bezier(.34,1.4,.64,1), box-shadow .35s;
  animation: waPulse 2.8s ease-in-out infinite;
}
.whatsapp-float.vis {
  opacity: 1;
  pointer-events: all;
  animation: waEntrance .5s cubic-bezier(.34,1.56,.64,1) both, waPulse 2.8s 0.5s ease-in-out infinite;
}
.whatsapp-float:hover {
  transform: scale(1.12) translateY(-4px);
  box-shadow: 0 14px 36px rgba(37,211,102,.65);
}
.wa-tooltip {
  position: absolute;
  right: 70px;
  top: 50%;
  transform: translateY(-50%) translateX(8px);
  background: #075E54;
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: .76rem;
  font-weight: 600;
  padding: 7px 13px;
  border-radius: 50px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: all 0.25s ease;
  box-shadow: 0 4px 16px rgba(7,94,84,.35);
  letter-spacing: .2px;
}
.wa-tooltip::after {
  content: '';
  position: absolute;
  right: -7px;
  top: 50%;
  transform: translateY(-50%);
  border: 7px solid transparent;
  border-left-color: #075E54;
  border-right: none;
}
.whatsapp-float:hover .wa-tooltip {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

/* RESPONSIVE */
@media(max-width:1100px) {
  .why-grid { grid-template-columns:repeat(3,1fr); }
  .pgrid { grid-template-columns:repeat(2,1fr); }
  .fg-grid { grid-template-columns:1fr 1fr; gap:32px; }
}
@media(max-width:820px) {
  .r1 { width:260px; height:260px; top:-65px; right:-65px; }
  .r2,.r3 { display:none; }
  section { padding:78px 0 58px; }
  .ham { display:flex; } .nav-links { display:none; }
  .nav-inner { height:66px; } .nav-logo img { height:50px; }
  .hero-grid { grid-template-columns:1fr; text-align:center; gap:36px; }
  .hero-right { order:-1; } .hero-img { max-width:340px; }
  .hero-glow { width:280px; height:280px; }
  .hero-ring { width:280px; height:280px; } .hero-ring2 { width:210px; height:210px; }
  .hero-sub, .sl { margin-left:auto; margin-right:auto; }
  .hero-btns, .hero-stats { justify-content:center; }
  .vm-grid, .about-grid, .contact-grid { grid-template-columns:1fr; gap:32px; }
  .about-mosaic { order:2; }
  .mosaic-grid { grid-template-rows: 180px 180px; }
  .pgrid { grid-template-columns:1fr; max-width:420px; margin:0 auto; }
  .cat-banner { grid-template-columns:1fr; text-align:center; }
  .cat-badge { margin:0 auto; max-width:120px; }
  .why-grid { grid-template-columns:repeat(2,1fr); }
  .fg-grid { grid-template-columns:1fr; gap:28px; }
  .footer-bottom { flex-direction:column; text-align:center; }
  .gallery-img { width:220px; height:150px; }
  /* WhatsApp on mobile sits just above scroll-to-top */
  .whatsapp-float { bottom:88px; right:20px; width:52px; height:52px; }
  .s2t { bottom:28px; right:20px; }
}
@media(max-width:480px) {
  .nav-inner { height:60px; } .nav-logo img { height:75px; }
  .hero-h1 { font-size:2.1rem; }
  .hero-btns { flex-direction:column; align-items:center; }
  .btn { width:100%; max-width:280px; justify-content:center; }
  .hero-stats { gap:18px; } .stat-num { font-size:1.6rem; }
  .frow { grid-template-columns:1fr; }
  .cform-wrap { padding:26px 18px; }
  .popup { padding:34px 20px; }
  .why-grid { grid-template-columns:1fr 1fr; }
  .ctabs { gap:8px; } .ctab { padding:9px 16px; font-size:.82rem; }
  /* hide tooltip on very small screens */
  .wa-tooltip { display:none; }
}
