**سلام دنیا!**

خلاصه مقاله: کلیدواژه‌ها و نکات اصلی

سلام دنیا! — تصویر 1

  • بنیاد برنامه‌نویسی: “سلام دنیا!” اولین گام و نمادی از آغاز در دنیای برنامه‌نویسی است.

  • تاریخچه غنی: از ریشه‌های C تا کاربرد در زبان‌های مدرن.

  • تأیید محیط توسعه: ابزاری ساده برای اطمینان از عملکرد صحیح سیستم.

  • فراتر از کد: نمادی از آغاز و اولین ارتباط در AI، IoT و حتی اکتشافات علمی.

  • عیب‌یابی آسان: راهنمایی برای حل مشکلات رایج در اجرای اولین برنامه.

**”سلام دنیا!” چیست و چرا اهمیت دارد؟**

سلام دنیا! — تصویر 3

“سلام دنیا!” (Hello World!) عبارتی ساده است که اغلب به عنوان اولین برنامه در شروع یادگیری هر زبان برنامه‌نویسی استفاده می‌شود. این عبارت چیزی فراتر از یک پیام ساده است؛ یک نماد، یک آیین و یک گام بنیادی در مسیر بی‌کران توسعه نرم‌افزار محسوب می‌شود. از برنامه‌نویسان تازه‌کار گرفته تا باتجربه‌ترین مهندسان نرم‌افزار، همه با این عبارت سفر خود را آغاز کرده‌اند. اما چرا دقیقاً “سلام دنیا!”؟ چه چیزی این عبارت کوچک را تا این حد مهم و حیاتی کرده است؟

در این مقاله جامع، به ریشه‌ها، اهمیت عملی و فلسفه پشت “سلام دنیا!” می‌پردازیم. از بررسی تاریخچه آن در زبان‌های برنامه‌نویسی اولیه گرفته تا کاربردهای مدرن و حتی فراتر از دنیای کدنویسی، این مفهوم را از زوایای مختلفی بررسی خواهیم کرد. هدف ما این است که نه تنها شما را با چگونگی اجرای این برنامه در زبان‌های مختلف آشنا کنیم، بلکه درک عمیق‌تری از جایگاه آن در اکوسیستم فناوری امروز به شما بدهیم.

**تاریخچه و فلسفه یک آغازگر**

ریشه‌های “سلام دنیا!” به دهه‌های ۷۰ میلادی بازمی‌گردد، زمانی که دنیای کامپیوترها تازه در حال شکل‌گیری بود. این عبارت، بدون شک، یکی از قدیمی‌ترین و شناخته‌شده‌ترین سنت‌ها در برنامه‌نویسی است.

**ریشه‌ها در زبان C**

اولین اشاره شناخته‌شده به “سلام دنیا!” در کتاب “The C Programming Language” نوشته برایان کرنیگان و دنیس ریچی، بنیان‌گذاران زبان برنامه‌نویسی C، یافت می‌شود. در این کتاب که در سال ۱۹۷۸ منتشر شد، نمونه کدی برای چاپ عبارت “hello, world” نمایش داده شد:

#include 

int main() {
    printf("hello, worldn");
    return 0;
}

قبل از آن، کرنیگان در سال ۱۹۷۴ در یادداشتی با عنوان “A Tutorial Introduction to the Language B” نیز از مثالی مشابه استفاده کرده بود. این سادگی و کارایی، باعث شد تا “سلام دنیا!” به سرعت در بین توسعه‌دهندگان و آموزش‌دهندگان محبوب شود و به یک استاندارد برای معرفی هر زبان جدیدی تبدیل گردد.

**چرا “سلام دنیا!”؟**

انتخاب عبارت “سلام دنیا!” اتفاقی نیست. دلایل متعددی برای این انتخاب هوشمندانه وجود دارد:
* **سادگی:** کوتاه، قابل فهم و بدون نیاز به دانش پیشین. این سادگی اجازه می‌دهد تا روی مکانیسم‌های اساسی چاپ متن و ساختار برنامه تمرکز کنیم.
* **امیدبخش:** “سلام دنیا!” یک حس خوش‌آمدگویی و شروع جدید را تداعی می‌کند. این پیام مثبتی است که در ابتدای یک مسیر پرچالش، به فرد انگیزه می‌دهد.
* **تست بنیادی:** هدف اصلی این برنامه، تأیید صحت عملکرد کل محیط توسعه است. اگر “سلام دنیا!” اجرا شود، یعنی کامپایلر، مفسر، ویرایشگر و سیستم عامل همه با هم کار می‌کنند.
* **قابل ترجمه:** این عبارت به راحتی به هر زبانی قابل ترجمه است و در سراسر جهان معنای یکسانی دارد.

**”سلام دنیا!” در زبان‌های برنامه‌نویسی مختلف**

همانطور که گفتیم، “سلام دنیا!” در هر زبان برنامه‌نویسی شکل خاص خود را دارد. در اینجا به چند نمونه از محبوب‌ترین زبان‌ها می‌پردازیم:

**پایتون (Python)**

پایتون به دلیل سینتکس ساده و خوانایی بالا شناخته شده است، و “سلام دنیا!” در آن به سادگی هرچه تمام‌تر نوشته می‌شود:

print("سلام دنیا!")

**جاوا (Java)**

جاوا که یک زبان شی‌گرا و قدرتمند است، برای اجرای “سلام دنیا!” نیاز به ساختار کلاس و متد اصلی دارد:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("سلام دنیا!");
    }
}

**جاوااسکریپت (JavaScript)**

در جاوااسکریپت که زبان اصلی وب است، می‌توانیم “سلام دنیا!” را در کنسول مرورگر یا محیط Node.js اجرا کنیم:

console.log("سلام دنیا!");

یا حتی در یک صفحه HTML:

<!DOCTYPE html>
<html>
<body>

<script>
alert("سلام دنیا!");
</script>

</body>
</html>

**سی‌پلاس‌پلاس (C++)**

سی‌پلاس‌پلاس که از C مشتق شده، نیز ساختار نسبتاً مشابهی دارد:

#include <iostream>

int main() {
    std::cout << "سلام دنیا!" << std::endl;
    return 0;
}

این تنوع نشان می‌دهد که هر زبان چقدر متفاوت می‌تواند باشد، اما مفهوم اصلی “سلام دنیا!” ثابت است.

**اهمیت عملی “سلام دنیا!” برای توسعه‌دهندگان**

“سلام دنیا!” فقط یک سنت نیست؛ دارای اهمیت عملی و روانشناختی زیادی برای توسعه‌دهندگان در هر سطحی است.

**آغاز مسیر یادگیری**

برای کسی که تازه وارد دنیای برنامه‌نویسی شده، اجرای موفقیت‌آمیز “سلام دنیا!” یک تجربه هیجان‌انگیز و غرورآفرین است. این اولین اثبات ملموس است که کدنویسی واقعاً کار می‌کند و فرد توانایی ساخت چیزی را دارد. این حس موفقیت، انگیزه لازم برای ادامه یادگیری را فراهم می‌کند. همانطور که در یک سفر طولانی، اولین قدم محکم و با اطمینان، بقیه مسیر را هموار می‌کند، “سلام دنیا!” نیز همین نقش را در برنامه‌نویسی ایفا می‌کند.

**اعتبارسنجی محیط توسعه**

نصب و راه‌اندازی یک محیط توسعه (IDE، کامپایلر، مفسر) گاهی می‌تواند پیچیده و چالش‌برانگیز باشد. “سلام دنیا!” به عنوان یک آزمایش ساده اما حیاتی عمل می‌کند:
* **آیا کامپایلر/مفسر به درستی نصب شده؟**
* **آیا مسیرهای سیستمی (PATH) به درستی تنظیم شده‌اند؟**
* **آیا ویرایشگر کد با ابزارهای لازم ارتباط برقرار می‌کند؟**
اگر “سلام دنیا!” با موفقیت اجرا شود، می‌توانید مطمئن باشید که زیرساخت اصلی برای کدنویسی آماده است. این یک مرحله “تست دود” (Smoke Test) برای سیستم شماست.

**آشنایی با سینتکس پایه**

حتی در ساده‌ترین شکل خود، “سلام دنیا!” مفاهیم کلیدی یک زبان را معرفی می‌کند:
* **نحوه تعریف یک تابع یا کلاس اصلی (در زبان‌های شی‌گرا).**
* **دستور چاپ خروجی (مثلاً `print` در پایتون، `System.out.println` در جاوا).**
* **نحوه پایان دادن به یک دستور (مثلاً نقطه‌ویرگول در C++ یا جاوا).**
* **نحوه استفاده از کتابخانه‌های استاندارد (مثل “ در C).**
این آموزش‌های کوچک اما ضروری، پایه‌های یادگیری عمیق‌تر را بنا می‌کنند.

**فراتر از کد: “سلام دنیا!” در دنیای واقعی**

مفهوم “سلام دنیا!” محدود به برنامه‌نویسی نیست. این یک استعاره جهانی برای اولین قدم، اولین تعامل یا اولین اثبات وجود است که در بسیاری از حوزه‌ها کاربرد دارد.

**هوش مصنوعی و رباتیک**

وقتی یک سیستم هوش مصنوعی جدید یا یک ربات ساخته می‌شود، اولین وظیفه‌ای که به آن سپرده می‌شود، اغلب معادل “سلام دنیا!” است. این می‌تواند یک پاسخ ساده از چت‌بات، یک حرکت اولیه از بازوی رباتیک، یا تشخیص ابتدایی یک شی باشد. این اولین تعامل، نشان‌دهنده بیداری و کارکرد صحیح سیستم است. این یک لحظه مهم برای مهندسین است تا ببینند “خلق” آن‌ها زنده شده است.

**اینترنت اشیا (IoT)**

در دنیای پر سرعت اینترنت اشیا، هر زمان که یک دستگاه جدید به شبکه متصل می‌شود یا یک حسگر برای اولین بار داده ارسال می‌کند، می‌توان آن را نوعی “سلام دنیا!” در نظر گرفت. این تأیید می‌کند که دستگاه با موفقیت پیکربندی شده، به شبکه متصل است و می‌تواند با بقیه جهان ارتباط برقرار کند. برای مثال، اولین داده ارسالی از یک ترموستات هوشمند به سرور مرکزی، دقیقاً همین معنا را دارد.

**تولیدات و اختراعات جدید**

در حوزه تولید و صنعت، وقتی یک محصول جدید از خط تولید خارج می‌شود و برای اولین بار کار می‌کند، یا یک اختراع جدید برای اولین بار عملکرد خود را به اثبات می‌رساند، آن لحظه “سلام دنیا!” آن محصول یا اختراع است. این یعنی ایده از ذهن به واقعیت تبدیل شده و موجودیت مستقلی پیدا کرده است. حتی می‌توان گفت اولین پرواز هواپیمای برادران رایت، یک “سلام دنیا!” در تاریخ هوانوردی بود.

**مقایسه “سلام دنیا!” در پایتون و جاوا**

برای درک بهتر تفاوت‌ها در ساختار زبان‌ها، مقایسه‌ای بین پایتون و جاوا انجام می‌دهیم. این دو زبان، نماینده دو پارادایم برنامه‌نویسی متفاوت (شی‌گرا و رویه‌ای/شی‌گرا) هستند.

ویژگی پایتون (Python)
**ساختار کلی** معمولاً بدون نیاز به کلاس یا متد `main`؛ کد مستقیماً اجرا می‌شود.
**دستور چاپ** تابع `print()`
**نیاز به کامپایل** خیر، یک زبان تفسیری است.
**خوانایی** بسیار بالا به دلیل سینتکس ساده و شباهت به زبان طبیعی.
**تعداد خطوط کد** ۱ خط.
**کاربردها** توسعه وب، علم داده، هوش مصنوعی، اتوماسیون.

ویژگی جاوا (Java)
**ساختار کلی** همیشه نیاز به یک کلاس و متد `main` به عنوان نقطه شروع برنامه دارد.
**دستور چاپ** `System.out.println()`
**نیاز به کامپایل** بله، کد منبع به بایت‌کد کامپایل می‌شود.
**خوانایی** خوانایی خوب، اما سینتکس پر جزئیات‌تر.
**تعداد خطوط کد** حداقل ۵-۶ خط.
**کاربردها** توسعه اندروید، برنامه‌های Enterprise، سیستم‌های بزرگ.

این جدول به خوبی نشان می‌دهد که حتی برای یک کار ساده مانند “سلام دنیا!”، تفاوت‌های اساسی در فلسفه طراحی و سینتکس زبان‌ها وجود دارد.

**پرسش‌های متداول (FAQ)**

**چرا باید با “سلام دنیا!” شروع کنم؟**

شروع با “سلام دنیا!” به شما امکان می‌دهد تا به سرعت مطمئن شوید که محیط توسعه شما به درستی کار می‌کند، با سینتکس پایه زبان آشنا شوید و اولین موفقیت خود را در کدنویسی تجربه کنید که به افزایش انگیزه کمک می‌کند.

**آیا “سلام دنیا!” در همه زبان‌ها یکسان است؟**

مفهوم و هدف “سلام دنیا!” در همه زبان‌ها یکسان است، اما نحوه نوشتن کد برای رسیدن به این هدف (سینتکس) از زبانی به زبان دیگر متفاوت است. هر زبان دارای دستورات خاص خود برای نمایش خروجی است.

**چه مدت طول می‌کشد تا “سلام دنیا!” را یاد بگیرم؟**

نوشتن و اجرای “سلام دنیا!” معمولاً فقط چند دقیقه طول می‌کشد، به شرطی که محیط توسعه شما از قبل آماده باشد. بخش اصلی زمان‌بر، نصب و پیکربندی اولیه ابزارهای لازم است.

**عیب‌یابی سریع: مشکلات رایج در اجرای “سلام دنیا!”**

گاهی اوقات حتی ساده‌ترین برنامه هم می‌تواند مشکلاتی ایجاد کند. در اینجا چند مشکل رایج و راه‌حل‌های آن‌ها آورده شده است:

راهنمای عیب‌یابی سریع

  1. خطای سینتکسی (Syntax Error):

    **مشکل:** برنامه اجرا نمی‌شود و پیامی مبنی بر خطای سینتکسی (مثل `SyntaxError` یا `compiler error`) دریافت می‌کنید.

    **راه‌حل:** کد را دقیقاً با نمونه‌های ارائه شده مطابقت دهید. به حروف کوچک و بزرگ، علائم نگارشی (مثل نقطه‌ویرگول، پرانتزها و گیومه‌ها) و فاصله‌گذاری‌ها دقت کنید. یک غلط تایپی کوچک می‌تواند برنامه را از کار بیندازد.

  2. محیط توسعه آماده نیست:

    **مشکل:** دستور `python`, `java`, `node` یا `gcc` در خط فرمان شناسایی نمی‌شود.

    **راه‌حل:** مطمئن شوید که کامپایلر یا مفسر زبان مورد نظر (مثل پایتون یا جاوا) به درستی نصب شده و متغیرهای محیطی سیستم (PATH) به درستی تنظیم شده‌اند. ممکن است نیاز به راه‌اندازی مجدد ترمینال یا کامپیوتر باشد.

  3. خروجی نمایش داده نمی‌شود:

    **مشکل:** برنامه بدون خطا اجرا می‌شود، اما هیچ متنی در کنسول نمی‌بینید.

    **راه‌حل:** بررسی کنید که دستور چاپ خروجی را به درستی استفاده کرده باشید (مثلاً `print()` در پایتون یا `System.out.println()` در جاوا). همچنین مطمئن شوید که برنامه شما در پنجره صحیح یا کنسول در حال اجرا است و به سرعت بسته نمی‌شود. در برخی محیط‌ها، نیاز است که یک کاراکتر برای “مکث” به انتهای برنامه اضافه شود.

  4. مشکل در ذخیره‌سازی فایل:

    **مشکل:** فایل کد را ذخیره کرده‌اید، اما برنامه قدیمی اجرا می‌شود یا خطای “فایل یافت نشد” دریافت می‌کنید.

    **راه‌حل:** مطمئن شوید که فایل را با پسوند صحیح (مثلاً `.py` برای پایتون، `.java` برای جاوا) ذخیره کرده‌اید. همچنین، اطمینان حاصل کنید که در همان دایرکتوری (پوشه) که فایل را ذخیره کرده‌اید، دستور اجرای برنامه را صادر می‌کنید.

**نتیجه‌گیری**

“سلام دنیا!” بیش از یک خط کد ساده است؛ این شروع یک سفر، تأیید یک سیستم و نمادی از امید و پیشرفت است. چه در حال یادگیری اولین زبان برنامه‌نویسی خود باشید، چه در حال راه‌اندازی یک سیستم پیچیده هوش مصنوعی یا معرفی محصولی نوآورانه، “سلام دنیا!” اولین گام شماست. این عبارت کوچک، پلی بین دنیای ایده‌ها و واقعیت ملموس ایجاد می‌کند و به ما یادآوری می‌کند که حتی بزرگترین پروژه‌ها و اکتشافات نیز با یک شروع ساده آغاز می‌شوند. پس با اعتماد به نفس تمام بگویید: “سلام دنیا!” و سفر خود را آغاز کنید.

/* Basic reset for better consistency */
body, h1, h2, h3, p, ul, ol, table, pre {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: ‘Open Sans’, ‘Helvetica Neue’, Helvetica, Arial, sans-serif;
line-height: 1.7;
color: #333;
background-color: #f0f2f5; /* Light grey background for the whole page */
padding: 20px;
}

/* Article Container Styling – to simulate a clean content area */
#article-container {
max-width: 850px;
margin: 40px auto;
padding: 40px 30px;
background-color: #ffffff;
border-radius: 12px;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
line-height: 1.8;
}

/* Headings Styling */
h1 {
font-size: 3em; /* Larger for H1 */
font-weight: 800;
color: #1a2a47;
text-align: center;
margin-bottom: 40px;
padding-bottom: 20px;
border-bottom: 4px solid #66b2b2;
letter-spacing: -0.02em;
line-height: 1.2;
}

h2 {
font-size: 2.3em; /* H2 size */
font-weight: 700;
color: #1a2a47;
margin-top: 60px;
margin-bottom: 25px;
padding-bottom: 12px;
border-bottom: 2px dashed #dcdcdc;
line-height: 1.3;
}

h3 {
font-size: 1.9em; /* H3 size */
font-weight: 600;
color: #3a4a67;
margin-top: 40px;
margin-bottom: 20px;
line-height: 1.4;
}

p {
margin-bottom: 20px;
font-size: 1.05em;
line-height: 1.8;
}

/* Link Styling */
a {
color: #007bff;
text-decoration: none;
transition: color 0.3s ease, text-decoration 0.3s ease;
}

a:hover {
color: #0056b3;
text-decoration: underline;
}

/* List Styling */
ul {
list-style-type: disc;
padding-left: 25px;
margin-bottom: 20px;
}

ol {
list-style-type: decimal;
padding-left: 25px;
margin-bottom: 20px;
}

ul li, ol li {
margin-bottom: 10px;
font-size: 1.05em;
}

/* Code Block Styling */
pre {
background-color: #272822; /* Dracula theme background */
color: #f8f8f2;
padding: 18px 22px;
border-radius: 8px;
font-family: ‘Fira Code’, ‘Consolas’, ‘Monaco’, ‘Lucida Console’, monospace;
font-size: 0.95em;
overflow-x: auto;
margin-top: 25px;
margin-bottom: 35px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

code {
font-family: ‘Fira Code’, ‘Consolas’, ‘Monaco’, ‘Lucida Console’, monospace;
font-size: 0.95em;
background-color: #f0f0f0;
padding: 2px 6px;
border-radius: 4px;
color: #c7254e;
}

/* Infographic Summary Styling */
.infographic-summary {
background-color: #e8f5f5;
border-left: 6px solid #66b2b2;
padding: 30px 35px;
margin-bottom: 40px;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
}

.infographic-summary h2 {
font-size: 1.9em;
font-weight: 700;
color: #1a2a47;
margin-top: 0;
margin-bottom: 25px;
text-align: center;
border-bottom: none;
padding-bottom: 0;
}

.infographic-summary ul {
list-style-type: none;
padding: 0;
margin: 0;
}

.infographic-summary ul li {
margin-bottom: 15px;
padding-left: 30px;
position: relative;
font-size: 1.08em;
}

.infographic-summary ul li span {
color: #66b2b2;
font-size: 1.8em;
position: absolute;
left: 0;
top: -5px;
line-height: 1;
}

/* Table of Contents Styling */
.table-of-contents {
background-color: #f7f7f7;
border: 1px solid #e0e0e0;
padding: 25px 30px;
margin-bottom: 40px;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.table-of-contents h2 {
font-size: 1.9em;
font-weight: 700;
color: #1a2a47;
margin-top: 0;
margin-bottom: 25px;
border-bottom: 2px solid #e0e0e0;
padding-bottom: 10px;
text-align: center;
}

.table-of-contents ul {
list-style-type: none; /* Remove default list style for main points */
padding: 0;
margin: 0;
}

.table-of-contents > ul > li {
margin-bottom: 12px;
font-size: 1.05em;
list-style-type: decimal; /* Use decimal for main points */
padding-left: 25px;
position: relative;
}

.table-of-contents > ul > li::marker {
color: #007bff;
font-weight: bold;
}

.table-of-contents ul ul {
list-style-type: none; /* Remove default list style for sub-points */
padding-left: 25px;
margin-top: 8px;
}

.table-of-contents ul ul li {
margin-bottom: 8px;
font-size: 1em;
list-style-type: lower-alpha; /* Use lower-alpha for sub-points */
padding-left: 20px;
position: relative;
}

.table-of-contents ul ul li::marker {
color: #007bff;
}

.table-of-contents a {
color: #007bff;
text-decoration: none;
transition: color 0.3s ease;
}

.table-of-contents a:hover {
color: #0056b3;
text-decoration: underline;
}

/* Table Styling */
table {
width: 100%;
border-collapse: separate; /* Use separate to allow border-radius */
border-spacing: 0;
text-align: left;
margin-top: 30px;
margin-bottom: 40px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
border-radius: 8px;
overflow: hidden; /* Ensures rounded corners are visible */
}

th, td {
padding: 18px 22px;
border: 1px solid #e0e0e0;
font-size: 1em;
}

thead th {
background-color: #66b2b2;
color: white;
font-weight: 700;
border-bottom: 2px solid #5a9e9e;
}

tbody tr:nth-child(even) {
background-color: #f8f8f8;
}

tbody tr:hover {
background-color: #f0faff;
transition: background-color 0.3s ease;
}

/* FAQ Section Styling */
.faq-section {
margin-top: 40px;
margin-bottom: 40px;
}

.faq-section > div {
background-color: #fcfcfc;
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 20px 25px;
margin-bottom: 20px;
box-shadow: 0 2px 10px rgba(0,0,0,0.03);
}

.faq-section h3 {
font-size: 1.35em;
font-weight: 600;
color: #1a2a47;
margin-top: 0;
margin-bottom: 12px;
border-bottom: 1px solid #eee;
padding-bottom: 8px;
}

.faq-section p {
margin-top: 0;
margin-bottom: 0;
font-size: 1.02em;
line-height: 1.7;
}

/* Troubleshooting Box Styling */
.troubleshooting-box {
background-color: #fffaf0; /* Lighter yellow/orange tint */
border: 1px solid #ffdc80; /* Soft orange border */
padding: 30px 35px;
margin-top: 30px;
margin-bottom: 40px;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.06);
}

.troubleshooting-box h3 {
font-size: 1.9em;
font-weight: 700;
color: #a07a00; /* Darker orange for heading */
margin-top: 0;
margin-bottom: 25px;
text-align: center;
border-bottom: 2px solid #ffdc80;
padding-bottom: 10px;
}

.troubleshooting-box ol {
list-style-type: decimal;
padding-left: 25px;
margin: 0;
}

.troubleshooting-box ol li {
margin-bottom: 20px;
font-size: 1.05em;
line-height: 1.7;
}

.troubleshooting-box strong {
color: #4a4a4a;
font-weight: 700;
}

/* Responsive Adjustments */
@media (max-width: 768px) {
#article-container {
margin: 20px auto;
padding: 25px 20px;
}

h1 {
font-size: 2.2em;
margin-bottom: 30px;
padding-bottom: 15px;
}

h2 {
font-size: 1.8em;
margin-top: 40px;
margin-bottom: 20px;
padding-bottom: 8px;
}

h3 {
font-size: 1.5em;
margin-top: 30px;
margin-bottom: 15px;
}

p, ul li, ol li, .infographic-summary ul li, .faq-section p {
font-size: 0.95em;
}

.infographic-summary {
padding: 20px 25px;
margin-bottom: 30px;
}

.infographic-summary h2 {
font-size: 1.6em;
}

.table-of-contents {
padding: 20px 20px;
margin-bottom: 30px;
}

.table-of-contents h2 {
font-size: 1.6em;
margin-bottom: 15px;
padding-bottom: 8px;
}

table, th, td {
display: block; /* Stack table headers and data */
width: 100%;
}

thead {
display: none; /* Hide table header on small screens */
}

tr {
margin-bottom: 15px;
border: 1px solid #e0e0e0;
border-radius: 8px;
overflow: hidden;
display: block;
}

td {
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%; /* Space for pseudo-element label */
text-align: right;
}

td:last-child {
border-bottom: none;
}

td::before {
content: attr(data-label); /* Use data-label for content */
position: absolute;
left: 0;
width: 45%;
padding-left: 10px;
font-weight: bold;
text-align: left;
color: #4a4a4a;
}

.troubleshooting-box {
padding: 20px 25px;
}

.troubleshooting-box h3 {
font-size: 1.6em;
}
}

@media (max-width: 480px) {
h1 {
font-size: 1.8em;
}
h2 {
font-size: 1.5em;
}
h3 {
font-size: 1.3em;
}
p, ul li, ol li, .infographic-summary ul li, .faq-section p, th, td {
font-size: 0.9em;
}
.infographic-summary h2, .table-of-contents h2, .troubleshooting-box h3 {
font-size: 1.4em;
}
}

<!– Note for rendering: The H1, H2, H3 elements above are styled using CSS to represent their visual weight and size. When copied to a block editor like WordPress Gutenberg, these should ideally be rendered as actual HTML

,

,

tags. The `**text**` markdown is used to ensure they are bolded and distinct. The “infographic-summary”, “table-of-contents”, and “troubleshooting-box” are styled `div` elements, designed to be visually appealing and function as intended in a block editor context, provided the CSS is also applied. The tables are standard HTML tables, and the FAQ uses Schema.org markup. –>