/*
Theme Name: Astra Child Pandabula
Theme URI: -
Description: Child theme for Astra
Author: pandabula.xyz
Author URI: pandabula.xyz
Template: astra
Version: 1.0
*/

@import url("../astra/style.css");








/* FULL BODY SETTINGS */
html, body {
    overflow-x: hidden !important;
}


/* Disable smooth scroll just for the instant we restore */
html.suppress-smooth-scroll {
  scroll-behavior: auto !important;
}

/* Lock scroll only while the mobile menu is open */
/* Keep things calm when the overlay menu is open */
body.ast-main-header-nav-open {
  overscroll-behavior: contain;   /* stops rubber-band peeking on mobile */
  touch-action: none;             /* prevents stray gestures while open */
}







// MAKE HEADER STICKY
.main-header-bar {
    position: fixed;
    top: 0;
    width: 100%;
}

// IF LOGGED IN WITH WP ADMIN BAR
body.admin-bar .main-header-bar { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .main-header-bar { top: 46px; }
}




/* Fixed header wrappers */
#ast-desktop-header,
#ast-mobile-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 9999;
  
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  backdrop-filter: blur(8px);
}

/* Use a CSS var for body offset so content doesn't hide behind the header */
body.has-fixed-header {
  padding-top: var(--header-h, 80px);
}


/*#ast-desktop-header .main-header-bar {
  min-height: 60px !important;
  height: 60px !important;
}*/

/* Transitions (same as before) */
#ast-desktop-header .main-header-bar,
#ast-mobile-header .main-header-bar,
#ast-desktop-header .ast-above-header {
  transition: background-color 0.5s ease, box-shadow 0.5s ease, backdrop-filter 0.5s ease !important;
}

html:not(.scrolled) #ast-desktop-header .main-header-bar, 
html:not(.scrolled) #ast-mobile-header .main-header-bar, 
html:not(.scrolled) #ast-desktop-header .ast-above-header  {
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

html:not(.scrolled) #ast-desktop-header .main-header-bar,
html:not(.scrolled) #ast-mobile-header .main-header-bar,
html:not(.scrolled) #ast-desktop-header .ast-above-header {
//  background: rgba(42, 130, 200, 0.35) !important;
  background: rgba(1, 73, 147, 0.35) !important;
  box-shadow: none;
}

html.scrolled #ast-desktop-header .main-header-bar,
html.scrolled #ast-mobile-header .main-header-bar,
html.scrolled #ast-desktop-header .ast-above-header {
  background: rgba(1, 73, 147, 1) !important;
  backdrop-filter: blur(8px);
}




/* HEADER ANIMATION */
/* target Astra desktop + mobile header bars (covers most setups) */
#ast-desktop-header .ast-primary-header-bar,
#ast-mobile-header  .ast-primary-header-bar,
#ast-desktop-header .main-header-bar,
#ast-mobile-header  .main-header-bar {
  will-change: opacity, transform;
}

/* start + end states */
#ast-desktop-header .ast-primary-header-bar.header-anim-start,
#ast-mobile-header  .ast-primary-header-bar.header-anim-start,
#ast-desktop-header .main-header-bar.header-anim-start,
#ast-mobile-header  .main-header-bar.header-anim-start {
  opacity: 0;
  transform: translateY(-12px);
}

#ast-desktop-header .ast-primary-header-bar.header-anim-in,
#ast-mobile-header  .ast-primary-header-bar.header-anim-in,
#ast-desktop-header .main-header-bar.header-anim-in,
#ast-mobile-header  .main-header-bar.header-anim-in {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .45s ease, transform .45s ease;
}

/* accessibility */
@media (prefers-reduced-motion: reduce) {
  #ast-desktop-header .ast-primary-header-bar.header-anim-start,
  #ast-mobile-header  .ast-primary-header-bar.header-anim-start,
  #ast-desktop-header .main-header-bar.header-anim-start,
  #ast-mobile-header  .main-header-bar.header-anim-start,
  #ast-desktop-header .ast-primary-header-bar.header-anim-in,
  #ast-mobile-header  .ast-primary-header-bar.header-anim-in,
  #ast-desktop-header .main-header-bar.header-anim-in,
  #ast-mobile-header  .main-header-bar.header-anim-in {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}












/* NAVBAR AND MOBILE MENU STYLES GENERAL */

:root{
  --menu-hover-color:  var(--ast-global-color-4);
  --menu-active-color: var(--ast-global-color-4);
  --menu-underline:    var(--ast-global-color-4);
  --menu-underline-thickness: 2px;     /* line weight */
  --menu-underline-offset: 26px;        /* gap under text */


  --mobile-menu-bg:        var(--ast-global-color-0); /* likely your dark brand */
  --mobile-menu-link:      var(--ast-global-color-4); /* you said this is white */
  --mobile-menu-hover:     var(--ast-global-color-4);
  --mobile-menu-underline: var(--ast-global-color-4);
  --mobile-underline-thickness: 2px;
  --mobile-underline-gap:  6px;
}


/* Keep underline inside the link box (desktop) */
.ast-desktop .site-header .ast-builder-menu-1 .menu-item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item > .menu-link{
  position: relative;
  display: inline-block;                     /* shrink to text */
  //padding-bottom: var(--menu-underline-offset);  /* room for the line */
}

.ast-desktop .site-header .ast-builder-menu-1 .menu-item > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item > .menu-link::after{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom: calc(var(--menu-underline-offset) - var(--menu-underline-thickness)) !important;
  height: var(--menu-underline-thickness);
  background: var(--menu-underline);
  transform: scaleX(0);
  transform-origin:left;
  transition: transform .22s ease;
}

/* 1) DESKTOP – force hover/active colors for primary menu (#1) */
.ast-desktop .site-header .ast-builder-menu-1 .menu-item:hover > .menu-link,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item:focus > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item:hover > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item:focus > .menu-link{
  color: var(--menu-hover-color) !important;
}
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current_page_item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current_page_ancestor > .menu-link,
  .ast-desktop .site-header .ast-builder-menu-2 .menu-item.current-menu-item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item.current_page_item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item.current-menu-ancestor > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item.current_page_ancestor > .menu-link{
  color: var(--menu-active-color) !important;
}

/* 2) MOBILE (Astra stacks under .ast-header-break-point) */
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item:hover > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item:focus > .menu-link,
  .ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item:hover > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item:focus > .menu-link{
  color: var(--menu-hover-color) !important;
}
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item.current_page_item > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .menu-item.current_page_ancestor > .menu-link,
  .ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item.current-menu-item > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item.current_page_item > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item.current-menu-ancestor > .menu-link,
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-2 .menu-item.current_page_ancestor > .menu-link{
  color: var(--menu-active-color) !important;
}

/* 3) Remove your old mobile reset that forced inherit (if you keep it, this beats it anyway) */
/* .ast-header-break-point .main-header-menu .current-menu-item > a,
   .ast-header-break-point .main-header-menu .current_page_item > a { color: inherit !important; } */

/* 4) Underline hover/active (animated) – desktop only */
.ast-desktop .site-header .ast-builder-menu-1 .menu-item > .menu-link,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item > .menu-link{
  position: relative;
  text-decoration: none;
}
.ast-desktop .site-header .ast-builder-menu-1 .menu-item > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item > .menu-link::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-4px;
  height:1px;
  background: var(--menu-underline);
  transform: scaleX(0);
  transform-origin:left;
  transition: transform .22s ease;
}
.ast-desktop .site-header .ast-builder-menu-1 .menu-item:hover > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link::after,
  .ast-desktop .site-header .ast-builder-menu-2 .menu-item:hover > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item.current-menu-item > .menu-link::after,
.ast-desktop .site-header .ast-builder-menu-2 .menu-item.current-menu-ancestor > .menu-link::after{
  transform: scaleX(1);
}



// MOBILE PART FOR THE COLORS AND UNDERLINE
/* Mobile drawer background */
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu.stack-on-mobile{
  background: var(--mobile-menu-bg) !important;
}

/* Mobile menu link colors (normal, hover, active) */
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item > .menu-link{
  color: var(--mobile-menu-link) !important;
}
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item:hover > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item:focus > .menu-link{
  color: var(--mobile-menu-hover) !important;
}
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-item > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current_page_item > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-ancestor > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current_page_ancestor > .menu-link{
  color: var(--mobile-menu-hover) !important;
}

/* Also tint the submenu toggles/caret to match text */
.ast-header-break-point .ast-mobile-header-wrap .ast-builder-menu-1 .ast-menu-toggle{
  color: var(--mobile-menu-link) !important;
}
/* Base: no underline by default */
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item > .menu-link{
  text-decoration: none;
}

/* Show a styled underline only on hover/current */
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item:hover > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-item > .menu-link,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-ancestor > .menu-link{
  text-decoration-line: underline;
  text-underline-offset: var(--mobile-underline-gap);
  text-decoration-thickness: var(--mobile-underline-thickness);
  text-decoration-color: var(--mobile-menu-underline);
}

/* Show underline on hover + on active/current */
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item:hover > .menu-link::after,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-item > .menu-link::after,
.ast-header-break-point .ast-builder-menu-mobile .main-header-menu .menu-item.current-menu-ancestor > .menu-link::after{
  transform: scaleX(1);
}









/* Remove highlight from button presses on mobile menu */
* {
    -webkit-tap-highlight-color: transparent;
}

// REMOVE BRAND OUTLINE UPON CLICK
/* Remove focus ring only for mouse clicks */
.site-branding a:focus:not(:focus-visible),
.ast-site-identity a:focus:not(:focus-visible),
.ast-site-title-wrap a:focus:not(:focus-visible),
.site-title a:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

.site-branding a:focus-visible,
.ast-site-identity a:focus-visible,
.ast-site-title-wrap a:focus-visible,
.site-title a:focus-visible {
  outline: 2px solid rgba(0,0,0,0.35);  /* tweak or set to none if you really must */
  outline-offset: 2px;
  box-shadow: none !important;
}

/* Kill tap highlight on mobile */
.site-branding a,
.ast-site-identity a,
.ast-site-title-wrap a,
.site-title a {
  -webkit-tap-highlight-color: transparent;
}

/* Some browsers draw a focus ring on images inside the link */
.site-branding a img:focus,
.site-branding a img:active {
  outline: none !important;
  box-shadow: none !important;
}

/* Remove navbar item outlines upon pressing */
.main-header-menu a:focus {
    outline: none;
}

.navbar a:focus,
.navbar a:active {
    outline: none !important;
    box-shadow: none !important;
}
.navbar button:focus,
.navbar button:active {
    outline: none !important;
    box-shadow: none !important;
}








/* HOME PAGE HEADER */
.home-hero-heading {
    position: absolute !important;
    top: 70%;
    background: none !important;
    background-image: none !important;
    z-index: 1;
}



/* Smooth scroll restore helper (used by JS) */
html.suppress-smooth-scroll { scroll-behavior: auto !important; }

/* Fullscreen mobile menu */
@media (max-width: 1023.98px) {




     @keyframes menuFadeIn {
        from { opacity: 0; transform: translateY(-20px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes menuFadeOut {
        from { opacity: 1; transform: translateY(0); }
        to   { opacity: 0; transform: translateY(-20px); }
    }






    /* Base mobile menu style (no animation initially) */
    .ast-builder-menu-mobile .main-header-menu.stack-on-mobile {
        position: fixed !important;
        top: 0; left: 0;
        width: 100vw; height: 100vh;
       // background-color: rgba(42, 130, 200, 0.95);
        display: flex !important;
        flex-direction: column; justify-content: center; align-items: center;
        z-index: 9999;

        opacity: 0;
        pointer-events: none;
    }

     body.ast-nav-closing
  .ast-builder-menu-mobile .main-header-menu.stack-on-mobile {
    display: flex !important;
    visibility: visible;
    pointer-events: none;
    animation: menuFadeOut 0.3s ease both; /* uses your existing keyframes */
  }

    .menu-fade-out {
        animation: menuFadeOut 0.3s ease forwards;
        pointer-events: none;
    }

    /* When toggled ON: animate in */
    body.ast-main-header-nav-open .ast-builder-menu-mobile .main-header-menu.stack-on-mobile {
        animation: menuFadeIn 0.4s ease forwards;
        pointer-events: auto;
    }

    /* When toggled OFF (optional, helps reverse if JS toggles manually) */
    body:not(.ast-main-header-nav-open) .ast-builder-menu-mobile .main-header-menu.stack-on-mobile {
        animation: menuFadeOut 0.4s ease forwards;
        pointer-events: none;
    }

    /* Menu item styling */
    .ast-builder-menu-mobile .main-header-menu.stack-on-mobile li {
        margin: 0 !important;
        padding: 0.8rem 0;
        width: 100%;
        text-align: center;
    }

    .ast-builder-menu-mobile .menu-link {
        font-size: 1.4rem;
        display: block;
        width: 100%;
    }


    /* COLLAPSIBLE MENU X BUTTON */
        body.ast-main-header-nav-open button.menu-toggle.main-header-menu-toggle[aria-expanded="true"] {
        
        z-index: 10001 !important; /* higher than menu */
        background: transparent;
        border: none;
        padding: 0.5rem;
        font-size: 2rem;
    }
    .ast-builder-menu-mobile {
        overflow: visible !important;
        position: relative !important;
        z-index: 0 !important;
    }
    .ast-mobile-header-content {
        overflow: visible !important;
        position: relative !important;
        z-index: 0 !important;
    }












    
    /* HIDE THE BRAND WHEN THE COLLAPSIBLE MENU IS OPEN */
    body.ast-main-header-nav-open .ast-site-identity {
        display: none !important;
    }

    /* REMOVE FOCUS FROM BUTTONS WHEN PRESSED */
    .menu-toggle:focus {
        outline: none !important;
        box-shadow: none !important;
    }

    .menu-toggle.toggled:focus {
        outline: none !important;
        box-shadow: none !important;
    }
    button.menu-toggle.main-header-menu-toggle:focus {
        outline: none !important;
        box-shadow: none !important;
    }

    .menu-toggle.main-header-menu-toggle.ast-mobile-menu-trigger-minimal:focus {
        outline: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    [data-section="section-header-mobile-trigger"] .ast-button-wrap .ast-mobile-menu-trigger-minimal:focus {
        outline: none !important;
        border: none !important;
        box-shadow: none !important;
    }

    .ast-mobile-popup-drawer.active .menu-toggle-close:focus {
        outline: none !important;
        border: none !important;
        box-shadow: none !important;
    }


}








// TRANSLATE BUTTON HEADER //


/* prevent clipping */
.ast-desktop-header-content{ overflow:visible !important; }











/* ==== Generic Hero Banner Pattern ==== */

/* 1) Banner box: fixed height + positioning context */
.hero-banner{
  position: relative;
  height: var(--hero-h, 420px);       /* tweak per page via inline style */
  overflow: hidden;
  border-radius: 10px;                /* optional */
  isolation: isolate;                 /* new stacking context for z-index sanity */

  box-shadow: 0 1px 0 rgba(0,0,0,0.05); //use this or box shadow in hero banner:after.
}

/* 2) Make the Image widget fill the banner without changing banner height */
.hero-banner .hero-banner-img{
  position: absolute;                 /* critical: image won't stretch banner */
  inset: 0;
  z-index: 0;
}

/* Grab the actual <img> no matter how Elementor wraps it */
.hero-banner .hero-banner-img img,
.hero-banner > img.hero-banner-img{
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;       /* fills box; crops edges if needed */
  object-position: var(--fx, 50%) var(--fy, 50%) !important; /* focal point */
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* 3) Short non‑linear white fade band near the bottom (decorative) */
.hero-banner::after{
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: var(--fade-h, 170px);       /* how tall the band is */
  z-index: 1;                         /* above image, below title */
  pointer-events: none;

  background: linear-gradient(
    to top,
    rgba(255,255,255,0.96) 0%,
    rgba(255,255,255,0.96) 25%,
    rgba(255,255,255,0.50) 45%,
    rgba(255,255,255,0.00) 55%,
    rgba(255,255,255,0.00) 100%
  );

  //box-shadow: inset 0 1px 0 rgba(0,0,0,0.04); /* whisper-thin line */
}

/* Optional: gentle radial glow inside the band for extra softness */
.hero-banner::before{
  content: "";
  position: absolute; left: 50%; transform: translateX(-50%);
  bottom: calc(var(--fade-h,170px) * 0.45);
  width: 130%; height: 90%;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(60% 55% at 50% 80%,
    rgba(255,255,255,0.35) 0%,
    rgba(255,255,255,0) 70%);
}

/* 4) Title anchored over the fade */
.hero-banner-title{
  position: absolute;
  left: 2rem; bottom: 2.75rem;        /* adjust to taste */
  margin: 0;
  z-index: 2;                         /* above fades */
  color: #0b1b2b;
  font-weight: 800;
  text-shadow: 0 2px 10px rgba(255,255,255,.6);
}

/* Responsive tweaks */
@media (max-width: 900px){
  .hero-banner{ height: var(--hero-h, 360px); }
  .hero-banner::after{ height: var(--fade-h, 150px); }
  .hero-banner-title{ left: 1.25rem; bottom: 2rem; }
}
@media (max-width: 600px){
  .hero-banner{ height: var(--hero-h, 300px); }
  .hero-banner::after{ height: var(--fade-h, 130px); }
  .hero-banner-title{
    left: 1rem; bottom: 1.5rem;
    font-size: clamp(1.5rem, 5vw, 2rem);
  }
}
//---------------------------------------------------------------
/* Make the banner the positioning context  */
.hero-banner{ position:relative; }

/* Case A: class is on the HEADING WIDGET wrapper */
.hero-banner .elementor-widget-heading.hero-banner-title{
  position:absolute;
  left:2rem; bottom:2.75rem;
  z-index:2;
  margin:0;      /* kill wrapper margins */
  width:auto;
}

/* Reset default <h*> margin inside the widget */
.hero-banner .hero-banner-title .elementor-heading-title{
  margin:0;
}

/* Case B: class is on the actual <h1>/<h2> element */
.hero-banner h1.hero-banner-title,
.hero-banner h2.hero-banner-title,
.hero-banner h3.hero-banner-title{
  position:absolute;
  left:2rem; bottom:2.75rem;
  z-index:2;
  margin:0;
}

/* Optional: keep title comfortably inside the opaque zone */
.hero-banner .elementor-widget-heading.hero-banner-title,
.hero-banner h1.hero-banner-title,
.hero-banner h2.hero-banner-title,
.hero-banner h3.hero-banner-title{
  //bottom: clamp(1.25rem, calc(var(--fade-h,170px) * 0.35), 3rem);
  bottom: 0;
}







/* SERVICES TAB */

.card {
  border-radius: 10px !important;
}

.card:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}









// FOOTER PARTS //
/* Base sizing for the middle footer row only */
.footer-middle-row {
  font-size: 12px;
  line-height: 1.6;
}

/* Grid balance: room for address, compact right, steady middle */
.footer-middle-row .ast-builder-grid-row {
  display: grid;
  grid-template-columns: 1.25fr 1fr 0.9fr; /* L / M / R */
  gap: 24px;
}

/* Column wrappers: add these classes to the widget containers if possible */
.footer-col--left .footer-heading {
  color: #014993;
  font-weight: 600;
  /*text-transform: uppercase;*/
  letter-spacing: 0.02em;
  margin: 0 0 8px;
  font-size: 14px;
  opacity: 0.8;
}

.footer-col--left address {
  font-style: normal;
  color: #014993;
  font-size: 12px;
  margin: 0 0 6px;
}

.footer-col--left .footer-phone a {
  color: #014993;
  font-size: 12px;
  text-decoration: none;
}

.footer-col--middle .enews-title {
  margin: 0 0 6px;
  font-size: 14px;
  font-weight: 600;
}

.footer-col--middle form {
  display: flex;
  gap: 8px;
  flex-wrap: nowrap;
}

.footer-col--middle input[type="email"] {
  flex: 1 1 220px;      /* lets it shrink but not too small */
  max-width: 260px;     /* narrower look on desktop */
  padding: 8px 10px;
  border: 1px solid var(--ast-border-color, #e3e3e3);
  border-radius: 4px;
  font-size:12px;
}

.footer-col--middle button[type="submit"] {
  min-width: 120px;     /* make button visibly wider */
  white-space: nowrap;  /* no “subscr-ibe” split */
  color: white !important;
  background-color: #014993 !important;
  padding: 8px 16px;
  border-radius:4px;
  font-size:12px;
}




/* Desktop: push all widgets in footer column #3 to the bottom */
@media (min-width: 991.98px){
  .site-footer-primary-section-3.site-footer-section.site-footer-section-3{
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important; /* contents sit at the bottom */
    align-items: flex-end !important;   /* keep each widget’s horizontal alignment */
    align-self: stretch !important;       /* make this column match row height */
  }
  /* kill any default top margins that create phantom space */
  .site-footer-primary-section-3.site-footer-section.site-footer-section-3 > *{
    margin-top: 0 !important;
    align-items: flex-start !important;   /* keep each widget’s horizontal alignment */
  }
}



/* Right column: vertical stack; policies horizontal with wrap */
.footer-col--right {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-end; /* keep policies aligned right */
  margin-top: 5px !important;
}

@media (max-width: 991px) {
  .footer-col--right {
    margin-top: 10px;
  }
}

.footer-col--right .policies {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media (min-width: 991.98px) {
  .footer-col--right .policies {
    justify-content: flex-end;
  }
}
@media (max-width: 991px) {
  .footer-col--right .policies {
    justify-content: flex-start;
  }
}

.footer-col--right .policies a {
  text-decoration: none;
  color: #014993;
  font-size: 12px;
  opacity: 0.9;
}

.footer-col--right .policies .sep {
  opacity: 0.4;
}

/* === LinkedIn segmented button === */
:root{
  --li-blue: #0A66C2;     /* button background */
  --li-fg:   #fff;        /* icon + text color */
  --li-icon-size: 12px;   /* tweak to 11/14 if you want */
}

/* Segmented button */
.linkedin-seg-btn{
  display: inline-flex;
  align-items: center;
  background: var(--li-blue);
  color: var(--li-fg);
  border-radius: 4px;
  overflow: hidden;
  font-size: 12px;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 0 0 1px rgba(0,0,0,.04) inset;
}

/* Icon chunk: never stretches */
.linkedin-seg-btn .icon{
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  padding: 3px 8px; /* adjust 2–4px to change height */
  border-right: 1px solid rgba(255,255,255,.65);
}
.linkedin-seg-btn .li-icon{
  width: var(--li-icon-size);
  height: var(--li-icon-size);
  display: block;           /* removes baseline gap */
  color: #ffffff;      /* inherits from button color (--li-fg) */
}

/* Text chunk */
.linkedin-seg-btn .text{
  padding: 3px 12px;        /* adjust 3/4px for exact height match */
  font-weight: 600;
  white-space: nowrap;      /* no “subscr-ibe” type wrapping */
}

.linkedin-seg-btn:hover{ filter: brightness(1.06); }
.linkedin-seg-btn:active{ transform: translateY(1px); }

/* keep the internal layout you already added */
.linkedin-seg-btn{ display:inline-flex; align-items:center; gap:8px; line-height:1; text-decoration:none; }

/* desktop: push it to the right */
@media (min-width: 991.98px){
  footer .linkedin-seg-btn{ float:right; }
  /* clearfix so the widget height doesn't collapse if needed */
  footer .widget:after{ content:""; display:block; clear:both; }
}

/* mobile/tablet: normal flow (left) */
@media (max-width: 991px){
  footer .linkedin-seg-btn{ float:none; }
}



/* Make sure this row breathes a bit */
.footer-middle-row .ast-builder-grid-row-container-inner {
  padding-top: 16px;
  padding-bottom: 16px;
}


/* Tighter policies at 1024px to avoid the lonely wrap */
@media (max-width: 1024px){
  .footer-col--right .policies{ gap:6px; }
  .footer-col--right .policies a{ white-space: nowrap; }
  /* Optional – hide only if still wrapping: */
  /* .footer-col--right .policies .policy--disclaimer{ display:none; } */

  /* If the 3-column middle row feels tight at ~1024px, narrow the gaps a bit */
  //.footer-middle-row .ast-builder-grid-row{ gap:16px; }

  /* Mobile: remove bg color padding */
  #colophon {
    background: none !important;
  }
}

.footer-right-linkedin{ text-align: right; }
@media (max-width: 991.98px){
  .footer-col--right{ align-items: flex-start; }
  /* Keep the newsletter form from going full-bleed wide */
  .footer-col--middle form{ max-width: 420px; }

  /* Right-align just the LinkedIn widget on desktop; left on mobile */
  .footer-right-linkedin{ text-align: left; }
}





/* Mobile: stack columns nicely */
@media (max-width: 768px) {
  .footer-middle-row .ast-builder-grid-row {
    grid-template-columns: 1fr;
  }
  .footer-col--right {
    align-items: flex-start;
  }
}

/* On very small screens, allow wrap so nothing overflows */
@media (max-width: 480px){
  .footer-col--middle form{ flex-wrap: wrap; }
  .footer-col--middle input[type="email"]{ flex:1 1 100%; max-width:none; }
}


// FOOTER EXTRA
/* Target that specific widget (#text-16) and flex the inner <p> */
@media (min-width: 992px){
  .site-footer-section-3 #text-16 .textwidget > p{
    display: flex;
    justify-content: flex-end;  /* pushes the button to the right */
    margin: 0;
  }
}
@media (max-width: 991.98px){
  .site-footer-section-3 #text-16 .textwidget > p{
    display: block;             /* normal left alignment on mobile stack */
  }
}
/* Kill the stray <br> in the LinkedIn widget and policies widget */
#text-16 .textwidget br,
#text-15 .textwidget br{
  display: none;
}

/* ≥992px: make the LinkedIn widget shrink to its content and slide right */
@media (min-width: 992px){
  .site-footer-section-3 #text-16{
    width: max-content;     /* shrink-wrap to the button */
    margin-left: auto;      /* push to the right within the aside */
  }
}

/* ≤991px: normal flow on the left again */
@media (max-width: 991.98px){
  .site-footer-section-3 #text-16{
    width: auto;
    margin-left: 0;
  }
}

// ABIT MORE FOOTER EXTRA

/* <=480px: remove horizontal gap; no left indent on the button */
@media (max-width: 480px){
  footer form[aria-label="E-News subscription"]{
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;            /* kills flex/grid gap */
    column-gap: 0 !important;     /* extra safety */
    row-gap: 8px !important;      /* vertical spacing only */
  }

  /* input takes full row */
  footer form[aria-label="E-News subscription"] input[type="email"]{
    flex: 1 1 100%;
    margin: 0 !important;
  }

  /* submit has ZERO left offset on new line */
  footer form[aria-label="E-News subscription"] button[type="submit"]{
    flex: 0 0 auto;
    margin: 0 !important;         /* wipe any theme margin-left */
    align-self: flex-start;
  }

  /* nuke “margin-left on all but first child” patterns some themes use */
  footer form[aria-label="E-News subscription"] > * + *{
    margin-left: 0 !important;
  }
}
@media (max-width: 480px){
  footer form[aria-label="E-News subscription"] br{ display:none !important; }
  /* last resort: pull form to the edge if the column has inner padding */
  /* footer form[aria-label="E-News subscription"]{ margin-left:-16px; margin-right:-16px; } */
}


/* desktop+ polish for footer policy nav */
@media (min-width: 1025px){
  footer nav ul{
    display: flex !important;
    flex-wrap: wrap !important;          /* allow 2 rows if needed */
    justify-content: center !important;  /* center each row */
    gap: 6px 14px !important;            /* row-gap / column-gap */
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  footer nav li{ margin: 0 !important; }
  footer nav li > a{
    white-space: nowrap;
    padding: 0 8px !important;
    font-size: 13.5px !important;        /* nudge down to fit */
    line-height: 1.2 !important;
  }
}













// NO TEXT SELECTION //
/* (A) No selection / long-press */
html, body, html body, html body *, html body *::before, html body *::after{
  -webkit-user-select: none !important;
  -moz-user-select: none !important;
  -ms-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
}
img { -webkit-user-drag: none; user-drag: none; }

/* (B) Kill printing: hide all content and show a message */
@media print{
  body *{ display:none !important; }
  #print-block-message{ display:block !important; }
}

/* Optional: page watermark (deterrent only) */
body::after{
  content: attr(data-watermark);        /* set via JS or HTML */
  position: fixed; inset: 0; z-index: 9999;
  pointer-events: none;
  display: grid; place-items: center;
  font: 700 48px/1.2 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color: rgba(0,0,0,.08);
  transform: rotate(-24deg);
  white-space: pre-wrap;
}




// Image slide tricks classes with height definitions
/* ---- Crop frame utilities ---- */
.crop-frame {
  position: relative;
  overflow: hidden !important;     /* hides the overflow while you pan the image */
  min-height: 0 !important;  /* neuters Elementor's min-height constraints */
}

/* Fixed-height presets (use any one) */
.h-200 { height: 200px !important; }
.h-240 { height: 240px !important; }
.h-280 { height: 280px !important; }
.h-320 { height: 320px !important; }
.h-360 { height: 360px !important; }
.h-420 { height: 420px !important; }
.h-480 { height: 480px !important; }




/* Base: make the img fill its frame and crop like 'cover' */
.focal .elementor-image img,
.focal img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--fx,50%) var(--fy,50%) !important;
}

/* Axis utilities (mix & match) */
.fp-x-0   { --fx: 0%;  }
.fp-x-10  { --fx: 10%; }
.fp-x-20  { --fx: 20%; }
.fp-x-30  { --fx: 30%; }
.fp-x-40  { --fx: 40%; }
.fp-x-50  { --fx: 50%; } /* center */
.fp-x-60  { --fx: 60%; }
.fp-x-70  { --fx: 70%; }
.fp-x-80  { --fx: 80%; }
.fp-x-90  { --fx: 90%; }
.fp-x-100 { --fx: 100%; }

.fp-y-0   { --fy: 0%;  }  /* top */
.fp-y-5   { --fy: 5%;  }  
.fp-y-10  { --fy: 10%; }
.fp-y-15  { --fy: 15%; }
.fp-y-20  { --fy: 20%; }
.fp-y-25  { --fy: 25%; }
.fp-y-30  { --fy: 30%; }
.fp-y-35  { --fy: 35%; }
.fp-y-40  { --fy: 40%; }
.fp-y-45  { --fy: 45%; }
.fp-y-50  { --fy: 50%; } /* center */
.fp-y-55  { --fy: 55%; }
.fp-y-60  { --fy: 60%; }
.fp-y-65  { --fy: 65%; }
.fp-y-70  { --fy: 70%; }
.fp-y-75  { --fy: 75%; }
.fp-y-80  { --fy: 80%; }
.fp-y-85  { --fy: 85%; }
.fp-y-90  { --fy: 90%; }
.fp-y-95  { --fy: 95%; }
.fp-y-100 { --fy: 100%; } /* bottom */

/* Friendly aliases */
.fp-top     { --fy: 0%; }
.fp-center  { --fx: 50%; --fy: 50%; }
.fp-bottom  { --fy: 100%; }
.fp-left    { --fx: 0%; }
.fp-right   { --fx: 100%; }
