/**
 * Headcore Digital WP Theme - Main Stylesheet
 *
 * Imports all CSS modules in correct order.
 * @package Headcore
 */

/* =========================================
   Base Layer
   ========================================= */
@import 'base/_variables.css';
@import 'base/_reset.css';
@import 'base/_typography.css';
@import 'base/_accessibility.css';

/* =========================================
   Components Layer
   ========================================= */
@import 'components/_header.css';
@import 'components/_footer.css';
@import 'components/_buttons.css';
@import 'components/_forms.css';
@import 'components/_cards.css';
@import 'components/_portfolio.css';

/* =========================================
   Sections Layer
   ========================================= */
@import 'sections/_hero.css';
@import 'sections/_services.css';
@import 'sections/_testimonials.css';
@import 'sections/_contact.css';

/* =========================================
   Effects Layer
   ========================================= */
@import 'effects/_animations.css';
@import 'effects/_parallax.css';
@import 'effects/_hover.css';

/* =========================================
   Layout Utilities
   ========================================= */

/* Container */
.container {
    width: 100%;
    max-width: var(--container-xl);
    margin-inline: auto;
    padding-inline: var(--gutter);
}

.container-sm {
    max-width: var(--container-sm);
}

.container-md {
    max-width: var(--container-md);
}

.container-lg {
    max-width: var(--container-lg);
}

.container-xl {
    max-width: var(--container-xl);
}

.container-2xl {
    max-width: var(--container-2xl);
}

.container-full {
    max-width: 100%;
}

/* Section padding */
.section {
    padding-block: var(--space-16);
}

.section-sm {
    padding-block: var(--space-8);
}

.section-lg {
    padding-block: var(--space-24);
}

/* =========================================
   Flexbox Utilities
   ========================================= */
.flex {
    display: flex;
}

.inline-flex {
    display: inline-flex;
}

.flex-row {
    flex-direction: row;
}

.flex-col {
    flex-direction: column;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.items-start {
    align-items: flex-start;
}

.items-center {
    align-items: center;
}

.items-end {
    align-items: flex-end;
}

.items-stretch {
    align-items: stretch;
}

.justify-start {
    justify-content: flex-start;
}

.justify-center {
    justify-content: center;
}

.justify-end {
    justify-content: flex-end;
}

.justify-between {
    justify-content: space-between;
}

.justify-around {
    justify-content: space-around;
}

.justify-evenly {
    justify-content: space-evenly;
}

.flex-1 {
    flex: 1 1 0%;
}

.flex-auto {
    flex: 1 1 auto;
}

.flex-none {
    flex: none;
}

.gap-1 {
    gap: var(--space-1);
}

.gap-2 {
    gap: var(--space-2);
}

.gap-3 {
    gap: var(--space-3);
}

.gap-4 {
    gap: var(--space-4);
}

.gap-6 {
    gap: var(--space-6);
}

.gap-8 {
    gap: var(--space-8);
}

.gap-10 {
    gap: var(--space-10);
}

.gap-12 {
    gap: var(--space-12);
}

/* =========================================
   Grid Utilities
   ========================================= */
.grid {
    display: grid;
}

.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Responsive grid */
.grid-auto-fit {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
}

.grid-auto-fill {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}

/* =========================================
   Spacing Utilities
   ========================================= */

/* Margin */
.m-auto {
    margin: auto;
}

.mx-auto {
    margin-inline: auto;
}

.my-auto {
    margin-block: auto;
}

.mt-4 {
    margin-top: var(--space-4);
}

.mt-6 {
    margin-top: var(--space-6);
}

.mt-8 {
    margin-top: var(--space-8);
}

.mt-12 {
    margin-top: var(--space-12);
}

.mb-4 {
    margin-bottom: var(--space-4);
}

.mb-6 {
    margin-bottom: var(--space-6);
}

.mb-8 {
    margin-bottom: var(--space-8);
}

.mb-12 {
    margin-bottom: var(--space-12);
}

/* Padding */
.p-4 {
    padding: var(--space-4);
}

.p-6 {
    padding: var(--space-6);
}

.p-8 {
    padding: var(--space-8);
}

.px-4 {
    padding-inline: var(--space-4);
}

.px-6 {
    padding-inline: var(--space-6);
}

.px-8 {
    padding-inline: var(--space-8);
}

.py-4 {
    padding-block: var(--space-4);
}

.py-6 {
    padding-block: var(--space-6);
}

.py-8 {
    padding-block: var(--space-8);
}

/* =========================================
   Display Utilities
   ========================================= */
.block {
    display: block;
}

.inline-block {
    display: inline-block;
}

.inline {
    display: inline;
}

.hidden {
    display: none;
}

/* Visibility */
.visible {
    visibility: visible;
}

.invisible {
    visibility: hidden;
}

/* Position */
.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.sticky {
    position: sticky;
}

/* =========================================
   Responsive Utilities
   ========================================= */
@media (min-width: 640px) {
    .sm\:flex {
        display: flex;
    }

    .sm\:hidden {
        display: none;
    }

    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .md\:flex {
        display: flex;
    }

    .md\:hidden {
        display: none;
    }

    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 1024px) {
    .lg\:flex {
        display: flex;
    }

    .lg\:hidden {
        display: none;
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1280px) {
    .xl\:flex {
        display: flex;
    }

    .xl\:hidden {
        display: none;
    }

    .xl\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* =========================================
   WordPress Specific
   ========================================= */

/* Alignments */
.alignleft {
    float: left;
    margin-right: var(--space-4);
    margin-bottom: var(--space-4);
}

.alignright {
    float: right;
    margin-left: var(--space-4);
    margin-bottom: var(--space-4);
}

.aligncenter {
    display: block;
    margin-inline: auto;
}

.alignwide {
    max-width: var(--container-xl);
    margin-inline: auto;
}

.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
}

/* WordPress gallery */
.wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-4);
}

/* Captions */
.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    font-size: var(--text-sm);
    color: var(--color-text-muted);
    margin-top: var(--space-2);
}

/* Screen reader text */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}

.screen-reader-text:focus {
    clip: auto !important;
    display: block;
    height: auto;
    left: 5px;
    top: 5px;
    width: auto;
    z-index: var(--z-max);
    background-color: var(--color-background);
    padding: var(--space-4);
}