/* Sa7elly: palette taken from the logo. Navy ink, pin blue, sky ribbon, cyan-to-green swoosh. */
:root{
  --sea-900:#02163b;--sea-800:#0b2f7a;--sea-700:#123c8a;
  --lagoon:#155cf2;--lagoon-dark:#0e47c4;--sky:#0f92fe;
  --sun:#03ccc2;--sun-deep:#02a99f;--green:#03c799;
  --grad:linear-gradient(135deg,#155cf2,#0f92fe 55%,#03ccc2);
  --foam:#e8f1ff;--stone:#f5f8fd;--line:#dde5f1;
  --ink:#02163b;--muted:#53657f;
  --ok:#08795a;--ok-bg:#dcf6ee;--warn:#8a5a00;--warn-bg:#fff1cc;--bad:#b42318;--bad-bg:#fde7e5;--info:#155cf2;--info-bg:#e6efff;
  --ease:cubic-bezier(.2,.8,.2,1);
  --f-head:'Tajawal','IBM Plex Sans Arabic',system-ui,sans-serif;
  --f-body:'IBM Plex Sans Arabic','Tajawal',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{font-size:17px;scroll-behavior:smooth}
body{margin:0;background:var(--stone);color:var(--ink);font-family:var(--f-body);line-height:1.85;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--f-head);font-weight:700;line-height:1.35;margin:0 0 .5em;color:var(--sea-900)}
h1{font-size:clamp(1.9rem,4.5vw,2.7rem)}h2{font-size:1.5rem}h3{font-size:1.15rem}
p{margin:0 0 1em;max-width:62ch}
a{color:var(--lagoon);text-decoration:none}
a:hover{color:var(--lagoon-dark);text-decoration:underline;text-underline-offset:4px}
:focus-visible{outline:3px solid var(--lagoon);outline-offset:2px;border-radius:6px}
.hero :focus-visible{outline-color:var(--sun)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;border-radius:8px;z-index:200}.skip:focus{left:8px}
.muted{color:var(--muted)}

/* icons */
.ic{width:1.15em;height:1.15em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.2em}
.ic.lg{width:1.6em;height:1.6em}.ic.xl{width:3.2em;height:3.2em;stroke-width:1.4}

/* layout */
.wrap{max-width:1120px;margin:0 auto;padding:32px 5vw 72px}
.page-head{margin-bottom:26px}.page-head p{color:var(--muted);margin:0}
.row-between{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;align-items:end}
.split{display:grid;grid-template-columns:1fr;gap:24px}

/* navigation */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);color:var(--ink);display:flex;align-items:center;gap:12px;padding:0 5vw;min-height:68px;border-bottom:1px solid var(--line);transition:box-shadow .25s}
.nav.scrolled{box-shadow:0 8px 24px rgba(2,22,59,.08)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)!important;font-family:var(--f-head);font-weight:800;font-size:1.6rem;line-height:1;margin-inline-end:auto}
.brand:hover{text-decoration:none}
.brand img{display:block;height:44px;width:auto}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a,.nav-links .link-btn,.nav-links .who{display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border-radius:10px;color:#2b4166;font:inherit;font-size:.95rem;font-weight:500;background:none;border:0;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.nav-links .who{cursor:default;color:var(--muted)}
.nav-links a:hover,.nav-links .link-btn:hover,.nav-links a[aria-current=page]{background:var(--foam);color:var(--lagoon);text-decoration:none}
.nav-links .btn{color:#fff!important}.nav-links .btn:hover{background:var(--lagoon-dark);color:#fff!important}
.nav-actions{display:flex;align-items:center;gap:6px}
.nav-toggle{display:none;width:42px;height:42px;border-radius:12px;background:none;border:0;color:var(--ink);cursor:pointer;place-items:center}
.nav-toggle .ic{width:24px;height:24px}
form.inline{display:inline}
.badge{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--lagoon);color:#fff;font-size:.75rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--lagoon);color:#fff!important;border:2px solid transparent;border-radius:12px;padding:10px 22px;font:inherit;font-weight:600;cursor:pointer;transition:background .2s,transform .15s var(--ease),box-shadow .2s;text-decoration:none!important}
.btn:hover{background-color:var(--lagoon-dark);color:#fff;box-shadow:0 8px 20px rgba(21,92,242,.28)}
.btn:active{transform:scale(.97)}
.btn{background:var(--grad);background-size:140% 100%;background-position:0 0}.btn:hover{background-position:100% 0}
.btn.alt{background:var(--sea-900)}.btn.alt:hover{background:var(--sea-700)}
.btn.accent{background:var(--sun);color:var(--sea-900)!important}.btn.accent:hover{background:#2fe0d7;box-shadow:0 8px 20px rgba(3,204,194,.3)}
.btn.ghost{background:transparent;color:var(--sea-900)!important;border-color:var(--sea-900)}.btn.ghost:hover{background:var(--foam)}
.btn.small{padding:6px 14px;font-size:.92rem}.btn.block{width:100%}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--lagoon);cursor:pointer}.link-btn:hover{text-decoration:underline;text-underline-offset:4px}

/* notification bell */
.bell{position:relative}
.bell-btn{position:relative;width:42px;height:42px;border-radius:12px;background:none;border:0;color:#2b4166;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.bell-btn:hover,.bell-btn[aria-expanded=true]{background:var(--foam);color:var(--lagoon)}
.bell-btn .ic{width:22px;height:22px;transform-origin:50% 3px}
.bell-btn.ring .ic{animation:ring 1s ease-in-out}
.bell-badge{position:absolute;top:2px;inset-inline-start:0;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#e5484d;color:#fff;font-size:.72rem;font-weight:700;display:grid;place-items:center;line-height:1;animation:pop .35s var(--ease)}
.bell-panel{position:absolute;top:calc(100% + 10px);inset-inline-end:0;width:min(380px,calc(100vw - 24px));background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(2,22,59,.2);overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top left;transition:opacity .18s,transform .22s var(--ease),visibility .18s}
.bell-panel.open{opacity:1;visibility:visible;transform:none}
.bell-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.bell-head strong{font-family:var(--f-head)}
.bell-head .link-btn{font-size:.88rem}
.bell-list{max-height:min(60vh,420px);overflow-y:auto}
.bell-empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:.95rem}
.bell-foot{display:block;text-align:center;padding:11px;border-top:1px solid var(--line);font-weight:600;font-size:.95rem}
.bell-item,.nitem{position:relative;display:grid;grid-template-columns:38px 1fr;gap:12px;padding:12px 16px;color:var(--ink);border-bottom:1px solid var(--line);background:#fff}
.bell-item:hover,.nitem:hover{background:var(--stone);text-decoration:none;color:var(--ink)}
.bell-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--tone-bg,var(--info-bg));color:var(--tone,var(--info))}
.bell-txt{display:flex;flex-direction:column;min-width:0}
.bell-txt strong{font-weight:500;line-height:1.5}
.unread .bell-txt strong{font-weight:700}
.bell-txt small{color:var(--muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bell-txt em{font-style:normal;color:var(--muted);font-size:.8rem}
.unread::after{content:"";position:absolute;top:16px;inset-inline-end:14px;width:9px;height:9px;border-radius:50%;background:var(--lagoon)}
.lvl-info{--tone:var(--info);--tone-bg:var(--info-bg)}.lvl-success{--tone:var(--ok);--tone-bg:var(--ok-bg)}
.lvl-warning{--tone:var(--warn);--tone-bg:var(--warn-bg)}.lvl-danger{--tone:var(--bad);--tone-bg:var(--bad-bg)}
.nlist{list-style:none;margin:20px 0 0;padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.nlist li:last-child .nitem{border-bottom:0}
.nlist .empty{padding:44px 16px}
.pref{margin:0}.switch{display:flex;gap:10px;align-items:center;cursor:pointer;font-weight:500}
.switch input{width:20px;height:20px;accent-color:var(--lagoon)}

/* toasts and flash messages */
.toasts{position:fixed;left:20px;bottom:20px;z-index:300;display:flex;flex-direction:column;gap:10px;width:min(92vw,370px)}
.toast{position:relative;overflow:hidden;display:grid;grid-template-columns:38px 1fr 28px;gap:12px;align-items:start;background:#fff;border:1px solid var(--line);border-inline-start:5px solid var(--tone,var(--info));border-radius:12px;padding:12px 14px;box-shadow:0 14px 36px rgba(2,22,59,.2);cursor:pointer;animation:toastIn .45s var(--ease)}
.toast.out{animation:toastOut .3s ease forwards}
.toast strong{display:block;line-height:1.5}.toast small{display:block;color:var(--muted);line-height:1.5}
.toast-ico{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--tone-bg,var(--info-bg));color:var(--tone,var(--info))}
.toast-x{background:none;border:0;color:var(--muted);cursor:pointer;padding:2px}
.toast::after{content:"";position:absolute;inset-inline:0;bottom:0;height:3px;background:var(--tone,var(--info));opacity:.35;transform-origin:100% 50%;animation:drain 6.5s linear forwards}
.flash{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:12px;margin-bottom:16px;background:var(--info-bg);color:var(--info);transition:opacity .3s,transform .3s}
.flash.success{background:var(--ok-bg);color:var(--ok)}.flash.error{background:var(--bad-bg);color:var(--bad)}
.flash span{flex:1;color:var(--ink)}.flash.hide{opacity:0;transform:translateY(-6px)}
.flash-close{background:none;border:0;color:inherit;cursor:pointer;padding:2px}

/* hero: navy to pin-blue, a pin drops onto the shore once, rings ripple, waves drift */
.hero{position:relative;overflow:hidden;background:radial-gradient(900px 420px at 15% 110%,rgba(3,204,194,.28),transparent 60%),linear-gradient(160deg,var(--sea-900),#0b2f7a 70%,#155cf2);color:#fff;padding:clamp(48px,9vw,92px) 5vw clamp(120px,15vw,170px)}
.hero-inner{position:relative;z-index:3;max-width:1120px;margin:0 auto}
.hero h1{color:#fff;font-size:clamp(2.1rem,5.6vw,3.7rem);max-width:15ch;line-height:1.3;margin-bottom:.45em;font-weight:800}
.hero h1 em{font-style:normal;background:linear-gradient(90deg,#4cc3ff,#03ccc2);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{font-size:1.15rem;color:#d3e2fb;max-width:40ch}
.trust{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;padding:0;margin:24px 0 0;color:#c4d6f5;font-size:.95rem}
.trust li{display:inline-flex;gap:8px;align-items:center}.trust .ic{color:var(--sun)}
.pin{position:absolute;z-index:1;bottom:clamp(44px,6vw,80px);left:max(7vw,calc(50% - 500px));width:clamp(90px,15vw,170px);aspect-ratio:1}
.pin svg{width:100%;height:100%;overflow:visible;transform-origin:50% 100%;animation:pindrop 1.2s var(--ease) both,pinfloat 4s ease-in-out 1.4s infinite}
.pin i{position:absolute;left:50%;bottom:6%;width:100%;aspect-ratio:3/1;margin-left:-50%;border-radius:50%;border:2px solid rgba(3,204,194,.55);opacity:0;animation:ripple 3.2s ease-out 1s infinite}
.pin i:nth-of-type(2){animation-delay:1.9s}
.waves{position:absolute;left:0;bottom:-1px;width:200%;height:clamp(90px,12vw,160px);z-index:2;pointer-events:none}
.waves.w1{fill:rgba(3,204,194,.16);animation:drift 38s linear infinite}
.waves.w2{fill:rgba(255,255,255,.12);animation:drift 27s linear infinite reverse}
.waves.w3{fill:var(--stone);animation:drift 19s linear infinite}
.searchbar{position:relative;z-index:4;margin-top:-92px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 14px 34px rgba(2,22,59,.12)}
.assist{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:30px 0 40px;padding:18px 0;border-block:1px solid var(--line)}
.assist .ic{width:32px;height:32px;color:var(--lagoon)}.assist p{margin:0;flex:1;min-width:220px}

/* units */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:24px}
.unit{display:block;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.unit:hover{color:var(--ink);text-decoration:none;border-color:#b7c8e6}
.unit-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--foam);display:grid;place-items:center;color:var(--lagoon)}
.unit-bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .6s var(--ease)}
.unit:hover .unit-bg{transform:scale(1.04)}
.unit-tag{position:absolute;inset-inline-end:12px;bottom:12px;background:#fff;color:var(--sea-900);box-shadow:0 4px 14px rgba(2,22,59,.18);padding:3px 12px;border-radius:999px;font-weight:700;font-size:.92rem}
.unit-body{padding:14px 16px 16px}.unit-body h3{margin-bottom:6px}
.facts{display:flex;flex-wrap:wrap;gap:4px 16px;list-style:none;margin:0;padding:0;color:var(--muted);font-size:.9rem}
.facts li{display:inline-flex;align-items:center;gap:6px}
.facts.big{font-size:1rem;margin-bottom:18px}
@media(min-width:900px){.grid.featured .unit:first-child{grid-column:span 2}.grid.featured .unit:first-child .unit-img{aspect-ratio:auto;height:100%;min-height:300px}.grid.featured .unit:first-child{display:grid;grid-template-rows:1fr auto}}
.detail{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:36px;align-items:start}
.gallery{border-radius:16px;overflow:hidden;background:var(--foam);margin-bottom:22px;aspect-ratio:16/9;display:grid;place-items:center;color:var(--lagoon)}
.gallery img{width:100%;height:100%;object-fit:cover;display:block}
.amen{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.amen li{display:flex;align-items:center;gap:10px}.amen .ic{color:var(--lagoon)}
.book{position:sticky;top:84px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px}
.book-price{margin:0 0 14px;color:var(--muted)}.book-price strong{font-family:var(--f-head);font-size:1.9rem;color:var(--sea-900)}
.book p{max-width:none}.book fieldset{border:0;padding:0;margin:0 0 16px}.book legend{font-weight:600;margin-bottom:4px}
.book .note{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.88rem;margin:12px 0 0}
.quote{background:var(--foam);border-radius:12px;padding:12px 16px;margin:16px 0;animation:unfold .45s var(--ease)}
.quote table td{border:0;padding:4px 0}.quote table td:last-child{text-align:end;white-space:nowrap}
.quote .total td{border-top:1px solid #bcd0f2;padding-top:8px;font-weight:700;font-size:1.05rem}

/* forms */
label{display:block;font-weight:500;font-size:.92rem;margin-bottom:4px}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],input[type=tel],select,textarea{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink);transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--lagoon);box-shadow:0 0 0 3px rgba(21,92,242,.18)}
ul.errorlist{color:var(--bad);list-style:none;padding:0;margin:4px 0;font-size:.9rem}
form ul{list-style:none;padding:0;margin:0}
.check label,.panel ul li label{display:flex;gap:10px;align-items:center;font-weight:400}
.check input,.panel ul input[type=checkbox]{width:18px;height:18px;accent-color:var(--lagoon)}
.panel form p,form.panel p{margin:0 0 16px;max-width:none}
.helptext{color:var(--muted);font-size:.85rem;display:block}
.auth{max-width:440px;margin:16px auto}.auth .ic.xl{color:var(--lagoon);margin-bottom:6px}

/* panels, tables, status */
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:22px}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:26px}
table{width:100%;border-collapse:collapse}
th,td{text-align:start;padding:12px 16px;border-bottom:1px solid var(--line)}
th{font-weight:600;font-size:.85rem;color:var(--muted);background:var(--stone);white-space:nowrap}
tbody tr:last-child td,tr:last-child>td{border-bottom:0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:1px 11px;border-radius:999px;font-size:.84rem;font-weight:600;white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.muted{background:#e9eef6;color:var(--muted)}.chip.bad{background:var(--bad-bg);color:var(--bad)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-block:1px solid var(--line);margin:4px 0 32px}
.stat{display:flex;gap:14px;align-items:center;padding:20px 22px;border-inline-start:1px solid var(--line)}
.stat:first-child{border-inline-start:0}
.stat .ic{width:30px;height:30px;color:var(--lagoon)}
.stat b{display:block;font-family:var(--f-head);font-size:1.9rem;line-height:1.2;color:var(--sea-900);font-weight:700}
.stat span{color:var(--muted);font-size:.9rem;line-height:1.5;display:block}
.empty{text-align:center;padding:44px 16px;color:var(--muted)}
.empty .ic{width:40px;height:40px;color:var(--lagoon);margin-bottom:8px}.empty p{margin:0 auto 14px}
.svc{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.svc:first-child{border-top:1px solid var(--line)}
.svc-ico{width:44px;height:44px;border-radius:50%;background:var(--foam);color:var(--lagoon);display:grid;place-items:center}
.svc h3{margin:0}.svc p{margin:0;color:var(--muted);font-size:.92rem}
.svc-side{text-align:end}.svc-side b{display:block;font-family:var(--f-head);font-size:1.1rem}

/* chat */
.chat-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.avatar{width:46px;height:46px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-family:var(--f-head);font-weight:700;font-size:1.2rem}
.chatbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.bubble{max-width:76%;background:var(--foam);border-radius:16px 16px 16px 4px;padding:8px 14px;align-self:flex-start;animation:bubbleIn .3s var(--ease)}
.bubble.mine{background:var(--sea-700);color:#fff;align-self:flex-end;border-radius:16px 16px 4px 16px}
.bubble small{display:block;opacity:.7;font-size:.78rem}
.composer{display:flex;gap:10px;align-items:flex-end}.composer>div{flex:1}.composer textarea{resize:vertical;min-height:48px}
.safe{display:flex;gap:10px;align-items:center;background:var(--foam);border-radius:10px;padding:8px 14px;margin-bottom:14px;font-size:.9rem}

/* budget assistant */
.meter{height:8px;border-radius:99px;background:var(--foam);overflow:hidden;margin:6px 0 4px}
.meter span{display:block;height:100%;background:var(--grad);border-radius:inherit;transform-origin:100% 50%;animation:fill 1.1s var(--ease) both}
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--foam);border-radius:999px;padding:1px 12px;font-size:.88rem;margin:2px 0 2px 6px}

.foot{border-top:1px solid var(--line);color:var(--muted);padding:26px 5vw;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.9rem}
.foot .brand{margin:0}.foot .brand img{height:38px}

/* motion */
@keyframes pindrop{0%{transform:translateY(-220px) scaleY(1.1);opacity:0}55%{opacity:1}70%{transform:translateY(0) scale(1.08,.9)}85%{transform:translateY(-14px)}100%{transform:none}}
@keyframes pinfloat{50%{transform:translateY(-8px)}}
@keyframes ripple{0%{transform:scale(.3);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@keyframes drift{to{transform:translateX(-50%)}}
@keyframes ring{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-6deg)}75%{transform:rotate(3deg)}}
@keyframes pop{0%{transform:scale(.4)}70%{transform:scale(1.25)}100%{transform:scale(1)}}
@keyframes toastIn{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(-26px)}}
@keyframes drain{to{transform:scaleX(0)}}
@keyframes unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes bubbleIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

/* small screens */
@media(max-width:900px){
  .nav-toggle{display:grid}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;background:#fff;padding:8px 5vw 16px;border-bottom:1px solid var(--line);box-shadow:0 16px 30px rgba(2,22,59,.1);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility .2s}
  .nav-links.open{opacity:1;visibility:visible;transform:none}
  .nav-links a,.nav-links .link-btn,.nav-links .who{padding:12px}
  .detail{grid-template-columns:1fr}.book{position:static}
}
@media(max-width:560px){
  .bell{position:static}
  .bell-panel{position:fixed;top:72px;inset-inline:12px;width:auto}
  .stat{border-inline-start:0;border-top:1px solid var(--line)}.stat:first-child{border-top:0}
  .svc{grid-template-columns:44px 1fr}.svc-side{grid-column:1/-1;text-align:start}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* search */
.qrow{display:flex;align-items:center;gap:10px;background:var(--stone);border:1.5px solid var(--line);border-radius:12px;padding:0 14px;margin-bottom:14px;transition:border-color .2s,box-shadow .2s}
.qrow:focus-within{border-color:var(--lagoon);box-shadow:0 0 0 3px rgba(21,92,242,.15);background:#fff}
.qrow .ic{color:var(--lagoon);width:1.3em;height:1.3em}
.qrow input[type=search]{border:0;background:transparent;box-shadow:none!important;padding:13px 0;font-size:1.05rem}
.qrow input[type=search]:focus{outline:0}
input[type=search]{width:100%;font:inherit;color:var(--ink);-webkit-appearance:none}
.filters{margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 22px}
.chip-link{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:.92rem;transition:border-color .2s,background .2s,transform .15s var(--ease)}
.chip-link:hover{border-color:var(--lagoon);background:var(--foam);color:var(--lagoon);text-decoration:none;transform:translateY(-1px)}
.chip-link .ic{width:1em;height:1em}.chip-link small{color:var(--muted)}
.chip-link.on{background:var(--foam);border-color:#bcd0f2;color:var(--lagoon)}
.pager{display:flex;justify-content:center;align-items:center;gap:16px;margin:34px 0 0}
.grid-full{grid-column:1/-1}
.grid-full .ad{margin:0}
.results .unit{animation:cardIn .5s var(--ease) both}
.results .unit:nth-child(2){animation-delay:.05s}.results .unit:nth-child(3){animation-delay:.1s}.results .unit:nth-child(4){animation-delay:.15s}
.searchbar .qrow{margin-bottom:14px}

/* cards: lift, and the image is a real <img> now */
.unit{transition:transform .3s var(--ease),box-shadow .3s,border-color .2s}
.unit:hover{transform:translateY(-4px);box-shadow:0 18px 38px rgba(2,22,59,.12)}
img.unit-bg{width:100%;height:100%;object-fit:cover}

/* ads */
.ad{position:relative;margin:0 0 26px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 6px 20px rgba(2,22,59,.06);animation:unfold .5s var(--ease)}
.ad>a{display:block;color:inherit}.ad>a:hover{text-decoration:none}
.ad img{display:block;width:100%;height:auto;max-height:300px;object-fit:cover;transition:transform .6s var(--ease)}
.ad:hover img{transform:scale(1.02)}
.ad-tag{position:absolute;top:8px;inset-inline-start:8px;background:rgba(2,22,59,.72);color:#fff;font-size:.72rem;line-height:1;padding:4px 9px;border-radius:999px;backdrop-filter:blur(4px)}
.ad-text{display:flex;flex-wrap:wrap;align-items:center;gap:6px 24px;padding:26px 30px;background:linear-gradient(120deg,var(--sea-900),#0b2f7a 60%,#155cf2);color:#fff}
.ad-text strong{font-family:var(--f-head);font-size:1.4rem;flex:1 1 280px;line-height:1.5}
.ad-text small{flex:1 1 100%;order:3;color:#c4d6f5;font-size:.95rem}
.ad-cta{display:inline-flex;align-items:center;gap:8px;background:var(--sun);color:var(--sea-900);border-radius:12px;padding:8px 18px;font-weight:700}
.ad-empty{display:flex;align-items:center;gap:12px;margin:0 0 26px;padding:16px 20px;border:2px dashed #b7c8e6;border-radius:16px;color:var(--muted);background:rgba(232,241,255,.5);transition:border-color .2s,background .2s}
.ad-empty:hover{border-color:var(--lagoon);background:var(--foam);text-decoration:none;color:var(--lagoon)}
.ad-empty .ic{width:28px;height:28px;color:var(--lagoon)}
.ad-preview{max-width:100%;border-radius:12px;border:1px solid var(--line)}
.slots{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}
.slots li{display:flex;gap:10px;align-items:center}.slots .ic{color:var(--lagoon)}
td.actions{white-space:nowrap}td.actions .inline{margin-inline-start:4px}
.btn.danger{color:var(--bad)!important;border-color:var(--bad)}.btn.danger:hover{background:var(--bad-bg)}
.errpage h1{font-size:4rem;margin:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.errpage .ic{width:56px;height:56px}

/* feedback while a form is being sent */
form.busy .btn[type=submit]{opacity:.7;pointer-events:none}
form.busy .btn[type=submit]::after{content:"";width:1em;height:1em;border-radius:50%;border:2px solid currentColor;border-inline-end-color:transparent;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes cardIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.stat b{font-variant-numeric:tabular-nums}
.foot{background:#fff}
.btn:focus-visible{outline-color:var(--sea-900)}

/* admin dashboard */
.dtabs{display:flex;gap:4px;overflow-x:auto;margin:-8px 0 22px;padding-bottom:10px;border-bottom:1px solid var(--line);scrollbar-width:thin}
.dtabs a{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:10px;color:var(--muted);white-space:nowrap;font-weight:500;transition:background .2s,color .2s}
.dtabs a:hover{background:var(--foam);color:var(--lagoon);text-decoration:none}
.dtabs a[aria-current=page]{background:var(--lagoon);color:#fff}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin:0 0 34px}
.tile{display:flex;flex-direction:column;gap:6px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--ink);transition:transform .25s var(--ease),box-shadow .25s,border-color .2s}
.tile:hover{transform:translateY(-3px);border-color:#b7c8e6;box-shadow:0 14px 30px rgba(2,22,59,.1);text-decoration:none;color:var(--ink)}
.tile .ic{color:var(--lagoon)}.tile strong{font-family:var(--f-head);font-size:1.15rem}.tile span{color:var(--muted);font-size:.92rem;line-height:1.7}
.tfield{margin-bottom:16px}.tfield label{display:flex;gap:8px;align-items:center}.tfield .link-btn{font-size:.85rem;margin-top:4px}
.colorrow{display:flex;gap:10px;align-items:center;max-width:260px}
.colorrow input[type=color]{width:48px;height:42px;padding:2px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.savebar{position:sticky;bottom:0;display:flex;gap:10px;padding:14px 0;background:linear-gradient(0deg,var(--stone) 70%,transparent)}
.switch input[type=checkbox]{width:20px;height:20px;accent-color:var(--lagoon)}

/* admin-added sections */
.blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin:34px 0}
.block{display:flex;gap:16px;align-items:flex-start;padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px;animation:cardIn .5s var(--ease) both;transition:transform .25s var(--ease),box-shadow .25s}
.block:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(2,22,59,.09)}
.block.has-img{flex-direction:column;padding:0;overflow:hidden}.block.has-img>div{padding:0 22px 22px}.block.has-img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.block-ico{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--grad);color:#fff}
.block-ico .ic{width:24px;height:24px}
.block h3{margin:0 0 4px}.block p{margin:0 0 8px;color:var(--muted)}
.block-link{display:inline-flex;gap:6px;align-items:center;font-weight:600}
.prose{max-width:760px;margin:0 auto}.prose p{max-width:none}
.foot{align-items:center}.foot-links,.foot-contact{display:flex;gap:16px;flex-wrap:wrap}
.foot a{color:var(--muted)}.foot a:hover{color:var(--lagoon)}
.hero{background:radial-gradient(900px 420px at 15% 110%,rgba(3,204,194,.28),transparent 60%),linear-gradient(160deg,var(--sea-900),var(--sea-800) 70%,var(--lagoon))}
.btn{background-image:linear-gradient(135deg,var(--lagoon),var(--sky) 60%,var(--sun))}
:root{--grad:linear-gradient(135deg,var(--lagoon),var(--sky) 55%,var(--sun))}
.btn.alt,.btn.ghost,.btn.accent{background-image:none}
