/*
Theme Name: Tranzeet TV
Theme URI: https://tranzeettv.com
Description: Custom secure child theme for Tranzeet TV, rebuilt from scratch after the previous theme was compromised. Hand-coded single/archive templates + Elementor homepage.
Author: Daniel
Template: hello-elementor
Version: 1.5.1
Text Domain: tranzeettv
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --tz-navy:#0b1f3a;
  --tz-navy-dark:#071730;
  --tz-green:#1fa463;
  --tz-gold:#f2b705;
  --tz-orange:#f2871f;
  --tz-white:#ffffff;
  --tz-off-white:#f4f6f9;
  --tz-gray:#8a94a6;
  --tz-border:#1c3358;
  --tz-border-light:#e3e7ee;
  --tz-radius:8px;
  --tz-font-heading:'Poppins', sans-serif;
  --tz-font-body:'Inter', sans-serif;
}

body{
  font-family:var(--tz-font-body);
  color:#1a2233;
  background:var(--tz-off-white);
}

h1,h2,h3,h4,.tz-heading{
  font-family:var(--tz-font-heading);
  font-weight:600;
  color:var(--tz-navy);
}

a{ color:inherit; text-decoration:none; }

.tz-badge{
  display:inline-block;
  background:var(--tz-green);
  color:#fff;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:3px 9px;
  border-radius:4px;
}

.tz-card{
  background:#fff;
  border-radius:var(--tz-radius);
  overflow:hidden;
  box-shadow:0 1px 3px rgba(11,31,58,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tz-card:hover{ transform:translateY(-3px); box-shadow:0 8px 20px rgba(11,31,58,.12); }
.tz-card-thumb{ position:relative; }
.tz-card-thumb img{ width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.tz-card .tz-card-body{ padding:14px 16px; }
.tz-card .tz-date{ color:var(--tz-gray); font-size:12px; margin-top:6px; }

/* ==========================================================================
   Header
   ========================================================================== */
.tz-header{
  background:var(--tz-header-bg, #ffffff) !important;
  border-bottom:3px solid var(--tz-header-border, var(--tz-orange)) !important;
  position:sticky;
  top:0;
  z-index:999;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.tz-header-inner{
  max-width:1240px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--tz-header-pad-y, 14px) var(--tz-header-pad-x, 20px);
  gap:20px;
}
.tz-logo img{ height:42px; width:auto; display:block; }
.tz-logo-fallback-text{ font-family:var(--tz-font-heading); font-weight:700; font-size:20px; color:var(--tz-header-text, var(--tz-navy)); }

.tz-nav ul{ display:flex; gap:26px; list-style:none; margin:0; padding:0; }
.tz-nav a{ color:var(--tz-header-text, var(--tz-navy)); font-size:var(--tz-header-font-size, 14px); font-weight:700; text-transform:uppercase; letter-spacing:.3px; padding-bottom:6px; display:inline-block; border-bottom:2px solid transparent; transition:color .2s ease, border-color .2s ease; }
.tz-nav a:hover{ color:var(--tz-header-accent, var(--tz-orange)); }
.tz-nav li{ position:relative; }
.tz-nav li.current-menu-item > a,
.tz-nav li.current_page_item > a,
.tz-nav li.current-menu-ancestor > a{ color:var(--tz-header-accent, var(--tz-orange)); }
.tz-header.tz-underline-active .tz-nav li.current-menu-item > a,
.tz-header.tz-underline-active .tz-nav li.current_page_item > a,
.tz-header.tz-underline-active .tz-nav li.current-menu-ancestor > a{ border-bottom-color:var(--tz-header-accent, var(--tz-orange)); }
.tz-nav li.menu-item-has-children > a::after{ content:"\25BE"; margin-left:6px; font-size:10px; vertical-align:1px; }
.tz-nav .sub-menu{
  display:none; position:absolute; top:100%; left:0; min-width:200px; max-width:280px;
  background:#fff; border:1px solid var(--tz-border-light); border-radius:6px;
  padding:8px 0; list-style:none; margin:0; box-shadow:0 12px 28px rgba(11,31,58,.12); z-index:20;
  max-height:340px; overflow-y:auto;
}
.tz-nav li:hover > .sub-menu{ display:block; }
.tz-nav .sub-menu a{ display:block; padding:8px 18px; text-transform:none; font-weight:500; font-size:13.5px; color:var(--tz-navy); border-bottom:none; }
.tz-nav .sub-menu a:hover{ color:var(--tz-header-accent, var(--tz-orange)); }

.tz-header-actions{ display:flex; align-items:center; gap:18px; }
.tz-btn-live{
  background:var(--tz-header-btn-bg, var(--tz-navy)) !important; color:var(--tz-header-btn-text, #ffffff) !important; font-size:13px; font-weight:700;
  padding:10px 18px; border-radius:4px; border:none !important; cursor:pointer; text-transform:uppercase; letter-spacing:.3px;
}
.tz-account{ display:flex; align-items:center; gap:6px; }
.tz-login-icon{ display:inline-flex; color:var(--tz-header-login-icon, var(--tz-navy)); }
.tz-account-link{ color:var(--tz-header-login-text, var(--tz-gray)); font-size:14px; }
.tz-mobile-toggle{ display:none !important; background:none !important; border:none !important; color:var(--tz-header-text, var(--tz-navy)) !important; font-size:22px; cursor:pointer; }

@media (max-width:900px){
  .tz-nav{ display:none !important; }
  .tz-mobile-toggle{ display:block !important; }
}

/* Off-canvas mobile menu */
.tz-mobile-panel{
  position:fixed; top:0; right:-320px; width:300px; height:100%;
  background:var(--tz-navy-dark); z-index:1100; transition:right .25s ease;
  padding:20px; overflow-y:auto;
}
.tz-mobile-panel.is-open{ right:0; }
.tz-mobile-panel .tz-mobile-toggle{ color:#fff !important; }
.tz-mobile-panel ul{ list-style:none; margin:0; padding:0; }
.tz-mobile-panel a{ display:block; color:#fff; padding:12px 0; border-bottom:1px solid var(--tz-border); }
.tz-mobile-account{ margin-top:20px; padding-top:16px; border-top:1px solid var(--tz-border); }
.tz-mobile-account .tz-account-link{ display:block; padding:10px 0; color:#fff !important; }
.tz-mobile-overlay{
  display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1050;
}
.tz-mobile-overlay.is-open{ display:block; }

@media (max-width:560px){
  .tz-header-actions .tz-account-link{ display:none; }
}
@media (max-width:380px){
  .tz-logo img{ height:32px !important; }
  .tz-btn-live{ padding:6px 10px; font-size:12px; }
  .tz-header-inner{ gap:8px; }
}

/* Live scores modal */
.tz-modal{ display:none; position:fixed; inset:0; z-index:1200; background:rgba(0,0,0,.7); }
.tz-modal.is-open{ display:flex; align-items:center; justify-content:center; }
.tz-modal-box{ background:#fff; width:90%; max-width:900px; height:80vh; border-radius:var(--tz-radius); overflow:hidden; position:relative; }
.tz-modal-box iframe{ width:100%; height:100%; border:0; }
.tz-modal-close{ position:absolute; top:8px; right:12px; font-size:26px; color:#fff; background:var(--tz-navy); border-radius:50%; width:34px; height:34px; cursor:pointer; border:none; z-index:2; }

/* ==========================================================================
   Single post
   ========================================================================== */
.tz-single-wrap{ max-width:820px; margin:0 auto; padding:40px 20px 60px; }
.tz-single-wrap.tz-has-sidebar{ max-width:1180px !important; }
.tz-single-wrap.tz-has-sidebar .tz-single-layout{
  display:flex !important; gap:40px !important; align-items:flex-start !important;
}
.tz-single-wrap.tz-has-sidebar .tz-single{ flex:1 1 0 !important; max-width:700px !important; min-width:0 !important; }
.tz-single-wrap.tz-has-sidebar .tz-sidebar{
  flex:0 0 320px !important; width:320px !important;
  position:sticky !important; top:84px !important; align-self:flex-start !important;
}
@media (max-width:900px){
  .tz-single-wrap.tz-has-sidebar .tz-single-layout{ flex-direction:column !important; }
  .tz-single-wrap.tz-has-sidebar .tz-single,
  .tz-single-wrap.tz-has-sidebar .tz-sidebar{ max-width:100% !important; width:100% !important; flex:1 1 100% !important; position:static !important; top:auto !important; }
}

.tz-single-header{ margin-top:0 !important; }
.tz-single-header .tz-badge{ margin:0 0 8px !important; }
.tz-single-title{ font-size:34px; line-height:1.2; margin:0 0 4px !important; }
.tz-single-subtitle{ font-size:18px; color:var(--tz-gray); margin:0 0 6px; font-weight:500; }

.tz-single-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13px; color:var(--tz-gray); margin:0 0 18px; }
.tz-single-meta .tz-pipe{ color:#c9cfda; }

/* Bookmark - all:unset strips Hello Elementor's global button styling
   (the wine-colored pill you saw) before we rebuild it from scratch. */
.tz-bookmark-btn{
  all:unset !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  cursor:pointer !important;
  font-size:13px !important;
  font-family:var(--tz-font-body) !important;
  font-weight:600 !important;
  color:var(--tz-navy) !important;
  line-height:1 !important;
}
.tz-bookmark-btn svg{ width:15px; height:15px; flex-shrink:0; }
.tz-bookmark-btn .tz-icon-filled{ display:none; }
.tz-bookmark-btn.is-active .tz-icon-outline{ display:none; }
.tz-bookmark-btn.is-active .tz-icon-filled{ display:inline-flex; color:var(--tz-gold); }
.tz-bookmark-btn:hover{ color:var(--tz-green) !important; }

.tz-single-image{ position:relative; margin-bottom:28px; border-radius:var(--tz-radius); overflow:hidden; }
.tz-single-image img{ width:100%; height:auto; display:block; }
.tz-views-badge{
  position:absolute; top:12px; left:12px; z-index:2;
  background:rgba(11,31,58,.75); color:#fff; font-size:12px; font-weight:600;
  padding:5px 10px; border-radius:20px;
}

.tz-single-content{ font-size:17px; line-height:1.75; color:#1a2233; }
.tz-single-content p{ margin:0 0 20px; }
.tz-single-content h2,.tz-single-content h3{ margin:34px 0 14px; }
.tz-single-content img{ max-width:100%; height:auto; border-radius:var(--tz-radius); }

.tz-single-footer{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:24px 0; margin:24px 0; border-top:1px solid #e4e8ef; border-bottom:1px solid #e4e8ef; }
.tz-comment-count{ font-size:14px; color:var(--tz-gray); }
.tz-share-row{ display:flex; gap:10px; }
.tz-share-row a{ background:var(--tz-navy); color:#fff; font-size:12px; font-weight:600; padding:8px 14px; border-radius:6px; }
.tz-share-row a:hover{ background:var(--tz-green); }

.tz-author-strip{ display:flex; align-items:center; gap:12px; margin-bottom:32px; }
.tz-author-strip img{ border-radius:50%; }
.tz-author-name{ display:block; font-weight:600; color:var(--tz-navy); }
.tz-author-link{ font-size:13px; color:var(--tz-gray); }

.tz-post-nav{ display:flex !important; justify-content:space-between !important; gap:16px; margin-bottom:40px; padding-bottom:24px; border-bottom:1px solid #e4e8ef; }
.tz-post-nav-prev, .tz-post-nav-next{
  max-width:48% !important; display:flex !important; flex-direction:column !important;
}
.tz-post-nav-next{ text-align:right !important; align-items:flex-end !important; }
.tz-post-nav-label{ display:block !important; font-size:12px; font-style:italic; color:var(--tz-gray); margin-bottom:4px; }
.tz-post-nav a{ font-size:15px; font-weight:600; color:#1a56b0; }
.tz-post-nav a:hover{ text-decoration:underline; }

/* Related articles carousel - !important on layout-critical props to beat
   Hello Elementor / Elementor Kit global CSS, which loads after ours. */
.tz-related{ margin-bottom:48px; }
.tz-related h3.tz-heading{ text-align:center; text-transform:uppercase; font-size:16px; letter-spacing:.5px; margin-bottom:18px; }
.tz-related-carousel{ position:relative !important; margin-top:16px; }
.tz-related-viewport{ overflow:hidden !important; width:100% !important; }
.tz-related-track{
  display:flex !important;
  flex-wrap:nowrap !important;
  transition:transform .3s ease;
  width:100% !important;
}
.tz-related-slide{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:14px !important;
  min-width:100% !important;
  max-width:100% !important;
  flex:0 0 100% !important;
  box-sizing:border-box !important;
}
.tz-related-item{ display:block !important; }
.tz-related-thumb{ position:relative; }
.tz-related-item img{
  width:100% !important; height:130px !important; object-fit:cover !important;
  border-radius:var(--tz-radius); display:block !important; margin:0 !important;
}
.tz-related-body h4{ font-size:14px; margin:8px 0 4px; line-height:1.3; }

/* Universal thumbnail wrap - injected automatically by the post_thumbnail_html
   filter in functions.php, so this applies everywhere a featured image shows. */
.tz-thumb-wrap{ position:relative; display:block; width:100%; height:100%; }
.tz-thumb-bookmark{ position:absolute; top:8px; right:8px; z-index:2; }
.tz-bookmark-btn.tz-bookmark-icon-only{
  all:unset !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:28px !important; height:28px !important; border-radius:50% !important;
  background:rgba(255,255,255,.92) !important; box-shadow:0 1px 5px rgba(0,0,0,.2) !important;
  cursor:pointer !important; color:var(--tz-navy) !important;
}
.tz-bookmark-btn.tz-bookmark-icon-only svg{ width:14px; height:14px; }
.tz-bookmark-btn.tz-bookmark-icon-only.is-active{ color:var(--tz-gold) !important; }
.tz-bookmark-btn.tz-bookmark-icon-only:hover{ background:#fff !important; }

.tz-related-arrow{
  all:unset !important;
  position:absolute !important; top:35% !important; transform:translateY(-50%) !important; z-index:3 !important;
  background:#fff !important; border:1px solid var(--tz-border) !important; border-radius:50% !important;
  width:32px !important; height:32px !important; display:flex !important; align-items:center !important; justify-content:center !important;
  cursor:pointer !important; font-size:15px !important; color:var(--tz-navy) !important;
  box-shadow:0 2px 8px rgba(11,31,58,.15) !important;
}
.tz-related-arrow-prev{ left:-14px !important; }
.tz-related-arrow-next{ right:-14px !important; }
.tz-related-arrow:hover{ background:var(--tz-navy) !important; color:#fff !important; }

.tz-related-dots{ display:flex !important; justify-content:center !important; gap:8px !important; margin-top:16px !important; }
.tz-related-dot{
  all:unset !important;
  width:8px !important; height:8px !important; border-radius:50% !important;
  background:var(--tz-border) !important; cursor:pointer !important; box-sizing:border-box !important;
}
.tz-related-dot.is-active{ background:var(--tz-green) !important; width:20px !important; border-radius:4px !important; }

@media (max-width:640px){
  .tz-related-slide{ grid-template-columns:repeat(2,1fr) !important; }
  .tz-related-arrow{ display:none !important; }
}

/* Article Rating */
.tz-rating{ text-align:center; padding:36px 0; border-top:1px solid #e4e8ef; border-bottom:1px solid #e4e8ef; margin-bottom:32px; }
.tz-rating-circle{
  width:56px; height:56px; margin:0 auto 10px;
  border:2px dashed var(--tz-border); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.tz-rating-avg{ font-family:var(--tz-font-heading); font-size:18px; font-weight:600; color:var(--tz-navy); }
.tz-rating-label{ font-size:12px; text-transform:uppercase; letter-spacing:.6px; color:var(--tz-gray); margin-bottom:14px; }
.tz-rating-stars{ display:flex; justify-content:center; gap:4px; margin-bottom:8px; }
.tz-rating-star{
  all:unset !important;
  cursor:pointer !important; font-size:22px !important; color:#d6dbe4 !important; line-height:1 !important;
}
.tz-rating-star:hover, .tz-rating-star.is-hover{ color:var(--tz-gold) !important; }
.tz-rating-stars.is-voted .tz-rating-star{ cursor:default !important; }
.tz-rating-star.is-selected{ color:var(--tz-gold) !important; }
.tz-rating-count{ font-size:12px; color:var(--tz-gray); }

.tz-comments-area{ margin-top:20px; }
.tz-comment-list{ list-style:none; margin:0 0 24px; padding:0; }
.tz-comment-list .comment-body{ display:flex; gap:12px; padding:16px 0; border-bottom:1px solid #e4e8ef; }
.tz-comment-list .comment-author img{ border-radius:50%; }
.tz-comment-login-gate{ background:var(--tz-off-white); border-radius:var(--tz-radius); padding:20px; text-align:center; font-size:14px; }

/* Comment form - !important used deliberately to beat Hello Elementor / Elementor
   global kit styles, which load after this stylesheet and would otherwise win. */
#commentform{ background:var(--tz-off-white); border-radius:var(--tz-radius); padding:24px; }
#commentform p{ margin:0 0 14px !important; }
#commentform label{
  display:block !important; font-size:13px !important; font-weight:600 !important;
  color:var(--tz-navy) !important; margin-bottom:6px !important;
}
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea{
  width:100% !important; box-sizing:border-box !important;
  padding:12px 14px !important; border:1px solid #d6dbe4 !important; border-radius:8px !important;
  font-family:var(--tz-font-body) !important; font-size:15px !important;
  background:#fff !important; box-shadow:none !important; outline:none !important;
}
#commentform textarea{ min-height:130px !important; resize:vertical !important; }
#commentform input:focus, #commentform textarea:focus{ border-color:var(--tz-green) !important; }
#commentform .form-submit{ margin:6px 0 0 !important; }
#commentform input#submit,
#commentform button#submit{
  background:var(--tz-green) !important; color:#fff !important; border:none !important;
  padding:12px 28px !important; border-radius:6px !important; font-weight:700 !important;
  font-size:13px !important; text-transform:uppercase !important; letter-spacing:.4px !important;
  cursor:pointer !important;
}
#commentform input#submit:hover, #commentform button#submit:hover{ background:var(--tz-navy) !important; }
.tz-comments-area .comment-reply-title{ font-family:var(--tz-font-heading) !important; color:var(--tz-navy) !important; }

@media (max-width:640px){
  .tz-single-title{ font-size:26px; }
  .tz-related-grid{ grid-template-columns:1fr; }
  .tz-post-nav a{ max-width:100%; }
  .tz-post-nav{ flex-direction:column; }
}

/* ==========================================================================
   Archive / Category page
   ========================================================================== */
.tz-archive-wrap{ max-width:900px !important; margin:0 auto !important; padding:40px 20px 60px !important; width:100% !important; box-sizing:border-box !important; }
.tz-archive-wrap.tz-has-sidebar{ max-width:1180px !important; }
.tz-archive-wrap.tz-has-sidebar .tz-archive-layout{
  display:flex !important; gap:40px !important; align-items:flex-start !important;
}
.tz-archive-wrap.tz-has-sidebar .tz-archive-main{ flex:1 1 0 !important; min-width:0 !important; }
.tz-archive-wrap.tz-has-sidebar .tz-sidebar{
  flex:0 0 320px !important; width:320px !important;
  position:sticky !important; top:84px !important; align-self:flex-start !important;
}
@media (max-width:900px){
  .tz-archive-wrap.tz-has-sidebar .tz-archive-layout{ flex-direction:column !important; }
  .tz-archive-wrap.tz-has-sidebar .tz-archive-main,
  .tz-archive-wrap.tz-has-sidebar .tz-sidebar{ max-width:100% !important; width:100% !important; flex:1 1 100% !important; position:static !important; top:auto !important; }
}

.tz-archive-title{
  text-align:center !important; text-transform:uppercase !important; font-size:26px !important; letter-spacing:.5px !important;
  margin:0 0 36px !important; width:100% !important;
}
.tz-archive-highlight{ color:#1a56b0; }

.tz-archive-bookmark{ display:flex !important; justify-content:center !important; margin-bottom:32px !important; }
.tz-category-bookmark-btn{
  all:unset !important;
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  border:1px solid var(--tz-border) !important; border-radius:6px !important;
  padding:8px 16px !important; font-size:13px !important; font-weight:600 !important;
  color:var(--tz-navy) !important; cursor:pointer !important;
}
.tz-category-bookmark-btn svg{ width:14px; height:14px; }
.tz-category-bookmark-btn .tz-icon-filled{ display:none; }
.tz-category-bookmark-btn.is-active .tz-icon-outline{ display:none; }
.tz-category-bookmark-btn.is-active .tz-icon-filled{ display:inline-flex; color:var(--tz-gold); }
.tz-category-bookmark-btn.is-active{ border-color:var(--tz-gold) !important; }
.tz-category-bookmark-btn:hover{ background:var(--tz-off-white) !important; }

.tz-archive-list{ display:flex !important; flex-direction:column !important; width:100% !important; }
.tz-archive-item{ padding-bottom:28px !important; margin:0 0 28px !important; border-bottom:1px solid #e4e8ef !important; width:100% !important; }
.tz-archive-item:last-child{ border-bottom:none !important; }

.tz-archive-row{ display:flex !important; flex-wrap:nowrap !important; gap:24px !important; align-items:flex-start !important; width:100% !important; }
.tz-archive-thumb{
  position:relative !important; flex:0 0 300px !important; width:300px !important; height:210px !important;
  border-radius:var(--tz-radius) !important; overflow:hidden !important; display:block !important;
}
.tz-archive-thumb img{ width:100% !important; height:100% !important; object-fit:cover !important; display:block !important; margin:0 !important; }
.tz-archive-thumb-placeholder{ display:block !important; width:100% !important; height:100% !important; background:var(--tz-off-white) !important; }

.tz-archive-content{ flex:1 1 auto !important; min-width:0 !important; text-align:left !important; }
.tz-archive-cat{
  display:inline-block !important; font-size:12px !important; font-weight:700 !important; text-transform:uppercase !important;
  letter-spacing:.5px !important; color:#1a56b0 !important; margin:0 0 8px !important;
}
.tz-archive-item-title{ font-size:22px !important; line-height:1.3 !important; margin:0 0 8px !important; }
.tz-archive-item-title a{ color:var(--tz-navy) !important; }
.tz-archive-item-title a:hover{ color:var(--tz-green) !important; }
.tz-archive-date{ font-size:13px !important; color:var(--tz-gray) !important; margin:0 0 12px !important; }
.tz-archive-excerpt{ font-size:15px !important; line-height:1.7 !important; color:#3d4759 !important; margin:0 !important; }

.tz-archive-share-row{ margin:20px 0 0 !important; padding-top:16px !important; border-top:1px solid #e4e8ef !important; display:flex !important; justify-content:center !important; width:100% !important; }
.tz-share-icons{ display:flex !important; align-items:center !important; gap:22px !important; }
.tz-share-icons a{ color:var(--tz-gray) !important; display:inline-flex !important; }
.tz-share-icons a:hover{ color:var(--tz-navy) !important; }

.tz-archive-empty{ text-align:center !important; padding:60px 20px !important; color:var(--tz-gray) !important; }

/* Pagination */
.tz-pagination{ margin-top:20px !important; }
.tz-pagination ul{ display:flex !important; justify-content:center !important; gap:6px !important; list-style:none !important; margin:0 !important; padding:0 !important; flex-wrap:wrap !important; }
.tz-pagination .page-numbers{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-width:38px !important; height:38px !important; padding:0 8px !important; border-radius:6px !important;
  border:1px solid var(--tz-border) !important; color:var(--tz-navy) !important; font-size:14px !important; font-weight:600 !important;
}
.tz-pagination a.page-numbers:hover{ background:var(--tz-navy) !important; color:#fff !important; border-color:var(--tz-navy) !important; }
.tz-pagination .page-numbers.current{ background:var(--tz-green) !important; color:#fff !important; border-color:var(--tz-green) !important; }
.tz-pagination .page-numbers.dots{ border:none !important; color:var(--tz-gray) !important; }

@media (max-width:640px){
  .tz-archive-row{ flex-direction:column !important; }
  .tz-archive-thumb{ width:100% !important; flex-basis:auto !important; height:200px !important; }
}

/* ==========================================================================
   Hero slider (homepage)
   ========================================================================== */
.tz-hero-carousel{ position:relative !important; margin-bottom:40px !important; }
.tz-hero-viewport{
  overflow:hidden !important; width:100% !important; border-radius:0 !important;
  position:relative !important; perspective:1400px !important;
}
.tz-hero-track{ position:relative !important; width:100% !important; height:380px !important; }

/* Each slide is stacked absolutely; only .is-active is visible/interactive.
   Direction classes drive the flip via transform, swapped by JS. */
.tz-hero-slide{
  position:absolute !important; inset:0 !important; width:100% !important; height:100% !important;
  display:grid !important; gap:0 !important; box-sizing:border-box !important;
  opacity:0 !important; pointer-events:none !important;
  transform:rotateY(90deg) !important; transform-origin:center center !important;
  transition:transform .6s cubic-bezier(.4,.1,.2,1), opacity .5s ease !important;
  backface-visibility:hidden !important; will-change:transform, opacity;
}
.tz-hero-slide.is-active{
  opacity:1 !important; pointer-events:auto !important; transform:rotateY(0deg) !important; z-index:2 !important;
}
.tz-hero-slide.tz-enter-next{ transform:rotateY(90deg) !important; opacity:0 !important; }
.tz-hero-slide.tz-enter-prev{ transform:rotateY(-90deg) !important; opacity:0 !important; }
.tz-hero-slide.tz-leave-next{ transform:rotateY(-90deg) !important; opacity:0 !important; z-index:1 !important; }
.tz-hero-slide.tz-leave-prev{ transform:rotateY(90deg) !important; opacity:0 !important; z-index:1 !important; }

.tz-hero-item{
  position:relative !important; display:block !important; height:100% !important;
  border-radius:0 !important; border:none !important; overflow:hidden;
  background-size:cover !important; background-position:center !important;
  background-color:var(--tz-navy-dark);
}
.tz-hero-overlay{
  position:absolute !important; inset:0 !important; display:flex !important; flex-direction:column !important;
  justify-content:flex-end !important; padding:20px !important;
  background:linear-gradient(180deg, rgba(11,31,58,0) 30%, rgba(11,31,58,.88) 100%) !important;
}
.tz-hero-overlay h3{ color:#fff !important; font-size:19px; line-height:1.3; margin:8px 0 0 !important; }
.tz-hero-overlay .tz-badge{ align-self:flex-start !important; }

.tz-hero-arrow{
  all:unset !important;
  position:absolute !important; top:50% !important; transform:translateY(-50%) !important; z-index:5 !important;
  background:rgba(255,255,255,.92) !important; border-radius:50% !important;
  width:40px !important; height:40px !important; display:flex !important; align-items:center !important; justify-content:center !important;
  cursor:pointer !important; font-size:18px !important; color:var(--tz-navy) !important;
  box-shadow:0 2px 10px rgba(0,0,0,.2) !important;
}
.tz-hero-arrow-prev{ left:14px !important; }
.tz-hero-arrow-next{ right:14px !important; }
.tz-hero-arrow:hover{ background:var(--tz-navy) !important; color:#fff !important; }

.tz-hero-dots{ display:flex !important; justify-content:center !important; gap:8px !important; margin-top:16px !important; }
.tz-hero-dot{
  all:unset !important; width:9px !important; height:9px !important; border-radius:50% !important;
  background:var(--tz-border) !important; cursor:pointer !important; box-sizing:border-box !important;
}
.tz-hero-dot.is-active{ background:var(--tz-green) !important; width:22px !important; border-radius:5px !important; }

@media (max-width:768px){
  .tz-hero-track{ height:260px !important; }
  .tz-hero-slide{ grid-template-columns:1fr !important; }
}

/* ==========================================================================
   Sidebar / Widgets
   ========================================================================== */
.tz-widget{
  background:#fff; border:1px solid #e4e8ef; border-radius:var(--tz-radius);
  padding:22px; margin-bottom:24px;
}
.tz-widget-title{
  font-size:14px; text-transform:uppercase; letter-spacing:.5px; color:var(--tz-navy);
  margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid var(--tz-green);
}
.tz-widget ul{ list-style:none; margin:0; padding:0; }
.tz-widget li{ padding:9px 0; border-bottom:1px solid #eef1f6; font-size:14px; }
.tz-widget li:last-child{ border-bottom:none; }
.tz-widget a{ color:var(--tz-navy); }
.tz-widget a:hover{ color:var(--tz-green); }
.tz-widget p{ font-size:14px; line-height:1.7; color:#3d4759; }
.tz-widget img{ max-width:100%; height:auto; border-radius:6px; }
.tz-widget input[type="text"],
.tz-widget input[type="search"],
.tz-widget input[type="email"]{
  width:100%; padding:10px 12px; border:1px solid #d6dbe4; border-radius:6px;
  font-family:var(--tz-font-body); box-sizing:border-box; font-size:14px;
}
.tz-widget select{ width:100%; padding:9px; border:1px solid #d6dbe4; border-radius:6px; box-sizing:border-box; }
.tz-widget .widget_search form,
.tz-widget .search-form{ display:flex; gap:8px; }
.tz-widget input[type="submit"]{
  background:var(--tz-navy); color:#fff; border:none; padding:10px 16px;
  border-radius:6px; cursor:pointer; font-weight:600; font-size:13px;
}
.tz-widget input[type="submit"]:hover{ background:var(--tz-green); }
.tz-widget .tagcloud{ display:flex; flex-wrap:wrap; gap:8px; }
.tz-widget .tagcloud a{
  font-size:12px !important; background:var(--tz-off-white); padding:5px 12px; border-radius:20px; display:inline-block;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.tz-footer{ background:var(--tz-footer-bg, var(--tz-navy-dark)); color:var(--tz-footer-text, var(--tz-off-white)); padding:50px 20px 20px; margin-top:60px; }
.tz-footer-inner{ max-width:1240px; margin:0 auto; text-align:center; }
.tz-footer-logo{ display:inline-block; }
.tz-footer-logo img{ height:36px; width:auto; display:block; margin:0 auto; }
.tz-footer-logo-fallback-text{ color:var(--tz-footer-text, #ffffff) !important; }
.tz-footer-social{ display:flex; justify-content:center; gap:14px; margin:18px 0; }
.tz-footer-social a{ color:var(--tz-footer-text, #fff); background:rgba(255,255,255,.08); width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.tz-footer-social a:hover{ color:var(--tz-footer-accent, var(--tz-gold)); }
.tz-footer-nav ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 26px; list-style:none; margin:0 0 20px; padding:0; }
.tz-footer-nav a{ color:var(--tz-footer-text, #fff); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.3px; }
.tz-footer-nav a:hover{ color:var(--tz-footer-accent, var(--tz-gold)); }
.tz-footer-bottom{ text-align:center; font-size:13px; color:var(--tz-footer-text, var(--tz-gray)); opacity:.75; border-top:1px solid rgba(255,255,255,.12); padding-top:16px; margin-top:16px; }

/* ==========================================================================
   Reusable Post Block - [tz_post_block]
   Namespaced under .tz-block- so it never collides with the existing
   .tz-card / .tz-related- rules used elsewhere. Colour is driven by the
   --tz-block-accent custom property (defaults to --tz-navy, overridable
   per instance via the shortcode's accent="#hex" attribute).

   !important is used throughout on layout- and colour-critical properties,
   the same way .tz-related-* does above - Hello Elementor / the Elementor
   Kit stylesheet loads after ours and otherwise strips backgrounds, flex
   layout, and image sizing on anything dropped in via a Shortcode widget.
   ========================================================================== */
.tz-block{ --tz-block-accent: var(--tz-navy); margin:0 0 40px !important; }

.tz-block-banner{
  background:var(--tz-block-accent) !important;
  color:#fff !important;
  font-family:var(--tz-font-heading);
  font-weight:700;
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:12px 18px !important;
  margin:0 0 20px !important;
  position:relative !important;
}
.tz-block-banner::after{
  content:"";
  position:absolute !important; left:0; right:0; bottom:-4px;
  height:2px; background:var(--tz-block-accent) !important; opacity:.35;
}

.tz-block-divider{
  display:flex !important; align-items:center !important; gap:16px;
  text-transform:uppercase; letter-spacing:.5px;
  font-size:16px; color:var(--tz-block-accent) !important;
  margin:0 0 20px !important;
}
.tz-block-divider::before,
.tz-block-divider::after{
  content:""; flex:1 !important; height:1px; background:var(--tz-block-accent) !important; opacity:.25;
}

.tz-block-grid{
  display:grid !important;
  grid-template-columns:repeat(var(--tz-block-cols,3),1fr) !important;
  gap:20px !important;
}

.tz-block-card{
  display:block !important; background:#fff !important; border-radius:var(--tz-radius); overflow:hidden !important;
  box-shadow:0 1px 3px rgba(11,31,58,.08);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tz-block-card:hover{ transform:translateY(-3px); box-shadow:0 8px 20px rgba(11,31,58,.12); }
.tz-block-thumb{ position:relative !important; }
.tz-block-thumb img{
  width:100% !important; height:170px !important; object-fit:cover !important;
  display:block !important; margin:0 !important; border-radius:0 !important;
}
.tz-block-num{
  position:absolute !important; top:10px; left:10px; z-index:3;
  width:26px !important; height:26px !important; border-radius:50% !important;
  background:var(--tz-block-accent) !important; color:#fff !important;
  font-size:12px; font-weight:700; font-family:var(--tz-font-heading);
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.tz-block-body{ padding:14px 16px !important; }
.tz-block-cats{ display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--tz-block-accent) !important; margin-bottom:6px; }
.tz-block-title{ margin:0 0 6px !important; font-size:15px; line-height:1.35; color:var(--tz-navy) !important; }
.tz-block-title.is-upper{ text-transform:uppercase; font-size:13px; letter-spacing:.3px; }
.tz-block-date{ font-size:12px; color:var(--tz-gray) !important; }

/* carousel layout - same event-delegated pattern as .tz-related-carousel,
   namespaced separately so both can be used independently on a page. */
.tz-block-carousel{ position:relative !important; margin-top:4px; }
.tz-block-viewport{ overflow:hidden !important; width:100% !important; }
.tz-block-track{
  display:flex !important; flex-wrap:nowrap !important;
  transition:transform .3s ease; width:100% !important;
}
.tz-block-slide{
  display:grid !important;
  grid-template-columns:repeat(var(--tz-block-cols,4),1fr) !important;
  gap:16px !important;
  min-width:100% !important; max-width:100% !important;
  flex:0 0 100% !important;
  box-sizing:border-box !important;
}
.tz-block-arrow{
  position:absolute !important; top:38%; transform:translateY(-50%);
  width:34px !important; height:34px !important; border-radius:50% !important; border:none !important;
  background:var(--tz-navy) !important; color:#fff !important; cursor:pointer; z-index:3;
}
.tz-block-arrow-prev{ left:-14px; }
.tz-block-arrow-next{ right:-14px; }
.tz-block-dots{ display:flex !important; justify-content:center !important; gap:8px !important; margin-top:16px !important; }
.tz-block-dot{ width:8px !important; height:8px !important; border-radius:50% !important; border:none !important; background:var(--tz-border) !important; cursor:pointer; padding:0 !important; }
.tz-block-dot.is-active{ background:var(--tz-block-accent) !important; }

/* featured-list layout - "Popular Posts" sidebar style: item 1 large and
   full-width, remaining items in a 2-column grid, all numbered. */
.tz-block-featured-list .tz-block-featured{ margin-bottom:16px !important; }
.tz-block-featured-list .tz-block-featured .tz-block-thumb img{ height:220px !important; }
.tz-block-featured-list .tz-block-featured .tz-block-title{ font-size:16px; }
.tz-block-rest{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:14px !important; }
.tz-block-rest .tz-block-thumb img{ height:120px !important; }
.tz-block-rest .tz-block-title{ font-size:12.5px; }

@media (max-width:782px){
  .tz-block-grid{ grid-template-columns:repeat(2,1fr) !important; }
  .tz-block-slide{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:480px){
  .tz-block-grid{ grid-template-columns:1fr !important; }
  .tz-block-slide{ grid-template-columns:1fr !important; }
  .tz-block-rest{ grid-template-columns:1fr !important; }
}

/* ==========================================================================
   Category List widget - [tz_category_list]
   Matches the "Categories" sidebar reference: banner heading, then a
   chevron + name + post-count row per category with thin separators.
   ========================================================================== */
.tz-cat-list{ list-style:none !important; margin:0 !important; padding:0 !important; }
.tz-cat-list li{
  border-bottom:1px solid #eef1f6 !important; padding:0 !important;
}
.tz-cat-list li:last-child{ border-bottom:none !important; }
.tz-cat-list a{
  display:flex !important; align-items:center; justify-content:space-between;
  padding:11px 2px !important; color:var(--tz-navy) !important; font-size:14px;
}
.tz-cat-list a:hover{ color:var(--tz-green) !important; }
.tz-cat-list .tz-cat-chevron{ color:var(--tz-block-accent, var(--tz-navy)) !important; margin-right:8px; font-size:12px; }
.tz-cat-list .tz-cat-name{ flex:1 !important; }
.tz-cat-list .tz-cat-count{ color:var(--tz-gray) !important; font-size:13px; }

/* ==========================================================================
   Text list (date-over-title) - shared by [tz_breaking_news] and any other
   list-style block. Orange accent by default for Breaking News; overridable
   the same way as tz_post_block via --tz-block-accent / accent="#hex".
   ========================================================================== */
.tz-textlist{ --tz-block-accent: var(--tz-orange); margin:0 0 40px !important; }
.tz-textlist-items{ list-style:none !important; margin:0 !important; padding:0 !important; }
.tz-textlist-items li{ padding:14px 0 !important; border-bottom:1px solid #eef1f6 !important; }
.tz-textlist-items li:last-child{ border-bottom:none !important; }
.tz-textlist-date{ display:block !important; font-size:12px; color:var(--tz-gray) !important; margin-bottom:4px; }
.tz-textlist-items a{ display:block !important; font-size:15px; font-weight:700; color:var(--tz-navy) !important; line-height:1.4; }
.tz-textlist-items a:hover{ color:var(--tz-block-accent) !important; }

/* ==========================================================================
   Articles Grid - [tz_articles_grid]
   Category filter pills + heading + card grid + AJAX "Load More" button.
   ========================================================================== */
.tz-articles-pills{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; margin:0 0 24px !important; }
.tz-articles-pill{
  background:#fff !important; border:1px solid #d6dbe4 !important; color:var(--tz-navy) !important;
  font-size:12px !important; font-weight:600; text-transform:uppercase; letter-spacing:.3px;
  padding:8px 16px !important; border-radius:20px !important; cursor:pointer;
  font-family:var(--tz-font-body);
}
.tz-articles-pill.is-active{ background:var(--tz-navy) !important; border-color:var(--tz-navy) !important; color:#fff !important; }
.tz-articles-pill:hover{ border-color:var(--tz-navy) !important; }

.tz-articles-grid-wrap{ position:relative; min-height:80px; }
.tz-articles-grid-wrap.is-loading{ opacity:.5 !important; pointer-events:none !important; }

.tz-load-more-row{ text-align:center !important; margin-top:28px !important; }
.tz-load-more-btn{
  background:transparent !important; border:1px solid var(--tz-border-light,#d6dbe4) !important;
  color:var(--tz-navy) !important; font-family:var(--tz-font-body); font-size:13px; font-weight:600;
  text-transform:uppercase; letter-spacing:.5px; padding:14px 32px !important; border-radius:4px !important;
  cursor:pointer; display:inline-flex !important; align-items:center; gap:8px;
}
.tz-load-more-btn:hover{ border-color:var(--tz-navy) !important; background:var(--tz-off-white) !important; }
.tz-load-more-btn[disabled]{ opacity:.5 !important; cursor:default; }
.tz-load-more-btn .tz-spin{ display:inline-flex; transition:transform .5s ease; }
.tz-load-more-btn.is-loading .tz-spin{ animation:tzSpin .6s linear infinite; }
@keyframes tzSpin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

/* ==========================================================================
   Keep In Touch - [tz_keep_in_touch]
   ========================================================================== */
.tz-keep-in-touch{ display:grid !important; grid-template-columns:repeat(2,1fr) !important; gap:14px 28px !important; }
.tz-kit-link{ display:flex !important; align-items:center !important; gap:10px !important; color:var(--tz-navy) !important; }
.tz-kit-link:hover{ color:var(--tz-green) !important; }
.tz-kit-icon{ display:inline-flex !important; width:18px !important; height:18px !important; flex-shrink:0; }
.tz-kit-icon svg{ width:100% !important; height:100% !important; display:block !important; }
.tz-kit-label{ font-family:var(--tz-font-heading); font-size:13px; font-weight:600; letter-spacing:.3px; }
@media (max-width:480px){ .tz-keep-in-touch{ grid-template-columns:1fr !important; } }

/* ==========================================================================
   Facebook Feed - [tz_facebook_feed]
   ========================================================================== */
.tz-fb-feed-missing{ font-size:13px; color:var(--tz-gray) !important; font-style:italic; margin:0 !important; }
.fb-page, .fb-page span, .fb-page iframe{ max-width:100% !important; width:100% !important; }

/* ==========================================================================
   My Bookmarks - [tz_my_bookmarks]
   ========================================================================== */
.tz-my-bookmarks{ display:flex !important; flex-direction:column !important; gap:8px; }
.tz-my-bookmarks-empty{ font-size:13px; color:var(--tz-gray) !important; font-style:italic; margin:0 0 20px !important; }
.tz-my-bookmarks-cats li{ display:flex !important; align-items:center !important; justify-content:space-between !important; gap:10px; }
.tz-my-bookmarks-cats li a{ flex:1 !important; pointer-events:none; }
.tz-block-card.is-removing{ opacity:0 !important; transform:scale(.96); transition:opacity .25s ease, transform .25s ease; }
.tz-my-bookmarks-cats li.is-removing{ opacity:0 !important; transition:opacity .25s ease; }

/* ==========================================================================
   Ribbon heading style - the folded-corner tag used on the Contact page
   ("SEND US A MESSAGE" / "KEEP IN TOUCH"). Works the same way as
   heading_style="banner"/"divider" everywhere else - any shortcode that
   accepts heading_style can use "ribbon" too.
   ========================================================================== */
.tz-block-ribbon{
  position:relative !important;
  display:inline-block !important;
  background:var(--tz-block-accent, var(--tz-navy)) !important;
  color:#fff !important;
  font-family:var(--tz-font-heading);
  font-weight:700;
  font-size:12.5px;
  text-transform:uppercase;
  letter-spacing:.5px;
  padding:12px 22px 12px 26px !important;
  margin:0 0 20px !important;
}
.tz-block-ribbon::before{
  content:"";
  position:absolute !important; top:0; left:0;
  border-style:solid !important;
  border-width:13px 13px 0 0 !important;
  border-color:var(--tz-orange) transparent transparent transparent !important;
}

/* ==========================================================================
   Contact Page - [tz_contact_form] / [tz_contact_page]
   ========================================================================== */
.tz-contact-grid{
  display:grid !important;
  grid-template-columns:2fr 1fr !important;
  gap:24px !important;
  align-items:start !important;
}
.tz-contact-card{
  background:#fff !important;
  border:1px solid var(--tz-border-light) !important;
  padding:24px !important;
  border-radius:2px !important;
}
.tz-contact-intro{ font-size:14px; color:#3a4356 !important; line-height:1.7; margin:0 0 16px !important; }
.tz-contact-meta{ list-style:none !important; margin:0 0 22px !important; padding:0 !important; }
.tz-contact-meta li{ font-size:14px; color:#3a4356 !important; margin-bottom:6px !important; padding-left:14px !important; position:relative; }
.tz-contact-meta li::before{ content:"\25AA"; position:absolute; left:0; top:1px; font-size:10px; color:var(--tz-navy); }
.tz-contact-meta strong{ color:var(--tz-navy) !important; }

.tz-contact-row{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:14px !important; margin-bottom:14px !important; }
.tz-contact-field{
  width:100% !important; box-sizing:border-box !important;
  padding:12px 14px !important; border:1px solid var(--tz-border-light) !important; border-radius:3px !important;
  font-family:var(--tz-font-body); font-size:14px; color:#1a2233 !important; background:#fff !important;
}
.tz-contact-field:focus{ outline:none !important; border-color:var(--tz-navy) !important; }
textarea.tz-contact-field{ min-height:120px !important; resize:vertical !important; margin-bottom:14px !important; }
.tz-contact-honeypot{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

.tz-contact-recaptcha{ margin-bottom:18px !important; }
.tz-contact-submit-row{ display:flex !important; align-items:center !important; gap:16px; }
.tz-contact-submit{
  background:var(--tz-navy) !important; color:#fff !important; border:none !important;
  padding:13px 30px !important; border-radius:3px !important; cursor:pointer;
  font-family:var(--tz-font-body); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.5px;
}
.tz-contact-submit:hover{ background:var(--tz-navy-dark) !important; }
.tz-contact-submit[disabled]{ opacity:.6 !important; cursor:default; }
.tz-contact-msg{ font-size:13px; margin:0; }
.tz-contact-msg.is-success{ color:var(--tz-green) !important; }
.tz-contact-msg.is-error{ color:#c0392b !important; }

.tz-contact-image{ margin-top:20px !important; }
.tz-contact-image img{ width:100% !important; display:block !important; border-radius:2px !important; }

@media (max-width:900px){
  .tz-contact-grid{ grid-template-columns:1fr !important; }
}
@media (max-width:600px){
  .tz-contact-row{ grid-template-columns:1fr !important; }
}
