
@font-face{font-family:"PlDisplay";src:url(fonts/pl-display.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"PlScript";src:url(fonts/pl-script.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"PlSans";src:url(fonts/pl-sans.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"PlArabic";src:url(fonts/pl-ar.woff2) format("woff2");font-weight:400 700;font-display:swap}
:root{--blush:#fbe9ec;--blush2:#f6d3da;--rose:#c23a68;--rose-d:#9e2550;--teal:#1f8a93;--teal-d:#14656c;--ink:#22161d;--ink2:#4c3a44;--cream:#fffaf8;--line:rgba(34,22,29,.12);--r:22px;--shadow:0 30px 60px -30px rgba(110,30,60,.35)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:"PlSans",system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;font-size:17px;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}
.eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--rose)}
h1,h2,h3{font-family:"PlDisplay",Georgia,serif;font-weight:400;line-height:1.08;letter-spacing:.005em}
h2{font-size:clamp(2.1rem,4.4vw,3.5rem)}
h2 em,h1 em{font-family:"PlScript",cursive;font-style:normal;color:var(--rose);font-size:1.18em;line-height:.9;letter-spacing:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:0 1.5rem;border-radius:999px;font-weight:600;font-size:.98rem;transition:transform .25s,box-shadow .25s,background .25s;white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn-wa{background:var(--teal);color:#fff;box-shadow:0 14px 30px -14px rgba(20,101,108,.8)}
.btn-wa:hover{background:var(--teal-d)}
.btn-rose{background:var(--rose);color:#fff;box-shadow:0 14px 30px -14px rgba(158,37,80,.8)}
.btn-ghost{border:1.5px solid var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,250,248,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.hdr.scrolled{border-color:var(--line)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:1rem}
.brand{display:flex;flex-direction:column;line-height:1;min-height:44px;justify-content:center}
.brand .s{font-family:"PlScript",cursive;font-size:2.1rem;color:var(--rose);line-height:.8}
.brand .l{font-family:"PlDisplay",serif;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;color:var(--ink2);margin-top:4px}
.nav{display:flex;gap:2rem;align-items:center}
.nav a.lk{font-size:.92rem;font-weight:500;color:var(--ink2);position:relative;padding:12px 0}
.nav a.lk::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1.5px;background:var(--rose);transform:scaleX(0);transition:transform .3s;transform-origin:left}
.nav a.lk:hover::after{transform:scaleX(1)}
.nav .btn{min-height:46px;padding:0 1.2rem;font-size:.9rem}
/* hero */
.hero{position:relative;padding:56px 0 90px;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0 0 auto auto;width:55%;height:100%;background:radial-gradient(ellipse at 70% 40%,var(--blush2),transparent 65%);z-index:-1}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.9rem,6.4vw,5.6rem);margin:18px 0 22px}
.hero h1 em{display:block;font-size:1.25em;margin-top:.08em}
.lede{font-size:1.14rem;color:var(--ink2);max-width:33ch}
.ar{font-family:"PlArabic",serif;font-size:1.35rem;color:var(--rose-d);margin-top:18px;direction:rtl;text-align:left}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.facts{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px;font-size:.92rem;color:var(--ink2)}
.facts span{display:inline-flex;align-items:center;gap:.45rem}
.facts b{color:var(--ink)}
.star{color:#d89a1f}
.open{display:inline-flex;align-items:center;gap:.5rem;font-weight:600}
.open i{width:9px;height:9px;border-radius:50%;background:#9aa;box-shadow:0 0 0 4px rgba(150,170,170,.2)}
.open.on i{background:#21a35b;box-shadow:0 0 0 4px rgba(33,163,91,.18);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(33,163,91,.05)}}
.art{position:relative;justify-self:end;width:100%;max-width:500px}
.arch{border-radius:260px 260px 26px 26px;overflow:hidden;aspect-ratio:4/5.1;box-shadow:var(--shadow);border:10px solid #fff;outline:1px solid var(--blush2)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:80% 50%;transform:scale(1.06);animation:slowzoom 14s ease-out forwards}
@keyframes slowzoom{to{transform:scale(1)}}
.coin{position:absolute;left:-46px;bottom:48px;width:170px;aspect-ratio:1;border-radius:50%;overflow:hidden;border:8px solid #fff;box-shadow:var(--shadow)}
.coin img{width:100%;height:100%;object-fit:cover}
.crown{position:absolute;right:-8px;top:34px;background:#fff;border-radius:999px;padding:10px 16px;font-size:.82rem;font-weight:600;box-shadow:var(--shadow);display:flex;gap:.5rem;align-items:center}
.crown svg{width:20px;height:20px;color:var(--rose)}
/* checker band */
.band{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.band::before,.band::after{content:"";display:block;height:14px;background:repeating-conic-gradient(#fff 0 25%,var(--ink) 0 50%) 0 0/28px 28px}
.marq{display:flex;gap:0;white-space:nowrap;padding:20px 0}
.marq div{display:flex;gap:2.4rem;padding-right:2.4rem;animation:mq 34s linear infinite;font-family:"PlDisplay",serif;font-size:1.5rem;letter-spacing:.05em}
.marq span.d{width:9px;height:9px;transform:rotate(45deg);background:var(--rose);align-self:center;flex:none}
@keyframes mq{to{transform:translateX(-100%)}}
/* sections */
section{padding:110px 0}
.head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:54px;flex-wrap:wrap}
.head p{max-width:42ch;color:var(--ink2)}
.head h2{margin-top:10px}
/* services */
.svc{background:linear-gradient(var(--cream),var(--blush) 60%,var(--cream))}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.card{background:#fff;border-radius:var(--r);padding:28px 24px 22px;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;transition:transform .35s,box-shadow .35s,border-color .35s;position:relative;overflow:hidden}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.card .n{font-family:"PlScript",cursive;color:var(--rose);font-size:2.1rem;line-height:1}
.card h3{font-size:1.5rem}
.card p{color:var(--ink2);font-size:.95rem;flex:1}
.card a{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--teal-d);font-size:.92rem;min-height:44px}
.card a:hover{color:var(--rose)}
.card.feat{background:var(--ink);color:#fff;border-color:var(--ink)}
.card.feat p{color:#e9d9df}.card.feat a{color:#8fe0e6}.card.feat .n{color:var(--blush2)}
.note{margin-top:26px;font-size:.92rem;color:var(--ink2);text-align:center}
.note a{color:var(--rose-d);font-weight:600;text-decoration:underline;text-underline-offset:3px;display:inline-block;padding:10px 2px}
/* planner */
.plan .box{display:grid;grid-template-columns:.9fr 1.1fr;border-radius:32px;overflow:hidden;background:#fff;box-shadow:var(--shadow);border:1px solid var(--line)}
.plan .pic{position:relative;min-height:520px}
.plan .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.plan .pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(34,22,29,.75))}
.plan .pic p{position:absolute;left:28px;right:28px;bottom:26px;color:#fff;z-index:2;font-size:1rem}
.plan .pic p b{font-family:"PlScript",cursive;font-weight:400;font-size:2.4rem;display:block;line-height:1;color:var(--blush2)}
.form{padding:44px 44px 40px}
.form h2{font-size:clamp(2rem,3.4vw,2.8rem);margin:8px 0 8px}
.form>p{color:var(--ink2);margin-bottom:22px}
.fs{margin-top:20px}
.fs .lbl{font-weight:600;font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;display:block;color:var(--ink2)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:var(--cream);font:inherit;font-size:.92rem;cursor:pointer;color:var(--ink);transition:all .2s}
.chip:hover{border-color:var(--rose)}
.chip[aria-pressed=true]{background:var(--rose);border-color:var(--rose);color:#fff}
.inp{width:100%;min-height:50px;border-radius:14px;border:1.5px solid var(--line);padding:0 16px;font:inherit;font-size:1rem;background:var(--cream);color:var(--ink)}
.inp:focus{outline:2px solid var(--teal);border-color:transparent}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form .btn{width:100%;margin-top:26px}
.hint{font-size:.85rem;color:var(--ink2);margin-top:12px;text-align:center}
.hint a{color:var(--rose-d);font-weight:600;text-decoration:underline;display:inline-block;padding:10px 2px}
/* gallery */
.gal{background:var(--ink);color:#fff}
.gal .head p{color:#d9c6ce}
.gal .eyebrow{color:var(--blush2)}
.mos{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:14px}
.mos figure{position:relative;border-radius:18px;overflow:hidden;background:#3a2a33}
.mos img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.mos figure:hover img{transform:scale(1.05)}
.mos figcaption{position:absolute;left:12px;bottom:12px;background:rgba(255,250,248,.92);color:var(--ink);font-size:.8rem;font-weight:600;padding:6px 12px;border-radius:999px}
.g1{grid-column:span 7;grid-row:span 3}.g2{grid-column:span 5;grid-row:span 2}.g3{grid-column:span 2;grid-row:span 2}.g4{grid-column:span 3;grid-row:span 2}
.g5{grid-column:span 4;grid-row:span 3}.g6{grid-column:span 4;grid-row:span 3}.g7{grid-column:span 4;grid-row:span 3}.g8{grid-column:span 6;grid-row:span 2}.g9{grid-column:span 6;grid-row:span 2}
/* reviews */
.rev .stats{display:flex;gap:16px;flex-wrap:wrap}
.stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 22px;min-width:170px}
.stat b{font-family:"PlDisplay",serif;font-size:2.2rem;font-weight:400;display:block;line-height:1}
.stat span{font-size:.85rem;color:var(--ink2)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.q{background:var(--blush);border-radius:var(--r);padding:30px 28px;position:relative}
.q::before{content:"\201C";font-family:"PlDisplay",serif;font-size:5rem;line-height:.6;color:var(--rose);display:block;height:34px}
.q p{font-size:1.06rem}
.q cite{display:block;margin-top:16px;font-style:normal;font-size:.86rem;color:var(--ink2)}
.q cite b{color:var(--ink)}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px;justify-content:center}
.tags span{font-size:.85rem;border:1px solid var(--line);padding:8px 14px;border-radius:999px;background:#fff}
/* about */
.about{padding-top:0}
.ab{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.ab .pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ab .pair img{border-radius:20px;aspect-ratio:3/4;object-fit:cover;width:100%;height:auto}
.ab .pair img:last-child{margin-top:50px}
.ab p{color:var(--ink2);margin-top:16px;max-width:46ch}
.ab ul{list-style:none;margin-top:24px;display:grid;gap:12px}
.ab li{display:flex;gap:12px;align-items:flex-start}
.ab li svg{width:22px;height:22px;color:var(--teal);flex:none;margin-top:2px}
/* visit */
.visit{background:var(--blush)}
.vg{display:grid;grid-template-columns:1.1fr .9fr;gap:22px}
.vcard{background:#fff;border-radius:28px;padding:38px;border:1px solid var(--line)}
.vcard h3{font-size:1.9rem;margin-bottom:6px}
.addr{color:var(--ink2);margin-bottom:22px}
.hrs{list-style:none;border-top:1px solid var(--line)}
.hrs li{display:flex;justify-content:space-between;padding:11px 4px;border-bottom:1px solid var(--line);font-size:.98rem}
.hrs li.today{color:var(--rose-d);font-weight:700}
.hrs li.today span:first-child::after{content:" · today";font-weight:500;font-size:.85rem}
.small{font-size:.85rem;color:var(--ink2);margin-top:12px}
.vbtns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.vpic{position:relative;border-radius:28px;overflow:hidden;min-height:420px}
.vpic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vpic .tagp{position:absolute;left:18px;bottom:18px;right:18px;background:rgba(255,250,248,.95);border-radius:18px;padding:16px 18px;font-size:.92rem}
.vpic .tagp b{display:block;font-family:"PlDisplay",serif;font-weight:400;font-size:1.2rem}
.contact-list{display:grid;gap:10px;margin-top:22px}
.contact-list a{display:flex;align-items:center;gap:12px;min-height:48px;font-weight:500}
.contact-list a span.ic{width:40px;height:40px;border-radius:50%;background:var(--blush);display:grid;place-items:center;flex:none}
.contact-list svg{width:19px;height:19px;color:var(--rose-d)}
/* footer */
footer{background:var(--ink);color:#e8d8de;padding:64px 0 120px}
footer .wrap{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
footer .brand .l{color:#cbb5bf}
footer .soc{display:flex;gap:10px}
footer .soc a{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:grid;place-items:center}
footer .soc a:hover{background:var(--rose);border-color:var(--rose)}
footer .soc svg{width:20px;height:20px}
.fine{width:100%;border-top:1px solid rgba(255,255,255,.14);padding-top:22px;margin-top:10px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.8rem;color:#bfa9b3}
/* mobile bar */
.mbar{display:none}
/* reveal */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}}
@media (max-width:1020px){
 .grid{grid-template-columns:repeat(2,1fr)}
 .quotes{grid-template-columns:1fr}
 .plan .box{grid-template-columns:1fr}.plan .pic{min-height:300px}
 .vg,.ab{grid-template-columns:1fr}
}
@media (max-width:820px){
 body{font-size:16px}
 .nav a.lk{display:none}
 .hero{padding:26px 0 70px}
 .hero .wrap{grid-template-columns:1fr;gap:40px}
 .hero h1 br{display:none}
 .art{justify-self:center;max-width:420px}
 .coin{left:-6px;width:120px;bottom:24px;border-width:6px}
 .crown{right:0;top:20px}
 section{padding:80px 0}
 .mos{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px;gap:10px}
 .mos figure{grid-column:span 1!important;grid-row:span 1!important}
 .mos .g1,.mos .g8{grid-column:span 2!important;grid-row:span 2!important}
 .mos .g5,.mos .g6{grid-row:span 2!important}
 .form{padding:30px 22px}
 .plan .pic::after{background:linear-gradient(180deg,rgba(34,22,29,.1) 20%,rgba(34,22,29,.85))}
 .ab h2 em{display:block}
 .vpic{min-height:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line)}
 .vpic img{position:static;height:240px}
 .vpic .tagp{position:static;border-radius:0;background:#fff;padding:22px}
 .mbar{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px;position:fixed;left:10px;right:10px;bottom:10px;z-index:60;background:rgba(34,22,29,.94);backdrop-filter:blur(10px);padding:8px;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
 .mbar a{min-height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:6px;color:#fff;font-weight:600;font-size:.9rem}
 .mbar a.w{background:var(--teal)}
 .mbar a:not(.w){background:rgba(255,255,255,.1)}
 .mbar svg{width:18px;height:18px}
}
@media (max-width:480px){
 .wrap{width:calc(100% - 32px)}
 .grid{grid-template-columns:1fr}
 .ctas .btn{flex:1 1 100%}
 .row2{grid-template-columns:1fr}
 .vcard{padding:28px 22px}
 .vbtns .btn{flex:1 1 100%}
 .brand .s{font-size:1.85rem}
 .nav .btn{padding:0 1rem}
 .nav .btn .t{display:none}
 .stat{min-width:0;flex:1 1 40%}
 .ab .pair img:last-child{margin-top:30px}
}
