/*
Theme Name: Ahmed ElAlem
Theme URI: https://ahmedelalem.com/
Author: Ahmed ElAlem
Description: A multilingual portfolio, services and digital shop theme. Arabic-first, with light and dark appearances.
Version: 1.4.0
Requires at least: 6.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ahmed-elalem
*/
:root{--bg:#fbf8f2;--surface:#fff;--soft:#f0f2ed;--ink:#19282d;--muted:#63716b;--line:#dce3dc;--accent:#007052;--accent-soft:#dce9e1;--shadow:0 20px 55px #1c43330b;--radius:16px;color-scheme:light}
:root[data-theme=dark]{--bg:#0c1715;--surface:#14221f;--soft:#101e1a;--ink:#edf4ee;--muted:#a0b2a9;--line:#2b4139;--accent:#66dab1;--accent-soft:#17372c;--shadow:0 20px 55px #0003;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Segoe UI",Tahoma,Arial,sans-serif;font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3{line-height:1.3;letter-spacing:-.035em;margin:0 0 18px;font-weight:750}h1{font-size:clamp(40px,4.7vw,70px);line-height:1.32}h2{font-size:clamp(30px,3.2vw,44px)}h3{font-size:22px;letter-spacing:-.02em}p{margin:0 0 20px;color:var(--muted)}em{font-style:normal;color:var(--accent)}.wrap{width:min(1180px,calc(100% - 56px));margin-inline:auto}.site-header{position:sticky;top:0;background:var(--bg);border-bottom:1px solid var(--line);z-index:30}.admin-bar .site-header{top:32px}.header-row{display:flex;gap:30px;align-items:center;min-height:92px}.brand{display:flex;flex-direction:column;border-inline-start:3px solid var(--accent);padding-inline-start:13px;line-height:1.25;white-space:nowrap}.brand strong{font-size:23px}.brand span{font-size:10px;letter-spacing:.08em;color:var(--muted);margin-top:8px}#primary-nav{display:flex;gap:25px;align-items:center;flex:1;justify-content:center;font-size:13px;font-weight:600}#primary-nav a:hover,.text-link:hover{color:var(--accent)}.header-tools{display:flex;align-items:center;gap:16px}.languages{display:flex;gap:9px;font-size:11px;direction:ltr;letter-spacing:.05em}.languages a{color:var(--muted)}.languages [aria-current]{color:var(--accent);font-weight:800}.theme-toggle,.menu-toggle{border:1px solid var(--line);background:var(--surface);color:var(--ink);width:40px;height:40px;border-radius:50%;cursor:pointer;line-height:1;font-size:22px}.menu-toggle{display:none}.skip-link{position:fixed;top:-100px;left:20px;background:var(--accent);color:var(--bg);padding:10px 20px;z-index:100}.skip-link:focus{top:10px}.hero{display:grid;grid-template-columns:1.07fr 1fr;gap:65px;align-items:center;padding-block:88px 94px}.eyebrow{display:block;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.06em;margin-bottom:21px}.eyebrow i,.status-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-inline-end:8px}.hero-copy>p{font-size:18px;max-width:540px;line-height:1.95}.actions{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:var(--bg);padding:13px 24px;font-size:14px;font-weight:700;border:1px solid var(--accent);border-radius:7px;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.button.outline{background:transparent;color:var(--ink);border-color:var(--line)}.skills{display:flex;flex-wrap:wrap;gap:14px;direction:ltr;justify-content:flex-end;font-size:12px;color:var(--muted);margin-top:34px}html[dir=ltr] .skills{justify-content:flex-start}.skills b{color:var(--accent)}.hero-visual{position:relative;padding:12px;border:1px solid var(--line);border-radius:120px 16px 16px 16px;background:var(--soft);box-shadow:var(--shadow)}.hero-visual>img{width:100%;aspect-ratio:1/1.1;object-fit:cover;border-radius:109px 9px 9px 9px}.visual-label{position:absolute;bottom:32px;inset-inline:0;margin:auto;width:max-content;max-width:90%;background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:12px 18px;box-shadow:var(--shadow);font-size:12px}.intro-strip{border-block:1px solid var(--line);background:var(--soft);padding:20px 0}.intro-strip>.wrap{display:flex;justify-content:space-between;gap:20px;align-items:center}.intro-strip span{font-weight:700;font-size:14px}.intro-strip p{margin:0;font-size:13px}.section{padding-block:88px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-bottom:35px}.section-heading .eyebrow{margin-bottom:12px}.section-heading h2{margin:0}.section-heading>p{max-width:360px;font-size:15px;margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.service-card{padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.service-card:hover{border-color:var(--accent);transform:translateY(-4px)}.service-icon{color:var(--accent);font-size:35px;line-height:1;margin-bottom:25px}.service-card h3{font-size:21px}.service-card p{font-size:14px;line-height:1.9}.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line);font-size:12px;font-weight:700}.card-bottom>a{color:var(--accent)}.soft-section{background:var(--soft)}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.image-link{display:block;overflow:hidden;border-radius:11px;position:relative}.image-link img{width:100%;aspect-ratio:1.65;object-fit:cover;transition:transform .5s}.image-link:hover img{transform:scale(1.035)}.image-arrow{position:absolute;inset-inline-end:18px;bottom:18px;background:var(--surface);width:40px;height:40px;border-radius:50%;text-align:center;line-height:40px;color:var(--accent)}.project-card h3{margin-top:22px;margin-bottom:8px}.project-card p{font-size:14px;margin-bottom:0}.text-link{color:var(--accent);font-size:14px;font-weight:700;white-space:nowrap}.category-pills{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:28px}.category-pills span{border:1px solid var(--line);border-radius:50px;padding:7px 18px;font-size:13px}.category-pills span:first-child{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent)}.product-grid,.article-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.product-card,.article-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface);display:flex;flex-direction:column}.product-card .image-link,.article-card .image-link{border-radius:0}.card-copy{padding:24px;display:flex;flex-direction:column;flex:1}.card-copy h3{font-size:20px;margin-bottom:12px}.card-copy p{font-size:14px}.card-copy .text-link{margin-top:auto}.meta{font-size:11px;color:var(--muted);margin-bottom:12px}.empty-products{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:25px;border-radius:var(--radius)}.empty-products img{width:100%;aspect-ratio:1.6;object-fit:cover;border-radius:10px}.empty-products>div{padding:10px 15px}.about-section{display:grid;grid-template-columns:1fr 1.6fr;gap:70px}.large-copy{font-size:21px;color:var(--ink);line-height:1.85}.socials{display:flex;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--accent);margin-top:20px}.contact-section{display:grid;grid-template-columns:1.3fr 1fr;gap:60px;background:var(--accent-soft);padding:50px;border-radius:var(--radius);margin-block:0 70px}.contact-section h2{font-size:34px}.contact-section p{font-size:15px}.contact-details{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px}.contact-details>a{font-size:18px;overflow-wrap:anywhere}.contact-details p{margin:0}.site-footer{border-top:1px solid var(--line);padding:30px 0}.site-footer>.wrap{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:12px;color:var(--muted)}.site-footer .brand{font-size:16px;color:var(--ink);font-weight:700}.whatsapp-float{position:fixed;bottom:24px;inset-inline-end:24px;width:53px;height:53px;display:grid;place-items:center;background:#007052;color:#fff;border:1px solid #ffffff55;border-radius:50%;box-shadow:0 5px 25px #0003;z-index:25}.whatsapp-float svg{width:30px;height:30px}.content-page{padding-block:65px 90px}.reading{max-width:800px;margin:auto}.reading>h1{font-size:clamp(34px,4vw,56px);margin:20px 0}.reading .featured{border-radius:15px;margin:30px 0;width:100%;max-height:500px;object-fit:cover}.entry-content{font-size:18px;line-height:1.95}.entry-content h2{font-size:29px;margin-top:45px}.entry-content h3{font-size:23px;margin-top:28px}.entry-content ul,.entry-content ol{padding-inline-start:25px;color:var(--muted)}.entry-content li{margin-bottom:12px}.entry-content a:not(.button){color:var(--accent);text-decoration:underline}.entry-content img{height:auto}.entry-content table{border-collapse:collapse;width:100%;font-size:15px}.entry-content th,.entry-content td{border:1px solid var(--line);padding:12px}.entry-content blockquote{border-inline-start:3px solid var(--accent);margin:30px 0;padding:12px 24px;background:var(--soft)}.single-cta{margin:40px 0;padding:30px;background:var(--soft);border-radius:12px}.single-cta strong{display:block;margin-bottom:18px}.pagination{margin-top:40px;display:flex;gap:10px;justify-content:center}.pagination .page-numbers{padding:6px 14px;border:1px solid var(--line);border-radius:5px}.pagination .current{background:var(--accent);color:var(--bg)}.archive-heading{margin-bottom:40px}.woocommerce .woocommerce-breadcrumb{color:var(--muted)}.woocommerce button.button,.woocommerce a.button,.woocommerce input.button{background:var(--accent)!important;color:var(--bg)!important;border-radius:7px;padding:14px 22px}.woocommerce input,.woocommerce textarea,.woocommerce select{background:var(--surface);color:var(--ink);padding:10px;border:1px solid var(--line);border-radius:5px}.woocommerce div.product p.price,.woocommerce div.product span.price,.woocommerce ul.products li.product .price{color:var(--accent)}.woocommerce .woocommerce-info,.woocommerce .woocommerce-message{background:var(--soft);color:var(--ink);border-color:var(--accent)}.woocommerce div.product .woocommerce-tabs ul.tabs li{background:var(--soft);border-color:var(--line)}.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--surface);color:var(--ink)}.woocommerce table.shop_table{border-color:var(--line)}.woocommerce #payment,.woocommerce .cart-collaterals{background:var(--soft)}.search-form{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.search-form input{padding:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px}.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
@media(min-width:1600px){.wrap{width:min(1280px,calc(100% - 80px))}}
@media(max-width:1050px){.header-row{gap:20px}#primary-nav{gap:15px}.hero{gap:35px;padding-block:60px}.service-grid{grid-template-columns:repeat(2,1fr)}.brand strong{font-size:20px}.header-tools{gap:10px}.section{padding-block:65px}.contact-section{padding:35px;gap:35px}}
@media(max-width:820px){.wrap{width:calc(100% - 36px)}.header-row{min-height:78px;flex-wrap:wrap;gap:14px}.brand{margin-inline-end:auto}.menu-toggle{display:block;order:3}.header-tools{order:2}#primary-nav{display:none;order:4;flex-basis:100%;padding:8px 0 22px;justify-content:flex-start;flex-wrap:wrap;font-size:15px}#primary-nav.open{display:flex}.hero{grid-template-columns:1fr;gap:35px}.hero-copy{max-width:620px}.hero-visual{max-width:600px;width:100%;margin-inline:auto}.hero-visual>img{aspect-ratio:1.5}.section-heading{align-items:flex-start;flex-direction:column;gap:14px}.section-heading>p{max-width:100%}.product-grid,.article-grid{grid-template-columns:repeat(2,1fr)}.intro-strip>.wrap{align-items:flex-start;flex-direction:column;gap:5px}.about-section,.contact-section{grid-template-columns:1fr;gap:25px}.about-section{padding-bottom:55px}.contact-section{margin-bottom:45px}.empty-products{gap:20px}.site-footer>.wrap{flex-wrap:wrap}.admin-bar .site-header{top:46px}}
@media(max-width:540px){body{font-size:15px}.header-row{gap:10px}.brand strong{font-size:19px}.brand span{font-size:8px}.languages{font-size:10px;gap:6px}.theme-toggle,.menu-toggle{width:33px;height:33px;font-size:19px}.hero{padding-block:43px}.hero-copy>p{font-size:16px}h1{font-size:40px}.actions{gap:10px}.button{padding:12px 18px;font-size:13px}.hero-visual{border-radius:70px 12px 12px 12px}.hero-visual>img{border-radius:60px 8px 8px 8px}.visual-label{font-size:10px;bottom:25px;padding:8px 12px}.section{padding-block:48px}.service-grid,.project-grid,.product-grid,.article-grid{grid-template-columns:1fr}.service-card{padding:25px}.project-grid{gap:30px}.empty-products{grid-template-columns:1fr;padding:18px}.contact-section{padding:28px}.contact-section h2{font-size:28px}.contact-details>a{font-size:15px}.large-copy{font-size:18px}.entry-content{font-size:16px}.reading>h1{font-size:34px}.site-footer>.wrap{flex-direction:column;align-items:flex-start}.whatsapp-float{width:47px;height:47px;bottom:16px;inset-inline-end:16px}.admin-bar .site-header{top:0}.category-pills{gap:7px}.category-pills span{padding:6px 12px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Ahmed ElAlem approved identity, v1.1. */
@font-face{font-family:Manrope;src:url('fonts/manrope.woff') format('woff');font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:Cairo;src:url('fonts/cairo.woff') format('woff');font-style:normal;font-weight:200 1000;font-display:swap}
body{font-family:Manrope,Arial,sans-serif}html[lang=ar] body{font-family:Cairo,Tahoma,sans-serif}html[lang=ar] h1,html[lang=ar] h2,html[lang=ar] h3{letter-spacing:0}
.brand{border:0;padding:0;flex-shrink:0;gap:5px}.brand-logo{width:210px;height:auto;aspect-ratio:1140/176}.brand-logo-dark{display:none}.brand span{margin-top:4px;text-align:center;font-size:10px;letter-spacing:.015em}
[data-theme=dark] .brand-logo-light{display:none}[data-theme=dark] .brand-logo-dark{display:block}
.site-footer .brand-logo{width:190px}.header-row{gap:24px}#primary-nav{gap:20px}
.hero{gap:48px}.hero h1{font-size:clamp(36px,3.65vw,58px);line-height:1.48}.hero-brand-stamp{position:absolute;top:35px;inset-inline-end:30px;background:#fbf8f2;padding:14px;width:120px;border:1px solid #ffffff88;border-radius:18px;box-shadow:0 8px 30px #19282d22;transform:rotate(-5deg);z-index:1}.hero-brand-stamp img{width:100%;height:auto}
.contact-section{position:relative;overflow:hidden}.contact-section:before{content:"";position:absolute;inset-inline-end:-60px;bottom:-100px;width:300px;height:300px;border:1px solid var(--accent);border-radius:50%;opacity:.13;pointer-events:none}
.related-content{border-top:1px solid var(--line);padding-top:32px;margin-top:45px}.related-content h2{font-size:26px}.related-content ul{list-style:none;padding:0;display:grid;gap:14px}.related-content a{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
@media(max-width:1050px){.brand-logo{width:180px}#primary-nav{gap:13px}.header-row{gap:16px}}
@media(max-width:540px){.brand-logo{width:145px}.brand span{font-size:8px}.header-row{gap:9px}.header-tools{gap:7px}.hero h1{font-size:34px}.hero-brand-stamp{width:88px;top:25px;inset-inline-end:22px;padding:10px}.hero{gap:30px}}
@media(max-width:360px){.brand-logo{width:125px}.languages{gap:4px}.header-tools{gap:5px}.hero h1{font-size:30px}}

/* 1.1.2: intrinsic WordPress image heights must not stretch card layouts. */
.hero-visual>img{height:auto!important;aspect-ratio:1/1.1;object-fit:cover}
.image-link{aspect-ratio:1.65;overflow:hidden}
.image-link img{width:100%!important;height:100%!important;aspect-ratio:auto;object-fit:cover}
.empty-products>img{height:auto!important;aspect-ratio:1.6;object-fit:cover}
.reading .featured{height:auto!important;max-height:500px;object-fit:cover}
.service-grid,.project-grid,.article-grid,.product-grid{align-items:stretch}
@media(max-width:820px){.hero-visual>img{aspect-ratio:1.5}}
/* Career pages: readable RTL/LTR timeline, no decorative stock photography. */
.career-page{max-width:1040px}.career-page h1{margin-top:22px;font-size:clamp(32px,4vw,52px)}.experience-intro{padding:30px 0 45px;max-width:820px}.experience-intro h2{font-size:clamp(25px,3vw,37px)}.career-timeline{list-style:none!important;margin:32px 0 55px!important;padding:0!important}.career-step{position:relative;border-inline-start:2px solid var(--line);padding:0 0 36px;padding-inline-start:34px;margin:0!important}.career-step:before{content:"";position:absolute;inset-inline-start:-7px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px var(--bg)}.career-step:last-child{padding-bottom:0}.career-step h3{margin:6px 0;font-size:25px}.career-date{color:var(--accent);font-size:14px;font-weight:700;margin:0}.career-company{color:var(--ink);margin-bottom:12px}.career-step ul{padding-inline-start:22px;color:var(--muted)}.career-skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.career-skill-grid>div{border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:24px}.career-skill-grid h3{font-size:20px}.career-skill-grid p{font-size:14px;margin:0}.career-education{padding:40px 0}.career-contact{padding:30px;background:var(--accent-soft);border-radius:16px}.career-contact h2{font-size:26px}.career-contact .text-link{margin-inline-start:20px}.career-home-link{margin-top:25px}.whatsapp-float{display:flex;align-items:center;justify-content:center;background:#007052;color:#fff;border:1px solid #ffffff44;box-shadow:0 5px 18px #19282d26}.whatsapp-float svg{width:28px;height:28px;flex:none;display:block;fill:currentColor;stroke:none}
@media(max-width:720px){.career-skill-grid{grid-template-columns:1fr}.career-step{padding-inline-start:22px}.career-step h3{font-size:22px}.career-page .entry-content{font-size:16px}.career-contact{padding:22px}}

/* 1.4.0: content links must not override button contrast. */
.entry-content a.button,
.entry-content a.button:visited,
.entry-content a.button:hover,
.entry-content a.button:focus-visible{color:var(--bg);background:var(--accent);text-decoration:none}
.entry-content a.button.outline,
.entry-content a.button.outline:visited,
.entry-content a.button.outline:hover,
.entry-content a.button.outline:focus-visible{color:var(--ink);background:transparent}

/* Whole-card native links: keyboard, middle click and open-in-new-tab remain native. */
.service-card,.project-card,.product-card,.article-card{position:relative;isolation:isolate;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.card-link::after{content:"";position:absolute;inset:0;z-index:2;border-radius:var(--radius)}
.service-card:focus-within,.project-card:focus-within,.product-card:focus-within,.article-card:focus-within{outline:2px solid var(--accent);outline-offset:4px}
@media(hover:hover){.service-card:hover,.project-card:hover,.product-card:hover,.article-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--accent)}.project-card:hover img,.product-card:hover img,.article-card:hover img{transform:scale(1.035)}}
.career-timeline{position:relative;--career-progress:0}
.career-timeline::before{content:"";position:absolute;inset-inline-start:0;top:8px;bottom:10px;width:2px;background:var(--accent);transform:scaleY(var(--career-progress));transform-origin:top;z-index:1;pointer-events:none}
.career-step::before{z-index:2}.career-step.ae-entered::before{box-shadow:0 0 0 6px var(--accent-soft)}
@media(prefers-reduced-motion:reduce){.service-card:hover,.project-card:hover,.product-card:hover,.article-card:hover,.button:hover{transform:none}.project-card:hover img,.product-card:hover img,.article-card:hover img{transform:none}.career-timeline::before{transform:none}}
