تنفيذ فعاليات ومعارض باحتراف

نقدم حلول متكاملة لتنظيم الفعاليات والهدايا الدعائية بأعلى جودة.

عن إيفونكس

نقدم لك حلول تنفيذ الأجنحة والمعارض مع تفاصيل دقيقة وهدايا دعائية تترك أثرًا دائمًا في فعالياتك ومناسباتك.

تنفيذ فعاليات

نقدم خدمات تجهيز الأجنحة والفعاليات بأحدث التصاميم واللمسات الذكية

هدايا دعائية

تصميم وتوزيع هدايا تترك أثرًا في فعالياتك ومناسباتك

دعاية ومطبوعات

خدمات دعاية مبتكرة ومطبوعات تلبي احتياجات مؤسستك بدقة

اشترك الآن

انضم إلى قائمة evonox لتصلك أحدث عروضنا وأفكارنا لتنفيذ فعالياتك بنجاح.
/* ============================================================ EVONOX — design tokens Palette drawn from the mark itself: true ink black / paper white, a warm concrete neutral for resting sections, and a single signal-orange accent (a fabrication/warning-tape cue, apt for a company that physically builds stands and sets). ============================================================ */ @import url(‘https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&family=Tajawal:wght@400;500;700;800&family=IBM+Plex+Sans+Arabic:wght@400;500;600&display=swap’); :root{ –ink: #0A0A0A; –paper: #FFFFFF; –concrete: #F1EFEA; –steel: #6E6E6B; –steel-soft: #A9A7A1; –signal: #FF4414; –line: rgba(10,10,10,.14); –line-on-ink: rgba(255,255,255,.16); –font-en-head: ‘Space Grotesk’, sans-serif; –font-en-body: ‘Inter’, sans-serif; –font-ar-head: ‘Tajawal’, sans-serif; –font-ar-body: ‘IBM Plex Sans Arabic’, sans-serif; –cut: 14px; /* diagonal seam offset used at section joins */ –container: 1240px; } *{ box-sizing:border-box; } html{ scroll-behavior:smooth; } body{ margin:0; background:var(–paper); color:var(–ink); font-family:var(–font-ar-body); line-height:1.65; -webkit-font-smoothing:antialiased; } html[lang=”en”] body{ font-family:var(–font-en-body); } h1,h2,h3,.head{ font-family:var(–font-ar-head); font-weight:800; letter-spacing:-0.01em; margin:0; } html[lang=”en”] h1, html[lang=”en”] h2, html[lang=”en”] h3, html[lang=”en”] .head{ font-family:var(–font-en-head); font-weight:700; letter-spacing:-0.02em; } p{ margin:0; } a{ color:inherit; text-decoration:none; } img{ max-width:100%; display:block; } button{ font:inherit; cursor:pointer; } @media (prefers-reduced-motion: reduce){ *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; } } /* ———- layout helpers ———- */ .wrap{ max-width:var(–container); margin:0 auto; padding:0 28px; } .grain{ position:relative; } /* diagonal seam — the recurring structural device, echoing the sliced letterforms of the mark. Used only at real section boundaries, never as decoration inside a section. */ .seam{ height:var(–cut); width:100%; background:var(–paper); } .seam.on-ink{ background:var(–ink); } .seam::before{ content:””; display:block; width:100%; height:100%; background:inherit; clip-path:polygon(0 100%, 100% 0, 100% 100%); } .seam-flip::before{ clip-path:polygon(0 0, 100% 100%, 0 100%); } /* ———- header ———- */ .site-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.86); backdrop-filter:blur(10px); border-bottom:1px solid var(–line); } .site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:78px; } .brand-mark{ height:20px; } .brand-mark img{ height:100%; width:auto; } .nav{ display:flex; align-items:center; gap:36px; } .nav-links{ display:flex; gap:32px; } .nav-links a{ font-size:15px; color:var(–ink); position:relative; padding:4px 0; } .nav-links a::after{ content:””; position:absolute; inset-inline-start:0; bottom:0; width:0; height:1.5px; background:var(–signal); transition:width .25s ease; } .nav-links a:hover::after{ width:100%; } .lang-toggle{ border:1px solid var(–ink); background:none; color:var(–ink); padding:8px 16px; font-size:13px; font-weight:600; } .lang-toggle:hover{ background:var(–ink); color:var(–paper); } .nav-cta{ background:var(–ink); color:var(–paper); padding:10px 20px; font-size:14px; font-weight:600; border:1px solid var(–ink); } .nav-cta:hover{ background:var(–signal); border-color:var(–signal); } .menu-btn{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; } .menu-btn span{ width:22px; height:2px; background:var(–ink); display:block; } /* ———- hero ———- */ .hero{ background:var(–ink); color:var(–paper); padding:96px 0 76px; position:relative; overflow:hidden; } .hero .wrap{ position:relative; z-index:2; } .hero-eyebrow-line{ display:flex; align-items:center; gap:14px; margin-bottom:34px; color:var(–steel-soft); font-size:14px; } .hero-eyebrow-line .dash{ width:38px; height:1px; background:var(–signal); } .hero h1{ font-size:clamp(38px, 5.6vw, 76px); line-height:1.06; max-width:15ch; } .hero h1 span{ color:var(–signal); } .hero-sub{ margin-top:28px; max-width:56ch; font-size:18px; color:#D8D7D3; } .hero-actions{ margin-top:44px; display:flex; gap:16px; flex-wrap:wrap; } .btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-size:15px; font-weight:600; border:1px solid var(–paper); } .btn-solid{ background:var(–signal); border-color:var(–signal); color:var(–ink); } .btn-solid:hover{ background:#fff; border-color:#fff; } .btn-ghost{ color:var(–paper); } .btn-ghost:hover{ background:rgba(255,255,255,.08); } .hero-strip{ margin-top:74px; border-top:1px solid var(–line-on-ink); padding-top:26px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; } .hero-strip .item{ font-size:13.5px; color:var(–steel-soft); } .hero-strip .item b{ display:block; color:var(–paper); font-size:15px; margin-bottom:4px; font-weight:600; } .hero-mark{ position:absolute; inset-inline-end:-4%; top:50%; transform:translateY(-50%); width:46%; opacity:.9; filter:drop-shadow(0 0 40px rgba(255,68,20,.08)); } @media (max-width:900px){ .hero-mark{ display:none; } .hero-strip{ grid-template-columns:repeat(2,1fr); } } /* ———- section shell ———- */ .section{ padding:96px 0; } .section.on-concrete{ background:var(–concrete); } .section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; flex-wrap:wrap; } .section-head .kicker{ font-size:14px; color:var(–signal); font-weight:600; margin-bottom:14px; display:block; } .section-head h2{ font-size:clamp(28px,3.4vw,42px); max-width:20ch; } .section-head .desc{ max-width:38ch; color:var(–steel); font-size:15.5px; } /* ———- services : asymmetric rows, not cards ———- */ .services-list{ border-top:1px solid var(–line); } .service-row{ display:grid; grid-template-columns:0.9fr 1.6fr 1fr; gap:32px; padding:38px 0; border-bottom:1px solid var(–line); align-items:start; } .service-row .idx{ font-family:var(–font-en-head); font-size:14px; color:var(–steel-soft); padding-top:4px; } .service-row h3{ font-size:23px; } .service-row .desc{ color:var(–steel); font-size:15.5px; max-width:52ch; } .service-row .tags{ display:flex; flex-wrap:wrap; gap:8px; align-content:flex-start; } .service-row .tags span{ border:1px solid var(–line); padding:6px 12px; font-size:12.5px; color:var(–steel); } .service-row:hover{ background:linear-gradient(90deg, rgba(255,68,20,.04), transparent); } @media (max-width:820px){ .service-row{ grid-template-columns:1fr; gap:14px; } } /* ———- process : legitimate numbered sequence ———- */ .process{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(–line); } .process .step{ padding:36px 28px; border-inline-end:1px solid var(–line); } .process .step:last-child{ border-inline-end:none; } .process .num{ font-family:var(–font-en-head); font-size:34px; color:var(–signal); font-weight:700; } .process h3{ font-size:18px; margin-top:18px; } .process p{ font-size:14.5px; color:var(–steel); margin-top:10px; } @media (max-width:820px){ .process{ grid-template-columns:1fr; } .process .step{ border-inline-end:none; border-bottom:1px solid var(–line); } .process .step:last-child{ border-bottom:none; } } /* ———- stats strip on ink ———- */ .stats{ background:var(–ink); color:var(–paper); padding:80px 0; } .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px; } .stat .n{ font-family:var(–font-en-head); font-weight:700; font-size:clamp(34px,4vw,54px); color:var(–signal); line-height:1; } .stat .l{ margin-top:14px; font-size:14.5px; color:var(–steel-soft); max-width:22ch; } @media (max-width:820px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } } /* ———- work / gallery ———- */ .work-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; } .work-item{ position:relative; overflow:hidden; background:var(–concrete); border:1px solid var(–line); aspect-ratio:4/3; display:flex; align-items:flex-end; } .work-item.tall{ grid-column:span 3; aspect-ratio:4/5; } .work-item.wide{ grid-column:span 3; } .work-item .cap{ padding:20px; color:var(–ink); position:relative; z-index:2; width:100%; background:linear-gradient(0deg, rgba(255,255,255,.92), rgba(255,255,255,0)); } .work-item .cap b{ display:block; font-size:15px; } .work-item .cap span{ font-size:12.5px; color:var(–steel); } .work-item .swatch{ position:absolute; inset:0; background: repeating-linear-gradient(135deg, transparent 0 18px, rgba(10,10,10,.045) 18px 19px); } @media (max-width:820px){ .work-grid{ grid-template-columns:1fr 1fr; } .work-item.tall, .work-item.wide{ grid-column:span 2; } } /* ———- CTA ———- */ .cta{ background:var(–signal); color:var(–ink); padding:88px 0; } .cta .wrap{ display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; } .cta h2{ font-size:clamp(28px,3.6vw,44px); max-width:16ch; } .cta .btn{ border-color:var(–ink); } .cta .btn-solid{ background:var(–ink); color:var(–paper); border-color:var(–ink); } .cta .btn-solid:hover{ background:var(–paper); color:var(–ink); } /* ———- contact ———- */ .contact{ padding:96px 0; } .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; } .contact-info .item{ margin-bottom:28px; } .contact-info .item .l{ font-size:13px; color:var(–steel); margin-bottom:6px; } .contact-info .item .v{ font-size:17px; font-weight:600; } .form{ display:flex; flex-direction:column; gap:16px; } .form input, .form textarea, .form select{ border:1px solid var(–line); background:none; padding:14px 16px; font-size:15px; font-family:inherit; color:var(–ink); width:100%; } .form input:focus, .form textarea:focus, .form select:focus{ outline:2px solid var(–signal); outline-offset:2px; } .form textarea{ resize:vertical; min-height:110px; } .form .submit{ background:var(–ink); color:var(–paper); border:1px solid var(–ink); padding:15px 24px; font-weight:600; align-self:flex-start; } .form .submit:hover{ background:var(–signal); border-color:var(–signal); color:var(–ink); } @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } } /* ———- footer ———- */ footer{ background:var(–ink); color:var(–steel-soft); padding:56px 0 30px; } .footer-top{ display:flex; justify-content:space-between; align-items:center; gap:24px; padding-bottom:36px; border-bottom:1px solid var(–line-on-ink); flex-wrap:wrap; } .footer-nav{ display:flex; gap:28px; flex-wrap:wrap; } .footer-nav a{ font-size:14px; color:var(–steel-soft); } .footer-nav a:hover{ color:var(–paper); } .footer-bottom{ padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; } /* ———- lang visibility ———- */ [data-lang]{ display:none; } html[lang=”ar”] [data-lang=”ar”]{ display:revert; } html[lang=”en”] [data-lang=”en”]{ display:revert; } html[lang=”ar”] span[data-lang=”ar”], html[lang=”en”] span[data-lang=”en”]{ display:inline; } /* ———- reveal (single orchestrated hero sequence) ———- */ .reveal{ opacity:0; transform:translateY(14px); } .hero.play .reveal{ animation:riseIn .7s cubic-bezier(.22,.9,.3,1) forwards; } .hero.play .reveal:nth-child(1){ animation-delay:.05s; } .hero.play .reveal:nth-child(2){ animation-delay:.15s; } .hero.play .reveal:nth-child(3){ animation-delay:.25s; } .hero.play .reveal:nth-child(4){ animation-delay:.35s; } @keyframes riseIn{ to{ opacity:1; transform:none; } } /* ———- mobile nav ———- */ @media (max-width:900px){ .nav-links{ display:none; } .menu-btn{ display:flex; } .nav{ gap:14px; } } ::selection{ background:var(–signal); color:var(–ink); } :focus-visible{ outline:2px solid var(–signal); outline-offset:2px; }
/* ============================================================ EVONOX — design tokens Palette drawn from the mark itself: true ink black / paper white, a warm concrete neutral for resting sections, and a single signal-orange accent (a fabrication/warning-tape cue, apt for a company that physically builds stands and sets). ============================================================ */ @import url(‘https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600&family=Tajawal:wght@400;500;700;800&family=IBM+Plex+Sans+Arabic:wght@400;500;600&display=swap’); :root{ –ink: #0A0A0A; –paper: #FFFFFF; –concrete: #F1EFEA; –steel: #6E6E6B; –steel-soft: #A9A7A1; –signal: #FF4414; –line: rgba(10,10,10,.14); –line-on-ink: rgba(255,255,255,.16); –font-en-head: ‘Space Grotesk’, sans-serif; –font-en-body: ‘Inter’, sans-serif; –font-ar-head: ‘Tajawal’, sans-serif; –font-ar-body: ‘IBM Plex Sans Arabic’, sans-serif; –cut: 14px; /* diagonal seam offset used at section joins */ –container: 1240px; } *{ box-sizing:border-box; } html{ scroll-behavior:smooth; } body{ margin:0; background:var(–paper); color:var(–ink); font-family:var(–font-ar-body); line-height:1.65; -webkit-font-smoothing:antialiased; } html[lang=”en”] body{ font-family:var(–font-en-body); } h1,h2,h3,.head{ font-family:var(–font-ar-head); font-weight:800; letter-spacing:-0.01em; margin:0; } html[lang=”en”] h1, html[lang=”en”] h2, html[lang=”en”] h3, html[lang=”en”] .head{ font-family:var(–font-en-head); font-weight:700; letter-spacing:-0.02em; } p{ margin:0; } a{ color:inherit; text-decoration:none; } img{ max-width:100%; display:block; } button{ font:inherit; cursor:pointer; } @media (prefers-reduced-motion: reduce){ *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; } } /* ———- layout helpers ———- */ .wrap{ max-width:var(–container); margin:0 auto; padding:0 28px; } .grain{ position:relative; } /* diagonal seam — the recurring structural device, echoing the sliced letterforms of the mark. Used only at real section boundaries, never as decoration inside a section. */ .seam{ height:var(–cut); width:100%; background:var(–paper); } .seam.on-ink{ background:var(–ink); } .seam::before{ content:””; display:block; width:100%; height:100%; background:inherit; clip-path:polygon(0 100%, 100% 0, 100% 100%); } .seam-flip::before{ clip-path:polygon(0 0, 100% 100%, 0 100%); } /* ———- header ———- */ .site-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.86); backdrop-filter:blur(10px); border-bottom:1px solid var(–line); } .site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:78px; } .brand-mark{ height:20px; } .brand-mark img{ height:100%; width:auto; } .nav{ display:flex; align-items:center; gap:36px; } .nav-links{ display:flex; gap:32px; } .nav-links a{ font-size:15px; color:var(–ink); position:relative; padding:4px 0; } .nav-links a::after{ content:””; position:absolute; inset-inline-start:0; bottom:0; width:0; height:1.5px; background:var(–signal); transition:width .25s ease; } .nav-links a:hover::after{ width:100%; } .lang-toggle{ border:1px solid var(–ink); background:none; color:var(–ink); padding:8px 16px; font-size:13px; font-weight:600; } .lang-toggle:hover{ background:var(–ink); color:var(–paper); } .nav-cta{ background:var(–ink); color:var(–paper); padding:10px 20px; font-size:14px; font-weight:600; border:1px solid var(–ink); } .nav-cta:hover{ background:var(–signal); border-color:var(–signal); } .menu-btn{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; } .menu-btn span{ width:22px; height:2px; background:var(–ink); display:block; } /* ———- hero ———- */ .hero{ background:var(–ink); color:var(–paper); padding:96px 0 76px; position:relative; overflow:hidden; } .hero .wrap{ position:relative; z-index:2; } .hero-eyebrow-line{ display:flex; align-items:center; gap:14px; margin-bottom:34px; color:var(–steel-soft); font-size:14px; } .hero-eyebrow-line .dash{ width:38px; height:1px; background:var(–signal); } .hero h1{ font-size:clamp(38px, 5.6vw, 76px); line-height:1.06; max-width:15ch; } .hero h1 span{ color:var(–signal); } .hero-sub{ margin-top:28px; max-width:56ch; font-size:18px; color:#D8D7D3; } .hero-actions{ margin-top:44px; display:flex; gap:16px; flex-wrap:wrap; } .btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 26px; font-size:15px; font-weight:600; border:1px solid var(–paper); } .btn-solid{ background:var(–signal); border-color:var(–signal); color:var(–ink); } .btn-solid:hover{ background:#fff; border-color:#fff; } .btn-ghost{ color:var(–paper); } .btn-ghost:hover{ background:rgba(255,255,255,.08); } .hero-strip{ margin-top:74px; border-top:1px solid var(–line-on-ink); padding-top:26px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; } .hero-strip .item{ font-size:13.5px; color:var(–steel-soft); } .hero-strip .item b{ display:block; color:var(–paper); font-size:15px; margin-bottom:4px; font-weight:600; } .hero-mark{ position:absolute; inset-inline-end:-4%; top:50%; transform:translateY(-50%); width:46%; opacity:.9; filter:drop-shadow(0 0 40px rgba(255,68,20,.08)); } @media (max-width:900px){ .hero-mark{ display:none; } .hero-strip{ grid-template-columns:repeat(2,1fr); } } /* ———- section shell ———- */ .section{ padding:96px 0; } .section.on-concrete{ background:var(–concrete); } .section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; flex-wrap:wrap; } .section-head .kicker{ font-size:14px; color:var(–signal); font-weight:600; margin-bottom:14px; display:block; } .section-head h2{ font-size:clamp(28px,3.4vw,42px); max-width:20ch; } .section-head .desc{ max-width:38ch; color:var(–steel); font-size:15.5px; } /* ———- services : asymmetric rows, not cards ———- */ .services-list{ border-top:1px solid var(–line); } .service-row{ display:grid; grid-template-columns:0.9fr 1.6fr 1fr; gap:32px; padding:38px 0; border-bottom:1px solid var(–line); align-items:start; } .service-row .idx{ font-family:var(–font-en-head); font-size:14px; color:var(–steel-soft); padding-top:4px; } .service-row h3{ font-size:23px; } .service-row .desc{ color:var(–steel); font-size:15.5px; max-width:52ch; } .service-row .tags{ display:flex; flex-wrap:wrap; gap:8px; align-content:flex-start; } .service-row .tags span{ border:1px solid var(–line); padding:6px 12px; font-size:12.5px; color:var(–steel); } .service-row:hover{ background:linear-gradient(90deg, rgba(255,68,20,.04), transparent); } @media (max-width:820px){ .service-row{ grid-template-columns:1fr; gap:14px; } } /* ———- process : legitimate numbered sequence ———- */ .process{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border:1px solid var(–line); } .process .step{ padding:36px 28px; border-inline-end:1px solid var(–line); } .process .step:last-child{ border-inline-end:none; } .process .num{ font-family:var(–font-en-head); font-size:34px; color:var(–signal); font-weight:700; } .process h3{ font-size:18px; margin-top:18px; } .process p{ font-size:14.5px; color:var(–steel); margin-top:10px; } @media (max-width:820px){ .process{ grid-template-columns:1fr; } .process .step{ border-inline-end:none; border-bottom:1px solid var(–line); } .process .step:last-child{ border-bottom:none; } } /* ———- stats strip on ink ———- */ .stats{ background:var(–ink); color:var(–paper); padding:80px 0; } .stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:40px; } .stat .n{ font-family:var(–font-en-head); font-weight:700; font-size:clamp(34px,4vw,54px); color:var(–signal); line-height:1; } .stat .l{ margin-top:14px; font-size:14.5px; color:var(–steel-soft); max-width:22ch; } @media (max-width:820px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } } /* ———- work / gallery ———- */ .work-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; } .work-item{ position:relative; overflow:hidden; background:var(–concrete); border:1px solid var(–line); aspect-ratio:4/3; display:flex; align-items:flex-end; } .work-item.tall{ grid-column:span 3; aspect-ratio:4/5; } .work-item.wide{ grid-column:span 3; } .work-item .cap{ padding:20px; color:var(–ink); position:relative; z-index:2; width:100%; background:linear-gradient(0deg, rgba(255,255,255,.92), rgba(255,255,255,0)); } .work-item .cap b{ display:block; font-size:15px; } .work-item .cap span{ font-size:12.5px; color:var(–steel); } .work-item .swatch{ position:absolute; inset:0; background: repeating-linear-gradient(135deg, transparent 0 18px, rgba(10,10,10,.045) 18px 19px); } @media (max-width:820px){ .work-grid{ grid-template-columns:1fr 1fr; } .work-item.tall, .work-item.wide{ grid-column:span 2; } } /* ———- CTA ———- */ .cta{ background:var(–signal); color:var(–ink); padding:88px 0; } .cta .wrap{ display:flex; justify-content:space-between; align-items:center; gap:40px; flex-wrap:wrap; } .cta h2{ font-size:clamp(28px,3.6vw,44px); max-width:16ch; } .cta .btn{ border-color:var(–ink); } .cta .btn-solid{ background:var(–ink); color:var(–paper); border-color:var(–ink); } .cta .btn-solid:hover{ background:var(–paper); color:var(–ink); } /* ———- contact ———- */ .contact{ padding:96px 0; } .contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; } .contact-info .item{ margin-bottom:28px; } .contact-info .item .l{ font-size:13px; color:var(–steel); margin-bottom:6px; } .contact-info .item .v{ font-size:17px; font-weight:600; } .form{ display:flex; flex-direction:column; gap:16px; } .form input, .form textarea, .form select{ border:1px solid var(–line); background:none; padding:14px 16px; font-size:15px; font-family:inherit; color:var(–ink); width:100%; } .form input:focus, .form textarea:focus, .form select:focus{ outline:2px solid var(–signal); outline-offset:2px; } .form textarea{ resize:vertical; min-height:110px; } .form .submit{ background:var(–ink); color:var(–paper); border:1px solid var(–ink); padding:15px 24px; font-weight:600; align-self:flex-start; } .form .submit:hover{ background:var(–signal); border-color:var(–signal); color:var(–ink); } @media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } } /* ———- footer ———- */ footer{ background:var(–ink); color:var(–steel-soft); padding:56px 0 30px; } .footer-top{ display:flex; justify-content:space-between; align-items:center; gap:24px; padding-bottom:36px; border-bottom:1px solid var(–line-on-ink); flex-wrap:wrap; } .footer-nav{ display:flex; gap:28px; flex-wrap:wrap; } .footer-nav a{ font-size:14px; color:var(–steel-soft); } .footer-nav a:hover{ color:var(–paper); } .footer-bottom{ padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; } /* ———- lang visibility ———- */ [data-lang]{ display:none; } html[lang=”ar”] [data-lang=”ar”]{ display:revert; } html[lang=”en”] [data-lang=”en”]{ display:revert; } html[lang=”ar”] span[data-lang=”ar”], html[lang=”en”] span[data-lang=”en”]{ display:inline; } /* ———- reveal (single orchestrated hero sequence) ———- */ .reveal{ opacity:0; transform:translateY(14px); } .hero.play .reveal{ animation:riseIn .7s cubic-bezier(.22,.9,.3,1) forwards; } .hero.play .reveal:nth-child(1){ animation-delay:.05s; } .hero.play .reveal:nth-child(2){ animation-delay:.15s; } .hero.play .reveal:nth-child(3){ animation-delay:.25s; } .hero.play .reveal:nth-child(4){ animation-delay:.35s; } @keyframes riseIn{ to{ opacity:1; transform:none; } } /* ———- mobile nav ———- */ @media (max-width:900px){ .nav-links{ display:none; } .menu-btn{ display:flex; } .nav{ gap:14px; } } ::selection{ background:var(–signal); color:var(–ink); } :focus-visible{ outline:2px solid var(–signal); outline-offset:2px; }