/**
 * Module: Base Styles
 * Purpose: CSS reset, typography, font-face declarations, and base element styles
 * Inputs: design-tokens.css (CSS Custom Properties)
 * Outputs: Normalized base styles for all templates
 * Notes: Import AFTER design-tokens.css, BEFORE components.css
 */

/* ==========================================================================
   1. FONT-FACE DECLARATIONS
   ========================================================================== */

@font-face {
font-display:swap;
    font-family: 'Montserrat';
    src: url('/wp-content/themes/vcleaning-child/assets/css/../fonts/Montserrat/Montserrat-latin-ext.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
                   U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
                   U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
font-display:swap;
    font-family: 'Montserrat';
    src: url('/wp-content/themes/vcleaning-child/assets/css/../fonts/Montserrat/Montserrat-latin.woff2') format('woff2');
    font-weight: 400 700;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
                   U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
                   U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   2. CSS RESET
   ========================================================================== */

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
    display: block;
}

ol,
ul {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* ==========================================================================
   3. BASE ELEMENT STYLES
   ========================================================================== */

/**
 * Body
 */
body {
    line-height: 1;
    font-family: var(--vc-font-family);
    color: var(--vc-color-text-primary);
    background-color: var(--vc-color-bg-primary);
}

/**
 * Links
 */
a {
    color: var(--vc-color-primary);
    text-decoration: none;
    transition: color var(--vc-transition-fast), opacity var(--vc-transition-fast);
}

a:hover {
    color: var(--vc-color-primary-hover);
}

a:focus-visible {
    outline: 2px solid var(--vc-color-primary);
    outline-offset: 2px;
}

/**
 * Images
 */
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/**
 * Buttons - Base
 */
button {
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    border: none;
    background: none;
    padding: 0;
}

button:focus-visible {
    outline: 2px solid var(--vc-color-primary);
    outline-offset: 2px;
}

/**
 * Inputs - Base
 */
input,
textarea,
select {
    font-family: inherit;
    font-size: inherit;
    color: inherit;
}

input:focus,
textarea:focus,
select:focus {
    outline: none;
}

/* ==========================================================================
   4. TYPOGRAPHY
   ========================================================================== */

/**
 * Headings
 */
h1, .vc-h1 {
    font-size: var(--vc-font-size-h1);
    font-weight: var(--vc-font-weight-bold);
    line-height: var(--vc-line-height-snug);
    color: var(--vc-color-text-primary);
}

h2, .vc-h2 {
    font-size: var(--vc-font-size-h2);
    font-weight: var(--vc-font-weight-bold);
    line-height: var(--vc-line-height-normal);
    color: var(--vc-color-text-primary);
}

h3, .vc-h3 {
    font-size: var(--vc-font-size-h3);
    font-weight: var(--vc-font-weight-bold);
    line-height: var(--vc-line-height-normal);
    color: var(--vc-color-text-primary);
}

h4, .vc-h4 {
    font-size: var(--vc-font-size-h4);
    font-weight: var(--vc-font-weight-bold);
    line-height: var(--vc-line-height-normal);
    color: var(--vc-color-text-primary);
}

h5, .vc-h5 {
    font-size: var(--vc-font-size-h5);
    font-weight: var(--vc-font-weight-semibold);
    line-height: var(--vc-line-height-normal);
    color: var(--vc-color-text-primary);
}

h6, .vc-h6 {
    font-size: var(--vc-font-size-h6);
    font-weight: var(--vc-font-weight-semibold);
    line-height: var(--vc-line-height-normal);
    color: var(--vc-color-text-primary);
}

/**
 * Body text
 */
p, .vc-text {
    font-size: var(--vc-font-size-body);
    font-weight: var(--vc-font-weight-medium);
    line-height: var(--vc-line-height-relaxed);
    color: var(--vc-color-text-muted);
}

/**
 * Small text
 */
.vc-text-sm {
    font-size: var(--vc-font-size-body-sm);
    line-height: var(--vc-line-height-relaxed);
}

.vc-text-xs {
    font-size: var(--vc-font-size-body-xs);
    line-height: var(--vc-line-height-relaxed);
}

/**
 * Accent text (primary color)
 */
.vc-text-accent {
    color: var(--vc-color-primary);
    text-decoration: none;
}

/* ==========================================================================
   5. UTILITY CLASSES
   ========================================================================== */

/**
 * Container
 */
.vc-container {
    max-width: var(--vc-container-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--vc-container-padding);
    padding-right: var(--vc-container-padding);
}

/**
 * Section spacing
 */
.vc-section {
    padding-top: var(--vc-space-25);
    padding-bottom: var(--vc-space-25);
}

.vc-section--compact {
    padding-top: var(--vc-space-16);
    padding-bottom: var(--vc-space-16);
}

/**
 * Text alignment
 */
.vc-text-center {
    text-align: center;
}

.vc-text-left {
    text-align: left;
}

.vc-text-right {
    text-align: right;
}

/**
 * Flexbox utilities
 */
.vc-flex {
    display: flex;
}

.vc-flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.vc-flex-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.vc-flex-column {
    display: flex;
    flex-direction: column;
}

/**
 * Hidden elements
 */
.vc-hidden {
    display: none !important;
}

.vc-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ==========================================================================
   6. SCROLLBAR STYLING (Optional)
   ========================================================================== */

/**
 * Hide scrollbar for Chrome, Safari and Opera
 */
.vc-no-scrollbar::-webkit-scrollbar {
    display: none;
}

/**
 * Hide scrollbar for IE, Edge and Firefox
 */
.vc-no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}
