
/* =========================================================
   OpenWork Next (UI Overrides)
   - Header desktop/mobile (off-canvas)
   - CTA block (breadcrumb replacement option)
   ========================================================= */

:root{
  --ow-bg-1:#1a1a1a;
  --ow-bg-2:#0b0b0b;
  --ow-border:rgba(255,255,255,.10);
  --ow-border-2:rgba(255,255,255,.08);
  --ow-text:#ffffff;
  --ow-muted:rgba(255,255,255,.72);
  --ow-muted-2:rgba(255,255,255,.60);
  --ow-yellow:#F2C20B;
  --ow-yellow-2:#FFD85A;
  --ow-shadow: 0 14px 40px rgba(0,0,0,.45);
}

/* Scroll lock when menu is open */
.ow-scroll-lock { overflow: hidden !important; }

/* ---------------------------
   Header shell
---------------------------- */
.ow-header{
  position: relative;
  z-index: 1000;
  padding: 18px 0;
}
.ow-header__wrap{
  background: linear-gradient(180deg, rgba(35,35,35,1), rgba(10,10,10,1));
  border: 1px solid var(--ow-border);
  border-radius: 18px;
  box-shadow: var(--ow-shadow);
  overflow: hidden;
}

/* Desktop: allow dropdown sub-menus to overflow outside the rounded header shell */
@media (min-width: 992px){
  .ow-header__wrap{ overflow: visible; }
}

/* Top bar */
.ow-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--ow-border-2);
}
.ow-topbar__items{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap:nowrap;
  overflow:hidden;
}
.ow-topitem{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 14px;
  text-decoration:none !important;
  color: var(--ow-text);
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  min-width: 0;
}
.ow-topitem:hover{ background: rgba(255,255,255,.06); }
.ow-topitem__icon{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(242,194,11,.18);
  color: var(--ow-yellow);
  flex: 0 0 auto;
}

.ow-topitem__icon img{
	width: 20px;
	height: 20px;
	object-fit: contain;
	display: block;
}
.ow-topitem__text{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.ow-topitem__title{ font-weight: 700; font-size: 15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ow-topitem__sub{ font-size: 12px; color: var(--ow-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.ow-topbar__actions{ display:flex; align-items:center; gap: 10px; }

/* Utility: show/hide elements per breakpoint */
.ow-only-mobile{ display:none !important; }
.ow-only-desktop{ display:flex !important; }

/* Icon buttons (search/burger/close) */
.ow-iconbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  color: var(--ow-text);
}
.ow-iconbtn:hover{ background: rgba(255,255,255,.06); color: var(--ow-text); }
.ow-burger{ display:none; }

/* Social icons in header (near search) */
.ow-soc--header{
	width: 42px;
	height: 42px;
	border-radius: 14px;
}

/* Main nav row */
.ow-navbar{
  display:flex;
  align-items:center;
  gap: 18px;
  padding: 14px 14px;
}
.ow-navbar__logo{ display:flex; align-items:center; }
.ow-header .custom-logo{ height: 52px; width:auto; max-width: 210px; }
.ow-logo__text{ color: var(--ow-text); font-weight: 800; text-decoration:none !important; font-size: 18px; }

/* Desktop menu */
.ow-nav--desktop{ flex:1 1 auto; }
.ow-menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 18px;
  list-style:none;
  margin:0;
  padding:0;
}
.ow-menu li{ margin:0; padding:0; }
.ow-menu a{
  color: var(--ow-text);
  text-decoration:none !important;
  font-weight: 700;
  padding: 8px 6px;
  border-radius: 10px;
  position:relative;
}
.ow-menu a:hover{ color: var(--ow-yellow-2); }
.ow-nav--desktop .ow-menu .current-menu-item > a,
.ow-nav--desktop .ow-menu .current_page_item > a{
  color: var(--ow-yellow-2);
}
.ow-nav--desktop .ow-menu .current-menu-item > a:after,
.ow-nav--desktop .ow-menu .current_page_item > a:after{
  content:'';
  position:absolute;
  left: 6px;
  right: 6px;
  bottom: 2px;
  height: 3px;
  background: var(--ow-yellow);
  border-radius: 3px;
  opacity: .95;
}

/* Mobile menu: keep active color but never use underline (underline is desktop-only) */
.ow-offcanvas .ow-menu--mobile .current-menu-item > a,
.ow-offcanvas .ow-menu--mobile .current_page_item > a,
.ow-offcanvas .ow-menu--mobile .current-menu-ancestor > a,
.ow-offcanvas .ow-menu--mobile .current_page_ancestor > a,
.ow-offcanvas .ow-menu--mobile .current-menu-parent > a,
.ow-offcanvas .ow-menu--mobile .current_page_parent > a{
  color: var(--ow-yellow-2);
}



/* Desktop dropdown for menu items with children */
.ow-nav--desktop .ow-menu > li{ position: relative; }
.ow-nav--desktop .ow-menu > li.menu-item-has-children > a{
  padding-right: 26px; /* room for caret */
}
.ow-nav--desktop .ow-menu > li.menu-item-has-children > a:before{
  content: '';
  position: absolute;
  right: 10px;
  top: 50%;
  width: 8px;
  height: 8px;
  margin-top: -5px;
  border-right: 2px solid rgba(255,255,255,.75);
  border-bottom: 2px solid rgba(255,255,255,.75);
  transform: rotate(45deg);
  opacity: .85;
  transition: transform .18s ease, opacity .18s ease;
}
.ow-nav--desktop .ow-menu > li.menu-item-has-children:hover > a:before,
.ow-nav--desktop .ow-menu > li.menu-item-has-children:focus-within > a:before{
  transform: rotate(225deg);
  opacity: 1;
}

.ow-nav--desktop .ow-menu .sub-menu{
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 320px;
  padding: 12px;
  margin: 0;
  list-style: none;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  /* More opaque background so dropdown is readable on all pages/browsers */
  background: linear-gradient(180deg, rgba(20,20,20,.98) 0%, rgba(8,8,8,.96) 60%, rgba(0,0,0,.92) 100%);
  box-shadow: 0 18px 42px rgba(0,0,0,.55);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 1100;
}
.ow-nav--desktop .ow-menu > li:hover > .sub-menu,
.ow-nav--desktop .ow-menu > li:focus-within > .sub-menu{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.ow-nav--desktop .ow-menu .sub-menu li{ margin: 0; }
.ow-nav--desktop .ow-menu .sub-menu a{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 14px;
  color: rgba(255,255,255,.90);
  font-weight: 700;
  text-decoration: none;
  background: transparent;
  transition: transform .12s ease, background .12s ease, color .12s ease;
}
.ow-nav--desktop .ow-menu .sub-menu a:hover,
.ow-nav--desktop .ow-menu .sub-menu a:focus{
  background: rgba(242, 194, 12, .10);
  color: #fff;
  transform: translateX(2px);
}
.ow-nav--desktop .ow-menu .sub-menu a:before{
  content: '';
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--ow-yellow);
  border-bottom: 2px solid var(--ow-yellow);
  transform: rotate(-45deg);
  opacity: .95;
}

/* Mobile submenu (accordion inside the drawer) */
.ow-menu--mobile li.menu-item-has-children > a{
  padding-right: 44px;
}
.ow-menu--mobile li.menu-item-has-children > a:after{
  content: '›';
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(242,194,12,.95);
  font-size: 22px;
  transition: transform .18s ease;
}
.ow-menu--mobile li.is-open > a:after{
  transform: translateY(-50%) rotate(90deg);
}
.ow-menu--mobile .sub-menu{
  display: none;
  margin: 8px 0 10px;
  padding: 0 0 0 12px;
  list-style: none;
  border-left: 1px solid rgba(255,255,255,.12);
}
.ow-menu--mobile li.is-open > .sub-menu{ display: block; }
.ow-menu--mobile .sub-menu a{
  font-size: 15px;
  opacity: .95;
  padding: 12px 12px;
}
.ow-menu--mobile .sub-menu a:after{ display:none; }


/* CTA button */
.ow-cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 14px;
  text-decoration:none !important;
  font-weight: 800;
  color: #111;
  background: linear-gradient(180deg, var(--ow-yellow-2), var(--ow-yellow));
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 10px 22px rgba(0,0,0,.30);
  white-space:nowrap;
}
.ow-cta-btn:hover{ filter: brightness(1.03); color:#111; }
.ow-cta-btn--full{ width: 100%; }

/* ---------------------------
   Off-canvas menu (mobile)
---------------------------- */
.ow-offcanvas[hidden]{ display:none !important; }

.ow-offcanvas{
  position: fixed;
  inset: 0;
  display:flex;
  justify-content:flex-end;
  z-index: 99999;
}
.ow-offcanvas__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.ow-offcanvas__panel{
  position: relative;
  width: min(86vw, 420px);
  height: 100%;
  background: linear-gradient(180deg, rgba(26,26,26,1), rgba(8,8,8,1));
  border-left: 1px solid var(--ow-border);
  box-shadow: -18px 0 44px rgba(0,0,0,.55);
  padding: 18px 18px 22px;
  overflow:auto;
}

.ow-offcanvas__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--ow-border-2);
  margin-bottom: 14px;
}
.ow-offcanvas__brand .custom-logo{ height: 56px; }
.ow-offcanvas__brandtext{ color: var(--ow-text); font-weight: 800; font-size: 18px; }

.ow-offcanvas__contacts{
  padding: 12px 0 2px;
}
.ow-offcanvas__contact{
  display:flex;
  align-items:center;
  gap: 10px;
  color: var(--ow-text);
  margin: 10px 0;
}
.ow-offcanvas__contact a{ color: var(--ow-text); text-decoration:none !important; }
.ow-offcanvas__contact a:hover{ color: var(--ow-yellow-2); }

.ow-offcanvas__hours{
  margin: 14px 0 10px;
  color: var(--ow-muted);
  text-align:center;
  font-weight: 600;
}
.ow-offcanvas__hourslabel{ color: var(--ow-text); font-weight: 800; }
.ow-offcanvas__hourslabel{
	color: var(--ow-text);
	font-weight: 800;
}

/* Mobile menu list */
.ow-menu--mobile{
  display:block;
  margin-top: 14px;
}
.ow-menu--mobile li{
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ow-menu--mobile a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 4px;
  color: var(--ow-text);
  font-weight: 700;
}
.ow-menu--mobile a:after{
  content: '›';
  color: var(--ow-yellow-2);
  font-size: 22px;
  line-height: 1;
  margin-left: 12px;
	position: static;
	left: auto;
	bottom: auto;
	width: auto;
	height: auto;
	background: none;
	transform: none;
}

/* Defensive reset: remove any parent-theme pseudo underlines in the off-canvas menu */
.ow-offcanvas .ow-menu--mobile a{ background-image:none !important; box-shadow:none !important; }
.ow-offcanvas .ow-menu--mobile a:before{ display:none !important; content:none !important; }

.ow-offcanvas__social{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-top: 18px;
  margin-top: 18px;
  border-top: 1px solid var(--ow-border-2);
}

.ow-soc__img{
	width: 22px;
	height: 22px;
	object-fit: contain;
	display: block;
}

.ow-soc__v{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	color: #111827;
	background: var(--ow-yellow);
	border-radius: 999px;
}

/* Fix "extra" active states from the parent theme: only highlight the current menu item. */
.ow-nav--desktop .ow-menu li.active > a,
.ow-nav--desktop .ow-menu li.current-menu-ancestor > a,
.ow-nav--desktop .ow-menu li.current-menu-parent > a{
	color: var(--ow-text) !important;
}
.ow-nav--desktop .ow-menu li.active > a:after,
.ow-nav--desktop .ow-menu li.current-menu-ancestor > a:after,
.ow-nav--desktop .ow-menu li.current-menu-parent > a:after{
	display: none !important;
}

/* Pre-footer CTA overlap */
/*
  Problem analysis:
  - Only pages where CTA location is "prefooter" (before footer) were getting an inline
    margin/padding on #content via JS (e.g. 160px). That created the visible white area.
  - Correct solution: do NOT push #content. Instead, overlap the footer by pulling the
    footer up under the CTA by 50% of CTA height.
*/

/* Neutralize any legacy inline spacing that may still be present from cached JS */
body.ow-has-prefooter-cta #content{
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* The CTA sits right before #footer-widgets and pulls the footer underneath itself */
body.ow-has-prefooter-cta .ow-prefooter-cta{
  position: relative;
  z-index: 3;
  transform: none !important;
  margin-bottom: calc(-1 * var(--ow-prefooter-overlap, 0px));
}

/* Footer widgets start below the CTA bottom edge (+ small breathing room) */
body.ow-has-prefooter-cta #footer-widgets{
  margin-top: 0 !important;
  padding-top: calc(var(--ow-prefooter-overlap, 0px) + 24px) !important;
}

.ow-soc{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none !important;
  color: var(--ow-yellow-2);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
}
.ow-soc:hover{ background: rgba(255,255,255,.06); color: var(--ow-yellow-2); }

/* ---------------------------
   Responsive rules
---------------------------- */
@media (max-width: 991px){
  .ow-only-desktop{ display:none !important; }
  .ow-only-mobile{ display:flex !important; }
  .ow-topbar__items{ gap: 8px; }
  .ow-topitem{ padding: 7px 10px; }
  .ow-topitem__sub{ display:none; } /* keep it clean on small widths */
  .ow-nav--desktop{ display:none; }
  .ow-burger{ display:inline-flex; }
  .ow-navbar{ justify-content:space-between; }
  .ow-cta-btn{ padding: 11px 14px; border-radius: 14px; }

	/* If labels are disabled on mobile, turn the topbar into icon-only chips */
	body.ow-topbar-hide-labels-mobile .ow-topitem{
		width: 46px;
		height: 46px;
		padding: 0;
		justify-content: center;
		gap: 0;
	}
	body.ow-topbar-hide-labels-mobile .ow-topitem__text{ display:none; }
	body.ow-topbar-hide-labels-mobile .ow-topitem__icon{
		width: 34px;
		height: 34px;
	}
	body.ow-topbar-hide-labels-mobile .ow-topbar__items{ gap: 10px; }

	/* Compact mobile menu (panel as card instead of full-height drawer) */
	body.ow-mobile-menu-compact .ow-offcanvas{
		justify-content: center;
		align-items: flex-start;
		padding: 14px;
	}
	body.ow-mobile-menu-compact .ow-offcanvas__panel{
		width: min(92vw, 430px);
		height: auto;
		max-height: 92vh;
		border-radius: 22px;
		border: 1px solid rgba(255,255,255,.12);
		margin-top: 10px;
	}
}
@media (max-width: 575px){
  .ow-topitem__title{ font-size: 13px; }
  .ow-topitem__icon{ width: 32px; height: 32px; border-radius: 12px; }
}

/* ---------------------------
   CTA block (breadcrumb replacement)
---------------------------- */
.ow-page-cta{
  padding: 28px 0 0;
}
.ow-page-cta__card{
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
  padding: 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 20px;
}
.ow-page-cta__content{ flex: 1 1 auto; }
.ow-page-cta__title{
  margin:0 0 10px;
  font-weight: 900;
  font-size: 26px;
  color: #0f172a;
}
.ow-page-cta__list{
  list-style:none;
  padding:0;
  margin: 0 0 14px;
}
.ow-page-cta__list li{
  position:relative;
  padding-left: 28px;
  margin: 8px 0;
  color: #334155;
  font-weight: 600;
}
.ow-page-cta__list li:before{
  content: '✓';
  position:absolute;
  left:0;
  top:0;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(242,194,11,.22);
  color: #7a5c00;
  font-weight: 900;
}
.ow-page-cta__actions{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
}
.ow-page-cta__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 12px 16px;
  border-radius: 12px;
  text-decoration:none !important;
  font-weight: 800;
  border: 1px solid rgba(0,0,0,.12);
}
.ow-page-cta__btn--primary{
  background: linear-gradient(180deg, var(--ow-yellow-2), var(--ow-yellow));
  color: #111;
}
.ow-page-cta__btn--secondary{
  background: #fff;
  color:#111;
}
.ow-page-cta__btn:hover{ filter: brightness(1.02); }

.ow-page-cta__art{
  flex: 0 0 auto;
  width: 44%;
  max-width: 420px;
  display:flex;
  justify-content:flex-end;
}
.ow-page-cta__art img{
  max-width: 100%;
  height: auto;
  border-radius: 14px;
}

@media (max-width: 991px){
  .ow-page-cta__card{ flex-direction:column; align-items:stretch; }
  .ow-page-cta__art{ width: 100%; justify-content:center; }
	body.ow-cta-hide-art-mobile .ow-page-cta__art{ display:none; }
}

/* Defensive reset: avoid any parent-theme underline/decoration artefacts in mobile menu */
.ow-offcanvas .ow-menu--mobile a{ background: transparent !important; box-shadow: none !important; text-decoration: none !important; }
.ow-offcanvas .ow-menu--mobile a:before{ content: none !important; display:none !important; }

/* ---------------------------
   Consultation modal (optional)
---------------------------- */
.ow-modal[hidden]{ display:none !important; }
.ow-modal{
  position: fixed;
  inset: 0;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index: 99999;
}
.ow-modal__overlay{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}
.ow-modal__panel{
  position: relative;
  width: min(92vw, 760px);
  max-height: 88vh;
  overflow:auto;
  background: linear-gradient(180deg, rgba(26,26,26,1), rgba(8,8,8,1));
  border: 1px solid var(--ow-border);
  border-radius: 18px;
  box-shadow: var(--ow-shadow);
  padding: 18px;
}
.ow-modal__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ow-border-2);
  margin-bottom: 12px;
}
.ow-modal__title{
  color: var(--ow-text);
  font-weight: 900;
  font-size: 18px;
}
.ow-modal__body{ color: var(--ow-text); }
.ow-modal__body a{ color: var(--ow-yellow-2); }

/* =========================================================
   Search template (search.php)
   ========================================================= */

.ow-search{ padding: 34px 0 70px; }

.ow-search-hero{
  padding: 14px 0 24px;
}
.ow-search-hero__inner,
.ow-search-results__inner{
  width: min(1200px, calc(100% - 48px));
  margin: 0 auto;
}
.ow-search-hero__top{ margin-bottom: 14px; }
.ow-search-hero__title{
  margin: 0 0 6px;
  font-size: clamp(24px, 3vw, 38px);
  font-weight: 900;
  color: #0b1320;
}
.ow-search-hero__q{ color: #111827; }
.ow-search-hero__sub{
  margin: 0;
  color: rgba(17,24,39,.72);
  font-size: 14px;
}

.ow-search-form{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  background: #ffffff;
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 16px;
  padding: 10px;
  box-shadow: 0 14px 40px rgba(0,0,0,.08);
}
.ow-search-form__input{
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.10);
  outline: none;
  font-size: 15px;
}
.ow-search-form__input:focus{ border-color: rgba(242,194,11,.9); box-shadow: 0 0 0 3px rgba(242,194,11,.20); }
.ow-search-form__btn{
  height: 48px;
  padding: 0 18px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.12);
  background: linear-gradient(180deg, #FFD85A, #F2C20B);
  color: #0b0b0b;
  font-weight: 900;
  cursor: pointer;
}
.ow-search-form__btn:hover{ filter: brightness(1.02); }

.ow-search-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}
.ow-search-tab{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.10);
  background: #ffffff;
  text-decoration: none !important;
  color: #0b1320;
  box-shadow: 0 12px 34px rgba(0,0,0,.06);
}
.ow-search-tab__label{ font-weight: 800; }
.ow-search-tab__count{
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(2,6,23,.06);
  font-weight: 900;
}
.ow-search-tab.is-active{
  border-color: rgba(242,194,11,.55);
  box-shadow: 0 16px 44px rgba(242,194,11,.18);
}
.ow-search-tab.is-active .ow-search-tab__count{ background: rgba(242,194,11,.22); }

.ow-search-results{
  padding-top: 14px;
}
.ow-search-results__meta{
  margin: 10px 0 16px;
  color: rgba(17,24,39,.72);
  font-weight: 700;
}

.ow-search-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ow-search-card{
  display: grid;
  grid-template-columns: 1fr;
  background: #ffffff;
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 16px 44px rgba(0,0,0,.08);
}
.ow-search-card__body{ padding: 16px 16px 18px; }
.ow-search-card__title{ margin: 10px 0 6px; font-size: 18px; line-height: 1.25; }
.ow-search-card__title a{ color: #0b1320; text-decoration: none; font-weight: 900; }
.ow-search-card__title a:hover{ text-decoration: underline; }
.ow-search-card__meta{ color: rgba(17,24,39,.65); font-size: 13px; font-weight: 700; }
.ow-search-card__excerpt{ margin-top: 10px; color: rgba(17,24,39,.80); font-size: 14px; }

.ow-search-card__badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.04);
  width: fit-content;
}
.ow-search-card__badge--vacancy{ background: rgba(242,194,11,.18); border-color: rgba(242,194,11,.36); }
.ow-search-card__badge--blog{ background: rgba(59,130,246,.14); border-color: rgba(59,130,246,.28); }
.ow-search-card__badge--page{ background: rgba(2,6,23,.06); border-color: rgba(2,6,23,.10); }

.ow-search-card__actions{ margin-top: 12px; }
.ow-search-card__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.12);
  background: #ffffff;
  font-weight: 900;
  color: #0b1320;
  text-decoration: none !important;
}
.ow-search-card__btn:hover{ border-color: rgba(242,194,11,.55); box-shadow: 0 12px 34px rgba(242,194,11,.14); }

.ow-search-card__thumb{
  border-top: 1px solid rgba(2,6,23,.06);
  background: #f8fafc;
}
.ow-search-card__thumb img{ width: 100%; height: 220px; object-fit: cover; display: block; }

.ow-search-pagination{ margin-top: 22px; }
.ow-search-pagination .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  margin: 0 4px 8px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.10);
  background: #ffffff;
  text-decoration: none;
  color: #0b1320;
  font-weight: 900;
}
.ow-search-pagination .page-numbers.current{ background: rgba(242,194,11,.22); border-color: rgba(242,194,11,.45); }

.ow-search-empty{
  background: #ffffff;
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 16px 44px rgba(0,0,0,.08);
}
.ow-search-empty__title{ margin: 0 0 6px; font-size: 22px; font-weight: 900; }
.ow-search-empty__text{ margin: 0 0 14px; color: rgba(17,24,39,.72); }
.ow-search-empty__actions{ display:flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.ow-search-empty__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 16px;
  border-radius: 12px;
  border: 1px solid rgba(2,6,23,.12);
  background: #ffffff;
  color: #0b1320;
  font-weight: 900;
  text-decoration:none !important;
}
.ow-search-empty__btn--primary{ background: linear-gradient(180deg, #FFD85A, #F2C20B); }

.ow-search-suggest__label{ font-weight: 900; margin-bottom: 8px; }
.ow-search-suggest__chips{ display:flex; flex-wrap: wrap; gap: 8px; }
.ow-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.04);
  font-weight: 800;
  color: #0b1320;
  text-decoration: none !important;
}
.ow-chip:hover{ background: rgba(242,194,11,.18); border-color: rgba(242,194,11,.36); }

@media (max-width: 960px){
  .ow-search-grid{ grid-template-columns: 1fr; }
  .ow-search-card__thumb img{ height: 200px; }
}

@media (max-width: 560px){
  .ow-search-hero__inner,
  .ow-search-results__inner{ width: calc(100% - 28px); }
  .ow-search-form{ grid-template-columns: 1fr; }
  .ow-search-form__btn{ width: 100%; }
}

/* =========================================================
   Single Post (Blog Article)
   - Modern readable typography
   - Sidebar cards
   - Related posts (reuses search cards)
   ========================================================= */

.ow-single{ padding: 28px 0 78px; background: #ffffff; }

.ow-breadcrumbs{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  color: rgba(17,24,39,.65);
  font-weight: 800;
  font-size: 13px;
  margin: 0 0 10px;
}
.ow-breadcrumbs a{ color: rgba(17,24,39,.75); text-decoration: none !important; }
.ow-breadcrumbs a:hover{ color: #0b1320; text-decoration: underline; }
.ow-breadcrumbs__sep{ opacity: .55; }

.ow-single-hero{ padding: 10px 0 18px; }
.ow-single-hero__title{ margin: 0 0 10px; font-size: 38px; line-height: 1.15; font-weight: 950; color: #0b1320; letter-spacing: -0.02em; }
.ow-single-hero__meta{ display:flex; flex-wrap: wrap; gap: 10px; align-items:center; color: rgba(17,24,39,.65); font-weight: 800; font-size: 13px; }
.ow-single-hero__meta a{ color: rgba(17,24,39,.75); text-decoration: none !important; }
.ow-single-hero__meta a:hover{ text-decoration: underline; }
.ow-single-hero__dot{ opacity: .55; }

.ow-single__grid{ display: grid; grid-template-columns: minmax(0, 780px) 340px; gap: 28px; align-items: start; }
.ow-single__grid--noside{ grid-template-columns: 1fr; }

.ow-article{
  background: #ffffff;
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 18px;
  box-shadow: 0 18px 52px rgba(0,0,0,.08);
  overflow: hidden;
}

.ow-article__media{
  border-bottom: 1px solid rgba(2,6,23,.06);
  background: #f8fafc;
}
.ow-article__media img{ width: 100%; height: auto; display: block; }

.ow-article__inner{ padding: 18px 18px 10px; }

/* Prose / typography */
.ow-prose{ color: rgba(17,24,39,.92); font-size: 16px; line-height: 1.75; }
.ow-prose > *:first-child{ margin-top: 0; }
.ow-prose p{ margin: 0 0 14px; }
.ow-prose h2{ margin: 26px 0 10px; font-size: 26px; line-height: 1.25; font-weight: 950; color: #0b1320; letter-spacing: -0.01em; }
.ow-prose h3{ margin: 22px 0 10px; font-size: 20px; line-height: 1.3; font-weight: 900; color: #0b1320; }
.ow-prose ul, .ow-prose ol{ margin: 0 0 16px 18px; }
.ow-prose li{ margin: 6px 0; }
.ow-prose a{ color: #0b1320; text-decoration: underline; text-decoration-thickness: 2px; text-decoration-color: rgba(242,194,11,.55); }
.ow-prose a:hover{ text-decoration-color: rgba(242,194,11,.95); }
.ow-prose blockquote{
  margin: 18px 0;
  padding: 14px 14px;
  border-left: 4px solid rgba(242,194,11,.85);
  background: rgba(242,194,11,.10);
  border-radius: 14px;
}
.ow-prose code{ background: rgba(2,6,23,.06); padding: 2px 6px; border-radius: 8px; font-size: .92em; }
.ow-prose pre{ background: #0b1320; color: #ffffff; padding: 14px; border-radius: 14px; overflow:auto; }

/* Tags + nav */
.ow-article__footer{ padding: 0 18px 18px; }
.ow-tags{ display:flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.ow-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.04);
  font-weight: 900;
  color: #0b1320;
  text-decoration:none !important;
  font-size: 13px;
}
.ow-tag:hover{ background: rgba(242,194,11,.18); border-color: rgba(242,194,11,.36); }

.ow-postnav{ display:flex; gap: 12px; margin-top: 16px; }
.ow-postnav__link{
  flex: 1 1 50%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 14px 14px;
  border-radius: 16px;
  border: 1px solid rgba(2,6,23,.10);
  background: rgba(2,6,23,.03);
  text-decoration:none !important;
}
.ow-postnav__link:hover{ background: rgba(242,194,11,.14); border-color: rgba(242,194,11,.28); }
.ow-postnav__label{ font-size: 12px; font-weight: 900; color: rgba(17,24,39,.65); }
.ow-postnav__title{ font-size: 14px; font-weight: 950; color: #0b1320; line-height: 1.25; }

/* Sidebar */
.ow-aside{ position: sticky; top: 18px; }
.ow-sidecard{
  background: #ffffff;
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 18px;
  box-shadow: 0 18px 52px rgba(0,0,0,.06);
  padding: 14px;
  margin-bottom: 14px;
}
.ow-sidecard__title{ font-size: 14px; font-weight: 950; margin: 0 0 10px; color: #0b1320; }
.ow-sidebtn{
  display:flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  border-radius: 14px;
  border: 1px solid rgba(2,6,23,.12);
  background: #ffffff;
  color: #0b1320;
  text-decoration:none !important;
  font-weight: 950;
}
.ow-sidebtn + .ow-sidebtn{ margin-top: 10px; }
.ow-sidebtn--primary{ background: linear-gradient(180deg, #FFD85A, #F2C20B); border-color: rgba(2,6,23,.10); }
.ow-sidebtn:hover{ filter: brightness(1.01); }

.ow-sidelist{ list-style:none; margin: 0; padding: 0; }
.ow-sidelist li{ margin: 0; padding: 0; }
.ow-sidelist a{ display:block; padding: 10px 10px; border-radius: 14px; text-decoration:none !important; color: #0b1320; font-weight: 900; background: rgba(2,6,23,.03); border: 1px solid rgba(2,6,23,.06); }
.ow-sidelist a:hover{ background: rgba(242,194,11,.14); border-color: rgba(242,194,11,.28); }
.ow-sidelist__meta{ display:block; margin-top: 2px; font-size: 12px; color: rgba(17,24,39,.65); font-weight: 800; }

/* Help CTA (single) */
.ow-helpcta--single{ margin-top: 16px; }
.ow-helpcta{
  background: linear-gradient(180deg, rgba(2,6,23,.02), rgba(2,6,23,.04));
  border: 1px solid rgba(2,6,23,.08);
  border-radius: 18px;
  padding: 14px;
}
.ow-helpcta__inner{ display:flex; align-items:center; gap: 14px; }
.ow-helpcta__q{ width: 44px; height: 44px; border-radius: 16px; display:flex; align-items:center; justify-content:center; font-weight: 950; font-size: 18px; background: rgba(242,194,11,.22); color: #0b1320; flex: 0 0 auto; }
.ow-helpcta__copy{ min-width: 0; flex: 1 1 auto; }
.ow-helpcta__title{ font-weight: 950; color: #0b1320; margin-bottom: 2px; }
.ow-helpcta__subtitle{ color: rgba(17,24,39,.72); font-weight: 800; font-size: 13px; }
.ow-helpcta__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height: 44px;
  padding: 0 16px;
  border-radius: 14px;
  text-decoration:none !important;
  font-weight: 950;
  color: #111;
  background: linear-gradient(180deg, #FFD85A, #F2C20B);
  border: 1px solid rgba(0,0,0,.10);
  white-space: nowrap;
}

/* Related posts */
.ow-related{ margin-top: 22px; }
.ow-related__head{ display:flex; align-items:flex-end; justify-content:space-between; gap: 12px; margin-bottom: 12px; }
.ow-related__title{ margin: 0; font-size: 22px; font-weight: 950; color: #0b1320; }
.ow-related__grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

@media (max-width: 1120px){
  .ow-single__grid{ grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (max-width: 960px){
  .ow-single__grid{ grid-template-columns: 1fr; }
  .ow-aside{ position: static; }
  .ow-related__grid{ grid-template-columns: 1fr; }
}

@media (max-width: 560px){
  .ow-single-hero__title{ font-size: 30px; }
  .ow-article__inner{ padding: 14px 14px 8px; }
  .ow-article__footer{ padding: 0 14px 14px; }
  .ow-helpcta__inner{ flex-direction: column; align-items: flex-start; }
  .ow-helpcta__btn{ width: 100%; }
}

/* ---------------------------
   Footer bottom: prevent "white empty space" under footer (Boostify colophon)
   Cause: in Boostify the #colophon (site-info) block may keep big paddings
   and/or transparent background (looks like white gap).
---------------------------- */
#colophon{
  margin: 0 !important;
  padding: 0 !important;
  background: #0b0f14;
}
#colophon .site-info{
  margin: 0 !important;
  padding: 18px 0;
  color: rgba(255,255,255,.78);
}
#colophon a{ color: rgba(255,216,90,.92); }
#colophon:empty{ display:none; }
#colophon .site-info:empty{ display:none; padding:0; }

/* ---------------------------
   Sticky footer + dark page background
   Symptom: on short pages the footer ends above the bottom of the viewport,
   so you see the browser default (white) background "under" the footer.
   Fix: make #page a flex column that stretches to 100vh and push footer down.
---------------------------- */
/* html, body background intentionally unchanged */

/* Boostify wrapper */
#page.site{
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Main content should grow; footer stays at the bottom */
#content, .site-content{ flex: 1 0 auto; }

/* Ensure footer is the last item and sticks to bottom on short pages */
#footer-widgets,
#colophon{ margin-top: auto; }
