/*
Theme Name: Taraf Cabinets — ترف للخزائن
Theme URI: https://example.com/
Author: Grok Bot
Description: قالب فاخر لترف للخزائن بجدة — تفصيل غرف نوم وخزائن وسرائر وكنب. داكن وذهبي، حركة وفيديو، خدمات كبيرة، معرض وفيديوهات، إعداد تلقائي.
Version: 1.0.1
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: taraf-cabinets
Tags: rtl-language-support, custom-logo, custom-menu, one-column
*/
:root{--onyx:#0E0D0B;--char:#1A1815;--char2:#24211C;--gold:#C9A35B;--gold2:#E6C98A;--ivory:#F4EEE3;--walnut:#6B4A2E;--mut:#A79F92}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:Cairo,sans-serif;background:var(--onyx);color:var(--ivory);line-height:1.9;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
h1,h2,h3,.disp{font-family:Messiri,serif;font-weight:700;line-height:1.35}
.wrap{width:min(1240px,92%);margin:auto}
.gold{background:linear-gradient(100deg,#a8823f,#E6C98A 45%,#C9A35B 60%,#f3dfae);-webkit-background-clip:text;color:transparent}
.eyebrow{color:var(--gold);letter-spacing:.25em;font-size:.82rem;display:flex;align-items:center;gap:12px}
.eyebrow:before{content:"";width:40px;height:1px;background:var(--gold)}
.sec{padding:120px 0;position:relative}.sec h2{font-size:clamp(2rem,4vw,3.2rem);margin:10px 0 18px}
.lead{color:var(--mut);max-width:640px;font-size:1.08rem}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 34px;border:1px solid var(--gold);color:var(--onyx);background:linear-gradient(120deg,#b38c46,#E6C98A,#b38c46);background-size:200%;font-weight:700;transition:.5s;border-radius:2px}
.btn:hover{background-position:100%;transform:translateY(-3px);box-shadow:0 18px 40px -12px #c9a35b88}
.btn.ghost{background:transparent;color:var(--gold2)}.btn.ghost:hover{background:#c9a35b18}
/* header */
header.site-header{position:fixed;inset:0 0 auto;z-index:50;transition:.4s;padding:22px 0}
header.site-header.s{background:#0e0d0bdd;backdrop-filter:blur(14px);padding:12px 0;border-bottom:1px solid #c9a35b30}
header .wrap{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:12px}.logo b{font-family:Messiri;font-size:1.7rem}.logo small{display:block;font-size:.65rem;letter-spacing:.3em;color:var(--gold)}
.mono{width:46px;height:46px;border:1px solid var(--gold);display:grid;place-items:center;font-family:Messiri;font-size:1.5rem;color:var(--gold2);transform:rotate(45deg)}.mono span{transform:rotate(-45deg)}
nav{display:flex;gap:30px;font-size:.95rem}nav a{position:relative}nav a:after{content:"";position:absolute;bottom:-4px;right:0;width:0;height:1px;background:var(--gold);transition:.4s}nav a:hover:after{width:100%}
/* hero */
.hero{height:100vh;min-height:680px;position:relative;display:flex;align-items:center;overflow:hidden}
.hero video,.hero .bgimg{position:absolute;inset:-5%;width:110%;height:110%;object-fit:cover;filter:brightness(.42) saturate(.85)}
.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 70% 50%,transparent 20%,#0e0d0b 85%),linear-gradient(0deg,#0e0d0b 2%,transparent 40%)}
.hero .wrap{position:relative;z-index:2}.hero h1{font-size:clamp(2.6rem,6.5vw,5.6rem);max-width:900px}
.hero p{font-size:1.2rem;color:#d8cfbf;max-width:600px;margin:20px 0 38px}
.hero .ctas{display:flex;gap:16px;flex-wrap:wrap}
.scrollhint{position:absolute;bottom:34px;left:50%;z-index:3;width:26px;height:44px;border:1px solid var(--gold);border-radius:20px}
.scrollhint:after{content:"";position:absolute;top:8px;left:50%;width:3px;height:8px;margin-left:-1.5px;background:var(--gold);border-radius:3px;animation:sh 1.8s infinite}
@keyframes sh{to{transform:translateY(16px);opacity:0}}
.hero .line{display:block;overflow:hidden}.hero .line>span{display:inline-block;animation:up 1.2s cubic-bezier(.2,.7,.1,1) both}
.hero .line:nth-child(2)>span{animation-delay:.2s}@keyframes up{from{transform:translateY(110%)}}
/* marquee */
.marq{border-block:1px solid #c9a35b40;background:var(--char);overflow:hidden;padding:22px 0;white-space:nowrap}
.marq div{display:inline-flex;gap:60px;animation:mq 30s linear infinite;font-family:Messiri;font-size:1.6rem;color:var(--gold2)}
.marq i{font-style:normal;color:var(--gold);opacity:.6}@keyframes mq{to{transform:translateX(50%)}}
/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#c9a35b30;margin-top:-1px}
.stats>div{background:var(--onyx);padding:46px 20px;text-align:center}.stats b{font-family:Messiri;font-size:3.2rem;display:block}.stats span{color:var(--mut)}
/* services */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:60px}
.card{position:relative;height:520px;overflow:hidden;border:1px solid #c9a35b30;isolation:isolate}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:1.2s cubic-bezier(.2,.7,.1,1);filter:brightness(.7)}
.card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0e0d0b 5%,transparent 65%);z-index:0}
.card .in{position:absolute;inset:auto 0 0;padding:34px;z-index:2;transition:.6s}
.card .num{font-family:Messiri;color:var(--gold);font-size:.95rem;letter-spacing:.2em}
.card h3{font-size:1.9rem;margin:6px 0}.card p{color:#cfc6b6;max-height:0;opacity:0;overflow:hidden;transition:.6s}
.card .go{display:inline-flex;margin-top:14px;color:var(--gold2);gap:8px;border-bottom:1px solid var(--gold);padding-bottom:3px}
.card:before{content:"";position:absolute;inset:16px;border:1px solid var(--gold);z-index:3;opacity:0;transform:scale(1.06);transition:.7s;pointer-events:none}
.card:hover img{transform:scale(1.1);filter:brightness(.55)}.card:hover p{max-height:120px;opacity:1}.card:hover:before{opacity:.7;transform:none}
.tag{position:absolute;top:26px;right:26px;z-index:3;background:#0e0d0bb0;border:1px solid var(--gold);padding:2px 14px;font-size:.8rem;color:var(--gold2)}
/* why */
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.stack{position:relative;height:620px}.stack img{position:absolute;object-fit:cover;border:1px solid #c9a35b40}
.stack img:nth-child(1){width:72%;height:80%;top:0;right:0}.stack img:nth-child(2){width:52%;height:55%;bottom:0;left:0;box-shadow:0 30px 60px #000}
.stack .badge{position:absolute;bottom:40px;right:30px;background:var(--gold);color:var(--onyx);padding:22px 26px;font-family:Messiri;text-align:center;z-index:2}.badge b{font-size:2.6rem;display:block;line-height:1}
.feats{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:36px}.feats div{border-top:1px solid #c9a35b50;padding-top:16px}.feats h4{font-family:Messiri;color:var(--gold2);font-size:1.15rem}.feats p{color:var(--mut);font-size:.92rem}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:70px;position:relative}
.steps:before{content:"";position:absolute;top:44px;right:12%;left:12%;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.step{text-align:center;padding:0 20px}.step .c{width:88px;height:88px;margin:auto;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font-family:Messiri;font-size:2rem;color:var(--gold2);background:var(--onyx);position:relative;transition:.5s}
.step:hover .c{background:var(--gold);color:var(--onyx);box-shadow:0 0 0 10px #c9a35b22}
.step h3{margin:22px 0 6px;font-size:1.4rem}.step p{color:var(--mut);font-size:.93rem}
/* reels */
.reels{display:flex;gap:20px;overflow-x:auto;padding:50px 4% 30px;scroll-snap-type:x mandatory;scrollbar-width:none}
.reel{flex:0 0 260px;aspect-ratio:9/16;position:relative;overflow:hidden;border-radius:18px;cursor:pointer;scroll-snap-align:start;border:1px solid #c9a35b40;transition:.5s}
.reel video{width:100%;height:100%;object-fit:cover}.reel:hover{transform:translateY(-10px);border-color:var(--gold)}
.reel:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#000c,transparent 50%)}
.reel .pl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:#c9a35bdd;display:grid;place-items:center;z-index:2;color:var(--onyx);font-size:1.3rem;box-shadow:0 0 0 0 #c9a35b88;animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 22px #c9a35b00}}
.reel .cap{position:absolute;bottom:18px;right:18px;z-index:2;font-family:Messiri;font-size:1.1rem}
/* gallery */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 30px}.filters button{font:inherit;background:transparent;color:var(--ivory);border:1px solid #c9a35b50;padding:8px 22px;cursor:pointer;transition:.3s}
.filters button.on,.filters button:hover{background:var(--gold);color:var(--onyx)}
.masonry{columns:4;column-gap:14px}.masonry a{display:block;margin-bottom:14px;overflow:hidden;break-inside:avoid;position:relative;transition:.5s}
.masonry img{width:100%;transition:.8s}.masonry a:hover img{transform:scale(1.07)}
.masonry a:after{content:"+";position:absolute;inset:0;display:grid;place-items:center;font-size:3rem;color:var(--gold2);background:#0e0d0b88;opacity:0;transition:.4s}.masonry a:hover:after{opacity:1}
.masonry a.hide{display:none}
/* testimonials */
.testi{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:50px}.testi div{background:var(--char);border:1px solid #c9a35b30;padding:36px;position:relative}
.testi div:before{content:"”";font-family:Messiri;font-size:6rem;color:var(--gold);opacity:.3;position:absolute;top:-10px;left:24px}
.testi .st{color:var(--gold)}.testi b{display:block;margin-top:14px;font-family:Messiri;color:var(--gold2)}
/* cta */
.cta{position:relative;padding:150px 0;text-align:center;overflow:hidden}.cta img{position:absolute;inset:0;width:100%;height:130%;object-fit:cover;filter:brightness(.3)}
.cta .wrap{position:relative}.cta h2{font-size:clamp(2.2rem,5vw,4rem)}
/* footer */
footer{background:#080807;border-top:1px solid #c9a35b40;padding:80px 0 30px}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:40px}.fgrid h4{font-family:Messiri;color:var(--gold2);margin-bottom:14px;font-size:1.2rem}
.fgrid li{list-style:none;color:var(--mut);margin-bottom:6px}.soc{display:flex;gap:12px;margin-top:20px}
.soc a{width:44px;height:44px;border:1px solid var(--gold);display:grid;place-items:center;transition:.3s}.soc a:hover{background:var(--gold)}.soc svg{width:20px;fill:var(--gold2)}.soc a:hover svg{fill:var(--onyx)}
.map{height:200px;border:1px solid #c9a35b40;filter:grayscale(1) invert(.9) contrast(.9)}
.copy{text-align:center;color:#6d665b;margin-top:60px;font-size:.85rem;border-top:1px solid #ffffff10;padding-top:24px}
.float{position:fixed;bottom:26px;left:26px;z-index:60;display:flex;flex-direction:column;gap:12px}
.float a{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 30px #0008}.float svg{width:28px;fill:#fff}
.float .wa{background:#25D366;animation:pulse 2.4s infinite}.float .tel{background:var(--gold)}.float .tel svg{fill:var(--onyx)}
/* lightbox */
.lb{position:fixed;inset:0;background:#000e;z-index:100;display:none;place-items:center}.lb.on{display:grid}.lb img,.lb video{max-width:90vw;max-height:88vh}
.lb .x{position:absolute;top:20px;left:30px;font-size:2.4rem;color:var(--gold);cursor:pointer}
/* reveal */
.rv{opacity:0;transform:translateY(60px);transition:1.1s cubic-bezier(.2,.7,.1,1)}.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.12s}.rv.d2{transition-delay:.24s}.rv.d3{transition-delay:.36s}
.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E")}
/* service page */
.crumbs{color:var(--gold);font-size:.9rem;margin-bottom:12px}
.vs{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:50px}.vs>div{padding:46px;border:1px solid #c9a35b40;background:var(--char)}
.vs>div.best{background:linear-gradient(160deg,#2a2419,#14120f);border-color:var(--gold);position:relative}.vs .rib{position:absolute;top:-14px;right:30px;background:var(--gold);color:var(--onyx);padding:2px 16px;font-weight:700;font-size:.85rem}
.vs h3{font-size:1.8rem}.vs li{list-style:none;padding:8px 0;border-bottom:1px solid #ffffff10;color:#d5ccbd}.vs li:before{content:"◆ ";color:var(--gold);font-size:.7rem}
.fgrid4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:50px}.fgrid4>div{padding:34px;background:var(--char);border:1px solid #c9a35b25;transition:.5s}.fgrid4>div:hover{transform:translateY(-8px);border-color:var(--gold)}
.fgrid4 .ic{font-size:1.8rem;color:var(--gold)}.fgrid4 h4{font-family:Messiri;font-size:1.2rem;margin:10px 0}.fgrid4 p{color:var(--mut);font-size:.92rem}
.mats{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:40px}.mats div{text-align:center}.mats i{display:block;aspect-ratio:1;border-radius:50%;border:1px solid var(--gold);margin-bottom:10px;transition:.5s}.mats div:hover i{transform:rotate(25deg) scale(1.06)}
.faq details{border-bottom:1px solid #c9a35b40;padding:22px 0}.faq summary{font-family:Messiri;font-size:1.25rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between}.faq summary:after{content:"+";color:var(--gold);font-size:1.6rem}.faq details[open] summary:after{content:"−"}.faq p{color:var(--mut);margin-top:10px}
.article{columns:2;column-gap:60px;color:#cfc6b6}.article h3{color:var(--gold2);font-size:1.4rem;margin:10px 0}.article p{margin-bottom:14px}
.form{background:var(--char);border:1px solid var(--gold);padding:50px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form input,.form select,.form textarea{font:inherit;background:var(--onyx);color:var(--ivory);border:1px solid #c9a35b50;padding:14px}.form textarea,.form .full{grid-column:1/-1}
@media(max-width:900px){nav{display:none}.cards,.testi,.fgrid,.fgrid4,.vs,.split{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr;gap:40px}.steps:before{display:none}.masonry{columns:2}.card{height:440px}.card p{max-height:none;opacity:1}.stack{height:440px}.mats{grid-template-columns:repeat(3,1fr)}.article{columns:1}.form{grid-template-columns:1fr;padding:26px}.sec{padding:80px 0}.reel{flex-basis:200px}}
.mapcard{display:flex;flex-direction:column;align-items:center;justify-content:center;height:180px;border:1px solid #c9a35b50;background:repeating-linear-gradient(45deg,#14120f 0 18px,#181611 18px 36px),#14120f;transition:.4s}.mapcard:hover{border-color:var(--gold)}.mapcard svg{width:40px;fill:var(--gold);animation:bob 2s infinite}.mapcard b{font-family:Messiri;color:var(--gold2)}.mapcard small{color:var(--mut)}@keyframes bob{50%{transform:translateY(-6px)}}
/* ---- WordPress additions ---- */
.logo-img{height:62px;width:auto;transition:.4s}header.s .logo-img{height:48px}
.ph{display:block;width:100%;height:100%;background:linear-gradient(135deg,#24211C,#14120f)}
.menu{display:flex;gap:28px;list-style:none;align-items:center}.menu li{position:relative}
.menu a{position:relative;padding:8px 0;display:block}.menu>li>a:after{content:"";position:absolute;bottom:2px;right:0;width:0;height:1px;background:var(--gold);transition:.4s}.menu>li>a:hover:after,.menu .current-menu-item>a:after{width:100%}
.menu .menu-item-has-children>a:before{content:"▾";font-size:.7rem;margin-left:6px;color:var(--gold);float:left;margin-top:4px}
.sub-menu{position:absolute;top:100%;right:-20px;min-width:240px;list-style:none;background:#121110f5;border:1px solid #c9a35b40;padding:12px 0;opacity:0;visibility:hidden;transform:translateY(10px);transition:.35s;backdrop-filter:blur(12px)}
.sub-menu a{padding:9px 22px;font-size:.92rem}.sub-menu a:hover{color:var(--gold2);background:#c9a35b14}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.burger{display:none;background:none;border:1px solid var(--gold);width:46px;height:46px;cursor:pointer;color:var(--gold2);font-size:1.4rem}
.hcta{display:inline-flex}.btn svg{width:18px;fill:currentColor}
.phero{height:70vh;min-height:520px}.phero h1{font-size:clamp(2.2rem,5vw,4.2rem)}
.crumbs a:hover{color:var(--gold2)}
.entry{max-width:900px;color:#d5ccbd;font-size:1.05rem}.entry h2,.entry h3{color:var(--gold2);margin:26px 0 10px}.entry p{margin-bottom:16px}.entry a{color:var(--gold2);text-decoration:underline}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.contact-grid>a,.contact-grid>div{background:var(--char);border:1px solid #c9a35b30;padding:36px;transition:.4s;display:block}.contact-grid>a:hover{border-color:var(--gold);transform:translateY(-6px)}
.contact-grid svg{width:34px;fill:var(--gold)}.contact-grid h3{margin:12px 0 4px;font-size:1.3rem}.contact-grid p{color:var(--mut)}
.form button{border:0;font:inherit;font-weight:700;cursor:pointer;justify-content:center}.form .full{grid-column:1/-1}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.skip{position:absolute;top:-60px;right:10px;background:var(--gold);color:var(--onyx);padding:8px 16px;z-index:200}.skip:focus{top:10px}
.reel:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.foot-menu{list-style:none}.foot-menu li{margin-bottom:6px;color:var(--mut)}
@media(max-width:1100px){.menu{gap:18px;font-size:.9rem}}
@media(max-width:900px){
.burger{display:block}.hcta{display:none}
header nav{display:block;position:fixed;top:0;bottom:0;right:0;width:min(330px,86vw);background:#0b0a09f7;border-left:1px solid #c9a35b40;padding:90px 28px 30px;transform:translateX(105%);transition:.45s;overflow-y:auto}
body.nav-open header nav{transform:none}.menu{flex-direction:column;align-items:stretch;gap:0}.menu a{padding:12px 0;border-bottom:1px solid #ffffff10}
.sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;padding:0 14px 0 0;backdrop-filter:none}
.logo-img{height:50px}.contact-grid{grid-template-columns:1fr}.phero{height:62vh;min-height:440px}
.burger{position:relative;z-index:5}header.site-header.s{backdrop-filter:none;-webkit-backdrop-filter:none;background:#0e0d0bf5}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
body.nav-open .float{display:none}
