/*
Theme Name: TechSavvy Custom Theme
Theme URI: https://tsconsulting.com.au
Author: Team TechSavvy
Author URI: https://tsconsulting.com.au
Description: Minimal custom theme fully compatible with Elementor and plugins. Responsive using Inter, Flexbox, and fluid containers.
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: techsavvy
*/

/* 1. VARIABLE DEFINITIONS (The Source of Truth) */
:root {
    /* Font Family */
    --font-main: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

    /* Desktop Typography (Default) */
    --h1-size: 4rem;      /* 64px */
    --h2-size: 3rem;      /* 48px */
    --h3-size: 2rem;      /* 32px */
    --body-size: 1.25rem; /* 20px */
    --nav-size: 1rem;     /* 16px */
    --footer-size: 0.875rem; /* 14px */

    /* Line Heights */
    --lh-heading: 1.2;
    --lh-body: 1.6;

    /* Responsive Spacing & Containers */
    --container-max: 1280px;
    --content-readable: 750px;
    --gutter: clamp(20px, 5vw, 80px);
    --section-padding: clamp(60px, 10vh, 160px);
}

/* 2. RESPONSIVE SCALE ADJUSTMENTS */
@media (max-width: 1220px) {
    :root {
        --h1-size: 3rem;      /* 48px */
        --h2-size: 2.25rem;   /* 36px */
        --h3-size: 1.75rem;   /* 28px */
        --body-size: 1.125rem; /* 18px */
    }
}

@media (max-width: 768px) {
    :root {
        --h1-size: 2.25rem;   /* 36px */
        --h2-size: 1.75rem;   /* 28px */
        --h3-size: 1.375rem;  /* 22px */
        --body-size: 1rem;    /* 16px */
    }
}

/* 3. CORE RESET & BASE STYLES */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: var(--font-main);
    font-size: var(--body-size);
    line-height: var(--lh-body);
    color: #111827;
    background-color: #ffffff;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
    line-height: var(--lh-heading);
    margin-bottom: 1rem;
}

h1 { font-size: var(--h1-size); font-weight: 800; letter-spacing: -0.022em; }
h2 { font-size: var(--h2-size); font-weight: 700; letter-spacing: -0.019em; }
h3 { font-size: var(--h3-size); font-weight: 600; }

/* 4. LAYOUT & CONTAINERS */

/* Outer Section (Full width background) */
.section-outer {
    width: 100%;
    padding-top: var(--section-padding);
    padding-bottom: var(--section-padding);
    display: flex;
    justify-content: center; /* Horizontal Center */
    align-items: center;     /* Vertical Center */
}

/* Inner Container (Max-width content well) */
.container-inner {
    width: 100%;
    max-width: var(--container-max);
    padding-left: var(--gutter);
    padding-right: var(--gutter);
}

/* Readable Text Container (Restrict width for paragraphs) */
.text-content {
    max-width: var(--content-readable);
    margin-left: auto;
    margin-right: auto;
}

/* 5. FLEXBOX UTILITIES */

/* Stack items vertically and center everything */
.flex-center-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1.5rem;
}

/* Row on Desktop, Column on Mobile */
.flex-responsive-row {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

@media (min-width: 1024px) {
    .flex-responsive-row {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
    
    .flex-item-half {
        flex: 1;
    }
}

/* 6. HEADER & FOOTER */
.site-header {
    height: 80px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid #e5e7eb;
}

.nav-link {
    font-size: var(--nav-size);
    font-weight: 500;
    text-decoration: none;
    color: inherit;
}

.site-footer {
    padding: 4rem 0;
    background-color: #f9fafb;
    font-size: var(--footer-size);
}

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-weight: 500;
}