/* diyaaalmasri.com: plain CSS, logical properties only (RTL first) */
@font-face{font-family:Cairo;font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/cairo-ar.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+FB50-FDFF,U+FE70-FEFF,U+200C-200F}
@font-face{font-family:Cairo;font-style:normal;font-weight:400 800;font-display:swap;src:url(../fonts/cairo-lat.woff2) format("woff2");unicode-range:U+0000-00FF,U+2010-2027,U+2190-2194,U+2212,U+2248,U+2264-2265}

/*THEME_START*/
:root{--ivory:#F7F5EF;--paper:#FDFCFA;--teal:#0F4C4F;--teal-dk:#0B3739;--aqua:#7FB5B0;--aqua-lt:#DFE8E2;--copper:#A25A28;--ink:#1E2A2C;--muted:#545D5D;--line:rgba(15,76,79,.16)}
/*THEME_END*/
:root{--r:14px;--w:1120px;--gap:clamp(1rem,3vw,2rem)}
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font:400 1.0625rem/1.85 Cairo,"Segoe UI",Tahoma,"Noto Naskh Arabic",system-ui,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-underline-offset:.25em}
a:hover{color:var(--copper)}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-weight:700;line-height:1.4;color:var(--teal);margin:0 0 .6em}
h1{font-size:clamp(1.9rem,5.2vw,3rem);font-weight:800}
h2{font-size:clamp(1.45rem,3.4vw,2rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
.ltr{direction:ltr;unicode-bidi:isolate;display:inline-block;font-weight:600}
.wrap{width:min(100% - 2*var(--gap),var(--w));margin-inline:auto}
.skip{position:absolute;inset-inline-start:1rem;top:-4rem;background:var(--copper);color:#fff;padding:.5rem 1rem;border-radius:8px;z-index:20}
.skip:focus{top:.5rem}

/* header: sticky, deep teal so the gold signature reads */
.site-header{position:sticky;top:0;z-index:10;background:var(--teal);border-block-end:1px solid var(--teal-dk)}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1.5rem;padding-block:.5rem}
.brand{display:block;line-height:0}
.brand img{height:44px;width:auto}
.nav{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;max-width:100%}
.nav::-webkit-scrollbar{display:none}
.nav a{color:var(--ivory);text-decoration:none;font-weight:600;font-size:.95rem;padding:.4rem .8rem;border-radius:999px;white-space:nowrap}
.nav a:hover{background:rgba(247,245,239,.12);color:#fff}
.nav a[aria-current=page]{background:var(--ivory);color:var(--teal)}
@media (max-width:640px){.site-header .wrap{justify-content:center}.nav{width:100%;justify-content:safe center}.nav a{padding:.3rem .55rem;font-size:.85rem}}

/* sections */
section{padding-block:clamp(2.5rem,7vw,4.5rem)}
.eyebrow{display:inline-block;color:var(--copper);font-weight:700;font-size:.9rem;letter-spacing:.02em;margin-block-end:.5rem}
.lead{font-size:1.15rem;color:var(--muted);max-width:44rem}
.alt{background:var(--paper);border-block:1px solid var(--line)}

/* hero */
.hero{padding-block:clamp(2rem,6vw,4rem) 0}
.hero-grid{display:grid;gap:var(--gap);align-items:end}
.hero-text{padding-block-end:clamp(1.5rem,5vw,3.5rem)}
.hero h1{margin-block-end:.15em}
.title-line{color:var(--copper);font-weight:700;font-size:1.2rem;margin-block-end:1.1rem}
.hero-photo{background:radial-gradient(closest-side,var(--aqua-lt),transparent 92%);justify-self:center;width:min(100%,420px)}
.btns{display:flex;flex-wrap:wrap;gap:.75rem;margin-block-start:1.5rem}
.btn{display:inline-block;text-decoration:none;font-weight:700;padding:.7rem 1.4rem;border-radius:999px;border:2px solid var(--teal);background:var(--teal);color:var(--ivory)}
.btn:hover{background:var(--teal-dk);color:#fff}
.btn.ghost{background:transparent;color:var(--teal)}
.btn.ghost:hover{background:var(--aqua-lt);color:var(--teal-dk)}
@media (min-width:820px){.hero-grid{grid-template-columns:1.15fr .85fr}}

/* cards */
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));margin-block-start:1.5rem}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.4rem}
.card h3{margin-block-end:.35em}
.card p{margin:0;color:var(--muted);font-size:1rem;line-height:1.8}
.alt .card{background:var(--ivory)}
.tag{display:inline-block;font-size:.8rem;font-weight:700;color:var(--copper);border:1px solid var(--copper);border-radius:999px;padding:0 .7rem;margin-block-end:.6rem}
.terr .card{border-inline-start:4px solid var(--copper)}
.terr .label{display:block;direction:ltr;unicode-bidi:isolate;text-align:end;font-weight:800;letter-spacing:.12em;font-size:.95rem;color:var(--copper);margin-block-end:.3rem}

/* partners + products */
.partners{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-block-start:1.5rem}
@media (min-width:900px){.partners{grid-template-columns:repeat(4,1fr)}}
@media (max-width:480px){.partners{grid-template-columns:1fr}}
.partner{text-align:center}
.partner img{height:56px;width:auto;max-width:100%;object-fit:contain;margin:0 auto .7rem}
.partner a{font-size:.95rem;font-weight:600}
.product .tag{margin-block-end:.5rem}
.product img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;margin-block-end:.8rem}
.product .price{font-weight:700;color:var(--copper);margin-block:.6rem .2rem}
.product .btn{margin-block-start:.6rem}

/* quote strip */
.quote{background:var(--teal);color:var(--ivory);text-align:center;padding-block:clamp(2.2rem,6vw,3.5rem)}
.quote p{margin:0 auto;max-width:46rem;font-size:clamp(1.25rem,3.2vw,1.8rem);font-weight:700;line-height:1.7}
.quote small{display:block;margin-block-start:.6rem;color:var(--aqua);font-size:1rem;font-weight:400}

/* equation + steps (series) */
.equation{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:center;margin-block:1.5rem 0;font-weight:700;color:var(--teal);font-size:1.15rem}
.equation>span{background:var(--aqua-lt);border:1px solid var(--line);border-radius:999px;padding:.2rem 1rem}
.equation b{color:var(--copper);font-size:1.5rem}
.steps{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:1rem;counter-reset:s}
.steps li{counter-increment:s;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.4rem 1.1rem 1.4rem;padding-inline-start:4.2rem;position:relative}
.steps li::before{content:counter(s);position:absolute;inset-inline-start:1.2rem;top:1rem;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--teal);color:var(--ivory);font-weight:700;display:grid;place-items:center;font-size:1rem}
.steps h3{margin-block-end:.2em}
.steps p{margin:0 0 .4em;color:var(--muted)}
.wip{display:inline-block;font-size:.8rem;font-weight:700;color:var(--muted);background:var(--aqua-lt);border-radius:999px;padding:0 .7rem}

/* about + articles */
.about-grid{display:grid;gap:var(--gap);align-items:start}
.about-photo{border-radius:var(--r);border:1px solid var(--line);overflow:hidden;max-width:420px}
@media (min-width:820px){.about-grid{grid-template-columns:1.3fr .7fr}}
.list{padding-inline-start:1.2rem;margin:0 0 1em}
.list li{margin-block-end:.4em}
.note{background:var(--aqua-lt);border:1px dashed var(--teal);border-radius:var(--r);padding:1rem 1.25rem;color:var(--teal-dk);font-weight:600}
.article{max-width:46rem}
.article section{padding-block:1.2rem}
.article .meta{color:var(--muted);font-size:.95rem}
.crumbs{font-size:.92rem;color:var(--muted);margin-block-end:1rem}
.empty{color:var(--muted)}

/* footer */
.site-footer{background:var(--teal-dk);color:#D5E4E1;padding-block:2.5rem;font-size:.97rem;line-height:1.8}
.site-footer a{color:var(--aqua)}
.site-footer .cols{display:grid;gap:1.5rem}
.site-footer strong{color:var(--ivory)}
.disclaimer{border-block-start:1px solid rgba(255,255,255,.15);margin-block-start:1.5rem;padding-block-start:1.2rem;color:#BFD3CF}
@media (min-width:820px){.site-footer .cols{grid-template-columns:1.2fr 1fr}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* gallery and drawn illustrations (render_site.py r_gallery / ILLUS) */
.gallery{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin-block-start:1.5rem}
.fig{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.fig img,.fig .ill{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.fig figcaption{padding:.8rem 1rem 1rem;color:var(--muted);font-size:.95rem;line-height:1.7}
.ill text{font-family:inherit;font-weight:800;font-size:15px;letter-spacing:.04em}
.ill text.i-sm{font-size:12.5px;letter-spacing:.02em}
.i-bg{fill:var(--aqua-lt)}.i-a{fill:var(--teal)}.i-b{fill:var(--copper)}.i-c{fill:var(--aqua)}.i-d{fill:var(--ivory);stroke:var(--teal);stroke-width:3}
.i-tl{fill:var(--ivory)}.i-td{fill:var(--teal)}.i-ring{fill:var(--ivory);stroke:var(--copper);stroke-width:5}.i-dot{fill:var(--teal)}
.i-v1{fill:var(--teal);fill-opacity:.88}.i-v2{fill:var(--copper);fill-opacity:.85}.i-v3{fill:var(--aqua);fill-opacity:.9}
.i-arrow{stroke:var(--teal);stroke-width:8;stroke-linecap:round;fill:none}.i-head{fill:var(--teal)}
.i-check{stroke:var(--ivory);stroke-width:9;stroke-linecap:round;stroke-linejoin:round;fill:none}
.i-cross{stroke:var(--ivory);stroke-width:8;stroke-linecap:round}.i-win{fill:var(--aqua-lt)}.i-door{fill:var(--aqua)}
.i-shield{fill:var(--copper)}.i-pill1{fill:var(--teal)}.i-pill2{fill:var(--copper)}
/* product cards: picture on top (photo, or drawn cover) */
.card.product{padding:0;overflow:hidden;display:flex;flex-direction:column}
.product .media img,.product .media .ill{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:0;margin:0}
.product .body{padding:1.1rem 1.3rem 1.3rem;display:flex;flex-direction:column;align-items:flex-start;flex:1}
.product .body p{flex:1}
.product .wip{margin-block:.7rem .1rem}
.c-bg{fill:var(--teal)}.c-ring{fill:none;stroke:var(--aqua);stroke-opacity:.35;stroke-width:18}
.c-ic{fill:var(--ivory)}.c-sh{fill:var(--aqua)}.c-ln{fill:var(--aqua)}.c-ln2{fill:var(--teal)}.c-ac{fill:var(--copper)}
.c-st,.c-sp{stroke:var(--ivory);stroke-width:8;stroke-linecap:round;fill:none}.c-sp{stroke:var(--aqua);stroke-width:4}
.c-ck{stroke:var(--copper);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;fill:none}

/* images inside posts */
.post-fig{margin:1.4rem auto;max-width:100%}
.post-fig img{width:100%;height:auto;border-radius:var(--r);border:1px solid var(--line)}
.post-fig figcaption{margin-block-start:.4rem;font-size:.9rem;color:var(--muted);text-align:center}
.post-fig.wide{max-width:none}
@media (min-width:640px){
.post-fig.left{float:inline-start;width:42%;margin:.3rem 0 1rem;margin-inline-end:1.4rem}
.post-fig.right{float:inline-end;width:42%;margin:.3rem 0 1rem;margin-inline-start:1.4rem}
}
.article section::after{content:"";display:block;clear:both}

/* hero background image: opacity is a class because the CSP forbids inline styles */
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}
.hero-bg.pos-top{object-position:top}
.hero-bg.pos-bottom{object-position:bottom}
.op-0{opacity:0}
.op-5{opacity:0.05}
.op-10{opacity:0.1}
.op-15{opacity:0.15}
.op-20{opacity:0.2}
.op-25{opacity:0.25}
.op-30{opacity:0.3}
.op-35{opacity:0.35}
.op-40{opacity:0.4}
.op-45{opacity:0.45}
.op-50{opacity:0.5}
.op-55{opacity:0.55}
.op-60{opacity:0.6}
.op-65{opacity:0.65}
.op-70{opacity:0.7}
.op-75{opacity:0.75}
.op-80{opacity:0.8}
.op-85{opacity:0.85}
.op-90{opacity:0.9}
.op-95{opacity:0.95}
.op-100{opacity:1}
