caption,td,th{text-align:right}.header-aligned-right:not([class*=nav-float-]) .inside-header{justify-content:flex-start}.header-aligned-left:not([class*=nav-float-]) .inside-header{justify-content:flex-end}.header-aligned-right:not([class*=nav-float-]) .header-widget{order:10}.header-aligned-left:not([class*=nav-float-]) .header-widget{order:-10}.site-logo+.site-branding{order:-1}.nav-float-right #site-navigation{order:-5}.nav-float-right #site-navigation.has-active-search,.nav-float-right #site-navigation.toggled{order:10}.nav-float-right .header-widget{order:-10}.nav-float-left #site-navigation{order:5}.nav-float-left .header-widget,.nav-float-left .mobile-menu-control-wrapper{order:10}.mobile-menu-control-wrapper{margin-right:auto;margin-left:0}.nav-align-right .inside-navigation{justify-content:flex-start}.nav-align-left .inside-navigation{justify-content:flex-end}.menu-item-has-children .dropdown-menu-toggle{float:left!important}.main-navigation ul ul{text-align:right}.sidebar .menu-item-has-children .dropdown-menu-toggle,nav ul ul .menu-item-has-children .dropdown-menu-toggle{float:left}.comment-meta .avatar{float:right;margin-left:10px}.page-header .avatar{float:right;margin-left:1.5em}.slideout-navigation .menu-item-has-children .dropdown-menu-toggle{float:left}.dropdown-click #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child,.slideout-desktop.dropdown-hover #generate-slideout-menu .slideout-menu .menu-item-has-children>a:first-child{padding-left:0}.comment .children{padding-right:30px;border-right:1px solid rgba(0,0,0,.05)}.main-navigation .main-nav ul li.menu-item-has-children>a,.secondary-navigation .main-nav ul li.menu-item-has-children>a{padding-left:0}nav:not(.toggled) ul ul .menu-item-has-children .dropdown-menu-toggle{padding-left:15px}nav:not(.toggled) .menu-item-has-children .dropdown-menu-toggle{padding-right:10px}.main-navigation{padding-right:0}ol,ul{margin:0 3em 1.5em 0}li>ol,li>ul{margin-right:1.5em}.menu-toggle .mobile-menu{margin-right:5px;margin-left:0}.widget_categories .children{margin-right:1.5em}.widget_nav_menu ul ul,.widget_pages ul ul{margin-right:1em}.cat-links:before,.comments-link:before,.nav-next .next:before,.nav-previous .prev:before,.tags-links:before{margin-left:.6em;margin-right:0}.entry-meta .gp-icon{margin-right:0;margin-left:.6em}.menu-toggle,.nav-search-enabled .main-navigation .menu-toggle{text-align:right}.rtl .navigation-search{left:auto;right:-99999px}.rtl .navigation-search.nav-search-active{right:0}.main-navigation.toggled .main-nav li{text-align:right}.both-left #left-sidebar,.both-sidebars #left-sidebar,.left-sidebar .sidebar{order:10}.both-left #right-sidebar{order:5}.both-right #left-sidebar{order:-5}.both-right #right-sidebar,.both-sidebars #right-sidebar,.right-sidebar #right-sidebar{order:-10}@media (max-width:768px){.site-content .content-area{order:-20}}
/*
Theme Name: Ahram GP VIP (Sahifa Look)
Template: generatepress
Description: GeneratePress child theme rebuilding Ahram's Sahifa-style homepage. This is the "VIP" lineage — forked from the stable v1.9.0 baseline (the version that reliably scored 95-98) after the earlier v1.10-v1.16 chain regressed and was abandoned. Named separately so it's never confused with the older/unstable versions. v1.9: reverted ALL logo-sizing and hamburger-position CSS overrides — logo width and mobile-menu icon position now controlled entirely by the theme's native Customizer settings, as requested (kept only the site-title/tagline hide rule). Added single-article page enhancements: full-bleed bigger featured image, pill-style tags, author box after content, and an LCP fetchpriority/eager fix for the article's featured image. A separate mu-plugin (ahram-theme-switcher.php) now serves this theme on mobile only / to the admin on preview, while desktop visitors keep seeing Sahifa. v1.9.1-vip: removed the white space above the header and closed the gap between the logo row and the menu-icon/search row (mobile only). v1.9.2-vip: replaced the breaking-news ticker's CSS marquee animation (unreliable across devices) with a vanilla-JS one-headline-at-a-time cycler (assets/js/breaking-news.js), fading/sliding to the next headline every 4 seconds; pauses on hover/focus, respects prefers-reduced-motion. v1.10.0-vip: FIRST PASS at a desktop skin (min-width: 992px only, mobile untouched) — boxed/centered page, navy+gold nav bar, hero slider + optional ad sidebar side by side, homepage category sections as a 2-column featured+list layout, and a new single-article sidebar (related posts + optional widgets) via two new optional widget areas registered in Appearance > Widgets. Goal: make this one theme look right on both desktop and mobile so ahram-theme-switcher.php can eventually be retired.
Version: 1.41.12-vip
v1.41.12-vip: the .blog listing-page title font-size from v1.41.11 (18px) felt too small — bumped back up to 20px (same size as category/tag pages), still clamped to 2 lines.
v1.41.11-vip: extended the category/tag archive fixes to the main news listing page too (body class .blog — the page opened by the homepage's "عرض المزيد من الأخبار" button), which had been left out of the original is_category()/is_tag() checks: tags and "أضف تعليق" are now hidden there as well, and each post title is now orange, slightly smaller (18px), and clamped to 2 lines so it never wraps to 3.
v1.41.7-vip: two fixes together — (1) LCP fix: the first hero-slider image now carries a data-no-lazy="1" attribute so LiteSpeed's lazy-load JS leaves its src alone instead of swapping it to a placeholder + data-src, which was delaying LCP paint until LiteSpeed's JS ran, even though loading="eager"/fetchpriority="high" and the head preload were already correct. (2) Critical CSS: the hero-slider and breaking-news-ticker rules (the only above-the-fold homepage elements) are now printed inline in <head> on the front page, so they no longer wait on the external UCSS stylesheet request for first paint. Requires the same one-time LiteSpeed UCSS/CCSS purge after deploy as v1.41.6-vip.
v1.41.6-vip: PageSpeed "Render-blocking requests" fix — disabled the front-end admin toolbar (show_admin_bar filter) so LiteSpeed's Generate-UCSS crawl no longer bakes the admin bar's dashicons font (a large base64-embedded @font-face, irrelevant to guest visitors) into the "Used CSS" file served to everyone. wp-admin itself is unaffected. Requires a one-time LiteSpeed UCSS/CCSS cache purge after deploy for the file to regenerate without it.
v1.41.1-1.41.4-vip: category/archive listing page (صفحة الأقسام) fixes — removed the category/tags/"أضف تعليق" footer row under each excerpt; force-trimmed posts whose excerpt or content was showing in full (no reliable "read more" cutoff before) and guaranteed a real clickable "اقرأ المزيد" link in every case (missing link, suppressed native more-link, or plain non-linked "اقرأ المزيد" text); "بقلم" swapped to "نشر بواسطة" on archive listings; category description wrapped in a styled intro box; page title + each post's own title colored/sized to match the single-article title; image frame added around archive thumbnails.
v1.33.0-vip: added a footer "الأقسام" checkbox column to Appearance > أقسام الصفحة الرئيسية (same independent-selection/ordering pattern as the existing "في القائمة العلوية" nav column), so the admin can pick which categories appear in the site footer instead of relying on the automatic top-6-by-post-count fallback. The footer "روابط سريعة" quick-links fields already existed on this page and are unchanged.
v1.32.0-vip: PageSpeed "Improve image delivery" fix — category cards now request a dedicated small 480x270 crop ('ahram-cat-card', registered via add_image_size) instead of the 'full' original file, cutting the transferred image weight on the homepage. Falls back automatically to 'full' for any older image that doesn't have this size generated yet (run Regenerate Thumbnails to backfill). Cache key bumped to v3 so this takes effect immediately.
v1.30.0-vip: broken-image-icon defensive fixes (fallback gradient, onerror handler) — reported still broken even after full cache purge across multiple browsers/devices AND after rolling back to an older version, ruling out caching entirely. User confirmed the SAME specific categories fail every time (not random) and that their originals are native WebP files which LiteSpeed can't further optimize. v1.31.0-vip: root cause identified — the category-card image lookup requested a generated 'medium_large' sub-size, which can fail to build from a native WebP source on some server image-library configurations, leaving a broken file reference even though the original upload is completely fine. Switched to requesting 'full' size (the originally uploaded file itself, guaranteed to exist) instead of a derived sub-size. Also version-bumped the image cache key (v2) so any already-cached broken URLs from before this fix are invalidated immediately on deploy rather than lingering up to 6 hours.
v1.28.0-vip: nav text-wrap fix via inline style on each <a>. Confirmed working at 8 categories. v1.29.0-vip: added a SEPARATE "في القائمة العلوية" checkbox column on the settings page — the nav menu now has its own independent category selection (capped at 8), completely decoupled from the homepage-cards category list (still capped at 10). v1.30.0-vip: fixed broken-image icons showing inside several category cards on mobile. The gradient fallback background is now ALWAYS set on every card (previously only set when there was no image at all), and the <img> tag has an onerror handler that hides it if the URL fails to load — so a stale/broken cached image URL now falls back cleanly to the color gradient instead of showing a broken-image icon. Also shortened the per-category image cache from 24h to 6h as a defensive measure, in case the breakage is caused by an external image-optimization/CDN pipeline changing files without triggering the save_post cache-clear hook.
Text Domain: ahram-gp
*/

/* Component styles live in assets/css/sahifa-blocks.css, enqueued from functions.php */

/*
 * Cairo — self-hosted, subsetted (Arabic + Latin only) to keep payload small.
 * No Google Fonts CDN request; served from this theme's own server.
 */

@font-face {
	font-family: 'Cairo';
	src: url('https://www.ahramag.com/wp-content/themes/generatepress-child-sahifa/assets/fonts/cairo-400.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	
;unicode-range:U+0-1F,U+7F-60B,U+60D-61E,U+620,U+622,U+624,U+63A-640,U+64C-2012,U+2015-2018,U+201A-201B,U+201E-10FFFF;font-display:optional;}

@font-face {
	font-family: 'Cairo';
	src: url('https://www.ahramag.com/wp-content/themes/generatepress-child-sahifa/assets/fonts/cairo-600.woff') format('woff');
	font-weight: 600;
	font-style: normal;
	
;font-display:optional;}

@font-face {
	font-family: 'Cairo';
	src: url('https://www.ahramag.com/wp-content/themes/generatepress-child-sahifa/assets/fonts/cairo-700.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	
;unicode-range:U+0-1F,U+7F-622,U+624-626,U+628-62B,U+62D-630,U+632-633,U+635-638,U+63A-640,U+642-643,U+647-649,U+64B-2012,U+2015-2018,U+201A-201B,U+201E-10FFFF;font-display:optional;}

@font-face {
	font-family: 'Cairo';
	src: url('https://www.ahramag.com/wp-content/themes/generatepress-child-sahifa/assets/fonts/cairo-800.woff') format('woff');
	font-weight: 800;
	font-style: normal;
	
;font-display:optional;}

/*
Theme Name: GeneratePress
Theme URI: https://generatepress.com
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Version: 3.6.1
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: generatepress
Tags: two-columns, three-columns, one-column, right-sidebar, left-sidebar, footer-widgets, blog, e-commerce, flexible-header, full-width-template, buddypress, custom-header, custom-background, custom-menu, custom-colors, sticky-post, threaded-comments, translation-ready, rtl-language-support, featured-images, theme-options

GeneratePress, Copyright 2014-2025 EDGE22 Studios LTD.
GeneratePress is distributed under the terms of the GNU GPL

GeneratePress is based on Underscores http://underscores.me/, (C) 2012-2025 Automattic, Inc.

Actual CSS can be found in /assets/css/ folder.
*/

/*
Theme Name: Ahram GP VIP (Sahifa Look)
Template: generatepress
Description: GeneratePress child theme rebuilding Ahram's Sahifa-style homepage. This is the "VIP" lineage — forked from the stable v1.9.0 baseline (the version that reliably scored 95-98) after the earlier v1.10-v1.16 chain regressed and was abandoned. Named separately so it's never confused with the older/unstable versions. v1.9: reverted ALL logo-sizing and hamburger-position CSS overrides — logo width and mobile-menu icon position now controlled entirely by the theme's native Customizer settings, as requested (kept only the site-title/tagline hide rule). Added single-article page enhancements: full-bleed bigger featured image, pill-style tags, author box after content, and an LCP fetchpriority/eager fix for the article's featured image. A separate mu-plugin (ahram-theme-switcher.php) now serves this theme on mobile only / to the admin on preview, while desktop visitors keep seeing Sahifa. v1.9.1-vip: removed the white space above the header and closed the gap between the logo row and the menu-icon/search row (mobile only). v1.9.2-vip: replaced the breaking-news ticker's CSS marquee animation (unreliable across devices) with a vanilla-JS one-headline-at-a-time cycler (assets/js/breaking-news.js), fading/sliding to the next headline every 4 seconds; pauses on hover/focus, respects prefers-reduced-motion. v1.10.0-vip: FIRST PASS at a desktop skin (min-width: 992px only, mobile untouched) — boxed/centered page, navy+gold nav bar, hero slider + optional ad sidebar side by side, homepage category sections as a 2-column featured+list layout, and a new single-article sidebar (related posts + optional widgets) via two new optional widget areas registered in Appearance > Widgets. Goal: make this one theme look right on both desktop and mobile so ahram-theme-switcher.php can eventually be retired.
Version: 1.41.12-vip
v1.41.12-vip: the .blog listing-page title font-size from v1.41.11 (18px) felt too small — bumped back up to 20px (same size as category/tag pages), still clamped to 2 lines.
v1.41.11-vip: extended the category/tag archive fixes to the main news listing page too (body class .blog — the page opened by the homepage's "عرض المزيد من الأخبار" button), which had been left out of the original is_category()/is_tag() checks: tags and "أضف تعليق" are now hidden there as well, and each post title is now orange, slightly smaller (18px), and clamped to 2 lines so it never wraps to 3.
v1.41.7-vip: two fixes together — (1) LCP fix: the first hero-slider image now carries a data-no-lazy="1" attribute so LiteSpeed's lazy-load JS leaves its src alone instead of swapping it to a placeholder + data-src, which was delaying LCP paint until LiteSpeed's JS ran, even though loading="eager"/fetchpriority="high" and the head preload were already correct. (2) Critical CSS: the hero-slider and breaking-news-ticker rules (the only above-the-fold homepage elements) are now printed inline in <head> on the front page, so they no longer wait on the external UCSS stylesheet request for first paint. Requires the same one-time LiteSpeed UCSS/CCSS purge after deploy as v1.41.6-vip.
v1.41.6-vip: PageSpeed "Render-blocking requests" fix — disabled the front-end admin toolbar (show_admin_bar filter) so LiteSpeed's Generate-UCSS crawl no longer bakes the admin bar's dashicons font (a large base64-embedded @font-face, irrelevant to guest visitors) into the "Used CSS" file served to everyone. wp-admin itself is unaffected. Requires a one-time LiteSpeed UCSS/CCSS cache purge after deploy for the file to regenerate without it.
v1.41.1-1.41.4-vip: category/archive listing page (صفحة الأقسام) fixes — removed the category/tags/"أضف تعليق" footer row under each excerpt; force-trimmed posts whose excerpt or content was showing in full (no reliable "read more" cutoff before) and guaranteed a real clickable "اقرأ المزيد" link in every case (missing link, suppressed native more-link, or plain non-linked "اقرأ المزيد" text); "بقلم" swapped to "نشر بواسطة" on archive listings; category description wrapped in a styled intro box; page title + each post's own title colored/sized to match the single-article title; image frame added around archive thumbnails.
v1.33.0-vip: added a footer "الأقسام" checkbox column to Appearance > أقسام الصفحة الرئيسية (same independent-selection/ordering pattern as the existing "في القائمة العلوية" nav column), so the admin can pick which categories appear in the site footer instead of relying on the automatic top-6-by-post-count fallback. The footer "روابط سريعة" quick-links fields already existed on this page and are unchanged.
v1.32.0-vip: PageSpeed "Improve image delivery" fix — category cards now request a dedicated small 480x270 crop ('ahram-cat-card', registered via add_image_size) instead of the 'full' original file, cutting the transferred image weight on the homepage. Falls back automatically to 'full' for any older image that doesn't have this size generated yet (run Regenerate Thumbnails to backfill). Cache key bumped to v3 so this takes effect immediately.
v1.30.0-vip: broken-image-icon defensive fixes (fallback gradient, onerror handler) — reported still broken even after full cache purge across multiple browsers/devices AND after rolling back to an older version, ruling out caching entirely. User confirmed the SAME specific categories fail every time (not random) and that their originals are native WebP files which LiteSpeed can't further optimize. v1.31.0-vip: root cause identified — the category-card image lookup requested a generated 'medium_large' sub-size, which can fail to build from a native WebP source on some server image-library configurations, leaving a broken file reference even though the original upload is completely fine. Switched to requesting 'full' size (the originally uploaded file itself, guaranteed to exist) instead of a derived sub-size. Also version-bumped the image cache key (v2) so any already-cached broken URLs from before this fix are invalidated immediately on deploy rather than lingering up to 6 hours.
v1.28.0-vip: nav text-wrap fix via inline style on each <a>. Confirmed working at 8 categories. v1.29.0-vip: added a SEPARATE "في القائمة العلوية" checkbox column on the settings page — the nav menu now has its own independent category selection (capped at 8), completely decoupled from the homepage-cards category list (still capped at 10). v1.30.0-vip: fixed broken-image icons showing inside several category cards on mobile. The gradient fallback background is now ALWAYS set on every card (previously only set when there was no image at all), and the <img> tag has an onerror handler that hides it if the URL fails to load — so a stale/broken cached image URL now falls back cleanly to the color gradient instead of showing a broken-image icon. Also shortened the per-category image cache from 24h to 6h as a defensive measure, in case the breakage is caused by an external image-optimization/CDN pipeline changing files without triggering the save_post cache-clear hook.
Text Domain: ahram-gp
*/

/* Component styles live in assets/css/sahifa-blocks.css, enqueued from functions.php */

