/* ==========================================================================
   PURE INTENTIONS — WordPress-style business theme
   ========================================================================== */
:root{
  --primary:      #4338CA;
  --primary-dark: #312E81;
  --secondary:    #0EA5E9;
  --accent:       #FB7185;
  --accent-dark:  #E11D48;
  --amber:        #F59E0B;

  --font-heading: 'Poppins', sans-serif;
  --font-body:    'Nunito Sans', sans-serif;

  --radius: 12px;
  --radius-lg: 20px;
  --shadow-sm: 0 6px 18px rgba(31,41,55,.06);
  --shadow-md: 0 16px 40px rgba(31,41,55,.10);
  --shadow-lg: 0 26px 60px rgba(31,41,55,.16);
}

html[data-theme="light"]{
  --bg:        #FFFFFF;
  --bg-alt:    #F5F6FC;
  --surface:   #FFFFFF;
  --border:    #E7E9F3;
  --text-1:    #1F2333;
  --text-2:    #6B7186;
  --dark-sec:  #14163B;
}
html[data-theme="dark"]{
  --bg:        #10112A;
  --bg-alt:    #161837;
  --surface:   #1B1D42;
  --border:    #2B2E5A;
  --text-1:    #F1F2FA;
  --text-2:    #9DA1C4;
  --dark-sec:  #0B0C22;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--text-1); font-family:var(--font-body); font-size:16px;
  overflow-x:hidden; transition:background .4s ease, color .4s ease;
}
h1,h2,h3,h4,h5,h6{ font-family:var(--font-heading); font-weight:700; color:var(--text-1); margin:0; }
p{ color:var(--text-2); line-height:1.75; }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; }
.container{ max-width:1240px; }
::selection{ background:var(--accent); color:#fff; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* Reveal utility (WP "entrance animation" style) */
.wp-animate{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.wp-animate.is-visible{ opacity:1; transform:translateY(0); }

/* ==========================================================================
   Loader
   ========================================================================== */
#loader{ position:fixed; inset:0; z-index:9999; background:linear-gradient(135deg,var(--primary-dark),var(--primary)); display:flex; align-items:center; justify-content:center; }
.loader-box{ text-align:center; }
.loader-logo{ font-family:var(--font-heading); font-weight:800; font-size:48px; color:#fff; margin-bottom:22px; }
.loader-logo span{ color:var(--amber); }
.loader-logo img{ height:84px; width:84px; object-fit:contain; border-radius:18px; background:#fff; padding:10px; margin:0 auto 22px; box-shadow:0 10px 30px rgba(0,0,0,.3); }
.loader-spinner{ width:46px; height:46px; border:4px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; margin:0 auto; animation:spin .8s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
body.is-loading{ overflow:hidden; height:100vh; }

/* ==========================================================================
   Top bar
   ========================================================================== */
.top-bar{ background:var(--dark-sec); color:#C9CCE6; font-size:13px; padding:9px 0; }
.top-bar-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.top-bar-left{ display:flex; gap:22px; flex-wrap:wrap; }
.top-bar-left a, .top-bar-left span{ color:#C9CCE6; display:inline-flex; align-items:center; gap:7px; }
.top-bar-left i{ color:var(--secondary); }
.top-bar-right{ display:flex; align-items:center; gap:14px; }
.top-bar-right a{ color:#C9CCE6; width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:12px; transition:background .25s ease; }
.top-bar-right a:hover{ background:var(--secondary); color:#fff; }
.theme-toggle-btn{ background:rgba(255,255,255,.08); border:none; color:#C9CCE6; width:26px; height:26px; border-radius:50%; font-size:12px; }

/* ==========================================================================
   Main nav
   ========================================================================== */
.main-nav{ background:var(--surface); position:sticky; top:0; z-index:1000; box-shadow:0 2px 14px rgba(20,22,59,.05); border-bottom:1px solid var(--border); padding:14px 0; transition:padding .3s ease; }
.navbar-brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:44px; height:44px; border-radius:12px; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; font-family:var(--font-heading); font-weight:800; font-size:16px; display:flex; align-items:center; justify-content:center; }
.brand-text{ font-family:var(--font-heading); font-weight:700; font-size:16px; color:var(--text-1); display:flex; flex-direction:column; line-height:1.3; }
.brand-text em{ font-style:normal; font-weight:600; font-size:10px; color:var(--text-2); letter-spacing:.1em; text-transform:uppercase; }
.brand-logo{ height:44px; width:44px; object-fit:contain; border-radius:10px; background:#fff; padding:5px; box-shadow:0 2px 10px rgba(20,22,59,.12); flex-shrink:0; }

.navbar-nav{ gap:6px; }
.nav-link{ font-weight:600; font-size:14.5px; color:var(--text-1) !important; padding:10px 14px !important; border-radius:8px; }
.nav-link:hover, .nav-link.active{ color:var(--primary) !important; background:var(--bg-alt); }
@media (min-width:992px){ .nav-item.dropdown:hover .dropdown-menu{ display:block; } }
.dropdown-menu{ border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-md); padding:8px; background:var(--surface); }
.dropdown-item{ border-radius:8px; padding:9px 14px; font-size:14px; font-weight:500; color:var(--text-1); }
.dropdown-item:hover{ background:var(--bg-alt); color:var(--primary); }
.navbar-toggler{ border:1px solid var(--border); color:var(--text-1); }
.navbar-toggler:focus{ box-shadow:none; }

.btn-nav-quote{
  background:linear-gradient(135deg,var(--accent),var(--accent-dark)); color:#fff !important; font-weight:700; font-size:14px;
  padding:11px 22px !important; border-radius:100px; margin-left:12px; box-shadow:0 8px 20px -6px rgba(225,29,72,.55);
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-nav-quote:hover{ transform:translateY(-2px); box-shadow:0 12px 26px -6px rgba(225,29,72,.6); }

/* ==========================================================================
   Buttons (general)
   ========================================================================== */
.btn-cta-primary{
  background:linear-gradient(135deg,var(--primary),#5B4FE0); color:#fff; font-weight:700; font-size:15px;
  padding:15px 30px; border-radius:100px; display:inline-flex; align-items:center; gap:10px; border:none;
  box-shadow:0 14px 30px -10px rgba(67,56,202,.55); transition:transform .3s ease, box-shadow .3s ease;
}
.btn-cta-primary:hover{ transform:translateY(-3px); box-shadow:0 18px 36px -10px rgba(67,56,202,.6); color:#fff; }
.btn-cta-outline{
  border:2px solid rgba(255,255,255,.6); color:#fff; font-weight:600; font-size:15px; padding:13px 26px;
  border-radius:100px; display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,.08);
  transition:all .3s ease;
}
.btn-cta-outline:hover{ background:#fff; color:var(--primary-dark); border-color:#fff; }

/* ==========================================================================
   Section heading
   ========================================================================== */
.section-heading{ margin-bottom:44px; }
.section-heading.text-center{ max-width:640px; margin-left:auto; margin-right:auto; }
.section-tag{
  display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--primary); background:rgba(67,56,202,.09); padding:7px 16px; border-radius:100px; margin-bottom:16px;
}
.section-tag-light{ color:#fff; background:rgba(255,255,255,.15); }
.section-heading h2{ font-size:clamp(28px,3.4vw,40px); line-height:1.2; }
.section-sub{ margin-top:14px; font-size:16px; }
.lead-text{ font-size:17.5px; color:var(--text-1); font-weight:600; }

/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */
.page-hero{ position:relative; padding:120px 0 100px; background:linear-gradient(130deg,var(--primary-dark),var(--primary) 65%,var(--secondary)); overflow:hidden; }
.page-hero::before{ content:''; position:absolute; width:420px; height:420px; border-radius:50%; background:rgba(255,255,255,.06); top:-180px; right:-120px; }
.page-hero::after{ content:''; position:absolute; width:280px; height:280px; border-radius:50%; background:rgba(255,255,255,.05); bottom:-140px; left:-90px; }
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ color:#fff; font-size:clamp(32px,4.6vw,52px); margin-bottom:16px; }
.page-hero h1 span{ color:var(--amber); }
.page-hero p{ color:#D7D9EE; font-size:17px; max-width:680px; margin:0; }
.breadcrumb-nav{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:13px; font-weight:700; color:#C9CCE6; margin-bottom:20px; }
.breadcrumb-nav a{ color:#fff; transition:color .25s ease; }
.breadcrumb-nav a:hover{ color:var(--amber); }
.breadcrumb-nav i{ font-size:10px; }
.breadcrumb-nav span{ color:var(--amber); }

/* ==========================================================================
   Section action (View All links)
   ========================================================================== */
.section-action{ text-align:center; margin-top:44px; }

/* ==========================================================================
   Hero slider
   ========================================================================== */
.hero-slider-section{ position:relative; }
.heroSwiper{ height:88vh; min-height:600px; }
.heroSwiper .swiper-slide{
  background-image:var(--bg); background-size:cover; background-position:center; position:relative;
  display:flex; align-items:center;
}
.heroSwiper .swiper-slide{ background-image:var(--bg); }
.hero-overlay{ position:absolute; inset:0; background:linear-gradient(100deg, rgba(16,17,42,.92) 0%, rgba(16,17,42,.68) 45%, rgba(16,17,42,.35) 100%); }
.hero-slide-content{ position:relative; z-index:2; max-width:680px; color:#fff; }
.hero-badge{
  display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25);
  padding:8px 18px; border-radius:100px; font-size:13px; font-weight:600; margin-bottom:24px;
}
.hero-slide-content h1{ font-size:clamp(34px,5.4vw,58px); line-height:1.15; color:#fff; margin-bottom:22px; }
.hero-slide-content h1 span{ color:var(--amber); }
.hero-slide-content p{ font-size:17.5px; color:#D7D9EE; max-width:520px; margin-bottom:32px; }
.hero-btns{ display:flex; gap:16px; flex-wrap:wrap; }

.swiper-pagination-bullet{ background:#fff; opacity:.5; width:10px; height:10px; }
.swiper-pagination-bullet-active{ opacity:1; background:var(--amber); }
.hero-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:52px; height:52px; border-radius:50%;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); color:#fff; display:flex; align-items:center;
  justify-content:center; cursor:pointer; backdrop-filter:blur(6px); transition:background .3s ease;
}
.hero-arrow:hover{ background:var(--primary); }
.hero-prev{ left:26px; } .hero-next{ right:26px; }
@media (max-width:767px){ .hero-arrow{ display:none; } .heroSwiper{ height:82vh; } }

/* ==========================================================================
   Service strip
   ========================================================================== */
.service-strip{ padding:0; margin-top:-58px; position:relative; z-index:6; }
.strip-item{
  background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:28px 20px;
  text-align:center; border:1px solid var(--border); transition:transform .3s ease;
}
.strip-item:hover{ transform:translateY(-6px); }
.strip-icon{
  width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:20px; margin:0 auto 14px;
}
.strip-item h6{ font-size:14.5px; font-weight:700; }

/* ==========================================================================
   About
   ========================================================================== */
.about-section{ padding:150px 0 100px; }
.about-media{ position:relative; }
.about-media > img:first-child{ border-radius:var(--radius-lg); width:100%; height:440px; object-fit:cover; box-shadow:var(--shadow-md); }
.about-media-badge{
  position:absolute; left:-20px; bottom:30px; background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow-md);
  padding:16px 20px; display:flex; align-items:center; gap:12px; border:1px solid var(--border);
}
.about-media-badge i{ width:42px; height:42px; border-radius:50%; background:rgba(245,158,11,.15); color:var(--amber); display:flex; align-items:center; justify-content:center; }
.about-media-badge strong{ display:block; font-size:14px; }
.about-media-badge span{ font-size:12px; color:var(--text-2); }
.about-media-float{
  position:absolute; right:-24px; top:-24px; width:150px; height:110px; object-fit:cover; border-radius:var(--radius);
  border:5px solid var(--surface); box-shadow:var(--shadow-md);
}
@media (max-width:991px){ .about-media-float{ display:none; } .about-media-badge{ left:14px; } }

.check-list{ list-style:none; padding:0; margin:24px 0 32px; display:flex; flex-direction:column; gap:12px; }
.check-list li{ display:flex; align-items:center; gap:12px; font-weight:700; font-size:15.5px; color:var(--text-1); }
.check-list i{ color:var(--secondary); font-size:18px; }

/* ==========================================================================
   Counters
   ========================================================================== */
.counter-section{ background:linear-gradient(135deg,var(--primary-dark),var(--primary)); padding:70px 0; }
.counter-box i{ font-size:30px; color:var(--amber); margin-bottom:14px; display:block; }
.counter-num{ font-family:var(--font-heading); font-weight:800; font-size:42px; color:#fff; }
.counter-plus{ font-family:var(--font-heading); font-weight:800; font-size:24px; color:var(--amber); }
.counter-box p{ color:#C9CCE6; font-weight:600; margin-top:6px; }

/* ==========================================================================
   Services grid
   ========================================================================== */
.services-section{ padding:110px 0; background:var(--bg-alt); }
.service-card{
  background:var(--surface); border-radius:var(--radius-lg); padding:38px 28px; border:1px solid var(--border);
  box-shadow:var(--shadow-sm); height:100%; transition:transform .35s ease, box-shadow .35s ease;
}
.service-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); }
.service-icon{
  width:60px; height:60px; border-radius:16px; background:rgba(67,56,202,.1); color:var(--primary); font-size:24px;
  display:flex; align-items:center; justify-content:center; margin-bottom:22px; transition:background .3s ease, color .3s ease;
}
.service-card:hover .service-icon{ background:linear-gradient(135deg,var(--primary),var(--secondary)); color:#fff; }
.service-card h3{ font-size:19px; margin-bottom:12px; }
.service-card p{ font-size:14.5px; margin-bottom:18px; }
.service-card ul{ list-style:none; padding:0; margin:0 0 18px; display:flex; flex-direction:column; gap:9px; }
.service-card ul li{ display:flex; gap:9px; align-items:flex-start; font-size:13.5px; color:var(--text-2); }
.service-card ul li i{ color:var(--secondary); font-size:12px; margin-top:4px; }
.service-link{ font-weight:700; font-size:13.5px; color:var(--primary); display:inline-flex; align-items:center; gap:8px; }
.service-link i{ font-size:11px; transition:transform .3s ease; }
.service-link:hover i{ transform:translateX(4px); }

/* ==========================================================================
   Solve strip
   ========================================================================== */
.solve-strip{ background:linear-gradient(120deg,var(--primary-dark),#1e1b52); padding:110px 0; }
.solve-strip h2{ color:#fff; margin:16px 0; font-size:clamp(26px,3.4vw,36px); }
.solve-strip > .container > .row > .col-lg-5 p{ color:#C9CCE6; font-size:16px; }
.solve-card{
  display:block; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-lg);
  padding:26px; height:100%; transition:all .3s ease;
}
.solve-card:hover{ background:rgba(255,255,255,.12); transform:translateY(-4px); }
.solve-card i{ font-size:24px; color:var(--amber); margin-bottom:14px; display:block; }
.solve-card h6{ color:#fff; font-size:15.5px; margin-bottom:8px; }
.solve-card p{ color:#B9BCDD; font-size:13.5px; margin:0; }

/* ==========================================================================
   Process
   ========================================================================== */
.process-section{ padding:110px 0; }
.process-row{ display:flex; gap:0; overflow-x:auto; padding-bottom:10px; }
.process-item{
  flex:1; min-width:180px; text-align:center; padding:0 20px; position:relative;
}
.process-item:not(:last-child)::after{
  content:''; position:absolute; top:30px; right:-10%; width:20%; height:2px; background:repeating-linear-gradient(90deg,var(--border) 0 6px, transparent 6px 12px);
}
.process-num{
  width:60px; height:60px; border-radius:50%; background:var(--surface); border:2px solid var(--primary); color:var(--primary);
  font-family:var(--font-heading); font-weight:800; font-size:18px; display:flex; align-items:center; justify-content:center;
  margin:0 auto 20px; box-shadow:var(--shadow-sm);
}
.process-item h6{ font-size:16px; margin-bottom:8px; }
.process-item p{ font-size:13.5px; }
@media (max-width:991px){ .process-row{ flex-wrap:wrap; } .process-item{ flex:0 0 50%; margin-bottom:36px; } .process-item::after{ display:none; } }

/* ==========================================================================
   Portfolio
   ========================================================================== */
.portfolio-section{ padding:110px 0; background:var(--bg-alt); }
.portfolio-filters{ display:flex; justify-content:center; gap:10px; margin-bottom:44px; flex-wrap:wrap; }
.filter-btn{
  border:1px solid var(--border); background:var(--surface); color:var(--text-2); font-weight:700; font-size:13.5px;
  padding:10px 22px; border-radius:100px; cursor:pointer; transition:all .25s ease;
}
.filter-btn.active, .filter-btn:hover{ background:var(--primary); color:#fff; border-color:var(--primary); }
.portfolio-item{ transition:opacity .3s ease, transform .3s ease; }
.portfolio-item.hide{ display:none; }
.portfolio-card{ background:var(--surface); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border); height:100%; }
.portfolio-media{ position:relative; height:280px; overflow:hidden; }
.portfolio-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.portfolio-card:hover .portfolio-media img{ transform:scale(1.08); }
.portfolio-overlay{
  position:absolute; inset:0; background:rgba(67,56,202,.75); display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .35s ease;
}
.portfolio-card:hover .portfolio-overlay{ opacity:1; }
.portfolio-zoom{ width:52px; height:52px; border-radius:50%; background:#fff; color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:18px; }
.portfolio-media-blank{ display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--bg-alt),var(--border)); }
.portfolio-media-blank i{ font-size:56px; color:var(--border); }
.dev-badge{ position:absolute; top:18px; right:18px; background:var(--amber); color:#1F2333; font-size:11px; font-weight:800; padding:6px 14px; border-radius:100px; }
.portfolio-info{ padding:30px; }
.portfolio-info span{ font-size:12px; font-weight:700; color:var(--secondary); text-transform:uppercase; letter-spacing:.06em; }
.portfolio-info h4{ font-size:22px; margin:10px 0 12px; }
.portfolio-info p{ font-size:14.5px; margin-bottom:16px; }
.portfolio-tags{ display:flex; gap:8px; flex-wrap:wrap; }
.portfolio-tags span{ font-size:11.5px; font-weight:700; padding:6px 12px; border-radius:100px; background:rgba(67,56,202,.09); color:var(--primary); }

/* ==========================================================================
   Why choose us
   ========================================================================== */
.why-section{ padding:110px 0; }
.why-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.why-box{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow-sm); }
.why-box i{ font-size:22px; color:var(--secondary); margin-bottom:12px; display:block; }
.why-box h6{ font-size:15px; margin-bottom:8px; }
.why-box p{ font-size:13.5px; margin:0; }
.why-media img{ border-radius:var(--radius-lg); width:100%; height:520px; object-fit:cover; box-shadow:var(--shadow-md); }
@media (max-width:600px){ .why-grid{ grid-template-columns:1fr; } }

/* ==========================================================================
   Tech marquee
   ========================================================================== */
.tech-section{ padding:100px 0; background:var(--bg-alt); }
.tech-marquee{ overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.tech-track{ display:flex; gap:16px; width:max-content; animation:marquee 26s linear infinite; }
.tech-track span{
  display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--border); padding:14px 24px;
  border-radius:100px; font-weight:700; font-size:14px; color:var(--text-1); box-shadow:var(--shadow-sm); white-space:nowrap;
}
.tech-track span i{ color:var(--primary); font-size:16px; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ==========================================================================
   Testimonial
   ========================================================================== */
.testimonial-section{ position:relative; padding:130px 0; overflow:hidden; }
.testimonial-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.testimonial-overlay{ position:absolute; inset:0; background:linear-gradient(120deg, rgba(16,17,42,.92), rgba(67,56,202,.78)); }
.testimonial-content{ position:relative; z-index:2; text-align:center; }
.quote-icon{ font-size:34px; color:var(--amber); margin-bottom:22px; }
.testimonial-content h3{ color:#fff; font-size:clamp(24px,3.4vw,34px); max-width:700px; margin:0 auto 18px; }
.testimonial-content p{ color:#D7D9EE; font-style:italic; font-size:18px; max-width:600px; margin:0 auto; }

/* ==========================================================================
   Insights
   ========================================================================== */
.insights-section{ padding:110px 0; }
.insight-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); height:100%; transition:transform .3s ease, box-shadow .3s ease; }
.insight-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.insight-media{ position:relative; height:200px; overflow:hidden; }
.insight-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.insight-card:hover .insight-media img{ transform:scale(1.08); }
.insight-tag{ position:absolute; top:16px; left:16px; background:var(--accent); color:#fff; font-size:11px; font-weight:800; padding:6px 14px; border-radius:100px; }
.insight-body{ padding:24px; }
.insight-date{ font-size:12px; font-weight:700; color:var(--secondary); text-transform:uppercase; letter-spacing:.05em; display:flex; align-items:center; gap:7px; margin-bottom:12px; }
.insight-body h5{ font-size:17px; line-height:1.4; margin-bottom:16px; }

/* ==========================================================================
   Contact
   ========================================================================== */
.contact-section{ padding:110px 0; background:var(--bg-alt); }
.contact-info-card{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:28px; text-align:center; box-shadow:var(--shadow-sm); height:100%; }
.contact-info-card i{ width:52px; height:52px; border-radius:50%; background:rgba(67,56,202,.1); color:var(--primary); display:flex; align-items:center; justify-content:center; font-size:20px; margin:0 auto 14px; }
.contact-info-card h6{ font-size:14px; margin-bottom:8px; }
.contact-info-card a, .contact-info-card span{ font-size:14.5px; color:var(--text-2); font-weight:600; }

.contact-form-wrap{ max-width:900px; margin:50px auto 0; background:var(--surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:44px; border:1px solid var(--border); }
.contact-form-wrap .form-control, .contact-form-wrap .form-select{
  background:var(--bg-alt); border:1px solid var(--border); color:var(--text-1); border-radius:10px; padding:13px 16px; font-size:14.5px;
}
.contact-form-wrap .form-control:focus, .contact-form-wrap .form-select:focus{ border-color:var(--primary); box-shadow:0 0 0 3px rgba(67,56,202,.15); background:var(--surface); }
.contact-form-wrap .form-control::placeholder{ color:var(--text-2); }
.form-status{ margin-top:16px; font-size:14px; color:#16A34A; font-weight:600; min-height:20px; }

/* ==========================================================================
   Newsletter strip
   ========================================================================== */
.newsletter-strip{ background:linear-gradient(120deg,var(--accent-dark),var(--accent)); padding:50px 0; }
.newsletter-strip h4{ color:#fff; font-size:20px; display:flex; align-items:center; gap:10px; }
.newsletter-strip p{ color:rgba(255,255,255,.85); margin:8px 0 0; font-size:14px; }
.newsletter-form{ display:flex; gap:10px; max-width:440px; margin-left:auto; }
.newsletter-form input{ flex:1; border:none; border-radius:100px; padding:13px 20px; font-size:14px; }
.newsletter-form button{ background:var(--dark-sec); color:#fff; border:none; padding:13px 26px; border-radius:100px; font-weight:700; font-size:14px; }
@media (max-width:991px){ .newsletter-form{ margin-left:0; margin-top:16px; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{ background:var(--dark-sec); color:#B9BCDD; padding:80px 0 0; }
.footer-widgets{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:50px; }
.brand-mark-footer{
  width:52px; height:52px; border-radius:12px; background:#fff; display:flex; align-items:center; justify-content:center;
  padding:6px; margin-bottom:18px; box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.brand-logo-footer{ width:100%; height:100%; object-fit:contain; display:block; }
.footer-about h5{ color:#fff; font-size:17px; margin-bottom:12px; }
.footer-about h5 em{ display:block; font-style:normal; font-size:10.5px; font-weight:600; color:#8388B8; letter-spacing:.14em; text-transform:uppercase; margin-top:4px; }
.footer-about p{ color:#9195C0; font-size:14px; max-width:280px; }
.footer-social{ display:flex; gap:10px; margin-top:18px; }
.footer-social a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:#B9BCDD; transition:background .25s ease; }
.footer-social a:hover{ background:var(--primary); color:#fff; }
.footer-widget h6{ color:#fff; font-size:14px; letter-spacing:.06em; text-transform:uppercase; margin-bottom:20px; }
.footer-widget ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.footer-widget a{ color:#9195C0; font-size:14.5px; transition:color .25s ease; }
.footer-widget a:hover{ color:var(--amber); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:26px 0; border-top:1px solid rgba(255,255,255,.08); font-size:13px; }
#backToTop{ width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.06); border:none; color:#fff; }
@media (max-width:900px){ .footer-widgets{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-widgets{ grid-template-columns:1fr; } .footer-bottom{ flex-direction:column; gap:14px; text-align:center; } }
