/*
==========================================================
 Project      : ModArt Renov Framework
----------------------------------------------------------
 File         : style.css
 Description  : Global stylesheet containing the core
                framework styles, reset, variables,
                typography, utilities and shared layout.
----------------------------------------------------------
 Version      : 1.0.0
 Author       : Ayhan TACAR & Atlas
 Website      : https://modartrenov.fr
 Created      : 2026
 Last Update  : 2026-07-23
 License      : Proprietary
 Copyright    : © 2026 ModArt Renov. All Rights Reserved.
==========================================================
*/

/* ======================================================
   CSS RESET
====================================================== */

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

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

body{
    min-height:100dvh;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    overflow-wrap:break-word;
}

img,
picture,
svg,
video,
canvas{
    display:block;
    max-width:100%;
}

img{
    height:auto;
}

svg{
    flex-shrink:0;
}

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

button{
    cursor:pointer;
}

a,
button{
    -webkit-tap-highlight-color:transparent;
}

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

ul,
ol{
    list-style:none;
}

table{
    border-collapse:collapse;
    border-spacing:0;
}

/* ======================================================
   ROOT VARIABLES
====================================================== */

:root{

    /* Colors */

    --color-primary:#d4af37;
    --color-primary-hover:#b8962e;

    --color-secondary:#f59e0b;
    --color-secondary-hover:#d97706;

    --color-dark:#050505;
    --color-light:#ffffff;

    --color-text:#f0ede6;
    --color-muted:#9ca3af;

    --color-border:rgba(255,255,255,.1);
    --color-background:#0f0f0f;

    --color-success:#16a34a;
    --color-warning:#f59e0b;
    --color-danger:#dc2626;

    /* Typography */

    --font-family:
        "Inter",
        "Segoe UI",
        Arial,
        sans-serif;

    --font-size-xs:.75rem;
    --font-size-sm:.875rem;
    --font-size-base:1rem;
    --font-size-lg:1.125rem;
    --font-size-xl:1.25rem;
    --font-size-2xl:1.5rem;
    --font-size-3xl:2rem;
    --font-size-4xl:3rem;

    --font-weight-normal:400;
    --font-weight-medium:500;
    --font-weight-semibold:600;
    --font-weight-bold:700;

    --line-height:1.6;

    /* Layout */

    --container-width:1280px;

    --header-height:90px;
    
    --section-padding:100px;

    --border-radius:12px;
    --border-radius-lg:20px;

    /* Shadows */

    --shadow-sm:
        0 2px 8px rgba(0,0,0,.05);

    --shadow-md:
        0 10px 25px rgba(0,0,0,.08);

    --shadow-lg:
        0 25px 50px rgba(0,0,0,.12);

    /* Animation */

    --transition:.3s ease;

}

/* Compatibility aliases for component styles */
:root{
    --color-surface:#141414;
    --color-card:#1a1a1e;
    --color-text-light:#d4d4d4;
    --color-text-muted:#9ca3af;
    --color-bg:#0f0f0f;
    --radius-md:14px;
    --shadow:var(--shadow-md);
}

/* ======================================================
   BASE
====================================================== */

body{

    font-family:var(--font-family);
    font-size:var(--font-size-base);
    line-height:var(--line-height);

    background:var(--color-background);
    color:var(--color-text);

    overflow-x:hidden;

}

/* ======================================================
   BUTTONS
====================================================== */

.btn{

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;

    padding:16px 32px;

    border:none;
    border-radius:50px;

    font-size:15px;
    font-weight:700;
    letter-spacing:.5px;

    cursor:pointer;

    text-decoration:none;
    white-space:nowrap;

    position:relative;
    overflow:hidden;
    will-change:transform;

    transition:
        transform .35s ease,
        box-shadow .35s ease,
        background-color .35s ease,
        border-color .35s ease,
        color .35s ease;

}

.btn::before{

    content:"";

    position:absolute;
    top:0;
    left:-120%;

    width:80%;
    height:100%;

    pointer-events:none;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.35),
            transparent
        );

    transition:left .8s ease;

}

.btn:hover{

    transform:translateY(-4px);

}

.btn:hover::before{

    left:140%;

}

.btn svg{
    width:20px;
    height:20px;
    flex-shrink:0;
}

.btn-primary{

    background:var(--color-primary);
    color:#000;

    box-shadow:0 4px 20px rgba(212,175,55,.25);

}

.btn-primary:hover{

    background:var(--color-primary-hover);
    color:#000;

    box-shadow:0 8px 30px rgba(212,175,55,.35);

}

/* ======================================================
   PREMIUM SECTION TITLES
====================================================== */

.section-title{
    position:relative;
    margin-bottom:54px;
}

.section-title>span{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:8px 14px;
    border:1px solid rgba(212,175,55,.18);
    border-radius:999px;
    background:rgba(255,255,255,.02);
    color:#f0cf7a;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}

.section-title>span::after{
    content:"";
    width:34px;
    height:1px;
    background:linear-gradient(90deg,rgba(212,175,55,.95),transparent);
}

.section-title h2{
    color:#f7efdc;
    letter-spacing:-.03em;
    text-shadow:0 10px 30px rgba(0,0,0,.18);
}

.section-title p{
    color:#d6cdbd;
    max-width:62ch;
}

.btn-secondary{

    background:transparent;
    color:#fff;

    border:2px solid rgba(255,255,255,.35);

}

.btn-secondary:hover{

    border-color:var(--color-primary);
    color:var(--color-primary);

}

.btn-outline{

    background:transparent;
    color:var(--color-primary);

    border:2px solid var(--color-primary);

}

.btn-outline:hover{

    background:var(--color-primary);
    color:#000;

}

/* ======================================================
   SECTION TITLE
====================================================== */

.section-title{

    text-align:center;
    margin-bottom:60px;

}

.section-title>span{

    display:inline-block;
    margin-bottom:16px;

    color:var(--color-primary);

    font-size:13px;
    font-weight:700;
    letter-spacing:5px;
    text-transform:uppercase;

}

.section-title h2{

    margin:0 0 20px;

    color:var(--color-light);

    font-size:clamp(32px,4vw,50px);
    font-weight:800;
    line-height:1.15;

    text-wrap:balance;

}

.section-title p{

    max-width:620px;
    margin:0 auto;
    margin-bottom:0;

    color:var(--color-text-muted);

    font-size:18px;
    line-height:1.7;

}

h1,
h2,
h3,
h4,
h5,
h6{

    color:var(--color-light);
    font-weight:var(--font-weight-bold);
    line-height:1.2;

}

p{
    margin-bottom:1rem;
}

::selection{

    background:var(--color-primary);
    color:#fff;

}

/* ======================================================
   LAYOUT
====================================================== */

.container{

    width:min(
        calc(100% - 2rem),
        var(--container-width)
    );

    margin-inline:auto;

}

.section{

    padding:
        var(--section-padding)
        0;

}

/* Homepage section rhythm */
#services,
#portfolio,
#why-us,
#testimonials,
#contact{
    padding-block:clamp(72px,9vw,116px);
}

/* Defer rendering for below-the-fold sections in supporting browsers. */
#services,
#portfolio,
#why-us,
#testimonials,
#contact,
.site-footer{
    content-visibility:auto;
    contain-intrinsic-size:1px 1000px;
}

/* ======================================================
   UTILITIES
====================================================== */

.hidden{
    display:none !important;
}

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

.text-left{
    text-align:left;
}

.text-right{
    text-align:right;
}

.w-100{
    width:100%;
}

.d-flex{
    display:flex;
}

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

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

/* ======================================================
   ACCESSIBILITY
====================================================== */

.visually-hidden{

    position:absolute;

    width:1px;
    height:1px;

    padding:0;
    margin:-1px;

    overflow:hidden;

    clip:rect(0,0,0,0);
    clip-path:inset(50%);

    white-space:nowrap;

    border:0;

}

:focus-visible{

    outline:3px solid var(--color-primary);
    outline-offset:3px;

}

/* ======================================================
   SCROLLBAR
====================================================== */

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#f1f1f1;
}

::-webkit-scrollbar-thumb{
    background:var(--color-primary);
    border-radius:50px;
}

::-webkit-scrollbar-thumb:hover{
    background:var(--color-primary-hover);
}

/* ======================================================
   REDUCED MOTION
====================================================== */

@media (prefers-reduced-motion:reduce){

    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{

        animation:none !important;
        transition:none !important;

    }

}