/* =============================================================================
   SMS4Sport — Main Stylesheet
   ============================================================================= */

@import url('sections/hero.css');
@import url('sections/trust-bar.css');
@import url('sections/services.css');
@import url('sections/story.css');
@import url('sections/testimonials.css');
@import url('sections/trust-logos.css');
@import url('sections/dna.css');
@import url('sections/cta.css');

/* -----------------------------------------------------------------------------
   Local Font Faces
   ----------------------------------------------------------------------------- */

@font-face {
    font-family: 'Almoni DL AAA';
    src: url('../fonts/almoni-dl-aaa-light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Almoni DL AAA';
    src: url('../fonts/almoni-dl-aaa-regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Almoni DL AAA';
    src: url('../fonts/almoni-dl-aaa-bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Almoni DL AAA';
    src: url('../fonts/almoni-dl-aaa-black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* -----------------------------------------------------------------------------
   1. Design Tokens
   ----------------------------------------------------------------------------- */

:root {
    /* --- Brand Colors --- */
    --color-white:      #ffffff;
    --color-blue-light: #add8e6;
    --color-blue-soft:  #80b4cd;
    --color-blue-dark:  #001F3F;
    --color-blue-dark-rgb: 0, 31, 63;
    --color-teal:       #3573b9;
    --color-orange:     #f36827;
    --color-orange-btn-start: #f06d42;
    --color-orange-btn-mid:   #e54829;
    --color-orange-btn-end:   #c73d22;
    --color-orange-btn-rgb:   229, 72, 41;
    --gradient-orange-button: linear-gradient(
        135deg,
        var(--color-orange-btn-start) 0%,
        var(--color-orange-btn-mid) 52%,
        var(--color-orange-btn-end) 100%
    );
    --color-gold:       #C4A257;
    --color-red:        #f65454;
    --color-green:      #3eb67b;

    /* --- Neutral Palette --- */
    --color-gray-50:    #f8f9fa;
    --color-gray-100:   #f1f3f5;
    --color-gray-200:   #e9ecef;
    --color-gray-300:   #dee2e6;
    --color-gray-400:   #ced4da;
    --color-gray-500:   #adb5bd;
    --color-gray-600:   #6c757d;
    --color-gray-700:   #495057;
    --color-gray-800:   #343a40;
    --color-gray-900:   #212529;
    --color-black:      #000000;

    /* --- Semantic Colors --- */
    --color-primary:    var(--color-blue-dark);
    --color-secondary:  var(--color-blue-light);
    --color-accent:     var(--color-teal);
    --color-success:    var(--color-green);
    --color-warning:    var(--color-orange);
    --color-danger:     var(--color-red);
    --color-text:         var(--color-gray-800);
    --color-text-muted:   var(--color-gray-600);
    --color-text-heading: var(--color-blue-dark);
    --color-bg:         var(--color-white);
    --color-bg-alt:     var(--color-gray-50);
    --color-border:     var(--color-gray-200);

    /* --- Typography ---
       Primary typeface: Almoni DL AAA (served locally via assets/fonts).
       To swap fonts in the future, update the @font-face rules above and
       adjust --font-body / --font-heading tokens below.
    -------------------------------------------------- */
    --font-body:            'Almoni DL AAA';
    --font-heading:         'Almoni DL AAA';
    --font-heading-display: 'Almoni DL AAA';

    --font-size-xs:     0.75rem;    /* 12px */
    --font-size-sm:     0.87rem;   /* 14px */
    --font-size-base:   1rem;       /* 16px */
    --font-size-md:     1.1rem;   /* 18px */
    --font-size-lg:     1.2rem;    /* 20px */
    --font-size-xl:     1.5rem;     /* 24px */
    --font-size-2xl:    1.87rem;   /* 30px */
    --font-size-3xl:    2.2rem;    /* 36px */
    --font-size-4xl:    3rem;       /* 48px */
    --font-size-5xl:    3.7rem;    /* 60px */

    /* --- Responsive heading & text scale (use these in all sections) --- */
    --text-h1:   clamp(2.5rem,  5vw,  4rem);      /* 40px → 64px */
    --text-h2:   clamp(1.7rem, 3.5vw, 3rem);     /* 28px → 48px */
    --text-h3:   clamp(1.5rem, 3vw, 2.5rem);    /* 22px → 36px */
    --text-h4:   clamp(1.12rem, 1.75vw, 1.5rem); /* 18px → 24px */
    --text-p:    clamp(1rem, 1.1vw, 1.1rem); /* 16px → 20px */
    --text-span: clamp(1.12rem, 1.4vw, 1.25rem);   /* 18px → 20px */
    --text-btn:  clamp(0.9rem,  1.1vw, 1.12rem); /* 14px → 18px */

    --font-weight-light:   300;
    --font-weight-regular: 400;
    --font-weight-medium:  500;
    --font-weight-semibold:600;
    --font-weight-bold:    700;

    --line-height-tight:  1.25;
    --line-height-snug:   1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed:1.625;

    /* --- Spacing --- */
    --space-1:   0.25rem;   /* 4px  */
    --space-2:   0.5rem;    /* 8px  */
    --space-3:   0.75rem;   /* 12px */
    --space-4:   1rem;      /* 16px */
    --space-5:   1.25rem;   /* 20px */
    --space-6:   1.5rem;    /* 24px */
    --space-8:   2rem;      /* 32px */
    --space-10:  2.5rem;    /* 40px */
    --space-12:  3rem;      /* 48px */
    --space-16:  4rem;      /* 64px */
    --space-20:  5rem;      /* 80px */
    --space-24:  6rem;      /* 96px */

    /* --- Layout --- */
    --container-max:    1200px;
    --container-wide:   1400px;
    --container-narrow:  800px;
    --container-padding: var(--space-20);

    /* --- Borders --- */
    --radius-sm:   4px;
    --radius-md:   8px;
    --radius-lg:   12px;
    --radius-xl:   20px;
    --radius-full: 9999px;

    /* --- Shadows --- */
    --shadow-sm:  0 1px 3px rgba(0, 0, 0, 0.08);
    --shadow-md:  0 4px 12px rgba(0, 0, 0, 0.10);
    --shadow-lg:  0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-xl:  0 16px 40px rgba(0, 0, 0, 0.14);

    /* --- Transitions --- */
    --transition-fast:   150ms ease;
    --transition-base:   250ms ease;
    --transition-slow:   400ms ease;

    /* --- Z-index scale --- */
    --z-below:    -1;
    --z-base:      0;
    --z-raised:   10;
    --z-dropdown: 100;
    --z-sticky:   200;
    --z-overlay:  300;
    --z-modal:    400;
    --z-toast:    500;
}

/* -----------------------------------------------------------------------------
   2. CSS Reset
   ----------------------------------------------------------------------------- */

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

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-normal);
    color: var(--color-text);
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img,
video,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--color-primary);
    text-decoration: none;
}

a:hover {
    color: var(--color-secondary);
}

ul,
ol {
    list-style: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

/* -----------------------------------------------------------------------------
   3. Layout Utilities
   ----------------------------------------------------------------------------- */

.container {
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding-inline: var(--container-padding);
}

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

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

/* -----------------------------------------------------------------------------
   4. WordPress wrapper reset
   ----------------------------------------------------------------------------- */

#page,
.site-content,
.site-main,
.front-page {
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

/* -----------------------------------------------------------------------------
   5. RTL Support
   ----------------------------------------------------------------------------- */

[dir="rtl"] body {
    direction: rtl;
    text-align: right;
}

/* =============================================================================
   Cookie Consent Notice
   ============================================================================= */

.cookie-notice {
    position: fixed;
    bottom: 20px;
    left: 20px;
    right: auto;
    max-width: 360px;
    background: #F8F9FA;
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    z-index: var(--z-toast, 500);
    font-size: 13px;
    line-height: 1.5;
    color: #4A5568;
    display: none;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.cookie-notice.is-visible {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

.cookie-notice__close {
    position: absolute;
    top: 8px;
    right: 8px;
    left: auto;
    width: 24px;
    height: 24px;
    background: transparent;
    border: none;
    color: #718096;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s, color 0.2s;
}

.cookie-notice__close:hover {
    background: #E2E8F0;
    color: #2D3748;
}

.cookie-notice__text {
    margin: 0 0 12px;
    padding-left: 8px;
}

.cookie-notice__link {
    color: #4169E1;
    text-decoration: underline;
    font-weight: 600;
}

.cookie-notice__link:hover {
    color: #001A4D;
}

.cookie-notice__btn {
    display: inline-block;
    background: #001A4D;
    color: #fff;
    border: none;
    border-radius: 999px;
    padding: 8px 20px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.2s;
}

.cookie-notice__btn:hover {
    background: #0A1F5C;
}

/* RTL support for cookie notice */
[dir="rtl"] .cookie-notice {
    left: auto;
    right: 20px;
}

[dir="rtl"] .cookie-notice__close {
    right: auto;
    left: 8px;
}

[dir="rtl"] .cookie-notice__text {
    padding-left: 0;
    padding-right: 8px;
}

/* Mobile responsiveness */
@media (max-width: 640px) {
    .cookie-notice {
        left: 16px;
        right: 16px;
        bottom: 16px;
        max-width: none;
        width: auto;
    }

    [dir="rtl"] .cookie-notice {
        left: 16px;
        right: 16px;
    }
}

/* =============================================================================
   Brand Wordmark
   ============================================================================= */

.brand-wordmark {
    display: inline-block;
    height: 2.2em;
    width: auto;
    vertical-align: middle;
    color: var(--color-blue-dark);
    overflow: visible;
}

@media (max-width: 1024px) and (min-width: 769px) {
    .container {
        padding-inline: 20px;
    }
}
