/*
Theme Name: HafizPress
Author: Hafiz Ahmed Zafar
Author URI: https://hafizahmedzafar.com
Description: A modern publishing and blogging theme with visual header and footer builders, responsive 16:9 article cards, flexible layouts, dark mode, live search, table of contents, typography controls, accessibility-minded navigation and deep WordPress integration — no page builder required.
Version: 1.1.4
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: hafizpress
Tags: blog, news, one-column, two-columns, three-columns, left-sidebar, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, theme-options

This theme, like WordPress, is licensed under the GPL.
*/

/* =========================================================
   TABLE OF CONTENTS
   1. Custom Properties / Theme Colors
   2. Reset & Base
   3. Typography
   4. Layout / Containers
   5. Header
   6. Navigation / Mobile Menu
   7. Hero / Featured Section
   8. Buttons & Forms
   9. Post Cards / Archive Grid
   10. Single Post
   11. Table of Contents
   12. Author Box
   13. Related Posts
   14. Comments
   15. Sidebar & Widgets
   16. Footer
   17. Dark Mode
   18. Reading Progress Bar / Back to Top
   19. Utilities & Animations
   20. Responsive
   ========================================================= */

/* 1. Custom Properties */
:root{
  --color-bg:#ffffff;
  --color-bg-alt:#f6f7fb;
  --color-surface:#ffffff;
  --color-border:#e7e9f1;
  --color-text:#1c1e29;
  --color-text-muted:#5b5f73;
  --color-primary:#1a3c6e;
  --color-primary-dark:#122a4d;
  --color-accent:#c8952c;
  --color-accent-soft:#f3e4c4;
  --color-link:#1a3c6e;
  --font-heading:'Playfair Display', Georgia, 'Times New Roman', serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --shadow-sm:0 1px 3px rgba(20,20,40,.06);
  --shadow-md:0 8px 24px rgba(20,20,40,.08);
  --shadow-lg:0 20px 48px rgba(20,20,40,.14);
  --container:1180px;
  --transition:.25s ease;
}
html.dark-mode{
  --color-bg:#12141c;
  --color-bg-alt:#191b26;
  --color-surface:#1b1e2b;
  --color-border:#2b2f40;
  --color-text:#eef0f6;
  --color-text-muted:#a3a7bd;
  --color-accent-soft:#3a3220;
  --color-link:#8fb4e8;
  /* --color-primary and --color-accent are intentionally NOT overridden here — those
     are the site's brand colors, admin-configured in Theme Options, and should stay
     consistent regardless of whether a visitor toggles reading dark mode on or off. */
}

/* 2. Reset & Base */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden;overflow-x:clip;}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  transition:background var(--transition),color var(--transition);
  max-width:100%;
  overflow-x:hidden;
  overflow-x:clip; /* Root-level safety net: prevents accidental viewport overflow without creating
  a horizontal scrolling container. Off-screen navigation and third-party embeds can otherwise
  add a few pixels to the document width on some browsers. */
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--color-link);text-decoration:none;transition:color var(--transition);}
a:hover{color:var(--color-accent);}
ul,ol{padding-left:1.2em;}
figure{margin:0;}
.skip-link{
  position:absolute;left:-9999px;top:0;background:var(--color-primary);color:#fff;
  padding:12px 20px;z-index:10000;border-radius:0 0 6px 0;
}
.skip-link:focus{left:0;}

/* 3. Typography */
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-heading);
  color:var(--color-text);
  line-height:1.25;
  font-weight:700;
  margin:0 0 .55em;
}
h1{font-size:clamp(2rem,4vw,3rem);}
h2{font-size:clamp(1.5rem,3vw,2.2rem);}
h3{font-size:1.5rem;}
p{margin:0 0 1.4em;}
blockquote{
  margin:2em 0;padding:1.2em 1.6em;border-left:4px solid var(--color-accent);
  background:var(--color-bg-alt);font-style:italic;color:var(--color-text-muted);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}
code,pre{font-family:'SFMono-Regular',Consolas,Menlo,monospace;}
pre{background:#171a24;color:#e9ecf5;padding:1.2em;border-radius:var(--radius-sm);overflow:auto;}
code{background:var(--color-bg-alt);padding:.15em .4em;border-radius:4px;font-size:.9em;}
pre code{background:none;padding:0;}
hr{border:none;border-top:1px solid var(--color-border);margin:2.5em 0;}
table{width:100%;border-collapse:collapse;margin:1.5em 0;}
table th,table td{border:1px solid var(--color-border);padding:.6em .9em;text-align:left;}
table th{background:var(--color-bg-alt);}

/* 4. Layout */
.container{max-width:var(--container);margin:0 auto;padding:0 24px;}
.site-main{padding:48px 0 80px;}
.content-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start;}
.content-layout.full-width{grid-template-columns:1fr;}

/* 5. Header */
.site-header{
  position:sticky;top:0;z-index:999;background:var(--color-bg);
  border-bottom:1px solid var(--color-border);backdrop-filter:blur(10px);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;gap:24px;max-width:var(--container);margin:0 auto;}
.site-branding{display:flex;align-items:center;gap:12px;min-width:0;flex-shrink:1;}
.site-branding .custom-logo-link{flex-shrink:0;display:block;}
.site-branding img,
.site-branding .custom-logo{
  max-height:48px;max-width:200px;width:auto;height:auto;object-fit:contain;border-radius:8px;display:block;
}
.site-branding-text{min-width:0;overflow:hidden;}
.site-title{
  font-family:var(--font-heading);font-size:clamp(1rem, 3vw, 1.5rem);font-weight:700;margin:0;letter-spacing:-.02em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.site-title a{color:var(--color-text);}
.site-description{font-size:.8rem;color:var(--color-text-muted);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.header-actions{display:flex;align-items:center;gap:14px;}

/* 6. Navigation */
.primary-navigation{display:flex;align-items:center;}
.primary-menu{display:flex;list-style:none;margin:0;padding:0;gap:28px;}
.primary-menu li{position:relative;}
.primary-menu>li>a{
  font-weight:600;font-size:.95rem;color:var(--color-text);padding:10px 0;display:inline-block;position:relative;
}
.primary-menu>li>a::after{
  content:"";position:absolute;left:0;bottom:2px;width:0;height:2px;background:var(--color-accent);transition:width var(--transition);
}
.primary-menu>li>a:hover::after,.primary-menu>li.current-menu-item>a::after{width:100%;}
.primary-menu ul{
  list-style:none;position:absolute;top:100%;left:0;background:var(--color-surface);min-width:220px;
  box-shadow:var(--shadow-md);border-radius:var(--radius-sm);padding:8px;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:all var(--transition);z-index:50;border:1px solid var(--color-border);
}
.primary-menu li:hover>ul{opacity:1;visibility:visible;transform:translateY(0);}
.primary-menu ul li a{padding:9px 12px;display:block;border-radius:6px;font-weight:500;}
.primary-menu ul li a:hover{background:var(--color-bg-alt);}
.menu-toggle{
  display:none;background:none;border:1px solid var(--color-border);border-radius:8px;
  width:42px;height:42px;cursor:pointer;position:relative;
}
.menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{
  content:"";position:absolute;left:10px;width:22px;height:2px;background:var(--color-text);transition:all var(--transition);
}
.menu-toggle span{top:20px;}
.menu-toggle span::before{top:-7px;}
.menu-toggle span::after{top:7px;}
.menu-toggle.active span{background:transparent;}
.menu-toggle.active span::before{transform:rotate(45deg);top:0;}
.menu-toggle.active span::after{transform:rotate(-45deg);top:0;}

/* icon buttons: search / dark mode */
.icon-btn{
  width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text);
}
.icon-btn:hover{border-color:var(--color-accent);color:var(--color-accent);}
.icon-btn svg{width:18px;height:18px;}

/* Live search panel */
.search-overlay{
  position:fixed;inset:0;background:rgba(10,12,20,.55);z-index:2000;display:none;align-items:flex-start;justify-content:center;padding:80px 20px;
}
.search-overlay.open{display:flex;}
.search-panel{background:var(--color-surface);width:100%;max-width:640px;border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-lg);}
.search-panel input[type=text]{
  width:100%;padding:14px 16px;font-size:1.1rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);
  background:var(--color-bg-alt);color:var(--color-text);
}
.search-close{float:right;cursor:pointer;background:none;border:none;color:var(--color-text-muted);font-size:1.4rem;}
.search-results{margin-top:16px;max-height:50vh;overflow:auto;}
.search-result-item{display:flex;gap:12px;padding:10px;border-radius:8px;}
.search-result-item:hover{background:var(--color-bg-alt);}
.search-result-item img{width:60px;height:60px;object-fit:cover;border-radius:6px;flex-shrink:0;}
.search-result-item .sr-title{font-weight:600;margin:0 0 4px;font-size:.95rem;}
.search-result-item .sr-meta{font-size:.78rem;color:var(--color-text-muted);}
.search-loading,.search-empty{padding:20px;text-align:center;color:var(--color-text-muted);}

/* 7. Hero */
.site-hero{
  background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
  color:#fff;padding:64px 0;margin-bottom:8px;
}
.site-hero .container{display:flex;align-items:center;gap:40px;flex-wrap:wrap;}
.site-hero-text{flex:1;min-width:280px;}
.site-hero h1{color:#fff;margin-bottom:.4em;}
.site-hero p{color:rgba(255,255,255,.85);font-size:1.1rem;max-width:60ch;}
.site-hero-img img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);}
.hero-badge{
  display:inline-block;background:rgba(255,255,255,.14);color:var(--color-accent-soft);
  padding:6px 14px;border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.03em;margin-bottom:16px;
}

/* 8. Buttons & Forms */
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;font-weight:600;
  font-size:.95rem;border:2px solid var(--color-primary);background:var(--color-primary);color:#fff;cursor:pointer;transition:all var(--transition);
}
.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff;}
.btn-outline{background:transparent;color:var(--color-primary);}
.btn-outline:hover{background:var(--color-primary);color:#fff;}
.btn-accent{background:var(--color-accent);border-color:var(--color-accent);color:#1c1e29;}
.btn-accent:hover{background:#b17f1c;border-color:#b17f1c;}
input,textarea,select{font-family:var(--font-body);font-size:1rem;}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text);
}

/* 9. Post Cards */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;}
.post-card{
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);
  overflow:hidden;transition:transform var(--transition),box-shadow var(--transition);display:flex;flex-direction:column;
}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.post-card-thumb{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--color-bg-alt);}
.post-card-thumb img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s ease;}
.post-card:hover .post-card-thumb img{transform:scale(1.06);}
.post-card-cat{
  position:absolute;top:12px;left:12px;background:var(--color-accent);color:#1c1e29;font-size:.72rem;
  font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:5px 11px;border-radius:999px;
}
.post-card-body{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column;}
.post-card-title{font-size:1.2rem;margin-bottom:.4em;}
.post-card-title a{color:var(--color-text);}
.post-card-title a:hover{color:var(--color-accent);}
.post-card-excerpt{color:var(--color-text-muted);font-size:.94rem;flex:1;}
.post-meta{
  display:flex;flex-wrap:wrap;gap:14px;font-size:.8rem;color:var(--color-text-muted);align-items:center;margin:10px 0 0;
}
.post-meta span{display:inline-flex;align-items:center;gap:5px;}
.post-meta svg{width:14px;height:14px;}
.featured-badge{
  display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:700;color:var(--color-accent);
  text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;
}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap;}
.section-heading h2{margin:0;position:relative;padding-bottom:12px;}
.section-heading h2::after{content:"";position:absolute;left:0;bottom:0;width:52px;height:3px;background:var(--color-accent);}
.section-heading a{font-size:.9rem;font-weight:600;}

/* Load more */
.load-more-wrap{text-align:center;margin-top:48px;}
#load-more-spinner{display:none;margin:16px auto;width:28px;height:28px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* 10. Single Post */
.single-post-header{margin-bottom:28px;}
.entry-breadcrumbs{font-size:.82rem;color:var(--color-text-muted);margin-bottom:18px;}
.entry-breadcrumbs a{color:var(--color-text-muted);}
.entry-breadcrumbs a:hover{color:var(--color-accent);}
.single-post-header h1{margin-bottom:.35em;}
.entry-excerpt-lead{font-size:1.15rem;color:var(--color-text-muted);margin-bottom:18px;}
.single-post-thumb{margin:28px 0;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);}
.entry-content{font-size:1.08rem;text-align:left;overflow-wrap:break-word;word-wrap:break-word;}
.entry-content p,.entry-content li{text-align:left;}
.entry-content .has-text-align-center{text-align:center;}
.entry-content .has-text-align-right{text-align:right;}
.entry-content h2,.entry-content h3{margin-top:1.6em;scroll-margin-top:100px;}
.entry-content .wp-block-image,.entry-content figure{margin:2em 0;}
.entry-content figcaption{font-size:.85rem;color:var(--color-text-muted);text-align:center;margin-top:.5em;}
.entry-content a{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:3px;}

/* Single-post overflow guard
   --------------------------------------------------------------------------
   WordPress content can contain full-width Gutenberg blocks, fixed-width embeds,
   pasted tables, long URLs and third-party markup. A single oversized child should
   never make the reader scroll the entire page sideways. Keep the article/grid
   shrinkable and let genuinely wide content (tables/code) scroll inside itself. */
.single .content-layout,
.single .content-layout > *,
.single .content-layout > article,
.single .entry-content,
.single .single-post-header,
.single .single-post-thumb,
.single .toc-box,
.single .post-engagement-row,
.single .tags-links,
.single .author-box,
.single .post-nav,
.single .related-posts,
.single .comments-area{min-width:0;max-width:100%;}
.single .content-layout > article{width:100%;}
.single .single-split-hero > *{min-width:0;max-width:100%;}

.single .entry-content > *,
.single .entry-content figure,
.single .entry-content img,
.single .entry-content video,
.single .entry-content audio,
.single .entry-content iframe,
.single .entry-content embed,
.single .entry-content object,
.single .entry-content canvas,
.single .entry-content svg{max-width:100%;}

/* Full-width blocks inside an article stay full-width relative to the readable
   article column instead of using 100vw (which includes scrollbar width in some
   browsers and is a common source of the "few pixels wider than the screen" bug). */
.single .entry-content .alignfull,
.single .entry-content .alignwide{
  width:100%;max-width:100%;margin-left:0;margin-right:0;
}

.single .entry-content pre,
.single .entry-content .wp-block-code{
  max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
}
.single .entry-content :not(pre)>code,
.single .entry-content a,
.single .entry-content h1,
.single .entry-content h2,
.single .entry-content h3,
.single .entry-content h4,
.single .entry-content h5,
.single .entry-content h6,
.single .post-nav-item strong,
.single .toc-box a{overflow-wrap:anywhere;word-break:break-word;}

/* Tables are allowed to be wider than the reading column, but the scrolling is
   contained by the table/block itself rather than by the whole page. */
.single .entry-content .wp-block-table,
.single .entry-content table{
  max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
}
.single .entry-content table{display:block;width:100%;}
.single .entry-content .wp-block-table table{display:table;width:max-content;min-width:100%;}

/* Responsive embeds commonly carry width attributes from the provider. */
.single .entry-content .wp-block-embed,
.single .entry-content .wp-block-embed__wrapper{max-width:100%;min-width:0;}
.single .entry-content .wp-block-embed__wrapper iframe{max-width:100%;}
.tags-links{margin-top:40px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.tags-links a{
  background:var(--color-bg-alt);border:1px solid var(--color-border);padding:6px 14px;border-radius:999px;font-size:.82rem;
}
.tags-links a:hover{border-color:var(--color-accent);color:var(--color-accent);}

.post-engagement-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:32px 0;}
.post-engagement-row .share-bar{margin:0;}

.hafiz-audio-player{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;margin:20px 0;
  background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);
}
.hafiz-audio-label{display:flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;color:var(--color-text);white-space:nowrap;}
.hafiz-audio-label svg{width:18px;height:18px;color:var(--color-accent);}
.hafiz-audio-player audio{flex:1;min-width:220px;height:36px;}

/* Stories — portrait social/reel-style cards */
.hafiz-stories-section{margin:8px 0 34px;position:relative;}
.hafiz-stories-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;}
.hafiz-stories-heading h2{font-size:1.15rem;margin:0;}
.hafiz-stories-controls{display:flex;gap:8px;}
.hafiz-stories-scroll{
  width:38px;height:38px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);
  color:var(--color-text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition);
  box-shadow:0 10px 18px rgba(16,24,40,.06);
}
.hafiz-stories-scroll:hover{border-color:var(--color-accent);color:var(--color-accent);transform:translateY(-1px);}
.hafiz-stories-bar{
  display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 12px;scrollbar-width:none;
  scroll-snap-type:x proximity;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;
}
.hafiz-stories-bar::-webkit-scrollbar{display:none;}
.hafiz-story-card{
  flex:0 0 clamp(148px,16vw,188px);padding:0;background:none;border:0;cursor:pointer;font:inherit;text-align:left;
  scroll-snap-align:start;border-radius:22px;transition:transform .22s ease,filter .22s ease;position:relative;
}
.hafiz-story-card:hover,.hafiz-story-card.is-active{transform:translateY(-6px);filter:brightness(1.03);}
.hafiz-story-card:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 60%,transparent);outline-offset:4px;}
.hafiz-story-card-media{
  display:block;position:relative;width:100%;aspect-ratio:9/16;border-radius:22px;overflow:hidden;background:var(--color-bg-alt);
  border:1px solid color-mix(in srgb,var(--color-accent) 35%,var(--color-border));box-shadow:0 14px 30px rgba(10,20,45,.18);
}
.hafiz-story-card-media::after{
  content:"";position:absolute;inset:1px;border-radius:20px;border:1px solid rgba(255,255,255,.28);pointer-events:none;
}
.hafiz-story-card-media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease;}
.hafiz-story-card:hover img,.hafiz-story-card.is-active img{transform:scale(1.055);}
.hafiz-story-card-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(4,10,22,.1) 18%,rgba(4,10,22,.24) 42%,rgba(4,10,22,.88) 100%);}
.hafiz-story-card-top{position:absolute;top:12px;left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2;}
.hafiz-story-card-tag{
  display:inline-flex;align-items:center;max-width:calc(100% - 40px);padding:7px 10px;border-radius:999px;
  background:rgba(255,255,255,.18);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.24);
  color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;
}
.hafiz-story-card-play{
  width:31px;height:31px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.3);color:#fff;font-size:.72rem;padding-left:2px;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);
  flex:0 0 31px;
}
.hafiz-story-card-content{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;display:flex;flex-direction:column;gap:6px;}
.hafiz-story-card-title{
  color:#fff;font-weight:800;font-size:.98rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.hafiz-story-card-caption{
  color:rgba(255,255,255,.9);font-size:.79rem;line-height:1.42;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-shadow:0 1px 10px rgba(0,0,0,.55);
}

/* Full-screen story viewer */
.hafiz-story-viewer{
  position:fixed;inset:0;background:radial-gradient(circle at top,rgba(22,30,52,.55),rgba(0,0,0,.94) 55%);z-index:3000;display:none;
  align-items:center;justify-content:center;padding:18px;
}
.hafiz-story-viewer.is-open{display:flex;}
.hafiz-story-stage{
  position:relative;width:min(100%,420px);height:min(88vh,760px);border-radius:28px;overflow:hidden;
  background:#09111f;box-shadow:0 24px 80px rgba(0,0,0,.42),0 2px 0 rgba(255,255,255,.07) inset;
  border:1px solid rgba(255,255,255,.1);
}
.hafiz-story-backdrop{
  position:absolute;inset:0;background-position:center;background-size:cover;filter:blur(24px) saturate(1.15);transform:scale(1.08);opacity:.7;
}
.hafiz-story-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(4,10,22,.24) 0%,rgba(4,10,22,.36) 28%,rgba(4,10,22,.18) 55%,rgba(4,10,22,.95) 100%);}
.hafiz-story-progress-row{position:absolute;top:14px;left:14px;right:14px;display:flex;gap:5px;z-index:5;}
.hafiz-story-progress-track{flex:1;height:4px;background:rgba(255,255,255,.24);border-radius:99px;overflow:hidden;}
.hafiz-story-progress-fill{height:100%;width:0;background:#fff;box-shadow:0 0 14px rgba(255,255,255,.55);}
.hafiz-story-topbar{position:absolute;top:26px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;z-index:6;}
.hafiz-story-meta{display:flex;align-items:center;gap:8px;min-width:0;}
.hafiz-story-kicker,.hafiz-story-counter{
  display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.18);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.02em;
}
.hafiz-story-kicker{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;}
.hafiz-story-close{
  display:inline-flex;align-items:center;justify-content:center;z-index:6;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.25);color:#fff;
  font-size:1.8rem;line-height:1;cursor:pointer;border-radius:50%;width:42px;height:42px;flex:0 0 42px;
  backdrop-filter:blur(6px);
}
.hafiz-story-image{
  position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;z-index:2;padding:72px 12px 156px;
}
.hafiz-story-content{
  position:absolute;left:0;right:0;bottom:0;z-index:6;padding:24px 18px 18px;background:linear-gradient(to top,rgba(4,10,22,.95) 0%,rgba(4,10,22,.76) 58%,rgba(4,10,22,0) 100%);
}
.hafiz-story-title{color:#fff;font-weight:800;font-size:1.2rem;line-height:1.28;margin-bottom:10px;text-wrap:balance;}
.hafiz-story-caption{color:rgba(255,255,255,.88);font-size:.92rem;line-height:1.52;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.hafiz-story-visit{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;min-height:44px;color:#fff;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.28);padding:10px 18px;border-radius:999px;font-size:.88rem;font-weight:700;
  backdrop-filter:blur(6px);white-space:nowrap;
}
.hafiz-story-nav{
  position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.22);
  background:rgba(0,0,0,.2);color:#fff;cursor:pointer;z-index:7;display:flex;align-items:center;justify-content:center;font-size:1.7rem;backdrop-filter:blur(5px);
}
.hafiz-story-nav.prev{left:10px;}
.hafiz-story-nav.next{right:10px;}

@media(max-width:782px){
  .hafiz-story-viewer{padding:10px;}
  .hafiz-story-stage{width:min(100%,420px);height:min(92vh,740px);border-radius:22px;}
  .hafiz-story-image{padding:70px 8px 160px;}
}

@media(max-width:600px){
  .hafiz-stories-section{margin-bottom:26px;}
  .hafiz-story-card{flex-basis:142px;}
  .hafiz-stories-controls{display:none;}
  .hafiz-story-stage{width:100%;height:min(92vh,720px);}
  .hafiz-story-nav{width:40px;height:40px;top:auto;bottom:110px;transform:none;}
  .hafiz-story-nav.prev{left:14px;}
  .hafiz-story-nav.next{right:14px;}
  .hafiz-story-title{font-size:1.05rem;}
  .hafiz-story-caption{font-size:.86rem;-webkit-line-clamp:5;}
}

@media(prefers-reduced-motion:reduce){
  .hafiz-story-card,.hafiz-story-card-media img,.hafiz-stories-scroll{transition:none;}
}

.hafiz-like-btn{
  display:flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;
  background:var(--color-bg-alt);border:1px solid var(--color-border);color:var(--color-text);
  cursor:pointer;font-size:.85rem;font-weight:600;transition:all var(--transition);
}
.hafiz-like-btn:hover{border-color:var(--color-accent);}
.hafiz-like-btn:disabled{opacity:.6;cursor:default;}
.hafiz-like-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;transition:fill var(--transition), stroke var(--transition);}
.hafiz-like-btn.is-liked{background:color-mix(in srgb, #e0455f 12%, var(--color-bg-alt));border-color:#e0455f;color:#e0455f;}
.hafiz-like-btn.is-liked .hafiz-like-icon{fill:#e0455f;stroke:#e0455f;}
.hafiz-like-count{min-width:1ch;}

.share-bar{display:flex;align-items:center;gap:10px;margin:32px 0;flex-wrap:wrap;}
.share-bar span{font-size:.85rem;font-weight:600;color:var(--color-text-muted);}
.share-btn{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--color-bg-alt);border:1px solid var(--color-border);color:var(--color-text);
}
.share-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.share-btn svg{width:16px;height:16px;}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:48px 0;border-top:1px solid var(--color-border);padding-top:32px;}
.post-nav-item{padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition);display:block;}
.post-nav-item:hover{border-color:var(--color-accent);}
.post-nav-item .pn-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.35em;}
.post-nav-item.next{text-align:right;}
.post-nav-item:only-child{grid-column:1 / -1;}

/* 11. Table of Contents (base structure; numbering/marker/colors/spacing/columns are
   controlled dynamically from HafizPress > Table of Contents — see
   inc/theme-options-css.php, which loads after this file and overrides the rules below) */
.toc-box{
  background:var(--toc-bg,var(--color-bg-alt));border:1px solid var(--toc-border,var(--color-border));border-radius:var(--radius-md);
  padding:20px 24px;margin:28px 0;
}
.toc-box summary{font-weight:700;cursor:pointer;font-family:var(--font-heading);font-size:1.05rem;list-style:none;display:flex;align-items:center;justify-content:space-between;}
.toc-box summary::-webkit-details-marker{display:none;}
.toc-box summary::after{content:"+";font-size:1.3rem;color:var(--toc-accent,var(--color-accent));transition:transform var(--transition);}
.toc-box[open] summary::after{transform:rotate(45deg);}
.toc-box ol{margin:16px 0 0;padding-left:0;list-style:none;}
.toc-box li{margin-bottom:8px;font-size:.94rem;}
.toc-box a{color:var(--toc-link,var(--color-text-muted));text-decoration:none;}
.toc-box a:hover,.toc-box a.active{color:var(--toc-accent,var(--color-accent));}

/* 12. Author Profile / Author Box */
.author-box{
  position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:start;
  width:100%;max-width:100%;padding:30px;margin:44px 0;background:var(--color-bg-alt);
  border:1px solid var(--color-border);border-radius:var(--hp-card-radius,var(--radius-md));overflow:hidden;
}
.author-box::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--color-accent);opacity:.9;}
.author-box-media{min-width:0;position:relative;z-index:1;}
.author-box-avatar-link{display:block;border-radius:50%;text-decoration:none;line-height:0;outline-offset:4px;}
.author-box .author-box-avatar,
.author-box .avatar{display:block;width:var(--hp-author-avatar-size,104px);height:var(--hp-author-avatar-size,104px);max-width:none;border-radius:50%;object-fit:cover;background:var(--color-bg);border:4px solid var(--color-bg);box-shadow:0 0 0 1px var(--color-border),0 10px 28px rgba(15,23,42,.10);}
.author-box-content{min-width:0;position:relative;z-index:1;}
.author-box-label{margin:0 0 7px;color:var(--color-accent);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;}
.author-box-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-width:0;}
.author-box-heading-copy{min-width:0;}
.author-box .author-box-name{margin:0;font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.2;}
.author-box-name a{color:var(--color-text);text-decoration:none;}
.author-box-name a:hover{color:var(--color-primary);}
.author-box-profession{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:5px;color:var(--color-text-muted);font-size:.9rem;}
.author-job-title{font-weight:700;color:var(--color-text);}
.author-profession-separator{opacity:.55;}
.author-profile-link{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;margin-top:2px;padding:8px 12px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);font-size:.78rem;font-weight:700;text-decoration:none;background:var(--color-bg);white-space:nowrap;transition:var(--transition);}
.author-profile-link:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-1px);}
.author-profile-link span{font-size:1.05em;}
.author-box-meta{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:12px;color:var(--color-text-muted);font-size:.82rem;}
.author-box-meta-item{display:inline-flex;align-items:center;gap:6px;min-width:0;}
.author-box-meta-item svg{width:14px;height:14px;flex:0 0 auto;color:var(--color-accent);}
.author-credentials{padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--color-primary) 7%,transparent);color:var(--color-text);font-weight:600;}
.author-box-bio{margin-top:15px;max-width:74ch;color:var(--color-text-muted);font-size:.94rem;line-height:1.7;overflow-wrap:anywhere;}
.author-box-bio p{margin:0 0 .65em;color:inherit;font-size:inherit;}
.author-box-bio p:last-child{margin-bottom:0;}
.author-expertise{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px;}
.author-expertise span{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text-muted);font-size:.75rem;font-weight:650;line-height:1.2;}
.author-box-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:17px;padding-top:16px;border-top:1px solid var(--color-border);}
.author-social{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.author-social a{width:34px;height:34px;border-radius:50%;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:var(--transition);}
.author-social a:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-2px);}
.author-social svg{width:15px;height:15px;}
.author-box-style-spotlight{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 8%,var(--color-bg-alt)),var(--color-bg-alt));box-shadow:var(--hp-design-shadow);border-color:color-mix(in srgb,var(--color-primary) 20%,var(--color-border));padding:34px;}
.author-box-style-boxed{background:var(--color-bg-alt);box-shadow:var(--hp-design-shadow);padding:34px;}
.author-box-style-spotlight::before{width:6px;background:linear-gradient(180deg,var(--color-primary),var(--color-accent));}
.author-box-style-minimal{padding:24px 0;background:transparent;border:0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-radius:0;box-shadow:none;overflow:visible;}
.author-box-style-minimal::before{display:none;}
.author-box-style-minimal .author-box-avatar,.author-box-style-minimal .avatar{box-shadow:none;border-width:2px;}
.author-profile-archive{margin:22px 0 42px;}
.author-profile-archive .author-box-name{font-size:clamp(1.65rem,3vw,2.35rem);}
.author-profile-archive .author-box-avatar,.author-profile-archive .avatar{width:112px;height:112px;}

@media(max-width:700px){
  .author-box{grid-template-columns:1fr;gap:18px;padding:24px;text-align:left;}
  .author-box-media{display:flex;justify-content:flex-start;}
  .author-box .author-box-avatar,.author-box .avatar{width:min(var(--hp-author-avatar-size,104px),92px);height:min(var(--hp-author-avatar-size,104px),92px);}
  .author-box-heading-row{display:block;}
  .author-profile-link{margin-top:12px;}
  .author-box-footer{align-items:flex-start;}
}
@media(max-width:460px){
  .author-box{padding:21px 18px;}
  .author-box-profession,.author-box-meta{font-size:.8rem;}
  .author-profile-link{width:100%;justify-content:center;}
}

/* 13. Related Posts */
.related-posts{margin:56px 0;}

/* 14. Comments */
.comments-area{margin-top:56px;}
.comments-title{margin-bottom:24px;}
.comment-list{list-style:none;margin:0;padding:0;}
.comment-list .children{list-style:none;padding-left:44px;}
.comment-body{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--color-border);}
.comment-body .avatar{border-radius:50%;width:48px;height:48px;flex-shrink:0;}
.comment-author-name{font-weight:700;font-size:.95rem;}
.comment-metadata{font-size:.78rem;color:var(--color-text-muted);margin-bottom:8px;}
.comment-content p{margin-bottom:.7em;}
.reply a{font-size:.8rem;font-weight:600;background:var(--color-bg-alt);padding:5px 12px;border-radius:999px;}

/* 15. Sidebar & Widgets */
.widget{
  background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);
  padding:24px;margin-bottom:28px;
}
.widget-title{font-size:1.05rem;margin-bottom:18px;position:relative;padding-bottom:10px;}
.widget-title::after{content:"";position:absolute;left:0;bottom:0;width:36px;height:3px;background:var(--color-accent);}
.widget ul{list-style:none;padding:0;margin:0;}
.widget ul li{margin-bottom:12px;}
.widget_search input[type=search]{width:100%;padding:12px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text);}
.popular-post-item{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;}
.popular-post-item img{width:64px;height:64px;object-fit:cover;border-radius:8px;flex-shrink:0;}
.popular-post-item .ppi-title{font-size:.9rem;font-weight:600;line-height:1.4;}
.popular-post-item .ppi-meta{font-size:.75rem;color:var(--color-text-muted);margin-top:4px;}
.widget_tag_cloud a{
  display:inline-block;background:var(--color-bg-alt);border:1px solid var(--color-border);padding:5px 12px;
  border-radius:999px;font-size:.78rem!important;margin:0 6px 8px 0;
}
.newsletter-widget p{font-size:.88rem;color:var(--color-text-muted);}
.newsletter-widget input[type=email]{width:100%;padding:11px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text);margin-bottom:10px;}
.social-follow-widget{display:flex;gap:10px;flex-wrap:wrap;}
.social-follow-widget a{
  width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--transition), border-color var(--transition);
}
.social-follow-widget a:hover{background:var(--color-accent);border-color:var(--color-accent);}
.social-follow-widget svg{width:16px;height:16px;display:block;}

/* 16. Footer */
.site-footer{background:var(--color-primary-dark);color:rgba(255,255,255,.85);margin-top:64px;padding:64px 0 0;overflow:hidden;}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.12);align-items:start;}
.footer-widget .widget-title{color:#fff;}
.footer-widget .widget-title::after{background:var(--color-accent);}
.site-footer a{color:rgba(255,255,255,.75);}
.site-footer a:hover{color:var(--color-accent);}
.footer-about .custom-logo-link{display:block;width:max-content;max-width:100%;}
.footer-about img,
.footer-about .custom-logo{
  max-height:64px;max-width:180px;width:auto;height:auto;object-fit:contain;margin-bottom:14px;border-radius:8px;display:block;
}
.footer-site-title{color:inherit;margin:0 0 14px;}
.footer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:24px 0;font-size:.85rem;column-gap:28px;row-gap:10px;}
.footer-bottom p{margin:0;min-width:0;overflow-wrap:anywhere;}
.footer-credit{text-align:right;}
.footer-bottom-single{grid-template-columns:1fr;}
.footer-bottom-single .footer-credit{text-align:left;}
.footer-widget.widget{background:transparent;border:none;padding:0;}
@media(max-width:700px){
  .footer-bottom{grid-template-columns:1fr;text-align:left;}
  .footer-credit{text-align:left;}
}

/* 17. Dark mode toggle icon states */
.icon-btn .icon-sun{display:none;}
html.dark-mode .icon-btn .icon-sun{display:block;}
html.dark-mode .icon-btn .icon-moon{display:none;}

/* 18. Reading progress + back to top */
.reading-progress{position:fixed;top:0;left:0;height:3px;background:var(--color-accent);z-index:1001;width:0%;}
.back-to-top{
  position:fixed;bottom:28px;right:28px;width:46px;height:46px;border-radius:50%;background:var(--color-primary);
  color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);opacity:0;
  visibility:hidden;transform:translateY(10px);transition:all var(--transition);z-index:900;border:none;cursor:pointer;
}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top svg{width:18px;height:18px;}

/* 19. Utilities */
.screen-reader-text{position:absolute;left:-9999px;}
.alignwide{max-width:1000px;margin-left:auto;margin-right:auto;}
.alignfull{width:100vw;margin-left:calc(50% - 50vw);max-width:none;}
.has-text-align-center{text-align:center;}
.pagination{display:flex;gap:8px;margin-top:48px;justify-content:center;flex-wrap:wrap;}
.pagination a,.pagination span{
  min-width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:8px;
  border:1px solid var(--color-border);font-size:.9rem;font-weight:600;
}
.pagination .current{background:var(--color-primary);color:#fff;border-color:var(--color-primary);}
.pagination a:hover{border-color:var(--color-accent);color:var(--color-accent);}
.sticky-badge{background:var(--color-accent);color:#1c1e29;font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;}

/* 19b. Ad Placements */
.ad-slot{
  margin:28px 0;text-align:center;position:relative;overflow:hidden;
}
.ad-slot-full-width{
  width:100%;background:var(--color-bg-alt);padding:16px 0;margin:0;border-bottom:1px solid var(--color-border);
}
.ad-slot-full-width .ad-label{display:block;}
.ad-label{
  display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);
  margin-bottom:8px;opacity:.7;
}
.ad-slot-widget{margin:0;}
.ad-slot-infeed{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--color-bg-alt);border-style:dashed;min-height:220px;padding:20px;
}
.sidebar-sticky-wrap{position:sticky;top:90px;}
.sidebar-sticky-wrap .ad-slot:empty{display:none;}

/* Sticky bottom ad bar */
.sticky-ad-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:1600;background:var(--color-surface);
  border-top:1px solid var(--color-border);box-shadow:0 -4px 20px rgba(0,0,0,.12);
  padding:10px 44px 10px 16px;display:flex;align-items:center;justify-content:center;
}
.sticky-ad-inner{max-width:100%;overflow:hidden;}
.sticky-ad-close{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);background:var(--color-bg-alt);
  border:1px solid var(--color-border);border-radius:50%;width:28px;height:28px;cursor:pointer;
  font-size:1.1rem;line-height:1;color:var(--color-text-muted);
}
.sticky-ad-bar.device-mobile{display:none;}
.sticky-ad-bar.device-desktop{display:flex;}
@media(max-width:782px){
  .sticky-ad-bar.device-mobile{display:flex;}
  .sticky-ad-bar.device-desktop{display:none;}
}

/* Local Business block (shortcode + widget) */
.hafiz-local-business{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:22px 24px;}
.hafiz-lb-name{margin:0 0 12px;font-size:1.1rem;}
.hafiz-lb-address,.hafiz-lb-phone,.hafiz-lb-email{display:flex;align-items:flex-start;gap:8px;font-size:.9rem;margin:0 0 10px;color:var(--color-text-muted);}
.hafiz-lb-address svg,.hafiz-lb-phone svg,.hafiz-lb-email svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:var(--color-accent);}
.hafiz-lb-hours{width:100%;margin:12px 0;font-size:.85rem;border-collapse:collapse;}
.hafiz-lb-hours th{text-align:left;font-weight:600;padding:4px 12px 4px 0;color:var(--color-text);}
.hafiz-lb-hours td{padding:4px 0;color:var(--color-text-muted);}
.hafiz-lb-map{margin-top:14px;border-radius:var(--radius-sm);overflow:hidden;}
.hafiz-lb-map iframe{width:100%;border:0;min-height:220px;display:block;}

/* HTML Sitemap page template */
.hafiz-html-sitemap h2{margin-top:2em;padding-bottom:.3em;border-bottom:2px solid var(--color-accent);}
.hafiz-html-sitemap h3{margin-top:1.6em;font-size:1.1rem;}
.hafiz-sitemap-list{list-style:none;padding:0;margin:0 0 1em;columns:2;column-gap:32px;}
.hafiz-sitemap-list li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--color-border);break-inside:avoid;}
.hafiz-sitemap-date{color:var(--color-text-muted);font-size:.8rem;white-space:nowrap;}
@media(max-width:640px){.hafiz-sitemap-list{columns:1;}}


/* 20. Responsive */
@media(max-width:1100px){
  .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:960px){
  .content-layout,.content-layout.sidebar-left{grid-template-columns:1fr;}
  .content-layout.sidebar-left > .sidebar,.content-layout.sidebar-left > :not(.sidebar){grid-column:auto;grid-row:auto;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:782px){
  .menu-toggle{display:block;}
  .primary-navigation{
    position:fixed;top:0;right:-100%;width:82%;max-width:340px;height:100vh;background:var(--color-surface);
    box-shadow:var(--shadow-lg);transition:right var(--transition);flex-direction:column;padding:80px 24px 24px;z-index:1500;overflow:auto;
  }
  .primary-navigation.open{right:0;}
  .primary-menu{flex-direction:column;gap:4px;align-items:flex-start;width:100%;}
  .primary-menu ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;display:none;width:100%;padding-left:12px;}
  .primary-menu li.submenu-open>ul{display:block;}
  .nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1400;display:none;}
  .nav-overlay.open{display:block;}
  .post-nav{grid-template-columns:1fr;}
  .post-nav-item.next{text-align:left;}
  .footer-grid{grid-template-columns:1fr;}


  /* Nested comment replies: 44px of indent per level eats a large share of a ~340-375px
     content column, especially two or three replies deep. Halved, still visually clear. */
  .comment-list .children{padding-left:20px;}
  .comment-body{gap:12px;}
}
@media(max-width:600px){
  body{font-size:16px;}
  .site-hero{padding:44px 0;}
}
@media(max-width:700px){
  .post-grid{grid-template-columns:1fr;}
}

@media print{
  .site-header,.site-footer,.sidebar,.back-to-top,.reading-progress,.share-bar,.post-engagement-row,.comments-area,.hafiz-stories-bar,.hafiz-story-viewer{display:none;}
}

/* =========================================================
   21. Advanced Header / Footer Builder
   ========================================================= */
.hafiz-header-container{max-width:var(--container);margin:0 auto;padding-left:24px;padding-right:24px;width:100%;}
.hafiz-header-layout{background:var(--header-bg);color:var(--header-text);}
.hafiz-header-layout .site-title a,.hafiz-header-layout .site-description{color:inherit;}
.hafiz-header-layout .primary-menu>li>a{color:inherit;}
.hafiz-header-main{display:flex;align-items:center;justify-content:space-between;gap:26px;min-height:78px;}
.hafiz-header-main-clean{background:var(--header-bg);}
.hafiz-header-layout .header-actions{flex-shrink:0;}
.hafiz-header-cta{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 18px;border-radius:4px;font-weight:700;font-size:.9rem;white-space:nowrap;transition:filter var(--transition),transform var(--transition);}
.hafiz-header-cta:hover{color:var(--header-cta-text);filter:brightness(.94);transform:translateY(-1px);}
.hafiz-header-topbar{background:var(--header-topbar-bg);color:var(--header-topbar-text);font-size:.78rem;}
.hafiz-header-topbar-inner{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:18px;}
.hafiz-topbar-left,.hafiz-topbar-right{display:flex;align-items:center;min-width:0;}
.hafiz-contact-items{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.hafiz-contact-items>a,.hafiz-contact-items>span{display:inline-flex;align-items:center;gap:7px;color:inherit;line-height:1.3;}
.hafiz-contact-items svg{width:15px;height:15px;fill:currentColor;flex:0 0 auto;}
.hafiz-social-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.hafiz-social-links a{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:inherit;border:1px solid color-mix(in srgb,currentColor 24%,transparent);transition:all var(--transition);}
.hafiz-social-links a:hover{background:var(--color-accent);border-color:var(--color-accent);color:#fff;}
.hafiz-social-links svg{width:14px;height:14px;fill:currentColor;}
.hafiz-header-builder-widget .widget{margin:0;}
.hafiz-header-builder-widget .widget-title{display:none;}
.hafiz-header-widget{font-size:.82rem;}

/* Style 01: dark single row reference */
.site-header.hafiz-header-style-01{background:var(--header-topbar-bg);color:var(--header-topbar-text);border-bottom:0;}
.hafiz-header-style-01 .hafiz-header-main{min-height:76px;}
.hafiz-header-style-01 .site-description{opacity:.72;}
.hafiz-header-style-01 .icon-btn{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:inherit;}
.hafiz-header-style-01 .primary-menu>li>a::after{background:var(--color-accent);}

/* Style 02: clean white row */
.hafiz-header-style-02{background:var(--header-bg);border-bottom:1px solid var(--color-border);}
.hafiz-header-style-02 .hafiz-header-main{min-height:74px;}
.hafiz-header-style-02 .primary-menu{gap:24px;}
.hafiz-header-style-02 .primary-menu>li>a{font-size:.9rem;}

/* Style 03: utility bar + main white row */
.hafiz-header-style-03{border-bottom:1px solid var(--color-border);}
.hafiz-header-style-03 .hafiz-header-main{min-height:72px;}

/* Style 04: corporate contact header + colored navigation band */
.site-header.hafiz-header-style-04{background:transparent;border-bottom:0;backdrop-filter:none;}
.hafiz-header-corporate-top{background:var(--header-topbar-bg);color:var(--header-topbar-text);}
.hafiz-corporate-row{min-height:92px;display:grid;grid-template-columns:minmax(150px,1fr) auto auto;align-items:center;gap:34px;}
.hafiz-corporate-contact .hafiz-contact-items{gap:28px;}
.hafiz-corporate-contact .hafiz-contact-items>a,.hafiz-corporate-contact .hafiz-contact-items>span{max-width:190px;}
.hafiz-corporate-socials{align-self:start;padding-top:10px;}
.hafiz-header-navband{background:var(--header-nav-bg);color:var(--header-nav-text);}
.hafiz-navband-inner{min-height:58px;display:flex;align-items:stretch;justify-content:space-between;gap:24px;}
.hafiz-header-navband .primary-navigation{align-self:stretch;}
.hafiz-header-navband .primary-menu{align-items:stretch;gap:0;}
.hafiz-header-navband .primary-menu>li{display:flex;align-items:stretch;}
.hafiz-header-navband .primary-menu>li>a{display:flex;align-items:center;padding:0 18px;color:inherit;}
.hafiz-header-navband .primary-menu>li>a::after{bottom:0;background:var(--color-accent);}
.hafiz-header-navband .header-actions{align-self:center;}
.hafiz-header-navband .icon-btn{background:transparent;color:inherit;border-color:color-mix(in srgb,currentColor 25%,transparent);}
.hafiz-header-style-04 .hafiz-header-cta{border-radius:0;align-self:stretch;min-height:58px;padding-left:28px;padding-right:28px;}

/* Style 05: top bar + centered branding + split menus */
.hafiz-header-style-05{border-bottom:1px solid var(--color-border);}
.hafiz-header-split{position:relative;display:flex;align-items:center;min-height:82px;gap:18px;}
.hafiz-split-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;gap:26px;}
.hafiz-split-menu-left .primary-menu{justify-content:flex-end;}
.hafiz-split-menu-right .primary-menu{justify-content:flex-start;}
.hafiz-split-brand{display:flex;justify-content:center;}
.hafiz-split-brand .site-branding-text{display:none;}
.hafiz-split-brand .site-branding img,.hafiz-split-brand .site-branding .custom-logo{max-height:52px;}
.hafiz-header-style-05 .hafiz-header-split>.header-actions{position:absolute;right:24px;}
.hafiz-header-style-05 .hafiz-header-split>.header-actions .hafiz-header-cta{display:none;}

/* Style 08: compact navigation-first bar */
.site-header.hafiz-header-style-08{background:transparent;border-bottom:0;backdrop-filter:none;}
.hafiz-header-navband-centered .hafiz-navband-inner{justify-content:center;}
.hafiz-header-style-08 .primary-navigation{justify-content:center;}
.hafiz-header-style-08 .primary-menu>li>a{padding-left:20px;padding-right:20px;}
.hafiz-header-style-08 .site-branding{margin-right:auto;}
.hafiz-header-style-08 .header-actions{margin-left:0;}

/* Announcement bar now shares builder width behavior */
.hafiz-announcement-bar{font-size:.84rem;text-align:center;padding:8px 0;}
.hafiz-announcement-bar a{color:inherit;}

/* Footer builder */
.hafiz-footer-layout{background:var(--footer-bg);color:var(--footer-text);}
.site-footer .hafiz-footer-builder-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.hafiz-footer-slot:empty{display:none;}
.hafiz-footer-slot .footer-widget{height:100%;}
.hafiz-footer-layout .hafiz-social-links-footer a{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:#fff;}
.footer-menu,.hafiz-footer-post-list,.hafiz-footer-contact-list{list-style:none;margin:0;padding:0;}
.footer-menu li{margin:0 0 8px;}
.hafiz-footer-post-list li{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid rgba(255,255,255,.1);}
.hafiz-footer-post-list li:last-child{margin-bottom:0;border-bottom:0;}
.hafiz-footer-post-list a{display:block;line-height:1.45;font-size:.92rem;}
.hafiz-footer-post-list time{display:block;margin-top:4px;font-size:.76rem;opacity:.65;}
.hafiz-footer-contact-list{display:grid;gap:12px;}
.hafiz-footer-contact-list li{display:flex;align-items:flex-start;gap:9px;font-size:.9rem;line-height:1.45;}
.hafiz-footer-contact-list svg{width:15px;height:15px;fill:currentColor;flex:0 0 auto;margin-top:3px;color:var(--color-accent);}
.hafiz-footer-style-01 .widget-title::after{background:#d32939;}
.hafiz-footer-style-02 .widget-title::after{background:#2e8dcc;}
.hafiz-footer-style-02{padding-top:54px;}
.hafiz-footer-style-02 .footer-grid{gap:46px;}
.footer-bottom-centered{grid-template-columns:1fr;text-align:center;justify-items:center;}
.footer-bottom-centered .footer-credit{text-align:center;}

@media(max-width:1100px){
  .hafiz-header-layout .primary-menu{gap:18px;}
  .hafiz-header-layout .primary-menu>li>a{font-size:.88rem;}
  .hafiz-corporate-row{grid-template-columns:minmax(140px,1fr) auto;}
  .hafiz-corporate-socials{display:none;}
  .site-footer .hafiz-footer-builder-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:782px){
  .hide-on-mobile{display:none!important;}
  .hafiz-header-main,.hafiz-header-split,.hafiz-corporate-row,.hafiz-navband-inner{min-height:66px;}
  .hafiz-header-main,.hafiz-corporate-row,.hafiz-navband-inner{display:flex;justify-content:space-between;}
  .hafiz-header-style-04 .hafiz-header-corporate-top{display:block;}
  .hafiz-header-style-04 .hafiz-corporate-contact,.hafiz-header-style-04 .hafiz-corporate-socials{display:none;}
  .hafiz-header-style-04 .hafiz-header-corporate-top .site-branding{padding:10px 0;}
  .hafiz-header-navband .primary-navigation{align-self:auto;}
  .hafiz-header-navband .primary-menu>li>a{padding:10px 0;color:var(--color-text);}
  .hafiz-header-navband .header-actions{margin-left:auto;}
  .hafiz-header-style-04 .hafiz-header-cta{align-self:auto;min-height:42px;border-radius:4px;padding:10px 14px;}
  .hafiz-split-navigation{display:flex;width:auto;}
  .hafiz-split-menu-right,.hafiz-split-brand{display:none;}
  .hafiz-split-menu-left{display:block;}
  .hafiz-header-style-05 .hafiz-header-split>.header-actions{position:static;margin-left:auto;}
  .hafiz-header-style-05 .hafiz-header-split>.header-actions .hafiz-header-cta{display:inline-flex;}
  .hafiz-header-layout .primary-navigation{
    position:fixed;top:0;right:-100%;width:82%;max-width:340px;height:100vh;background:var(--color-surface);color:var(--color-text);
    box-shadow:var(--shadow-lg);transition:right var(--transition);flex-direction:column;padding:80px 24px 24px;z-index:1500;overflow:auto;align-items:flex-start;
  }
  .hafiz-header-layout .primary-navigation.open{right:0;}
  .hafiz-header-layout .primary-menu{flex-direction:column;gap:4px;align-items:flex-start!important;width:100%;justify-content:flex-start!important;}
  .hafiz-header-layout .primary-menu li{width:100%;}
  .hafiz-header-layout .primary-menu ul{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;display:none;width:100%;padding-left:12px;}
  .hafiz-header-layout .primary-menu li.submenu-open>ul{display:block;}
  .site-footer .hafiz-footer-builder-grid{grid-template-columns:1fr;}
}

/* Theme Options-driven archive loading feedback. */
.load-more-status{min-height:1.25em;margin:0 0 8px;color:var(--color-text-muted);font-size:.86rem;}
.load-more-btn:disabled{opacity:.68;cursor:wait;transform:none;}

/* -------------------------------------------------------------------------
 * HafizPress Phase 2B — Homepage Visual Builder
 * ---------------------------------------------------------------------- */
.hp-home-builder-main.site-main{padding:0;overflow:hidden}
.hp-home-section{padding:var(--hp-section-space) 0}
.hp-home-section:nth-child(even):not(.hp-home-section-hero):not(.hp-home-section-newsletter){background:var(--color-bg-alt)}
.hp-home-section-hero{padding:0}
.hp-home-heading{margin-bottom:30px}

.site-hero{position:relative;display:flex;align-items:center;min-height:var(--hp-hero-min-height);padding:64px 0;overflow:hidden}
.site-hero .container{position:relative;z-index:2;width:100%}
.site-hero-text h1{font-size:clamp(2.35rem,5vw,4.6rem);max-width:15ch}
.site-hero-layout-split .site-hero-img{flex:0 1 46%;min-width:300px}
.site-hero-layout-split .site-hero-img img{width:100%;aspect-ratio:16/11;object-fit:cover}
.site-hero-layout-centered .container{display:block;text-align:center;max-width:900px}
.site-hero-layout-centered .site-hero-text{max-width:820px;margin:0 auto}
.site-hero-layout-centered .site-hero-text h1,.site-hero-layout-centered .site-hero-text p{margin-left:auto;margin-right:auto}
.site-hero-layout-centered .site-hero-img{max-width:820px;margin:34px auto 0}
.site-hero-layout-centered .site-hero-img img{width:100%;max-height:440px;object-fit:cover}
.site-hero-layout-full-bleed{min-height:max(var(--hp-hero-min-height),560px);background:#0f2748}
.site-hero-layout-full-bleed .site-hero-bg{position:absolute;inset:0;z-index:0}
.site-hero-layout-full-bleed .site-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,25,48,.92) 0%,rgba(8,25,48,.68) 48%,rgba(8,25,48,.28) 100%)}
.site-hero-layout-full-bleed .site-hero-bg img{width:100%;height:100%;object-fit:cover}
.site-hero-layout-full-bleed .site-hero-text{max-width:760px}
.site-hero-layout-minimal{background:var(--color-bg);color:var(--color-text);border-bottom:1px solid var(--color-border)}
.site-hero-layout-minimal .container{display:block}
.site-hero-layout-minimal .site-hero-text{max-width:900px}
.site-hero-layout-minimal h1{color:var(--color-text);font-size:clamp(2.6rem,5.5vw,5.4rem)}
.site-hero-layout-minimal p{color:var(--color-text-muted);font-size:1.2rem}
.site-hero-layout-minimal .hero-badge{background:var(--color-bg-alt);color:var(--color-accent)}

.hp-featured-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.85fr);grid-auto-rows:minmax(190px,1fr);gap:18px}
.hp-featured-card:first-child{grid-row:span 2}
.hp-featured-media{position:relative;display:block;height:100%;min-height:230px;border-radius:var(--hp-card-radius);overflow:hidden;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));box-shadow:var(--hp-design-shadow)}
.hp-featured-media>img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition)}
.hp-featured-media:hover>img{transform:scale(1.04)}
.hp-featured-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(8,18,32,.9) 100%)}
.hp-featured-copy{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:7px;padding:22px;color:#fff}
.hp-featured-card:first-child .hp-featured-copy{padding:30px}.hp-featured-copy small{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#f2ca72}.hp-featured-copy strong{font-family:var(--font-heading);font-size:clamp(1.15rem,2.1vw,1.85rem);line-height:1.2;color:#fff}.hp-featured-card:first-child .hp-featured-copy strong{font-size:clamp(1.55rem,3vw,2.65rem)}.hp-featured-copy em{font-size:.8rem;font-style:normal;color:rgba(255,255,255,.74)}

.hp-trending-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--color-border)}
.hp-trending-item{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;align-items:center;padding:22px 18px;border-bottom:1px solid var(--color-border);color:var(--color-text)}
.hp-trending-item:nth-child(odd){border-right:1px solid var(--color-border)}.hp-trending-item:hover{background:color-mix(in srgb,var(--color-bg-alt) 80%,transparent)}
.hp-trending-number{font-family:var(--font-heading);font-size:2.2rem;line-height:1;color:color-mix(in srgb,var(--color-accent) 72%,var(--color-text))}.hp-trending-copy{display:flex;flex-direction:column;gap:5px}.hp-trending-copy strong{font-size:1rem;color:var(--color-text)}.hp-trending-copy small{font-size:.78rem;color:var(--color-text-muted)}

.hp-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.hp-category-card{position:relative;display:flex;align-items:flex-end;min-height:170px;padding:20px;border-radius:var(--hp-card-radius);overflow:hidden;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff;isolation:isolate}.hp-category-card:before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--hp-category-image);background-size:cover;background-position:center;transition:transform var(--transition)}.hp-category-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,18,32,.08),rgba(8,18,32,.85))}.hp-category-card:hover:before{transform:scale(1.05)}.hp-category-card span{display:flex;flex-direction:column;gap:3px}.hp-category-card strong{font-family:var(--font-heading);font-size:1.25rem;color:#fff}.hp-category-card small{color:rgba(255,255,255,.75)}
.hp-category-style-chips .hp-category-grid{display:flex;flex-wrap:wrap;gap:10px}.hp-category-style-chips .hp-category-card{min-height:0;min-width:0;padding:12px 17px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text);box-shadow:none}.hp-category-style-chips .hp-category-card:before,.hp-category-style-chips .hp-category-card:after{display:none}.hp-category-style-chips .hp-category-card span{display:block}.hp-category-style-chips .hp-category-card strong{font-family:var(--font-body);font-size:.92rem;color:var(--color-text)}.hp-category-style-chips .hp-category-card small{margin-left:7px;color:var(--color-text-muted)}

.hp-home-section-newsletter{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:#fff}.hp-newsletter-cta{display:flex;align-items:center;justify-content:space-between;gap:36px;padding:10px 0}.hp-newsletter-cta>div{max-width:760px}.hp-newsletter-cta span{display:block;margin-bottom:7px;color:var(--color-accent);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.hp-newsletter-cta h2{margin:0 0 10px;color:#fff;font-size:clamp(1.8rem,3.8vw,3.2rem)}.hp-newsletter-cta p{margin:0;color:rgba(255,255,255,.78);max-width:62ch}.hp-newsletter-cta .btn{flex-shrink:0}
.hp-home-page-content{max-width:var(--hp-reading-width);margin:0 auto}.hp-home-widget-area{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}.hp-home-widget-area .widget{margin:0}

/* Phase 2B — advanced Single Post Builder */
.single-post-header{max-width:var(--hp-single-header-width)}
.single-post-header h1{font-size:clamp(2rem,4.8vw,var(--hp-single-title-max))}
.single-post-category{position:static;display:inline-block;margin-bottom:14px}
.single-header-align-center .single-post-header{text-align:center;margin-left:auto;margin-right:auto}.single-header-align-center .single-post-header .post-meta{justify-content:center}.single-header-align-left .single-post-header{text-align:left;margin-left:0;margin-right:auto}.single-header-align-left .single-post-header .post-meta{justify-content:flex-start}
.single-post-thumb{max-width:100%}.single-post-thumb img{display:block;width:100%;max-height:var(--hp-single-feature-max);object-fit:cover}.single-post-thumb figcaption{padding:9px 14px;background:var(--color-bg-alt);font-size:.82rem;color:var(--color-text-muted);text-align:center}
.single-featured-ratio-16-9 img{aspect-ratio:16/9}.single-featured-ratio-3-2 img{aspect-ratio:3/2}.single-featured-ratio-21-9 img{aspect-ratio:21/9}.single-featured-ratio-auto img{aspect-ratio:auto;height:auto;max-height:none;object-fit:contain}
.single-layout-split .single-split-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);gap:clamp(30px,5vw,72px);align-items:center;margin-bottom:42px}.single-layout-split .single-split-hero .single-post-header{margin:0}.single-layout-split .single-split-hero .single-post-thumb{margin:0}.single-layout-split .entry-content,.single-layout-split .toc-box,.single-layout-split .post-engagement-row,.single-layout-split .tags-links{max-width:var(--hp-single-width);margin-left:auto;margin-right:auto}
.single-layout-minimal .single-post-header{max-width:var(--hp-single-width);margin-left:auto;margin-right:auto}.single-layout-minimal .single-post-header h1{font-size:clamp(2.2rem,5.2vw,var(--hp-single-title-max))}.single-layout-minimal .single-post-thumb,.single-layout-minimal .entry-content,.single-layout-minimal .toc-box,.single-layout-minimal .post-engagement-row,.single-layout-minimal .tags-links{max-width:var(--hp-single-width);margin-left:auto;margin-right:auto}.single-layout-minimal .single-post-thumb{box-shadow:none}.single-layout-minimal .single-post-category{background:transparent;padding:0;color:var(--color-accent);letter-spacing:.08em}
.single-has-dropcap .entry-content>p:first-of-type:first-letter{float:left;font-family:var(--font-heading);font-size:4.4em;line-height:.78;padding:.1em .12em 0 0;color:var(--color-primary);font-weight:700}
.post-nav-style-minimal{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);padding:18px 0;gap:24px}.post-nav-style-minimal .post-nav-item{padding:0;background:transparent;border:0;box-shadow:none}.related-post-grid{grid-template-columns:repeat(var(--hp-related-columns,3),minmax(0,1fr))}.related-layout-list .related-post-grid{grid-template-columns:1fr}.related-layout-list .post-card{display:grid;grid-template-columns:minmax(220px,32%) 1fr}.related-layout-list .post-card-thumb{height:100%;aspect-ratio:auto}

@media(max-width:960px){.hp-featured-grid{grid-template-columns:1fr 1fr}.hp-featured-card:first-child{grid-column:1/-1;grid-row:auto}.hp-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.single-layout-split .single-split-hero{grid-template-columns:1fr;gap:22px}.single-layout-split .single-split-hero .single-post-thumb{order:-1}.related-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.hp-home-section{padding:max(42px,calc(var(--hp-section-space) * .72)) 0}.site-hero{min-height:auto}.site-hero-layout-split .site-hero-img{min-width:0;width:100%}.site-hero-text h1{font-size:clamp(2.15rem,11vw,3.5rem)}.hp-featured-grid,.hp-trending-grid,.hp-category-grid{grid-template-columns:1fr}.hp-trending-item:nth-child(odd){border-right:0}.hp-newsletter-cta{align-items:flex-start;flex-direction:column}.related-post-grid{grid-template-columns:1fr!important}.related-layout-list .post-card{grid-template-columns:1fr}.related-layout-list .post-card-thumb{aspect-ratio:16/9;height:auto}}


/* Phase 2C — mobile utility content is only exposed inside the mobile navigation. */
.hafiz-mobile-menu-extras{display:none}


/* -------------------------------------------------------------------------
 * Phase 2 — Page Builder, content typography, comments & pagination
 * ---------------------------------------------------------------------- */
.hp-page-builder{--hp-page-width:var(--hp-page-content-width,880px);--hp-page-title-size:var(--hp-page-title-max,58px);}
.hp-page-header{max-width:min(100%,var(--hp-page-width));margin:0 auto 30px;}
.hp-page-title{font-size:clamp(2rem,5vw,var(--hp-page-title-size));margin:0 0 .28em;line-height:1.06;}
.hp-page-excerpt{font-size:1.12rem;color:var(--color-text-muted);max-width:760px;margin:.6em 0 0;}
.hp-page-title-align-center,.hp-page-title-style-centered .hp-page-header{text-align:center;margin-left:auto;margin-right:auto;}
.hp-page-header.hp-page-title-align-left{text-align:left!important}.hp-page-header.hp-page-title-align-left .entry-breadcrumbs{justify-content:flex-start!important}.hp-page-header.hp-page-title-align-left .hp-page-excerpt{margin-left:0;margin-right:0}
.hp-page-title-align-center .entry-breadcrumbs,.hp-page-title-style-centered .entry-breadcrumbs{justify-content:center;}
.hp-page-title-style-centered .hp-page-excerpt{margin-left:auto;margin-right:auto;}
.hp-page-layout-narrow .hp-page-header,.hp-page-layout-narrow .hp-page-content,.hp-page-layout-narrow .comments-area{max-width:min(100%,var(--hp-reading-width));margin-left:auto;margin-right:auto;}
.hp-page-layout-standard .hp-page-content,.hp-page-layout-standard .comments-area,.hp-page-layout-boxed .hp-page-content,.hp-page-layout-boxed .comments-area{max-width:min(100%,var(--hp-page-width));margin-left:auto;margin-right:auto;}
.hp-page-layout-wide .hp-page-content,.hp-page-layout-wide .comments-area{max-width:min(100%,var(--container));margin-left:auto;margin-right:auto;}
.hp-page-content-style-card .hp-page-content{background:var(--color-surface);border:var(--hp-border-width) solid var(--color-border);border-radius:var(--hp-card-radius);box-shadow:var(--hp-design-shadow);padding:clamp(24px,4vw,54px);}
.hp-page-featured{max-width:min(100%,var(--container));margin:26px auto 38px;border-radius:var(--hp-card-radius);overflow:hidden;background:var(--color-bg-alt);}
.hp-page-featured img{display:block;width:100%;height:100%;max-height:var(--hp-page-feature-max,680px);object-fit:cover;}
.hp-page-featured-16-9{aspect-ratio:16/9}.hp-page-featured-3-2{aspect-ratio:3/2}.hp-page-featured-21-9{aspect-ratio:21/9}.hp-page-featured-auto{aspect-ratio:auto}.hp-page-featured-auto img{height:auto;object-fit:contain;}
.hp-page-featured figcaption{padding:9px 14px;background:var(--color-bg-alt);font-size:.84rem;color:var(--color-text-muted);text-align:center;}
.hp-page-title-style-banner .hp-page-header{max-width:none;background:var(--color-bg-alt);border:var(--hp-border-width) solid var(--color-border);border-radius:var(--hp-card-radius);padding:clamp(28px,5vw,64px);margin-bottom:38px;}
.hp-page-title-style-banner .hp-page-header>*{max-width:var(--hp-page-width);margin-left:auto;margin-right:auto;}
.hp-page-overlay-hero{position:relative;max-width:var(--container);margin:0 auto 46px;border-radius:var(--hp-card-radius);overflow:hidden;min-height:clamp(360px,52vw,650px);background:#111;}
.hp-page-overlay-hero .hp-page-featured{position:absolute;inset:0;margin:0;max-width:none;border-radius:0;aspect-ratio:auto;height:100%;}
.hp-page-overlay-hero .hp-page-featured img{max-height:none;height:100%;}
.hp-page-overlay-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.72));pointer-events:none;}
.hp-page-overlay-copy{position:absolute;z-index:2;left:clamp(24px,5vw,70px);right:clamp(24px,5vw,70px);bottom:clamp(24px,5vw,64px);color:#fff;}
.hp-page-overlay-copy .hp-page-header{margin:0;max-width:900px}.hp-page-overlay-copy .hp-page-title,.hp-page-overlay-copy .entry-breadcrumbs,.hp-page-overlay-copy .entry-breadcrumbs a,.hp-page-overlay-copy .hp-page-excerpt{color:#fff;}
.hp-page-split-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,1fr);gap:clamp(30px,5vw,72px);align-items:center;margin-bottom:48px;}
.hp-page-split-hero .hp-page-header{margin:0;max-width:100%}.hp-page-split-hero .hp-page-featured{margin:0;width:100%;}.hp-page-layout-split .hp-page-content,.hp-page-layout-split .comments-area{max-width:min(100%,var(--hp-page-width));margin-left:auto;margin-right:auto;}

.entry-content{font-size:var(--hp-content-font-size,18px);}
.entry-content p{margin-bottom:var(--hp-content-paragraph-space,24px);}
.entry-content h2,.entry-content h3,.entry-content h4{margin-top:var(--hp-content-heading-space,42px);}
.hp-content-link-accent .entry-content a,.entry-content.hp-content-link-accent a{color:var(--color-accent);text-decoration:none}.hp-content-link-clean .entry-content a,.entry-content.hp-content-link-clean a{text-decoration:none}.hp-content-link-clean .entry-content a:hover,.entry-content.hp-content-link-clean a:hover{text-decoration:underline;text-underline-offset:3px}
.entry-content blockquote{margin:2em 0;padding:1.2em 1.5em;font-family:var(--font-heading);font-size:1.15em;}
.hp-blockquote-border .entry-content blockquote{border-left:4px solid var(--color-accent);background:transparent;}
.hp-blockquote-card .entry-content blockquote{border:var(--hp-border-width) solid var(--color-border);border-radius:var(--hp-card-radius);background:var(--color-bg-alt);box-shadow:var(--hp-design-shadow);}
.hp-blockquote-quote .entry-content blockquote{position:relative;padding-left:2.5em;border:0}.hp-blockquote-quote .entry-content blockquote:before{content:"“";position:absolute;left:.25em;top:-.15em;font-size:3.2em;color:var(--color-accent);line-height:1;}

.hp-comments-cards .comment-body{background:var(--color-surface);border:var(--hp-border-width) solid var(--color-border);border-radius:var(--hp-card-radius);padding:22px;margin-bottom:16px;box-shadow:var(--hp-design-shadow);}
.hp-comments-cards .comment-list>.comment>.comment-body{border-bottom:var(--hp-border-width) solid var(--color-border);}
.hp-comments-minimal .comment-body{padding:16px 0;border-bottom:0}.hp-comments-minimal .comment-list .children{border-left:1px solid var(--color-border);margin-left:12px;padding-left:24px;}
.hp-comment-form-card .comment-respond{background:var(--color-surface);border:var(--hp-border-width) solid var(--color-border);border-radius:var(--hp-card-radius);padding:clamp(22px,4vw,36px);box-shadow:var(--hp-design-shadow);margin-top:34px;}
.hp-comment-form-clean .comment-respond{margin-top:34px;}
.comment-body .avatar{width:var(--hp-comment-avatar,48px);height:var(--hp-comment-avatar,48px);}

.hp-pagination{margin-top:48px}.hp-pagination .navigation.pagination{margin:0}.hp-pagination .nav-links{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.hp-pagination-align-left .nav-links{justify-content:flex-start}.hp-pagination-align-center .nav-links{justify-content:center}.hp-pagination-align-right .nav-links{justify-content:flex-end}
.hp-pagination .page-numbers{display:inline-flex;min-width:40px;height:40px;padding:0 12px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--hp-button-radius);background:var(--color-surface);color:var(--color-text);font-weight:650;}
.hp-pagination .page-numbers.current,.hp-pagination .page-numbers:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.hp-pagination-pills .page-numbers{border-radius:999px}.hp-pagination-minimal .page-numbers{border:0;background:transparent;min-width:32px;padding:0 7px}.hp-pagination-minimal .page-numbers.current{background:var(--color-bg-alt);color:var(--color-primary)}.hp-pagination-hide-arrows .prev,.hp-pagination-hide-arrows .next{display:none!important;}

@media(max-width:960px){.hp-page-split-hero{grid-template-columns:1fr;gap:24px}.hp-page-split-hero .hp-page-split-media{order:-1}.hp-page-title-style-banner .hp-page-header{border-radius:var(--hp-radius)}.footer-grid{grid-template-columns:repeat(var(--hp-footer-cols-tablet,2),minmax(0,1fr))!important;gap:var(--hp-footer-gap,40px)!important}.site-footer{padding-top:var(--hp-footer-pad-y,64px)}}
@media(max-width:700px){.hp-page-overlay-hero{min-height:420px}.hp-page-featured-21-9{aspect-ratio:16/9}.footer-grid{grid-template-columns:repeat(var(--hp-footer-cols-mobile,1),minmax(0,1fr))!important}.hp-footer-align-center .footer-grid,.hp-footer-align-center .footer-col,.hp-footer-align-center .hafiz-footer-slot,.hp-footer-align-center .footer-bottom,.hp-footer-align-center .footer-credit{text-align:center}.hp-footer-align-center .footer-bottom{justify-content:center}.hp-footer-align-center .social-follow-widget,.hp-footer-align-center .footer-social{justify-content:center}}


/* =========================================================
   Phase 2F — Modern Header Collection (Styles 09–13)
   ========================================================= */
.hafiz-header-width-full .hafiz-header-container{max-width:none;}
.hafiz-header-layout.hafiz-nav-align-left .primary-navigation{justify-content:flex-start;}
.hafiz-header-layout.hafiz-nav-align-center .primary-navigation{justify-content:center;}
.hafiz-header-layout.hafiz-nav-align-right .primary-navigation{justify-content:flex-end;}
.hafiz-header-border-none .hafiz-modern-surface,.hafiz-header-border-none .hafiz-modern-luxe-navrail,.hafiz-header-border-none .hafiz-modern-editorial-navline{border-color:transparent!important;}
.hafiz-header-border-accent .hafiz-modern-surface,.hafiz-header-border-accent .hafiz-modern-luxe-navrail,.hafiz-header-border-accent .hafiz-modern-editorial-navline{border-color:color-mix(in srgb,var(--color-accent) 64%,transparent)!important;}
.hafiz-modern-surface{border:1px solid color-mix(in srgb,var(--header-text) 12%,transparent);border-radius:var(--hp-header-radius);box-shadow:var(--hp-header-shadow);}
.hafiz-modern-surface .primary-navigation{flex:1;min-width:0;}
.hafiz-modern-surface .header-actions{margin-left:auto;}
.hafiz-modern-surface .hafiz-header-cta,.hafiz-header-style-09 .hafiz-header-cta,.hafiz-header-style-10 .hafiz-header-cta,.hafiz-header-style-11 .hafiz-header-cta,.hafiz-header-style-12 .hafiz-header-cta,.hafiz-header-style-13 .hafiz-header-cta{border-radius:999px;padding-inline:20px;box-shadow:0 7px 18px color-mix(in srgb,var(--header-cta-bg) 22%,transparent);}
.hafiz-header-style-09,.hafiz-header-style-10,.hafiz-header-style-11,.hafiz-header-style-12,.hafiz-header-style-13{border-bottom:0;background:transparent;backdrop-filter:none;}

/* Modern 01 — Floating Glass */
.hafiz-header-style-09 .hafiz-header-topbar{margin-bottom:0;}
.hafiz-modern-float-wrap{padding:var(--hp-header-offset) 0;background:linear-gradient(180deg,color-mix(in srgb,var(--header-bg) 96%,transparent),color-mix(in srgb,var(--header-bg) 82%,transparent));}
.hafiz-modern-glass-surface{min-height:76px;display:flex;align-items:center;gap:28px;padding:10px 14px 10px 20px;background:color-mix(in srgb,var(--header-bg) 82%,transparent);color:var(--header-text);backdrop-filter:blur(var(--hp-header-blur)) saturate(155%);-webkit-backdrop-filter:blur(var(--hp-header-blur)) saturate(155%);}
.hafiz-modern-glass-surface .primary-menu{gap:8px;}
.hafiz-modern-glass-surface .primary-menu>li>a{padding:10px 12px;border-radius:999px;}
.hafiz-modern-glass-surface .primary-menu>li>a::after{display:none;}
.hafiz-modern-glass-surface .primary-menu>li>a:hover,.hafiz-modern-glass-surface .primary-menu>li.current-menu-item>a{background:color-mix(in srgb,var(--header-text) 7%,transparent);}

/* Modern 02 — Luxe Center */
.hafiz-modern-luxe-wrap{padding:calc(var(--hp-header-offset) * .65) 0;background:var(--header-bg);color:var(--header-text);}
.hafiz-modern-luxe-brandrow{min-height:78px;display:grid;grid-template-columns:minmax(160px,1fr) auto minmax(160px,1fr);align-items:center;gap:24px;}
.hafiz-modern-luxe-brandrow .site-branding{justify-self:center;text-align:center;}
.hafiz-modern-luxe-brandrow .site-branding-text{text-align:center;}
.hafiz-modern-luxe-brandrow .header-actions{justify-self:end;}
.hafiz-modern-luxe-side{min-width:0;font-size:.8rem;color:color-mix(in srgb,var(--header-text) 72%,transparent);}
.hafiz-modern-luxe-side .hafiz-contact-items{gap:12px;}
.hafiz-modern-luxe-navrail{min-height:52px;display:flex;align-items:center;justify-content:center;border:1px solid color-mix(in srgb,var(--header-text) 11%,transparent);border-radius:999px;padding:0 22px;background:color-mix(in srgb,var(--header-bg) 94%,var(--color-bg-alt));box-shadow:0 8px 24px rgba(15,23,42,.06);}
.hafiz-modern-luxe-navrail .primary-navigation{width:100%;}
.hafiz-modern-luxe-navrail .primary-menu{width:100%;justify-content:center;gap:8px;}
.hafiz-modern-luxe-navrail .primary-menu>li>a{padding:10px 14px;}
.hafiz-modern-luxe-navrail .primary-menu>li>a::after{left:50%;right:50%;width:auto;transition:left var(--transition),right var(--transition);}
.hafiz-modern-luxe-navrail .primary-menu>li>a:hover::after,.hafiz-modern-luxe-navrail .primary-menu>li.current-menu-item>a::after{left:14px;right:14px;width:auto;}

/* Modern 03 — Split Accent */
.hafiz-modern-split-wrap{padding:var(--hp-header-offset) 0;background:var(--header-bg);color:var(--header-text);}
.hafiz-modern-split-surface{min-height:82px;display:grid;grid-template-columns:minmax(180px,auto) minmax(0,1fr) auto;align-items:stretch;overflow:hidden;background:var(--header-bg);}
.hafiz-modern-accent-brand{display:flex;align-items:center;padding:14px 24px;background:linear-gradient(135deg,var(--header-nav-bg),color-mix(in srgb,var(--header-nav-bg) 70%,var(--color-primary)));color:var(--header-nav-text);}
.hafiz-modern-accent-brand .site-title a,.hafiz-modern-accent-brand .site-description{color:inherit;}
.hafiz-modern-split-surface>.primary-navigation{padding:0 26px;}
.hafiz-modern-split-surface>.header-actions{padding:0 16px 0 4px;}
.hafiz-modern-split-surface .primary-menu{gap:22px;}
.hafiz-modern-split-surface .icon-btn{background:color-mix(in srgb,var(--header-bg) 90%,var(--color-bg-alt));}

/* Modern 04 — Gradient Capsule */
.hafiz-modern-capsule-wrap{padding:var(--hp-header-offset) 0;background:linear-gradient(135deg,color-mix(in srgb,var(--header-nav-bg) 8%,var(--header-bg)),var(--header-bg));color:var(--header-text);}
.hafiz-modern-capsule-surface{min-height:78px;display:flex;align-items:center;gap:22px;padding:9px 12px 9px 20px;background:linear-gradient(120deg,color-mix(in srgb,var(--header-nav-bg) 94%,#0b1020),color-mix(in srgb,var(--header-nav-bg) 72%,var(--color-primary)));color:var(--header-nav-text);border-color:color-mix(in srgb,#fff 15%,transparent);}
.hafiz-modern-capsule-surface .site-title a,.hafiz-modern-capsule-surface .site-description,.hafiz-modern-capsule-surface .primary-menu>li>a{color:inherit;}
.hafiz-modern-capsule-nav{display:flex;flex:1;justify-content:center;min-width:0;}
.hafiz-modern-capsule-nav .primary-navigation{padding:6px;border-radius:999px;background:rgba(255,255,255,.08);}
.hafiz-modern-capsule-nav .primary-menu{gap:2px;}
.hafiz-modern-capsule-nav .primary-menu>li>a{padding:9px 13px;border-radius:999px;}
.hafiz-modern-capsule-nav .primary-menu>li>a::after{display:none;}
.hafiz-modern-capsule-nav .primary-menu>li>a:hover,.hafiz-modern-capsule-nav .primary-menu>li.current-menu-item>a{background:rgba(255,255,255,.13);color:#fff;}
.hafiz-modern-capsule-surface .icon-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:inherit;}

/* Modern 05 — Editorial Luxe */
.hafiz-modern-editorial-wrap{background:var(--header-bg);color:var(--header-text);}
.hafiz-modern-editorial-masthead{min-height:104px;display:grid;grid-template-columns:minmax(150px,1fr) auto minmax(150px,1fr);align-items:center;gap:26px;padding:12px 0;}
.hafiz-modern-editorial-brand{justify-self:center;}
.hafiz-modern-editorial-brand .site-branding{justify-content:center;text-align:center;}
.hafiz-modern-editorial-brand .site-branding-text{text-align:center;}
.hafiz-modern-editorial-brand .site-title{font-size:clamp(1.35rem,2.5vw,2rem);letter-spacing:-.035em;}
.hafiz-modern-editorial-side{font-size:.78rem;color:color-mix(in srgb,var(--header-text) 72%,transparent);}
.hafiz-modern-editorial-masthead>.header-actions{justify-self:end;}
.hafiz-modern-editorial-navline{min-height:52px;display:flex;align-items:center;border-top:1px solid color-mix(in srgb,var(--header-text) 13%,transparent);border-bottom:1px solid color-mix(in srgb,var(--header-text) 13%,transparent);}
.hafiz-modern-editorial-navline .primary-navigation{width:100%;}
.hafiz-modern-editorial-navline .primary-menu{width:100%;justify-content:center;gap:34px;}
.hafiz-modern-editorial-navline .primary-menu>li>a{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;padding:15px 0;}
.hafiz-modern-editorial-navline .primary-menu>li>a::after{height:1px;bottom:9px;}

@media(max-width:1100px){
  .hafiz-modern-luxe-side,.hafiz-modern-editorial-side{display:none;}
  .hafiz-modern-luxe-brandrow,.hafiz-modern-editorial-masthead{grid-template-columns:1fr auto 1fr;}
  .hafiz-modern-luxe-brandrow:before,.hafiz-modern-editorial-masthead:before{content:"";}
  .hafiz-modern-split-surface{grid-template-columns:minmax(155px,auto) minmax(0,1fr) auto;}
  .hafiz-modern-split-surface>.primary-navigation{padding-inline:16px;}
}
@media(max-width:782px){
  .hafiz-modern-float-wrap,.hafiz-modern-split-wrap,.hafiz-modern-capsule-wrap,.hafiz-modern-luxe-wrap{padding:8px 0;}
  .hafiz-modern-glass-surface,.hafiz-modern-capsule-surface{min-height:62px;padding:7px 9px 7px 14px;border-radius:min(var(--hp-header-radius),16px);}
  .hafiz-modern-split-surface{display:flex;min-height:62px;align-items:center;overflow:visible;padding-right:8px;}
  .hafiz-modern-accent-brand{align-self:stretch;padding:9px 14px;border-radius:var(--hp-header-radius) 0 0 var(--hp-header-radius);}
  .hafiz-modern-split-surface>.header-actions{margin-left:auto;padding:0;}
  .hafiz-modern-luxe-brandrow,.hafiz-modern-editorial-masthead{display:flex;min-height:66px;justify-content:space-between;padding:5px 0;}
  .hafiz-modern-luxe-brandrow .site-branding,.hafiz-modern-editorial-brand{justify-self:auto;}
  .hafiz-modern-luxe-navrail,.hafiz-modern-editorial-navline{min-height:0;border:0;padding:0;background:transparent;box-shadow:none;}
  .hafiz-modern-editorial-masthead{min-height:68px;}
  .hafiz-modern-editorial-brand .site-title{font-size:1.2rem;}
  .hafiz-header-style-09 .hafiz-header-topbar,.hafiz-header-style-13 .hafiz-header-topbar{display:none;}
  .hafiz-modern-capsule-nav{display:block;flex:0;}
}
