/* 
   Blueiot V2 Design System
   Base: 1920px (1rem = 16px)
   Main Container: 1520px (95rem)
*/

:root {
    --v2-primary: rgba(0, 140, 255, 1);
    --v2-black: rgba(50, 50, 50, 1);
    --v2-bg-gray: rgba(245, 245, 247, 1);
    --v2-white: rgba(255, 255, 255, 1);
    --v2-shadow: 0px 2px 15px 0px rgba(34, 50, 72, 0.1);
    --v2-container-width: 95rem;
}
h1,h2,h3,h4,h5,h6 {
    font-weight: normal!important;
}
/* Base Layout */
.v2-container {
    max-width: var(--v2-container-width);
    margin: 0 auto;
    position: relative;
    width: 100%;
}

/* Flexbox Utils */
.v2-flex { display: flex; }
.v2-flex-row { display: flex; flex-direction: row; }
.v2-flex-col { display: flex; flex-direction: column; }
.v2-justify-between { justify-content: space-between; }
.v2-justify-center { justify-content: center; }
.v2-justify-end { justify-content: flex-end; }
.v2-align-center { align-items: center; }

/* Typography Tokens */
.v2-h1 { font-size: 2.75rem; font-weight: 700; line-height: 3.3125rem; color: var(--v2-black); font-family: 'Gotham-Bold', sans-serif; }
.v2-h2 { font-size: 2.75rem; line-height: 1; color: var(--v2-black); font-family: 'Gotham-Bold', sans-serif; }
.v2-h3 { font-size: 1.5rem; font-weight: 700; color: var(--v2-black); font-family: Gotham-Bold; }
.v2-text-p { font-size: 1.125rem; line-height: 1.75rem; color: var(--v2-black); font-family: Gotham-Book; }
.v2-text-p strong {
    font-family: Gotham-Bold;
    font-size: inherit;
    line-height: inherit;

}
.v2-text-small { font-size: 0.875rem; color: var(--v2-black); }
.v2-text-primary { color: var(--v2-primary); }

/* Common Components */
.v2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 20px;
    height: 2.5rem;
    padding: 0 1.5rem;
    font-size: 1.125rem;
    font-family: Gotham-Medium;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
}
.v2-btn-blue { background-color: var(--v2-primary); color: var(--v2-white); }
.v2-btn-blue:hover { color: #fff !important; }
.v2-btn-outline { border: 1px solid var(--v2-black); color: var(--v2-black); }
.v2-btn-outline:hover { background-color: var(--v2-primary); border-color: var(--v2-primary); color: var(--v2-white)!important; }
.v2-btn-outline:active { background-color: #0067BB; border-color: #0067BB; }

/* Layout Utils */
.v2-section { position: relative; width: 100%; padding: 4rem 0; background-color: transparent; }
.v2-text-center { text-align: center; }
.v2-section-subtitle {
    font-size: 1.625rem; /* 26px */
    color: #6D7B8B;
    line-height: 1.9375rem; /* 31px */
    font-family: 'Gotham-Medium', sans-serif;
}
.v2-mt-1 { margin-top: 1rem; }
.v2-mt-1-375 { margin-top: 1.375rem; }
.v2-mt-2-5 { margin-top: 2.5rem; }
.v2-mb-2-5 { margin-bottom: 2.5rem; }
.v2-text-medium { font-family: 'Gotham-Medium', sans-serif; font-weight: 500; }

/* Form Elements */
.v2-input-base {
    background-color: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(50, 50, 50, 0.2);
    border-radius: 8px;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    width: 100%;
    outline: none;
}
.v2-input-base:focus { border-color: var(--v2-primary); }
.tg-contact-container {
    box-shadow: 0px 2px 15px 0px rgba(34,50,72,0.1);
}

/* 视口宽度 ≤768px 时固定根字号 16px，与 V2 设计基准 1rem=16px 一致 */
@media (max-width: 768px) {
    html {
        font-size: 14px!important;
    }
}
