/* =========================================================================
   Veloz Films — theme stylesheet
   Aesthetic: minimal, image-led, editorial. Monochrome with alternating
   white / light-gray sections, high-contrast serif display + geometric sans.
   ========================================================================= */

:root{
    --ink:        #0e0e0e;   /* primary text / dark surfaces */
    --ink-soft:   #3a3a3a;
    --muted:      #9a9a94;   /* eyebrows / secondary text */
    --line:       #d9d7d1;   /* hairline borders */
    --paper:      #ffffff;
    --paper-2:    #ececea;   /* light gray section */
    --accent:     #b89b72;   /* restrained warm accent (hover only) */

    --maxw: 1320px;
    --gutter: clamp(20px, 5vw, 70px);

    --f-head: 'Montserrat', sans-serif;
    --f-body: 'Montserrat', sans-serif;

    --ease: cubic-bezier(.22,.61,.36,1);
}

/* ----------------------------- reset ----------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
    margin:0; font-family:var(--f-body); font-weight:300; font-size:17px;
    line-height:1.75; color:var(--ink-soft); background:var(--paper); overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
em{ font-style:italic; }

/* ----------------------------- layout ---------------------------------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(44px,6vw,88px); }
.section--gray{ background:var(--paper-2); }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:center; }

/* ----------------------------- type ------------------------------------ */
.eyebrow{
    font-size:13px; letter-spacing:.28em; text-transform:uppercase;
    font-weight:400; color:var(--muted); margin:0 0 22px;
}
.section-title{
    font-family:var(--f-head); font-weight:400;
    font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.08; letter-spacing:.005em;
    color:var(--ink); margin:0 0 26px;
}
.lead{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--ink-soft); margin:0 0 22px; }
p{ margin:0 0 18px; }

/* big serif paragraph used as a section intro (qi style) */
.display{
    font-family:var(--f-head); font-weight:400;
    font-size:clamp(1.7rem,3.4vw,2.8rem); line-height:1.18; color:var(--ink); margin:0;
}

/* ----------------------------- buttons --------------------------------- */
.btn{
    display:inline-flex; align-items:center; gap:10px;
    font-size:13px; letter-spacing:.16em; text-transform:lowercase; font-weight:400;
    padding:16px 36px; border:1px solid transparent; border-radius:40px;
    transition:all .35s var(--ease);
}
.btn--dark{ background:var(--ink); color:#fff; }
.btn--dark:hover{ background:var(--accent); }
.btn--block{ width:100%; justify-content:center; }

/* circular "find out more / view all" link — label + circled arrow */
.circle-link{ display:inline-flex; align-items:center; gap:22px; }
.circle-link__label{ font-size:15px; letter-spacing:.04em; color:var(--ink); }
.circle-link__btn{
    flex:none; width:86px; height:86px; border:1px solid var(--line); border-radius:50%;
    display:grid; place-items:center;
    transition:transform .45s var(--ease),border-color .45s var(--ease),background .45s var(--ease);
}
.circle-link:hover .circle-link__btn{ transform:scale(1.06); border-color:var(--ink); }
.circle-link__arrow{ font-size:22px; line-height:1; color:var(--ink); transition:transform .4s var(--ease); }
.circle-link:hover .circle-link__arrow{ transform:translateX(5px); }

/* ----------------------------- loader ---------------------------------- */
.loader{
    position:fixed; inset:0; z-index:9999; background:var(--ink);
    display:grid; place-items:center; transition:opacity .6s ease,visibility .6s ease;
}
.loader.is-done{ opacity:0; visibility:hidden; }
.loader__mark{ font-family:var(--f-body); color:#fff; letter-spacing:.6em; font-size:22px; padding-left:.6em; animation:pulse 1.4s ease-in-out infinite; }
@keyframes pulse{ 0%,100%{ opacity:.35; } 50%{ opacity:1; } }

/* ----------------------------- header ---------------------------------- */
.site-header{
    position:fixed; top:0; left:0; right:0; z-index:900; padding-block:22px;
    transition:transform .5s var(--ease),background .4s var(--ease),padding .4s var(--ease),opacity .4s var(--ease);
}
.site-header__inner{ display:flex; align-items:center; justify-content:space-between; max-width:none; margin:0; padding-inline-start:clamp(2px,1vw,14px); }
/* logo.png has transparent whitespace on its left — pull the header logo
   back so the wordmark sits at the top-left edge (footer logo unaffected) */
.site-header__inner .brand img{ margin-left:-38px; }
[dir="rtl"] .site-header__inner .brand img{ margin-left:0; margin-right:-38px; }
.site-header.is-scrolled{ background:rgba(255,255,255,.94); backdrop-filter:blur(10px); padding-block:14px; box-shadow:0 1px 0 var(--line); }
.site-header.is-hidden{ transform:translateY(-100%); opacity:0; pointer-events:none; }

.brand{ display:flex; align-items:center; color:var(--ink); transition:color .4s var(--ease); }
.brand img{ height:38px; width:auto; display:block; }
.brand--light{ color:#fff; }
.footer__logo img{ height:38px; width:auto; display:block; }

.nav__cta{
    background:var(--ink); color:#fff; border-radius:40px; padding:14px 30px;
    font-size:13px; letter-spacing:.14em; white-space:nowrap; transition:background .35s var(--ease);
}
.nav__cta:hover{ background:var(--accent); }

/* ============================ INTRO (scroll wipe) ====================== */
.intro{ position:relative; height:100vh; background:#000; }
.intro__sticky{ position:relative; height:100vh; overflow:hidden; }
.intro__stage{ position:absolute; inset:0; }
.intro__slide{
    position:absolute; inset:0; background-size:cover; background-position:center;
    clip-path:inset(0 100% 0 0); will-change:clip-path;
}
.intro__slide::after{ content:''; position:absolute; inset:0; background:rgba(0,0,0,.32); }
.intro__slide:first-child{ clip-path:inset(0 0 0 0); }
.intro__logo{
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:5;
    text-align:center; color:#fff; pointer-events:none;
}
.intro__logo .brand__name{ font-size:clamp(28px,5vw,52px); }
.intro__logo .brand__sub{ font-size:clamp(11px,1.4vw,15px); color:rgba(255,255,255,.8); display:block; margin-top:6px; letter-spacing:.5em; }
.intro__scroll{
    position:absolute; left:50%; bottom:42px; transform:translateX(-50%); z-index:5;
    font-size:12px; letter-spacing:.32em; text-transform:uppercase; color:rgba(255,255,255,.85);
    text-align:center; opacity:0; transition:opacity .6s ease;
}
.intro.is-played .intro__scroll{ opacity:1; }
.intro__scroll::after{ content:''; display:block; width:1px; height:54px; margin:14px auto 0; background:rgba(255,255,255,.55); animation:drop 1.8s ease-in-out infinite; }
@keyframes drop{ 0%{ transform:scaleY(0); transform-origin:top; } 50%{ transform:scaleY(1); transform-origin:top; } 51%{ transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }

/* ----------------------------- hero ------------------------------------ */
.hero{ position:relative; background:var(--paper); overflow:hidden; }
.hero__inner{
    display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:center;
    min-height:100vh; padding-block:clamp(120px,16vh,180px) clamp(60px,8vw,90px);
}
.hero__text{ max-width:620px; }
.hero__title{
    font-family:var(--f-head); font-weight:400; font-size:clamp(2rem,3.8vw,3.4rem);
    line-height:1.1; letter-spacing:.005em; color:var(--ink); margin:14px 0 0;
}
.hero__desc{ font-size:clamp(.95rem,1.4vw,1.1rem); line-height:1.7; color:var(--ink-60,#555); margin-top:24px; max-width:520px; }
.hero__more{ margin-top:clamp(40px,6vw,70px); }
.hero__media{ position:relative; height:clamp(420px,64vh,660px); }
.hero__img{
    margin:0; overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,.4);
    clip-path:inset(0 0 0 100%);            /* hidden: revealed left-to-right on load */
    transition:clip-path 1.1s var(--ease); will-change:transform;
}
.hero__img img{ width:100%; height:100%; object-fit:cover; transform:scale(1.08); transition:transform 1.5s var(--ease); }
.hero__media.is-revealed .hero__img{ clip-path:inset(0 0 0 0); }
.hero__media.is-revealed .hero__img img{ transform:scale(1); }
.hero__img--back{ position:absolute; top:0; right:0; width:78%; height:100%; z-index:1; }
.hero__img--front{ position:absolute; left:0; bottom:-8%; width:48%; height:62%; z-index:2; }

/* ----------------------------- facts ----------------------------------- */
.facts__left{ align-self:start; }
.facts__desc{ font-size:clamp(.9rem,1.3vw,1rem); line-height:1.75; color:var(--ink-60,#555); margin-top:20px; }
.facts__media{ margin-top:42px; overflow:hidden; }
.facts__media img{ width:100%; aspect-ratio:16/11; object-fit:cover; }
.facts__list{ align-self:center; }
.fact{ display:grid; grid-template-columns:130px 1fr; gap:24px; align-items:center; padding-block:30px; border-top:1px solid var(--line); }
.fact:last-child{ border-bottom:1px solid var(--line); }
.fact__no{ font-family:var(--f-head); font-size:clamp(2.6rem,4vw,3.6rem); line-height:1; color:var(--ink); }
.fact__label{ font-size:16px; color:var(--ink); margin:0 0 4px; }
.fact__value{ font-size:15px; color:var(--muted); margin:0; }

/* ----------------------------- work / portfolio ------------------------ */
.work__head{ display:grid; grid-template-columns:1.7fr 1fr; gap:40px; align-items:center; margin-bottom:clamp(40px,6vw,80px); }
.work__head .display{ max-width:760px; }
.work__cta{ justify-self:end; }
.work__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); }
.work__grid .card:nth-child(even){ margin-top:90px; }
.card__media{ position:relative; overflow:hidden; aspect-ratio:3/2; background:var(--paper); }
.card__media img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.card__media img.img--top{ object-position:center top; }
.card:hover .card__media img{ transform:scale(1.05); }
.card__meta{
    position:absolute; left:0; right:0; bottom:0; height:55%;
    display:flex; flex-direction:column; justify-content:center;
    padding:0 clamp(22px,3vw,36px);
    background:var(--paper-2);
    transform:translateY(101%); transition:transform .5s var(--ease);
}
.card:hover .card__meta,
.card:focus-within .card__meta{ transform:translateY(0); }
.card__title{ font-family:var(--f-head); font-size:clamp(1.2rem,1.8vw,1.6rem); font-weight:400; color:var(--ink); margin:0 0 10px; }
.card__desc{ font-size:clamp(.78rem,1.1vw,.88rem); line-height:1.6; color:var(--muted); margin:0; }

/* ----------------------------- voices / testimonials ------------------- */
.voices__grid{ display:grid; grid-template-columns:200px 1fr 90px; gap:30px; align-items:center; }
.voices__eyebrow{ align-self:start; padding-top:8px; }
.voices__stage{ position:relative; min-height:340px; }
.quote{ margin:0; position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .6s var(--ease); }
.quote.is-active{ opacity:1; visibility:visible; position:relative; }
.quote__text{ font-family:var(--f-head); font-size:clamp(1.6rem,3.2vw,2.6rem); line-height:1.28; color:var(--ink); margin:0 0 36px; }
.quote__name{ display:block; font-size:16px; color:var(--ink); }
.quote__role{ display:block; font-size:14px; color:var(--muted); margin-top:4px; }
.voices__nav{ display:flex; flex-direction:column; gap:22px; align-items:center; }
.voices__arrow{ background:none; border:0; font-size:30px; color:var(--ink); line-height:1; opacity:.7; transition:opacity .3s var(--ease),transform .3s var(--ease); }
.voices__arrow:hover{ opacity:1; transform:scale(1.15); }

/* ----------------------------- gallery carousel ------------------------ */
.gallery__viewport{ position:relative; overflow:hidden; }
.gallery__track{ display:flex; transition:transform .7s var(--ease); }
.gallery__slide{ flex:0 0 100%; }
.gallery__slide img{ width:100%; height:auto; display:block; }
.gallery__arrow{
    position:absolute; top:50%; transform:translateY(-50%); z-index:2;
    width:56px; height:56px; border-radius:0; border:0; background:none;
    color:#fff; font-size:42px; line-height:1; display:grid; place-items:center;
    text-shadow:0 1px 8px rgba(0,0,0,.55);
    transition:transform .3s var(--ease);
}
.gallery__arrow:hover{ background:none; }
.gallery__arrow--prev{ left:24px; }
.gallery__arrow--next{ right:24px; }
.gallery__arrow--prev:hover{ transform:translateY(-50%) scale(1.08); }
.gallery__arrow--next:hover{ transform:translateY(-50%) scale(1.08); }

/* ----------------------------- contact / inquiry ----------------------- */
.contact__head{ margin-bottom:clamp(40px,6vw,72px); }
.contact__form{ display:flex; flex-direction:column; gap:34px; max-width:980px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,64px); }
.field{ display:flex; flex-direction:column; }
.field input,.field textarea{
    background:transparent; border:0; border-bottom:1px solid var(--line);
    color:var(--ink); font-family:inherit; font-size:17px; padding:14px 0; transition:border-color .3s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{ color:var(--muted); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--ink); }
.field textarea{ resize:vertical; }
.hp{ position:absolute; left:-9999px; opacity:0; height:0; width:0; }
.form__flash{ padding:14px 18px; font-size:14px; border-radius:2px; }
.form__flash--ok{ background:rgba(42,107,53,.08); color:#2a6b35; border:1px solid #5a9a65; }
.form__flash--err{ background:rgba(190,70,70,.1); color:#9b4a4a; border:1px solid #c08; }
.form__success{
    padding:28px 32px; border-radius:2px; font-size:clamp(1rem,1.5vw,1.15rem);
    line-height:1.7; color:#2a6b35;
    background:rgba(42,107,53,.07); border:1px solid #5a9a65;
    max-width:980px; margin-top:-32px;
}
.contact__submit{ align-self:flex-start; }

/* ----------------------------- footer ---------------------------------- */
.site-footer{ background:#000; color:rgba(255,255,255,.65); padding-block:clamp(70px,9vw,120px); text-align:center; position:relative; }
.footer__logo{ display:inline-flex; flex-direction:column; align-items:center; margin-bottom:26px; }
.footer__logo .brand__name{ font-size:30px; }
.footer__tag{ font-family:var(--f-head); font-size:clamp(1.4rem,2.6vw,2rem); color:#fff; margin:0 0 30px; }
.footer__line{ display:block; margin-bottom:8px; color:rgba(255,255,255,.6); }
.footer__link:hover{ color:#fff; }
.social{ display:flex; justify-content:center; gap:26px; margin-top:34px; }
.social a{ font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); transition:color .3s var(--ease); }
.social a:hover{ color:#fff; }

.to-top{
    position:fixed; right:26px; bottom:26px; z-index:800; width:46px; height:46px; border-radius:50%;
    background:var(--ink); color:#fff; border:1px solid rgba(255,255,255,.2); font-size:18px;
    opacity:0; visibility:hidden; transform:translateY(10px); transition:all .35s var(--ease);
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.to-top:hover{ background:var(--accent); }

/* ----------------------------- reveal anim ----------------------------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease),transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ----------------------------- stores ---------------------------------- */
.stores__heading{
    font-family:var(--f-head); font-weight:400;
    font-size:clamp(2rem,4vw,3.2rem); color:var(--ink);
    text-align:center; margin:0 0 clamp(48px,7vw,80px);
}
.stores__grid{
    display:grid; grid-template-columns:repeat(4,1fr);
    gap:clamp(24px,4vw,48px); justify-items:center;
}
.store{ display:flex; flex-direction:column; align-items:center; text-decoration:none; }
.store__circle{
    width:clamp(160px,18vw,220px); height:clamp(160px,18vw,220px);
    border-radius:50%; overflow:hidden;
    transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.store:hover .store__circle{
    transform:scale(1.05);
    box-shadow:0 24px 48px -12px rgba(0,0,0,.22);
}
.store__circle img{ width:100%; height:100%; object-fit:cover; }
.store__label{
    margin-top:18px; font-size:12px; letter-spacing:.12em;
    text-transform:uppercase; color:var(--accent); font-weight:500;
}

/* ----------------------------- responsive ------------------------------ */
@media (max-width:980px){
    .work__head{ grid-template-columns:1fr; gap:24px; }
    .work__cta{ justify-self:start; }
    .voices__grid{ grid-template-columns:1fr; }
    .voices__eyebrow{ padding-top:0; }
    .voices__nav{ flex-direction:row; justify-content:flex-end; }
    .voices__stage{ min-height:0; }
}
@media (max-width:860px){
    .hero__inner{ grid-template-columns:1fr; min-height:auto; gap:48px; }
    .hero__media{ height:clamp(380px,70vw,520px); }
}
@media (max-width:768px){
    .nav__cta{ display:none; }
    .grid-2,.work__grid,.field-row{ grid-template-columns:1fr; }
    .work__grid .card:nth-child(even){ margin-top:0; }
    .fact{ grid-template-columns:90px 1fr; gap:16px; }
    .facts__media{ order:-1; }
    .stores__grid{ grid-template-columns:repeat(2,1fr); gap:36px 20px; }
}
@media (prefers-reduced-motion:reduce){
    *{ animation:none !important; scroll-behavior:auto; }
    .reveal{ opacity:1; transform:none; }
    .intro{ height:100vh; }
    .intro__slide{ clip-path:inset(0 0 0 0) !important; }
    .hero__img{ clip-path:inset(0 0 0 0) !important; }
    .hero__img img{ transform:none !important; }
}

/* ----------------------------- language toggle -------------------------- */
.nav__right{ display:flex; align-items:center; gap:16px; }
.nav__lang{
    font-size:13px; letter-spacing:.08em; color:var(--ink);
    transition:color .35s var(--ease);
}
.nav__lang:hover{ color:var(--accent); }

/* ======================= MOBILE IMPROVEMENTS =========================== */

/* Restore header CTA on mobile — compact, label-free lang toggle beside it */
@media (max-width:768px){
    .nav__cta{ display:inline-flex; white-space:nowrap; padding:10px 16px; font-size:11px; letter-spacing:.1em; }
    .nav__lang-label{ display:none; }
    .nav__right{ gap:10px; }
}
/* Very small phones — keep the CTA compact and on one line */
@media (max-width:400px){
    .nav__cta{ padding:9px 14px; font-size:10px; letter-spacing:.06em; }
    .nav__right{ gap:8px; }
}

@media (max-width:768px){
    .card__meta{ background:rgba(236,236,234,.92); }

    /* Tighter vertical rhythm between sections on mobile */
    .section{ padding-block:30px; }

    /* Gallery: full-bleed + slightly taller image, flush to neighbours */
    .gallery{ padding-block:0; }
    .gallery .container{ padding-inline:0; max-width:none; }
    .gallery__slide img{ height:clamp(360px,56vh,520px); object-fit:cover; display:block; }

    /* Gallery arrows: plain arrow marks (no circle), like USA */
    .gallery__arrow{
        width:46px; height:46px; border-radius:0;
        background:none; box-shadow:none;
        color:#fff; font-size:34px; text-shadow:0 1px 6px rgba(0,0,0,.55);
    }
    .gallery__arrow:hover{ background:none; }
    .gallery__arrow--prev{ left:6px; }
    .gallery__arrow--next{ right:6px; }
    .gallery__arrow--prev:hover{ transform:translateY(-50%); }
    .gallery__arrow--next:hover{ transform:translateY(-50%); }
}

/* ≤ 480 px — phone portrait                                              */
@media (max-width:480px){
    /* Hero */
    .hero__inner{ gap:28px; }
    .hero__media{ height:clamp(260px,86vw,400px); }
    .hero__title{ font-size:clamp(1.7rem,7vw,2.4rem); }
    .hero__desc{ font-size:.9rem; }
    .hero__more{ margin-top:32px; }
    .circle-link__btn{ width:64px; height:64px; }

    /* Intro logo */
    .intro__logo .brand__name{ font-size:clamp(24px,8vw,40px); }

    /* Facts */
    .fact{ grid-template-columns:60px 1fr; gap:12px; padding-block:18px; }
    .fact__no{ font-size:clamp(1.6rem,7vw,2.4rem); }
    .fact__label{ font-size:14px; }
    .fact__value{ font-size:13px; }

    /* Stores — shrink circles so both columns fit comfortably            */
    .stores__grid{ gap:24px 10px; }
    .store__circle{
        width:clamp(110px,38vw,150px);
        height:clamp(110px,38vw,150px);
    }
    .store__label{ font-size:11px; margin-top:12px; }

    /* Voices */
    .voices__nav{ gap:14px; }

    /* Contact */
    .contact__form{ gap:22px; }
    .btn{ padding:14px 26px; }
    .contact__submit{ width:100%; justify-content:center; }

    /* Section headings */
    .stores__heading{ font-size:clamp(1.6rem,6vw,2.2rem); }
    .display{ font-size:clamp(1.4rem,5.5vw,2rem); }
}

/* ======================= INTRO SLIDES — responsive backgrounds ========= */
.intro__slide--1{ background-image:url('../img/saudi/intro%20slides/4.jpg'); }
.intro__slide--2{ background-image:url('../img/saudi/intro%20slides/3.jpg'); }
.intro__slide--3{ background-image:url('../img/saudi/intro%20slides/2.jpg'); }
.intro__slide--4{ background-image:url('../img/saudi/intro%20slides/1.jpg'); }

@media (max-width:768px){
    .intro__slide--1{ background-image:url('../img/mb%20saudi/4.png'); }
    .intro__slide--2{ background-image:url('../img/mb%20saudi/3.png'); }
    .intro__slide--3{ background-image:url('../img/mb%20saudi/2.png'); }
    .intro__slide--4{ background-image:url('../img/mb%20saudi/1.png'); }
    .intro__slide{ background-size:cover; background-position:center center; }
}
