/* Dr. Alaa Hussien — clinic design system.
   One stylesheet for the public site (warm, roomy) and the staff dashboard (neutral, dense). Shared tokens, type and controls.
   Direction-aware: logical properties only (inline-start/end), so Arabic mirrors without overrides. */

@font-face{font-family:"Plex";src:url(assets/IBMPlexSans-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Plex";src:url(assets/IBMPlexSans-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Plex";src:url(assets/IBMPlexSans-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}
@font-face{font-family:"Plex Arabic";src:url(assets/IBMPlexSansArabic-Regular.ttf) format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Arabic";src:url(assets/IBMPlexSansArabic-Medium.ttf) format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Plex Arabic";src:url(assets/IBMPlexSansArabic-SemiBold.ttf) format("truetype");font-weight:600 700;font-display:swap}
@font-face{font-family:"Editorial";src:url(assets/Editorial-Regular.otf) format("opentype");font-weight:400;font-display:swap}

:root{
  /* brand */
  --navy-950:#0c1a36; --navy-900:#122650; --navy-800:#182d59; --navy-700:#24407a; --navy-100:#e6ebf5; --navy-50:#f2f5fa;
  /* one interactive accent: selection, focus, links */
  --accent:#2a5bd7; --accent-strong:#1f48b3; --accent-soft:#eaf0fd; --focus:0 0 0 3px rgba(42,91,215,.35);
  /* neutrals (staff) */
  --ink:#16213a; --ink-2:#3d4a63; --muted:#5f6b80; --faint:#8a94a6;
  --line:#e2e6ed; --line-strong:#cdd3dd; --surface:#fff; --canvas:#f5f6f8; --hover:#f3f5f9;
  /* warm public surfaces */
  --paper:#faf7f2; --paper-2:#f3eee5; --paper-line:#e7dfd2;
  /* status — only for status */
  --ok:#17663f; --ok-bg:#e7f4ec; --warn:#8a5300; --warn-bg:#fcf1d9; --bad:#b3261e; --bad-bg:#fdecea; --info:#24407a; --info-bg:#e9eef8;
  /* type */
  --font:"Plex",system-ui,-apple-system,"Segoe UI",sans-serif; --display:"Editorial",Georgia,"Times New Roman",serif;
  --r-sm:6px; --r:8px; --r-lg:12px;
  --shadow-raised:0 12px 32px rgba(12,26,54,.16),0 2px 6px rgba(12,26,54,.08);
  --h-sm:32px; --h:40px; --h-lg:48px;
}
[lang=ar]{--font:"Plex Arabic","Plex",system-ui,sans-serif; --display:"Plex Arabic",system-ui,sans-serif}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;font-family:var(--font);font-size:16px;line-height:1.55;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:clip}
[lang=ar] body{line-height:1.75}
body.staff{background:var(--canvas);font-size:14px;line-height:1.5}
[lang=ar] body.staff{line-height:1.7}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;line-height:1.2;font-weight:600;color:var(--ink)}
p{margin:0}
a{color:var(--accent);text-underline-offset:2px}
a:hover{color:var(--accent-strong)}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}
.num,.time,time{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.ltr{direction:ltr;unicode-bidi:isolate}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)}
.small{font-size:13px}
.skip{position:absolute;inset-inline-start:12px;top:-60px;z-index:100;background:var(--navy-800);color:#fff;padding:10px 14px;border-radius:var(--r)}
.skip:focus{top:12px;color:#fff}

/* ---------- icons ---------- */
.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.i-sm{width:16px;height:16px}
[dir=rtl] .i-dir{transform:scaleX(-1)}

/* ---------- buttons: primary / secondary / text / icon / danger ---------- */
.btn{--bh:var(--h);display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--bh);min-width:var(--bh);padding:0 16px;border:1px solid transparent;border-radius:var(--r);font:inherit;font-size:14px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;user-select:none}
.btn:focus-visible{box-shadow:var(--focus);border-radius:var(--r)}
.btn[disabled],.btn[aria-disabled=true]{cursor:not-allowed;opacity:.5}
.btn-sm{--bh:var(--h-sm);padding:0 12px;font-size:13px;gap:6px}
.btn-lg{--bh:var(--h-lg);padding:0 22px;font-size:15px}
.btn-primary{background:var(--navy-800);color:#fff}
.btn-primary:not([disabled]):hover{background:var(--navy-950);color:#fff}
.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
.btn-secondary:not([disabled]):hover{background:var(--hover);border-color:#b9c1ce;color:var(--ink)}
.btn-text{background:transparent;color:var(--accent);padding-inline:10px}
.btn-text:not([disabled]):hover{background:var(--accent-soft);color:var(--accent-strong)}
.btn-danger{background:var(--bad);color:#fff}
.btn-danger:not([disabled]):hover{background:#8e1d17;color:#fff}
.btn-danger-text{background:transparent;color:var(--bad);padding-inline:10px}
.btn-danger-text:not([disabled]):hover{background:var(--bad-bg);color:#8e1d17}
.btn-icon{padding:0;width:var(--bh);background:transparent;color:var(--ink-2);border-color:transparent}
.btn-icon:not([disabled]):hover{background:var(--hover);color:var(--ink)}
.btn-icon.btn-secondary{background:var(--surface);border-color:var(--line-strong)}
.btn.is-loading{pointer-events:none;opacity:.85}
.btn.is-loading .i{display:none}
.spinner{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;border-inline-end-color:transparent;animation:spin .7s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.btn-row.end{justify-content:flex-end}
.btn-row.between{justify-content:space-between}

/* ---------- form controls ---------- */
.field{display:grid;gap:6px;margin-bottom:16px;align-content:start}
.field>label,.label{font-size:13px;font-weight:600;color:var(--ink-2)}
.field .hint{font-size:12.5px;color:var(--muted)}
.field .err{font-size:12.5px;color:var(--bad);display:flex;gap:6px;align-items:flex-start}
.field .err:empty{display:none}
.input,.select,.textarea{width:100%;height:var(--h);padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}
.staff .input,.staff .select,.staff .textarea{font-size:14px}
.textarea{height:auto;min-height:84px;padding:10px 12px;resize:vertical;line-height:1.5}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235f6b80' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-inline-end:36px}
[dir=rtl] .select{background-position:left 12px center}
.input:hover,.select:hover,.textarea:hover{border-color:#b3bbc8}
.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--bad)}
.input[disabled],.select[disabled]{background:var(--canvas);color:var(--faint)}
.input::placeholder{color:var(--faint)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);cursor:pointer;line-height:1.5}
.check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--navy-800)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;align-items:start}
.form-grid .full{grid-column:1/-1}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}

/* segmented control */
.seg{display:inline-flex;padding:3px;background:var(--canvas);border:1px solid var(--line);border-radius:var(--r);gap:2px}
.seg button{height:30px;padding:0 12px;border:0;border-radius:6px;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(12,26,54,.12)}
.seg .count{font-weight:500;color:var(--faint)}

/* ---------- status labels: icon + text, never colour alone ---------- */
.status{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:var(--r-sm);font-size:12.5px;font-weight:600;white-space:nowrap;line-height:1}
.status .i{width:14px;height:14px;stroke-width:2.2}
.status.ok{background:var(--ok-bg);color:var(--ok)}
.status.warn{background:var(--warn-bg);color:var(--warn)}
.status.bad{background:var(--bad-bg);color:var(--bad)}
.status.info{background:var(--info-bg);color:var(--info)}
.status.neutral{background:var(--canvas);color:var(--ink-2);border:1px solid var(--line)}

/* ---------- notices ---------- */
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r);border:1px solid;font-size:14px;line-height:1.5}
.notice>.i{margin-top:1px}
.notice .btn{margin-inline-start:auto}
.notice.info{background:var(--info-bg);border-color:#cdd8ee;color:var(--navy-900)}
.notice.warn{background:var(--warn-bg);border-color:#efd9a6;color:#5c3a00}
.notice.bad{background:var(--bad-bg);border-color:#f3c3be;color:#7d1a14}
.notice.ok{background:var(--ok-bg);border-color:#bfe0cc;color:#0f4a2c}
.notice b{font-weight:600}
.notice+.notice{margin-top:8px}

/* ---------- description lists ---------- */
.dl{display:grid;grid-template-columns:minmax(110px,max-content) 1fr;gap:0;margin:0}
.dl>div{display:contents}
.dl dt,.dl dd{padding:10px 0;border-bottom:1px solid var(--line);margin:0}
.dl dt{color:var(--muted);font-size:13px;padding-inline-end:16px}
.dl dd{font-weight:500;overflow-wrap:anywhere}
.dl>div:last-child dt,.dl>div:last-child dd{border-bottom:0}

/* ---------- empty states ---------- */
.empty{padding:40px 24px;text-align:center;display:grid;justify-items:center;gap:8px}
.empty .i{width:28px;height:28px;color:var(--faint);stroke-width:1.5;margin-bottom:4px}
.empty h3{font-size:16px}
.empty p{color:var(--muted);max-width:42ch}
.empty .btn-row{margin-top:10px;justify-content:center}

/* ---------- toast ---------- */
#toast{position:fixed;inset-inline-start:50%;bottom:24px;transform:translate(-50%,20px);z-index:90;background:var(--navy-950);color:#fff;padding:12px 16px;border-radius:var(--r);font-size:14px;box-shadow:var(--shadow-raised);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:min(92vw,520px)}
[dir=rtl] #toast{transform:translate(50%,20px)}
#toast.show{opacity:1;transform:translate(-50%,0)}
[dir=rtl] #toast.show{transform:translate(50%,0)}

/* ---------- dialog ---------- */
.scrim{position:fixed;inset:0;background:rgba(12,26,54,.42);z-index:70;display:grid;place-items:center;padding:16px}
.dialog{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-raised);width:min(440px,100%);padding:24px}
.dialog h2{font-size:18px;margin-bottom:8px}
.dialog p{color:var(--ink-2)}
.dialog .btn-row{margin-top:20px}

/* =========================================================================================
   PUBLIC SITE
   ========================================================================================= */
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.site-header{position:sticky;top:0;z-index:40;background:rgba(250,247,242,.94);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--paper-line)}
.site-header .wrap{display:flex;align-items:center;gap:24px;height:68px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);min-width:0}
.brand img{width:44px;height:44px;border-radius:50%;flex:none}
.brand b{display:block;font-size:15px;font-weight:600;line-height:1.2;color:var(--navy-800)}
.brand small{display:block;font-size:12px;color:var(--muted);line-height:1.3}
.site-nav{display:flex;align-items:center;gap:4px;margin-inline-start:auto}
.site-nav a{padding:8px 12px;border-radius:var(--r);color:var(--ink-2);text-decoration:none;font-size:14.5px;font-weight:500}
.site-nav a:hover{background:var(--paper-2);color:var(--ink)}
.site-nav a[aria-current=page]{color:var(--navy-800);box-shadow:inset 0 -2px 0 var(--navy-800);border-radius:0}
.header-actions{display:flex;align-items:center;gap:8px}
.lang-btn{font-weight:600}
.menu-btn{display:none}
.mobile-nav{display:none}
@media(max-width:940px){
  .site-nav{display:none}
  .menu-btn{display:inline-flex}
  .header-actions{margin-inline-start:auto}
  .mobile-nav.open{display:grid;position:absolute;top:68px;inset-inline:0;background:var(--paper);border-bottom:1px solid var(--paper-line);padding:8px 16px 16px;box-shadow:var(--shadow-raised)}
  .mobile-nav a{padding:12px 4px;border-bottom:1px solid var(--paper-line);text-decoration:none;color:var(--ink);font-weight:500}
  .mobile-nav a[aria-current=page]{color:var(--navy-800);font-weight:600}
}
@media(max-width:520px){.header-book{display:none}.brand small{display:none}.site-header .wrap{gap:12px}}

.section{padding:64px 0;border-top:1px solid var(--paper-line)}
.section.tight{padding:40px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.section-head h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.4vw,38px);letter-spacing:-.01em;color:var(--navy-900)}
[lang=ar] .section-head h2{font-weight:600;font-size:clamp(24px,3vw,32px);letter-spacing:0}
.section-head p{color:var(--muted);max-width:52ch}
.lead{font-size:18px;color:var(--ink-2);max-width:58ch}
@media(max-width:700px){.section{padding:44px 0}.section-head{display:block}.section-head p{margin-top:8px}}

/* service detail rows (services page) */
.svc-detail{display:grid;grid-template-columns:320px 1fr;gap:40px;padding:40px 0;border-top:1px solid var(--paper-line)}
.svc-detail:first-of-type{border-top:0;padding-top:8px}
.svc-detail img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg)}
.svc-detail h2{font-size:26px;color:var(--navy-900);margin-bottom:8px}
.svc-detail h3{font-size:14px;margin:20px 0 6px;color:var(--ink-2)}
.svc-detail ul{margin:0;padding-inline-start:18px;display:grid;gap:4px;color:var(--ink-2)}
.svc-detail .btn-row{margin-top:22px}
@media(max-width:760px){.svc-detail{grid-template-columns:1fr;gap:18px}}

/* doctor */
.doctor{display:grid;grid-template-columns:260px 1fr;gap:40px;align-items:start}
.doctor img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 18%;border-radius:var(--r-lg)}
.doctor h2{font-family:var(--display);font-weight:400;font-size:34px;color:var(--navy-900);margin-bottom:12px}
[lang=ar] .doctor h2{font-weight:600;font-size:28px}
.doctor p+p{margin-top:12px}
.doctor p{color:var(--ink-2);max-width:60ch}
@media(max-width:700px){.doctor{grid-template-columns:96px 1fr;gap:16px}.doctor img{aspect-ratio:1;border-radius:50%}.doctor .doctor-copy{grid-column:1/-1}}

/* location */
.location{display:grid;grid-template-columns:1.2fr 1fr;gap:0;background:#fff;border:1px solid var(--paper-line);border-radius:var(--r-lg);overflow:hidden}
.map{position:relative;min-height:340px;background:#e9eef3}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.location-body{padding:28px;display:grid;gap:22px;align-content:start}
.location-body h3{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.location-body address{font-style:normal;font-size:17px;font-weight:500}
.hours{width:100%;border-collapse:collapse;font-size:15px}
.hours td{padding:6px 0;border-bottom:1px solid var(--line)}
.hours tr:last-child td{border-bottom:0}
.hours td:last-child{text-align:end}
.hours .closed td{color:var(--muted)}
@media(max-width:820px){.location{grid-template-columns:1fr}.map{min-height:260px}.location-body{padding:20px}}

/* page intro (inner pages) */
.page-intro{padding:44px 0 28px}
.page-intro h1{font-family:var(--display);font-weight:400;font-size:clamp(32px,4.4vw,48px);line-height:1.1;color:var(--navy-900);letter-spacing:-.01em}
[lang=ar] .page-intro h1{font-weight:600;font-size:clamp(28px,3.8vw,40px);line-height:1.3;letter-spacing:0}
.page-intro .lead{margin-top:12px}
@media(max-width:700px){.page-intro{padding:28px 0 18px}}

/* FAQ */
.faq{border-top:1px solid var(--paper-line)}
.faq details{border-bottom:1px solid var(--paper-line)}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:600;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .i{transition:transform .15s;color:var(--muted)}
.faq details[open] summary .i{transform:rotate(180deg)}
.faq details p{padding:0 0 18px;color:var(--ink-2);max-width:68ch}

/* footer */
.site-footer{background:var(--navy-950);color:#c9d2e3;padding:44px 0 28px;margin-top:0;font-size:14px}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#fff}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.footer-grid h3{color:#fff;font-size:13px;font-weight:600;margin-bottom:10px}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer .brand b{color:#fff}.site-footer .brand small{color:#aeb9cf}
.footer-base{margin-top:32px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#93a0b8}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}

/* mobile sticky booking bar */
.mobile-cta{display:none}
@media(max-width:700px){
  .mobile-cta{display:flex;position:fixed;inset-inline:0;bottom:0;z-index:35;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(250,247,242,.97);border-top:1px solid var(--paper-line)}
  .mobile-cta .btn{flex:1}
  .mobile-cta.hidden{display:none}
  body.has-cta .site-footer{padding-bottom:96px}
}

/* =========================================================================================
   PUBLIC SITE — refined layer
   Restraint over decoration: navy brand, warm paper ground, one quiet rose accent (from the logo heart) used for a single
   tinted surface and the "today" marker. No glows, no pulsing, no floating, no gradient strips.
   ========================================================================================= */
:root{
  --rose:#b5617a; --rose-ink:#94475f; --rose-soft:#f8eef0; --rose-line:#ecd8dd;
  --sky-soft:#eef3f9;
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow-soft:0 1px 2px rgba(12,26,54,.04),0 4px 14px -8px rgba(12,26,54,.12);
}
@font-face{font-family:"Editorial";src:url(assets/Editorial-Italic.otf) format("opentype");font-weight:400;font-style:italic;font-display:swap}

.public h1 em{font-style:italic;color:var(--navy-700);font-weight:inherit}
[lang=ar] .public h1 em{font-style:normal;color:var(--navy-700)}
.eyebrow{margin:0 0 10px;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
[lang=ar] .eyebrow{letter-spacing:0;font-size:13.5px;text-transform:none}

/* buttons: modest radius, colour-only feedback */
.public .btn{border-radius:var(--r)}
.public .btn-primary{background:var(--navy-800)}
.public .btn-primary:not([disabled]):hover{background:var(--navy-950)}
.public .btn-secondary{background:#fff;border-color:var(--line-strong)}
.public .btn-lg{--bh:50px;padding:0 22px}
.public .btn-text{padding-inline:4px;text-underline-offset:3px}
.public .btn-text:not([disabled]):hover{background:transparent;text-decoration:underline}

/* header */
.public .site-header{transition:box-shadow .2s}
.public.scrolled .site-header{box-shadow:0 1px 0 var(--paper-line),0 6px 18px -14px rgba(12,26,54,.3)}

/* reveal: short, small, once */
.motion .reveal{opacity:0;transform:translateY(8px);transition:opacity .5s ease var(--d,0ms),transform .5s var(--ease) var(--d,0ms)}
.motion .reveal.is-in{opacity:1;transform:none}
.motion .reveal.no-anim{transition:none}
@media(prefers-reduced-motion:reduce){.motion .reveal{opacity:1;transform:none;transition:none}}

/* ---------- hero ---------- */
.hero{padding:64px 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.hero-kicker{margin-bottom:18px;font-size:14px;font-weight:600;color:var(--navy-700)}
.hero h1{font-family:var(--display);font-weight:400;font-size:clamp(44px,5.6vw,72px);line-height:1.02;letter-spacing:-.02em;color:var(--navy-900)}
.hero h1 em{display:block}
[lang=ar] .hero h1{font-weight:600;font-size:clamp(36px,4.6vw,54px);line-height:1.25;letter-spacing:0}
.hero .lead{margin-top:20px;font-size:18px;line-height:1.6;max-width:46ch}
.hero .btn-row{margin-top:30px;gap:12px}
.facts{display:flex;flex-wrap:wrap;gap:10px 24px;margin-top:32px;padding-top:20px;border-top:1px solid var(--paper-line);font-size:14.5px;color:var(--ink-2)}
.facts span{display:inline-flex;align-items:center;gap:8px}
.facts .i{color:var(--navy-700);width:17px;height:17px}
.hero-visual{position:relative;padding-bottom:24px}
.hero-photo{border-radius:16px;overflow:hidden;aspect-ratio:4/4.4;background:var(--paper-2)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:86% 45%}
.doc-card{position:absolute;inset-inline-start:-24px;bottom:0;display:flex;align-items:center;gap:12px;padding:12px 18px 12px 12px;background:#fff;border:1px solid var(--paper-line);border-radius:12px;box-shadow:var(--shadow-soft);font-size:13.5px;line-height:1.35}
[dir=rtl] .doc-card{padding:12px 12px 12px 18px}
.doc-card img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 15%}
.doc-card b{display:block;font-size:14.5px;color:var(--navy-900)}
.doc-card span{color:var(--muted)}

/* ---------- next available: day columns ---------- */
.nt-wrap{margin-top:48px}
.next-times{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:24px 48px;align-items:start;background:#fff;border:1px solid var(--paper-line);border-radius:12px;padding:28px 32px}
.nt-head h2{font-size:18px;font-weight:600;color:var(--navy-900)}
.nt-head .sub{margin-top:6px;font-size:14px;color:var(--muted);max-width:32ch}
.nt-all{margin-top:14px;font-size:14px}
.nt-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nt-col{display:grid;gap:8px;align-content:start}
.nt-date{display:grid;line-height:1.3;padding-bottom:8px;margin-bottom:2px;border-bottom:1px solid var(--line)}
.nt-date b{font-size:14.5px;font-weight:600;color:var(--navy-900)}
.nt-date span{font-size:13px;color:var(--muted)}
.slot-link{display:flex;align-items:center;justify-content:center;height:40px;border-radius:var(--r);background:var(--navy-50);border:1px solid var(--navy-100);color:var(--navy-800);text-decoration:none;font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;transition:background-color .15s,color .15s,border-color .15s}
.slot-link:hover{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.nt-msg{font-size:14.5px;color:var(--muted);align-self:center}
.skel{display:block;height:40px;border-radius:var(--r);background:var(--paper-2)}
.skel-date{height:38px;background:transparent;border-bottom:1px solid var(--line);border-radius:0}

/* ---------- sections ---------- */
.public .section{padding:88px 0;border-top:0}
.public .section.tight{padding:40px 0}
.public .section-head{align-items:flex-end;margin-bottom:36px}
.public .section-head h2{font-size:clamp(30px,3.4vw,40px);line-height:1.1;letter-spacing:-.015em}
[lang=ar] .public .section-head h2{font-size:clamp(26px,3vw,34px);line-height:1.35}
.public .section-head>p{font-size:16px;max-width:40ch}
.care{padding-top:96px!important}

/* care cards */
.care-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.care-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--paper-line);border-radius:12px;overflow:hidden;transition:border-color .2s}
.care-card:hover{border-color:var(--line-strong)}
.care-media{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--paper-2)}
.care-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.care-card:hover .care-media img{transform:scale(1.03)}
.care-body{display:flex;flex-direction:column;gap:14px;padding:22px 24px 20px;flex:1}
.care-body h3{font-size:20px;font-weight:600;color:var(--navy-900);line-height:1.25}
.care-body>p{color:var(--ink-2);font-size:15px}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;color:var(--ink-2)}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks .i{flex:none;width:16px;height:16px;margin-top:3px;color:var(--navy-700);stroke-width:2.2}
.care-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--paper-line)}
.care-foot .meta{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--muted)}

/* how a visit works */
.journey{background:#fff;border-block:1px solid var(--paper-line)}
.steps-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;counter-reset:j}
.step{display:grid;gap:8px;align-content:start;padding-top:20px;border-top:2px solid var(--navy-800)}
.step::before{counter-increment:j;content:counter(j,decimal-leading-zero);font-size:13px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}
.step h3{font-size:17px;color:var(--navy-900)}
.step p{font-size:14.5px;color:var(--muted);max-width:30ch}

/* meet the doctor */
.meet{background:var(--sky-soft)}
.meet-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:72px;align-items:center}
.meet-visual{position:relative;max-width:420px}
.meet-arch{border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:#e9e6e2}
.meet-arch img{width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.meet-copy h2{font-family:var(--display);font-weight:400;font-size:clamp(32px,3.6vw,44px);line-height:1.1;letter-spacing:-.015em;color:var(--navy-900)}
[lang=ar] .meet-copy h2{font-family:var(--font);font-weight:600;font-size:clamp(26px,3vw,34px);line-height:1.35;letter-spacing:0}
.meet-copy>p{margin-top:16px;color:var(--ink-2);font-size:16.5px;max-width:54ch}
.promises{list-style:none;margin:28px 0 0;padding:0;display:grid}
.promises li{display:grid;grid-template-columns:40px 1fr;gap:2px 16px;align-items:center;padding:14px 0;border-top:1px solid rgba(36,64,122,.14)}
.promises li:last-child{border-bottom:1px solid rgba(36,64,122,.14)}
.promises .pi{grid-row:span 2;display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#fff;color:var(--navy-800);border:1px solid rgba(36,64,122,.12)}
.promises b{font-weight:600;color:var(--navy-900)}
.promises span{font-size:14.5px;color:var(--muted)}
.meet-copy .btn-row{margin-top:26px}

/* vaccinations: the one rose-tinted surface */
.vax-card{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:center;background:var(--rose-soft);border:1px solid var(--rose-line);border-radius:12px;padding:32px 40px}
.vax-card img{width:100%;max-width:200px}
.vax-card .eyebrow{color:var(--rose-ink)}
.vax-card h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,34px);line-height:1.15;color:var(--navy-900)}
[lang=ar] .vax-card h2{font-family:var(--font);font-weight:600;font-size:24px;line-height:1.4}
.vax-card p{margin-top:10px;color:var(--ink-2);max-width:60ch}
.vax-card .btn-row{margin-top:14px}

/* location */
.public .location{border-radius:12px;grid-template-columns:1.25fr 1fr}
.public .location .map{min-height:380px}
.public .location-body{padding:28px}
.public .location-body address{font-size:18px;font-weight:600;color:var(--navy-900)}
.hours tr.today td{color:var(--navy-900);font-weight:600}
.hours tr.today td:first-child::after{content:attr(data-today);margin-inline-start:8px;padding:2px 8px;border-radius:4px;background:var(--rose-soft);color:var(--rose-ink);font-size:11.5px;font-weight:600}

/* closing band */
.cta-band{background:var(--navy-800);color:#c9d3e6;padding:56px 0}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:32px}
.cta-band h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3vw,36px);line-height:1.15;color:#fff}
[lang=ar] .cta-band h2{font-family:var(--font);font-weight:600;font-size:26px;line-height:1.4}
.cta-band p{margin-top:8px;font-size:15px}
.cta-band .btn-row{flex:none}
.cta-band .btn-primary{background:#fff;color:var(--navy-900)}
.cta-band .btn-primary:not([disabled]):hover{background:var(--navy-50);color:var(--navy-950)}
.cta-band .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}
.cta-band .btn-secondary:not([disabled]):hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.6)}

/* inner pages */
.public .page-intro{padding:56px 0 28px}
.public .svc-detail img{border-radius:12px}
.public .svc-detail h2{font-family:var(--display);font-weight:400;font-size:32px;letter-spacing:-.01em}
[lang=ar] .public .svc-detail h2{font-family:var(--font);font-weight:600;font-size:26px}
.public .doctor img{border-radius:12px}

@media(max-width:1020px){
  .hero-grid{gap:40px}
  .next-times{grid-template-columns:1fr;gap:20px;padding:24px}
  .nt-head{display:grid;grid-template-columns:1fr auto;column-gap:16px;align-items:start}
  .nt-head h2,.nt-head .sub{grid-column:1}
  .nt-all{grid-column:2;grid-row:1/3;margin-top:0;align-self:start}
  .steps-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .meet-grid{gap:48px}
}
@media(max-width:860px){
  .hero{padding-top:28px}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .hero-kicker{margin-bottom:12px;font-size:13px}
  .hero .lead{font-size:16.5px;margin-top:14px}
  .hero .btn-row{margin-top:22px}
  .hero .btn-row .btn{flex:1}
  .facts{margin-top:22px;gap:8px 18px;font-size:13.5px}
  .hero-photo{aspect-ratio:4/3.2}
  .doc-card{inset-inline-start:12px}
  .nt-wrap{margin-top:28px}
  .next-times{padding:20px}
  .nt-head{display:block}
  .nt-all{margin-top:10px}
  .nt-cols{gap:10px}
  .care{padding-top:64px!important}
  .public .section{padding:60px 0}
  .care-grid{grid-template-columns:1fr;gap:18px}
  .meet-grid{grid-template-columns:1fr}
  .meet-visual{max-width:320px}
  .vax-card{grid-template-columns:1fr;padding:24px;gap:16px}
  .vax-card img{max-width:150px}
  .public .location{grid-template-columns:1fr}
  .public .location .map{min-height:260px}
  .cta-band{padding:40px 0}
  .cta-inner{flex-direction:column;align-items:flex-start}
  .cta-band .btn-row{width:100%}
  .cta-band .btn-row .btn{flex:1}
}
@media(max-width:560px){
  .hero h1{font-size:42px}
  .steps-row{grid-template-columns:1fr;row-gap:24px}
  .slot-link{font-size:14px;height:38px}
  .nt-date b{font-size:13.5px}
}

/* ---------- booking ---------- */
.book-page{padding:28px 0 64px}
.book-page h1{font-size:28px;font-weight:600;color:var(--navy-900)}
.steps{display:flex;gap:4px;list-style:none;margin:18px 0 24px;padding:0;counter-reset:s}
.steps li{flex:1;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted);font-weight:500}
.steps li::before{content:"";height:3px;border-radius:2px;background:var(--line)}
.steps li[data-state=done]::before,.steps li[aria-current=step]::before{background:var(--navy-800)}
.steps li[aria-current=step]{color:var(--ink);font-weight:600}
@media(max-width:560px){.steps .step-n{display:none}}
.book-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.panel{background:#fff;border:1px solid var(--paper-line);border-radius:var(--r-lg);padding:24px}
.panel>h2{font-size:18px;margin-bottom:4px}
.panel>.sub{color:var(--muted);font-size:14px;margin-bottom:18px}
.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.summary{position:sticky;top:88px;display:grid;gap:16px}
.summary .panel{padding:20px}
.summary h2{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:10px}
.summary .when{font-size:20px;font-weight:600;color:var(--navy-900);line-height:1.3}
.summary .when .time{display:block;font-size:28px}
.summary .when.empty-when{font-size:15px;font-weight:500;color:var(--muted)}
.summary .dl{margin-top:12px;font-size:14px}
.hold{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink-2);margin-top:12px;padding:8px 10px;background:var(--paper);border-radius:var(--r)}
.hold b{font-variant-numeric:tabular-nums}
.loc-mini{border:1px solid var(--paper-line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.loc-mini .map{min-height:150px}
.loc-mini .body{padding:14px 16px;display:grid;gap:4px;font-size:14px}
.loc-mini .body b{font-weight:600}
.mobile-summary{display:none}
@media(max-width:900px){
  .book-grid{grid-template-columns:minmax(0,1fr)}
  .summary{position:static;order:2}
  .mobile-summary{display:flex;align-items:center;gap:12px;position:sticky;top:68px;z-index:20;margin:0 -16px 16px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--paper-line);font-size:14px}
  .mobile-summary .what{flex:1;min-width:0}
  .mobile-summary b{display:block;font-size:15px}
  .summary .when-panel{display:none}
  .panel{padding:18px}
}
.date-strip{display:flex;gap:8px;overflow-x:auto;padding:2px;margin:0 -2px 20px;scrollbar-width:thin}
.date-chip{flex:none;display:grid;gap:2px;justify-items:start;min-width:112px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;font:inherit;text-align:start;cursor:pointer;color:var(--ink)}
.date-chip .d{font-weight:600;font-size:15px}
.date-chip .c{font-size:12.5px;color:var(--muted)}
.date-chip:hover{border-color:var(--accent)}
.date-chip[aria-pressed=true]{border-color:var(--navy-800);background:var(--navy-800);color:#fff}
.date-chip[aria-pressed=true] .c{color:#c9d3e8}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.time-btn{height:var(--h-lg);border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;font:inherit;font-size:16px;font-weight:600;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-variant-numeric:tabular-nums}
.staff .time-btn{height:40px;font-size:14px}
.time-btn:hover{border-color:var(--accent);background:var(--accent-soft)}
.time-btn[aria-pressed=true]{background:var(--navy-800);border-color:var(--navy-800);color:#fff}
.time-btn[aria-pressed=true] .i{display:inline}
.time-btn .i{display:none;width:15px;height:15px;stroke-width:2.4}
.group-label{font-size:13px;font-weight:600;color:var(--muted);margin:18px 0 8px}
.group-label:first-child{margin-top:0}
.review-block{border:1px solid var(--line);border-radius:var(--r);padding:4px 16px;margin-bottom:14px}
.review-block header{display:flex;justify-content:space-between;align-items:center;padding:10px 0 4px}
.review-block header h3{font-size:14px;color:var(--muted)}

/* confirmation / manage */
.result{max-width:640px;margin-inline:auto;padding:36px 0 64px}
.result-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
.result-head .badge-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none}
.result-head .badge-icon.ok{background:var(--ok-bg);color:var(--ok)}
.result-head .badge-icon.neutral{background:var(--canvas);color:var(--ink-2)}
.result-head .badge-icon .i{width:24px;height:24px;stroke-width:2.2}
.result-head h1{font-size:26px;color:var(--navy-900)}
.result-head p{color:var(--muted);margin-top:2px}
.result .when-big{font-size:22px;font-weight:600;color:var(--navy-900);line-height:1.35}
.result .panel+.panel,.result .panel+.loc-mini,.result .loc-mini+.panel{margin-top:16px}
.result .btn-row{margin-top:18px}

/* =========================================================================================
   STAFF DASHBOARD
   ========================================================================================= */
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;min-height:100dvh}
.sidebar{background:var(--navy-900);color:#c7d0e2;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;height:100dvh}
.sidebar .brand{padding:18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar .brand img{width:36px;height:36px}
.sidebar .brand b{color:#fff;font-size:14px}
.sidebar .brand small{color:#9fadc8;font-size:11.5px}
.side-nav{display:grid;gap:2px;padding:12px 10px}
.side-nav a{display:flex;align-items:center;gap:10px;height:38px;padding:0 10px;border-radius:var(--r);color:#c7d0e2;text-decoration:none;font-weight:500;font-size:14px;position:relative}
.side-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side-nav a[aria-current=page]{background:rgba(255,255,255,.12);color:#fff;font-weight:600}
.side-nav a[aria-current=page]::before{content:"";position:absolute;inset-inline-start:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#fff}
[dir=rtl] .side-nav a[aria-current=page]::before{border-radius:3px 0 0 3px}
.side-foot{margin-top:auto;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);display:grid;gap:8px;font-size:12.5px}
.side-foot .who{color:#fff;overflow-wrap:anywhere}
.side-foot .row{display:flex;gap:6px}
.side-foot .btn{color:#dbe2ef;border-color:rgba(255,255,255,.18);background:transparent;flex:1}
.side-foot .btn:hover{background:rgba(255,255,255,.08)!important;color:#fff!important}
.main{min-width:0;display:flex;flex-direction:column}
.content{padding:20px 28px 40px;width:100%;max-width:1240px}
.page-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.page-head h1{font-size:22px;font-weight:600}
.page-head .sub{color:var(--muted);font-size:13px}
.page-head .actions{margin-inline-start:auto;display:flex;gap:8px}
.topbar{display:none}
@media(max-width:860px){
  .app{grid-template-columns:1fr}
  .sidebar{display:none}
  .topbar{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:30;height:56px;padding:0 8px 0 12px;background:var(--navy-900);color:#fff}
  .topbar .brand b{color:#fff;font-size:14px}.topbar .brand img{width:32px;height:32px}.topbar .brand small{display:none}
  .topbar .btn-icon{color:#fff}.topbar .btn-icon:hover{background:rgba(255,255,255,.1)!important;color:#fff!important}
  .topbar .spacer{flex:1}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;inset-inline:0;bottom:0;z-index:30;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
  .tabbar a{display:grid;justify-items:center;gap:2px;padding:8px 2px;font-size:11.5px;font-weight:500;color:var(--muted);text-decoration:none;min-height:56px}
  .tabbar a[aria-current=page]{color:var(--navy-800);font-weight:600}
  .tabbar a[aria-current=page] .i{stroke-width:2.2}
  .content{padding:16px 16px 96px}
  .page-head{flex-wrap:nowrap;align-items:flex-start;gap:12px}
  .page-head>div:first-child{min-width:0}
  .page-head h1{font-size:20px}
  .page-head .actions .btn{padding:0 12px}
}
@media(min-width:861px){.tabbar{display:none}}

/* schedule toolbar */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0}
.date-nav{display:flex;align-items:center;gap:4px}
.date-pick{position:relative;display:inline-flex;white-space:nowrap;align-items:center;gap:8px;height:var(--h-sm);padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r);background:#fff;font-weight:600;font-size:14px;cursor:pointer;color:var(--ink)}
.date-pick:hover{background:var(--hover)}
.date-pick:focus-within{box-shadow:var(--focus);border-color:var(--accent)}
.date-pick input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;border:0;padding:0}
.date-pick input::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;cursor:pointer;opacity:0}
.day-count{color:var(--muted);font-size:13px;white-space:nowrap}
.day-count b{color:var(--ink);font-weight:600}
.toolbar .seg{margin-inline-start:auto}
.sync{margin-inline-start:auto;display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--faint);white-space:nowrap}
.sync .dot{width:7px;height:7px;border-radius:50%;background:#3aa76d}
.sync.stale .dot{background:#d08b00}
@media(max-width:860px){
  .toolbar{border-radius:var(--r-lg) var(--r-lg) 0 0}
  .toolbar .seg{margin-inline-start:0;width:100%}
  .toolbar .seg button{flex:1;justify-content:center;height:36px}
  .date-nav{flex:1}
  .date-pick{flex:1;justify-content:center}
}
.board{background:#fff;border:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden}
.board-notice{padding:10px 12px;border-bottom:1px solid var(--line)}
.board-notice .notice{border-radius:var(--r)}

/* appointment table */
.atable{width:100%;border-collapse:collapse}
.atable th{position:sticky;top:0;background:#fafbfc;text-align:start;font-size:12px;font-weight:600;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.atable td{padding:0 12px;height:56px;border-bottom:1px solid var(--line);vertical-align:middle}
.atable tr:last-child td{border-bottom:0}
.atable .c-time{width:84px;font-weight:600;font-size:15px;font-variant-numeric:tabular-nums}
.atable .c-time small{display:block;font-size:12px;font-weight:400;color:var(--faint)}
.atable .c-act{width:1%;text-align:end;white-space:nowrap}
.atable .pname{font-weight:600;font-size:14.5px}
.atable .psub{font-size:12.5px;color:var(--muted)}
.atable .phone{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.atable tbody tr.appt{cursor:pointer}
.atable tbody tr.appt:hover{background:var(--hover)}
.atable tbody tr.selected{background:var(--accent-soft)!important;box-shadow:inset 3px 0 0 var(--accent)}
[dir=rtl] .atable tbody tr.selected{box-shadow:inset -3px 0 0 var(--accent)}
.atable tr.open td{height:44px;color:var(--muted)}
.atable tr.open .c-time{font-weight:500;color:var(--ink-2);font-size:14px}
.atable tr.past td{opacity:.6}
.atable tr.now-line td{height:0;padding:0;border-bottom:2px solid var(--accent)}
.src{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:13px;white-space:nowrap}
.src .i{width:15px;height:15px;color:var(--faint)}
@media(max-width:860px){
  .atable thead{display:none}
  .atable,.atable tbody{display:block}
  .atable tr.appt{display:grid;grid-template-columns:60px 1fr auto;grid-template-areas:"time name act" "time meta act";column-gap:12px;row-gap:4px;padding:12px;border-bottom:1px solid var(--line)}
  .atable tr.appt td{display:block;height:auto;padding:0;border:0}
  .atable tr.appt .c-time{grid-area:time;width:auto;font-size:16px}
  .atable tr.appt .c-patient{grid-area:name}
  .atable tr.appt .c-meta{grid-area:meta;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
  .atable tr.appt .c-act{grid-area:act;align-self:center}
  .atable tr.appt .c-phone,.atable tr.appt .c-src-d,.atable tr.appt .c-status-d{display:none}
  .atable tr.open{display:flex;align-items:center;gap:12px;padding:0 12px;min-height:48px;border-bottom:1px solid var(--line)}
  .atable tr.open td{display:block;height:auto;padding:0;border:0}
  .atable tr.open td.c-act{margin-inline-start:auto}
  .atable tr.open td.c-fill{flex:1}
  .atable tr.now-line{display:block;border-bottom:2px solid var(--accent)}
}
@media(min-width:861px){.c-meta{display:none}}

/* side panel (drawer) */
.drawer-root{position:fixed;inset-block:0;inset-inline-end:0;z-index:60;width:420px;max-width:100%;display:flex;pointer-events:none}
.drawer{pointer-events:auto;width:100%;height:100%;background:#fff;border-inline-start:1px solid var(--line);box-shadow:var(--shadow-raised);display:flex;flex-direction:column;animation:drawer-in .18s ease-out}
@keyframes drawer-in{from{transform:translateX(24px);opacity:.4}}
[dir=rtl] .drawer{animation-name:drawer-in-rtl}
@keyframes drawer-in-rtl{from{transform:translateX(-24px);opacity:.4}}
.drawer-head{display:flex;align-items:flex-start;gap:8px;padding:16px 16px 12px 20px;border-bottom:1px solid var(--line)}
[dir=rtl] .drawer-head{padding:16px 20px 12px 16px}
.drawer-head .title{flex:1;min-width:0}
.drawer-head h2{font-size:18px;overflow-wrap:anywhere}
.drawer-head .sub{font-size:13px;color:var(--muted);margin-top:2px}
.drawer-body{flex:1;overflow-y:auto;padding:16px 20px;overscroll-behavior:contain}
.drawer-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;background:#fff}
.drawer-foot .grow{flex:1}
.drawer .dl{font-size:14px}
.drawer .section-label{font-size:12px;font-weight:600;color:var(--muted);margin:18px 0 6px}
.drawer .section-label:first-child{margin-top:0}
.when-card{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-bottom:16px}
.when-card>div{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;min-height:66px}
.when-card .k{font-size:12px;color:var(--muted);font-weight:600}
.when-card .v{font-weight:600;font-size:14px;margin-top:2px}
.when-card .v .time{display:block;font-size:18px}
.when-card .new{border-color:var(--accent);background:var(--accent-soft)}
.when-card .new.unset{border-style:dashed;border-color:var(--line-strong);background:#fff}
.when-card .new.unset .v{color:var(--faint);font-weight:500}
.when-card>.i{color:var(--faint)}
.picker-dates{display:flex;gap:6px;overflow-x:auto;padding:2px;margin:0 -2px 12px}
.picker-dates .date-chip{min-width:96px;padding:8px 10px}
.picker-dates .date-chip .d{font-size:14px}
.staff .times{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}
body.panel-open .content{padding-inline-end:448px}
@media(max-width:1180px){body.panel-open .content{padding-inline-end:28px}.drawer-root{z-index:65}body.panel-open::after{content:"";position:fixed;inset:0;background:rgba(12,26,54,.32);z-index:55}}
@media(max-width:860px){.drawer-root{width:100%}.drawer{border:0;animation:none}body.panel-open .content{padding-inline-end:16px}body.panel-open::after{display:none}.drawer-foot{padding-bottom:calc(12px + env(safe-area-inset-bottom))}}

/* staff cards + generic table */
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg)}
.card-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.card-head h2{font-size:15px}
.card-head .sub{font-size:13px;color:var(--muted)}
.card-head .actions{margin-inline-start:auto}
.card-body{padding:16px}
.card+.card{margin-top:16px}
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{text-align:start;font-size:12px;font-weight:600;color:var(--muted);padding:9px 16px;border-bottom:1px solid var(--line);background:#fafbfc;white-space:nowrap}
.table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}
.table tr:last-child td{border-bottom:0}
.table tbody tr.click{cursor:pointer}
.table tbody tr.click:hover{background:var(--hover)}
.search{position:relative;max-width:420px;flex:1}
.search .i{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.search .input{padding-inline-start:38px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.settings-grid .card+.card{margin-top:0}
.status-list{list-style:none;margin:0;padding:0}
.status-list li{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--line)}
.status-list li:last-child{border-bottom:0}
.status-list .what{flex:1}
.status-list .what b{display:block;font-weight:600}
.status-list .what span{font-size:13px;color:var(--muted)}
@media(max-width:960px){.settings-grid{grid-template-columns:1fr}}
@media(max-width:700px){
  .table.stack thead{display:none}
  .table.stack,.table.stack tbody,.table.stack tr,.table.stack td{display:block}
  .table.stack tr{padding:12px 16px;border-bottom:1px solid var(--line)}
  .table.stack td{padding:2px 0;border:0}
  .table.stack td[data-k]::before{content:attr(data-k) " · ";color:var(--muted);font-size:12.5px}
}

/* sign-in */
.signin{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:var(--canvas)}
.signin-card{width:min(400px,100%);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px}
.signin-card .brand{margin-bottom:24px}
.signin-card h1{font-size:20px;margin-bottom:4px}
.signin-card .sub{color:var(--muted);margin-bottom:20px}
.signin-card .btn-primary{width:100%}
.signin-foot{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--muted)}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.tabbar,.toolbar .seg,.drawer-root,.site-header,.site-footer,.mobile-cta{display:none!important}.app{display:block}}

/* ---------- manual WhatsApp reminders + new-booking alerts (staff) ---------- */
.act-row{display:inline-flex;align-items:center;gap:6px}
.wa-btn .i{width:15px;height:15px}
.wa-btn.btn-secondary{color:#0f6b46;border-color:#bfe0cc;background:#f3faf6}
.wa-btn.btn-secondary:not([disabled]):hover{background:#e3f4ea;border-color:#9fd2b5;color:#0b5537}
.wa-btn.wa-done{color:var(--muted)}
.wa-btn.wa-done .i{color:var(--ok)}
.remind-bar{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;padding:10px 12px;border-bottom:1px solid var(--line);background:#fbfcfd;font-size:13.5px}
.remind-bar>.i{color:#0f6b46}
.remind-bar .rb-text{flex:1;min-width:220px}
.remind-bar .label{font-size:12.5px;color:var(--muted);font-weight:500}
.new-alerts{margin-bottom:12px;background:#fff;border:1px solid #cdd8ee;border-inline-start:3px solid var(--navy-700);border-radius:var(--r-lg);padding:10px 12px}
.na-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--navy-900)}
.na-head .i{color:var(--navy-700)}
.new-alerts ul{list-style:none;margin:8px 0 0;padding:0;display:grid}
.new-alerts li{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:14px}
.new-alerts li .num{font-weight:600;font-variant-numeric:tabular-nums}
.alerts-ask{margin:-4px 0 8px}
.new-alerts .alerts-ask{margin:6px 0 0}
.grow{flex:1}

/* ---------- add to calendar (patients) ---------- */
.cal-panel .cal-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.cal-panel .cal-head>.i{width:22px;height:22px;color:var(--navy-700);margin-top:2px}
.cal-panel h2{font-size:16px;color:var(--navy-900)}
@media(max-width:860px){.atable .c-act .act-row .btn span{display:none}.atable .c-act .act-row .btn{padding:0 9px;gap:0}.remind-bar .label{display:none}}
.call-btn.btn-secondary{color:var(--navy-800);border-color:#cdd8ee;background:#f4f7fc}
.call-btn.btn-secondary:not([disabled]):hover{background:#e9eef8;border-color:#b5c4e2}
.call-btn .i{width:15px;height:15px}
.confirm-box{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:#fbfcfd;margin-bottom:6px}
.confirm-box .btn-row{gap:8px}
/* the table stays readable when the side panel sits beside it */
.atable .c-patient{min-width:170px}
.atable .pname{overflow-wrap:anywhere}
.atable .psub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
.atable .c-phone .phone{white-space:nowrap}
@media(min-width:1181px){
  body.panel-open .atable .c-src-d{display:none}
  body.panel-open .atable .c-act .act-row .btn span{display:none}
  body.panel-open .atable .c-act .act-row .btn{padding:0 9px;gap:0}
  body.panel-open .atable .psub{max-width:180px}
}
.wa-notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--paper-line);border-radius:var(--r);background:var(--paper);font-size:14px;color:var(--ink-2)}
.wa-notice>.i{color:#0f6b46;margin-top:2px}
.wa-notice .check{margin-top:8px;font-size:13.5px}
.consent-line{margin-top:18px}
/* automatic update notice (only shown when someone is mid-task when a new version goes live) */
.update-bar{position:fixed;z-index:80;inset-inline:16px;bottom:16px;margin-inline:auto;max-width:560px;display:flex;align-items:center;gap:10px;padding:10px 12px 10px 14px;background:#fff;border:1px solid var(--line-strong,#d4dbe4);border-radius:12px;box-shadow:0 10px 30px -12px rgba(12,26,54,.35);font-size:14px;color:var(--ink,#1c2a3a)}
.update-bar span{flex:1}
.update-bar .i{color:var(--navy-700,#24407a)}
body.has-cta .update-bar{bottom:84px}

/* ---------- vaccination schedule ---------- */
.vax-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;margin-bottom:18px}
.vax-legend{display:flex;gap:18px;font-size:13px;color:var(--muted)}
.vax-legend span{display:inline-flex;align-items:center;gap:7px}
.vax-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--navy-700)}
.vax-dot.r{background:var(--rose-ink)}
.vax-schedule{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--paper-line);border-radius:var(--r-lg);overflow:hidden}
.vax-age{display:grid;grid-template-columns:170px 1fr;border-top:1px solid var(--paper-line)}
.vax-age:first-child{border-top:0}
.vax-when{padding:18px 22px;background:var(--paper);font-family:var(--display);font-size:21px;line-height:1.2;color:var(--navy-900);border-inline-end:1px solid var(--paper-line)}
[lang=ar] .vax-when{font-size:17px;font-weight:600}
.vax-age ul{list-style:none;margin:0;padding:8px 0}
.vax-item{display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:6px 18px;padding:9px 22px 9px 20px;border-inline-start:3px solid var(--navy-700);margin-inline-start:0}
.vax-item.r{border-inline-start-color:var(--rose-ink)}
.vax-item+.vax-item{margin-top:2px}
.vax-name{font-weight:600;color:var(--ink)}
.vax-dose{font-size:14px;color:var(--ink-2);white-space:nowrap}
.vax-kind{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--navy-50);color:var(--navy-700);white-space:nowrap}
.vax-item.r .vax-kind{background:var(--rose-soft);color:var(--rose-ink)}
.vax-bottom{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;margin-top:28px}
.vax-bottom .panel h2{font-size:18px;margin-bottom:10px}
.vax-notes{margin:0;padding-inline-start:18px;color:var(--ink-2);display:grid;gap:8px}
.vax-source{display:flex;gap:8px;align-items:flex-start;margin:20px 0 64px;font-size:14px;color:var(--muted);max-width:80ch}
.vax-source .i{flex:none;margin-top:3px}
@media (max-width:760px){
  .vax-age{grid-template-columns:1fr}
  .vax-when{border-inline-end:0;border-bottom:1px solid var(--paper-line);padding:12px 18px;font-size:19px}
  .vax-item{grid-template-columns:1fr auto;padding:9px 18px 9px 16px}
  .vax-kind{grid-column:1/-1;justify-self:start}
  .vax-bottom{grid-template-columns:1fr}
  .vax-legend{display:none}
}

/* ---------- homepage vaccination feature ---------- */
.vax-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:56px;align-items:center;padding:48px 56px;border-radius:16px;background:linear-gradient(135deg,var(--rose-soft) 0%,#fbf6f3 100%);border:1px solid var(--rose-line);position:relative;overflow:hidden}
.vax-feature::after{content:"";position:absolute;inset-inline-end:-120px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(181,97,122,.10),transparent 70%);pointer-events:none}
.vax-feature .eyebrow{color:var(--rose-ink)}
.vax-feature h2{font-family:var(--display);font-weight:400;font-size:clamp(30px,3.4vw,42px);line-height:1.1;color:var(--navy-900);letter-spacing:-.01em}
.vax-feature h2 em{font-style:italic;color:var(--rose-ink)}
[lang=ar] .vax-feature h2{font-family:var(--font);font-weight:600;font-size:28px;line-height:1.4}
[lang=ar] .vax-feature h2 em{font-style:normal}
.vax-feature-copy>p{margin-top:14px;color:var(--ink-2);font-size:17px;max-width:46ch}
.vax-points{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px;color:var(--ink-2)}
.vax-points li{display:flex;gap:10px;align-items:flex-start}
.vax-points .i{flex:none;margin-top:3px;color:var(--rose-ink)}
.vax-feature .btn-row{margin-top:26px}
.vax-peek{position:relative;z-index:1;background:#fff;border:1px solid var(--paper-line);border-radius:14px;box-shadow:0 18px 40px rgba(12,26,54,.08),0 2px 6px rgba(12,26,54,.05);padding:20px 22px 16px}
.vax-peek-head{display:flex;flex-direction:column;gap:10px}
.vax-peek-head>span{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
[lang=ar] .vax-peek-head>span{letter-spacing:0}
.vax-peek-ages{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}
.vax-peek-ages button{height:44px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);font:inherit;font-size:16px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.vax-peek-ages button small{font-size:11px;font-weight:500;color:var(--faint);margin-inline-start:2px}
[lang=ar] .vax-peek-ages button{font-size:12.5px}
.vax-peek-ages button:hover{border-color:var(--line-strong);color:var(--ink)}
.vax-peek-ages button[aria-pressed=true]{background:var(--navy-900);border-color:var(--navy-900);color:#fff}
.vax-peek-ages button[aria-pressed=true] small{color:rgba(255,255,255,.7)}
.vax-peek-age{margin:18px 0 6px;font-family:var(--display);font-size:24px;color:var(--navy-900)}
[lang=ar] .vax-peek-age{font-family:var(--font);font-weight:600;font-size:19px}
.vax-peek ul{list-style:none;margin:0;padding:0;min-height:176px}
.vax-peek li{display:grid;grid-template-columns:10px 1fr auto;gap:12px;align-items:baseline;padding:10px 0;border-top:1px solid var(--line)}
.vax-peek li:first-child{border-top:0}
.vax-peek li i{width:8px;height:8px;border-radius:50%;background:var(--navy-700);align-self:center}
.vax-peek li.r i{background:var(--rose-ink)}
.vax-peek li .n{font-weight:600;color:var(--ink);font-size:15px}
.vax-peek li .d{font-size:13.5px;color:var(--muted);white-space:nowrap}
.vax-peek-foot{display:flex;align-items:center;gap:16px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.vax-peek-foot span{display:inline-flex;align-items:center;gap:6px}
.vax-peek-foot .vax-dot{width:8px;height:8px}
.vax-peek-foot a{margin-inline-start:auto;display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--accent);text-decoration:none}
[dir=rtl] .vax-peek-foot a .i{transform:scaleX(-1)}
@media (max-width:900px){
  .vax-feature{grid-template-columns:1fr;gap:28px;padding:28px 20px}
  .vax-peek{padding:16px}
  .vax-peek-ages button{height:40px;font-size:14px}
}
.vax-feature h2{text-wrap:balance}
.vax-peek-ages button{white-space:nowrap;padding:0 4px}
.vax-peek li i{align-self:start;margin-top:7px}
@media (max-width:900px){
  .vax-peek-ages{gap:5px}
  .vax-peek-ages button small{display:none}
  .vax-peek-head>span::after{content:" (months)";text-transform:none;letter-spacing:0;font-weight:500}
  [lang=ar] .vax-peek-head>span::after{content:""}
}

/* ---------- Dr. Alaa portrait (top-half crop, arch frame) ---------- */
.meet-visual{position:relative;max-width:400px;margin-inline:auto;padding:0 0 28px}
.meet-visual::before{content:"";position:absolute;inset:22px -22px 50px 22px;border:1.5px solid var(--rose-line);border-radius:999px 999px 20px 20px;pointer-events:none}
[dir=rtl] .meet-visual::before{inset:22px 22px 50px -22px}
.meet-visual::after{content:"";position:absolute;width:120px;height:120px;inset-inline-start:-34px;top:38%;border-radius:50%;background:radial-gradient(circle,var(--rose-soft) 0 60%,transparent 61%);z-index:-1}
.meet-arch{position:relative;aspect-ratio:5/6;border-radius:999px 999px 20px 20px;overflow:hidden;background:linear-gradient(180deg,#eef0f3,#e4e6ea);box-shadow:0 24px 48px rgba(12,26,54,.12),0 2px 6px rgba(12,26,54,.06)}
.meet-arch img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.meet-arch::after{content:"";position:absolute;inset:auto 0 0 0;height:28%;background:linear-gradient(180deg,transparent,rgba(12,26,54,.18));pointer-events:none}
.meet-plate{position:absolute;bottom:0;inset-inline-start:24px;inset-inline-end:24px;display:flex;align-items:center;gap:12px;padding:14px 18px;background:#fff;border:1px solid var(--paper-line);border-radius:14px;box-shadow:0 12px 28px rgba(12,26,54,.12)}
.meet-plate .dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 4px var(--rose-soft)}
.meet-plate b{display:block;font-size:15px;color:var(--navy-900)}
.meet-plate span{font-size:13px;color:var(--muted)}
.doctor{grid-template-columns:300px 1fr;gap:56px}
.doctor-photo{position:relative;aspect-ratio:5/6;border-radius:999px 999px 18px 18px;overflow:hidden;background:#e9eaee;box-shadow:0 18px 40px rgba(12,26,54,.10);outline:1.5px solid var(--rose-line);outline-offset:8px}
.doctor .doctor-photo img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 0;border-radius:0}
.doc-card img{object-position:50% 22%}
@media(max-width:900px){.meet-visual{max-width:320px}}
@media(max-width:700px){.doctor{grid-template-columns:96px 1fr;gap:16px}.doctor-photo{aspect-ratio:1;border-radius:50%;outline-offset:4px}.doctor .doctor-photo img{object-position:50% 18%;transform:scale(1.5);transform-origin:50% 20%}}
.meet-visual::before{border-color:rgba(36,64,122,.22)}
@media(max-width:700px){.doctor{grid-template-columns:1fr;gap:28px}.doctor-photo{aspect-ratio:5/6;border-radius:999px 999px 18px 18px;outline-offset:6px;max-width:260px}.doctor .doctor-photo img{object-position:50% 0;transform:none}}
@media(max-width:700px){.meet-visual::before{inset:16px -12px 50px 12px}[dir=rtl] .meet-visual::before{inset:16px 12px 50px -12px}}
/* portrait frame: a concentric outline arch (even 14px gap all round), fading out towards the bottom */
.meet-visual::before,[dir=rtl] .meet-visual::before{inset:-14px -14px 14px -14px;border:1.5px solid rgba(36,64,122,.30);border-radius:999px 999px 30px 30px;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 92%);mask-image:linear-gradient(180deg,#000 55%,transparent 92%)}
.meet-visual::after{display:none}
@media(max-width:700px){.meet-visual::before,[dir=rtl] .meet-visual::before{inset:-10px -10px 18px -10px}}

/* ---------- About page ---------- */
.about-hero{padding:56px 0 72px}
.about-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:72px;align-items:center}
.about-intro h1{font-family:var(--display);font-weight:400;font-size:clamp(40px,5.2vw,64px);line-height:1.02;letter-spacing:-.02em;color:var(--navy-900)}
[lang=ar] .about-intro h1{font-family:var(--font);font-weight:600;font-size:clamp(32px,4vw,44px);line-height:1.3;letter-spacing:0}
.about-role{margin-top:10px;font-size:16px;font-weight:600;color:var(--rose-ink)}
.about-lead{margin-top:22px;font-size:20px;line-height:1.55;color:var(--ink-2);max-width:40ch}
[lang=ar] .about-lead{font-size:18px}
.about-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:32px 0 0;border-top:1px solid var(--paper-line)}
.about-facts>div{padding:16px 0;border-bottom:1px solid var(--paper-line)}
.about-facts>div:nth-child(odd){padding-inline-end:20px}
.about-facts>div:nth-child(even){padding-inline-start:20px;border-inline-start:1px solid var(--paper-line)}
.about-facts dt{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
[lang=ar] .about-facts dt{letter-spacing:0;text-transform:none;font-size:13px}
.about-facts dt .i{color:var(--rose-ink)}
.about-facts dd{margin:6px 0 0;font-size:16.5px;font-weight:600;color:var(--navy-900)}
.about-intro .btn-row{margin-top:32px}
.about-visual{max-width:440px}
.ways-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.way{background:#fff;border:1px solid var(--paper-line);border-radius:14px;padding:26px 24px}
.way .pi{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:var(--rose-soft);color:var(--rose-ink)}
.way h3{margin-top:18px;font-size:17px;color:var(--navy-900)}
.way p{margin-top:8px;color:var(--ink-2);font-size:15px;line-height:1.6}
.sees-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--paper-line)}
.sees-list a{display:grid;grid-template-columns:240px 1fr auto;gap:24px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--paper-line);text-decoration:none;color:inherit;transition:background .15s}
.sees-list a:hover{background:rgba(255,255,255,.6)}
.sees-list b{font-family:var(--display);font-weight:400;font-size:22px;color:var(--navy-900)}
[lang=ar] .sees-list b{font-family:var(--font);font-weight:600;font-size:18px}
.sees-list span{color:var(--ink-2)}
.sees-list .i{color:var(--muted)}
@media(max-width:900px){
  .about-hero{padding:32px 0 48px}
  .about-hero-grid{grid-template-columns:1fr;gap:44px}
  .about-visual{order:-1;max-width:300px;margin-inline:auto}
  .ways-grid{grid-template-columns:1fr}
  .sees-list a{grid-template-columns:1fr auto;gap:6px 16px}
  .sees-list span{grid-column:1}
  .sees-list .i{grid-row:1/span 2;grid-column:2}
}
@media(max-width:480px){.about-facts{grid-template-columns:1fr}.about-facts>div:nth-child(n){padding-inline:0;border-inline-start:0}.about-intro .btn-row .btn{flex:1}}

/* =====================================================================================================
   Dr. Alaa's world — from her logo: one continuous line (navy → sky), a pink heart, arcs of dots, the arch.
   ===================================================================================================== */
:root{--sky:#3a9bd1;--sky-soft:#eaf4fb;--heart:#e889ad;--mist:#f1f5fb;--w-line:#24407a}
.w-glyph{width:100%;height:100%;display:block;overflow:visible}
.w-line{fill:none;stroke:url(#w-ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.w-line .w-heart{fill:var(--heart);stroke:none}
/* seal: the logo's round frame with its trail of dots */
.w-seal{position:relative;display:inline-grid;place-items:center;flex:none;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0,#fff 40%,var(--mist) 100%);box-shadow:inset 0 0 0 1px rgba(58,155,209,.22)}
.w-seal .w-glyph{width:40px;height:40px}
.w-seal::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px dotted rgba(58,155,209,.45);-webkit-mask:conic-gradient(from 20deg,#000 0 95deg,transparent 95deg);mask:conic-gradient(from 20deg,#000 0 95deg,transparent 95deg)}
[dir=rtl] .w-seal::after{transform:scaleX(-1)}
.w-seal.sm{width:44px;height:44px}.w-seal.sm .w-glyph{width:28px;height:28px}.w-seal.sm::after{inset:-5px;border-width:1.5px}
.w-seal.lg{width:84px;height:84px}.w-seal.lg .w-glyph{width:52px;height:52px}
.w-seal.on-dark{background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.14),rgba(255,255,255,.04));box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
/* divider: line · heart · line */
.w-rule{display:inline-flex;align-items:center;gap:8px;color:var(--heart)}
.w-rule i{display:block;width:34px;height:1px;background:linear-gradient(90deg,transparent,rgba(58,155,209,.6))}
.w-rule i:last-child{background:linear-gradient(90deg,rgba(58,155,209,.6),transparent)}
.w-rule svg{width:12px;height:11px;fill:currentColor}
/* laurel */
.w-laurel{width:18px;height:36px;fill:none;stroke:url(#w-ink);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;flex:none}
.w-laurel.flip{transform:scaleX(-1)}

/* ---------- world, applied ---------- */
/* eyebrows open with the logo's heart */
.public .eyebrow{display:flex;align-items:center;gap:8px;color:var(--navy-700)}
.public .eyebrow::before{content:"";flex:none;width:11px;height:10px;background:var(--heart);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 10.2C2.4 7.8 1 6 1 4.1a2.6 2.6 0 0 1 5-1 2.6 2.6 0 0 1 5 1C11 6 9.6 7.8 6 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 10.2C2.4 7.8 1 6 1 4.1a2.6 2.6 0 0 1 5-1 2.6 2.6 0 0 1 5 1C11 6 9.6 7.8 6 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat}
.public .vax-feature .eyebrow,.public .vax-card .eyebrow{color:var(--rose-ink)}
/* lists: a small ring, like the logo's dots */
.w-list{list-style:none;margin:0;padding:0;display:grid;gap:9px;color:var(--ink-2);font-size:15px}
.w-list li{position:relative;padding-inline-start:22px;line-height:1.5}
.w-list li::before{content:"";position:absolute;inset-inline-start:2px;top:.55em;width:7px;height:7px;border-radius:50%;border:1.6px solid var(--sky);background:#fff}
.w-list li::after{content:"";position:absolute;inset-inline-start:4.6px;top:calc(.55em + 2.6px);width:2.6px;height:2.6px;border-radius:50%;background:var(--heart)}
/* inline glyphs beside text */
.facts .w-glyph,.care-foot .w-glyph,.svc-len .w-glyph,.location-body h3 .w-glyph,.about-facts dt .w-glyph{width:22px;height:22px;flex:none}
.facts .w-glyph .w-line,.care-foot .w-glyph .w-line{stroke-width:2.1}
.location-body h3{display:flex;align-items:center;gap:8px}
.svc-len{display:inline-flex;align-items:center;gap:6px}

/* hero: the arch, with the logo's dotted arc */
.hero-photo{border-radius:999px 999px 22px 22px;aspect-ratio:4/4.6;box-shadow:0 30px 60px rgba(12,26,54,.14)}
.hero-visual::before{content:"";position:absolute;inset:-16px -16px 8px -16px;border-radius:999px 999px 34px 34px;border:2px dotted rgba(58,155,209,.42);-webkit-mask:linear-gradient(200deg,#000 25%,transparent 55%);mask:linear-gradient(200deg,#000 25%,transparent 55%);pointer-events:none}
[dir=rtl] .hero-visual::before{-webkit-mask:linear-gradient(160deg,#000 25%,transparent 55%);mask:linear-gradient(160deg,#000 25%,transparent 55%)}
.doc-card{border-radius:999px;padding:8px 22px 8px 8px}
[dir=rtl] .doc-card{padding:8px 8px 8px 22px}

/* next available times */
.next-times{border:0;border-radius:22px;box-shadow:0 1px 0 rgba(58,155,209,.12),0 18px 44px rgba(12,26,54,.07);padding:30px 34px}
.nt-head{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
.nt-head .w-seal{grid-row:span 2}
.nt-head>:not(.w-seal){grid-column:2}
.nt-head .btn{grid-column:1/-1;justify-self:start;margin-top:10px}

/* care cards: paper, a seal sitting on the photo's edge */
.care-card{position:relative;border:0;border-radius:22px;box-shadow:0 1px 0 rgba(58,155,209,.10),0 16px 40px rgba(12,26,54,.06);transition:box-shadow .3s,transform .3s var(--ease)}
.care-card:hover{transform:translateY(-3px);box-shadow:0 1px 0 rgba(58,155,209,.14),0 24px 52px rgba(12,26,54,.10)}
.care-media{aspect-ratio:16/11}
.care-seal{position:absolute;inset-inline-start:22px;margin-top:-34px;background:#fff;box-shadow:0 6px 16px rgba(12,26,54,.12),inset 0 0 0 1px rgba(58,155,209,.22)}
.care-card .care-seal{top:calc((100% * 0) + 0px)}
.care-body{padding-top:42px}
.care-body h3{font-family:var(--display);font-weight:400;font-size:25px;letter-spacing:-.005em}
[lang=ar] .care-body h3{font-family:var(--font);font-weight:600;font-size:20px}
.care-foot{border-top:1px dashed rgba(58,155,209,.35)}

/* how a visit works: seals joined by a dotted thread */
.steps-row{position:relative;gap:28px}
.steps-row::before{content:"";position:absolute;top:32px;inset-inline:calc(12.5% - 14px);border-top:2px dotted rgba(58,155,209,.45)}
.step{border-top:0;padding-top:0;justify-items:center;text-align:center;gap:10px}
.step::before{display:none}
.step-mark{position:relative;display:inline-grid;margin-bottom:8px}
.step-mark .w-seal{background:radial-gradient(circle at 35% 30%,#fff 0,#fff 55%,var(--mist) 100%)}
.step-mark .w-seal::after{display:none}
.step-mark b{position:absolute;inset-inline-end:-6px;top:-4px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:999px;background:var(--navy-800);color:#fff;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.step h3{font-family:var(--display);font-weight:400;font-size:21px}
[lang=ar] .step h3{font-family:var(--font);font-weight:600;font-size:17px}
.step p{margin-inline:auto}

/* meet: credentials line + seals */
.cred-line{margin-top:10px;font-size:14.5px;font-weight:600;letter-spacing:.01em;color:var(--rose-ink)}
.promises li{grid-template-columns:44px 1fr;gap:2px 18px;padding:16px 0}
.promises .pi{grid-row:span 2}

/* location panel */
.location{border:0;border-radius:22px;box-shadow:0 1px 0 rgba(58,155,209,.12),0 18px 44px rgba(12,26,54,.07)}

/* closing band: the logo's sleeping baby, drawn large and faint */
.cta-band{position:relative;overflow:hidden}
.cta-art{position:absolute;inset-inline-end:4%;top:50%;width:300px;height:300px;transform:translateY(-50%);opacity:.12;pointer-events:none}
.cta-art .w-line{stroke:#fff;stroke-width:1.1}
.cta-art .w-heart{fill:var(--heart)}
.cta-band .wrap{position:relative}
@media(max-width:860px){.cta-art{width:200px;height:200px;inset-inline-end:-30px;top:30%}}

/* services page */
.svc-media{position:relative}
.svc-media img{border-radius:22px;aspect-ratio:4/3.2}
.svc-media .care-seal{bottom:-24px;margin-top:0}
.svc-detail h2{font-family:var(--display);font-weight:400;font-size:32px}
[lang=ar] .svc-detail h2{font-family:var(--font);font-weight:600;font-size:24px}
.svc-detail h3{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px}
[lang=ar] .svc-detail h3{letter-spacing:0;text-transform:none;font-size:14px}

/* about: credentials, ways */
.about-creds{background:linear-gradient(180deg,var(--mist),#fff 120%);border-top:0}
.creds-head{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;margin-bottom:36px}
.creds-head .eyebrow{justify-content:center}
.creds-head h2{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,36px);color:var(--navy-900);letter-spacing:-.01em}
[lang=ar] .creds-head h2{font-family:var(--font);font-weight:600;font-size:26px}
.creds-head .w-laurel{width:30px;height:60px}
.creds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.creds li{display:grid;justify-items:center;align-content:start;gap:10px;text-align:center;padding:28px 20px 26px;background:#fff;border-radius:999px 999px 20px 20px;box-shadow:0 1px 0 rgba(58,155,209,.12),0 14px 34px rgba(12,26,54,.06)}
.creds b{font-family:var(--display);font-weight:400;font-size:28px;line-height:1.1;color:var(--navy-900);margin-top:14px}
[lang=ar] .creds b{font-family:var(--font);font-weight:600;font-size:21px}
.creds span{font-size:14.5px;color:var(--ink-2);line-height:1.5;max-width:24ch}
.ways-grid{gap:0}
.way{background:none;border:0;border-radius:0;padding:8px 32px 8px;display:grid;justify-items:start;align-content:start}
.way+.way{border-inline-start:1px dashed rgba(58,155,209,.35)}
.way:first-child{padding-inline-start:0}
.way h3{font-family:var(--display);font-weight:400;font-size:24px;margin-top:22px}
[lang=ar] .way h3{font-family:var(--font);font-weight:600;font-size:19px}
.about-facts dt .w-glyph{width:20px;height:20px}
.about-role{color:var(--rose-ink)}
@media(max-width:900px){
  .creds{grid-template-columns:repeat(2,minmax(0,1fr))}
  .way{padding:22px 0!important;border-inline-start:0!important}
  .way+.way{border-top:1px dashed rgba(58,155,209,.35)}
  .steps-row::before{display:none}
  .creds-head .w-laurel{display:none}
}
@media(max-width:700px){
  .steps-row{grid-template-columns:1fr 1fr;row-gap:36px}
}
@media(max-width:480px){.creds{grid-template-columns:1fr}.creds li{border-radius:999px 999px 20px 20px}}
.care-body{position:relative}
.care-body>.care-seal{position:absolute;top:-32px;margin:0}
.promises .w-seal{grid-row:span 2}
.vax-points.w-list{margin-top:20px}
.cta-art{inset-inline-end:auto;inset-inline-start:44%;width:250px;height:250px;opacity:.14}
@media(max-width:860px){.cta-art{inset-inline-start:auto;inset-inline-end:-40px}}
.w-rule svg,.w-rule svg path{fill:var(--heart)}
.sees-list a{grid-template-columns:44px 220px 1fr auto}
@media(max-width:900px){.sees-list a{grid-template-columns:44px 1fr auto}.sees-list .w-seal{grid-row:1/span 2}.sees-list b{grid-column:2}.sees-list span{grid-column:2}.sees-list a>.i{grid-column:3;grid-row:1/span 2}}
.w-intro{position:relative;padding-inline-end:120px}
.w-intro .intro-seal{position:absolute;inset-inline-end:0;top:48px}
.intro-rule{display:flex;margin:14px 0 2px}
.intro-rule i:first-child{display:none}
.intro-rule i:last-child{width:60px}
.svc-media{align-self:start}
@media(max-width:700px){.w-intro{padding-inline-end:0}.w-intro .intro-seal{position:static;margin-bottom:14px;width:64px;height:64px}.w-intro .intro-seal .w-glyph{width:40px;height:40px}}
.public .nt-head{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
.public .nt-head .w-seal{grid-row:1/span 2;grid-column:1}
.public .nt-head h2{grid-row:1;grid-column:2}
.public .nt-head .sub{grid-row:2;grid-column:2}
.public .nt-head .btn{grid-row:3;grid-column:1/-1}

/* booking + manage + confirm pages in the same world */
.public .panel,.public .book-page .card{border:0;border-radius:22px;box-shadow:0 1px 0 rgba(58,155,209,.12),0 18px 44px rgba(12,26,54,.07)}
.public .book-page h1{font-family:var(--display);font-weight:400;font-size:clamp(30px,3.6vw,42px);letter-spacing:-.01em;color:var(--navy-900);padding-top:12px}
[lang=ar].public .book-page h1,[lang=ar] .public .book-page h1{font-family:var(--font);font-weight:600;font-size:28px}
.public .review-block{border:1px solid rgba(58,155,209,.22);border-radius:16px;background:linear-gradient(180deg,#fff,var(--mist) 180%)}
.public .time-btn[aria-pressed=true],.public .date-btn[aria-pressed=true]{box-shadow:0 0 0 3px rgba(58,155,209,.18)}
.public .steps li[aria-current=step]::before{background:linear-gradient(90deg,var(--navy-800),var(--sky))}
[dir=rtl] .public .steps li[aria-current=step]::before{background:linear-gradient(270deg,var(--navy-800),var(--sky))}

/* ---------- more of the world on the homepage ---------- */
/* dotted arcs */
.w-dots{display:block;overflow:visible}
.w-dots path{fill:none;stroke:var(--sky);stroke-linecap:round}
.w-dots .d1{stroke-width:3;stroke-dasharray:0 9;opacity:.45}
.w-dots .d2{stroke-width:2.2;stroke-dasharray:0 8;opacity:.3;stroke:var(--heart)}

/* hero: soft washes of sky and pink, two trails of dots */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(520px 380px at 88% 18%,rgba(58,155,209,.10),transparent 70%),
  radial-gradient(460px 340px at 6% 92%,rgba(232,137,173,.10),transparent 70%),
  radial-gradient(300px 220px at 48% 4%,rgba(232,137,173,.06),transparent 70%)}
.hero-bg .w-dots{position:absolute}
.hero-bg .hb-1{width:260px;height:260px;inset-inline-start:-70px;top:120px;transform:rotate(-20deg)}
.hero-bg .hb-2{width:180px;height:180px;inset-inline-end:2%;bottom:120px;transform:rotate(150deg);opacity:.8}
[dir=rtl] .hero-bg .w-dots{scale:-1 1}
.hero .wrap{position:relative}

/* section borders: a fading line with the logo's heart at its centre */
.public .section{border-top:0;position:relative}
.public .section::before{content:"";position:absolute;top:0;left:50%;width:min(620px,78%);height:16px;transform:translate(-50%,-50%);z-index:1;pointer-events:none;background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Ccircle cx='3' cy='8' r='1.3' fill='%233a9bd1' opacity='.55'/%3E%3Ccircle cx='9' cy='8' r='1.6' fill='%233a9bd1' opacity='.7'/%3E%3Cpath fill='%23e889ad' d='M20 13.6c-4.3-2.9-6-5-6-7.3a3.1 3.1 0 0 1 6-1.2 3.1 3.1 0 0 1 6 1.2c0 2.3-1.7 4.4-6 7.3Z'/%3E%3Ccircle cx='31' cy='8' r='1.6' fill='%23e889ad' opacity='.7'/%3E%3Ccircle cx='37' cy='8' r='1.3' fill='%23e889ad' opacity='.55'/%3E%3C/svg%3E") center/40px 16px no-repeat,
  linear-gradient(90deg,transparent,rgba(58,155,209,.5)) left center/calc(50% - 26px) 1px no-repeat,
  linear-gradient(90deg,rgba(232,137,173,.5),transparent) right center/calc(50% - 26px) 1px no-repeat}
.public #location::before,.public .section.care::before{display:none}
.public .section.care{border-top:0}

/* edges that shade from sky to pink */
.public .next-times,.public .care-card,.public .location,.public .vax-peek,.public .creds li,.public .panel,.public .meet-plate{position:relative}
.public .next-times::after,.public .care-card::after,.public .location::after,.public .vax-peek::after,.public .creds li::after,.public .meet-plate::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(140deg,rgba(58,155,209,.55),rgba(58,155,209,.08) 35%,rgba(232,137,173,.08) 65%,rgba(232,137,173,.55));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.public .meet-plate{border-color:transparent}
/* a corner flourish on the next-times panel */
.next-times{overflow:visible}
.next-times .corner-dots{position:absolute;width:150px;height:150px;inset-inline-end:-38px;top:-46px;transform:rotate(12deg);pointer-events:none}
[dir=rtl] .next-times .corner-dots{scale:-1 1}

/* how a visit works: a soft wave of light behind */
.journey{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fff 60%,var(--mist) 100%);border-block:0}
.journey-wave{position:absolute;inset:auto -10% -1px;height:120px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0 70C240 20 420 110 720 66S1200 18 1440 58' fill='none' stroke='%233a9bd1' stroke-opacity='.25' stroke-width='1.5'/%3E%3Cpath d='M0 92C260 52 460 122 760 88S1210 46 1440 80' fill='none' stroke='%23e889ad' stroke-opacity='.25' stroke-width='1.2' stroke-dasharray='1 7' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.journey .wrap{position:relative}
.step-mark .w-seal{box-shadow:inset 0 0 0 1px rgba(58,155,209,.25),0 8px 20px rgba(12,26,54,.06)}

/* meet: laurels and a trail of dots in the corners */
.meet{position:relative;overflow:hidden;background:radial-gradient(600px 400px at 15% 20%,#fff,transparent 70%),radial-gradient(500px 360px at 90% 90%,rgba(232,137,173,.10),transparent 70%),var(--sky-soft)}
.meet-orn{position:absolute;inset:0;pointer-events:none}
.meet-orn .w-laurel{position:absolute;width:44px;height:88px;opacity:.35;top:56px;inset-inline-start:3%}
.meet-orn .w-laurel.flip{top:auto;bottom:56px;inset-inline-start:auto;inset-inline-end:3%}
.meet-orn .mo-dots{position:absolute;width:220px;height:220px;inset-inline-end:-60px;top:-40px;transform:rotate(40deg);opacity:.9}
.meet .wrap{position:relative}

/* vaccination feature: a dotted trail on its edge */
.vax-feature{border-color:transparent;box-shadow:0 1px 0 rgba(232,137,173,.2)}
.vax-feature::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(120deg,rgba(232,137,173,.6),rgba(232,137,173,.1) 40%,rgba(58,155,209,.1) 60%,rgba(58,155,209,.5));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.vax-feature::after{width:300px;height:300px;inset-inline-start:-110px;inset-inline-end:auto;top:auto;bottom:-150px;background:none;border-radius:50%;border:3px dotted rgba(58,155,209,.35);-webkit-mask:conic-gradient(from 0deg,#000 0 120deg,transparent 120deg);mask:conic-gradient(from 0deg,#000 0 120deg,transparent 120deg)}

/* service photos: a hairline arch inside the frame */
.care-media::after{content:"";position:absolute;inset:12px 12px auto;height:70%;border:1px solid rgba(255,255,255,.55);border-bottom:0;border-radius:999px 999px 0 0;pointer-events:none;-webkit-mask:linear-gradient(#000 40%,transparent);mask:linear-gradient(#000 40%,transparent)}

/* closing band: twin dotted arcs beside the baby */
.cta-band::before{content:"";position:absolute;width:420px;height:420px;inset-inline-start:calc(44% - 85px);top:50%;transform:translateY(-50%);border-radius:50%;border:2px dotted rgba(255,255,255,.18);-webkit-mask:conic-gradient(from 200deg,#000 0 140deg,transparent 140deg);mask:conic-gradient(from 200deg,#000 0 140deg,transparent 140deg);pointer-events:none}
@media(max-width:860px){.cta-band::before{display:none}.hero-bg .hb-1{width:180px;height:180px}.meet-orn .w-laurel{display:none}}
/* closing band: the logo's dotted arcs (no figure) */
.cta-art{opacity:1;width:300px;height:300px;inset-inline-start:auto;inset-inline-end:-40px}
.cta-art .w-dots .d1{stroke:#fff;opacity:.28}
.cta-art .w-dots .d2{stroke:var(--heart);opacity:.45}
.cta-art .w-heart{fill:var(--heart);opacity:.8}
.cta-band::before{inset-inline-start:auto;inset-inline-end:-120px;width:460px;height:460px}
@media(max-width:860px){.cta-art{width:200px;height:200px;inset-inline-end:-60px;top:20%}}
.vax-feature::after{inset-inline-start:auto;inset-inline-end:-130px;bottom:auto;top:-140px;width:320px;height:320px;-webkit-mask:conic-gradient(from 180deg,#000 0 110deg,transparent 110deg);mask:conic-gradient(from 180deg,#000 0 110deg,transparent 110deg)}
[dir=rtl] .vax-feature::after{transform:scaleX(-1)}
.hero{padding-bottom:56px}
.public .section.care{padding-top:72px!important}

/* ---------- fix: section ornaments are no longer clipped ---------- */
.public .hero,.public .meet,.public .journey{overflow:visible}
.hero-bg,.meet-orn{overflow:hidden}
.journey{overflow-x:clip}
.public .section::before{z-index:3}

/* =====================================================================================================
   Buttons & interactions, in the same world: pill shapes (the logo's circle), the navy→sky line,
   a hairline that shades from sky to pink, gentle lifts and a little glow.
   ===================================================================================================== */
:root{--ease-soft:cubic-bezier(.22,.7,.2,1)}
.public .btn{border-radius:999px;font-weight:600;letter-spacing:.005em;transition:background .35s var(--ease-soft),box-shadow .35s var(--ease-soft),transform .25s var(--ease-soft),color .25s,border-color .25s;position:relative;isolation:isolate}
.public .btn:not(.btn-text):not([disabled]):active{transform:translateY(0) scale(.98)}
.public .btn:focus-visible{outline:0;box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(58,155,209,.55);border-radius:999px}
.public .btn .i{transition:transform .35s var(--ease-soft)}
.public .btn:not([disabled]):hover .i-dir{transform:translateX(3px)}
[dir=rtl] .public .btn:not([disabled]):hover .i-dir{transform:scaleX(-1) translateX(3px)}
.public .btn-lg{--bh:52px;padding:0 26px}
.public .btn-sm{padding:0 14px}

/* primary: deep navy, a sky glint along the top, glow on hover */
.public .btn-primary{color:#fff;border:0;background:linear-gradient(180deg,#26407c 0%,#162a57 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 2px rgba(12,26,54,.18),0 6px 16px -6px rgba(22,42,87,.45)}
.public .btn-primary::after{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(58,155,209,.35) 50%,transparent 70%) -120% 0/250% 100% no-repeat;opacity:0;transition:opacity .3s,background-position .8s var(--ease-soft)}
.public .btn-primary:not([disabled]):hover{background:linear-gradient(180deg,#2c4a8e 0%,#182e60 100%);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 2px 4px rgba(12,26,54,.16),0 12px 26px -8px rgba(36,64,122,.55),0 0 0 4px rgba(58,155,209,.10)}
.public .btn-primary:not([disabled]):hover::after{opacity:1;background-position:120% 0}

/* secondary: white pill with a hairline that shades from sky to pink */
.public .btn-secondary{background:#fff;color:var(--navy-900);border:0;box-shadow:0 1px 2px rgba(12,26,54,.06)}
.public .btn-secondary::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(120deg,rgba(58,155,209,.6),rgba(36,64,122,.25) 50%,rgba(232,137,173,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.public .btn-secondary:not([disabled]):hover{background:linear-gradient(180deg,#fff,var(--mist));color:var(--navy-950);transform:translateY(-1px);box-shadow:0 8px 20px -10px rgba(36,64,122,.35),0 0 0 4px rgba(232,137,173,.08)}
.public .btn-secondary .i{color:var(--sky)}

/* text links: an underline that draws in, sky to pink */
.public .btn-text{color:var(--navy-700);padding-inline:2px;border-radius:4px;background:linear-gradient(90deg,var(--sky),var(--heart)) left calc(100% - 9px)/0 1.5px no-repeat}
.public .btn-text.btn-sm{background-position:left calc(100% - 6px)}
.public .btn-text:not([disabled]):hover{text-decoration:none;color:var(--navy-900);background-size:calc(100% - 4px) 1.5px}
[dir=rtl] .public .btn-text{background-position:right calc(100% - 9px)}

/* closing band: light buttons on navy */
.public .cta-band .btn-primary{background:#fff;color:var(--navy-900);box-shadow:0 8px 24px -10px rgba(0,0,0,.4)}
.public .cta-band .btn-primary:not([disabled]):hover{background:#fff;color:var(--navy-950);box-shadow:0 12px 28px -10px rgba(0,0,0,.45),0 0 0 4px rgba(232,137,173,.25)}
.public .cta-band .btn-secondary{background:transparent;color:#fff;box-shadow:none}
.public .cta-band .btn-secondary::before{background:linear-gradient(120deg,rgba(255,255,255,.55),rgba(255,255,255,.2) 50%,rgba(232,137,173,.7))}
.public .cta-band .btn-secondary:not([disabled]):hover{background:rgba(255,255,255,.08);color:#fff}
.public .cta-band .btn-secondary .i{color:#fff}

/* time slots and chips: pills, a soft lift, selected glows */
.public .slot-link{border-radius:999px;background:#fff;border:1px solid rgba(58,155,209,.28);color:var(--navy-800);font-weight:600;transition:all .3s var(--ease-soft)}
.public .slot-link:hover{background:linear-gradient(180deg,#26407c,#162a57);border-color:transparent;color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(36,64,122,.55)}
.public .time-btn{border-radius:999px;border-color:rgba(58,155,209,.3);transition:all .3s var(--ease-soft)}
.public .time-btn:hover{border-color:var(--sky);background:var(--mist);transform:translateY(-1px)}
.public .time-btn[aria-pressed=true]{background:linear-gradient(180deg,#26407c,#162a57);border-color:transparent;box-shadow:0 0 0 4px rgba(58,155,209,.15),0 8px 18px -8px rgba(36,64,122,.6)}
.public .date-chip{border-radius:18px;border-color:rgba(58,155,209,.3);transition:all .3s var(--ease-soft)}
.public .date-chip:hover{border-color:var(--sky);background:var(--mist);transform:translateY(-1px)}
.public .date-chip[aria-pressed=true]{background:linear-gradient(180deg,#26407c,#162a57);border-color:transparent;box-shadow:0 0 0 4px rgba(58,155,209,.15)}
.public .seg{border-radius:999px;background:#fff;border-color:rgba(58,155,209,.25);padding:4px}
.public .seg button{border-radius:999px;height:34px;padding:0 16px;transition:all .25s var(--ease-soft)}
.public .seg button[aria-pressed=true],.public .seg button[aria-selected=true]{background:linear-gradient(180deg,#26407c,#162a57);color:#fff;box-shadow:0 4px 10px -4px rgba(36,64,122,.5)}
.public .vax-peek-ages button{border-radius:999px;border-color:rgba(58,155,209,.25);background:#fff;transition:all .25s var(--ease-soft)}
.public .vax-peek-ages button:hover{border-color:var(--sky);background:var(--mist);transform:translateY(-1px)}
.public .vax-peek-ages button[aria-pressed=true]{background:linear-gradient(180deg,#26407c,#162a57);box-shadow:0 0 0 3px rgba(58,155,209,.15)}

/* navigation: a sky-to-pink line under the current page; soft hover */
.public .site-nav a{border-radius:999px;transition:background .25s,color .25s}
.public .site-nav a:hover{background:rgba(58,155,209,.08)}
.public .site-nav a[aria-current=page]{box-shadow:none;border-radius:999px;position:relative}
.public .site-nav a[aria-current=page]::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--navy-700),var(--sky),var(--heart))}

/* cards respond softly; service rows and time links too */
.public .sees-list a{border-radius:14px;transition:background .3s var(--ease-soft)}
.public .sees-list a:hover{background:linear-gradient(90deg,rgba(58,155,209,.06),rgba(232,137,173,.06))}
.public .sees-list a:hover .i{transform:translateX(4px);color:var(--heart)}
.public .sees-list .i{transition:transform .3s var(--ease-soft),color .3s}
.public .w-seal{transition:transform .5s var(--ease-soft)}
.public .care-card:hover .care-seal,.public .way:hover .w-seal,.public .step:hover .w-seal{transform:translateY(-2px) rotate(-4deg)}
.public .faq summary{transition:color .2s}
.public .faq summary:hover{color:var(--navy-700)}
.public .faq details[open] summary .i{color:var(--heart)}
@media (prefers-reduced-motion:reduce){.public .btn,.public .w-seal,.public .slot-link,.public .time-btn{transition:none}.public .btn:hover{transform:none!important}}
.public .loc-mini{border:0;border-radius:22px;overflow:hidden;box-shadow:0 1px 0 rgba(58,155,209,.12),0 18px 44px rgba(12,26,54,.07)}
.public .loc-mini a,.public .consent-line a{color:var(--navy-700);font-weight:600;text-decoration:none;background:linear-gradient(90deg,var(--sky),var(--heart)) left bottom/100% 1.5px no-repeat;transition:background-size .3s}
.public .loc-mini a:hover,.public .consent-line a:hover{background-size:0 1.5px}
.public .hero,.public .meet,.public .journey{overflow-x:clip;overflow-y:visible}

/* hero: Dr. Alaa herself, with a centred name plate resting on the foot of the arch */
.hero-portrait{background:linear-gradient(180deg,#eceef2,#dfe2e8)}
.hero-portrait img{object-position:50% 0}
.hero-visual{padding-bottom:40px}
.hero-plate{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(86%,420px);display:grid;justify-items:center;gap:4px;text-align:center;padding:16px 22px 15px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-radius:20px;box-shadow:0 18px 40px -14px rgba(12,26,54,.28),0 2px 6px rgba(12,26,54,.06)}
.hero-plate::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(140deg,rgba(58,155,209,.55),rgba(58,155,209,.08) 35%,rgba(232,137,173,.08) 65%,rgba(232,137,173,.55));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.hero-plate b{font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15;color:var(--navy-900)}
[lang=ar] .hero-plate b{font-family:var(--font);font-weight:600;font-size:19px}
.hero-plate span{font-size:13px;font-weight:600;color:var(--rose-ink);letter-spacing:.01em}
.hero-plate::before{content:"";position:absolute;top:-6px;left:50%;width:13px;height:12px;transform:translateX(-50%);background:var(--heart);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 10.2C2.4 7.8 1 6 1 4.1a2.6 2.6 0 0 1 5-1 2.6 2.6 0 0 1 5 1C11 6 9.6 7.8 6 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 11'%3E%3Cpath d='M6 10.2C2.4 7.8 1 6 1 4.1a2.6 2.6 0 0 1 5-1 2.6 2.6 0 0 1 5 1C11 6 9.6 7.8 6 10.2Z'/%3E%3C/svg%3E") center/contain no-repeat}
/* meet: the family photo; its plate centred on the foot of the arch */
.meet-arch img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.public .meet-plate{position:absolute;inset-inline:auto;left:50%;right:auto;bottom:0;transform:translateX(-50%);width:calc(100% - 64px);border-radius:18px}
[dir=rtl] .public .meet-plate{left:50%}
.meet-copy h2 em{font-style:italic;color:var(--rose-ink)}
[lang=ar] .meet-copy h2 em{font-style:normal}
@media(max-width:860px){.hero-plate b{font-size:20px}.hero-plate{width:min(90%,360px);padding:12px 16px}}
.public .meet-visual{position:relative}

/* why families choose her: a credentials plaque in the arch, framed by laurels */
.cred-plaque{position:relative;max-width:420px;width:100%;margin-inline:auto;padding:40px 34px 30px;text-align:center;background:linear-gradient(180deg,#fff 0%,#fff 70%,var(--mist) 100%);border-radius:999px 999px 26px 26px;box-shadow:0 30px 60px -24px rgba(12,26,54,.22),0 2px 8px rgba(12,26,54,.05)}
.cred-plaque::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(160deg,rgba(58,155,209,.6),rgba(58,155,209,.08) 40%,rgba(232,137,173,.1) 60%,rgba(232,137,173,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
.cred-plaque::before{content:"";position:absolute;inset:-14px;border-radius:999px 999px 38px 38px;border:2px dotted rgba(58,155,209,.35);-webkit-mask:linear-gradient(180deg,#000 30%,transparent 70%);mask:linear-gradient(180deg,#000 30%,transparent 70%);pointer-events:none}
.cp-top{display:flex;align-items:flex-end;justify-content:center;gap:12px;margin-top:26px}
.cp-top .w-laurel{width:30px;height:60px;margin-bottom:4px}
.cp-title{margin-top:18px;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
[lang=ar] .cp-title{letter-spacing:0;text-transform:none;font-size:14px}
.cp-rule{display:flex;justify-content:center;margin:10px 0 6px}
.cp-list{list-style:none;margin:0;padding:0;display:grid}
.cp-list li{display:grid;gap:3px;padding:14px 6px;border-bottom:1px dashed rgba(58,155,209,.3)}
.cp-list li:last-child{border-bottom:0}
.cp-list b{font-family:var(--display);font-weight:400;font-size:24px;line-height:1.15;color:var(--navy-900)}
[lang=ar] .cp-list b{font-family:var(--font);font-weight:600;font-size:19px}
.cp-list span{font-size:13.5px;color:var(--ink-2);line-height:1.45}
.cp-foot{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:9px 16px;border-radius:999px;background:var(--rose-soft);color:var(--rose-ink);font-size:13.5px;font-weight:600}
.cp-foot .dot{width:8px;height:8px;border-radius:50%;background:var(--heart);box-shadow:0 0 0 3px rgba(232,137,173,.25)}
@media(max-width:900px){.cred-plaque{max-width:360px;padding:30px 22px 24px}.cp-top{margin-top:14px}}
@media(max-width:900px){.meet-grid .meet-copy{order:-1}.meet-grid{gap:40px}}

/* her portrait in the plaque's circle */
.cp-avatar{position:relative;display:block;width:108px;height:108px;border-radius:50%;flex:none;padding:4px;background:linear-gradient(150deg,var(--sky),var(--heart));box-shadow:0 10px 24px -10px rgba(12,26,54,.4)}
.cp-avatar::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px dotted rgba(58,155,209,.5);-webkit-mask:linear-gradient(200deg,#000 35%,transparent 65%);mask:linear-gradient(200deg,#000 35%,transparent 65%);pointer-events:none}
.cp-clip{display:block;position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;border:3px solid #fff;background:#fff}
.cp-clip img{position:absolute;width:175%;height:auto;max-width:none;left:-38%;top:-9%}
@media(max-width:860px){.hero-bg .hb-1{display:none}.hero-bg .hb-2{width:130px;height:130px;inset-inline-end:-30px;bottom:auto;top:-30px;transform:rotate(200deg);opacity:.7}}
