/* =========================================================
   ZUHIO KEYWORD CHECKER — CORE STYLESHEET
   All colors/typography/layout are driven by CSS custom
   properties defined dynamically in inc/customizer-output.php
   These are the DEFAULT fallback values.
   ========================================================= */

:root{
  /* Brand colors */
  --zk-primary: #003B3F;      /* Deep Teal */
  --zk-accent: #C89B3C;       /* Academic Gold */
  --zk-text: #172126;         /* Charcoal Navy */
  --zk-bg: #F7F6F1;           /* Warm White */
  --zk-card-bg: #FFFFFF;      /* Pure White */
  --zk-light-teal: #E6F1EF;   /* Light Teal */
  --zk-footer-bg: #172126;    /* Charcoal Navy */
  --zk-hover: #C89B3C;

  /* Typography */
  --zk-font-heading: 'Poppins', sans-serif;
  --zk-font-body: 'Inter', sans-serif;
  --zk-font-size-base: 17px;
  --zk-line-height: 1.7;
  --zk-heading-weight: 600;

  /* Layout */
  --zk-content-width: 1200px;
  --zk-page-width: 800px;
  --zk-container-padding: 24px;
  --zk-radius: 10px;
  --zk-shadow: 0 2px 14px rgba(23,33,38,0.08);

  /* Header */
  --zk-header-height: 84px;

  /* Back to top */
  --zk-btt-size: 48px;
  --zk-btt-bg: #C89B3C;
  --zk-btt-color: #003B3F;
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--zk-font-body);
  font-size: var(--zk-font-size-base);
  line-height: var(--zk-line-height);
  color: var(--zk-text);
  background: var(--zk-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--zk-primary); text-decoration:none; transition: color .2s ease; }
a:hover, a:focus{ color: var(--zk-accent); }
h1,h2,h3,h4,h5,h6{
  font-family: var(--zk-font-heading);
  font-weight: var(--zk-heading-weight);
  line-height: 1.3;
  color: var(--zk-text);
  margin: 0 0 .6em;
}
p{ margin: 0 0 1.2em; }
ul,ol{ padding-left: 1.4em; }
table{ width:100%; border-collapse: collapse; }
button{ font-family: inherit; cursor:pointer; }

.screen-reader-text{
  position:absolute!important;
  width:1px;height:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}
.screen-reader-text:focus{
  position:fixed;top:8px;left:8px;
  width:auto;height:auto;
  padding:12px 18px;
  background:#fff;color:#000;
  z-index:100000;
  border-radius: 6px;
  clip:auto;
}
.skip-link{
  position:absolute;
  left:-9999px;top:0;
  background:var(--zk-accent);
  color:var(--zk-primary);
  padding:12px 20px;
  z-index:100000;
  font-weight:600;
  border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

.zk-container{
  max-width: var(--zk-content-width);
  margin: 0 auto;
  padding: 0 var(--zk-container-padding);
}
.zk-boxed-layout .zk-container{
  box-shadow: var(--zk-shadow);
}

/* =========================================================
   HEADER
   ========================================================= */
.zk-header{
  background: var(--zk-header-bg, var(--zk-primary));
  min-height: var(--zk-header-height);
  display:flex;
  align-items:center;
  width:100%;
  z-index: 999;
  transition: box-shadow .25s ease, background-color .25s ease;
}
.zk-header.zk-header--gradient{
  background: linear-gradient(135deg, #003B3F 0%, #00565A 50%, #C89B3C 140%);
}
.zk-header.zk-sticky{
  position: sticky;
  top:0;
}
.zk-header.zk-sticky.zk-is-scrolled{
  box-shadow: 0 4px 18px rgba(0,0,0,0.18);
}
.zk-header.zk-transparent{
  background: transparent;
  position:absolute;
  width:100%;
}
.zk-header-inner{
  max-width: var(--zk-content-width);
  margin: 0 auto;
  padding: 0 var(--zk-container-padding);
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height: var(--zk-header-height);
}
.zk-branding{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.zk-branding img.zk-logo-img{
  max-height: calc(var(--zk-header-height) - 28px);
  width:auto;
}
.zk-site-title{
  font-family: var(--zk-font-heading);
  font-weight:700;
  font-size: 1.4rem;
  color:#fff;
  margin:0;
  letter-spacing:.2px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.zk-site-title a{ color:#fff; }
.zk-site-title a:hover{ color: var(--zk-accent); }
.zk-site-description{
  display:block;
  font-size:.75rem;
  color: rgba(255,255,255,.7);
  margin-top:2px;
}

/* Primary nav */
.zk-nav-wrap{ display:flex; align-items:center; gap:28px; }
.zk-primary-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:6px;
  margin:0; padding:0;
}
.zk-primary-nav li{ position:relative; }
.zk-primary-nav a{
  display:block;
  padding:10px 14px;
  color: rgba(255,255,255,.92);
  font-weight:500;
  font-size:.96rem;
  border-radius:6px;
  transition: color .2s ease, background-color .2s ease;
}
.zk-primary-nav a:hover,
.zk-primary-nav a:focus,
.zk-primary-nav .current-menu-item > a{
  color: var(--zk-accent);
  background: rgba(255,255,255,.06);
}
.zk-primary-nav .sub-menu{
  list-style:none;
  position:absolute;
  top:100%; left:0;
  min-width:220px;
  background: var(--zk-card-bg);
  box-shadow: var(--zk-shadow);
  border-radius: 8px;
  padding:8px;
  margin:6px 0 0;
  opacity:0;
  visibility:hidden;
  transform: translateY(6px);
  transition: all .18s ease;
  z-index:50;
}
.zk-primary-nav li:hover > .sub-menu,
.zk-primary-nav li:focus-within > .sub-menu{
  opacity:1; visibility:visible; transform:translateY(0);
}
.zk-primary-nav .sub-menu a{
  color: var(--zk-text);
  padding:9px 12px;
  border-radius:6px;
  font-size:.92rem;
}
.zk-primary-nav .sub-menu a:hover{
  background: var(--zk-light-teal);
  color: var(--zk-primary);
}
.zk-primary-nav .menu-item-has-children > a::after{
  content:"";
  display:inline-block;
  width:6px;height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform: rotate(45deg);
  margin-left:6px;
  opacity:.7;
}

.zk-header-cta .zk-btn{
  background: var(--zk-accent);
  color: var(--zk-primary);
  padding:11px 22px;
  border-radius: var(--zk-radius);
  font-weight:600;
  font-size:.94rem;
  white-space:nowrap;
}
.zk-header-cta .zk-btn:hover{
  background:#fff;
  color: var(--zk-primary);
}

/* Mobile toggle */
.zk-menu-toggle{
  display:none;
  background:transparent;
  border:2px solid rgba(255,255,255,.4);
  border-radius:6px;
  padding:9px 10px;
  align-items:center;
  justify-content:center;
}
.zk-menu-toggle span{
  display:block;
  width:22px;height:2px;
  background:#fff;
  margin:4px 0;
  transition: transform .2s ease, opacity .2s ease;
}
.zk-menu-toggle:focus{ outline:2px solid var(--zk-accent); outline-offset:2px; }
.zk-menu-toggle.is-active span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.zk-menu-toggle.is-active span:nth-child(2){ opacity:0; }
.zk-menu-toggle.is-active span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px){
  .zk-nav-wrap{
    position:fixed;
    top:0; right:-100%;
    width:min(320px,86%);
    height:100vh;
    background: var(--zk-primary);
    flex-direction:column;
    align-items:flex-start;
    padding:90px 22px 24px;
    gap:14px;
    transition: right .28s ease;
    overflow-y:auto;
    z-index: 998;
  }
  .zk-nav-wrap.is-open{ right:0; }
  .zk-primary-nav{ width:100%; }
  .zk-primary-nav ul{ flex-direction:column; align-items:flex-start; width:100%; gap:2px; }
  .zk-primary-nav li{ width:100%; }
  .zk-primary-nav .sub-menu{
    position:static; opacity:1; visibility:visible; transform:none;
    display:none; box-shadow:none; background: rgba(255,255,255,.04);
    width:100%; margin:0;
  }
  .zk-primary-nav li.is-expanded .sub-menu{ display:block; }
  .zk-primary-nav .menu-item-has-children > a::after{ float:right; margin-top:6px; }
  .zk-header-cta{ width:100%; }
  .zk-header-cta .zk-btn{ display:block; text-align:center; }
  .zk-menu-toggle{ display:flex; }
  .zk-mobile-overlay{
    display:none;
    position:fixed; inset:0;
    background: rgba(0,0,0,.45);
    z-index:997;
  }
  .zk-mobile-overlay.is-open{ display:block; }
}

/* =========================================================
   PAGE / CONTENT
   ========================================================= */
.zk-site-content{
  min-height: 40vh;
}
.zk-entry-header{
  padding: 44px 0 18px;
}
.zk-entry-title{
  font-size: clamp(1.7rem, 3.2vw, 2.5rem);
}
.zk-entry-meta{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  font-size:.88rem;
  color: #5b6a6d;
  margin-bottom: 6px;
}
.zk-entry-meta a{ color:#5b6a6d; }
.zk-entry-meta a:hover{ color: var(--zk-accent); }
.zk-breadcrumbs{
  font-size:.85rem;
  color:#5b6a6d;
  padding: 16px 0 0;
}
.zk-breadcrumbs a{ color:#5b6a6d; }
.zk-breadcrumbs a:hover{ color: var(--zk-primary); }

.zk-featured-image{
  margin: 20px 0 30px;
  border-radius: var(--zk-radius);
  overflow:hidden;
  box-shadow: var(--zk-shadow);
}

.zk-entry-content{
  padding-bottom: 50px;
  max-width: var(--zk-page-width);
  margin: 0 auto;
}
.zk-entry-content.zk-full-width{ max-width: none; }

.zk-entry-content h2{ font-size:1.5rem; margin-top:1.6em; }
.zk-entry-content h3{ font-size:1.22rem; margin-top:1.4em; }
.zk-entry-content blockquote{
  border-left: 4px solid var(--zk-accent);
  background: var(--zk-light-teal);
  padding: 16px 22px;
  border-radius: 0 var(--zk-radius) var(--zk-radius) 0;
  margin: 1.6em 0;
  font-style: italic;
}
.zk-entry-content pre{
  background: var(--zk-text);
  color: #F7F6F1;
  padding: 18px;
  border-radius: var(--zk-radius);
  overflow-x:auto;
  font-size:.9rem;
  line-height:1.6;
}
.zk-entry-content code{
  background: var(--zk-light-teal);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: .9em;
}
.zk-entry-content pre code{ background:none; padding:0; }
.zk-entry-content table{
  display:block;
  overflow-x:auto;
  white-space:nowrap;
  border-radius: var(--zk-radius);
  box-shadow: var(--zk-shadow);
}
.zk-entry-content table th,
.zk-entry-content table td{
  border:1px solid #e3e0d6;
  padding:10px 14px;
  text-align:left;
}
.zk-entry-content table th{
  background: var(--zk-light-teal);
  color: var(--zk-primary);
}
.zk-entry-content figure{ margin: 1.6em 0; }
.zk-entry-content img{ border-radius: var(--zk-radius); }
.zk-entry-content .alignwide{ max-width: var(--zk-content-width); margin-left:50%; transform:translateX(-50%); }
.zk-entry-content .alignfull{ max-width:100vw; margin-left:50%; transform:translateX(-50%); }

.zk-tags{
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #e3e0d6;
  font-size:.88rem;
}
.zk-tags a{
  display:inline-block;
  background: var(--zk-light-teal);
  color: var(--zk-primary);
  padding:5px 12px;
  border-radius: 999px;
  margin: 0 6px 6px 0;
  font-size:.82rem;
}
.zk-tags a:hover{ background: var(--zk-accent); color:#fff; }

.zk-card{
  background: var(--zk-card-bg);
  border-radius: var(--zk-radius);
  box-shadow: var(--zk-shadow);
  padding: 26px;
}
.zk-info-box{
  background: var(--zk-light-teal);
  border-radius: var(--zk-radius);
  padding: 20px 24px;
  margin: 1.5em 0;
}

/* Pagination / nav links */
.zk-pagination, .zk-post-nav{
  display:flex; flex-wrap:wrap; gap:10px;
  margin: 30px auto; max-width: var(--zk-page-width);
}
.zk-pagination a, .zk-pagination span{
  padding:9px 15px;
  border-radius: 6px;
  background: var(--zk-light-teal);
  color: var(--zk-primary);
  font-size:.9rem;
}
.zk-pagination .current{ background: var(--zk-primary); color:#fff; }
.zk-pagination a:hover{ background: var(--zk-accent); color:#fff; }

/* Comments */
.zk-comments{ max-width: var(--zk-page-width); margin: 40px auto 0; }
.zk-comments .comment-body{
  background: var(--zk-card-bg);
  border-radius: var(--zk-radius);
  box-shadow: var(--zk-shadow);
  padding: 18px 20px;
  margin-bottom: 16px;
}

/* Ad slots */
.zk-ad-slot{
  max-width: var(--zk-content-width);
  margin: 26px auto;
  padding: 0 var(--zk-container-padding);
  text-align:center;
  overflow:hidden;
}
.zk-ad-slot:empty{ display:none; }
.zk-ad-slot--incontent{ max-width: var(--zk-page-width); }

/* =========================================================
   FOOTER
   ========================================================= */
.zk-footer{
  background: var(--zk-footer-bg);
  color: #fff;
  padding: 56px 0 0;
  margin-top: 40px;
}
.zk-footer a{ color: rgba(255,255,255,.82); }
.zk-footer a:hover{ color: var(--zk-accent); }
.zk-footer-grid{
  display:grid;
  grid-template-columns: 1.3fr 1fr;
  gap:40px;
  max-width: var(--zk-content-width);
  margin:0 auto;
  padding: 0 var(--zk-container-padding) 40px;
}
.zk-footer-col h3{
  color:#fff;
  font-size:1.05rem;
  position:relative;
  padding-bottom:12px;
  margin-bottom:16px;
}
.zk-footer-col h3::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:42px; height:3px;
  background: var(--zk-accent);
  border-radius:2px;
}
.zk-footer-logo{ max-height:44px; margin-bottom:14px; }
.zk-footer-about p{ color: rgba(255,255,255,.75); font-size:.94rem; }
.zk-footer-social{ display:flex; gap:12px; margin-top:14px; }
.zk-footer-social a{
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.08);
  border-radius:50%;
  color:#fff;
  font-size:.9rem;
}
.zk-footer-social a:hover{ background: var(--zk-accent); color: var(--zk-primary); }
.zk-footer-legal ul{ list-style:none; padding:0; margin:0; }
.zk-footer-legal li{ margin-bottom:10px; }
.zk-footer-legal a{ font-size:.94rem; }
.zk-footer-widgets{
  border-top:1px solid rgba(255,255,255,.1);
  padding: 30px var(--zk-container-padding);
}
.zk-footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);
  padding: 20px var(--zk-container-padding);
  text-align:center;
  font-size:.86rem;
  color: rgba(255,255,255,.65);
}
@media (max-width: 700px){
  .zk-footer-grid{ grid-template-columns:1fr; gap:32px; }
}

/* =========================================================
   BACK TO TOP
   ========================================================= */
.zk-back-to-top{
  position: fixed;
  right: 24px; bottom: 24px;
  width: var(--zk-btt-size);
  height: var(--zk-btt-size);
  background: var(--zk-btt-bg);
  color: var(--zk-btt-color);
  border:none;
  border-radius: 50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 1.2rem;
  box-shadow: 0 4px 16px rgba(0,0,0,.22);
  opacity:0;
  visibility:hidden;
  transform: translateY(12px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease, background-color .2s ease;
  z-index: 900;
}
.zk-back-to-top.is-visible{
  opacity:1; visibility:visible; transform:translateY(0);
}
.zk-back-to-top:hover{ background: var(--zk-primary); color: var(--zk-btt-color); filter:brightness(1.1); }
.zk-back-to-top:focus{ outline:2px solid var(--zk-primary); outline-offset:3px; }
.zk-back-to-top--left{ right:auto; left:24px; }

/* =========================================================
   MISC / UTILITY
   ========================================================= */
.zk-search-form{ display:flex; }
.zk-search-form input[type="search"]{
  flex:1; padding:10px 14px; border:1px solid #d8d4c6; border-radius:6px 0 0 6px;
  font-family:inherit;
}
.zk-search-form button{
  border:none; background:var(--zk-primary); color:#fff; padding:0 16px; border-radius:0 6px 6px 0;
}
.zk-widget{ margin-bottom: 28px; }

.zk-reduced-motion *{ transition:none!important; animation:none!important; }

@media (max-width: 480px){
  :root{ --zk-header-height: 68px; }
  .zk-entry-header{ padding-top:26px; }
}

/* Focus visibility across theme */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 2px solid var(--zk-accent);
  outline-offset: 2px;
}
