/* ============================================================
   VEGA AIRY v3 — light theme, elegant blue, soft-3D
   Loaded last; overrides the Vega parent theme.
   Keeps the original hero photo & structure; refreshes the
   look: modern type, animated nav underline, a re-arranged
   "Our services" block and cleaner text on every page.
   ============================================================ */

:root{
  --bg:#F1F5FB;
  --surface:#FFFFFF;
  --ink:#16223B;
  --ink-soft:#586581;
  --ink-faint:#8B97AC;
  --line:rgba(22,34,59,.09);
  --glass:rgba(255,255,255,.72);
  --glass-strong:rgba(255,255,255,.88);
  --glass-brd:rgba(255,255,255,.92);
  /* the one accent: a clean, confident blue */
  --blue:#2563EB;
  --blue-2:#4F8BFF;
  --blue-ink:#1B4AD0;
  --blue-tint:#E8F0FE;
  --shadow-sm:0 2px 10px rgba(24,45,90,.06);
  --shadow:0 20px 44px -24px rgba(24,45,90,.30), 0 6px 16px -10px rgba(24,45,90,.14);
  --shadow-hi:0 34px 66px -28px rgba(24,45,90,.38), 0 10px 24px -14px rgba(24,45,90,.18);
  --shadow-blue:0 22px 40px -18px rgba(37,99,235,.45);
  --radius:22px; --radius-sm:14px; --radius-lg:28px;
  --pjs:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

/* ---------- base / modern type ---------- */
html{background:var(--bg);}
/* decorative fixed orbs sit partly off-screen — stop them adding a
   horizontal scrollbar on small devices */
html,body{overflow-x:hidden; max-width:100%;}
body{
  font-family:var(--pjs);
  color:var(--ink);
  background:
    radial-gradient(1100px 640px at 12% -8%, #ffffff, transparent 60%),
    radial-gradient(1000px 620px at 110% 2%, var(--blue-tint), transparent 58%),
    var(--bg);
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  line-height:1.65;
}
body,
.navbar-custom .menu-header a,
h1,h2,h3,h4,h5,h6,
.block-title,.entry-title,.page-title,
button,input,textarea,select{font-family:var(--pjs);}
h1,h2,h3,h4,.block-title,.entry-title,.page-title{letter-spacing:-.025em;}
a{color:var(--blue-ink);}
a:hover,a:focus{color:var(--blue);}
::selection{background:rgba(37,99,235,.16);}

.section{padding:62px 0;}
.section.bg-white,.bg-white{background:transparent !important;}

/* ---------- scroll reveal (only when airy.js is live; guarded by .js-airy
   so content is never hidden if the script fails to load) ---------- */
.js-airy .airy-reveal{opacity:0; transform:translateY(20px);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);}
.js-airy .airy-reveal.is-in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){
  .js-airy .airy-reveal{opacity:1; transform:none; transition:none;}}

/* ============================================================
   NAV — glass bar + animated underline
   ============================================================ */
.nav-wrapper{background:transparent !important; box-shadow:none !important;}
.navbar.navbar-custom{
  margin:14px auto 0; max-width:1240px; width:calc(100% - 28px);
  border-radius:18px;
  background:var(--glass-strong) !important;
  border:1px solid var(--glass-brd);
  box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(16px) saturate(140%); backdrop-filter:blur(16px) saturate(140%);
}
.navbar.navbar-custom.navbar-fixed-top{position:fixed; left:0; right:0; top:0; z-index:60;}
.navbar-custom .container-fluid.max-width{padding:8px 16px;}
.navbar-custom .navbar-brand,.navbar-custom .site-title a{color:var(--ink) !important; font-weight:800 !important;}

.navbar-custom .menu-header a{
  position:relative; color:var(--ink-soft) !important; font-weight:600 !important;
  padding:10px 14px !important; transition:color .2s;
}
.navbar-custom .menu-header a::after{
  content:""; position:absolute; left:14px; right:14px; bottom:4px; height:2px; border-radius:2px;
  background:linear-gradient(90deg,var(--blue),var(--blue-2));
  transform:scaleX(.34); transform-origin:center;   /* short blue line by default */
  transition:transform .35s cubic-bezier(.4,.6,.2,1);
}
.navbar-custom .menu-header a:hover,
.navbar-custom .menu-header .current-menu-item > a,
.navbar-custom .menu-header .current_page_item > a{color:var(--ink) !important;}
.navbar-custom .menu-header a:hover::after,
.navbar-custom .menu-header .current-menu-item > a::after,
.navbar-custom .menu-header .current_page_item > a::after{transform:scaleX(1);}

/* ============================================================
   HERO — keep the original photo, frame it softly, and paint it
   cleanly via CSS instead of the buggy JS parallax mirror (which
   rendered the photo crooked/misaligned).
   ============================================================ */
.frontpage-banner{border-radius:26px; overflow:hidden; box-shadow:var(--shadow);
  margin:24px auto 0; width:calc(100% - 40px); max-width:1220px;}

/* remove the misaligned fixed mirror the parent's parallax.js injects */
.parallax-mirror{display:none !important;}

.frontpage-banner.frontpage-banner-parallax-bg{
  position:relative; isolation:isolate;
  /* override the parent's two-class `margin:0` so the framed banner centres */
  margin:24px auto 0 !important;
  width:calc(100% - 40px); max-width:1220px;
  padding:120px 24px !important;
  background:#12203f;   /* deep fallback so it is never blank */
  display:flex; align-items:center; justify-content:center;}

/* photo layer — gentle Ken Burns drift for a living feel */
.frontpage-banner.frontpage-banner-parallax-bg::before{
  content:""; position:absolute; inset:0; z-index:0;
  background-image:var(--hero-img, url('/wp-content/uploads/2021/07/Backgrounds-Business-HD-1-e1625237657316.jpg'));
  background-size:cover; background-position:center center; background-repeat:no-repeat;
  transform:scale(1);
  animation:airy-kenburns 34s ease-in-out infinite alternate;}

/* readable blue-tinted overlay */
.frontpage-banner.frontpage-banner-parallax-bg::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(115deg, rgba(18,32,63,.62) 0%, rgba(37,99,235,.40) 55%, rgba(18,32,63,.58) 100%);}

.frontpage-banner.image-banner .container{position:relative; z-index:2;}

/* the wordmark — crisp white on the photo, softly floating */
.frontpage-banner .inner img{
  max-width:min(520px, 76vw); height:auto;
  filter:brightness(0) invert(1) drop-shadow(0 14px 34px rgba(0,0,0,.45));
  animation:airy-float 6s ease-in-out infinite;}

/* slow breathing zoom: 100% → 150% and back, looping (alternate) */
@keyframes airy-kenburns{
  from{transform:scale(1);}
  to{transform:scale(1.5);}}
@keyframes airy-float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-9px);}}

/* ============================================================
   SOFT FLOATING ORBS — subtle depth behind the glass surfaces
   (injected by airy.js; sit behind all content)
   ============================================================ */
.airy-blob{position:fixed; z-index:-1; border-radius:50%; pointer-events:none;
  filter:blur(80px); opacity:.22; will-change:transform;}
.airy-blob--1{width:420px; height:420px; left:-120px; top:110px;
  background:radial-gradient(circle at 30% 30%, rgba(79,139,255,.55), transparent 70%);}
.airy-blob--2{width:520px; height:520px; right:-160px; top:40%;
  background:radial-gradient(circle at 50% 50%, rgba(37,99,235,.34), transparent 70%);}
.airy-blob--3{width:360px; height:360px; left:18%; bottom:-120px;
  background:radial-gradient(circle at 50% 50%, rgba(139,180,255,.42), transparent 70%);}
@media (max-width:768px){ .airy-blob{opacity:.35; filter:blur(48px);} }

/* page / single title band */
.jumbotron.banner-none{background:transparent; margin:0; padding:92px 0 6px; text-align:center;}
.jumbotron.banner-none .block-title{margin:0;}

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.block-title{
  font-weight:800; color:var(--ink);
  font-size:clamp(28px,3.5vw,44px); line-height:1.1; text-align:center; margin:0 0 6px;}
.block-title::after{content:""; display:block; position:static;
  width:54px; height:4px; border-radius:4px;
  border:0 !important;   /* parent theme draws a red 1px border-bottom here */
  margin:18px auto 0; background:linear-gradient(90deg,var(--blue),var(--blue-2));}
.jumbotron.banner-none .block-title{font-size:clamp(32px,4.3vw,52px);}
.jumbotron.banner-none .block-title::after{margin-top:22px;}

/* ============================================================
   OUR SERVICES — re-arranged as a 2x2 grid of horizontal
   soft-3D cards (icon chip + label), instead of the flat row.
   ============================================================ */
.frontpage-4cols{background:transparent !important; padding:60px 0 70px;}
/* the theme's WOW.js also animates these — disable it so only our own
   staggered reveal plays (otherwise the two fight and look random) */
.frontpage-4cols .wow{animation-name:none !important; visibility:visible !important;}
.frontpage-4cols .block-title{margin-bottom:44px;}

.frontpage-4cols .cols.columns-row.row-4{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px;
  max-width:920px; margin:0 auto;}
.frontpage-4cols .entry{width:auto !important; padding:0 !important; margin:0 !important; float:none !important;}

.frontpage-4cols .entry .content-icon{
  height:100%;
  display:flex; flex-direction:row; align-items:center; gap:20px; text-align:left;
  padding:26px 28px; border-radius:var(--radius);
  background:var(--glass); border:1px solid var(--glass-brd);
  box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(14px) saturate(130%); backdrop-filter:blur(14px) saturate(130%);
  transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s;
  overflow:hidden;}
.frontpage-4cols .entry .content-icon::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--blue),var(--blue-2)); opacity:.9;}
.frontpage-4cols .entry .content-icon{position:relative;}
.frontpage-4cols .entry .content-icon:hover{
  transform:translateY(-6px) scale(1.012); box-shadow:var(--shadow-hi);}

/* blue soft-3D icon chip with white glyph */
.frontpage-4cols .content-icon .icon{
  flex:none; width:72px; height:72px; margin:0; border-radius:20px; display:grid; place-items:center;
  background:linear-gradient(145deg,var(--blue-2),var(--blue));
  box-shadow:var(--shadow-blue), inset 0 1px 1px rgba(255,255,255,.5), inset 0 -8px 16px -8px rgba(0,0,40,.25);
  transition:transform .28s;}
.frontpage-4cols .content-icon:hover .icon{transform:translateY(-2px) scale(1.04);}
.frontpage-4cols .content-icon .icon img{
  width:38px; height:38px; object-fit:contain;
  filter:brightness(0) invert(1) drop-shadow(0 1px 1px rgba(0,0,30,.2));}
.frontpage-4cols .content-icon .title{height:auto !important; margin:0; overflow:visible; min-width:0;}
.frontpage-4cols .content-icon .title a{
  color:var(--ink); font-size:19px; font-weight:800; letter-spacing:-.02em; text-decoration:none;}
.frontpage-4cols .content-icon .title a:hover{color:var(--blue-ink);}
.frontpage-4cols .content-icon .title::after{
  content:"Learn more →"; display:block; margin-top:8px;
  font-size:13.5px; font-weight:700; color:var(--blue-ink); opacity:.85; transition:.25s;}
.frontpage-4cols .content-icon:hover .title::after{opacity:1; transform:translateX(3px);}

/* soft glow that tracks the cursor (coords set by airy.js) */
.frontpage-4cols .entry .content-icon .icon,
.frontpage-4cols .entry .content-icon .title{position:relative; z-index:1;}
.frontpage-4cols .entry .content-icon > .airy-glow,
.frontpage-4cols .entry .content-icon::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; border-radius:inherit;
  background:radial-gradient(300px 180px at var(--mx,80%) var(--my,0%), rgba(79,139,255,.18), transparent 68%);
  opacity:0; transition:opacity .35s ease;}
.frontpage-4cols .entry .content-icon:hover::after{opacity:1;}

/* ============================================================
   FRONT-PAGE PROSE — restrained, corporate. A clean flat panel,
   understated subheading and a quiet numbered list.
   (airy.js tags the paragraphs & builds the .airy-steps list.)
   ============================================================ */
.frontpage-open1 .container.airy-prose{
  max-width:840px; margin-left:auto; margin-right:auto;
  padding:44px clamp(24px,5vw,56px);
  background:#fff; border:1px solid var(--line);
  border-radius:16px; box-shadow:0 12px 34px -22px rgba(24,45,90,.28);
  color:var(--ink-soft); font-size:16.5px; line-height:1.85;}
.airy-prose p{margin:0 0 18px; max-width:74ch;}
.airy-prose strong{color:var(--ink);}
.airy-prose .airy-lead{color:var(--ink);}   /* subtle emphasis on the intro */

/* "Hierarchy of consulting goals:" — quiet bold subheading */
.airy-prose .airy-kicker{margin:30px 0 14px;}
.airy-prose .airy-kicker strong{color:var(--ink); font-size:16px; font-weight:700;}

/* numbered list — soft light-blue markers, no cards */
.airy-steps{list-style:none; counter-reset:airy; margin:10px 0 22px; padding:0;
  display:grid; gap:14px;}
.airy-steps li{position:relative; counter-increment:airy; color:var(--ink);
  padding-left:42px; line-height:1.6;}
.airy-steps li::before{
  content:counter(airy); position:absolute; left:0; top:0;
  width:27px; height:27px; border-radius:50%; background:var(--blue-tint);
  color:var(--blue-ink); display:grid; place-items:center; font-weight:700; font-size:13px;}

/* ============================================================
   FRONT-PAGE CONTENT + OPEN ROW — modern readable panel
   ============================================================ */
.frontpage-content,.frontpage-open1{background:transparent !important; padding:54px 0;}
.frontpage-content .container,.frontpage-open1 .container{max-width:960px;}
.frontpage-content .description{
  margin-top:28px; padding:40px clamp(24px,5vw,56px); border-radius:var(--radius-lg);
  background:var(--glass-strong); border:1px solid var(--glass-brd); box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  color:var(--ink-soft); font-size:16.5px;}
.frontpage-content .description p{margin:0 0 16px; max-width:70ch;}
.frontpage-content .description strong{color:var(--ink);}

/* ============================================================
   BLOG FEED / CATEGORY LISTING (e.g. /category/our-services/)
   The parent theme paints its red accent (#F55145) here — swap it
   for the blue bar, and let our staggered reveal do the animation.
   ============================================================ */
.blog-feed .entry .entry-content-right::after,
.post-content .post .entry-title::after,
.single .post-content .entry-title::after{
  border:0 !important; height:3px !important; width:48px; border-radius:3px;
  background:linear-gradient(90deg,var(--blue),var(--blue-2));}

/* WOW.js zoomIn fires on all posts at once — disable so the cascade shows */
.blog-feed .wow,.block-title.wow{animation-name:none !important; visibility:visible !important;}

.blog-feed .entry{padding-bottom:22px;}
.blog-feed .entry .entry-title a{color:var(--ink); text-decoration:none;}
.blog-feed .entry .entry-title a:hover{color:var(--blue-ink);}
.blog-feed .entry .entry-image img{border-radius:14px; box-shadow:var(--shadow-sm);}

/* ============================================================
   SERVICE / OTHER PAGES — modern text treatment
   ============================================================ */
.post-content,.page-content.section{background:transparent !important;}
.single .post-content .container,
.page-template-default .page-content.section .container{max-width:960px;}

.single .post-content .entry-title,
.single .post-content .page-title,
.page-content .page-title{
  text-align:center; font-weight:800; color:var(--ink);
  font-size:clamp(28px,3.6vw,44px); margin:0 0 26px;}

.single .post-content .entry-content,
.page-template-default .page-content .page-content,
.single-post article .entry-content{
  padding:44px clamp(24px,4.5vw,54px); border-radius:var(--radius-lg);
  background:var(--glass-strong); border:1px solid var(--glass-brd); box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  color:var(--ink-soft); font-size:16.5px; line-height:1.75;}
.entry-content > *:first-child,.page-content > *:first-child{margin-top:0;}
.entry-content p,.page-content p{margin:0 0 18px; max-width:72ch;}
.entry-content h2,.entry-content h3,.entry-content h4,
.page-content h2,.page-content h3,.page-content h4{
  color:var(--ink); font-weight:800; margin:34px 0 12px; line-height:1.22;}
.entry-content h2,.page-content h2{font-size:25px;}
.entry-content h2::before,.page-content h2::before{
  content:""; display:inline-block; width:22px; height:4px; border-radius:3px; vertical-align:middle;
  margin-right:12px; background:linear-gradient(90deg,var(--blue),var(--blue-2));}
.entry-content h3,.page-content h3{font-size:21px;}
.entry-content strong,.page-content strong{color:var(--ink);}
.entry-content a,.page-content a{color:var(--blue-ink); text-decoration:underline; text-underline-offset:3px;}
.entry-content a:hover,.page-content a:hover{color:var(--blue);}
.entry-content img,.page-content img,.entry-image img,.frontpage-content img{
  border-radius:var(--radius); box-shadow:var(--shadow-sm);}
.entry-content blockquote,.page-content blockquote{
  margin:22px 0; padding:18px 24px; border:0; border-left:4px solid var(--blue);
  border-radius:14px; background:var(--blue-tint); color:var(--ink); font-style:normal;}
/* lists with blue markers */
.entry-content ul,.page-content ul{list-style:none; margin:18px 0; padding:0;}
.entry-content ul li,.page-content ul li{position:relative; padding:5px 0 5px 32px; line-height:1.7;}
.entry-content ul li::before,.page-content ul li::before{
  content:""; position:absolute; left:0; top:9px; width:19px; height:19px; border-radius:6px;
  background:linear-gradient(145deg,var(--blue-2),var(--blue)); box-shadow:inset 0 1px 1px rgba(255,255,255,.5);}
.entry-content ul li::after,.page-content ul li::after{
  content:""; position:absolute; left:7px; top:12px; width:5px; height:9px;
  border:solid #fff; border-width:0 2px 2px 0; transform:rotate(45deg);}
.entry-content ol,.page-content ol{margin:18px 0; padding-left:2px; counter-reset:airy; list-style:none;}
.entry-content ol li,.page-content ol li{position:relative; padding:9px 0 9px 44px; counter-increment:airy;}
.entry-content ol li::before,.page-content ol li::before{
  content:counter(airy); position:absolute; left:0; top:8px; width:28px; height:28px; border-radius:9px;
  display:grid; place-items:center; color:#fff; font-weight:800; font-size:13px;
  background:linear-gradient(145deg,var(--blue-2),var(--blue)); box-shadow:var(--shadow-blue);}
.entry-meta,.entry-tags{color:var(--ink-faint); font-size:14px;}

/* ============================================================
   BUTTONS & FORMS — blue, soft-3D
   ============================================================ */
.btn,button[type="submit"],.subscribe__submit,.contact-form__submit,
.wp-block-button__link,input[type="submit"],.contact-btn{
  font-family:var(--pjs); font-weight:700; border:0; border-radius:13px; cursor:pointer; color:#fff;
  background:linear-gradient(135deg,var(--blue-2),var(--blue));
  box-shadow:var(--shadow-blue), inset 0 1px 1px rgba(255,255,255,.35);
  transition:transform .18s, box-shadow .25s, filter .2s;}
.btn:hover,button[type="submit"]:hover,.subscribe__submit:hover,.contact-form__submit:hover,
.wp-block-button__link:hover,input[type="submit"]:hover,.contact-btn:hover{
  transform:translateY(-2px); color:#fff; filter:saturate(1.06);
  box-shadow:0 28px 46px -18px rgba(37,99,235,.55), inset 0 1px 1px rgba(255,255,255,.4);}
/* Contact-us — small, understated vertical tab on the left edge, text top→bottom */
.contact-btn{
  position:fixed !important; left:0 !important; top:50% !important; z-index:60;
  transform:translateY(-50%) !important;   /* kill the parent's rotate(90deg) hack */
  writing-mode:vertical-rl;                /* reads top → bottom */
  text-orientation:mixed; letter-spacing:.06em; font-weight:600; font-size:11.5px;
  padding:11px 6px !important;
  background:var(--blue-ink) !important;    /* solid, calm corporate blue */
  border-radius:0 9px 9px 0 !important;
  box-shadow:3px 5px 16px -8px rgba(24,45,90,.45);
  transition:transform .28s cubic-bezier(.2,.7,.2,1), box-shadow .28s;}
.contact-btn:hover{
  transform:translateY(-50%) translateX(3px) !important;   /* subtle nudge out */
  box-shadow:5px 7px 20px -8px rgba(24,45,90,.55);}
.contact-btn::after{content:none !important;}   /* no sheen sweep on this one */

/* glossy sheen sweep on hover */
.btn,button[type="submit"],.subscribe__submit,.contact-form__submit,
.wp-block-button__link,input[type="submit"],.contact-btn{position:relative; overflow:hidden;}
.btn::after,button[type="submit"]::after,.subscribe__submit::after,.contact-form__submit::after,
.wp-block-button__link::after,input[type="submit"]::after,.contact-btn::after{
  content:""; position:absolute; top:0; bottom:0; left:-150%; width:55%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.5), transparent);
  transform:skewX(-22deg); pointer-events:none;}
.btn:hover::after,button[type="submit"]:hover::after,.subscribe__submit:hover::after,
.contact-form__submit:hover::after,.wp-block-button__link:hover::after,
input[type="submit"]:hover::after,.contact-btn:hover::after{
  animation:airy-sheen .8s ease;}
@keyframes airy-sheen{to{left:150%;}}
input[type="text"],input[type="email"],textarea,.subscribe__input{
  font-family:var(--pjs); color:var(--ink);
  border:1px solid var(--glass-brd); border-radius:11px; background:var(--glass-strong); padding:12px 16px;}
input::placeholder,textarea::placeholder{color:var(--ink-faint);}
input:focus,textarea:focus{outline:none; border-color:var(--blue-2);
  box-shadow:0 0 0 4px rgba(37,99,235,.16);}
#back-to-top,.back-to-top{border-radius:13px !important;
  background:var(--glass-strong) !important; color:var(--blue-ink) !important;
  border:1px solid var(--glass-brd) !important; box-shadow:var(--shadow) !important;}
/* ---- Feedback modal — restyle into the calm airy look ---- */
.modal-frame{background:rgba(15,23,42,.5) !important;
  -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);}
.modal-frame .contact-form{
  border-radius:20px !important; background:#fff !important; padding:6px !important;
  border:1px solid var(--glass-brd); box-shadow:var(--shadow-hi);}
.contact-form__frame{border:0 !important; border-radius:16px !important;
  padding:32px clamp(22px,4vw,38px) !important;}
.contact-form__label{color:var(--ink) !important; font-weight:800 !important;
  font-size:22px !important; letter-spacing:-.02em; margin-bottom:22px !important;}
.contact-form .form-input input,.contact-form__input textarea{
  border:1px solid var(--line) !important; border-radius:12px !important;
  background:#fff !important; color:var(--ink) !important;
  padding:12px 14px !important; font-size:15px !important;}
.contact-form .form-input input:focus,.contact-form__input textarea:focus{
  border:1px solid var(--blue-2) !important; outline:0 !important;
  box-shadow:0 0 0 4px rgba(37,99,235,.14) !important;}
.contact-form .form-input input::placeholder,.contact-form__input textarea::placeholder{
  color:var(--ink-faint) !important; font-size:15px !important;}
.contact-form__comment{height:110px !important; resize:vertical;}
.contact-form__close{
  background:var(--blue-tint) !important; color:var(--blue-ink) !important;
  width:34px !important; height:34px !important; border-radius:10px !important;
  font-size:15px !important; font-weight:700 !important; line-height:1 !important;
  display:flex !important; align-items:center; justify-content:center;
  box-shadow:none !important; transition:background .2s;}
.contact-form__close:hover{background:#dbe6ff !important;}
.contact-form__subscribe{color:var(--ink-soft) !important;
  display:flex; align-items:center; gap:9px; margin-top:6px;}
.contact-form__subscribe input{width:18px !important; height:18px !important;
  accent-color:var(--blue); margin:0 !important;}
.contact-form__submit{border-radius:12px !important;}

/* ============================================================
   FOOTER — three equal, aligned cards on one clean grid
   ============================================================ */
.footer{margin-top:66px; padding-top:54px;
  background:linear-gradient(180deg,transparent, rgba(37,99,235,.05)) !important;}

/* normalise Bootstrap's mismatched columns into an even 3-up grid */
.footer .row.justify-content-around{
  display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  grid-auto-flow:row; gap:24px; align-items:stretch;
  max-width:1160px; margin:0 auto !important;}
/* Bootstrap adds a clearfix ::before/::after on .row — as a grid container
   those become phantom grid items and shove every card one cell over.
   Neutralise them so the three real columns line up. */
.footer .row.justify-content-around::before,
.footer .row.justify-content-around::after{content:none !important; display:none !important;}
.footer .row.justify-content-around > [class*="col-"]{
  width:auto !important; max-width:none !important; min-width:0 !important; flex:0 1 auto !important;
  padding:0 !important; margin:0 !important; display:flex !important;}

/* every column is the same card: same padding, border, height */
.footer .nav-foot,
.footer .footer-box{
  flex:1; height:100%; margin:0;
  padding:26px 26px; border-radius:16px;
  background:#fff; border:1px solid var(--line); box-shadow:0 12px 30px -22px rgba(24,45,90,.28);}

/* consistent card heading (the links column gets one via ::before) */
.footer .footer-header{color:var(--ink); font-weight:700; font-size:15px;
  letter-spacing:.01em; margin:0 0 16px;}
.footer .nav-foot{list-style:none;}
.footer .nav-foot::before{content:"Navigation"; display:block;
  color:var(--ink); font-weight:700; font-size:15px; margin:0 0 16px;}
.footer .nav-foot li{display:inline !important; margin:0 !important;}
.footer .nav-foot li a{display:inline !important;}   /* theme sets block → forces stacking */
.footer .nav-foot li:not(:last-child)::after{
  content:"|"; margin:0 9px; color:var(--ink-faint); opacity:.55; font-weight:400;}

.footer .footer-link,.footer .nav-foot a,.footer a{color:var(--ink-soft);
  text-decoration:none; transition:color .2s;}
.footer .footer-link:hover,.footer .nav-foot a:hover,.footer a:hover{color:var(--blue-ink);}

.footer .subscribe .form-input{display:flex; gap:8px; flex-wrap:wrap;}
.copyright-container{background:transparent !important;}
.footer-bottom,.footer-bottom *{color:var(--ink-faint) !important;}

@media (max-width:820px){
  /* !important needed to beat the base rule's !important above */
  .footer .row.justify-content-around{grid-template-columns:1fr !important; max-width:440px;}}

/* ============================================================
   RESPONSIVE
   ============================================================ */
/* mobile menu is stacked → the sliding underline doesn't fit; drop it,
   keep a clean colour change instead */
@media (max-width:991px){
  .navbar-custom .menu-header a::after{display:none !important;}
  .navbar-custom .menu-header a{padding:10px 6px !important;}
}
@media (max-width:768px){
  .section{padding:44px 0;}
  .frontpage-4cols .cols.columns-row.row-4{grid-template-columns:1fr; max-width:440px;}
  .navbar.navbar-custom{width:calc(100% - 20px);}
}
@media (max-width:480px){
  .frontpage-4cols .entry .content-icon{flex-direction:column; text-align:center; gap:14px;}
  .frontpage-4cols .content-icon .title::after{margin-top:6px;}
}
