/* OFU text wordmark (header / sticky / footer / hidden panel)
   Both tones come from the theme palette but are pinned to fixed hex values:
   the theme swaps --primary-color per page (navy on home, maroon on inner
   pages) and the wordmark has to read the same everywhere. */
.ofu-wordmark{
  --ofu-wm-dark:#153164;  /* navy, theme primary / four-color */
  --ofu-wm-light:#E4BFA1; /* warm sand, theme third-color */
  --ofu-wm:var(--ofu-wm-dark);
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-decoration:none!important;
  color:var(--ofu-wm)!important;
  font-family:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  font-weight:700;
  font-style:normal;
  line-height:1.05;
  letter-spacing:.04em;
  text-align:center;
  text-transform:uppercase;
  white-space:nowrap;
  padding:2px 0;
  transition:opacity .2s ease;
}
.ofu-wordmark:hover,
.ofu-wordmark:focus-visible{
  color:var(--ofu-wm)!important;
  text-decoration:none!important;
  opacity:.85;
}
.ofu-wordmark span{
  display:block;
  color:inherit;
}
.ofu-wordmark__l1{
  font-size:11px;
  letter-spacing:.18em;
  font-weight:600;
}
.ofu-wordmark__l2{
  font-size:15px;
  letter-spacing:.1em;
  margin-top:1px;
}
.ofu-wordmark__l3{
  font-size:15px;
  letter-spacing:.12em;
  margin-top:1px;
}

/* The tone class is baked in per template, chosen from the background it sits
   on: --light for dark backdrops (transparent header, navy panel, maroon
   footer), --dark for light ones (white sticky header, #E1DFC6 footer). */
.ofu-wordmark--light{--ofu-wm:var(--ofu-wm-light)}
.ofu-wordmark--dark{--ofu-wm:var(--ofu-wm-dark)}

/* Mobile / default header: the theme prints an <img>, ofu-wordmark.js swaps in
   the text. Hide the image up front so there is no flash of the old logo. */
#pxl-header-mobile .pxl-header-branding > a img,
#pxl-header-mobile .pxl-logo-mobile > a img,
#pxl-header-default .pxl-header-branding > a img,
#pxl-header-default .pxl-logo-mobile > a img{
  display:none!important;
}
#pxl-header-mobile .pxl-header-branding > a,
#pxl-header-default .pxl-header-branding > a{
  min-height:38px;
  align-items:flex-start;
}
.pxl-logo-mobile > a.ofu-wordmark{
  align-items:flex-start;
}

/* Safety net for any wordmark rendered without a tone class. */
.px-header--transparent .ofu-wordmark:not([class*="ofu-wordmark--"]),
.pxl-hidden-panel-popup .ofu-wordmark:not([class*="ofu-wordmark--"]){
  --ofu-wm:var(--ofu-wm-light);
}

/* Optical nudge: 3-line wordmark sits a hair low vs single-line nav */
#pxl-header-elementor .pxl-header-elementor-main .ofu-wordmark{
  padding:0;
  position:relative;
  top:-2px;
}

/* Header row: logo / menu / burger on one vertical center line.
   Theme default .pxl-menu-primary > li > a { line-height:90px } + Elementor
   stretch/height:100% pins menu+burger to the top of the compact bar. */
#pxl-header-elementor,
#pxl-header-elementor .px-header--transparent,
#pxl-header-elementor .pxl-header-elementor-main,
#pxl-header-elementor .pxl-header-elementor-sticky{
  top:0!important;
  margin-top:0!important;
}
.pxl-header-elementor-main .e-con.e-parent,
.pxl-header-elementor-main .e-con.e-child,
.pxl-header-elementor-sticky .e-con.e-parent,
.pxl-header-elementor-sticky .e-con.e-child{
  --container-widget-align-self:center!important;
  --container-widget-height:auto!important;
  --align-items:center!important;
  align-items:center!important;
}
.pxl-header-elementor-main .e-con > .e-con-inner,
.pxl-header-elementor-sticky .e-con > .e-con-inner{
  align-items:center!important;
  display:flex!important;
}
.pxl-header-elementor-main .e-con > .e-con-inner > .elementor-element,
.pxl-header-elementor-sticky .e-con > .e-con-inner > .elementor-element,
.pxl-header-elementor-main .e-con > .elementor-element,
.pxl-header-elementor-sticky .e-con > .elementor-element{
  align-self:center!important;
  --align-self:center!important;
  height:auto!important;
  align-items:center!important;
}
.pxl-header-elementor-main .elementor-widget .elementor-widget-container,
.pxl-header-elementor-sticky .elementor-widget .elementor-widget-container{
  display:flex!important;
  align-items:center!important;
  height:auto!important;
}
.pxl-header-elementor-main .pxl-menu-primary > li > a,
.pxl-header-elementor-sticky .pxl-menu-primary > li > a{
  line-height:1!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:48px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.pxl-header-elementor-main .pxl-nav-menu .pxl-menu-primary,
.pxl-header-elementor-sticky .pxl-nav-menu .pxl-menu-primary{
  display:flex!important;
  align-items:center!important;
  margin:0!important;
  min-height:48px;
}
.pxl-header-elementor-main .elementor-widget-pxl_menu,
.pxl-header-elementor-main .elementor-widget-pxl_anchor,
.pxl-header-elementor-sticky .elementor-widget-pxl_menu,
.pxl-header-elementor-sticky .elementor-widget-pxl_anchor{
  display:flex!important;
  align-items:center!important;
  min-height:48px;
}
.pxl-header-elementor-main .pxl-anchor-button,
.pxl-header-elementor-sticky .pxl-anchor-button{
  display:flex!important;
  align-items:center!important;
  min-height:48px;
  margin:0!important;
}

/* Avoid 1px top/side seam when transparent header overlays the hero */
body.bd-px-header--transparent{
  overflow-x:clip;
}
#pxl-header-elementor .pxl-header-content,
#pxl-header-elementor .pxl-header-content > .row,
#pxl-header-elementor .pxl-header-content > .row > [class*="col-"]{
  margin-top:0!important;
  padding-top:0!important;
}

/* Keep Elementor header row transparent over the hero (no solid fill). */
#pxl-header-elementor .pxl-header-elementor-main.px-header--transparent .e-con.e-child,
#pxl-header-elementor .pxl-header-elementor-main.px-header--transparent .elementor-element-69552ae{
  background-color:transparent!important;
}

/* GTranslate language switcher (popup) in header */
.ofu-lang-slot{
  display:inline-flex;
  align-items:center;
  position:relative;
  z-index:40;
  margin-left:12px;
  flex:0 0 auto;
  overflow:visible!important;
}
.ofu-lang,
#ofu-gt-root,
.ofu-lang .gtranslate_wrapper,
#ofu-gt-root .gtranslate_wrapper{
  display:inline-flex!important;
  align-items:center;
  position:relative;
  z-index:40;
  line-height:1!important;
  height:auto!important;
  overflow:visible!important;
  font-family:"DM Sans",sans-serif!important;
}

/* Header trigger pill */
.ofu-lang a.gt_switcher-popup,
#ofu-gt-root a.gt_switcher-popup{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  min-height:40px!important;
  height:auto!important;
  padding:8px 14px 8px 10px!important;
  border:1px solid rgba(255,255,255,.32)!important;
  border-radius:999px!important;
  background:rgba(15,30,60,.42)!important;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  color:#fff!important;
  font-size:16px!important;
  font-weight:400!important;
  letter-spacing:normal!important;
  line-height:1!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  transition:background .2s ease, border-color .2s ease;
}
.ofu-lang a.gt_switcher-popup:hover,
#ofu-gt-root a.gt_switcher-popup:hover{
  background:rgba(15,30,60,.58)!important;
  border-color:rgba(228,191,161,.55)!important;
  color:#fff!important;
}
.ofu-lang a.gt_switcher-popup img,
#ofu-gt-root a.gt_switcher-popup img{
  width:18px!important;
  height:18px!important;
  border-radius:3px!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.2);
  flex:0 0 18px;
}
/* Match menu label size; keep caret compact */
.ofu-lang a.gt_switcher-popup > span,
#ofu-gt-root a.gt_switcher-popup > span{
  font-size:16px!important;
  font-weight:400!important;
  line-height:1!important;
  color:inherit!important;
}
.ofu-lang a.gt_switcher-popup > span:last-child,
#ofu-gt-root a.gt_switcher-popup > span:last-child{
  color:#E4BFA1!important;
  font-size:10px!important;
  font-weight:700!important;
  margin-left:2px;
  transform:translateY(1px);
}

/* Sticky / mobile trigger */
.pxl-header-elementor-sticky .ofu-lang a.gt_switcher-popup,
.pxl-header-elementor-sticky #ofu-gt-root a.gt_switcher-popup,
#pxl-header-mobile .ofu-lang a.gt_switcher-popup,
#pxl-header-mobile #ofu-gt-root a.gt_switcher-popup{
  color:#153164!important;
  border-color:rgba(21,49,100,.16)!important;
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 4px 14px rgba(21,49,100,.08);
}
.pxl-header-elementor-sticky .ofu-lang a.gt_switcher-popup > span:last-child,
#pxl-header-mobile .ofu-lang a.gt_switcher-popup > span:last-child{
  color:#153164!important;
  opacity:.55;
}
.pxl-header-elementor-sticky .ofu-lang a.gt_switcher-popup img,
#pxl-header-mobile .ofu-lang a.gt_switcher-popup img{
  box-shadow:0 0 0 1px rgba(21,49,100,.12);
}

/* Popup overlay + modal */
.gt_black_overlay{
  background:rgba(8,18,40,.62)!important;
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  z-index:100000!important;
}
.gt_white_content{
  top:50%!important;
  left:50%!important;
  width:min(560px, calc(100vw - 40px))!important;
  max-width:560px!important;
  height:auto!important;
  max-height:min(86vh, 640px)!important;
  margin:0!important;
  padding:32px 28px 26px!important;
  border:1px solid rgba(228,191,161,.35)!important;
  border-radius:24px!important;
  background:
    linear-gradient(180deg, #ffffff 0%, #faf8f5 100%)!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.4) inset, 0 28px 80px rgba(8,18,40,.35)!important;
  transform:translate(-50%, -50%)!important;
  z-index:100001!important;
  font-family:"DM Sans",sans-serif!important;
  overflow:auto!important;
  color:#153164!important;
  animation:ofu-gt-pop .28s cubic-bezier(.22,1,.36,1);
}
@keyframes ofu-gt-pop{
  from{opacity:0; transform:translate(-50%, calc(-50% + 12px)) scale(.97)}
  to{opacity:1; transform:translate(-50%, -50%) scale(1)}
}
.gt_white_content .ofu-gt-title{
  display:block;
  margin:0 4px 22px;
  padding:0 0 14px;
  color:#153164;
  font-family:Georgia,"Iowan Old Style","Times New Roman",Times,serif;
  font-size:1.65rem;
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.2;
  background:linear-gradient(90deg, #E4BFA1 0, #E4BFA1 42px, transparent 42px) left bottom / 100% 2px no-repeat;
}
.gt_white_content .gt_languages{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
  flex-flow:unset!important;
}
/* Kill GTranslate defaults that create the gray oval artifacts */
.gt_white_content a,
.gt_white_content .gt_languages a.glink{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  min-height:56px!important;
  height:auto!important;
  flex-basis:auto!important;
  flex:none!important;
  box-sizing:border-box!important;
  padding:14px 16px!important;
  margin:0!important;
  border:1px solid rgba(21,49,100,.08)!important;
  border-bottom:1px solid rgba(21,49,100,.08)!important;
  border-radius:14px!important;
  background:#fff!important;
  box-shadow:none!important;
  color:#153164!important;
  font-family:"DM Sans",sans-serif!important;
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.2!important;
  letter-spacing:normal!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  transition:background .18s ease, border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.gt_white_content a:hover,
.gt_white_content .gt_languages a.glink:hover{
  background:rgba(21,49,100,.04)!important;
  border-color:rgba(228,191,161,.7)!important;
  box-shadow:0 8px 22px rgba(21,49,100,.08)!important;
  transform:translateY(-1px);
  color:#153164!important;
}
.gt_white_content a.gt-current-lang,
.gt_white_content .gt_languages a.glink.gt-current-lang{
  background:rgba(21,49,100,.08)!important;
  border-color:#E4BFA1!important;
  box-shadow:0 0 0 1px rgba(228,191,161,.45), 0 10px 24px rgba(21,49,100,.1)!important;
  color:#153164!important;
  font-weight:600!important;
}
.gt_white_content a.gt-current-lang span,
.gt_white_content .gt_languages a.glink.gt-current-lang span{
  font-weight:600!important;
  color:#153164!important;
}
.gt_white_content a:focus-visible,
.gt_white_content .gt_languages a.glink:focus-visible{
  outline:2px solid #E4BFA1;
  outline-offset:2px;
}
.gt_white_content .gt_languages a.glink img,
.gt_white_content a img{
  width:26px!important;
  height:26px!important;
  border-radius:5px!important;
  flex:0 0 26px!important;
  object-fit:cover!important;
  box-shadow:0 0 0 1px rgba(21,49,100,.1);
}
.gt_white_content .gt_languages a.glink span,
.gt_white_content a span{
  font-size:16px!important;
  font-weight:400!important;
  line-height:1.2!important;
  color:#153164!important;
}

/* Mobile header: logo left, language glued to absolute hamburger */
#pxl-header-mobile .pxl-header-mobile-default{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
}
#pxl-header-mobile .pxl-header-branding{
  margin-left:15px!important;
  margin-right:0!important;
  max-width:calc(100% - 190px);
}
/* Hamburger is theme-absolute (right:15px). Park lang just beside it. */
#pxl-header-mobile .ofu-lang-slot--mobile{
  position:absolute!important;
  top:50%!important;
  right:72px!important; /* 15px edge + ~36px burger + ~21px gap */
  left:auto!important;
  bottom:auto!important;
  transform:translateY(-50%)!important;
  margin:0!important;
  z-index:60;
  flex:0 0 auto!important;
}
#pxl-header-mobile .ofu-lang-slot--mobile a.gt_switcher-popup,
#pxl-header-mobile #ofu-gt-root a.gt_switcher-popup{
  min-height:36px!important;
  padding:6px 10px 6px 8px!important;
  font-size:13px!important;
  gap:6px!important;
}
#pxl-header-mobile .ofu-lang-slot--mobile a.gt_switcher-popup > span,
#pxl-header-mobile #ofu-gt-root a.gt_switcher-popup > span{
  font-size:13px!important;
}

@media (max-width:560px){
  .gt_white_content{
    width:calc(100vw - 28px)!important;
    padding:26px 18px 20px!important;
    border-radius:20px!important;
  }
  .gt_white_content .ofu-gt-title{font-size:1.4rem}
  .gt_white_content .gt_languages{grid-template-columns:1fr!important; gap:8px!important}
  .gt_white_content a,
  .gt_white_content .gt_languages a.glink{
    min-height:52px!important;
    padding:12px 14px!important;
  }
}

/* Sticky / compact headers */
.pxl-header-elementor-sticky .ofu-wordmark__l1{
  font-size:10px;
}
.pxl-header-elementor-sticky .ofu-wordmark__l2,
.pxl-header-elementor-sticky .ofu-wordmark__l3{
  font-size:13px;
}

/* Footer wordmark can sit a touch larger */
.pxl-footer .ofu-wordmark__l1,
footer .ofu-wordmark__l1{font-size:12px}
.pxl-footer .ofu-wordmark__l2,
.pxl-footer .ofu-wordmark__l3,
footer .ofu-wordmark__l2,
footer .ofu-wordmark__l3{font-size:16px}

@media (max-width:767px){
  .ofu-wordmark__l1{font-size:10px;letter-spacing:.14em}
  .ofu-wordmark__l2,
  .ofu-wordmark__l3{font-size:12px;letter-spacing:.08em}
}
