*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

* {
  -webkit-tap-highlight-color: transparent;
  outline: none;
}


:root {
    /* ─── Backgrounds ─────────────────────────────────── */
    --bg-dark:              #0a0a0b;
    --bg-darker:            #050505;
    --bg-light:             #f5f5f7;
    --bg-card:              #141415;

    /* ─── Text ────────────────────────────────────────── */
    --text-white:           #ffffff;
    --text-muted:           rgba(255, 255, 255, 0.72);
    --text-subtle:          rgba(255, 255, 255, 0.55);
    --text-dark:            #1a1a1a;

    /* ─── Borders ─────────────────────────────────────── */
    --border-light:         rgba(255, 255, 255, 0.25);
    --border-subtle:        rgba(255, 255, 255, 0.12);
    --border-dark:          rgba(255, 255, 255, 0.08);

    /* ─── Accents ─────────────────────────────────────── */
    --accent-red:           #c41e3a;
    --accent-gold:          #c9a962;
    --accent-silver:        #a8a8a8;

    /* ─── Premium Effects ─────────────────────────────── */
    --glow-white:           0 0 40px rgba(255, 255, 255, 0.15);
    --glow-subtle:          0 0 60px rgba(255, 255, 255, 0.08);
    --shadow-elevated:      0 25px 50px -12px rgba(0, 0, 0, 0.5);

    /* ─── RGB Tokens ──────────────────────────────────── */
    --bg-dark-rgb:          10, 10, 11;
    --text-white-rgb:       255, 255, 255;

    /* ─── Transitions ─────────────────────────────────── */
    --transition-fast:      0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-smooth:    0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-slow:      0.6s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-spring:    0.5s cubic-bezier(0.34, 1.56, 0.64, 1);

    /* ─── Spacing ─────────────────────────────────────── */
    --space-xs:             0.5rem;
    --space-sm:             1rem;
    --space-md:             1.5rem;
    --space-lg:             2.5rem;
    --space-xl:             4rem;
    --space-2xl:            6rem;
    --space-3xl:            8rem;

    /* ─── Contact Section (Light Theme) ──────────────── */
    --contact-section-bg:          #0d0d0f;
    --contact-form-title:          #ffffff;
    --contact-form-label:          rgba(255,255,255,0.58);
    --contact-form-note:           rgba(255,255,255,0.45);
    --contact-input-bg:            #141415;
    --contact-input-border:        rgba(255,255,255,0.1);
    --contact-input-border-hover:  rgba(255,255,255,0.2);
    --contact-input-border-focus:  rgba(255,255,255,0.45);
    --contact-input-color:         #ffffff;
    --contact-input-placeholder:   rgba(255,255,255,0.40);
    --contact-card-bg:             #141415;
    --contact-card-border:         rgba(255,255,255,0.08);
    --contact-card-border-hover:   rgba(255,255,255,0.16);
    --contact-icon-bg:             #1a1a1b;
    --contact-icon-border:         rgba(255,255,255,0.1);
    --contact-icon-color:          rgba(255,255,255,0.5);
    --contact-info-label:          rgba(255,255,255,0.50);
    --contact-info-value:          #ffffff;
    --contact-info-note:           rgba(255,255,255,0.35);
    --contact-hours-day:           rgba(255,255,255,0.5);
    --contact-hours-time:          #ffffff;
    --contact-hours-closed:        rgba(255,255,255,0.28);
    --contact-call-card-bg:        #141415;

    /* ─── cd-* Aliases ────────────────────────────────── */
    --cd-bg:                #0a0a0b;
    --cd-bg-deep:           #050505;
    --cd-card:              #141415;
    --cd-white:             #ffffff;
    --cd-muted:             rgba(255, 255, 255, 0.62);
    --cd-subtle:            rgba(255, 255, 255, 0.38);
    --cd-border:            rgba(255, 255, 255, 0.08);
    --cd-border-md:         rgba(255, 255, 255, 0.12);
    --cd-border-hi:         rgba(255, 255, 255, 0.22);
    --cd-red:               #c41e3a;
    --cd-ease:              cubic-bezier(0.4, 0, 0.2, 1);
    --cd-spring:            cubic-bezier(0.34, 1.56, 0.64, 1);
    --cd-sticky-nav-bg:     rgba(10, 10, 11, 0.85);
    --cd-hero-shadow:       drop-shadow(0 40px 60px rgba(0, 0, 0, 0.7));
    --cd-feature-hover:     #1a1a1b;
}
/* ============================================
   LIGHT MODE
   ============================================ */

html[data-theme="light"] {
    --bg-dark: #f5f5f7;
    --bg-darker: #ebebed;
    --bg-card: #ffffff;
    --text-white: #0a0a0b;
    --text-muted: rgba(10, 10, 11, 0.65);
    --text-subtle: rgba(10, 10, 11, 0.45);
    --text-dark: #f5f5f7;
    --border-light: rgba(10, 10, 11, 0.2);
    --border-subtle: rgba(10, 10, 11, 0.1);
    --border-dark: rgba(10, 10, 11, 0.06);
    --glow-white: 0 0 40px rgba(10, 10, 11, 0.05);
    --glow-subtle: 0 0 60px rgba(10, 10, 11, 0.04);
    --shadow-elevated: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
    --bg-dark-rgb: 245, 245, 247;
    --text-white-rgb: 10, 10, 11;
}

html[data-theme-transitioning] *,
html[data-theme-transitioning] *::before,
html[data-theme-transitioning] *::after {
    transition:
        background-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        border-color 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        box-shadow 0.35s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Inter', system-ui, sans-serif;
    background: var(--bg-dark);
    color: var(--text-white);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Sora', system-ui, sans-serif;
    letter-spacing: -0.02em;
    line-height: 0.95;
}

img {
    display: block;
    max-width: 100%;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font-family: inherit;
}

a {
    text-decoration: none;
    color: inherit;
}

::selection {
    background: rgba(196, 30, 58, 0.3);
    color: white;
}

/*Scroll Progress Bar*/
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--accent-red), var(--accent-gold));
    z-index: 100;
    transform-origin: left;
    transform: scaleX(0);
    transition: transform 0.1s linear;
}

/*Reduced Motion*/
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    html {
        scroll-behavior: auto;
    }
}
