1<!doctype html><html lang="en-US" prefix="og: https://ogp.me/ns#"><head metasync_optimized><meta name="description" data-otto-pixel="dynamic-seo" content="eCommerce Growth: GSM Growth Agency offers marketing insights for business success. Discover proven strategies in PPC, SEO, and content creation."><meta name="keywords" data-otto-pixel="dynamic-seo" content="eCommerce growth, digital marketing strategies, SEO tips, PPC advertising, content marketing, online business optimization, marketing insights, business growth tactics"/><meta property="og:description" data-otto-pixel="dynamic-seo" content="Explore eCommerce growth strategies at GSM Growth Agency's blog!"/><meta name="twitter:description" data-otto-pixel="dynamic-seo" content="Boost your eCommerce growth with expert tips on PPC, SEO, and more! #eCommerce #GrowthStrategies"/><meta name="twitter:site" data-otto-pixel="dynamic-seo" content="https://twitter.com/ecombyanatoliy"/>
1<script type="application/ld+json">[{"@context": "https://schema.org/", "@type": "ImageObject", "contentUrl": "https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/gsm-logo.png", "caption": "GSM Growth Agency logo featuring stylized letters \"GSM\" with a dynamic circular design, representing digital marketing solutions for eCommerce growth."}, {"@context": "https://schema.org/", "@type": "ImageObject", "contentUrl": "https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/hero-fallback.png", "caption": "Person analyzing eCommerce analytics on a MacBook Pro, displaying sales data, online store sessions, and customer metrics for business growth strategies."}]</script>
1<script type="application/ld+json" data-otto-pixel="dynamic-seo">{"@context": "https://schema.org", "@type": "OnlineBusiness", "image": "https://storage.googleapis.com/content-assistant-images-persistent/1f5a36dc-2ca6-4b92-8e4b-2f8c2feff98a.webp", "url": "https://gsmgrowthagency.com/", "sameAs": ["https://twitter.com/ecombyanatoliy", "https://www.facebook.com/anatoliygsm", "https://www.youtube.com/channel/UCi5woAFT8UMV8Gu2_i7s1FA", "https://www.instagram.com/ecombyanatoliy/", "https://www.linkedin.com/in/anatoliylabinskiy"], "logo": "https://storage.googleapis.com/content-assistant-images-persistent/973d63d8-16cf-46fd-a784-6ff1f7eae2e2.webp", "name": "GSM Growth Agency", "description": "GSM Growth Agency is a dynamic digital marketing firm specializing in tailored growth strategies, including SEO, PPC, social media marketing, and content creation, to help businesses amplify their online presence and achieve measurable results.\nGSM Growth Agency offers an overall eCommerce growth service, combining PPC, Paid Social Networks, Conversion Rate Optimization, Content Creation, Influencer Marketing, and Customer Lifetime Maximization into a proven framework to help entrepreneurs achieve remarkable revenue growth.", "email": "[email protected]", "telephone": "19594569871", "address": [{"@type": "PostalAddress", "addressCountry": "US"}]}</script>
vendor: 67 bytes, line 1
1<script src="https://www.google.com/recaptcha/enterprise.js?render=
16Lf3uK4rAAAAAJXdvJZJyHdGYAl01wNzER0W5L7d
vendor: 11 bytes, line 1
1"></script>
1<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="profile" href="https://gmpg.org/xfn/11"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&display=swap" rel="stylesheet"><meta name="robots" content="index"/><style>body{font-family:"Playfair Display",serif;margin:0;padding:0;background-color:#000;color:#fff;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.header{position:fixed;top:0;left:0;width:100%;z-index:1000;background-color:#000;transition:all .3s ease;padding:15px 0}.header-container{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:0 20px}.logo{font-size:2rem;font-weight:700;color:#fff;text-decoration:none;transition:all .3s ease;font-family:"Playfair Display",serif}.nav-menu{display:flex;gap:30px;align-items:center}.nav-link{color:#fff;text-decoration:none;font-size:1rem;font-weight:500;transition:all .3s ease;position:relative;text-transform:uppercase;font-family:"Playfair Display",serif}.consultation-btn{background-color:#8B0000;color:#fff;padding:10px 20px;border-radius:5px;text-decoration:none;font-weight:600;transition:all .3s ease;margin-left:20px;white-space:nowrap;text-transform:uppercase;font-size:.8rem;letter-spacing:.5px;font-family:"Playfair Display",serif}h1,h2,h3,h4,h5,h6{color:#fff;font-family:"Playfair Display",serif}</style><link rel="preload" href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&display=swap" as="style"><link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/webfonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin><!-- Search Engine Optimization by Rank Math - https://s.rankmath.com/home --><title>eCommerce Growth: GSM Agency's Marketing Insights</title><meta name="robots" content="index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/><link rel="canonical" href="https://gsmgrowthagency.com/blog/"/><meta property="og:locale" content="en_US"/><meta property="og:type" content="article"/><meta property="og:title" content="blog - GSM growth agency"/><meta property="og:url" content="https://gsmgrowthagency.com/blog/"/><meta property="og:site_name" content="GSM growth agency"/><meta property="og:updated_time" content="2025-05-13T15:15:38+03:00"/><meta property="article:published_time" content="2025-05-13T15:15:36+03:00"/><meta property="article:modified_time" content="2025-05-13T15:15:38+03:00"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="blog - GSM growth agency"/><meta name="twitter:label1" content="Time to read"/><meta name="twitter:data1" content="Less than a minute"/>
1<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":["Person","Organization"],"@id":"https://gsmgrowthagency.com/#person","name":"GSM"},{"@type":"WebSite","@id":"https://gsmgrowthagency.com/#website","url":"https://gsmgrowthagency.com","name":"GSM","publisher":{"@id":"https://gsmgrowthagency.com/#person"},"inLanguage":"en-US"},{"@type":"Person","@id":"https://gsmgrowthagency.com/author/admin/","name":"admin","url":"https://gsmgrowthagency.com/author/admin/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/a2d222f291f332a83cd523e9aefbf4cae3ad677a56e46e49ab765b631647705e?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/a2d222f291f332a83cd523e9aefbf4cae3ad677a56e46e49ab765b631647705e?s=96&d=mm&r=g","caption":"admin","inLanguage":"en-US"},"sameAs":["https://dev.just-job.online"]},{"@type":"WebPage","@id":"https://gsmgrowthagency.com/blog/#webpage","url":"https://gsmgrowthagency.com/blog/","name":"blog - GSM growth agency","datePublished":"2025-05-13T15:15:36+03:00","dateModified":"2025-05-13T15:15:38+03:00","author":{"@id":"https://gsmgrowthagency.com/author/admin/"},"isPartOf":{"@id":"https://gsmgrowthagency.com/#website"},"inLanguage":"en-US"},{"@type":"Article","headline":"blog - GSM growth agency","datePublished":"2025-05-13T15:15:36+03:00","dateModified":"2025-05-13T15:15:38+03:00","author":{"@id":"https://gsmgrowthagency.com/author/admin/"},"publisher":{"@id":"https://gsmgrowthagency.com/#person"},"name":"blog - GSM growth agency","@id":"https://gsmgrowthagency.com/blog/#richSnippet","isPartOf":{"@id":"https://gsmgrowthagency.com/blog/#webpage"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://gsmgrowthagency.com/blog/#webpage"}}]}</script>
1<!-- /Rank Math WordPress SEO plugin --><link rel='dns-prefetch' href='//www.googletagmanager.com'/><link rel='dns-prefetch' href='//cdnjs.cloudflare.com'/><link rel='dns-prefetch' href='//fonts.googleapis.com'/><link rel="alternate" type="application/rss+xml" title="GSM growth agency » Feed" href="https://gsmgrowthagency.com/feed/"/><link rel="alternate" type="application/rss+xml" title="GSM growth agency » Comments Feed" href="https://gsmgrowthagency.com/comments/feed/"/><link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://gsmgrowthagency.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgsmgrowthagency.com%2Fblog%2F"/><link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://gsmgrowthagency.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgsmgrowthagency.com%2Fblog%2F&format=xml"/><style id="wp-img-auto-sizes-contain-inline-css"> 2img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 3/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 4</style><style id="wp-emoji-styles-inline-css"> 5 6 img.wp-smiley, img.emoji { 7 display: inline !important; 8 border: none !important; 9 box-shadow: none !important; 10 height: 1em !important; 11 width: 1em !important; 12 margin: 0 0.07em !important; 13 vertical-align: -0.1em !important; 14 background: none !important; 15 padding: 0 !important; 16 } 17/*# sourceURL=wp-emoji-styles-inline-css */ 18</style><style id="wp-block-library-inline-css"> 19:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
19--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 20 21/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 22</style><style id="classic-theme-styles-inline-css"> 23/*! This file is auto-generated */ 24.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 25/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 26</style><style id="global-styles-inline-css"> 27:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
270) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
27.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 28/*# sourceURL=global-styles-inline-css */ 29</style><link rel='stylesheet' id='contact-form-7-css' href='https://gsmgrowthagency.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all'/><link rel='stylesheet' id='badmarketing-style-css' href='https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/style.css?ver=1.0.0' media='all'/><link rel='stylesheet' id='font-awesome-css' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css?ver=5.15.4' media='all'/><link rel='stylesheet' id='badmarketing-fontawesome-css' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css?ver=5.15.4' media='all'/><link rel='stylesheet' id='badmarketing-google-fonts-css' href='https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700;800;900&display=swap' media='all'/>
29<script id="jquery-core-js" src="https://gsmgrowthagency.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
29<script id="jquery-migrate-js" src="https://gsmgrowthagency.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
29<script id="metasync-js" src="https://gsmgrowthagency.com/wp-content/plugins/metasync/public/js/metasync-public.js?ver=2.3.4"></script>
29<!-- Google tag (gtag.js) snippet added by Site Kit --><!-- Google Analytics snippet added by Site Kit -->
vendor: 79 bytes, line 29
29<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=
29GT-KF8HWS3H
vendor: 17 bytes, line 29
29" async></script>
29<script id="google_gtagjs-js-after"> 30window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} 31gtag("set","linker",{"domains":["gsmgrowthagency.com"]}); 32gtag("js", new Date()); 33gtag("set", "developer_id.dZTNiMT", true); 34gtag("config", "GT-KF8HWS3H", {"googlesitekit_post_type":"page"}); 35 window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }; 36//# sourceURL=google_gtagjs-js-after 37</script>
37<link rel="https://api.w.org/" href="https://gsmgrowthagency.com/wp-json/"/><link rel="alternate" title="JSON" type="application/json" href="https://gsmgrowthagency.com/wp-json/wp/v2/pages/15356"/><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://gsmgrowthagency.com/xmlrpc.php?rsd"/><meta name="generator" content="WordPress 7.1.2"/><link rel='shortlink' href='https://gsmgrowthagency.com/?p=15356'/><meta name="generator" content="Site Kit by Google 1.188.0"/><meta name="otto" content="uuid=80a4caed-e2de-4724-af3f-a9c337c938c9; type=wordpress; enabled=true">
37<script>
vendor: 113 bytes, lines 37-40
37 38 (function(h,o,t,j,a,r){ 39 h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)}; 40 h._hjSettings={hjid:
405305905
vendor: 232 bytes, lines 40-46
40,hjsv:5}; 41 a=o.getElementsByTagName('head')[0]; 42 r=o.createElement('script');r.async=1; 43 r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; 44 a.appendChild(r); 45 })(window,document,'//static.hotjar.com/c/hotjar-','.js?sv='); 46
46</script>
46<style>.stat-card h3 { color: #fff; }.stat-card.highlight h3 { color: #d4af37; }.stat-card { background: #0a0a0a; }.stat-card.highlight { background: linear-gradient(135deg, rgba(139, 0, 0, 0.2), rgba(20, 20, 20, 0.5)); }.ceo-title { color: #fff; }.ceo-name { color: #fff; }.ceo-accolade::before { color: #d4af37; }.nav-link:hover, .nav-link.active { color: #d4af37; }.nav-link::after { background-color: #d4af37; }.custom-cursor { border-color: #d4af37; }.custom-cursor.active { border-color: rgba(212, 175, 55, 0.5); }.mobile-menu a:hover { color: #d4af37; }.section-title::after { background: linear-gradient(90deg, #d4af37, transparent); }.social-links a:hover, .quick-links-section a:hover { color: #d4af37; }</style><link rel="icon" href="https://gsmgrowthagency.com/wp-content/uploads/2021/09/cropped-7778-32x32.png" sizes="32x32"/><link rel="icon" href="https://gsmgrowthagency.com/wp-content/uploads/2021/09/cropped-7778-192x192.png" sizes="192x192"/><link rel="apple-touch-icon" href="https://gsmgrowthagency.com/wp-content/uploads/2021/09/cropped-7778-180x180.png"/><meta name="msapplication-TileImage" content="https://gsmgrowthagency.com/wp-content/uploads/2021/09/cropped-7778-270x270.png"/><style> 47 /* Base styles */ 48 body { 49 font-family: 'Playfair Display', serif; 50 margin: 0; 51 padding: 0; 52 background-color: #000; 53 color: #fff; 54 } 55 56 /* Custom cursor */ 57 .custom-cursor { 58 position: fixed; 59 width: 20px; 60 height: 20px; 61 border: 2px solid #d4af37; 62 border-radius: 50%; 63 pointer-events: none; 64 transform: translate(-50%, -50%); 65 z-index: 9999; 66 transition: width 0.2s, height 0.2s, border-color 0.2s; 67 display: none; 68 } 69 70 @media (pointer: fine) { 71 .custom-cursor { 72 display: block; 73 } 74 } 75 76 .custom-cursor.active { 77 width: 40px; 78 height: 40px; 79 border-color: rgba(212, 175, 55, 0.5); 80 border-width: 3px; 81 } 82 83 /* Header styles */ 84 .header { 85 position: fixed; 86 top: 0; 87 left: 0; 88 width: 100%; 89 z-index: 1000; 90 background-color: #000; 91 transition: all 0.3s ease; 92 padding: 15px 0; 93 } 94 95 .header.scrolled { 96 background-color: rgba(0, 0, 0, 0.9); 97 padding: 10px 0; 98 box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); 99 } 100 101 /* Updated header container for left logo and centered menu */ 102 .header-container { 103 display: flex; 104 flex-direction: row; 105 align-items: center; 106 justify-content: space-between; 107 max-width: 1400px; 108 margin: 0 auto; 109 padding: 0 20px; 110 position: relative; 111 } 112 113 /* Logo styles - positioned left */ 114 .logo { 115 margin-bottom: 0; 116 text-align: left; 117 } 118 119 .header-logo { 120 max-height: 50px; 121 width: auto; 122 transition: all 0.3s ease; 123 } 124 125 /* Adjust logo size when header is scrolled */ 126 .scrolled .header-logo { 127 max-height: 40px; 128 } 129 130 /* Nav container for centered menu */ 131 .nav-container { 132 flex-grow: 1; 133 display: flex; 134 justify-content: center; 135 } 136 137 /* Centered navigation menu */ 138 .nav-menu { 139 display: flex; 140 gap: 30px; 141 align-items: center; 142 justify-content: center; 143 } 144 145 .nav-link { 146 color: white; 147 text-decoration: none; 148 font-size: 1.1rem; 149 font-weight: 500; 150 transition: all 0.3s ease; 151 position: relative; 152 font-family: 'Playfair Display', serif; 153 } 154 155 .nav-link::after { 156 content: ''; 157 position: absolute; 158 bottom: -5px; 159 left: 0; 160 width: 0; 161 height: 2px; 162 background-color: #8B0000; 163 transition: width 0.3s ease; 164 } 165 166 .nav-link:hover::after { 167 width: 100%; 168 } 169 170 .nav-link:hover { 171 color: #8B0000; 172 } 173 174 .nav-link.active { 175 color: #8B0000; 176 } 177 178 .nav-link.active::after { 179 width: 100%; 180 } 181 182 /* Consultation button */ 183 .consultation-btn { 184 background-color: #8B0000; 185 color: white; 186 padding: 10px 20px; 187 border-radius: 5px; 188 text-decoration: none; 189 font-weight: 600; 190 transition: all 0.3s ease; 191 margin-left: 20px; 192 white-space: nowrap; 193 font-family: 'Playfair Display', serif; 194 } 195 196 .consultation-btn:hover { 197 background-color: #a30000; 198 color: #ffffff; 199 transform: translateY(-3px); 200 box-shadow: 0 10px 20px rgba(139, 0, 0, 0.3); 201 } 202 /* Mobile consultation button */ 203 .mobile-cta-btn { 204 display: none; 205 background-color: #8B0000; 206 color: white; 207 padding: 8px 12px; 208 border-radius: 5px; 209 text-decoration: none; 210 font-weight: 600; 211 font-size: 14px; 212 transition: all 0.3s ease; 213 white-space: nowrap; 214 font-family: 'Playfair Display', serif; 215 text-align: center; 216 } 217 218 .mobile-cta-btn:hover { 219 background-color: #6d0000; 220 } 221 /* Fixed Mobile menu toggle button */ 222 .mobile-menu-toggle { 223 display: none; 224 background: transparent; 225 border: none; 226 cursor: pointer; 227 padding: 0; 228 width: 30px; 229 height: 24px; 230 position: relative; 231 z-index: 1001; 232 margin-left: 15px; 233 } 234 235 /* Fixed burger menu icon bars */ 236 .mobile-menu-toggle .bar { 237 display: block; 238 width: 30px; 239 height: 3px; 240 margin: 5px 0; 241 background-color: #ffffff; 242 border-radius: 3px; 243 transition: all 0.3s ease; 244 position: absolute; 245 left: 0; 246 } 247 248 /* Position each bar correctly */ 249 .mobile-menu-toggle .bar:nth-child(1) { 250 top: 0; 251 } 252 253 .mobile-menu-toggle .bar:nth-child(2) { 254 top: 10px; 255 } 256 257 .mobile-menu-toggle .bar:nth-child(3) { 258 top: 20px; 259 } 260 261 /* Active state for bars */ 262 .mobile-menu-toggle.active .bar:nth-child(1) { 263 transform: rotate(45deg); 264 top: 10px; 265 } 266 267 .mobile-menu-toggle.active .bar:nth-child(2) { 268 opacity: 0; 269 } 270 271 .mobile-menu-toggle.active .bar:nth-child(3) { 272 transform: rotate(-45deg); 273 top: 10px; 274 } 275 276 .mobile-menu { 277 position: fixed; 278 top: 0; 279 left: 0; 280 width: 100%; 281 height: 100vh; 282 height: calc(var(--vh, 1vh) * 100); 283 background-color: rgba(0, 0, 0, 0.95); 284 display: flex; 285 flex-direction: column; 286 justify-content: center; 287 align-items: center; 288 z-index: 1000; 289 transform: translateY(-100%); 290 transition: transform 0.5s ease; 291 overflow-y: auto; 292 text-align: center; 293 } 294 295 .mobile-menu.active { 296 transform: translateY(0); 297 } 298 299 .mobile-menu a { 300 color: white; 301 text-decoration: none; 302 font-size: 1.5rem; 303 margin: 15px 0; 304 transition: all 0.3s ease; 305 font-family: 'Playfair Display', serif; 306 text-align: center; 307 display: block; 308 width: 100%; 309 } 310 311 .mobile-menu a:hover { 312 color: #8B0000; 313 transform: scale(1.1); 314 } 315 316 /* Fixed consultation button centering */ 317 .mobile-consultation-btn { 318 background-color: #8B0000; 319 color: white; 320 padding: 12px 24px; 321 border-radius: 5px; 322 text-decoration: none; 323 font-weight: 600; 324 transition: all 0.3s ease; 325 margin: 20px auto; 326 font-family: 'Playfair Display', serif; 327 display: inline-block; 328 text-align: center; 329 max-width: 80%; 330 } 331 332 .mobile-consultation-btn:hover { 333 background-color: #6d0000; 334 } 335 336 /* Responsive styles */ 337 @media (max-width: 992px) { 338 .nav-menu { 339 display: none; 340 } 341 342 .mobile-menu-toggle { 343 display: block; 344 } 345 /* Show mobile CTA button */ 346 .mobile-cta-btn { 347 display: block; 348 } 349 /* Ensure proper alignment in mobile view */ 350 .header-container { 351 justify-content: space-between; 352 } 353 354 .nav-container { 355 display: flex; 356 align-items: center; 357 justify-content: flex-end; 358 flex-grow: 0; 359 } 360 } 361 362 /* Add margin to content to account for fixed header */ 363 .site-content { 364 margin-top: 80px; /* Reverted to original margin */ 365 } 366 367 @media (max-width: 992px) { 368 .site-content { 369 margin-top: 80px; 370 } 371 } 372 373 /* Ensure all text uses Playfair Display */ 374 h1, h2, h3, h4, h5, h6, p, a, span, div, button, input, textarea { 375 font-family: 'Playfair Display', serif; 376 } 377 378 /* Ensure all headings are white for better visibility on dark backgrounds */ 379 h1, h2, h3, h4, h5, h6 { 380 color: #ffffff; 381 } 382 383 /* Fix for menu-open body */ 384 body.menu-open { 385 overflow: hidden; 386 } 387 </style></head><body 7 class="wp-singular page-template-default page page-id-15356 wp-embed-responsive wp-theme-gsmnew-201 no-sidebar page-blog"><div class="custom-cursor"></div><header class="header"><div class="header-container"><a href="https://gsmgrowthagency.com/" class="logo"><img src="https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/gsm-logo.png" alt="GSM Growth Agency logo featuring stylized letters "GSM" with a dynamic circular design, representing digital marketing solutions for eCommerce growth." class="header-logo"></a><!-- Mobile CTA button - only visible on mobile --><a href="https://crm.iultelesalesmastery.com/widget/booking/5f0Itx0dw6ORtUktylgX" class="mobile-cta-btn">Free consult</a><div class="nav-container"><nav class="nav-menu"><a href="https://gsmgrowthagency.com/" class="nav-link">Home</a><a href="https://gsmgrowthagency.com/seo/" class="nav-link">SEO</a><a href="https://gsmgrowthagency.com/tech-we-use/" class="nav-link">Tech We Use</a><a href="https://gsmgrowthagency.com/case-studies/" class="nav-link">Case Studies</a><a href="https://gsmgrowthagency.com/blog/" class="nav-link">Blog</a><a href="https://gsmgrowthagency.com/community/" class="nav-link">Community</a><a href="https://gsmgrowthagency.com/careers/" class="nav-link">Careers</a><a href="https://crm.iultelesalesmastery.com/widget/booking/5f0Itx0dw6ORtUktylgX" class="consultation-btn">SCHEDULE FREE CONSULTATION</a></nav><button type="button" class="mobile-menu-toggle" id="mobile-menu-toggle" aria-label="Toggle mobile menu" aria-expanded="false" aria-controls="mobile-menu"><span class="bar"></span><span class="bar"></span><span class="bar"></span></button></div></div><div class="mobile-menu" id="mobile-menu"><a href="https://gsmgrowthagency.com/" class="">Home</a><a href="https://gsmgrowthagency.com/seo/" class="">SEO</a><a href="https://gsmgrowthagency.com/tech-we-use/" class="">Tech We Use</a><a href="https://gsmgrowthagency.com/case-studies/" class="">Case Studies</a><a href="https://gsmgrowthagency.com/blog/" class="">Blog</a><a href="https://gsmgrowthagency.com/community/" class="">Community</a><a href="https://gsmgrowthagency.com/careers/" class="">Careers</a><a href="https://crm.iultelesalesmastery.com/widget/booking/5f0Itx0dw6ORtUktylgX" class="mobile-consultation-btn">SCHEDULE FREE CONSULTATION</a></div></header>
387<div id="content" class="site-content"></div><section class="hero"><img src="https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/hero-fallback.png" alt="Person analyzing eCommerce analytics on a MacBook Pro, displaying sales data, online store sessions, and customer metrics for business growth strategies." class="hero-bg"><div class="hero-content"><h1 class="hero-title">GSM Growth Agency Blog: eCommerce Growth & Marketing Insights</h1><h2 class="hero-subtitle">Insights & Strategies</h2></div></section><section class="blog-section"><div class="blog-container"><div class="blog-main"><!-- Blog Posts List View --><div id="blog-posts-container"><h2 class="section-title">Latest Ecommerce Growth Articles & Insights</h2><div id="loading-container" class="loading-container"><div class="loading-spinner"></div></div><div id="error-container"></div><div id="blog-grid" class="blog-grid"></div><div id="pagination" class="pagination"></div></div><!-- Single Post View --><div id="single-post-container" class="single-post-container"><a href="#" id="back-to-blog" class="back-to-blog"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg> 388 Back to Blog 389 </a><div id="single-post-content"></div></div></div><div class="blog-sidebar"><!-- Search Widget --><div class="sidebar-widget"><h3 class="widget-title">Search</h3><form id="search-form" class="search-form"><input type="text" id="search-input" class="search-input" placeholder="Search..."><button type="submit" class="search-button"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg></button></form></div><!-- Categories Widget --><div class="sidebar-widget"><h3 class="widget-title">Categories</h3><ul id="categories-list" class="categories-list"><li class="category-item"><a href="#" class="category-link" data-category="all"><span>All Categories</span><span class="category-count">0</span></a></li></ul></div><!-- Recent Posts Widget --><div class="sidebar-widget"><h3 class="widget-title">Recent Posts</h3><ul id="recent-posts-list" class="recent-posts-list"></ul></div><!-- Tags Widget --><div class="sidebar-widget"><h3 class="widget-title">Tags</h3><div id="tags-cloud" class="tags-cloud"></div></div></div></div></section><style> 390/* Blog Page Specific Styles */ 391.hero { 392 height: 50vh; 393 display: flex; 394 justify-content: center; 395 align-items: center; 396 position: relative; 397 overflow: hidden; 398} 399 400.hero-bg { 401 position: absolute; 402 top: 0; 403 left: 0; 404 width: 100%; 405 height: 100%; 406 object-fit: cover; 407 filter: brightness(0.6); 408} 409 410.hero-content { 411 position: relative; 412 z-index: 2; 413 text-align: center; 414 opacity: 0; 415 transform: translateY(30px); 416 transition: all 1s ease; 417 max-width: 900px; 418 padding: 0 20px; 419} 420 421.hero-title { 422 font-size: 80px; 423 font-weight: 900; 424 line-height: 0.9; 425 letter-spacing: -2px; 426 margin-bottom: 20px; 427 text-transform: uppercase; 428 position: relative; 429 display: inline-block; 430} 431 432.hero-subtitle { 433 font-size: 30px; 434 font-weight: 300; 435 letter-spacing: 5px; 436 text-transform: uppercase; 437 opacity: 0; 438 transform: translateY(20px); 439 transition: all 0.8s ease 0.3s; 440 margin-bottom: 30px; 441} 442 443.loaded .hero-content { 444 opacity: 1; 445 transform: translateY(0); 446} 447 448.loaded .hero-subtitle { 449 opacity: 1; 450 transform: translateY(0); 451} 452 453/* Blog Section */ 454.blog-section { 455 padding: 80px 0; 456 background-color: #0a0a0a; 457 position: relative; 458} 459 460.blog-container { 461 max-width: 1200px; 462 margin: 0 auto; 463 padding: 0 20px; 464 display: flex; 465 flex-wrap: wrap; 466 gap: 40px; 467} 468 469.blog-main { 470 flex: 1; 471 min-width: 300px; 472} 473 474.blog-sidebar { 475 width: 300px; 476} 477 478.section-title { 479 font-size: 2.5rem; 480 font-weight: 700; 481 margin-bottom: 50px; 482 position: relative; 483} 484 485.section-title::after { 486 content: ''; 487 position: absolute; 488 bottom: -15px;
489 left: 0; 490 width: 80px; 491 height: 3px; 492 background: linear-gradient(90deg, #8B0000, transparent); 493} 494 495/* Blog Posts Grid */ 496.blog-grid { 497 display: grid; 498 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 499 gap: 30px; 500 margin-bottom: 50px; 501} 502 503.blog-card { 504 background: linear-gradient(135deg, rgba(30, 30, 30, 0.5), rgba(20, 20, 20, 0.5)); 505 border: 1px solid rgba(255, 255, 255, 0.1); 506 border-radius: 10px; 507 overflow: hidden; 508 transition: all 0.5s ease; 509 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); 510 height: 100%; 511 display: flex; 512 flex-direction: column; 513 opacity: 0; 514 transform: translateY(30px); 515} 516 517.blog-card.visible { 518 opacity: 1; 519 transform: translateY(0); 520} 521 522.blog-card:hover { 523 transform: translateY(-10px); 524 box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); 525 border-color: rgba(139, 0, 0, 0.3); 526} 527 528.blog-image-container { 529 width: 100%; 530 height: 200px; 531 overflow: hidden; 532} 533 534.blog-image { 535 width: 100%; 536 height: 100%; 537 object-fit: cover; 538 transition: transform 0.5s ease; 539} 540 541.blog-card:hover .blog-image { 542 transform: scale(1.05); 543} 544 545.blog-content { 546 padding: 20px; 547 flex-grow: 1; 548 display: flex; 549 flex-direction: column; 550} 551 552.blog-date { 553 font-size: 0.9rem; 554 color: #aaa; 555 margin-bottom: 10px; 556} 557 558.blog-title { 559 font-size: 1.5rem; 560 font-weight: 700; 561 margin-bottom: 15px; 562 color: #fff; 563 transition: color 0.3s ease; 564} 565 566.blog-card:hover .blog-title { 567 color: #8B0000; 568} 569 570.blog-excerpt { 571 font-size: 1rem; 572 color: #ccc; 573 margin-bottom: 20px; 574 line-height: 1.6; 575 flex-grow: 1; 576} 577 578.blog-categories { 579 display: flex; 580 flex-wrap: wrap; 581 gap: 10px; 582 margin-bottom: 20px; 583} 584 585.blog-category { 586 font-size: 0.8rem; 587 color: #fff; 588 background-color: rgba(139, 0, 0, 0.2); 589 padding: 5px 10px; 590 border-radius: 5px; 591 transition: background-color 0.3s ease; 592} 593 594.blog-card:hover .blog-category { 595 background-color: rgba(139, 0, 0, 0.4); 596} 597 598.blog-link { 599 align-self: flex-start; 600 color: #fff; 601 text-decoration: none; 602 font-weight: 600; 603 font-size: 1rem; 604 position: relative; 605 padding-bottom: 2px; 606 transition: all 0.3s ease; 607} 608 609.blog-link::after { 610 content: ''; 611 position: absolute; 612 bottom: 0;
613 left: 0; 614 width: 0; 615 height: 2px; 616 background-color: #8B0000; 617 transition: width 0.3s ease; 618} 619 620.blog-link:hover { 621 color: #8B0000; 622} 623 624.blog-link:hover::after { 625 width: 100%; 626} 627 628/* Pagination */ 629.pagination { 630 display: flex; 631 justify-content: center; 632 gap: 10px; 633 margin-top: 50px; 634} 635 636.pagination-button { 637 background-color: rgba(30, 30, 30, 0.5); 638 border: 1px solid rgba(255, 255, 255, 0.1); 639 color: #fff; 640 padding: 10px 15px; 641 border-radius: 5px; 642 cursor: pointer; 643 transition: all 0.3s ease; 644} 645 646.pagination-button:hover { 647 background-color: rgba(139, 0, 0, 0.2); 648 border-color: rgba(139, 0, 0, 0.3); 649} 650 651.pagination-button.active { 652 background-color: #8B0000; 653 border-color: transparent; 654} 655 656.pagination-button.disabled { 657 opacity: 0.5; 658 cursor: not-allowed; 659} 660 661/* Sidebar */ 662.sidebar-widget { 663 background: linear-gradient(135deg, rgba(30, 30, 30, 0.5), rgba(20, 20, 20, 0.5)); 664 border: 1px solid rgba(255, 255, 255, 0.1); 665 border-radius: 10px; 666 padding: 30px; 667 margin-bottom: 30px; 668 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); 669} 670 671.widget-title { 672 font-size: 1.5rem; 673 font-weight: 700; 674 margin-bottom: 20px; 675 position: relative; 676 padding-bottom: 10px; 677} 678 679.widget-title::after { 680 content: ''; 681 position: absolute; 682 bottom: 0;
683 left: 0; 684 width: 50px; 685 height: 2px; 686 background: linear-gradient(90deg, #8B0000, transparent); 687} 688 689.search-form { 690 display: flex; 691 margin-bottom: 10px; 692} 693 694.search-input { 695 flex: 1; 696 padding: 10px 15px; 697 background-color: rgba(255, 255, 255, 0.1); 698 border: 1px solid rgba(255, 255, 255, 0.2); 699 border-radius: 5px 0 0 5px; 700 color: white; 701 font-size: 1rem; 702 transition: all 0.3s ease; 703} 704 705.search-input:focus { 706 outline: none; 707 background-color: rgba(255, 255, 255, 0.15); 708 border-color: rgba(139, 0, 0, 0.5); 709} 710 711.search-button { 712 padding: 10px 15px; 713 background-color: #8B0000; 714 border: 1px solid #8B0000; 715 border-radius: 0 5px 5px 0; 716 color: white; 717 cursor: pointer; 718 transition: all 0.3s ease; 719} 720 721.search-button:hover { 722 background-color: #6B0000; 723} 724 725.categories-list { 726 list-style: none; 727} 728 729.category-item { 730 margin-bottom: 10px; 731 border-bottom: 1px solid rgba(255, 255, 255, 0.1); 732 padding-bottom: 10px; 733} 734 735.category-item:last-child { 736 border-bottom: none; 737 margin-bottom: 0; 738 padding-bottom: 0; 739} 740 741.category-link { 742 color: #ccc; 743 text-decoration: none; 744 transition: all 0.3s ease; 745 display: flex; 746 justify-content: space-between; 747} 748 749.category-link:hover { 750 color: #8B0000; 751} 752 753.category-count { 754 background-color: rgba(139, 0, 0, 0.2); 755 padding: 2px 8px; 756 border-radius: 10px; 757 font-size: 0.8rem; 758 transition: all 0.3s ease; 759} 760 761.category-link:hover .category-count { 762 background-color: rgba(139, 0, 0, 0.4); 763} 764 765.recent-posts-list { 766 list-style: none; 767} 768 769.recent-post-item { 770 display: flex; 771 margin-bottom: 15px; 772 border-bottom: 1px solid rgba(255, 255, 255, 0.1); 773 padding-bottom: 15px; 774} 775 776.recent-post-item:last-child { 777 border-bottom: none; 778 margin-bottom: 0; 779 padding-bottom: 0; 780} 781 782.recent-post-image { 783 width: 70px; 784 height: 70px; 785 border-radius: 5px; 786 object-fit: cover; 787 margin-right: 15px; 788} 789 790.recent-post-content { 791 flex: 1; 792} 793 794.recent-post-title { 795 font-size: 1rem; 796 font-weight: 600; 797 margin-bottom: 5px; 798} 799 800.recent-post-link { 801 color: #fff; 802 text-decoration: none; 803 transition: color 0.3s ease; 804} 805 806.recent-post-link:hover { 807 color: #8B0000; 808} 809 810.recent-post-date { 811 font-size: 0.8rem; 812 color: #aaa; 813} 814 815.tags-cloud { 816 display: flex; 817 flex-wrap: wrap; 818 gap: 10px; 819} 820 821.tag-link { 822 color: #ccc; 823 text-decoration: none; 824 background-color: rgba(255, 255, 255, 0.1); 825 padding: 5px 10px; 826 border-radius: 5px; 827 font-size: 0.9rem; 828 transition: all 0.3s ease; 829} 830 831.tag-link:hover { 832 background-color: rgba(139, 0, 0, 0.3); 833 color: #fff; 834} 835 836/* Loading Indicator */ 837.loading-container { 838 display: flex; 839 justify-content: center; 840 align-items: center; 841 height: 200px; 842} 843 844.loading-spinner { 845 width: 50px; 846 height: 50px; 847 border: 5px solid rgba(255, 255, 255, 0.1); 848 border-top: 5px solid #8B0000; 849 border-radius: 50%; 850 animation: spin 1s linear infinite; 851} 852 853@keyframes spin { 854 0% { transform: rotate(0deg); } 855 100% { transform: rotate(360deg); } 856} 857 858/* Error Message */ 859.error-message { 860 background-color: rgba(139, 0, 0, 0.2); 861 border: 1px solid rgba(139, 0, 0, 0.3); 862 padding: 20px; 863 border-radius: 10px; 864 text-align: center; 865 margin-bottom: 30px; 866} 867 868.error-message h3 { 869 font-size: 1.5rem; 870 margin-bottom: 10px; 871 color: #ff6b6b; 872} 873 874.error-message p { 875 font-size: 1rem; 876 color: #ccc; 877} 878 879/* Single Post View */ 880.single-post-container { 881 display: none; 882} 883 884.single-post-header { 885 margin-bottom: 30px; 886} 887 888.single-post-title { 889 font-size: 2.5rem; 890 font-weight: 700; 891 margin-bottom: 15px; 892} 893 894.single-post-meta { 895 display: flex; 896 align-items: center; 897 gap: 20px; 898 margin-bottom: 20px; 899 color: #aaa; 900 font-size: 0.9rem; 901} 902 903.single-post-author { 904 display: flex; 905 align-items: center; 906} 907 908.author-avatar { 909 width: 30px; 910 height: 30px; 911 border-radius: 50%; 912 margin-right: 10px; 913} 914 915.single-post-featured-image { 916 width: 100%; 917 max-height: 500px; 918 object-fit: cover; 919 border-radius: 10px; 920 margin-bottom: 30px; 921} 922 923.single-post-content { 924 font-size: 1.1rem; 925 line-height: 1.8; 926 color: #ddd; 927 margin-bottom: 40px; 928} 929 930.single-post-content p { 931 margin-bottom: 20px; 932} 933 934.single-post-content h2 { 935 font-size: 1.8rem; 936 margin: 40px 0 20px; 937} 938 939.single-post-content h3 { 940 font-size: 1.5rem; 941 margin: 30px 0 15px; 942} 943 944.single-post-content ul, 945.single-post-content ol { 946 margin-bottom: 20px; 947 padding-left: 20px; 948} 949 950.single-post-content li { 951 margin-bottom: 10px; 952} 953 954.single-post-content img { 955 max-width: 100%; 956 height: auto; 957 border-radius: 5px; 958 margin: 20px 0; 959} 960 961.single-post-content blockquote { 962 border-left: 3px solid #8B0000; 963 padding-left: 20px; 964 margin: 20px 0; 965 font-style: italic; 966 color: #aaa; 967} 968 969.single-post-content a { 970 color: #8B0000; 971 text-decoration: none; 972 transition: color 0.3s ease; 973} 974 975.single-post-content a:hover { 976 text-decoration: underline; 977} 978 979.single-post-tags { 980 display: flex; 981 flex-wrap: wrap; 982 gap: 10px; 983 margin-bottom: 40px; 984} 985 986.back-to-blog { 987 display: inline-block; 988 margin-bottom: 40px; 989 color: #fff; 990 text-decoration: none; 991 font-weight: 600; 992 transition: color 0.3s ease; 993} 994 995.back-to-blog:hover { 996 color: #8B0000; 997} 998 999.back-to-blog svg { 1000 margin-right: 5px; 1001 vertical-align: middle; 1002} 1003
1004/* Responsive Styles */ 1005@media (max-width: 1024px) { 1006 .blog-container { 1007 flex-direction: column; 1008 } 1009 1010 .blog-sidebar { 1011 width: 100%; 1012 } 1013} 1014 1015@media (max-width: 768px) { 1016 .hero-title { 1017 font-size: 60px; 1018 } 1019 1020 .hero-subtitle { 1021 font-size: 24px; 1022 letter-spacing: 3px; 1023 } 1024 1025 .blog-grid { 1026 grid-template-columns: 1fr; 1027 } 1028 1029 .section-title { 1030 font-size: 2rem; 1031 } 1032 1033 .single-post-title { 1034 font-size: 2rem; 1035 } 1036} 1037 1038@media (max-width: 480px) { 1039 .hero-title { 1040 font-size: 40px; 1041 } 1042 1043 .hero-subtitle { 1044 font-size: 18px; 1045 letter-spacing: 2px; 1046 } 1047 1048 .pagination { 1049 flex-wrap: wrap; 1050 } 1051} 1052</style>
1052<script> 1053document.addEventListener('DOMContentLoaded', function() { 1054 // WordPress REST API Configuration 1055 const wpConfig = { 1056 siteUrl: 'https://gsmgrowthagency.com/wp-json', 1057 postsPerPage: 6, 1058 currentPage: 1, 1059 totalPages: 1, 1060 currentCategory: 'all', 1061 searchQuery: '', 1062 singlePostId: null, 1063 nonce: '59dac31a16' 1064 }; 1065 1066 // DOM Elements 1067 const blogGrid = document.getElementById('blog-grid'); 1068 const loadingContainer = document.getElementById('loading-container'); 1069 const errorContainer = document.getElementById('error-container'); 1070 const paginationContainer = document.getElementById('pagination'); 1071 const categoriesList = document.getElementById('categories-list'); 1072 const recentPostsList = document.getElementById('recent-posts-list'); 1073 const tagsCloud = document.getElementById('tags-cloud'); 1074 const searchForm = document.getElementById('search-form'); 1075 const searchInput = document.getElementById('search-input'); 1076 const blogPostsContainer = document.getElementById('blog-posts-container'); 1077 const singlePostContainer = document.getElementById('single-post-container'); 1078 const singlePostContent = document.getElementById('single-post-content'); 1079 const backToBlogButton = document.getElementById('back-to-blog'); 1080 1081 // Add animation to hero content when page loads 1082 setTimeout(() => { 1083 document.body.classList.add('loaded'); 1084 }, 500); 1085 1086 // Initialize the blog 1087 initBlog(); 1088 1089 // Custom cursor animation 1090 const cursor = document.querySelector('.custom-cursor'); 1091 1092 if (cursor) { 1093 document.addEventListener('mousemove', (e) => { 1094 cursor.style.left = e.clientX + 'px'; 1095 cursor.style.top = e.clientY + 'px'; 1096 }); 1097 1098 document.addEventListener('mousedown', () => { 1099 cursor.classList.add('active'); 1100 }); 1101 1102 document.addEventListener('mouseup', () => { 1103 cursor.classList.remove('active'); 1104 }); 1105 1106 // Add hover effect to links 1107 const links = document.querySelectorAll('a'); 1108 links.forEach(link => { 1109 link.addEventListener('mouseenter', () => { 1110 cursor.classList.add('active'); 1111 }); 1112 1113 link.addEventListener('mouseleave', () => { 1114 cursor.classList.remove('active'); 1115 }); 1116 }); 1117 } 1118 1119 // Initialize Blog 1120 function initBlog() { 1121 // Check if we have a post ID in the URL 1122 const urlParams = new URLSearchParams(window.location.search); 1123 const postId = urlParams.get('post'); 1124 1125 if (postId) { 1126 // Show single post 1127 wpConfig.singlePostId = postId; 1128 showSinglePost(postId); 1129 } else { 1130 // Show blog list 1131 fetchPosts(); 1132 } 1133 1134 // Fetch categories for sidebar 1135 fetchCategories(); 1136 1137 // Fetch recent posts for sidebar 1138 fetchRecentPosts(); 1139 1140 // Fetch tags for sidebar 1141 fetchTags(); 1142 1143 // Setup search form 1144 setupSearchForm(); 1145 1146 // Setup back button 1147 setupBackButton(); 1148 } 1149 1150 // Fetch Posts from WordPress 1151 async function fetchPosts() { 1152 showLoading(); 1153 hideError(); 1154 1155 try { 1156 // Use the WordPress site URL instead of the REST API URL directly 1157 let url = `https://gsmgrowthagency.com/wp-json/wp/v2/posts?_embed&per_page=${wpConfig.postsPerPage}&page=${wpConfig.currentPage}`; 1158 1159 // Add category filter if not "all" 1160 if (wpConfig.currentCategory !== 'all') { 1161 url += `&categories=${wpConfig.currentCategory}`; 1162 } 1163 1164 // Add search query if exists 1165 if (wpConfig.searchQuery) { 1166 url += `&search=${encodeURIComponent(wpConfig.searchQuery)}`; 1167 } 1168 1169 const response = await fetch(url); 1170 1171 if (!response.ok) { 1172 throw new Error(`Failed to fetch posts: ${response.status} ${response.statusText}`); 1173 } 1174 1175 // Get total pages from headers 1176 wpConfig.totalPages = parseInt(response.headers.get('X-WP-TotalPages')) || 1; 1177 1178 const posts = await response.json(); 1179 displayPosts(posts); 1180 createPagination(); 1181 1182 } catch (error) { 1183 console.error('Error fetching posts:', error); 1184 showError('Error loading posts', 'Please try again later or contact the administrator.'); 1185 } finally { 1186 hideLoading(); 1187 } 1188 } 1189 1190 // Display Posts in Grid 1191 function displayPosts(posts) { 1192 blogGrid.innerHTML = ''; 1193 1194 if (posts.length === 0) { 1195 showError('No posts found', 'Try a different search term or category.'); 1196 return; 1197 } 1198
1199 posts.forEach((post, index) => { 1200 // Create post card 1201 const postCard = document.createElement('article'); 1202 postCard.className = 'blog-card'; 1203 1204 // Set animation delay based on index 1205 setTimeout(() => { 1206 postCard.classList.add('visible'); 1207 }, index * 100); 1208 1209 // Get featured image if available 1210 let featuredImageUrl = 'https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/hero-fallback.png'; 1211 if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) { 1212 featuredImageUrl = post._embedded['wp:featuredmedia'][0].source_url; 1213 } 1214 1215 // Get categories 1216 let categories = []; 1217 if (post._embedded && post._embedded['wp:term'] && post._embedded['wp:term'][0]) { 1218 categories = post._embedded['wp:term'][0].map(cat => ({ 1219 id: cat.id, 1220 name: cat.name 1221 })); 1222 } 1223 1224 // Format date 1225 const postDate = new Date(post.date); 1226 const formattedDate = postDate.toLocaleDateString('en-US', { 1227 year: 'numeric', 1228 month: 'long', 1229 day: 'numeric' 1230 }); 1231 1232 // Create excerpt from content 1233 const tempDiv = document.createElement('div'); 1234 tempDiv.innerHTML = post.excerpt.rendered; 1235 const excerpt = tempDiv.textContent.trim().substring(0, 150) + '...'; 1236 1237 // Build HTML 1238 postCard.innerHTML = ` 1239 <div class="blog-image-container"> 1240 <img src="${featuredImageUrl}" alt="${post.title.rendered}" class="blog-image"> 1241 </div> 1242 <div class="blog-content"> 1243 <div class="blog-date">${formattedDate}</div> 1244 <h3 class="blog-title">${post.title.rendered}</h3> 1245 <div class="blog-excerpt">${excerpt}</div> 1246 <div class="blog-categories"> 1247 ${categories.map(cat => `<span class="blog-category">${cat.name}</span>`).join('')} 1248 </div> 1249 <a href="https://gsmgrowthagency.com/?p=${post.id}" class="blog-link">Read More</a> 1250 </div> 1251 `; 1252 1253 // Add click event to the entire card 1254 postCard.addEventListener('click', (e) => { 1255 // Only navigate if the click wasn't on the "Read More" link (which has its own href) 1256 if (!e.target.classList.contains('blog-link')) { 1257 window.location.href = `https://gsmgrowthagency.com/?p=${post.id}`; 1258 } 1259 }); 1260 1261 blogGrid.appendChild(postCard); 1262 }); 1263 } 1264 1265 // Create Pagination 1266 function createPagination() { 1267 paginationContainer.innerHTML = ''; 1268 1269 if (wpConfig.totalPages <= 1) { 1270 return; 1271 } 1272 1273 // Previous button 1274 const prevButton = document.createElement('button'); 1275 prevButton.className = `pagination-button ${wpConfig.currentPage === 1 ? 'disabled' : ''}`; 1276 prevButton.innerHTML = '« Previous'; 1277 prevButton.disabled = wpConfig.currentPage === 1; 1278 prevButton.addEventListener('click', () => { 1279 if (wpConfig.currentPage > 1) { 1280 wpConfig.currentPage--; 1281 fetchPosts(); 1282 window.scrollTo({ top: 0, behavior: 'smooth' }); 1283 } 1284 }); 1285 paginationContainer.appendChild(prevButton); 1286 1287 // Page numbers 1288 const maxVisiblePages = 5; 1289 let startPage = Math.max(1, wpConfig.currentPage - Math.floor(maxVisiblePages / 2)); 1290 let endPage = Math.min(wpConfig.totalPages, startPage + maxVisiblePages - 1); 1291 1292 // Adjust start page if we're near the end 1293 if (endPage - startPage + 1 < maxVisiblePages) { 1294 startPage = Math.max(1, endPage - maxVisiblePages + 1); 1295 } 1296 1297 // First page button if not visible 1298 if (startPage > 1) { 1299 const firstPageButton = document.createElement('button'); 1300 firstPageButton.className = 'pagination-button'; 1301 firstPageButton.textContent = '1'; 1302 firstPageButton.addEventListener('click', () => { 1303 wpConfig.currentPage = 1; 1304 fetchPosts(); 1305 window.scrollTo({ top: 0, behavior: 'smooth' }); 1306 }); 1307 paginationContainer.appendChild(firstPageButton); 1308 1309 // Ellipsis if needed 1310 if (startPage > 2) { 1311 const ellipsis = document.createElement('span'); 1312 ellipsis.className = 'pagination-button disabled'; 1313 ellipsis.textContent = '...'; 1314 paginationContainer.appendChild(ellipsis); 1315 } 1316 } 1317 1318 // Page buttons 1319 for (let i = startPage; i <= endPage; i++) { 1320 const pageButton = document.createElement('button'); 1321 pageButton.className = `pagination-button ${i === wpConfig.currentPage ? 'active' : ''}`; 1322 pageButton.textContent = i; 1323 pageButton.addEventListener('click', () => { 1324 wpConfig.currentPage = i; 1325 fetchPosts(); 1326 window.scrollTo({ top: 0, behavior: 'smooth' }); 1327 }); 1328 paginationContainer.appendChild(pageButton); 1329 } 1330 1331 // Last page button if not visible 1332 if (endPage < wpConfig.totalPages) { 1333 // Ellipsis if needed 1334 if (endPage < wpConfig.totalPages - 1) { 1335 const ellipsis = document.createElement('span'); 1336 ellipsis.className = 'pagination-button disabled'; 1337 ellipsis.textContent = '...'; 1338 paginationContainer.appendChild(ellipsis); 1339 } 1340 1341 const lastPageButton = document.createElement('button'); 1342 lastPageButton.className = 'pagination-button'; 1343 lastPageButton.textContent = wpConfig.totalPages; 1344 lastPageButton.addEventListener('click', () => { 1345 wpConfig.currentPage = wpConfig.totalPages; 1346 fetchPosts(); 1347 window.scrollTo({ top: 0, behavior: 'smooth' }); 1348 }); 1349 paginationContainer.appendChild(lastPageButton); 1350 } 1351 1352 // Next button 1353 const nextButton = document.createElement('button'); 1354 nextButton.className = `pagination-button ${wpConfig.currentPage === wpConfig.totalPages ? 'disabled' : ''}`; 1355 nextButton.innerHTML = 'Next »'; 1356 nextButton.disabled = wpConfig.currentPage === wpConfig.totalPages; 1357 nextButton.addEventListener('click', () => { 1358 if (wpConfig.currentPage < wpConfig.totalPages) { 1359 wpConfig.currentPage++; 1360 fetchPosts(); 1361 window.scrollTo({ top: 0, behavior: 'smooth' }); 1362 } 1363 }); 1364 paginationContainer.appendChild(nextButton); 1365 } 1366 1367 // Fetch Categories 1368 async function fetchCategories() { 1369 try { 1370 const response = await fetch(`${wpConfig.siteUrl}/wp/v2/categories?per_page=100`); 1371 1372 if (!response.ok) { 1373 throw new Error(`Failed to fetch categories: ${response.status} ${response.statusText}`); 1374 } 1375 1376 const categories = await response.json(); 1377 displayCategories(categories); 1378 1379 } catch (error) { 1380 console.error('Error fetching categories:', error); 1381 } 1382 } 1383 1384 // Display Categories 1385 function displayCategories(categories) { 1386 // Keep the "All Categories" item and clear the rest 1387 categoriesList.innerHTML = ` 1388 <li class="category-item"> 1389 <a href="#" class="category-link" data-category="all">
1390 <span>All Categories</span> 1391 <span class="category-count">${categories.reduce((total, cat) => total + cat.count, 0)}</span> 1392 </a> 1393 </li> 1394 `; 1395 1396 // Add each category 1397 categories.forEach(category => { 1398 if (category.count > 0) { // Only show categories with posts 1399 const categoryItem = document.createElement('li'); 1400 categoryItem.className = 'category-item'; 1401 1402 categoryItem.innerHTML = ` 1403 <a href="#" class="category-link" data-category="${category.id}"> 1404 <span>${category.name}</span> 1405 <span class="category-count">${category.count}</span> 1406 </a> 1407 `; 1408 1409 categoriesList.appendChild(categoryItem); 1410 } 1411 }); 1412 1413 // Add click event to category links 1414 const categoryLinks = document.querySelectorAll('.category-link'); 1415 categoryLinks.forEach(link => { 1416 link.addEventListener('click', (e) => { 1417 e.preventDefault(); 1418 1419 // Remove active class from all links 1420 categoryLinks.forEach(l => l.classList.remove('active')); 1421 1422 // Add active class to clicked link 1423 link.classList.add('active'); 1424 1425 // Update current category and fetch posts 1426 wpConfig.currentCategory = link.dataset.category; 1427 wpConfig.currentPage = 1; 1428 fetchPosts(); 1429 1430 // Scroll to top of blog section 1431 document.querySelector('.blog-section').scrollIntoView({ behavior: 'smooth' }); 1432 }); 1433 }); 1434 1435 // Set "All Categories" as active by default 1436 categoryLinks[0].classList.add('active'); 1437 } 1438 1439 // Fetch Recent Posts 1440 async function fetchRecentPosts() { 1441 try { 1442 const response = await fetch(`${wpConfig.siteUrl}/wp/v2/posts?_embed&per_page=5`); 1443 1444 if (!response.ok) { 1445 throw new Error(`Failed to fetch recent posts: ${response.status} ${response.statusText}`); 1446 } 1447 1448 const posts = await response.json(); 1449 displayRecentPosts(posts); 1450 1451 } catch (error) { 1452 console.error('Error fetching recent posts:', error); 1453 } 1454 } 1455 1456 // Display Recent Posts 1457 function displayRecentPosts(posts) { 1458 recentPostsList.innerHTML = ''; 1459 1460 posts.forEach(post => { 1461 // Get featured image if available 1462 let featuredImageUrl = 'https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/assets/images/hero-fallback.png'; 1463 if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) { 1464 featuredImageUrl = post._embedded['wp:featuredmedia'][0].media_details.sizes.thumbnail?.source_url || post._embedded['wp:featuredmedia'][0].source_url; 1465 } 1466 1467 // Format date 1468 const postDate = new Date(post.date); 1469 const formattedDate = postDate.toLocaleDateString('en-US', { 1470 year: 'numeric', 1471 month: 'short', 1472 day: 'numeric' 1473 }); 1474 1475 const recentPostItem = document.createElement('li'); 1476 recentPostItem.className = 'recent-post-item'; 1477 1478 recentPostItem.innerHTML = ` 1479 <img src="${featuredImageUrl}" alt="${post.title.rendered}" class="recent-post-image"> 1480 <div class="recent-post-content"> 1481 <h4 class="recent-post-title"> 1482 <a href="https://gsmgrowthagency.com/?p=${post.id}" class="recent-post-link">${post.title.rendered}</a> 1483 </h4> 1484 <div class="recent-post-date">${formattedDate}</div> 1485 </div> 1486 `; 1487 1488 recentPostsList.appendChild(recentPostItem); 1489 }); 1490 } 1491 1492 // Fetch Tags 1493 async function fetchTags() { 1494 try { 1495 const response = await fetch(`${wpConfig.siteUrl}/wp/v2/tags?per_page=30`); 1496 1497 if (!response.ok) { 1498 throw new Error(`Failed to fetch tags: ${response.status} ${response.statusText}`); 1499 } 1500 1501 const tags = await response.json(); 1502 displayTags(tags); 1503 1504 } catch (error) { 1505 console.error('Error fetching tags:', error); 1506 } 1507 } 1508 1509 // Display Tags 1510 function displayTags(tags) { 1511 tagsCloud.innerHTML = ''; 1512
1513 tags.forEach(tag => { 1514 if (tag.count > 0) { // Only show tags with posts 1515 const tagLink = document.createElement('a'); 1516 tagLink.href = '#'; 1517 tagLink.className = 'tag-link'; 1518 tagLink.textContent = `${tag.name} (${tag.count})`; 1519 1520 tagLink.addEventListener('click', (e) => { 1521 e.preventDefault(); 1522 1523 // Set search query to tag name and fetch posts 1524 searchInput.value = tag.name; 1525 wpConfig.searchQuery = tag.name; 1526 wpConfig.currentPage = 1; 1527 fetchPosts(); 1528 1529 // Scroll to top of blog section 1530 document.querySelector('.blog-section').scrollIntoView({ behavior: 'smooth' }); 1531 }); 1532 1533 tagsCloud.appendChild(tagLink); 1534 } 1535 }); 1536 } 1537 1538 // Setup Search Form 1539 function setupSearchForm() { 1540 searchForm.addEventListener('submit', (e) => { 1541 e.preventDefault(); 1542 1543 const query = searchInput.value.trim(); 1544 1545 if (query) { 1546 wpConfig.searchQuery = query; 1547 wpConfig.currentPage = 1; 1548 fetchPosts(); 1549 1550 // Reset category filter 1551 wpConfig.currentCategory = 'all'; 1552 1553 // Update category links 1554 const categoryLinks = document.querySelectorAll('.category-link'); 1555 categoryLinks.forEach(link => link.classList.remove('active')); 1556 categoryLinks[0].classList.add('active'); 1557 } 1558 }); 1559 } 1560 1561 // Show Single Post 1562 async function showSinglePost(postId) { 1563 showLoading(); 1564 hideError(); 1565 1566 try { 1567 const response = await fetch(`${wpConfig.siteUrl}/wp/v2/posts/${postId}?_embed`); 1568 1569 if (!response.ok) { 1570 throw new Error(`Failed to fetch post: ${response.status} ${response.statusText}`); 1571 } 1572 1573 const post = await response.json(); 1574 displaySinglePost(post); 1575 1576 // Hide blog posts container and show single post container 1577 blogPostsContainer.style.display = 'none'; 1578 singlePostContainer.style.display = 'block'; 1579 1580 // Scroll to top 1581 window.scrollTo({ top: 0, behavior: 'smooth' }); 1582 1583 } catch (error) { 1584 showError('Post not found', 'The post you are looking for might have been removed or is temporarily unavailable.'); 1585 console.error('Error fetching single post:', error); 1586 1587 // Show blog posts container and hide single post container 1588 blogPostsContainer.style.display = 'block'; 1589 singlePostContainer.style.display = 'none'; 1590 1591 // Reset URL 1592 window.history.pushState({}, '', 'https://gsmgrowthagency.com/blog/'); 1593 1594 } finally { 1595 hideLoading(); 1596 } 1597 } 1598 1599 // Display Single Post 1600 function displaySinglePost(post) { 1601 // Get featured image if available 1602 let featuredImageUrl = ''; 1603 if (post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0]) { 1604 featuredImageUrl = post._embedded['wp:featuredmedia'][0].source_url; 1605 } 1606 1607 // Get author info 1608 let authorName = 'Admin'; 1609 let authorAvatar = 'https://secure.gravatar.com/avatar/a2d222f291f332a83cd523e9aefbf4cae3ad677a56e46e49ab765b631647705e?s=48&d=mm&r=g'; 1610 if (post._embedded && post._embedded.author && post._embedded.author[0]) { 1611 authorName = post._embedded.author[0].name; 1612 if (post._embedded.author[0].avatar_urls) { 1613 authorAvatar = post._embedded.author[0].avatar_urls['48'] || authorAvatar; 1614 } 1615 } 1616 1617 // Format date 1618 const postDate = new Date(post.date); 1619 const formattedDate = postDate.toLocaleDateString('en-US', { 1620 year: 'numeric', 1621 month: 'long', 1622 day: 'numeric' 1623 }); 1624 1625 // Get categories 1626 let categories = []; 1627 if (post._embedded && post._embedded['wp:term'] && post._embedded['wp:term'][0]) { 1628 categories = post._embedded['wp:term'][0].map(cat => ({ 1629 id: cat.id, 1630 name: cat.name 1631 })); 1632 } 1633 1634 // Get tags 1635 let tags = []; 1636 if (post._embedded && post._embedded['wp:term'] && post._embedded['wp:term'][1]) { 1637 tags = post._embedded['wp:term'][1].map(tag => ({ 1638 id: tag.id, 1639 name: tag.name 1640 })); 1641 } 1642 1643 // Build HTML 1644 singlePostContent.innerHTML = ` 1645 <div class="single-post-header"> 1646 <h1 class="single-post-title">${post.title.rendered}</h1> 1647 <div class="single-post-meta"> 1648 <div class="single-post-author"> 1649 <img src="${authorAvatar}" alt="${authorName}" class="author-avatar">
1650 <span>${authorName}</span> 1651 </div> 1652 <div class="single-post-date">${formattedDate}</div> 1653 <div class="single-post-categories"> 1654 ${categories.map(cat => `<span class="blog-category">${cat.name}</span>`).join('')} 1655 </div> 1656 </div> 1657 </div> 1658 1659 ${featuredImageUrl ? `<img src="${featuredImageUrl}" alt="${post.title.rendered}" class="single-post-featured-image">` : ''} 1660 1661 <div class="single-post-content"> 1662 ${post.content.rendered} 1663 </div> 1664 1665 ${tags.length > 0 ? ` 1666 <div class="single-post-tags"> 1667 ${tags.map(tag => `<a href="#" class="tag-link">${tag.name}</a>`).join('')} 1668 </div> 1669 ` : ''} 1670 `; 1671 1672 // Add click event to tags 1673 const tagLinks = singlePostContent.querySelectorAll('.tag-link'); 1674 tagLinks.forEach(link => { 1675 link.addEventListener('click', (e) => { 1676 e.preventDefault(); 1677 1678 // Set search query to tag name and fetch posts 1679 searchInput.value = link.textContent; 1680 wpConfig.searchQuery = link.textContent; 1681 wpConfig.currentPage = 1; 1682 1683 // Show blog posts container and hide single post container 1684 blogPostsContainer.style.display = 'block'; 1685 singlePostContainer.style.display = 'none'; 1686 1687 // Reset URL 1688 window.history.pushState({}, '', 'https://gsmgrowthagency.com/blog/'); 1689 1690 // Fetch posts 1691 fetchPosts(); 1692 1693 // Scroll to top of blog section 1694 document.querySelector('.blog-section').scrollIntoView({ behavior: 'smooth' }); 1695 }); 1696 }); 1697 1698 // Update page title 1699 document.title = `${post.title.rendered} | GSM growth agency`; 1700 } 1701 1702 // Setup Back Button 1703 function setupBackButton() { 1704 backToBlogButton.addEventListener('click', (e) => { 1705 e.preventDefault(); 1706 1707 // Show blog posts container and hide single post container 1708 blogPostsContainer.style.display = 'block'; 1709 singlePostContainer.style.display = 'none'; 1710 1711 // Reset URL 1712 window.history.pushState({}, '', 'https://gsmgrowthagency.com/blog/'); 1713 1714 // Reset page title 1715 document.title = 'blog | GSM growth agency'; 1716 1717 // Scroll to top of blog section 1718 document.querySelector('.blog-section').scrollIntoView({ behavior: 'smooth' }); 1719 }); 1720 } 1721 1722 // Show Loading 1723 function showLoading() { 1724 loadingContainer.style.display = 'flex'; 1725 } 1726 1727 // Hide Loading 1728 function hideLoading() { 1729 loadingContainer.style.display = 'none'; 1730 } 1731 1732 // Show Error 1733 function showError(title, message) { 1734 errorContainer.innerHTML = ` 1735 <div class="error-message"> 1736 <h3>${title}</h3> 1737 <p>${message}</p> 1738 </div> 1739 `; 1740 errorContainer.style.display = 'block'; 1741 } 1742 1743 // Hide Error 1744 function hideError() { 1745 errorContainer.innerHTML = ''; 1746 errorContainer.style.display = 'none'; 1747 } 1748 1749 // Handle Browser Back Button 1750 window.addEventListener('popstate', () => { 1751 // Re-initialize the blog based on the current URL 1752 initBlog(); 1753 }); 1754 1755 // Debug function to check REST API availability 1756 function checkRestApiAvailability() { 1757 fetch('https://gsmgrowthagency.com/wp-json') 1758 .then(response => { 1759 if (!response.ok) { 1760 throw new Error(`REST API not available: ${response.status} ${response.statusText}`); 1761 } 1762 return response.json(); 1763 }) 1764 .then(data => { 1765 console.log('WordPress REST API is available:', data); 1766 }) 1767 .catch(error => { 1768 console.error('WordPress REST API check failed:', error); 1769 showError('API Error', 'The WordPress REST API might be disabled or not properly configured.'); 1770 }); 1771 } 1772 1773 // Call the debug function on page load 1774 checkRestApiAvailability(); 1775}); 1776</script>
1776</div><!-- #content --><footer class="modern-footer"><div class="footer-main"><div class="footer-container"><!-- Company Info Section --><div class="footer-column company-info"><div class="footer-logo"><h3>GSM Growth Agency</h3></div><p class="company-description">Transforming eCommerce businesses through data-driven growth strategies, 1777 comprehensive digital marketing solutions, and cutting-edge optimization techniques. 1778 </p><div class="social-media"><a href="https://www.facebook.com/GSM.growth.agency" class="social-link" aria-label="Facebook"><i class="fab fa-facebook-f"></i></a><a href="https://twitter.com/ecombyanatoliy" class="social-link" aria-label="Twitter"><i class="fab fa-twitter"></i></a><a href="https://www.linkedin.com/in/anatoliylabinskiy" class="social-link" aria-label="LinkedIn"><i class="fab fa-linkedin-in"></i></a><a href="https://www.instagram.com/ecombyanatoliy/" class="social-link" aria-label="Instagram"><i class="fab fa-instagram"></i></a><a href="https://www.youtube.com/channel/UCi5woAFT8UMV8Gu2_i7s1FA" class="social-link" aria-label="YouTube"><i class="fab fa-youtube"></i></a></div></div><!-- Services Section --><div class="footer-column services-column"><h4 class="footer-title">Our Services</h4><ul class="footer-menu"><li><a href="https://gsmgrowthagency.com/seo/">SEO Optimization</a></li><li><a href="https://gsmgrowthagency.com/">PPC Management</a></li><li><a href="https://gsmgrowthagency.com/">Social Media Marketing</a></li><li><a href="https://gsmgrowthagency.com/">Conversion Rate Optimization</a></li><li><a href="https://gsmgrowthagency.com/">Content Creation</a></li><li><a href="https://gsmgrowthagency.com/">Influencer Marketing</a></li></ul></div><!-- Quick Links Section --><div class="footer-column links-column"><h4 class="footer-title">Quick Links</h4><ul class="footer-menu"><li><a href="https://gsmgrowthagency.com/">Home</a></li><li><a href="https://gsmgrowthagency.com/tech-we-use/">Tech We Use</a></li><li><a href="https://gsmgrowthagency.com/blog/">Blog</a></li><li><a href="https://gsmgrowthagency.com/community/">Community</a></li><li><a href="https://gsmgrowthagency.com/careers/">Careers</a></li></ul></div><!-- Contact & CTA Section --><div class="footer-column contact-column"><h4 class="footer-title">Get In Touch</h4><div class="contact-info"><div class="contact-item"><i class="fas fa-phone"></i><span>+1 (959) 456-9871</span></div><div class="contact-item"><i class="fas fa-envelope"></i><span>[email protected]</span></div></div><div class="footer-cta"><a href="https://crm.iultelesalesmastery.com/widget/booking/5f0Itx0dw6ORtUktylgX" class="cta-button"><i class="fas fa-calendar-alt"></i> 1779 Schedule Free Consultation 1780 </a></div></div></div></div><!-- Footer Bottom --><div class="footer-bottom"><div class="footer-container"><div class="footer-bottom-content"><div class="copyright"><p>© 2026 GSM Growth Agency. All rights reserved.</p></div><div class="footer-links"><a href="https://gsmgrowthagency.com/privacy-policy/">Privacy Policy</a><a href="https://gsmgrowthagency.com/terms-of-service/">Terms of Service</a></div></div></div></div></footer><!-- .modern-footer --></div><!-- #page -->
1780<script type="speculationrules"> 1781{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/gsmnew-201/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 1782</script>
1782<script id="wp-hooks-js" src="https://gsmgrowthagency.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
1782<script id="wp-i18n-js" src="https://gsmgrowthagency.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
1782<script id="wp-i18n-js-after"> 1783wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 1784//# sourceURL=wp-i18n-js-after 1785</script>
1785<script id="swv-js" src="https://gsmgrowthagency.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7"></script>
1785<script id="contact-form-7-js-before"> 1786var wpcf7 = { 1787 "api": { 1788 "root": "https:\/\/gsmgrowthagency.com\/wp-json\/", 1789 "namespace": "contact-form-7\/v1" 1790 } 1791}; 1792//# sourceURL=contact-form-7-js-before 1793</script>
1793<script id="contact-form-7-js" src="https://gsmgrowthagency.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7"></script>
1793<script id="metasync-tracker-js-extra"> 1794var saOttoData = {"otto_uuid":"80a4caed-e2de-4724-af3f-a9c337c938c9","page_url":"https://gsmgrowthagency.com/blog/?is_otto_page_fetch=1","context":null}; 1795//# sourceURL=metasync-tracker-js-extra 1796</script>
1796<script id="metasync-tracker-js" src="https://gsmgrowthagency.com/wp-content/plugins/metasync/public/js/otto-tracker.min.js?ver=2.3.4"></script>
1796<script id="badmarketing-navigation-js" src="https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/js/navigation.js?ver=1.0.0.1791090096"></script>
1796<script id="badmarketing-custom-js" src="https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/js/custom.js?ver=1.0.0.1791090096"></script>
1796<script id="badmarketing-mobile-menu-js" src="https://gsmgrowthagency.com/wp-content/themes/gsmnew-201/js/mobile-menu.js?ver=1.0.0"></script>
1796<script id="googlesitekit-events-provider-contact-form-7-js" src="https://gsmgrowthagency.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-contact-form-7-fac2a8013ba5ba355cd0.js" defer></script>
1796<script id="googlesitekit-events-provider-content-events-js-before"> 1797window._googlesitekit = window._googlesitekit || {}; 1798window._googlesitekit.contentEvents = {"postID":15356,"isSinglePost":false,"hasVimeoEmbed":false}; 1799//# sourceURL=googlesitekit-events-provider-content-events-js-before 1800</script>
1800<script id="googlesitekit-events-provider-content-events-js" src="https://gsmgrowthagency.com/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-c7172f3fd0e4d5ad62ef.js" defer></script>
1800<script id="wp-emoji-settings" type="application/json"> 1801{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://gsmgrowthagency.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 1802</script>
1802<script type="module"> 1803/*! This file is auto-generated */ 1804var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 1805//# sourceURL=https://gsmgrowthagency.com/wp-includes/js/wp-emoji-loader.min.js 1806</script>
1806<script> 1807// Mobile menu functionality 1808document.addEventListener('DOMContentLoaded', function() { 1809 const menuToggle = document.getElementById('mobile-menu-toggle'); 1810 const mobileMenu = document.getElementById('mobile-menu'); 1811 1812 if (menuToggle && mobileMenu) { 1813 menuToggle.onclick = function(e) { 1814 e.preventDefault(); 1815 mobileMenu.classList.toggle('active'); 1816 menuToggle.classList.toggle('active'); 1817 document.body.classList.toggle('menu-open'); 1818 }; 1819 } 1820}); 1821</script>
1821<style> 1822/* Modern Footer Styles */ 1823.modern-footer { 1824 background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%); 1825 color: #ffffff; 1826 font-family: 'Playfair Display', serif; 1827 margin-top: auto; 1828} 1829 1830.footer-main { 1831 padding: 80px 0 40px; 1832 position: relative; 1833} 1834 1835.footer-main::before { 1836 content: ''; 1837 position: absolute; 1838 top: 0; 1839 left: 0; 1840 right: 0; 1841 height: 1px; 1842 background: linear-gradient(90deg, transparent 0%, #8b0000 50%, transparent 100%); 1843} 1844 1845.footer-container { 1846 max-width: 1200px; 1847 margin: 0 auto; 1848 padding: 0 20px; 1849 display: grid; 1850 grid-template-columns: 2fr 1fr 1fr 1.5fr; 1851 gap: 60px; 1852 align-items: start; 1853} 1854 1855.footer-column { 1856 display: flex; 1857 flex-direction: column; 1858} 1859 1860/* Company Info Section */ 1861.company-info .footer-logo h3 { 1862 font-size: 2rem; 1863 font-weight: 700; 1864 color: #ffffff; 1865 margin: 0 0 20px 0; 1866 position: relative; 1867} 1868 1869.company-info .footer-logo h3::after { 1870 content: ''; 1871 position: absolute; 1872 bottom: -8px; 1873 left: 0; 1874 width: 60px; 1875 height: 3px; 1876 background: linear-gradient(90deg, #8b0000, #ff4444); 1877 border-radius: 2px; 1878} 1879 1880.company-description { 1881 color: #cccccc; 1882 line-height: 1.7; 1883 margin-bottom: 30px; 1884 font-size: 0.95rem; 1885} 1886 1887.social-media { 1888 display: flex; 1889 gap: 15px; 1890 flex-wrap: wrap; 1891} 1892 1893.social-link { 1894 display: flex; 1895 align-items: center; 1896 justify-content: center; 1897 width: 45px; 1898 height: 45px; 1899 background: rgba(255, 255, 255, 0.05); 1900 border: 1px solid rgba(255, 255, 255, 0.1); 1901 border-radius: 50%; 1902 color: #cccccc; 1903 text-decoration: none; 1904 transition: all 0.3s ease; 1905 backdrop-filter: blur(10px); 1906} 1907 1908.social-link:hover { 1909 background: #8b0000; 1910 border-color: #8b0000; 1911 color: #ffffff; 1912 transform: translateY(-3px); 1913 box-shadow: 0 8px 25px rgba(139, 0, 0, 0.3); 1914} 1915 1916/* Footer Titles */ 1917.footer-title { 1918 font-size: 1.3rem; 1919 font-weight: 600; 1920 color: #ffffff; 1921 margin: 0 0 25px 0; 1922 position: relative; 1923 padding-bottom: 10px; 1924} 1925 1926.footer-title::after { 1927 content: ''; 1928 position: absolute; 1929 bottom: 0; 1930 left: 0; 1931 width: 40px; 1932 height: 2px; 1933 background: #8b0000; 1934 border-radius: 1px; 1935} 1936 1937/* Footer Menus */ 1938.footer-menu { 1939 list-style: none; 1940 padding: 0; 1941 margin: 0; 1942} 1943 1944.footer-menu li { 1945 margin-bottom: 12px; 1946} 1947 1948.footer-menu a { 1949 color: #cccccc; 1950 text-decoration: none; 1951 font-size: 0.95rem; 1952 transition: all 0.3s ease; 1953 display: inline-block; 1954 position: relative; 1955 padding-left: 15px; 1956} 1957 1958.footer-menu a::before { 1959 content: 'â'; 1960 position: absolute; 1961 left: 0; 1962 opacity: 0; 1963 transition: all 0.3s ease; 1964 color: #8b0000; 1965} 1966 1967.footer-menu a:hover { 1968 color: #ffffff; 1969 padding-left: 20px; 1970} 1971 1972.footer-menu a:hover::before { 1973 opacity: 1; 1974} 1975 1976/* Contact Section */ 1977.contact-info { 1978 margin-bottom: 30px; 1979} 1980 1981.contact-item { 1982 display: flex; 1983 align-items: center; 1984 margin-bottom: 15px; 1985 color: #cccccc; 1986 font-size: 0.95rem; 1987} 1988 1989.contact-item i { 1990 width: 20px; 1991 margin-right: 15px; 1992 color: #8b0000; 1993 text-align: center; 1994} 1995 1996/* CTA Button */ 1997.footer-cta { 1998 margin-top: 20px; 1999} 2000 2001.cta-button { 2002 display: inline-flex; 2003 align-items: center; 2004 gap: 10px; 2005 background: linear-gradient(135deg, #8b0000, #a50000); 2006 color: #ffffff; 2007 padding: 15px 25px; 2008 border-radius: 8px; 2009 text-decoration: none; 2010 font-weight: 600; 2011 font-size: 0.9rem; 2012 transition: all 0.3s ease; 2013 border: 1px solid transparent; 2014 box-shadow: 0 4px 15px rgba(139, 0, 0, 0.2); 2015} 2016 2017.cta-button:hover { 2018 background-color: #a30000; 2019 color: #ffffff; 2020 transform: translateY(-3px); 2021 box-shadow: 0 10px 20px rgba(139, 0, 0, 0.3); 2022} 2023 2024/* Footer Bottom */ 2025.footer-bottom { 2026 background: rgba(0, 0, 0, 0.3); 2027 padding: 25px 0; 2028 border-top: 1px solid rgba(255, 255, 255, 0.1); 2029} 2030 2031.footer-bottom-content { 2032 display: flex; 2033 justify-content: space-between; 2034 align-items: center; 2035 flex-wrap: wrap; 2036 gap: 20px; 2037} 2038 2039.copyright p { 2040 margin: 0; 2041 color: #aaaaaa; 2042 font-size: 0.9rem; 2043} 2044 2045.footer-links { 2046 display: flex; 2047 gap: 30px; 2048} 2049 2050.footer-links a { 2051 color: #cccccc; 2052 text-decoration: none; 2053 font-size: 0.9rem; 2054 transition: color 0.3s ease; 2055} 2056 2057.footer-links a:hover { 2058 color: #ffffff; 2059} 2060 2061/* Responsive Design */ 2062@media (max-width: 1024px) { 2063 .footer-container { 2064 grid-template-columns: 1fr 1fr; 2065 gap: 40px; 2066 } 2067 2068 .company-info { 2069 grid-column: span 2; 2070 } 2071} 2072 2073@media (max-width: 768px) { 2074 .footer-main { 2075 padding: 60px 0 30px; 2076 } 2077 2078 .footer-container { 2079 grid-template-columns: 1fr; 2080 gap: 40px; 2081 padding: 0 15px; 2082 } 2083 2084 .company-info { 2085 grid-column: span 1; 2086 text-align: center; 2087 } 2088 2089 .company-info .footer-logo h3::after { 2090 left: 50%; 2091 transform: translateX(-50%); 2092 } 2093 2094 .footer-title::after { 2095 left: 50%; 2096 transform: translateX(-50%); 2097 } 2098 2099 .services-column, 2100 .links-column, 2101 .contact-column { 2102 text-align: center; 2103 } 2104 2105 .social-media { 2106 justify-content: center; 2107 } 2108 2109 .contact-item { 2110 justify-content: center; 2111 } 2112 2113 .footer-bottom-content { 2114 flex-direction: column; 2115 text-align: center; 2116 } 2117 2118 .footer-links { 2119 justify-content: center; 2120 } 2121} 2122 2123@media (max-width: 480px) { 2124 .footer-container { 2125 padding: 0 10px; 2126 } 2127 2128 .company-info .footer-logo h3 { 2129 font-size: 1.7rem; 2130 } 2131 2132 .footer-title { 2133 font-size: 1.2rem; 2134 } 2135 2136 .cta-button { 2137 padding: 12px 20px; 2138 font-size: 0.85rem; 2139 } 2140 2141 .footer-links { 2142 flex-direction: column; 2143 gap: 15px; 2144 } 2145} 2146</style></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.