
/* =========================================================
   RAKM ONE SARL
   STYLE.CSS
   Premium Corporate Website
========================================================= */


/* =========================================================
   GOOGLE FONT
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Montserrat:wght@300;400;500;600;700&display=swap');


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

:root{

    --navy:#0D1B2A;
    --navy-light:#13263B;
    --gold:#B68A3A;
    --gold-light:#D6B66E;

    --white:#FFFFFF;
    --soft:#F7F7F5;
    --gray:#6F7782;
    --line:#E7E3DC;

    --green:#0D4A37;

    --font-title:'Cormorant Garamond', serif;
    --font-text:'Montserrat', sans-serif;

}


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


html{
    scroll-behavior:smooth;
}


body{
    font-family:var(--font-text);
    background:var(--white);
    color:var(--navy);
    overflow-x:hidden;
}


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


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


.container{
    width:min(1180px,90%);
    margin:auto;
}


/* =========================================================
   HEADER
========================================================= */

.header{

    position:fixed;
    top:0;
    left:0;

    width:100%;
    z-index:1000;

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(12px);

    border-bottom:1px solid rgba(0,0,0,.05);

}


.nav-container{

    height:86px;

    display:flex;
    align-items:center;
    justify-content:space-between;

}


.brand-logo{

    width:170px;
    height:auto;

}


.nav{

    display:flex;
    gap:32px;

}


.nav-link{

    font-size:14px;
    font-weight:500;

    position:relative;

    transition:.3s;

}


.nav-link::after{

    content:"";

    position:absolute;

    width:0;
    height:2px;

    background:var(--gold);

    left:0;
    bottom:-8px;

    transition:.3s;

}


.nav-link:hover::after,
.nav-link.active::after{

    width:100%;

}


.nav-right{

    display:flex;
    align-items:center;
    gap:24px;

}


.languages{

    display:flex;
    align-items:center;
    gap:10px;

}


.language{

    border:none;
    background:none;

    font-family:var(--font-text);

    font-size:12px;

    cursor:pointer;

    color:#888;

}


.language.active{

    color:var(--navy);
    font-weight:600;

}


.languages span{

    width:1px;
    height:18px;

    background:#DDD;

}


.header-contact{

    background:var(--gold);

    color:white;

    padding:13px 22px;

    border-radius:40px;

    font-size:13px;
    font-weight:500;

    display:flex;
    align-items:center;
    gap:8px;

    transition:.3s;

}


.header-contact:hover{

    transform:translateY(-2px);

    background:#9E742E;

}


.menu-toggle{

    display:none;

    border:none;
    background:none;

    cursor:pointer;

}


.menu-toggle span{

    display:block;

    width:25px;
    height:2px;

    background:var(--navy);

    margin:5px;

}


/* =========================================================
   HERO
========================================================= */

.hero{

    min-height:100vh;

    position:relative;

    display:flex;
    align-items:center;

    overflow:hidden;

}


.hero-background{

    position:absolute;

    inset:0;

    background-image:url("assets/images/hero-rakm-one.jpg");

    background-size:cover;
    background-position:center;

    z-index:-2;

}


.hero-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        90deg,
        rgba(255,255,255,.96) 0%,
        rgba(255,255,255,.90) 30%,
        rgba(255,255,255,.45) 52%,
        rgba(255,255,255,.08) 75%
    );

    z-index:-1;

}


.hero-container{

    padding-top:100px;
    padding-bottom:120px;

}


.hero-content{

    max-width:620px;

}


.eyebrow{

    display:flex;
    align-items:center;

    gap:12px;

    font-size:11px;
    letter-spacing:2px;
    font-weight:600;

    color:var(--gold);

    margin-bottom:24px;

}


.eyebrow span{

    width:45px;
    height:1px;

    background:var(--gold);

}


.hero h1{

    font-family:var(--font-title);

    font-size:74px;
    line-height:1.03;

    font-weight:600;

    letter-spacing:-1px;

    margin-bottom:28px;

}


.hero h1 strong{

    color:var(--gold);

    font-weight:600;

}


.hero-description{

    font-size:17px;

    line-height:1.8;

    color:#374151;

    max-width:560px;

    margin-bottom:38px;

}


.hero-buttons{

    display:flex;
    gap:18px;

}


.btn{

    padding:16px 26px;

    border-radius:50px;

    font-size:14px;

    font-weight:500;

    display:inline-flex;
    align-items:center;
    gap:12px;

    transition:.3s;

}


.btn-primary{

    background:var(--gold);
    color:white;

}


.btn-primary:hover{

    background:#9E742E;

    transform:translateY(-3px);

}


.btn-secondary{

    border:1px solid var(--gold);
    color:var(--navy);

    background:white;

}


.btn-secondary:hover{

    background:var(--navy);
    color:white;

}


.hero-bottom{

    position:absolute;

    bottom:0;
    left:0;

    width:100%;

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(8px);

    border-top:1px solid rgba(0,0,0,.06);

}


.hero-values{

    display:grid;
    grid-template-columns:repeat(3,1fr);

    padding:26px 0;

}


.hero-value{

    display:flex;
    align-items:center;

    gap:16px;

    padding:0 30px;

    border-right:1px solid #DDD;

}


.hero-value:last-child{

    border:none;

}


.value-number{

    font-family:var(--font-title);

    font-size:34px;

    color:var(--gold);

}


.hero-value strong{

    font-size:14px;

}


.hero-value p{

    font-size:11px;

    color:#777;

    margin-top:5px;

}


/* =========================================================
   INTRO
========================================================= */

.intro{

    padding:140px 0;

    background:white;

}


.intro-grid{

    display:grid;
    grid-template-columns:280px 1fr;

    gap:90px;

}


.section-label{

    font-size:11px;

    letter-spacing:2px;

    font-weight:600;

    display:flex;
    align-items:center;

    gap:12px;

    color:var(--gold);

}


.section-label span{

    font-family:var(--font-title);

    font-size:22px;

}


.intro-small{

    font-size:12px;

    letter-spacing:3px;

    color:var(--gold);

    margin-bottom:18px;

}


.intro h2{

    font-family:var(--font-title);

    font-size:58px;

    line-height:1.08;

    margin-bottom:28px;

}


.intro h2 em{

    color:var(--gold);

    font-style:normal;

}


.intro-content p:not(.intro-small){

    font-size:16px;

    line-height:1.9;

    color:#56606C;

    max-width:700px;

    margin-bottom:18px;

}


/* =========================================================
   EXPERTISE
========================================================= */

.expertise{

    background:var(--navy);

    padding:130px 0;

    color:white;

}


.section-label.light{

    color:var(--gold-light);

}


.section-heading{

    display:flex;
    justify-content:space-between;
    align-items:end;

    margin-bottom:70px;

}


.section-heading h2{

    font-family:var(--font-title);

    font-size:56px;

    line-height:1.05;

    margin-top:18px;

}


.section-heading h2 em{

    color:var(--gold-light);

    font-style:normal;

}


.section-heading p{

    max-width:360px;

    color:#B7C0CA;

    font-size:14px;

    line-height:1.8;

}


.expertise-grid{

    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:24px;

}


.expertise-card{

    border:1px solid rgba(255,255,255,.12);

    padding:38px;

    min-height:330px;

    position:relative;

    transition:.4s;

}


.expertise-card:hover{

    background:#13263B;

    transform:translateY(-8px);

    border-color:var(--gold);

}


.card-number{

    color:var(--gold);

    font-size:11px;

}


.card-icon{

    font-size:42px;

    color:var(--gold-light);

    margin:34px 0;

}


.expertise-card h3{

    font-size:20px;

    margin-bottom:16px;

}


.expertise-card p{

    color:#C6CFD7;

    font-size:13px;

    line-height:1.8;

}


.card-arrow{

    position:absolute;

    bottom:30px;
    right:30px;

    font-size:22px;

    color:var(--gold);

}


/* =========================================================
   PROJECT
========================================================= */

.projects{

    padding:140px 0;

    background:#FAFAF8;

}


.project-heading{

    display:flex;
    justify-content:space-between;

    margin:35px 0 55px;

}


.project-overline{

    font-size:11px;

    letter-spacing:2px;

    color:var(--gold);

    margin-bottom:14px;

}


.project-heading h2{

    font-family:var(--font-title);

    font-size:58px;

    line-height:1.08;

}


.project-heading em{

    color:var(--gold);

    font-style:normal;

}


.najda-project{

    display:grid;
    grid-template-columns:1fr 1fr;

    background:white;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

}


.najda-visual{

    background:
    radial-gradient(circle at top,#14654D,#082D22);

    min-height:560px;

    display:flex;
    align-items:center;
    justify-content:center;

    position:relative;

    overflow:hidden;

}


.najda-visual::before{

    content:"";

    position:absolute;

    width:500px;
    height:500px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:50%;

}


.najda-visual img{

    width:270px;

    position:relative;

    z-index:2;

    filter:drop-shadow(0 20px 30px rgba(0,0,0,.3));

}


.najda-badge{

    position:absolute;

    top:25px;
    left:25px;

    border:1px solid rgba(255,255,255,.3);

    color:white;

    padding:9px 14px;

    font-size:10px;

    letter-spacing:1px;

}


.najda-content{

    padding:65px;

    display:flex;
    flex-direction:column;
    justify-content:center;

}


.najda-category{

    color:var(--green);

    font-size:11px;

    letter-spacing:2px;

    margin-bottom:18px;

}


.najda-content h3{

    font-family:var(--font-title);

    font-size:68px;

    color:var(--green);

    margin-bottom:8px;

}


.najda-content h4{

    font-size:22px;

    font-weight:500;

    margin-bottom:26px;

}


.najda-content p{

    font-size:14px;

    line-height:1.9;

    color:#64707C;

    margin-bottom:14px;

}


.najda-features{

    display:grid;
    grid-template-columns:repeat(4,1fr);

    margin:30px 0;

    border-top:1px solid #E7E7E7;
    border-bottom:1px solid #E7E7E7;

}


.najda-features div{

    padding:18px 10px;

    text-align:center;

    border-right:1px solid #E7E7E7;

}


.najda-features div:last-child{

    border:none;

}


.najda-features strong{

    display:block;

    color:var(--gold);

    font-size:22px;

}


.najda-features span{

    font-size:10px;

    color:#777;

}


.project-link{

    display:inline-flex;
    align-items:center;
    gap:12px;

    color:var(--green);

    font-weight:600;

    margin-top:8px;

}


/* =========================================================
   VISION
========================================================= */

.vision{

    padding:150px 0;

    background:white;

    text-align:center;

}


.vision-small{

    font-size:11px;

    letter-spacing:3px;

    color:var(--gold);

}


.vision h2{

    font-family:var(--font-title);

    font-size:56px;

    line-height:1.2;

    max-width:900px;

    margin:30px auto;

}


.vision h2 strong{

    color:var(--gold);

    font-weight:600;

}


.vision-line{

    width:90px;
    height:1px;

    background:var(--gold);

    margin:35px auto;

}


.vision-values{

    display:flex;
    justify-content:center;
    gap:40px;

    font-size:13px;

    color:#6B7280;

}


/* =========================================================
   CONTACT
========================================================= */

.contact{

    background:var(--navy);

    color:white;

    padding:100px 0;

}


.contact-container{

    display:flex;
    justify-content:space-between;
    align-items:center;

}


.contact h2{

    font-family:var(--font-title);

    font-size:56px;

    margin-top:20px;

}


.contact h2 strong{

    color:var(--gold-light);

    display:block;

}


.contact-button{

    background:var(--gold);

    padding:18px 28px;

    border-radius:50px;

    display:flex;
    align-items:center;
    gap:12px;

    font-size:14px;

    transition:.3s;

}


.contact-button:hover{

    transform:translateY(-3px);

}


/* =========================================================
   FOOTER
========================================================= */

.footer{

    background:#08131F;

    color:white;

    padding-top:70px;

}


.footer-main{

    display:grid;
    grid-template-columns:2fr 1fr 1fr;

    gap:60px;

    padding-bottom:60px;

}


.footer-brand img{

    width:180px;

    margin-bottom:20px;

}


.footer-brand p{

    color:#AAB4BE;

    font-size:13px;

}


.footer-navigation{

    display:flex;
    flex-direction:column;
    gap:12px;

}


.footer-navigation strong{

    color:var(--gold);

    font-size:13px;

    margin-bottom:8px;

}


.footer-navigation a{

    color:#B7C0CA;

    font-size:13px;

    transition:.2s;

}


.footer-navigation a:hover{

    color:white;

}


.footer-bottom{

    border-top:1px solid rgba(255,255,255,.08);

    padding:22px 0;

    display:flex;
    justify-content:space-between;

    font-size:12px;

    color:#8E99A5;

}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:1100px){

    .nav{
        gap:20px;
    }

    .hero h1{
        font-size:62px;
    }

    .intro-grid{
        gap:50px;
    }

    .section-heading h2,
    .project-heading h2{
        font-size:48px;
    }

}


@media(max-width:900px){

    .nav{
        display:none;
    }

    .menu-toggle{
        display:block;
    }

    .header-contact{
        display:none;
    }

    .hero-values{
        grid-template-columns:1fr;
    }

    .hero-value{
        border-right:none;
        border-bottom:1px solid #DDD;
        padding:16px 0;
    }

    .intro-grid{
        grid-template-columns:1fr;
    }

    .section-heading{
        flex-direction:column;
        align-items:start;
        gap:25px;
    }

    .expertise-grid{
        grid-template-columns:1fr;
    }

    .najda-project{
        grid-template-columns:1fr;
    }

    .najda-visual{
        min-height:420px;
    }

    .contact-container{
        flex-direction:column;
        align-items:start;
        gap:35px;
    }

    .footer-main{
        grid-template-columns:1fr;
    }

}


@media(max-width:600px){

    .nav-container{
        height:72px;
    }

    .brand-logo{
        width:140px;
    }

    .languages{
        display:none;
    }

    .hero{
        min-height:820px;
    }

    .hero-container{
        padding-top:130px;
    }

    .hero-overlay{
        background:linear-gradient(
            180deg,
            rgba(255,255,255,.94),
            rgba(255,255,255,.82),
            rgba(255,255,255,.55)
        );
    }

    .hero h1{
        font-size:46px;
    }

    .hero-description{
        font-size:15px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:start;
    }

    .btn{
        width:100%;
        justify-content:center;
    }

    .hero-bottom{
        position:relative;
        margin-top:30px;
    }

    .intro,
    .projects,
    .vision{
        padding:90px 0;
    }

    .expertise{
        padding:90px 0;
    }

    .intro h2,
    .section-heading h2,
    .project-heading h2,
    .vision h2,
    .contact h2{
        font-size:40px;
    }

    .najda-content{
        padding:35px 25px;
    }

    .najda-content h3{
        font-size:52px;
    }

    .najda-features{
        grid-template-columns:repeat(2,1fr);
    }

    .vision-values{
        flex-wrap:wrap;
        gap:18px;
    }

    .footer-bottom{
        flex-direction:column;
        gap:8px;
    }

}
/* =========================================================
   JAVASCRIPT EFFECTS
========================================================= */

/* Header after scrolling */

.header.scrolled{
    box-shadow:0 8px 35px rgba(13,27,42,.08);
}


/* Scroll reveal */

.reveal{
    opacity:0;
    transform:translateY(35px);

    transition:
        opacity .8s ease,
        transform .8s ease;

    transition-delay:var(--delay,0ms);
}

.reveal.visible{
    opacity:1;
    transform:translateY(0);
}


/* Mobile navigation */

@media(max-width:900px){

    .nav{
        display:flex;

        position:fixed;

        top:86px;
        left:0;

        width:100%;

        padding:45px 5%;

        background:rgba(255,255,255,.98);

        backdrop-filter:blur(20px);

        flex-direction:column;
        align-items:center;

        gap:28px;

        border-top:1px solid #eee;

        box-shadow:0 30px 50px rgba(0,0,0,.08);

        opacity:0;
        visibility:hidden;

        transform:translateY(-15px);

        transition:
            opacity .3s ease,
            transform .3s ease,
            visibility .3s;
    }

    .nav.mobile-open{
        opacity:1;
        visibility:visible;

        transform:translateY(0);
    }

    .nav-link{
        font-size:17px;
    }


    /* Hamburger animation */

    .menu-toggle span{
        transition:.3s;
    }

    .menu-toggle.active span:nth-child(1){
        transform:
            translateY(7px)
            rotate(45deg);
    }

    .menu-toggle.active span:nth-child(2){
        opacity:0;
    }

    .menu-toggle.active span:nth-child(3){
        transform:
            translateY(-7px)
            rotate(-45deg);
    }

    body.menu-open{
        overflow:hidden;
    }

}


@media(max-width:600px){

    .nav{
        top:72px;
    }

}


/* Accessibility */

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

    html{
        scroll-behavior:auto;
    }

    .reveal{
        opacity:1;
        transform:none;
        transition:none;
    }

}
/* =========================================================
   RAKM ONE - MOBILE OPTIMIZATION
========================================================= */

@media (max-width: 768px) {

    /* ---------- GENERAL ---------- */

    .container {
        width: 90%;
        max-width: 100%;
    }

    body {
        overflow-x: hidden;
    }


    /* ---------- HEADER ---------- */

    .header {
        background: rgba(255,255,255,.97);
    }

    .nav-container {
        height: 72px;
    }

    .brand-logo {
        width: 125px;
        height: auto;
    }

    .nav-right {
        gap: 12px;
    }

    .languages {
        display: flex;
        gap: 6px;
    }

    .language {
        font-size: 10px;
        padding: 3px;
    }

    .languages span {
        height: 12px;
    }

    .menu-toggle {
        display: block;
    }


    /* ---------- MOBILE MENU ---------- */

    .nav {
        position: fixed;

        top: 72px;
        left: 0;

        width: 100%;
        height: auto;

        padding: 35px 25px;

        background: rgba(255,255,255,.98);

        display: flex;
        flex-direction: column;
        align-items: center;

        gap: 25px;

        opacity: 0;
        visibility: hidden;

        transform: translateY(-15px);

        transition: .3s ease;

        box-shadow: 0 20px 40px rgba(0,0,0,.08);
    }

    .nav.mobile-open {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav-link {
        font-size: 16px;
    }


    /* ---------- HERO ---------- */

    .hero {
        min-height: auto;
        display: block;
        padding-top: 72px;
    }

    .hero-background {
        position: relative;

        width: 100%;
        height: 330px;

        background-size: cover;

        /*
        Zeigt auf dem Handy stärker
        die rechte/zentralere Bildhälfte.
        */

        background-position: 62% center;

        transform: none !important;

        z-index: 1;
    }

    .hero-overlay {
        display: none;
    }

    .hero-container {
        padding-top: 45px;
        padding-bottom: 45px;
    }

    .hero-content {
        max-width: 100%;
    }

    .eyebrow {
        font-size: 9px;
        letter-spacing: 1.5px;
        margin-bottom: 17px;
    }

    .eyebrow span {
        width: 30px;
    }

    .hero h1 {
        font-size: 44px;
        line-height: 1.03;

        letter-spacing: -0.5px;

        margin-bottom: 22px;
    }

    .hero-description {
        font-size: 14px;
        line-height: 1.8;

        margin-bottom: 28px;
    }

    .hero-buttons {
        display: flex;
        flex-direction: column;

        gap: 12px;
    }

    .hero-buttons .btn {
        width: 100%;
        justify-content: center;
    }


    /* ---------- HERO VALUES ---------- */

    .hero-bottom {
        position: relative;

        background: var(--soft);

        border-top: 1px solid var(--line);
    }

    .hero-values {
        grid-template-columns: 1fr;
        padding: 0;
    }

    .hero-value {
        padding: 20px 0;

        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .hero-value:last-child {
        border-bottom: 0;
    }


    /* ---------- SECTIONS ---------- */

    .intro,
    .expertise,
    .projects,
    .vision {
        padding: 80px 0;
    }

    .intro-grid {
        display: block;
    }

    .section-label {
        margin-bottom: 30px;
    }


    /* ---------- TITLES ---------- */

    .intro h2,
    .section-heading h2,
    .project-heading h2,
    .vision h2,
    .contact h2 {

        font-size: 38px;
        line-height: 1.08;
    }

    .intro-content p:not(.intro-small) {
        font-size: 14px;
        line-height: 1.8;
    }


    /* ---------- EXPERTISE ---------- */

    .section-heading {
        display: block;
        margin-bottom: 45px;
    }

    .section-heading > p {
        margin-top: 25px;
    }

    .expertise-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .expertise-card {
        min-height: 280px;
        padding: 30px;
    }


    /* ---------- PROJECTS ---------- */

    .project-heading {
        display: block;
        margin: 25px 0 40px;
    }

    .najda-project {
        display: block;
    }

    .najda-visual {
        min-height: 330px;
        width: 100%;
    }

    .najda-visual::before {
        width: 320px;
        height: 320px;
    }

    .najda-visual img {
        width: 200px;
        max-width: 65%;
    }

    .najda-content {
        padding: 40px 25px;
    }

    .najda-content h3 {
        font-size: 52px;
    }

    .najda-content h4 {
        font-size: 19px;
        line-height: 1.4;
    }

    .najda-content p {
        font-size: 13px;
        line-height: 1.8;
    }


    /* ---------- NAJDA FEATURES ---------- */

    .najda-features {
        grid-template-columns: repeat(2, 1fr);
    }

    .najda-features div:nth-child(2) {
        border-right: 0;
    }

    .najda-features div:nth-child(1),
    .najda-features div:nth-child(2) {
        border-bottom: 1px solid #e7e7e7;
    }


    /* ---------- VISION ---------- */

    .vision {
        text-align: left;
    }

    .vision h2 {
        margin: 25px 0;
    }

    .vision-line {
        margin: 30px 0;
    }

    .vision-values {
        justify-content: flex-start;
        flex-wrap: wrap;

        gap: 12px 25px;
    }


    /* ---------- CONTACT ---------- */

    .contact {
        padding: 70px 0;
    }

    .contact-container {
        display: block;
    }

    .contact h2 {
        margin-bottom: 30px;
    }

    .contact-button {
        width: 100%;
        justify-content: center;
    }


    /* ---------- FOOTER ---------- */

    .footer {
        padding-top: 55px;
    }

    .footer-main {
        grid-template-columns: 1fr;

        gap: 40px;

        padding-bottom: 45px;
    }

    .footer-brand img {
        width: 150px;
    }

    .footer-bottom {
        flex-direction: column;
        gap: 8px;

        padding: 20px 0;
    }

}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 420px) {

    .container {
        width: 88%;
    }

    .brand-logo {
        width: 110px;
    }

    .hero-background {
        height: 280px;
    }

    .hero h1 {
        font-size: 39px;
    }

    .intro h2,
    .section-heading h2,
    .project-heading h2,
    .vision h2,
    .contact h2 {
        font-size: 34px;
    }

    .najda-content h3 {
        font-size: 46px;
    }

}