/* ========================================================================
   De Ideaz — Enhancements Layer
   Loaded after all original theme CSS. Fixes:
   - Broken icon fonts (CDN fallback baked in via <link> in <head>)
   - Logo visibility
   - Mobile responsiveness (true hamburger nav, fluid cards)
   - Polished UI/UX (typography, motion, depth, hover states)
   ======================================================================== */

:root {
  --brand: #0facee;
  --brand-dark: #0c8fc6;
  --brand-deep: #0a6f99;
  --ink: #1a1a1a;
  --ink-soft: #2a2f3a;
  --muted: #5d6470;
  --muted-soft: #8a93a3;
  --line: #e5e8ee;
  --bg: #ffffff;
  --bg-soft: #f7f9fc;
  --bg-band: #0d1116;
  --warm: #fff8ee;
  --shadow-sm: 0 2px 8px rgba(20, 30, 50, .06);
  --shadow-md: 0 10px 30px rgba(20, 30, 50, .08);
  --shadow-lg: 0 24px 60px rgba(20, 30, 50, .14);
  --radius: 14px;
  --radius-sm: 10px;
  --radius-lg: 22px;
  --display: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --body: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --tx-fast: .2s cubic-bezier(.4, 0, .2, 1);
  --tx-base: .35s cubic-bezier(.4, 0, .2, 1);
  --tx-slow: .6s cubic-bezier(.4, 0, .2, 1);
}

/* --------- Reset / global polish ---------- */
* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.home, body {
  font-family: var(--body);
  color: var(--ink-soft);
  background: var(--bg);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; }

body p,
body p > span {
  font-family: var(--body) !important;
  color: var(--muted) !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
}

a { color: var(--brand); transition: color var(--tx-fast); }
a:hover { color: var(--brand-deep); text-decoration: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--display);
  color: var(--ink);
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.15;
}

h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }

p { font-size: 16px; }

/* --------- Header / Top bar ---------- */
.header-top {
  background: var(--bg-band);
  color: rgba(255, 255, 255, .82);
  padding: 8px 0;
  font-size: 13px;
  letter-spacing: .02em;
}
.header-top .flat-infomation li,
.header-top .flat-infomation li a { color: rgba(255, 255, 255, .82) !important; }
.header-top .flat-infomation li a:hover { color: var(--brand) !important; }
.header-top .flat-infomation li { padding-left: 0; padding-right: 22px; }
.header-top .flat-infomation li::before { content: none !important; }
.header-top .flat-infomation li a { line-height: 28px; }
.header-top .flat-social { float: right; margin: 0; }
.header-top .flat-social li { display: inline-block; margin-left: 8px; }
.header-top .flat-social li a {
  display: inline-flex !important; width: 28px; height: 28px;
  align-items: center; justify-content: center;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  color: rgba(255, 255, 255, .8);
  font-size: 13px;
  line-height: 1 !important;
  padding: 0 !important;
  position: relative;
  transition: all var(--tx-fast);
}
.header-top .flat-social li a .fa {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  transform: translate(-50%, -50%);
}
.header-top .flat-social li a .fa::before {
  width: 100%;
  height: 100%;
}
.fa {
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  font-size: 1em;
  line-height: 1;
}
.fa::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  background: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.fa-facebook::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 8h-2V6.7c0-.6.4-.7.7-.7H15V3h-2.4C9.9 3 8.5 4.4 8.5 6.5V8H6v3h2.5v10H13V11h2.4L16 8z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 8h-2V6.7c0-.6.4-.7.7-.7H15V3h-2.4C9.9 3 8.5 4.4 8.5 6.5V8H6v3h2.5v10H13V11h2.4L16 8z'/%3E%3C/svg%3E");
}
.fa-twitter::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 3h4.6l5.1 6.8L18.2 3H21l-7 8.7L21.5 21h-4.6l-5.5-7.3L5.6 21H2.8l7.2-9L3 3zm3.1 2 11.8 14h1.5L7.6 5H6.1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 3h4.6l5.1 6.8L18.2 3H21l-7 8.7L21.5 21h-4.6l-5.5-7.3L5.6 21H2.8l7.2-9L3 3zm3.1 2 11.8 14h1.5L7.6 5H6.1z'/%3E%3C/svg%3E");
}
.fa-linkedin::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.2 8.7h3.4V20H5.2V8.7zM6.9 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm4.2 4.7h3.2v1.5h.1c.5-.9 1.6-1.8 3.3-1.8 3.5 0 4.1 2.3 4.1 5.2V20h-3.4v-5.7c0-1.4 0-3.1-1.9-3.1s-2.2 1.5-2.2 3V20h-3.4V8.7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.2 8.7h3.4V20H5.2V8.7zM6.9 4a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm4.2 4.7h3.2v1.5h.1c.5-.9 1.6-1.8 3.3-1.8 3.5 0 4.1 2.3 4.1 5.2V20h-3.4v-5.7c0-1.4 0-3.1-1.9-3.1s-2.2 1.5-2.2 3V20h-3.4V8.7z'/%3E%3C/svg%3E");
}
.fa-youtube-play::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6 7.3s-.2-1.5-.8-2.1c-.8-.8-1.7-.8-2.1-.9C15.8 4 12 4 12 4s-3.8 0-6.7.3c-.4.1-1.3.1-2.1.9-.6.6-.8 2.1-.8 2.1S2 9.1 2 10.9v1.7c0 1.8.4 3.6.4 3.6s.2 1.5.8 2.1c.8.8 1.9.8 2.4.9 1.7.2 6.4.3 6.4.3s3.8 0 6.7-.3c.4-.1 1.3-.1 2.1-.9.6-.6.8-2.1.8-2.1s.4-1.8.4-3.6v-1.7c0-1.8-.4-3.6-.4-3.6zM10 15.4V8.8l6 3.3-6 3.3z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.6 7.3s-.2-1.5-.8-2.1c-.8-.8-1.7-.8-2.1-.9C15.8 4 12 4 12 4s-3.8 0-6.7.3c-.4.1-1.3.1-2.1.9-.6.6-.8 2.1-.8 2.1S2 9.1 2 10.9v1.7c0 1.8.4 3.6.4 3.6s.2 1.5.8 2.1c.8.8 1.9.8 2.4.9 1.7.2 6.4.3 6.4.3s3.8 0 6.7-.3c.4-.1 1.3-.1 2.1-.9.6-.6.8-2.1.8-2.1s.4-1.8.4-3.6v-1.7c0-1.8-.4-3.6-.4-3.6zM10 15.4V8.8l6 3.3-6 3.3z'/%3E%3C/svg%3E");
}
.fa-instagram::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 2h9A5.5 5.5 0 0 1 22 7.5v9a5.5 5.5 0 0 1-5.5 5.5h-9A5.5 5.5 0 0 1 2 16.5v-9A5.5 5.5 0 0 1 7.5 2zm0 2A3.5 3.5 0 0 0 4 7.5v9A3.5 3.5 0 0 0 7.5 20h9a3.5 3.5 0 0 0 3.5-3.5v-9A3.5 3.5 0 0 0 16.5 4h-9zM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2.1a2.9 2.9 0 1 0 0 5.8 2.9 2.9 0 0 0 0-5.8zM17.2 6.3a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 2h9A5.5 5.5 0 0 1 22 7.5v9a5.5 5.5 0 0 1-5.5 5.5h-9A5.5 5.5 0 0 1 2 16.5v-9A5.5 5.5 0 0 1 7.5 2zm0 2A3.5 3.5 0 0 0 4 7.5v9A3.5 3.5 0 0 0 7.5 20h9a3.5 3.5 0 0 0 3.5-3.5v-9A3.5 3.5 0 0 0 16.5 4h-9zM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10zm0 2.1a2.9 2.9 0 1 0 0 5.8 2.9 2.9 0 0 0 0-5.8zM17.2 6.3a1.2 1.2 0 1 1 0 2.4 1.2 1.2 0 0 1 0-2.4z'/%3E%3C/svg%3E");
}
.fa-ticket::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3a3 3 0 0 0 0 6v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a3 3 0 0 0 0-6V6zm7 1v10h2V7h-2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v3a3 3 0 0 0 0 6v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-3a3 3 0 0 0 0-6V6zm7 1v10h2V7h-2z'/%3E%3C/svg%3E");
}
.fa-chevron-up::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 7 8 8-2.2 2.2L12 11.4l-5.8 5.8L4 15l8-8z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m12 7 8 8-2.2 2.2L12 11.4l-5.8 5.8L4 15l8-8z'/%3E%3C/svg%3E");
}
.fa-close::before,
.fa-times::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5.6 4.2 6.4 6.4 6.4-6.4 1.4 1.4-6.4 6.4 6.4 6.4-1.4 1.4-6.4-6.4-6.4 6.4-1.4-1.4 6.4-6.4-6.4-6.4 1.4-1.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m5.6 4.2 6.4 6.4 6.4-6.4 1.4 1.4-6.4 6.4 6.4 6.4-1.4 1.4-6.4-6.4-6.4 6.4-1.4-1.4 6.4-6.4-6.4-6.4 1.4-1.4z'/%3E%3C/svg%3E");
}
.header-top .flat-social li a:hover {
  background: var(--brand); border-color: var(--brand); color: #fff; transform: translateY(-2px);
}

/* Logo + main nav */
.header {
  background: #fff;
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 1000;
  transition: box-shadow var(--tx-fast);
}
.header.is-scrolled { box-shadow: var(--shadow-sm); }
.header .col-lg-12,
.header .col-md-12,
.header .col-sm-12,
.header .col-xs-12 {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

#logo, .logo {
  display: inline-block;
  padding: 12px 0;
  float: left;
  flex: 0 0 auto;
}
#logo a, .logo a {
  display: inline-block;
  width: 160px;
  height: 42px;
  background: url('../images/logo123.png') center / contain no-repeat;
}
#logo img, .logo img {
  display: block !important;
  max-height: 46px;
  width: auto;
  visibility: visible !important;
  opacity: 0 !important;
}

/* Nav */
#mainnav .menu {
  margin: 0; padding: 0; list-style: none;
  display: flex; flex-wrap: wrap; align-items: center;
}
#mainnav .menu > li { position: relative; }
#mainnav .menu > li > a {
  display: block;
  padding: 22px 14px;
  color: var(--ink);
  font-weight: 500;
  font-size: 14px;
  line-height: 1.2 !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-family: var(--body);
  transition: color var(--tx-fast);
}
#mainnav .menu > li > a:hover,
#mainnav .menu > li.active > a { color: var(--brand); }
#mainnav .menu > li > a::after {
  content: ''; display: block;
  height: 2px; width: 0; background: var(--brand);
  transition: width var(--tx-base);
  margin-top: 6px;
}
#mainnav .menu > li:hover > a::after,
#mainnav .menu > li.active > a::after { width: 22px; }

/* Sub-menu (dropdown) */
#mainnav .sub-menu {
  position: absolute; top: 100%; left: 0;
  min-width: 220px;
  background: #fff;
  list-style: none; margin: 0; padding: 8px 0;
  box-shadow: var(--shadow-md);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  border-top: 2px solid var(--brand);
  opacity: 0; visibility: hidden;
  transform: translateY(8px);
  transition: all var(--tx-base);
}
#mainnav .menu > li:hover .sub-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
#mainnav .sub-menu li a {
  display: block; padding: 10px 18px; color: var(--ink-soft);
  font-size: 13px; transition: all var(--tx-fast);
}
#mainnav .sub-menu li a:hover { background: var(--bg-soft); color: var(--brand); padding-left: 24px; }

.nav-wrap { float: right; flex: 1 1 auto; display: flex; justify-content: flex-end; }

/* Mobile hamburger */
.btn-menu {
  display: none;
  width: 44px; height: 44px;
  position: relative;
  cursor: pointer;
  margin: 14px 0;
  border-radius: var(--radius-sm);
  background: transparent;
  border: 1px solid var(--line);
}
.btn-menu span,
.btn-menu span::before,
.btn-menu span::after {
  display: block;
  width: 22px; height: 2px;
  background: var(--ink);
  position: absolute;
  left: 50%; transform: translateX(-50%);
  border-radius: 2px;
  transition: transform var(--tx-base), top var(--tx-base), background var(--tx-fast);
}
.btn-menu span { top: 50%; margin-top: -1px; text-indent: -9999px; overflow: hidden; }
.btn-menu span::before { content: ''; top: -7px; }
.btn-menu span::after  { content: ''; top: 7px; }
.btn-menu.is-open span { background: transparent; }
.btn-menu.is-open span::before { top: 0; transform: translateX(-50%) rotate(45deg); background: var(--brand); }
.btn-menu.is-open span::after  { top: 0; transform: translateX(-50%) rotate(-45deg); background: var(--brand); }

@media (max-width: 991px) {
  .header .col-lg-12,
  .header .col-md-12,
  .header .col-sm-12,
  .header .col-xs-12 {
    flex-wrap: wrap;
  }
  .btn-menu { display: block; float: right; flex: 0 0 44px; }
  .nav-wrap { display: block; clear: both; width: 100%; flex: 0 0 100%; }
  #mainnav,
  #mainnav-mobi {
    display: none; width: 100%;
    border-top: 1px solid var(--line);
    background: #fff;
    margin: 0; padding: 6px 0 18px;
    position: static;
    box-shadow: var(--shadow-sm);
  }
  #mainnav.is-open,
  #mainnav-mobi.is-open { display: block; }
  #mainnav .menu,
  #mainnav-mobi .menu { display: block; }
  #mainnav .menu > li,
  #mainnav-mobi .menu > li { display: block; border-top: 0; }
  #mainnav .menu > li > a,
  #mainnav-mobi .menu > li > a {
    height: auto;
    line-height: 1.25 !important;
    padding: 14px 18px;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    font-family: var(--body);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
  }
  #mainnav .menu > li > a::after,
  #mainnav-mobi .menu > li > a::after { display: none; }
  #mainnav .sub-menu,
  #mainnav-mobi .sub-menu {
    position: static;
    opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border-top: none; border-left: 2px solid var(--brand);
    margin: 0 0 0 12px;
    display: none;
    background: var(--bg-soft);
  }
  #mainnav .menu > li.is-open .sub-menu,
  #mainnav-mobi .menu > li.is-open .sub-menu { display: block; }
  #mainnav-mobi .btn-submenu {
    position: absolute;
    top: 6px;
    right: 10px;
    width: 36px;
    height: 36px;
  }
  #mainnav-mobi .btn-submenu::before,
  #mainnav-mobi .btn-submenu::after {
    content: '';
    position: absolute;
    background: var(--brand);
    border-radius: 2px;
    left: 12px;
    right: 12px;
    top: 17px;
    height: 2px;
  }
  #mainnav-mobi .btn-submenu::after {
    transform: rotate(90deg);
    transition: transform var(--tx-fast);
  }
  #mainnav-mobi .btn-submenu.active::after { transform: rotate(0deg); }
  .header-top .flat-social { float: none; text-align: center; margin-top: 8px; }
  .header-top .flat-infomation { text-align: center; margin: 0; padding: 0; }
  .header-top .flat-infomation li { display: block; margin: 4px 0; }
}

/* --------- Hero ---------- */
.tp-banner {
  position: relative;
  min-height: 620px;
  background:
    radial-gradient(circle at 18% 28%, rgba(15, 172, 238, .22), transparent 52%),
    radial-gradient(circle at 82% 72%, rgba(255, 198, 120, .14), transparent 55%),
    linear-gradient(135deg, #0a1422 0%, #15263d 55%, #0a1828 100%);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  padding: 80px 0;
  text-align: center;
}
.tp-banner.hero-image-only {
  min-height: 0;
  height: auto;
  aspect-ratio: 1347 / 467;
  background: url('../images/hero-namaste-bharat.jpeg') center / cover no-repeat;
  padding: 0;
  align-items: stretch;
  justify-content: stretch;
}
.tp-banner.hero-image-only::before,
.tp-banner.hero-image-only .hero-inner,
.tp-banner.hero-image-only .scroll-down {
  display: none !important;
}
.tp-banner::before {
  content: ''; position: absolute; inset: 0;
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px);
  pointer-events: none; z-index: 1;
}
.hero-inner {
  position: relative; z-index: 2;
  width: 92%; max-width: 920px;
  color: #fff;
  animation: heroFadeUp 1s cubic-bezier(.4, 0, .2, 1) both;
}
@keyframes heroFadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow {
  display: inline-block;
  color: var(--brand);
  letter-spacing: .35em; font-size: 12px; font-weight: 500;
  text-transform: uppercase;
  margin-bottom: 22px;
  padding: 6px 14px;
  border: 1px solid rgba(15, 172, 238, .35);
  border-radius: 999px;
  background: rgba(15, 172, 238, .08);
}
.hero-headline {
  font-family: var(--display);
  font-size: clamp(2.2rem, 5.6vw, 4.6rem);
  color: #fff;
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -.015em;
  margin: 0 0 18px;
  text-shadow: 0 6px 30px rgba(0, 0, 0, .35);
}
.hero-sub {
  font-size: clamp(15px, 1.7vw, 18px);
  color: rgba(255, 255, 255, .82) !important;
  max-width: 660px;
  margin: 0 auto 32px;
  line-height: 1.7;
}
.hero-cta { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.hero-cta .btn-default { background: rgba(255, 255, 255, .08); color: #fff; border-color: rgba(255, 255, 255, .25); }
.hero-cta .btn-default:hover { background: rgba(255, 255, 255, .14); }
@media (max-width: 767px) {
  .tp-banner { min-height: 520px; padding: 60px 0; }
  .tp-banner.hero-image-only {
    min-height: 0;
    aspect-ratio: 1347 / 467;
    padding: 0;
    background-size: cover;
  }
  .hero-cta { gap: 10px; }
}
.scroll-down {
  position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%);
  z-index: 10;
}
.scroll-down::before { content: none !important; }
.scroll-down a {
  display: inline-flex; width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35);
  color: #fff; font-size: 18px;
  animation: scrollPulse 2.4s ease-in-out infinite;
}
.scroll-down .fa-angle-down {
  width: 11px;
  height: 11px;
  background: transparent;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-3px);
}
.scroll-down .fa-angle-down::before { content: ""; display: none; }
@keyframes scrollPulse {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(8px); opacity: .55; }
}

/* --------- Page title (parallax inner banner) ---------- */
.page-title, .page-title.parallax {
  position: relative;
  padding: 110px 0 90px !important;
  background: linear-gradient(135deg, #0a1422 0%, #15263d 60%, #0a1828 100%) !important;
  background-size: cover !important;
  background-position: center !important;
  color: #fff;
  overflow: hidden;
}
.page-title::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10, 20, 34, .55), rgba(10, 20, 34, .85));
  z-index: 1;
}
.page-title .container, .page-title > * { position: relative; z-index: 2; }
.page-title-heading h1 {
  color: #fff; font-size: clamp(2rem, 4.4vw, 3.2rem);
  margin: 0; font-weight: 600;
}
.breadcrumbs ul { list-style: none; padding: 0; margin: 14px 0 0; }
.breadcrumbs li { display: inline-block; color: rgba(255, 255, 255, .75); font-size: 13px; letter-spacing: .04em; }
.breadcrumbs li + li::before { content: '/'; padding: 0 10px; opacity: .5; }
.breadcrumbs a { color: rgba(255, 255, 255, .9); }

/* --------- Section spacing & headings ---------- */
section { padding: 70px 0; }
.flat-row-title { margin-bottom: 36px; }
.flat-row-title.center { text-align: center; }
.flat-row-title h2 { margin: 0; }
.flat-row-title h2::after {
  content: ''; display: block;
  width: 56px; height: 3px; background: var(--brand);
  margin: 16px auto 0; border-radius: 3px;
}
.flat-row-title.left h2::after,
.flat-row-title.style1 h2::after { margin-left: 0; margin-right: 0; }

/* --------- Cards / portfolio items ---------- */
.portfolio-item {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  background: #fff;
  margin-bottom: 30px;
  transition: transform var(--tx-base), box-shadow var(--tx-base);
}
.portfolio-item:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.portfolio-item a { display: block; color: inherit; }
.portfolioImageHeight {
  height: 260px;
  background-size: cover !important;
  background-position: center !important;
  background-color: var(--bg-soft);
  transition: transform var(--tx-slow);
}
.portfolio-item:hover .portfolioImageHeight { transform: scale(1.06); }
.portfolio-content {
  padding: 22px 22px 26px;
  background: linear-gradient(180deg, #ffffff, #fbfcfe);
}
.portfolio-content h3 {
  margin: 0 0 8px;
  color: var(--ink);
  font-family: var(--display);
}
.portfolio-content .text-white,
.portfolio-content span { color: var(--muted) !important; font-size: 14px; }

/* --------- About section ---------- */
.flat-about-Padding, .flat-about, .flat-about.style1 { padding: 80px 0; }
.flat-about-Padding .text { padding-left: 10px; }
.flat-about-Padding iframe {
  border-radius: var(--radius-lg); box-shadow: var(--shadow-md);
}
.flat-about-Padding .content-text p {
  color: var(--muted); font-size: 16px;
  margin-bottom: 16px;
}

/* --------- Buttons ---------- */
.btn, .btn-primary, .btn-default, button[type="submit"], .btnReadMoreColor {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 26px;
  border-radius: 999px;
  border: none;
  font-family: var(--body);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: .03em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--tx-base);
}
.btn-primary, button[type="submit"], .btnReadMoreColor {
  background: var(--brand); color: #fff;
  box-shadow: 0 8px 20px rgba(15, 172, 238, .28);
}
.btn-primary:hover, button[type="submit"]:hover, .btnReadMoreColor:hover {
  background: var(--brand-deep); color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(15, 172, 238, .35);
}
.btn-default {
  background: #fff; color: var(--ink);
  border: 1px solid var(--line);
}
.btn-default:hover { background: var(--bg-soft); }

/* --------- Forms ---------- */
.form-control, input[type="text"], input[type="email"], input[type="tel"],
textarea, select {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font-family: var(--body);
  font-size: 14px;
  color: var(--ink-soft);
  background: #fff;
  transition: border-color var(--tx-fast), box-shadow var(--tx-fast);
  margin-bottom: 14px;
}
.form-control:focus,
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 4px rgba(15, 172, 238, .14);
}
textarea.form-control { min-height: 130px; resize: vertical; }
label { font-weight: 500; color: var(--ink-soft); margin-bottom: 6px; display: inline-block; font-size: 13px; }

/* --------- Footer ---------- */
footer.style2, footer {
  background: var(--bg-band);
  color: rgba(255, 255, 255, .7);
  padding: 70px 0 40px;
}
footer .widget-footer { margin-bottom: 30px; }
footer h3.widget-title, footer h4.widget-title {
  color: #fff; font-family: var(--display);
  font-size: 18px; margin: 0 0 18px;
  letter-spacing: .02em; text-transform: none;
  font-weight: 600;
}
footer h3.widget-title::after, footer h4.widget-title::after {
  content: ''; display: block;
  width: 30px; height: 2px; background: var(--brand);
  margin-top: 10px;
}
footer .text-about p { color: rgba(255, 255, 255, .7); font-size: 14px; line-height: 1.7; }
footer ul { list-style: none; padding: 0; margin: 0; }
footer ul li { padding: 5px 0; font-size: 14px; }
footer a, footer .footeraHref { color: rgba(255, 255, 255, .8); }
footer a:hover, footer .footeraHref:hover { color: var(--brand); }
footer .one-half { width: 50%; float: left; }
footer .footer-info li.address p { color: rgba(255, 255, 255, .7); margin: 0; line-height: 1.6; }
footer .logo-ft img { max-height: 38px; margin-bottom: 14px; }

footer .widget-quicklink .one-half li a::before,
footer .widget-contact .footer-info li::before {
  content: '' !important;
  display: inline-block;
  width: 14px;
  height: 14px;
  background: currentColor;
  font-family: inherit !important;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
footer .widget-quicklink .one-half li a::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m9 5 7 7-7 7-1.8-1.8 5.2-5.2-5.2-5.2L9 5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m9 5 7 7-7 7-1.8-1.8 5.2-5.2-5.2-5.2L9 5z'/%3E%3C/svg%3E");
}
footer .widget-contact .footer-info li::before {
  color: var(--brand);
}
footer .widget-contact .footer-info li.address::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5.2-7 13-7 13S5 14.2 5 9a7 7 0 0 1 7-7zm0 4.5A2.5 2.5 0 1 0 12 11a2.5 2.5 0 0 0 0-4.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5.2-7 13-7 13S5 14.2 5 9a7 7 0 0 1 7-7zm0 4.5A2.5 2.5 0 1 0 12 11a2.5 2.5 0 0 0 0-4.5z'/%3E%3C/svg%3E");
}
footer .widget-contact .footer-info li.email::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18v14H3V5zm2 3.2V17h14V8.2l-7 5-7-5zm1.1-1.2 5.9 4.2L17.9 7H6.1z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18v14H3V5zm2 3.2V17h14V8.2l-7 5-7-5zm1.1-1.2 5.9 4.2L17.9 7H6.1z'/%3E%3C/svg%3E");
}
footer .widget-contact .footer-info li.phone::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 2.8 9.8 6 8 8.1c.7 1.4 1.7 2.8 2.9 4 1.2 1.2 2.6 2.2 4 2.9l2.1-1.8 3.2 3.2-1.5 3.5c-.3.7-1 1.1-1.8 1A16.8 16.8 0 0 1 3.1 7.1c-.1-.8.3-1.5 1-1.8l2.5-2.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 2.8 9.8 6 8 8.1c.7 1.4 1.7 2.8 2.9 4 1.2 1.2 2.6 2.2 4 2.9l2.1-1.8 3.2 3.2-1.5 3.5c-.3.7-1 1.1-1.8 1A16.8 16.8 0 0 1 3.1 7.1c-.1-.8.3-1.5 1-1.8l2.5-2.5z'/%3E%3C/svg%3E");
}

.footer-bottom.style2, .footer-bottom {
  background: #06090d;
  color: rgba(255, 255, 255, .55);
  padding: 18px 0;
  font-size: 13px;
}
.footer-bottom a { color: rgba(255, 255, 255, .75); }
.footer-bottom a:hover { color: var(--brand); }
.footer-bottom .copyright { display: inline-block; margin-right: 18px; }

/* --------- Go-to-top ---------- */
.button-go-top { position: fixed; right: 22px; bottom: 22px; z-index: 999; }
.button-go-top .go-top {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  background: var(--brand); color: #fff; border-radius: 50%;
  box-shadow: var(--shadow-md);
  opacity: 0; transform: translateY(10px);
  transition: opacity var(--tx-base), transform var(--tx-base), background var(--tx-fast);
  pointer-events: none;
}
.button-go-top.is-visible .go-top { opacity: 1; transform: translateY(0); pointer-events: auto; }
.button-go-top .go-top:hover { background: var(--brand-deep); }

/* --------- Local icon/layout fixes for legacy font icons ---------- */
.bookButtonPosition {
  top: 0;
  right: 15px;
  z-index: 3;
}
.bookButtonPosition .btn {
  width: 82px;
  height: 48px;
  min-width: 0;
  padding: 0;
  justify-content: center;
  border-radius: 0 0 0 24px;
  color: #fff;
}
.bookButtonPosition .fa-ticket { width: 20px; height: 20px; }
.imagebox .pull-right {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.imagebox .aBorderRemoveColor {
  width: 42px;
  height: 42px;
  padding: 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0 !important;
  border-left: 1px solid var(--line) !important;
  color: var(--brand);
  background: transparent;
  box-shadow: none;
}
.imagebox .aBorderRemoveColor:hover {
  color: var(--brand-deep);
  background: var(--bg-soft);
  transform: none;
  box-shadow: none;
}
.imagebox .aBorderRemoveColor .fa {
  width: 16px;
  height: 16px;
}
.accordion-toggle .toggle-title::before {
  content: '';
  width: 12px;
  height: 12px;
  top: 50%;
  right: 30px;
  margin-top: -6px;
  color: inherit;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  font-family: inherit;
}
.accordion-toggle .toggle-title.active::before {
  content: '';
  margin-top: -2px;
  transform: rotate(225deg);
}
.tab-planning ul.tab-list li::before,
.accordion.style1 .accordion-toggle .toggle-title::before {
  content: '' !important;
  width: 9px;
  height: 9px;
  top: 50%;
  right: 28px;
  margin-top: -5px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  background: transparent;
  font-family: inherit !important;
  transform: rotate(-45deg);
}
.tab-planning ul.tab-list li.active::before,
.tab-planning ul.tab-list li:hover::before {
  color: #fff;
}
.accordion.style1 .accordion-toggle .toggle-title.active::before {
  transform: rotate(45deg);
}
.breadcrumbs ul li a::after { content: none !important; }
.about-video .flat-video-fancybox a::before {
  content: '' !important;
  width: 0;
  height: 0;
  border-top: 13px solid transparent;
  border-bottom: 13px solid transparent;
  border-left: 18px solid #fff;
  background: transparent;
  font-family: inherit;
}
.about-content .check-box ul.one-half li::before,
.box-text .list li::before {
  content: '' !important;
  width: 7px;
  height: 12px;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  background: transparent;
  font-family: inherit;
  transform: rotate(45deg);
  top: 1px;
}
#mainnav .menu > li > a.icon::before {
  content: '';
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  top: 50%;
  margin-top: -5px;
  font-family: inherit;
}
.portfolio-list .portfolio-item a.portfolio-link::after,
.team-member .avatar a::after,
.news-button a::before,
.box-download .box-content .download-info::before,
.show-search > button::before {
  content: '' !important;
  background: currentColor;
  font-family: inherit;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.portfolio-list .portfolio-item a.portfolio-link::after {
  width: 22px;
  height: 22px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6 13.4a1.5 1.5 0 0 1 0-2.1l3.5-3.5a3 3 0 1 1 4.2 4.2l-3.5 3.5a1.5 1.5 0 0 1-2.1-2.1l3.5-3.5a.8.8 0 1 0-1.1-1.1l-3.5 3.5a1.5 1.5 0 0 1-1 .4zm2.8-2.8a1.5 1.5 0 0 1 0 2.1L9.9 16.2a.8.8 0 1 0 1.1 1.1l3.5-3.5a1.5 1.5 0 0 1 2.1 2.1l-3.5 3.5a3 3 0 0 1-4.2-4.2l3.5-3.5a1.5 1.5 0 0 1 1-.4z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.6 13.4a1.5 1.5 0 0 1 0-2.1l3.5-3.5a3 3 0 1 1 4.2 4.2l-3.5 3.5a1.5 1.5 0 0 1-2.1-2.1l3.5-3.5a.8.8 0 1 0-1.1-1.1l-3.5 3.5a1.5 1.5 0 0 1-1 .4zm2.8-2.8a1.5 1.5 0 0 1 0 2.1L9.9 16.2a.8.8 0 1 0 1.1 1.1l3.5-3.5a1.5 1.5 0 0 1 2.1 2.1l-3.5 3.5a3 3 0 0 1-4.2-4.2l3.5-3.5a1.5 1.5 0 0 1 1-.4z'/%3E%3C/svg%3E");
}
.team-member .avatar a::after,
.show-search > button::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 4a6.5 6.5 0 0 1 5.1 10.5l4.5 4.4-1.4 1.4-4.4-4.5A6.5 6.5 0 1 1 10.5 4zm0 2a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 4a6.5 6.5 0 0 1 5.1 10.5l4.5 4.4-1.4 1.4-4.4-4.5A6.5 6.5 0 1 1 10.5 4zm0 2a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9z'/%3E%3C/svg%3E");
}
.news-button a::before,
.portfolio-title ul li.tag::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10.6 13.4 4H5v8.4l6.6 6.6a2 2 0 0 0 2.8 0l5.6-5.6a2 2 0 0 0 0-2.8zM8 8.5A1.5 1.5 0 1 1 9.5 10 1.5 1.5 0 0 1 8 8.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10.6 13.4 4H5v8.4l6.6 6.6a2 2 0 0 0 2.8 0l5.6-5.6a2 2 0 0 0 0-2.8zM8 8.5A1.5 1.5 0 1 1 9.5 10 1.5 1.5 0 0 1 8 8.5z'/%3E%3C/svg%3E");
}
.box-download .box-content .download-info::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 4h14v3H5V4zm0 5h14v3H5V9zm0 5h14v3H5v-3zm0 5h10v2H5v-2z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 4h14v3H5V4zm0 5h14v3H5V9zm0 5h14v3H5v-3zm0 5h10v2H5v-2z'/%3E%3C/svg%3E");
}
.portfolio-title ul li::before {
  content: '';
  width: 12px;
  height: 12px;
  background: currentColor;
  font-family: inherit;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2zm11 8H6v10h12V10z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2zm11 8H6v10h12V10z'/%3E%3C/svg%3E");
}
.portfolio-title ul li.tag::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10.6 13.4 4H5v8.4l6.6 6.6a2 2 0 0 0 2.8 0l5.6-5.6a2 2 0 0 0 0-2.8zM8 8.5A1.5 1.5 0 1 1 9.5 10 1.5 1.5 0 0 1 8 8.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 10.6 13.4 4H5v8.4l6.6 6.6a2 2 0 0 0 2.8 0l5.6-5.6a2 2 0 0 0 0-2.8zM8 8.5A1.5 1.5 0 1 1 9.5 10 1.5 1.5 0 0 1 8 8.5z'/%3E%3C/svg%3E");
}
.show-search > button::before {
  width: 15px;
  height: 15px;
}
.flat-pagination.style2 li.prev a::before { content: '<-' !important; font-family: inherit; top: -1px; }
.flat-pagination.style2 li.next a::before { content: '->' !important; font-family: inherit; top: -1px; }
.owl-controls .owl-buttons div::before { content: '<' !important; font-family: inherit; }
.owl-controls .owl-buttons div.owl-next::before { content: '>' !important; font-family: inherit; }
.widget-portfolio ul.portfolio-ft li a::after { content: '+' !important; font-family: inherit; }
article.main-post .featured-post ul.entry-meta li::before,
article.main-post .entry-content .more-link a::before,
.widget-categories li a::before,
article.post-single .flexslider .flex-direction-nav a::before,
article.post-single .entry-content blockquote::before,
.comment-text .comment-metadata a.reply::before,
.owl-theme.owl-carousel-8 .owl-controls .owl-nav div.owl-prev::before,
.owl-theme.owl-carousel-8 .owl-controls .owl-nav div.owl-next::before,
.owl-carousel-10 .owl-controls .owl-nav div.owl-prev::before,
.owl-carousel-10 .owl-controls .owl-nav div.owl-next::before,
.owl-theme.owl-carousel-11 .owl-controls .owl-nav div.owl-next::before,
.owl-theme.owl-carousel-11 .owl-controls .owl-nav div.owl-prev::before,
.owl-carousel-5 .owl-controls .owl-nav div.owl-prev::before,
.owl-carousel-5 .owl-controls .owl-nav div.owl-next::before {
  font-family: inherit !important;
}
article.main-post .featured-post ul.entry-meta li::before,
.widget-categories li a::before {
  content: '';
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
}
article.main-post .entry-content .more-link a::before,
.comment-text .comment-metadata a.reply::before {
  content: '->' !important;
}
article.post-single .flexslider .flex-direction-nav a::before,
.owl-theme.owl-carousel-8 .owl-controls .owl-nav div.owl-prev::before,
.owl-carousel-10 .owl-controls .owl-nav div.owl-prev::before,
.owl-theme.owl-carousel-11 .owl-controls .owl-nav div.owl-prev::before,
.owl-carousel-5 .owl-controls .owl-nav div.owl-prev::before {
  content: '<' !important;
}
article.post-single .flexslider .flex-direction-nav a.flex-next::before,
.owl-theme.owl-carousel-8 .owl-controls .owl-nav div.owl-next::before,
.owl-carousel-10 .owl-controls .owl-nav div.owl-next::before,
.owl-theme.owl-carousel-11 .owl-controls .owl-nav div.owl-next::before,
.owl-carousel-5 .owl-controls .owl-nav div.owl-next::before {
  content: '>' !important;
}
article.post-single .entry-content blockquote::before {
  content: '"' !important;
  font-family: Georgia, serif !important;
}
.contact-form > form::before {
  content: none !important;
}
.flat-old-year ul.list-year li::before,
.flat-old-year ul.list-year li span::before,
.flat-old-year ul.list-year li span.heartbit::after,
.flat-old-year ul.list-year li:hover span.heartbit::before {
  font-family: inherit !important;
}
.flat-old-year ul.list-year li::before,
.flat-old-year ul.list-year li span::before {
  content: '';
  background: var(--brand);
  border-radius: 50%;
}
.box-download .box-content .download-info.address::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5.2-7 13-7 13S5 14.2 5 9a7 7 0 0 1 7-7zm0 4.5A2.5 2.5 0 1 0 12 11a2.5 2.5 0 0 0 0-4.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a7 7 0 0 1 7 7c0 5.2-7 13-7 13S5 14.2 5 9a7 7 0 0 1 7-7zm0 4.5A2.5 2.5 0 1 0 12 11a2.5 2.5 0 0 0 0-4.5z'/%3E%3C/svg%3E");
}
.box-download .box-content .download-info.date::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2zm11 8H6v10h12V10z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 2h2v3h6V2h2v3h3v17H4V5h3V2zm11 8H6v10h12V10z'/%3E%3C/svg%3E");
}
.box-download .box-content .download-info.preview::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 5c5.5 0 9 7 9 7s-3.5 7-9 7-9-7-9-7 3.5-7 9-7zm0 2.5A4.5 4.5 0 1 0 12 16a4.5 4.5 0 0 0 0-8.5zm0 2A2.5 2.5 0 1 1 12 14a2.5 2.5 0 0 1 0-4.5z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 5c5.5 0 9 7 9 7s-3.5 7-9 7-9-7-9-7 3.5-7 9-7zm0 2.5A4.5 4.5 0 1 0 12 16a4.5 4.5 0 0 0 0-8.5zm0 2A2.5 2.5 0 1 1 12 14a2.5 2.5 0 0 1 0-4.5z'/%3E%3C/svg%3E");
}
.box-download .box-content .download-info.clock::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm1 5h-2v6l5 3 1-1.7-4-2.3V7z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 1 1 0 20 10 10 0 0 1 0-20zm1 5h-2v6l5 3 1-1.7-4-2.3V7z'/%3E%3C/svg%3E");
}

/* --------- Preloader ---------- */
.preloader {
  position: fixed; inset: 0;
  background: #fff; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  transition: opacity .5s ease, visibility .5s ease;
}
.preloader.is-hidden { opacity: 0; visibility: hidden; }
.dizzy-gillespie {
  width: 50px; height: 50px;
  border: 3px solid var(--line); border-top-color: var(--brand);
  border-radius: 50%; animation: spin 0.85s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* --------- Reveal animation ---------- */
.reveal {
  opacity: 0; transform: translateY(20px);
  transition: opacity .8s ease, transform .8s cubic-bezier(.4, 0, .2, 1);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* --------- Page-specific tweaks ---------- */
/* Newsroom cards: ensure list items render as cards */
.newsroom-item, .blog-item, article {
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  margin-bottom: 30px;
  transition: transform var(--tx-base), box-shadow var(--tx-base);
}
.newsroom-item:hover, .blog-item:hover, article:hover {
  transform: translateY(-4px); box-shadow: var(--shadow-md);
}

/* Clients page logo grid */
.client-logo, .partner-item, .clients-grid > div {
  background: #fff; padding: 20px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  margin-bottom: 20px;
  display: flex; align-items: center; justify-content: center;
  min-height: 100px;
  transition: all var(--tx-base);
}
.client-logo:hover { border-color: var(--brand); box-shadow: var(--shadow-md); transform: translateY(-3px); }
.client-logo img, .partner-item img { max-height: 60px; width: auto; filter: grayscale(100%); opacity: .75; transition: all var(--tx-base); }
.client-logo:hover img { filter: grayscale(0); opacity: 1; }

/* Contact page polish */
.contact-info-block { margin-bottom: 26px; }
.contact-info-block h4 {
  color: var(--ink); font-family: var(--display);
  font-size: 18px; margin: 0 0 8px;
}
.contact-info-block p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.7; }

/* Image fallback: any broken image gets a gentle placeholder background */
img:not([src]), img[src=""] { display: none !important; }

/* --------- Responsive grid corrections ---------- */
.container-fluid { padding-left: 24px; padding-right: 24px; }
.container { width: 100%; max-width: 1200px; }

@media (max-width: 1199px) { .container { width: 100%; max-width: 960px; } }
@media (max-width: 991px) {
  .container { width: 100%; max-width: 100%; }
  section { padding: 50px 0; }
  .page-title, .page-title.parallax { padding: 80px 0 60px !important; }
  .flat-about-Padding .text { padding-left: 0; margin-top: 30px; }
  footer .widget-footer { margin-bottom: 26px; }
}
@media (max-width: 767px) {
  section { padding: 40px 0; }
  .tp-banner { min-height: 480px; }
  .tp-banner.hero-image-only { min-height: 0; }
  .rev_slider_wrapper, .rev_slider, .fullwidthbanner-container { min-height: 480px; }
  .container-fluid, .container { width: 100%; max-width: 100%; padding-left: 18px; padding-right: 18px; }
  .portfolioImageHeight { height: 220px; }
  .header-top { font-size: 12px; padding: 8px 0; }
  .header-top .flat-infomation li.email { display: none; }
  footer .one-half { width: 100%; float: none; }
  .footer-bottom .copyright { display: block; margin: 4px 0; text-align: center; }
}
@media (max-width: 480px) {
  h1 { font-size: 28px; }
  h2 { font-size: 24px; }
  .tp-banner .rev_slider_wrapper::after { font-size: 1.7rem; padding: 0 18px; white-space: normal; }
}

/* --------- Utility ---------- */
.bg-soft { background: var(--bg-soft); }
.text-muted { color: var(--muted); }

/* clearfix for legacy floats */
.row::after, .clearfix::after, .container::after { content: ''; display: table; clear: both; }
