/** =========================================================
   BOSWELL EMPLOYMENT LAW — FULL SITE STYLES
========================================================= */
/* =========================================================
   Avenir Next LT Pro — Self Hosted Fonts (OTF)
   MUST be loaded before :root variables
========================================================= */

/* Regular */
@font-face {
  font-family: "Avenir Next LT Pro";
  src: url("/wp-content/themes/boswell-classic/assets/fonts/Avenir Next LT Pro Regular/Avenir Next LT Pro Regular.otf") format("opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* Demi */
@font-face {
  font-family: "Avenir Next LT Pro Demi";
  src: url("/wp-content/themes/boswell-classic/assets/fonts/Avenir Next LT Pro Demi/Avenir Next LT Pro Demi.otf") format("opentype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ---------- ROOT TOKENS ---------- */
:root{
  --be-navy:#263747;
  --be-navy-dark:#1b2b34;
  --be-gold:#f2b400;
  --be-white:#ffffff;
  --be-text:#0f172a;
  --be-muted:#64748b;
  --be-border:rgba(15,23,42,.12);
  --be-header-h:140px;

  /* Typography */
  --be-font-heading: "Avenir Next LT Pro Demi",
                     "Avenir Next Demi Bold",
                     "Avenir Next",
                     system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  --be-font-body: "Avenir Next LT Pro",
                  "Avenir Next",
                  "Segoe UI",Roboto,Arial,sans-serif;
}


/* ---------- RESET ---------- */
html,body{margin:0;padding:0;}
*,*:before,*:after{box-sizing:border-box;}

/* ---------- BODY ---------- */
body{
  font-family:var(--be-font-body);
  font-size:18px;
  line-height:1.6;
  color:var(--be-text);
  background:#fff;
}

/* ---------- BLOCK THEME FIXES ---------- */
.wp-block-post-title,
.wp-site-blocks .wp-block-post-title{
  display:none!important;
}
.entry-content{padding:0!important;max-width:none!important;}

/* ---------- HEADINGS ---------- */
h1,h2,h3,h4,h5,h6{
  font-family:var(--be-font-heading);
}
h1{font-size:clamp(2.6rem,4vw,3.6rem);}
h2{font-size:clamp(2.1rem,3vw,2.8rem);}
h3{font-size:1.6rem;}

/* ---------- LINKS ---------- */
a{text-decoration:none;color:var(--be-navy);}
a:hover{color:var(--be-navy-dark);}


/* =========================================================
   HOME HERO — FULL-BLEED DESKTOP (HEAD SAFE)
   MOBILE: SHOW ENTIRE IMAGE (SHRINK / NO CROP)
========================================================= */

.entry-content .be-hero,
.wp-block-post-content .be-hero,
.wp-site-blocks .be-hero{
  width:100vw !important;
  max-width:none !important;
  position:relative !important;
  left:50% !important;
  right:50% !important;
  margin-left:-50vw !important;
  margin-right:-50vw !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding:0 !important;
}

section.be-hero{
  padding:0 !important;
  margin:0 !important;
  background:#fff;
}

.be-hero__media{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#fff;
  border-radius:0 !important;
}

.be-hero__img{
  width:100% !important;
  height:clamp(560px, 52vw, 900px) !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center top !important;
}

@media (max-width:1125px){
  .be-hero__img{
    height:clamp(460px, 62vw, 720px) !important;
  }
}

@media (max-width:768px){
  .be-hero__media{
    overflow:hidden !important;
    background:#fff;
  }

  .be-hero__img{
    height:auto !important;
    max-height:78vh !important;
    object-fit:contain !important;
    object-position:center center !important;
    background:#fff;
  }
}

@media (max-width:480px){
  .be-hero__img{ max-height:70vh !important; }
}

/* =========================================================
   TWO-STAGE NAV
   Desktop (>1125): full header top + compact slides in after scroll
   Mobile (<=1125): ONLY compact sticky header + hamburger + panel
========================================================= */

:root{ --be-compact-h: 64px; }

/* ---------- FULL HEADER (DESKTOP ONLY) ---------- */
.be-header--full{
  position: relative;
  background: var(--be-navy);
  border-bottom: 4px solid var(--be-gold);
}

.be-header--full .be-header__inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: 22px 22px;
  display: flex;
  align-items: center;
  gap: 22px;
}

.be-header--full .be-header__top{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex: 0 0 auto;
  padding: 0;
}

.be-logo-img{
  height: 56px;
  width: auto;
  max-width: 220px;
  display:block;
}

.be-header--full .be-nav{
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
  width: auto;
  padding: 0;
}

/* menu base */
.be-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  justify-content:center;
  align-items:center;
  gap: 18px;
}

/* NUKE underline */
.be-header a,
.be-header a:hover,
.be-header a:focus,
.be-header a:focus-visible,
.be-header a:active{
  text-decoration:none !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  background-image:none !important;
}

/* nav links */
.be-menu a{
  position:relative;
  font-family:var(--be-font-heading);
  font-size:14px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff !important;
  padding: 12px 8px 18px;
  white-space:nowrap;
}

/* underline */
.be-menu a::after{
  content:"";
  position:absolute;
  left:24%;
  right:24%;
  bottom:8px;
  height:3px;
  background:var(--be-gold);
  border-radius:3px;
  opacity:0;
  transform:scaleX(.65);
  transform-origin:center;
  transition:transform .35s ease,opacity .22s ease;
}

.be-menu a:hover::after,
.be-menu .current-menu-item>a::after,
.be-menu .current_page_item>a::after{
  opacity:1;
  transform:scaleX(1);
}

/* ---------- COMPACT HEADER ---------- */
.be-header--compact{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: var(--be-navy);
  border-bottom: 4px solid var(--be-gold);
  z-index: 100000;
  transform: translateY(-110%);
  opacity: 0;
  pointer-events: none;
  transition: transform .28s ease, opacity .22s ease;
}

.be-header--compact.is-visible{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.be-compact__inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: var(--be-compact-h);
}

.be-compact__logo{
  height: 38px;
  width: auto;
  max-width: 160px;
  display:block;
}

/* Desktop compact nav */
.be-compact__nav{
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
}

.be-menu--compact{ gap:18px; }
.be-menu--compact a{
  font-size:13px;
  padding:8px 6px 16px;
}

/* Hamburger base (mobile shows it) */
.be-compact__toggle{
  display:none !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 14px !important;
  width:52px !important;
  height:44px !important;
  padding:0 !important;
  cursor:pointer;
  -webkit-tap-highlight-color: transparent;
  appearance:none;
  -webkit-appearance:none;
  position: relative !important; /* needed for absolute lines */
  overflow: hidden;
}

/* SMOOTH burger -> X (no choppy reflow) */
.be-compact__toggle .be-burger-line{
  position: absolute !important;
  left: 50% !important;
  width: 22px !important;
  height: 2px !important;
  background: #fff !important;
  border-radius: 2px !important;
  transform: translateX(-50%) rotate(0deg);
  transform-origin: 50% 50%;
  opacity: 1;
  transition:
    transform .28s cubic-bezier(.2,.9,.2,1),
    opacity .18s ease;
}

.be-compact__toggle .be-burger-line:nth-child(1){ top: 14px !important; }
.be-compact__toggle .be-burger-line:nth-child(2){ top: 21px !important; }
.be-compact__toggle .be-burger-line:nth-child(3){ top: 28px !important; }

.be-header--compact.is-open .be-compact__toggle .be-burger-line:nth-child(1){
  top: 21px !important;
  transform: translateX(-50%) rotate(45deg) !important;
}
.be-header--compact.is-open .be-compact__toggle .be-burger-line:nth-child(2){
  opacity: 0 !important;
}
.be-header--compact.is-open .be-compact__toggle .be-burger-line:nth-child(3){
  top: 21px !important;
  transform: translateX(-50%) rotate(-45deg) !important;
}

.be-compact__toggle{ will-change: transform; }
.be-compact__toggle .be-burger-line{ will-change: transform, opacity; }

/* =========================================================
   DESKTOP (>=1126px) — DROPDOWNS
========================================================= */
@media (min-width:1126px){

  .be-header--full,
  .be-header--full .be-header__inner,
  .be-nav,
  .be-menu{
    overflow: visible !important;
  }

  .be-menu > li{ position: relative; }

  .be-menu > li > a{
    position: relative;
    display: inline-block;
    padding: 14px 8px 15px;
  }

  .be-menu > li > a::after{
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .58s cubic-bezier(.16,1,.3,1);
    opacity: 0.95;
  }

  .be-menu > li:hover > a::after,
  .be-menu > li:focus-within > a::after,
  .be-menu > li.current-menu-item > a::after,
  .be-menu > li.current_page_item > a::after{
    transform: scaleX(1);
  }

  .be-menu > li.menu-item-has-children > .sub-menu{
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 10px;
    min-width: 200px;
    padding: 12px 14px 10px;
    list-style: none;
    background: var(--be-navy);
    border: none;
    border-radius: 0 0 12px 12px;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-14px);
    clip-path: inset(0 100% 0 0 round 0 0 12px 12px);

    transition:
      opacity .22s ease,
      transform .42s cubic-bezier(.2,.8,.2,1),
      clip-path .46s cubic-bezier(.2,.8,.2,1),
      visibility 0s linear .22s;

    z-index: 99999;
  }

  .be-menu > li.menu-item-has-children:hover > .sub-menu,
  .be-menu > li.menu-item-has-children:focus-within > .sub-menu{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    clip-path: inset(0 0 0 0 round 0 0 12px 12px);
    transition:
      opacity .22s ease,
      transform .42s cubic-bezier(.2,.8,.2,1),
      clip-path .46s cubic-bezier(.2,.8,.2,1),
      visibility 0s;
  }

  .be-menu > li.menu-item-has-children > .sub-menu::before{
    content:"";
    position:absolute;
    left:-10px;
    right:-10px;
    top:-38px;
    height:38px;
    background: transparent;
  }

  .be-menu > li.menu-item-has-children::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:100%;
    height:16px;
    background:transparent;
  }

  .be-menu > li.menu-item-has-children > .sub-menu > li > a{
    position: relative;
    display: inline-block;
    padding: 10px 2px 12px;
    margin: 0 6px;
    color:#fff !important;
    text-transform: none !important;
    letter-spacing: .02em !important;
    font-size: 14px;
    font-weight: 700;
    background: transparent !important;
    border-radius: 0 !important;
  }

  .be-menu > li.menu-item-has-children > .sub-menu > li > a::after{
    content:"";
    position:absolute;
    left:0;
    width:80%;
    bottom:4px;
    height:3px;
    background: var(--be-gold);
    border-radius:3px;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .70s cubic-bezier(.16,1,.3,1);
  }

  .be-menu > li.menu-item-has-children > .sub-menu > li:hover > a::after,
  .be-menu > li.menu-item-has-children > .sub-menu > li:focus-within > a::after{
    transform: scaleX(1);
  }
}

/* =========================================================
   MOBILE MODE: <=1125
========================================================= */
@media (max-width:1125px){

  .be-header--full{ display:none !important; }

  .be-header--compact{
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }

  .be-compact__nav{ display:none !important; }

  .be-compact__toggle{
    display:flex !important;
    margin-left:auto !important;
  }

  body{ padding-top: var(--be-compact-h) !important; }
  .wp-site-blocks,
  .wp-block-post-content,
  .entry-content{ padding-top: 0 !important; }
}

/* =========================================================
   MOBILE PANEL: FULL HEIGHT + SCROLL (NO CUTOFF)
   JS sets --be-panel-max
========================================================= */

.be-compact__panel{
  display:block;
  max-height:0;
  overflow:hidden;

  background: var(--be-navy);
  border-top: 1px solid rgba(255,255,255,.16);

  opacity:0;
  transform: translateY(-10px);
  transition: max-height .35s ease, opacity .25s ease, transform .35s ease;

  padding: 0 18px;

  --be-panel-max: 70vh;
}

.be-header--compact.is-open .be-compact__panel{
  max-height: var(--be-panel-max);
  opacity:1;
  transform: translateY(0);

  padding: 18px 18px 22px;

  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
}

/* Panel UL */
.be-menu--panel{
  list-style:none;
  margin:0 auto;
  padding:0;
  width:100%;
  max-width: 520px;
  display:flex;
  flex-direction:column;
  align-items:center;
}

.be-menu--panel li{
  width:100%;
  margin:0;
  padding: 6px 0;
}

.be-menu--panel > li + li{
  border-top: 1px solid rgba(255,255,255,.12);
}

/* =========================================================
   MOBILE PANEL: PERFECTLY CENTERED LABEL + PERFECTLY ALIGNED ARROW
   (arrow uses grid, no “margin-top hacks”)
========================================================= */
@media (max-width:1125px){

  /* Top-level links: (spacer | label | caret) */
  .be-menu--panel > li > a{
    display:grid !important;
    grid-template-columns: 44px 1fr 44px;
    align-items:center !important;       /* ✅ vertical center for EVERYTHING */
    width:100% !important;
    text-align:center !important;

    padding: 20px 0 !important;
    line-height: 1.1 !important;         /* ✅ stable baseline */

    font-family: var(--be-font-heading) !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    font-size: 15px !important;

    color:#fff !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration:none !important;
  }

  .be-menu--panel > li > a .be-panel-label{
    grid-column: 2;
    justify-self: center;
    width: 100%;
    text-align: center;
  }

  /* Submenu accordion */
  .be-menu--panel .sub-menu{
    position: static !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;

    display:block !important;
    max-height: 0;
    overflow: hidden;
    transition: max-height .25s ease;
  }

  .be-menu--panel li.is-sub-open > .sub-menu{
    max-height: 520px;
  }

  .be-menu--panel .sub-menu li{
    padding: 0 !important;
    border-top: 1px solid rgba(255,255,255,.10);
  }

  .be-menu--panel .sub-menu a{
    display:block !important;
    width:100% !important;
    text-align:center !important;

    padding: 14px 0 !important;

    color: rgba(255,255,255,.92) !important;
    background: transparent !important;

    font-family: var(--be-font-heading) !important;
    font-weight: 700 !important;
    letter-spacing: .03em !important;
    text-transform: none !important;
    font-size: 14px !important;
  }

  .be-menu--panel .sub-menu a:hover{ opacity:.88; }
}

@media (max-width:600px){
  .be-compact__inner{ padding:10px 14px; }
  .be-compact__logo{ height:40px; max-width:160px; }
  .be-menu--panel > li > a{
    font-size:14px !important;
    letter-spacing:.06em !important;
  }
}

/* =========================================================
   OVERLAY + NO SCROLL WHEN MENU OPEN
========================================================= */
.be-mobile-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.35);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
  z-index: 99999;
}

.be-mobile-overlay.is-on{
  opacity: 1;
  pointer-events: auto;
}

html.be-no-scroll,
html.be-no-scroll body{
  overflow:hidden !important;
}
/* =========================================================
   MOBILE PANEL — FORCE PERFECT CENTER + WRAP (NO UNDERLINES)
   Paste at VERY BOTTOM of CSS
========================================================= */
@media (max-width:1125px){

  /* 2) Perfect centering layout: left spacer | label | arrow */
  .be-menu--panel > li > a{
    display:grid !important;
    grid-template-columns: 44px minmax(0,1fr) 44px !important;
    align-items:center !important;
    justify-items:center !important;    /* centers the label column */
    width:100% !important;

    /* IMPORTANT: allow wrapping */
    white-space: normal !important;
    text-align:center !important;
    line-height: 1.15 !important;
    padding: 18px 0 !important;
  }

  /* 3) Label always centered + can go to 2 lines */
  .be-menu--panel > li > a .be-panel-label{
    grid-column: 2 !important;
    justify-self:center !important;
    text-align:center !important;
    max-width: 100% !important;
    padding: 0 10px !important;         /* keeps it from touching the arrow column */
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;  /* prevents weird overflow */
    line-height: 1.2rem;
  }
}
/* =========================================================
   MOBILE PANEL (<=1125) — CENTER TEXT + ONLY ARROW (NO "BRICKS")
   Paste at VERY BOTTOM of your CSS
========================================================= */
@media (max-width:1125px){

  /* Panel links: center text, reserve space for arrow on the right */
  .be-menu--panel > li{
    position: relative !important;
  }

  .be-menu--panel > li > a{
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    text-align:center !important;

    width:100% !important;
    padding: 18px 56px 18px 56px !important; /* reserve right space for arrow */
    white-space: normal !important;          /* allow wrap */
  }

  /* KILL all stray decoration that creates the "brick" dashes */
  .be-menu--panel a{
    text-decoration:none !important;
    background-image:none !important;
    box-shadow:none !important;
    border-bottom:0 !important;
  }

  .be-menu--panel > li > a::before,
  .be-menu--panel > li > a::after,
  .be-menu--panel li::before,
  .be-menu--panel li::after{
    content:none !important;
    display:none !important;
  }
}
/* =========================================================
   MOBILE SUBMENU — DARKER BACKGROUND (VISUAL HIERARCHY)
========================================================= */
@media (max-width:1125px){

  /* Submenu container */
  .be-menu--panel .sub-menu{
    background: rgba(0,0,0,0.18) !important; /* darker panel */
    margin-top: 4px;
  }

  /* Each submenu row */
  .be-menu--panel .sub-menu li{
    background: rgba(0,0,0,0.05) !important;
    border-top: 1px solid rgba(255,255,255,0.12);
  }

  /* Submenu links */
  .be-menu--panel .sub-menu a{
    background: transparent !important;
    padding: 14px 0 !important;
    font-size: 14px !important;
    letter-spacing: .03em !important;
    color: rgba(255,255,255,0.95) !important;
  }

  /* Slight indent for hierarchy */
  .be-menu--panel li.is-sub-open > .sub-menu{
    padding-left: 0;
  }
  .be-menu{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    justify-content:center;
    align-items:center;
    gap: 0px;
  }
  .be-compact__panel{
    place-items: center !important; 
  }
}
@media (max-width:1125px){

  /* Make sure the arrow button is ACTUALLY clickable (above the link) */
  .be-menu--panel > li{ position: relative !important; }

  .be-menu--panel > li > a{
    position: relative !important;
    z-index: 1 !important;
  }

  .be-sub-toggle{
    z-index: 5 !important;
    pointer-events: auto !important;
    top: 50% !important;               /* center it properly */
    transform: translateY(-50%) !important;
  }

  /* Draw + animate the caret */
  .be-sub-toggle::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:10px !important;
    height:10px !important;
    border-right:2px solid rgba(255,255,255,.92) !important;
    border-bottom:2px solid rgba(255,255,255,.92) !important;

    transform: translate(-50%,-50%) rotate(45deg) !important;
    transform-origin:50% 50% !important;

    transition: transform .22s cubic-bezier(.2,.9,.2,1) !important;
    will-change: transform;
  }

  /* Rotate based on the button's state (this matches your JS perfectly) */
  .be-sub-toggle[aria-expanded="true"]::before{
    transform: translate(-50%,-50%) rotate(-135deg) !important;
  }
}
/* =========================================================
   FIX: keep mobile arrow aligned with the TOP ROW only
   (prevents arrow centering in the expanded <li>)
========================================================= */
@media (max-width:1125px){

  /* Make the top-level link the positioning context */
  .be-menu--panel > li > a{
    position: relative !important;
  }

  /* Anchor the toggle to the top-level row, not the whole li */
  .be-menu--panel > li > .be-sub-toggle{
    position: absolute !important;
    top: 50% !important;              /* center inside the <a> row */
    right: 8px !important;
    transform: translateY(-50%) !important;

    width: 44px !important;
    height: 44px !important;

    z-index: 10 !important;
    pointer-events: auto !important;
  }
}
@media (max-width:1125px){

  .be-menu--panel > li > a{
    position: relative !important;
    padding-right: 56px !important; /* space for arrow */
  }

  .be-menu--panel > li > a > .be-sub-toggle{
    position: absolute !important;
    right: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;

    width: 44px !important;
    height: 44px !important;

    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;

    z-index: 10 !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .be-menu--panel > li > a > .be-sub-toggle::before{
    content:"" !important;
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:10px !important;
    height:10px !important;
    border-right:2px solid rgba(255,255,255,.92) !important;
    border-bottom:2px solid rgba(255,255,255,.92) !important;
    transform: translate(-50%,-50%) rotate(45deg) !important;
    transition: transform .22s cubic-bezier(.2,.9,.2,1) !important;
  }

  .be-menu--panel > li > a > .be-sub-toggle[aria-expanded="true"]::before{
    transform: translate(-50%,-50%) rotate(-135deg) !important;
  }
}








/** =========================================================
    FOOTER — FINAL (fonts correct + LinkedIn fixed)
========================================================= */

.be-footer{
  margin-top:80px;
  background:var(--be-navy);
  border-top:4px solid var(--be-gold);
  color:rgba(255,255,255,0.90);
}

/* layout */
.be-footer__inner{
  max-width:1400px;
  margin:0 auto;
  padding:64px 32px 46px;
  display:grid;
  grid-template-columns:260px 1fr;
  gap:90px;
  align-items:start;
}

/* logo */
.be-footer__brand{
  align-self: center;
  display:inline-flex;
  align-items:center;
  text-decoration:none !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  background-image:none !important;
}
.be-footer__brand::after{ content:none !important; display:none !important; }

.be-footer__logo{
  width:180px;
  height:auto;
  border-radius:14px;
  display:block;
}

/* right side columns */
.be-footer__cols{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:44px;
}

/* titles (HEADINGS font) */
.be-footer__title{
  font-family:var(--be-font-heading);
  font-weight:600;
  font-size:17px;
  letter-spacing:.08em;
  margin:0 0 14px;
  color:#fff;
}

/* body text (BODY font) */
.be-footer__text{
  font-family:var(--be-font-body);
  font-size:16px;
  line-height:1.8;
  color:rgba(255,255,255,0.80);
}

/* quick links */
.be-footer__links{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}

/* =========================================================
   Quick Link underline — ONLY these links
   (fixes LinkedIn button being affected)
========================================================= */

.be-footer__link{
  position:relative;
  display:inline-block;
  font-family:var(--be-font-body);
  font-size:16px;
  line-height:1.35;
  color:rgba(255,255,255,0.90) !important;

  text-decoration:none !important;
  box-shadow:none !important;
  border-bottom:0 !important;
  background-image:none !important;

  padding-bottom:0; /* keep underline close */
}

.be-footer__link:hover,
.be-footer__link:focus,
.be-footer__link:focus-visible{
  color:#fff !important;
  outline:none;
}

/* GOLD underline (closer to text) */
.be-footer__link::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-6px;           /* <-- closer (was -6/-7) */
  width:70%;
  height:3px;
  background:var(--be-gold);
  border-radius:3px;

  opacity:0;
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .22s ease, opacity .22s ease;
}

.be-footer__link:hover::after,
.be-footer__link:focus::after,
.be-footer__link:focus-visible::after{
  opacity:1;
  transform:scaleX(1);
}

/* =========================================================
   LinkedIn button — NOT underlined, perfectly aligned
========================================================= */

.be-footer__col--social{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}

.be-footer__social{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;

  height:44px;
  padding:0 16px;
  min-width:260px;

  border-radius:14px;
  border:1px solid rgba(255,255,255,0.22);
  background:rgba(255,255,255,0.08);

  color:#fff !important;
  text-decoration:none !important;
  box-shadow:none !important;
  background-image:none !important;
}

.be-footer__social::after{ content:none !important; display:none !important; } /* never underline button */

.be-footer__social:hover,
.be-footer__social:focus-visible{
  background:rgba(255,255,255,0.12);
  border-color:rgba(255,255,255,0.36);
  transform:translateY(-1px);
  outline:none;
}

.be-footer__social-icon{
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
}
.be-footer__social-icon svg{
  width:20px;
  height:20px;
  display:block;
}

.be-footer__social-text{
  font-family:var(--be-font-body);
  font-size:15px;
  font-weight:500;
  line-height:1;
  opacity:.95;
}

/* bottom bar */
.be-footer__bottom{
  border-top:1px solid rgba(255,255,255,0.14);
}
.be-footer__bottom-inner{
  max-width:1400px;
  margin:0 auto;
  padding:16px 32px;
  font-family:var(--be-font-body);
  font-size:14px;
  color:rgba(255,255,255,0.72);
  text-align:center;
}

/* =========================================================
   Responsive
========================================================= */

@media (max-width:1200px){
  .be-footer__inner{
    grid-template-columns:1fr;
    gap:36px;
    justify-items:center;
    text-align:center;
  }

  .be-footer__cols{
    width:100%;
    max-width:920px;
    margin:0 auto;
    text-align:center;
  }

  .be-footer__links{
    justify-items:center;
  }

  /* center underline on tablet */
  .be-footer__link::after{
    left:50%;
    transform:translateX(-50%) scaleX(0);
    transform-origin:center;
  }
  .be-footer__link:hover::after,
  .be-footer__link:focus::after,
  .be-footer__link:focus-visible::after{
    transform:translateX(-50%) scaleX(1);
  }

  .be-footer__col--social{
    align-items:center;
  }
}

@media (max-width:980px){
  .be-footer__inner{
    padding:44px 20px 32px;
    gap:26px;
  }

  .be-footer__logo{
    width:190px;
  }

  .be-footer__cols{
    grid-template-columns:1fr;
    gap:22px;
    max-width:560px;
  }

  .be-footer__social{
    width:100%;
    max-width:340px;
    min-width:0;
  }
}
/* Tighten space between LinkedIn title and button */
.be-footer__col--social{
  gap: 8px; /* was 12px */
}

/* Reduce bottom margin under the "LinkedIn" title only */
.be-footer__col--social .be-footer__title{
  margin-bottom: 6px; /* was 14px */
}
/* =========================================================
   LinkedIn button — premium hover (invert + lift)
========================================================= */

.be-footer__social{
  transition:
    background .35s ease,
    color .35s ease,
    border-color .35s ease,
    transform .35s ease,
    box-shadow .35s ease;
}
/* Smooth icon + text color transition */
.be-footer__social-icon,
.be-footer__social-icon svg,
.be-footer__social-text{
  transition:
    color .25s ease,
    opacity .25s ease,
    transform .25s ease;
}

/* Hover / focus */
.be-footer__social:hover,
.be-footer__social:focus-visible{
  background:#ffffff;                 /* clean white */
  color:var(--be-navy) !important;    /* navy text */
  box-shadow:0 8px 22px rgba(0,0,0,.18);
  outline:none;
}

/* Icon switches to navy automatically */
.be-footer__social:hover .be-footer__social-icon,
.be-footer__social:focus-visible .be-footer__social-icon{
  color:var(--be-navy);
}

/* Text switches cleanly */
.be-footer__social:hover .be-footer__social-text,
.be-footer__social:focus-visible .be-footer__social-text{
  color:var(--be-navy);
  opacity:1;
}


/* =========================================================
   HOME HERO — Desktop: cover (head safe)
   Mobile: show ENTIRE image (no crop) + shrink properly
========================================================= */

/* Full-bleed breakout */
.entry-content .be-hero,
.wp-block-post-content .be-hero,
.wp-site-blocks .be-hero{
  width:100vw !important;
  max-width:none !important;
  position:relative !important;
  left:50% !important;
  right:50% !important;
  margin-left:-50vw !important;
  margin-right:-50vw !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding:0 !important;
}

section.be-hero{
  padding:0 !important;
  margin:0 !important;
  background:#fff;
}

/* MEDIA wrapper */
.be-hero__media{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:#fff;
  border-radius:0 !important;
}

/* DESKTOP/TABLET: full bleed, keep heads, crop feet */
.be-hero__img{
  width:100% !important;
  height:clamp(560px, 52vw, 900px) !important;
  display:block !important;
  object-fit:cover !important;
  object-position:center top !important;
}

/* Medium */
@media (max-width:1125px){
  .be-hero__img{
    height:clamp(460px, 62vw, 720px) !important;
  }
}

/* ---------------------------------------------------------
   MOBILE: force "no crop" mode
   Key fixes:
   - remove any forced heights
   - allow wrapper to grow
   - ensure image can shrink and show whole thing
--------------------------------------------------------- */
@media (max-width:768px){

  /* If the theme/blocks forced a height, kill it */
  section.be-hero,
  .be-hero__media{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    overflow:visible !important;
  }

  /* If WP Cover block exists inside hero, kill its forced height too */
  .be-hero .wp-block-cover,
  .be-hero .wp-block-cover__inner-container,
  .be-hero .wp-block-cover__image-background{
    min-height:0 !important;
    height:auto !important;
    max-height:none !important;
  }

  /* Let the image fully show */
  .be-hero__img{
    height:auto !important;
    max-height:70vh !important;       /* IMPORTANT: prevents massive image */
    width:100% !important;
    object-fit:contain !important;    /* SHOW FULL IMAGE */
    object-position:center top !important;
    background:#fff;
  }
}

@media (max-width:480px){
  .be-hero__img{
    max-height:64vh !important;
  }
}




/* =========================================================
   HOME PAGE 2 — SPLIT SECTIONS + PARALLAX (New Fonts)
========================================================= */
/* =========================================================
   HOME — SPLIT SECTIONS (Premium)
   Uses your shortcode markup as-is:
   .be-sections > .be-container > .be-split
========================================================= */

/* IMPORTANT:
   Your global rule: section,.wp-block-group { padding:96px 32px; }
   We must override for this section or it gets double padding.
*/
section.be-sections{
  padding: 0 !important;
  margin: 0 !important;
  background: #fff;
}

/* Wider, cleaner gutters so it’s not close to walls */
.be-sections .be-container{
  max-width: 90%;                 /* slightly narrower than site max */
  margin: 0 auto;
  padding: 0 64px;                   /* BIG side breathing room */
}

/* Overall vertical rhythm */
.be-sections .be-split{
  display: grid;
  grid-template-columns: 1.05fr 1fr; /* text slightly wider */
  gap: 72px;
  align-items: center;

  padding: 110px 0;                  /* BIG vertical spacing */
}

/* a subtle divider between the two rows */
.be-sections .be-split + .be-split{
  padding-top: 110px;
  border-top: 1px solid rgba(15,23,42,0.10);
}

/* swap layout for left-image row */
.be-sections .be-split--left{
  grid-template-columns: 1fr 1.05fr;
}
.be-sections .be-split--left .be-split__content{
  justify-self: start;
}

/* Content */
.be-split__content{
  max-width: 62ch;
}

/* Title (heading font) */
.be-split__title{
  margin: 0 0 16px;
  font-family: var(--be-font-heading);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.12;
  font-size: clamp(2.1rem, 2.35vw, 2.8rem);
  color: var(--be-text);
}

/* Text (body font) */
.be-split__text{
  margin: 0 0 22px;
  font-family: var(--be-font-body);
  font-size: 18px;
  line-height: 1.8;
  color: rgba(15,23,42,0.72);
}

/* Bullets (custom gold dot, clean spacing) */
.be-split__bullets{
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;

  font-family: var(--be-font-body);
  font-size: 17px;
  line-height: 1.6;
  color: rgba(15,23,42,0.78);
}
.be-split__bullets li{
  position: relative;
  padding-left: 20px;
}
.be-split__bullets li::before{
  content:"";
  position:absolute;
  left:0;
  top: 0.78em;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--be-gold);
  transform: translateY(-50%);
}

/* CTA */
.be-split__cta{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* =========================================================
   Media card (parallax container)
========================================================= */

.be-split__media{
  position: relative;
  overflow: hidden;
  border-radius: 28px;

  min-height: 520px;                 /* tall, premium */
  background: #e8eef3;

  /* depth */
  box-shadow:
    0 30px 70px rgba(0,0,0,0.14),
    0 6px 18px rgba(0,0,0,0.08);

  /* subtle border ring */
  outline: 1px solid rgba(15,23,42,0.08);
  outline-offset: -1px;
}

/* optional soft overlay so text always feels readable next to images */
.be-split__media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(
    120deg,
    rgba(38,56,70,0.10),
    rgba(38,56,70,0.00) 55%,
    rgba(38,56,70,0.08)
  );
}

/* Parallax layer */
.be-parallax{
  position:absolute;
  inset: -12%;
  background-size: cover;
  background-position: center;
  transform: translate3d(0,0,0);
  will-change: transform;
  filter: saturate(1.02) contrast(1.02);
}

/* =========================================================
   Buttons (LinkedIn-style pill)
   - smooth raise
   - swap to white bg + navy text on hover
========================================================= */

/* Base pill (applies only inside split section, won’t mess with hero/footer) */
.be-sections .be-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 46px;
  padding: 0 18px;
  border-radius: 16px;

  font-family: var(--be-font-heading);
  font-weight: 600;
  letter-spacing: .02em;
  font-size: 15px;

  text-decoration: none !important;
  box-shadow: none !important;
  background-image: none !important;

  transition:
    transform .22s ease,
    background-color .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

/* Primary: navy -> hover swap to white */
.be-sections .be-btn--primary{
  background: var(--be-navy) !important;
  color: #fff !important;
  border: 1px solid var(--be-navy) !important;

  box-shadow: 0 12px 26px rgba(0,0,0,0.14);
}
.be-sections .be-btn--primary:hover,
.be-sections .be-btn--primary:focus-visible{
  background: #fff !important;
  color: var(--be-navy) !important;
  border-color: var(--be-navy) !important;

  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(0,0,0,0.16);
  outline: none;
}

/* Ghost: outline -> hover fill navy */
.be-sections .be-btn--ghost{
  background: transparent !important;
  color: var(--be-navy) !important;
  border: 1px solid rgba(38,56,70,0.55) !important;
}
.be-sections .be-btn--ghost:hover,
.be-sections .be-btn--ghost:focus-visible{
  background: var(--be-navy) !important;
  color: #fff !important;
  border-color: var(--be-navy) !important;

  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(0,0,0,0.14);
  outline: none;
}

/* =========================================================
   Responsive
========================================================= */

@media (max-width: 1400px){
  .be-sections .be-container{
    padding: 0 48px;
  }
  .be-sections .be-split{
    gap: 56px;
  }
  .be-split__media{
    min-height: 480px;
  }
}

@media (max-width: 1125px){
  .be-sections .be-container{
    padding: 0 24px;
  }

  .be-sections .be-split{
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 64px 0;
  }

  /* image first, content second */
  .be-split__media{ order: 1; }
  .be-split__content{ order: 2; max-width: 900px; margin: 0 auto; }

  /* flush edges + clean mobile look */
  .be-split__media{
    border-radius: 0 !important;
    min-height: 340px;
    box-shadow: none;
    outline: none;
  }
  .be-split__media::after{
    display: none;
  }
  .be-parallax{
    inset: 0;
  }
}

@media (max-width: 600px){
  .be-sections .be-container{
    padding: 0 18px;
  }
  .be-split__title{
    font-size: clamp(1.75rem, 7vw, 2.25rem);
  }
  .be-split__text{
    font-size: 17px;
  }
  .be-split__media{
    min-height: 300px;
  }
  .be-sections .be-btn{
    width: 100%;
    max-width: 360px;
  }
}

/* =========================================================
   HOME SECTIONS — Parallax polish
   - Keep border radius on mobile
   - Zoom/inset so edges never show when translating
========================================================= */

.be-sections{
  padding: 90px 0 !important;              /* BIG margins top/bottom */
}

.be-container{
  max-width: 1240px;                       /* keeps content off walls */
  margin: 0 auto;
  padding: 0 28px;
}

/* Each row spacing */
.be-split{
  display:grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 56px;
  align-items:center;
  padding: 56px 0;                         /* spacing between rows */
}

/* Media card */
.be-split__media{
  position:relative;
  overflow:hidden;
  border-radius: 26px;                     /* KEEP radius always */
  min-height: 520px;
  background: #e8eef3;
  box-shadow: 0 28px 60px rgba(0,0,0,0.12);
}

/* Zoom/inset the parallax layer so you never see edges */
.be-parallax{
  position:absolute;
  inset: -18%;                              /* more than before */
  background-size: cover;
  background-position: center;
  transform: translate3d(0,0,0);
  will-change: transform;
}

/* Content styling */
.be-split__title{
  font-family: var(--be-font-heading);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.12;
  font-size: clamp(2.0rem, 2.2vw, 2.55rem);
  margin: 0 0 14px;
}

.be-split__text,
.be-split__bullets{
  font-family: var(--be-font-body);
}

/* Mobile/tablet stacking — KEEP radius + still zoomed */
@media (max-width:1125px){
  .be-sections{ padding: 64px 0 !important; }

  .be-split{
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 34px 0;
  }

  /* keep radius on mobile */
  .be-split__media{
    border-radius: 22px !important;
    min-height: 340px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.10);
  }

  /* still inset so edges never show */
  .be-parallax{
    inset: -22%;
  }
}

@media (max-width:600px){
  .be-container{ padding: 0 18px; }
  .be-split__media{ min-height: 300px; }
}





/**FIX THE EMPTY p tag appearing at the top*/
main#primary.site-main > p:empty,
main#primary.site-main > p:not([class]):empty,
main#primary.site-main > p[class=""]:empty{
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}
main#primary.site-main > p {
  display:none !important;
  margin:0 !important;
  padding:0 !important;
}




/* =========================================================
   BOSWELL — CONTACT FORM (Fluent Forms #3) — v2 FINAL
   Page: Contact Us (page-id-18)
   - Clean white card
   - Navy footer INSIDE card (message centered)
   - Yellow accent ONLY above footer
   - Bigger inputs (less radius)
   - Submit button: NAVY -> hover WHITE w/ NAVY outline + text + lift
   - Forces button color (kills FluentForms blue overrides)
========================================================= */

/* Page spacing */
body.page-id-18 .site-main{
  padding: 80px 18px 100px;
  background:#fff;
}

/* Form wrapper width */
body.page-id-18 .fluentform_wrapper_3{
  max-width: 980px;
  margin: 0 auto;
}

/* ---------- Main Card ---------- */
body.page-id-18 .frm-fluent-form{
  position: relative;
  background:#fff;
  border-radius: 26px;
  border: 1px solid rgba(15,23,42,0.10);
  box-shadow: 0 28px 90px rgba(0,0,0,0.12);
  overflow: hidden;

  /* bottom padding reserves space for the navy footer */
  padding: 38px 40px 140px;
}

/* ---------- Title (auto injected) ---------- */
body.page-id-18 .frm-fluent-form fieldset::before{
  content:"Contact Our Office";
  display:block;
  text-align:center;
  margin-bottom: 24px;

  font-family: var(--be-font-heading, inherit);
  font-weight: 700;
  font-size: clamp(32px, 3vw, 42px);
  letter-spacing: -0.02em;
  color: var(--be-navy, #243944);
}

/* Remove any old decorative pseudo elements you tried */
body.page-id-18 .frm-fluent-form fieldset::after,
body.page-id-18 .ff-el-group::before{
  content:none !important;
  display:none !important;
}

/* ---------- Labels ---------- */
body.page-id-18 .ff-el-input--label label{
  font-family: var(--be-font-heading, inherit);
  font-weight: 700;
  font-size: 14px;
  color: #0f172a;
  margin-bottom: 6px;
}

/* ---------- Inputs (bigger + less radius) ---------- */
body.page-id-18 .frm-fluent-form .ff-el-form-control{
  border-radius: 10px !important;
  border: 1px solid rgba(15,23,42,0.14) !important;

  padding: 14px 16px !important; /* bigger */
  font-size: 16px !important;    /* bigger */
  font-family: var(--be-font-body, inherit) !important;

  background:#fff !important;
  box-shadow: 0 10px 22px rgba(0,0,0,0.06) !important;

  transition:
    border-color .22s ease,
    box-shadow .22s ease,
    background-color .22s ease !important;
}

body.page-id-18 .frm-fluent-form .ff-el-form-control:focus{
  border-color: var(--be-navy, #243944) !important;
  box-shadow:
    0 14px 30px rgba(0,0,0,0.12),
    0 0 0 3px rgba(36,57,68,0.15) !important;
  outline: none !important;
}

/* Message box */
body.page-id-18 .frm-fluent-form textarea.ff-el-form-control{
  min-height: 180px !important;
  resize: vertical;
}

/* ---------- Grid spacing ---------- */
body.page-id-18 .ff-t-container{ gap:16px; }
body.page-id-18 .ff-t-cell{ padding:0 !important; }

/* ---------- hCaptcha centered ---------- */
body.page-id-18 .ff-el-hcaptcha{
  display:flex !important;
  justify-content:center !important;
  margin: 20px 0 16px !important;
}

/* ---------- Submit Button wrapper ---------- */
body.page-id-18 .ff_submit_btn_wrapper{
  text-align:center !important;
  margin-top: 6px !important;
}

/* ---------- Submit Button (FORCED NAVY, kills FF blue) ---------- */
body.page-id-18 .frm-fluent-form button.ff-btn.ff-btn-submit,
body.page-id-18 .frm-fluent-form .ff_submit_btn_wrapper button.ff-btn-submit,
body.page-id-18 .frm-fluent-form .ff-btn-submit{
  height: 46px !important;
  padding: 0 28px !important;

  border-radius: 10px !important; /* less round */
  border: 2px solid var(--be-navy, #243944) !important;
  background: var(--be-navy, #243944) !important; /* START NAVY */
  color:#fff !important; /* START WHITE */

  font-family: var(--be-font-heading, inherit) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .02em !important;

  appearance:none !important;
  -webkit-appearance:none !important;
  background-image:none !important;

  transform: translateY(0) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,0.14) !important;

  transition:
    background-color .35s ease,
    color .35s ease,
    border-color .35s ease,
    transform .35s ease,
    box-shadow .35s ease !important;
}

/* Hover/focus: WHITE bg, NAVY outline + text, lift (NO yellow glow) */
body.page-id-18 .frm-fluent-form button.ff-btn.ff-btn-submit:hover,
body.page-id-18 .frm-fluent-form button.ff-btn.ff-btn-submit:focus-visible,
body.page-id-18 .frm-fluent-form .ff-btn-submit:hover,
body.page-id-18 .frm-fluent-form .ff-btn-submit:focus-visible{
  background:#fff !important;
  color: var(--be-navy, #243944) !important;
  border-color: var(--be-navy, #243944) !important;
  outline:none !important;
}

/* Kill any plugin focus rings */
body.page-id-18 .frm-fluent-form button.ff-btn.ff-btn-submit:focus,
body.page-id-18 .frm-fluent-form .ff-btn-submit:focus{
  outline:none !important;
}

/* =========================================================
   PAGE SPACING FIX (attach hero, keep form spacing)
========================================================= */

/* Remove global top padding so hero can attach */
body.page-id-18 .site-main{
  padding: 0 0px 0px !important; /* no top padding */
  background:#fff;
}

/* Keep your vertical spacing for the form area ONLY */
body.page-id-18 .bel-contact-hero + .ff-el-form-container,
body.page-id-18 .bel-contact-hero + .fluentform_wrapper_3,
body.page-id-18 .bel-contact-hero + .fluentform_wrapper,
body.page-id-18 .bel-contact-hero + .ff_form_wrap,
body.page-id-18 .bel-contact-hero + .ff-el-form,
body.page-id-18 .bel-contact-hero + *{
  margin-top: 80px !important; /* recreates the spacing you wanted */
}

/* If WP wraps the shortcode output, still remove the gap */
body.page-id-18 .entry-content p:has(.bel-contact-hero){
  margin: 0 !important;
}

/* =========================================================
   CARD FOOTER (inside the card)
========================================================= */

/* Yellow accent line above footer */
body.page-id-18 .frm-fluent-form::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:96px;      /* sits right above the navy footer */
  height:4px;
  background: var(--be-gold, #f2b400);
}

/* Navy footer with centered message */
body.page-id-18 .frm-fluent-form::before{
  content:"Send us a message and we’ll get back to you as soon as possible.";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:96px;

  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  padding: 0 24px;
  background: var(--be-navy, #243944);
  color:#fff;

  font-family: var(--be-font-body, inherit);
  font-size: 15px;
  line-height:1.6;
}

/* ---------- Mobile ---------- */
@media (max-width: 768px){
  body.page-id-18 .frm-fluent-form{
    padding: 32px 18px 140px;
    border-radius: 22px;
  }
}


/* ---- SELECT: keep it clean and native-friendly ---- */
body.page-id-18 select.ff-el-form-control{
  -webkit-appearance: auto !important; /* let browser render it */
  -moz-appearance: auto !important;
  appearance: auto !important;

  border-radius: 10px !important;
  border: 1px solid rgba(15,23,42,0.16) !important;

  padding: 14px 16px !important;
  font-size: 16px !important;

  box-shadow: none !important;          /* remove shadow (helps mismatch) */
  background: #fff !important;
  color: #0f172a !important;

  transition: border-color .25s ease, box-shadow .25s ease !important;
}

body.page-id-18 select.ff-el-form-control:focus{
  border-color: var(--be-navy, #243944) !important;
  box-shadow: 0 0 0 3px rgba(36,57,68,0.14) !important;
  outline: none !important;
}
/* Tom Select control (closed select) */
body.page-id-18 .ts-control{
  border-radius: 10px !important;
  border: 1px solid rgba(15,23,42,0.14) !important;
  padding: 14px 16px !important;
  min-height: 48px;
  box-shadow: 0 10px 22px rgba(0,0,0,0.06);
  font-family: var(--be-font-body);
  font-size: 16px;
}

/* Focus ring like your inputs */
body.page-id-18 .ts-wrapper.focus .ts-control{
  border-color: var(--be-navy, #243944) !important;
  box-shadow:
    0 14px 30px rgba(0,0,0,0.12),
    0 0 0 3px rgba(36,57,68,0.15) !important;
}

/* Dropdown panel (THIS is the part native select can’t do) */
body.page-id-18 .ts-dropdown{
  border-radius: 10px !important;
  border: 1px solid rgba(15,23,42,0.14) !important;
  overflow: hidden !important;
  box-shadow: 0 18px 44px rgba(0,0,0,0.14) !important;
  margin-top: 6px;
  font-family: var(--be-font-body);
}

/* Options */
body.page-id-18 .ts-dropdown .option{
  padding: 12px 14px;
  font-size: 16px;
}

/* Hover / active */
body.page-id-18 .ts-dropdown .option.active,
body.page-id-18 .ts-dropdown .option:hover{
  background: rgba(36,57,68,0.10);
  color: var(--be-navy, #243944);
}

/* =========================================================
   BOSWELL — Fluent Forms SUCCESS MESSAGE (Form #3 / Page 18)
   Makes the success box look like the SAME big premium card
========================================================= */

body.page-id-18 #fluentform_3_success.ff-message-success{
  max-width: 980px;
  margin: 0 auto 110px;
  position: relative;
  overflow: hidden;

  background: #fff;
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 26px;
  box-shadow: 0 28px 90px rgba(0,0,0,0.12);

  /* room for footer */
  padding: 58px 34px 150px;

  text-align: center;
  font-family: var(--be-font-body, inherit);
  font-size: 18px;
  line-height: 1.7;
  color: rgba(15,23,42,0.82);

  /* FluentForms sometimes adds its own styles */
  outline: none;
}

/* Title above the message */
body.page-id-18 #fluentform_3_success.ff-message-success::before{
  content: "Message Sent";
  display: block;
  margin: 0 0 10px;

  font-family: var(--be-font-heading, inherit);
  font-weight: 800;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--be-navy, #243944);
}

/* Gold accent line above footer */
body.page-id-18 #fluentform_3_success.ff-message-success::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 96px;
  height: 4px;
  background: var(--be-gold, #f2b400);
}

/* Navy footer band (inside the card) */
body.page-id-18 #fluentform_3_success.ff-message-success{
  background:
    linear-gradient(
      to bottom,
      #fff 0%,
      #fff calc(100% - 96px),
      var(--be-navy, #243944) calc(100% - 96px),
      var(--be-navy, #243944) 100%
    );
}

/* Footer text line (we inject it via a span if present, but also works without) */
body.page-id-18 #fluentform_3_success.ff-message-success .bel-success-footer{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 96px;

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  padding: 0 24px;

  font-family: var(--be-font-body, inherit);
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,0.92);
}

/* Mobile */
@media (max-width: 768px){
  body.page-id-18 #fluentform_3_success.ff-message-success{
    border-radius: 22px;
    padding: 46px 18px 150px;
    font-size: 17px;
  }
}
