/* الدكتور شواخ الماشي — «medical engraving on warm paper» (see DESIGN.md) */
@font-face { font-family: "Naskh"; src: url(fonts/naskh-ar.woff2) format("woff2"); font-weight: 700; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+200C-200E, U+FB50-FDFF, U+FE70-FEFC; }
@font-face { font-family: "Cairo"; src: url(fonts/cairo-ar.woff2) format("woff2"); font-weight: 400 800; font-display: swap; unicode-range: U+0600-06FF, U+0750-077F, U+0870-08FF, U+200C-200E, U+2010-2011, U+FB50-FDFF, U+FE70-FEFC; }
@font-face { font-family: "Cairo"; src: url(fonts/cairo-la.woff2) format("woff2"); font-weight: 400 800; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF; }

:root {
  --paper: #fde8dc; --paper2: #fbdccb; --ink: #1f2a44; --ink2: #3b4560;
  --coral: #c8492f; --coral-d: #a93a24; --flesh: #e9917b; --apricot: #f4a27c; --mist: #dde3f4; --lilac: #e9e3f5;
  --pad: clamp(18px, 5vw, 64px); --r: 22px;
  --gm-bg: var(--paper); --gm-fg: var(--ink); --gm-accent: var(--coral);
  --disp: "Naskh", "Noto Naskh Arabic", serif; --txt: "Cairo", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; color: var(--ink); font: 400 17px/1.85 var(--txt);
  background:
    radial-gradient(60vw 60vw at 100% 0, rgba(244,162,124,.28), transparent 60%),
    radial-gradient(55vw 55vw at 0 22%, rgba(255,244,236,.9), transparent 62%),
    radial-gradient(50vw 50vw at 100% 60%, rgba(247,178,150,.22), transparent 60%),
    radial-gradient(60vw 60vw at 0 90%, rgba(255,240,230,.9), transparent 60%),
    var(--paper); }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
h1, h2, h3 { font-family: var(--disp); font-weight: 700; line-height: 1.35; margin: 0; }
h2 { font-size: clamp(32px, 5.6vw, 64px); }
.kick { margin: 0 0 10px; font-weight: 700; font-size: 14px; color: var(--coral-d); display: inline-flex; align-items: center; gap: 10px; }
.kick::before { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
svg { overflow: visible; }

/* buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 12px 24px; border-radius: 999px;
  background: linear-gradient(135deg, var(--coral) 0%, #b23b4f 100%); color: #fff; font-weight: 700; font-size: 16.5px; text-decoration: none;
  box-shadow: 0 14px 30px -12px rgba(178,59,79,.6), inset 0 1px 0 rgba(255,255,255,.25); }
.btn svg { width: 22px; height: 22px; flex: none; }
.btn:hover { box-shadow: 0 20px 36px -12px rgba(178,59,79,.7); }
.btn.ghost { background: rgba(255,255,255,.6); color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink); }
.btn.ghost:hover { background: var(--ink); color: #fff; }

/* header */
.top { position: fixed; inset-inline: 0; top: 0; z-index: 50; display: flex; align-items: center; gap: 18px; padding: 10px var(--pad);
  background: rgba(253,232,220,.95); border-bottom: 1px solid rgba(31,42,68,.08); }
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-family: var(--disp); font-size: 19px; }
.mono { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 20px; line-height: 1;
  background: radial-gradient(circle at 35% 30%, var(--apricot), var(--coral) 70%); padding-bottom: 4px; }
.nav { display: flex; gap: 24px; margin-inline-start: auto; font-weight: 600; font-size: 15.5px; }
.nav a { text-decoration: none; padding: 8px 0; }
.nav a:hover { color: var(--coral-d); }
.cta-s { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border-radius: 999px; background: var(--ink); color: #fff; text-decoration: none; font-weight: 700; font-size: 15px; }
.cta-s svg { width: 20px; height: 20px; }
@media (max-width: 860px) { .nav { display: none; } .cta-s { margin-inline-start: auto; } .brand { font-size: 17px; } }

/* hero — the annotated plate */
.hero { min-height: 100svh; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: clamp(24px, 5vw, 80px);
  padding: 110px var(--pad) 60px; max-width: 1400px; margin: 0 auto; }
.hero h1 { font-size: clamp(36px, 5.4vw, 76px); white-space: nowrap; color: var(--ink); padding-block: .1em; }
.spec { font-size: clamp(19px, 2vw, 25px); font-weight: 700; color: var(--coral-d); margin: 8px 0 14px; }
.lead { font-size: 18px; max-width: 34em; margin: 0 0 26px; color: var(--ink); }
.ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-plate { position: relative; padding: 18px 18px 0; background: #fffdf9; border-radius: 8px;
  box-shadow: 0 40px 80px -40px rgba(31,42,68,.45), 0 0 0 1px rgba(31,42,68,.12); }
.hero-plate::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgba(31,42,68,.35); border-radius: 4px; pointer-events: none; }
.frame { aspect-ratio: 1; border-radius: 4px; overflow: hidden; position: relative; }
.cap { margin: 0; padding: 10px 4px 2px; font: 700 14px var(--disp); color: var(--ink2); text-align: center; }
.leaders { position: absolute; inset-inline: 18px; height: 34px; width: calc(100% - 36px); top: calc(100% - 4px); display: none; }
.tags { list-style: none; margin: 0; padding: 12px 0 18px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; position: relative; }
.tags li { position: relative; padding: 10px 12px 10px; border-radius: 12px; background: linear-gradient(160deg, #fff, var(--lilac)); box-shadow: inset 0 0 0 1px rgba(31,42,68,.12); font-size: 13.5px; line-height: 1.55; }
.tags li::before { content: ""; position: absolute; top: -13px; inset-inline-start: 50%; width: 1.5px; height: 13px; background: var(--coral); transform-origin: top; transform: scaleY(var(--ld, 1)); }
.tags li::after { content: ""; position: absolute; top: -17px; inset-inline-start: calc(50% - 3px); width: 7px; height: 7px; border-radius: 50%; background: var(--coral); }
.tags b { display: block; font-size: 14.5px; color: var(--ink); }
.tags span { color: var(--ink2); }
@media (max-width: 860px) {
  .hero { grid-template-columns: 1fr; padding-top: 92px; min-height: 0; gap: 30px; }
  .hero h1 { font-size: clamp(30px, 9.4vw, 46px); }
  .spec { font-size: 18px; }
  .lead { font-size: 17px; }
  .ctas .btn { flex: 1 1 100%; }
  .tags { grid-template-columns: 1fr; gap: 16px; }
  .tags li::before, .tags li::after { inset-inline-start: 22px; }
}

/* marquee band */
.band { padding: 18px 0; background: linear-gradient(90deg, var(--coral), #b23b4f 50%, var(--coral)); color: #fff; font: 700 clamp(20px, 2.6vw, 30px)/1.5 var(--disp); margin-block: 30px 0; transform: rotate(-1.2deg); }
.band .gm-mq span { padding-inline: 18px; }
.band .sep { display: inline-block; width: 10px; height: 10px; padding: 0 !important; border-radius: 50%; background: #ffd9c7; vertical-align: middle; margin-inline: 4px; }

/* anatomy map */
.anat-sec { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 5vw, 80px); align-items: center; padding: 110px var(--pad) 60px; max-width: 1400px; margin: 0 auto; }
.anat-txt p[data-gm="lit"] { font-size: clamp(19px, 1.8vw, 23px); line-height: 1.9; margin-top: 16px; }
.big-fig { margin: 0; padding: clamp(14px, 3vw, 36px); background: #fffdf9; border-radius: var(--r); box-shadow: 0 30px 70px -40px rgba(31,42,68,.4), inset 0 0 0 1px rgba(31,42,68,.1);
  background-image: linear-gradient(rgba(31,42,68,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(31,42,68,.05) 1px, transparent 1px); background-size: 24px 24px; }
.labels path { fill: none; stroke: var(--coral); stroke-width: 1.2; stroke-dasharray: 3 3; }
.labels text { font: 700 15px var(--txt); fill: var(--ink); text-anchor: middle; }
@media (max-width: 860px) { .anat-sec { grid-template-columns: 1fr; padding-top: 80px; } .labels text { font-size: 18px; } }

/* the anatomy drawing */
.atlas { width: 100%; height: auto; display: block; }
.a-wall { fill: url(#gUt); stroke: var(--ink); stroke-width: 1.8; }
.a-hatch { fill: none; stroke: #b9583f; stroke-width: 1; opacity: .45; stroke-linecap: round; }
.a-cav { fill: #fde7de; stroke: var(--coral); stroke-width: 1.5; }
.a-canal { stroke: var(--ink); stroke-width: 1.6; stroke-linecap: round; }
.a-tube-o { fill: none; stroke: var(--ink); stroke-width: 10.5; stroke-linecap: round; }
.a-tube { fill: none; stroke: #f0a690; stroke-width: 7; stroke-linecap: round; }
.a-fim { fill: none; stroke: var(--ink); stroke-width: 1.7; stroke-linecap: round; }
.a-lig { fill: none; stroke: var(--ink2); stroke-width: 2; stroke-linecap: round; opacity: .7; }
.a-ov ellipse { fill: url(#gOv); stroke: var(--ink); stroke-width: 1.6; }

/* case overlays */
.x-sac { fill: url(#gSac); stroke: #7d8cc4; stroke-width: 1.2; opacity: .95; }
.x-body { fill: #f7c2b0; stroke: var(--ink); stroke-width: 1.4; }
.x-head { fill: #f9cdbd; stroke: var(--ink); stroke-width: 1.4; }
.x-limb, .x-cord { fill: none; stroke: var(--ink); stroke-width: 1.3; stroke-linecap: round; }
.x-cord { stroke: #7d8cc4; stroke-width: 2.2; }
.x-beat { fill: var(--coral); }
.x-ring { fill: none; stroke: var(--coral); stroke-width: 2; opacity: 0; }
.fol { fill: #fffaf6; stroke: #a8573f; stroke-width: 1.1; }
.x-pcos .egg, .x-fert .egg { fill: #fff; stroke: var(--coral); stroke-width: 2; }
.x-pcos .egg { opacity: 0; }
.fib circle { fill: url(#gFib); stroke: var(--ink); stroke-width: 1.5; }
.fib path { fill: none; stroke: #8d5340; stroke-width: 1; opacity: .7; }
.x-stitch { fill: none; stroke: var(--coral-d); stroke-width: 1.6; stroke-linecap: round; opacity: 0; }
.cy { fill: url(#gCyst); stroke: #5d6fae; stroke-width: 1.6; }
.cy-hl { fill: none; stroke: #fff; stroke-width: 3; stroke-linecap: round; opacity: .9; }
.x-check { fill: none; stroke: #2f8a6a; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; opacity: 0; }
.spots circle { fill: #8f2f3c; stroke: #fff; stroke-width: 1; }
.pain { fill: none; stroke: var(--coral); stroke-width: 2; opacity: 0; }
.scan { fill: none; stroke: #ffe36e; stroke-width: 4; stroke-linecap: round; opacity: .9; }
.block circle { fill: #fff; stroke: var(--coral-d); stroke-width: 2; }
.block path { stroke: var(--coral-d); stroke-width: 2.4; stroke-linecap: round; }
.path { fill: none; stroke: none; }
.nest { fill: none; stroke: #2f8a6a; stroke-width: 2.5; opacity: 0; }
.bulge { fill: #c4434f; stroke: var(--ink); stroke-width: 1.4; }
.warn { fill: none; stroke: #c4434f; stroke-width: 2; opacity: 0; }
.emb { fill: #fff; stroke: #c4434f; stroke-width: 2; }
.floor { fill: none; stroke: #7d8cc4; stroke-width: 6; stroke-linecap: round; }
.sup { fill: none; stroke: #2f8a6a; stroke-width: 2.4; stroke-linecap: round; stroke-dasharray: 5 4; opacity: 0; }

/* cycle strip */
.cal { margin: 4px auto 0; max-width: 360px; }
.cal-row { display: grid; grid-template-columns: repeat(14, 1fr); gap: 4px; }
.cal-row i { aspect-ratio: 1; border-radius: 50%; background: #efe4dc; box-shadow: inset 0 0 0 1px rgba(31,42,68,.12); transition: background-color .35s, transform .35s; }
.cal-row i.red { background: #c4434f; }
.cal-row i.ov { background: var(--apricot); transform: scale(1.18); }
.cal-key { display: flex; gap: 16px; justify-content: center; font-size: 13px; margin-top: 8px; color: var(--ink2); }
.cal-key b { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-inline-end: 6px; vertical-align: middle; }
.k-red { background: #c4434f; } .k-ov { background: var(--apricot); }

/* index — a book index with dotted leaders */
.index-sec { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(20px, 5vw, 80px); padding: 80px var(--pad); max-width: 1400px; margin: 0 auto; }
.index-head p:last-child { font-size: 17.5px; margin-top: 14px; }
.index { list-style: none; margin: 0; padding: 0; counter-reset: x; }
.index a { display: flex; align-items: baseline; gap: 14px; padding: 14px 4px; text-decoration: none; border-bottom: 1px solid rgba(31,42,68,.14); min-height: 54px; transition: padding .3s var(--gm-ease), color .25s; }
.index a:hover { padding-inline-start: 14px; color: var(--coral-d); }
.index .n { font: 700 30px/1 var(--disp); color: var(--coral); min-width: 1.4em; }
.index .t { font: 700 clamp(20px, 2.2vw, 26px)/1.4 var(--disp); }
.index .dots { flex: 1; border-bottom: 2px dotted rgba(31,42,68,.35); transform: translateY(-6px); min-width: 20px; }
.index .pg { font-size: 14px; font-weight: 600; color: var(--ink2); white-space: nowrap; }
@media (max-width: 860px) { .index-sec { grid-template-columns: 1fr; padding-block: 60px; } }

/* plates — the signature */
.plates { padding: 20px var(--pad) 60px; max-width: 1400px; margin: 0 auto; display: grid; gap: clamp(60px, 9vw, 130px); }
.plate { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(22px, 5vw, 80px); align-items: center; scroll-margin-top: 80px; }
.plate.flip .fig { order: 2; }
.fig { margin: 0; position: relative; padding: 16px clamp(12px, 2.5vw, 28px) 22px; border-radius: var(--r); background: #fffdf9;
  box-shadow: 0 34px 70px -42px rgba(31,42,68,.5), inset 0 0 0 1px rgba(31,42,68,.12);
  background-image: radial-gradient(circle at 50% 45%, rgba(244,162,124,.16), transparent 62%), linear-gradient(rgba(31,42,68,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(31,42,68,.045) 1px, transparent 1px);
  background-size: auto, 22px 22px, 22px 22px; }
.fig::before { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(31,42,68,.22); border-radius: 16px; pointer-events: none; }
.fig-head { display: flex; justify-content: space-between; font: 700 14px var(--disp); color: var(--ink2); padding: 2px 6px 0; }
.fig-head { justify-content: flex-start; gap: 10px; align-items: center; }
.fig-head .pl { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: 15px; background: var(--coral); padding-bottom: 2px; }
.play { display: flex; align-items: center; gap: 10px; margin: 8px auto 0; min-height: 48px; padding: 10px 22px; border: 0; border-radius: 999px; cursor: pointer;
  font: 700 15.5px var(--txt); color: #fff; background: var(--ink); box-shadow: 0 12px 26px -12px rgba(31,42,68,.6); }
.play:hover { background: var(--coral-d); }
.play-ic { width: 0; height: 0; border-block: 7px solid transparent; border-inline-end: 11px solid #fff; transition: transform .3s; }
.play[aria-pressed="true"] { background: var(--coral-d); }
.play[aria-pressed="true"] .play-ic { width: 11px; height: 13px; border: 0; border-inline: 4px solid #fff; }
.txt .kick { margin-bottom: 6px; }
.txt h3 { font-size: clamp(30px, 4vw, 50px); }
.txt .what { font-size: 18px; margin: 12px 0 18px; }
.txt h4 { margin: 0 0 8px; font-size: 15px; font-weight: 800; color: var(--coral-d); }
.signs { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.signs li { padding: 6px 14px; border-radius: 999px; font-size: 15.5px; font-weight: 600; background: #fff; box-shadow: inset 0 0 0 1.5px rgba(200,73,47,.35); }
.treat { margin: 0; font-size: 17.5px; padding: 14px 18px; border-radius: 16px; background: linear-gradient(135deg, var(--mist), var(--lilac)); border-inline-start: 4px solid var(--ink); }
@media (max-width: 860px) {
  .plate, .plate.flip { grid-template-columns: 1fr; }
  .plate.flip .fig { order: 0; }
  .txt .what { font-size: 17px; }
}

/* certificates */
.certs { padding: 90px var(--pad); max-width: 1400px; margin: 0 auto; }
.certs-head { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 20px 60px; align-items: end; margin-bottom: 36px; }
.years { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.years li { display: grid; grid-template-columns: 84px 1fr; gap: 14px; align-items: baseline; padding-bottom: 12px; border-bottom: 1px solid rgba(31,42,68,.14); }
.years b { font: 700 28px/1 var(--disp); color: var(--coral); }
.wall { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 2vw, 26px); align-items: start; }
.cert { all: unset; cursor: zoom-in; display: block; background: #fff; padding: 8px; border-radius: 6px; box-shadow: 0 24px 40px -26px rgba(31,42,68,.55), inset 0 0 0 1px rgba(31,42,68,.1);
  transition: transform .45s var(--gm-ease), box-shadow .45s; }
.cert:nth-child(odd) { transform: rotate(-2deg); } .cert:nth-child(even) { transform: rotate(1.6deg) translateY(18px); }
.cert:hover, .cert:focus-visible { transform: rotate(0) translateY(-6px) scale(1.03); box-shadow: 0 34px 50px -26px rgba(31,42,68,.6); }
.cert:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.cert span { display: block; text-align: center; font-weight: 700; font-size: 14px; padding-top: 8px; }
@media (max-width: 860px) {
  .certs-head { grid-template-columns: 1fr; }
  .wall { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding: 10px 4px 30px; margin-inline: calc(var(--pad) * -1); padding-inline: var(--pad); }
  .cert { flex: 0 0 78%; scroll-snap-align: center; }
}

/* urgent */
.urgent { margin: 40px var(--pad); padding: clamp(36px, 6vw, 80px) clamp(20px, 5vw, 70px); border-radius: 34px; max-width: 1400px;
  background: linear-gradient(135deg, #fde0d1 0%, #fbe9df 45%, #e7e3f6 100%); box-shadow: inset 0 0 0 1px rgba(200,73,47,.18); }
@media (min-width: 1528px) { .urgent { margin-inline: auto; } }
.ulist { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ulist li { display: flex; gap: 14px; align-items: center; padding: 18px; background: rgba(255,255,255,.75); border-radius: 18px; }
.ulist b { flex: none; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; font: 700 26px/1 var(--disp); color: #fff; background: radial-gradient(circle at 35% 30%, var(--apricot), var(--coral) 70%); padding-bottom: 4px; }
.ulist p { margin: 0; font-weight: 600; font-size: 17px; line-height: 1.6; }
@media (max-width: 960px) { .ulist { grid-template-columns: 1fr; } }

/* faq */
.faq { padding: 90px var(--pad); max-width: 980px; margin: 0 auto; }
.qa { margin-top: 26px; }
details { border-bottom: 1px solid rgba(31,42,68,.16); }
summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 0; font: 700 clamp(19px, 2vw, 23px)/1.5 var(--disp); min-height: 44px; }
summary::-webkit-details-marker { display: none; }
.pm { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--ink); position: relative; transition: transform .35s var(--gm-ease), background-color .3s; }
.pm::before, .pm::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 13px; height: 2px; background: #fff; transform: translate(-50%, -50%); }
.pm::after { transform: translate(-50%, -50%) rotate(90deg); }
details[open] .pm { transform: rotate(45deg); background: var(--coral); }
details p { margin: 0 0 20px; font-size: 17.5px; }

/* close */
.close { text-align: center; padding: 90px var(--pad) 70px; overflow: hidden;
  background: radial-gradient(70% 80% at 50% 100%, rgba(244,162,124,.35), transparent 70%); }
.close .kick { justify-content: center; }
.word { margin: 0; font: 700 clamp(48px, 12vw, 190px)/1.35 var(--disp); color: var(--ink); white-space: nowrap; padding-block: .05em; }
.word span { display: inline-block; }
.close-sub { font-size: clamp(18px, 2vw, 24px); font-weight: 700; color: var(--coral-d); margin: 0 0 28px; }
.btn.big { min-height: 60px; padding: 14px 32px; font-size: 18px; }
.foot { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; padding: 26px var(--pad) 96px; font-size: 14.5px; color: var(--ink2); border-top: 1px solid rgba(31,42,68,.12); }

/* floating button (phones) */
.fab { position: fixed; bottom: 16px; inset-inline-start: 16px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; display: none; place-items: center; color: #fff;
  background: linear-gradient(135deg, var(--coral), #b23b4f); box-shadow: 0 14px 30px -10px rgba(178,59,79,.7); }
.fab svg { width: 28px; height: 28px; }
@media (max-width: 860px) { .fab { display: grid; } }

/* lightbox */
.lb { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 92vh; }
.lb::backdrop { background: rgba(31,42,68,.82); }
.lb img { max-width: 96vw; max-height: 88vh; border-radius: 6px; }
.lb-x { position: absolute; top: 8px; inset-inline-end: 8px; width: 46px; height: 46px; border-radius: 50%; border: 0; background: #fff; color: var(--ink); font-size: 28px; cursor: pointer; }

/* intro — 3 s, no buttons, enters by itself */
.intro { display: none; }
.intro-on .intro { display: grid; place-items: center; position: fixed; inset: 0; z-index: 200; text-align: center; padding: 24px;
  background: radial-gradient(70% 60% at 50% 40%, #fff4ec, #fde3d4 60%, #f9cfb8);
  animation: intro-out .7s cubic-bezier(.76,0,.24,1) 2.6s forwards; }
.intro-in { width: min(420px, 86vw); }
.intro-fig { width: 100%; height: auto; }
.intro-fig path, .intro-fig ellipse { stroke-dasharray: 900; stroke-dashoffset: 900; fill-opacity: 0; animation: intro-draw 1.5s cubic-bezier(.16,1,.3,1) .1s forwards, intro-fill .6s ease 1.1s forwards; }
.intro-name { margin: 14px 0 4px; font: 700 clamp(36px, 7vw, 76px)/1.4 var(--disp); color: var(--ink); opacity: 0; animation: intro-up .9s cubic-bezier(.16,1,.3,1) .9s forwards; }
.intro-spec { margin: 0; font-weight: 700; font-size: clamp(16px, 4.4vw, 20px); color: var(--coral-d); opacity: 0; animation: intro-up .9s cubic-bezier(.16,1,.3,1) 1.2s forwards; }
@keyframes intro-draw { to { stroke-dashoffset: 0; } }
@keyframes intro-fill { to { fill-opacity: 1; } }
@keyframes intro-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes intro-out { to { opacity: 0; transform: translateY(-3%); visibility: hidden; } }
@media (prefers-reduced-motion: reduce) { .intro-on .intro { animation-duration: .01s; animation-delay: 1.5s; } }

/* IVF — طفل الأنابيب خطوة بخطوة (the doctor's focus) */
.ivf { padding: 100px var(--pad) 70px; max-width: 1400px; margin: 0 auto; }
.ivf-head { max-width: 760px; margin-bottom: 34px; }
.ivf-head h2 { font-size: clamp(36px, 6.2vw, 74px); }
.ivf-head p:last-child { font-size: clamp(17.5px, 1.6vw, 20px); margin: 14px 0 0; }
.ivf-body { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(20px, 4vw, 60px); align-items: center; }
.ivf-stage { margin: 0; position: relative; padding: clamp(14px, 3vw, 34px); border-radius: 28px; overflow: hidden;
  background: radial-gradient(80% 70% at 50% 40%, #fffaf6, #fde3d4 70%, #f8d2c0); box-shadow: 0 40px 80px -46px rgba(178,59,79,.55), inset 0 0 0 1px rgba(200,73,47,.18); }
.ivf-svg { width: 100%; height: auto; display: block; }
.ivf-svg .s:not(.s1) { opacity: 0; }
.ivf-bar { height: 4px; border-radius: 4px; background: rgba(31,42,68,.1); margin-top: 10px; overflow: hidden; }
.ivf-bar i { display: block; height: 100%; background: var(--coral); transform-origin: right; transform: scaleX(0); }
.ivf-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ivf-steps button { all: unset; box-sizing: border-box; cursor: pointer; width: 100%; display: flex; gap: 14px; align-items: flex-start; padding: 12px 16px; border-radius: 18px; transition: background-color .35s, box-shadow .35s, transform .35s var(--gm-ease); }
.ivf-steps button:focus-visible { outline: 3px solid var(--coral); }
.ivf-steps b { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font: 700 20px/1 var(--disp); padding-bottom: 3px; color: var(--coral-d); background: #fff; box-shadow: inset 0 0 0 1.5px rgba(200,73,47,.4); transition: background-color .35s, color .35s; }
.ivf-steps strong { display: block; font: 700 clamp(19px, 1.8vw, 22px)/1.5 var(--disp); }
.ivf-steps em { display: block; font-style: normal; font-size: 16px; line-height: 1.7; color: var(--ink2); }
.ivf-steps li.on button { background: #fff; box-shadow: 0 18px 34px -24px rgba(31,42,68,.5); transform: translateX(-6px); }
.ivf-steps li.on b { background: var(--coral); color: #fff; box-shadow: none; }
.ivf-cta { margin: 30px 0 0; }
@media (max-width: 860px) {
  .ivf { padding-top: 80px; }
  .ivf-body { grid-template-columns: 1fr; }
  .ivf-steps em { font-size: 15.5px; }
  .ivf-steps li:not(.on) em { display: none; }
  .ivf-cta .btn { width: 100%; }
}
.big-ov { fill: url(#gOv); stroke: var(--ink); stroke-width: 1.8; }
.ov-tex { fill: none; stroke: #c98670; stroke-width: 1.2; opacity: .45; }
.fo { fill: #fffaf5; stroke: #a8573f; stroke-width: 1.4; }
.needle { fill: none; stroke: #6f7a96; stroke-width: 3.5; stroke-linecap: round; }
.egg2, .emb5 { fill: #fff; stroke: var(--coral); stroke-width: 2.5; }
.dish { fill: #eef2fb; stroke: #9fb0dd; stroke-width: 2; }
.dish-in { fill: #f7f9fe; stroke: #c9d2ef; stroke-width: 1; }
.cor { fill: #fde3d6; stroke: #e9a08a; stroke-width: 1; }
.ovum { fill: #fff1e8; stroke: var(--coral); stroke-width: 2; }
.nuc { fill: #f4a27c; opacity: .7; }
.sp-t { fill: none; stroke: #5d6fae; stroke-width: 2; stroke-linecap: round; }
.sp-h { fill: #5d6fae; }
.pip { fill: none; stroke: #9aa3bd; stroke-width: 6; stroke-linecap: round; }
.glow { fill: none; stroke: var(--apricot); stroke-width: 5; opacity: 0; }
.cell { fill: #fff1e8; stroke: var(--coral); stroke-width: 2; }
.blast { fill: #fff6ef; stroke: var(--coral); stroke-width: 2; }
.blast-in { fill: #fdeee6; stroke: #f0b49e; stroke-width: 1; }
.icm { fill: #f7c2b0; stroke: var(--coral); stroke-width: 1; }
.day { font: 700 20px var(--txt); fill: var(--ink); text-anchor: middle; }
.cath { fill: none; stroke: #7d8cc4; stroke-width: 4; stroke-linecap: round; }
.sac6 { fill: url(#gSac); stroke: #7d8cc4; stroke-width: 1.4; }
.beat6 { fill: var(--coral); }
.ring6 { fill: none; stroke: var(--coral); stroke-width: 2; opacity: 0; }
.ok6 { fill: none; stroke: #2f8a6a; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.hero-tel { display: inline-flex; margin-top: 18px; font-weight: 700; font-size: 17px; text-decoration: none; color: var(--ink); }
.hero-tel span { display: inline-flex; align-items: center; gap: 8px; }
.hero-tel svg { width: 20px; height: 20px; color: var(--coral); }
.hero-tel:hover { color: var(--coral-d); }
.ph { unicode-bidi: isolate; white-space: nowrap; }
.close-btns { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.foot a { text-decoration: none; }

/* certificate slider */
.cslider { position: relative; border-radius: 30px; padding: clamp(14px, 3vw, 40px); overflow: hidden;
  background: radial-gradient(70% 90% at 85% 10%, rgba(255,255,255,.85), transparent 60%), linear-gradient(135deg, #fde3d4 0%, #fbe9df 50%, #ece6f6 100%);
  box-shadow: inset 0 0 0 1px rgba(200,73,47,.16); }
.cs-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; outline: none; }
.cs-track::-webkit-scrollbar { display: none; }
.cs-slide { flex: 0 0 100%; scroll-snap-align: center; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: clamp(18px, 4vw, 56px); align-items: center; padding: 6px 4px 10px; }
.cs-pic { all: unset; cursor: zoom-in; display: block; position: relative; padding: clamp(10px, 1.6vw, 20px); background: #fff; border-radius: 10px;
  box-shadow: 0 40px 70px -40px rgba(31,42,68,.6), 0 0 0 1px rgba(31,42,68,.08); transform: scale(.94) rotate(-1deg); opacity: .5; transition: transform 1s var(--gm-ease), opacity .8s; }
.cs-pic::after { content: ""; position: absolute; inset: 5px; border: 1.5px solid rgba(200,73,47,.35); border-radius: 7px; pointer-events: none; }
.cs-pic img { width: 100%; height: auto; aspect-ratio: 7 / 5; object-fit: contain; background: #fbf8f4; border-radius: 3px; }
.cs-pic:focus-visible { outline: 3px solid var(--coral); outline-offset: 4px; }
.cs-cap { opacity: 0; transform: translateY(18px); transition: opacity .7s .15s, transform .9s .15s var(--gm-ease); }
.cs-slide.is-on .cs-pic { transform: none; opacity: 1; }
.cs-slide.is-on .cs-cap { opacity: 1; transform: none; }
.cs-n { display: inline-block; padding: 4px 14px; border-radius: 999px; background: var(--coral); color: #fff; font-weight: 700; font-size: 14px; }
.cs-cap h3 { font-size: clamp(28px, 3.4vw, 44px); margin: 14px 0 6px; }
.cs-sub { margin: 0; font-weight: 700; font-size: 17.5px; color: var(--coral-d); }
.cs-by { margin: 6px 0 0; font-size: 17px; }
.cs-nav { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; }
.cs-nav > button { all: unset; cursor: pointer; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--ink); color: #fff; transition: background-color .25s, transform .2s; }
.cs-nav > button:hover { background: var(--coral-d); }
.cs-nav > button:active { transform: scale(.94); }
.cs-nav svg { width: 22px; height: 22px; }
.cs-dots { display: flex; gap: 8px; }
.cs-dots button { all: unset; cursor: pointer; width: 10px; height: 10px; border-radius: 10px; background: rgba(31,42,68,.25); transition: width .4s var(--gm-ease), background-color .3s; position: relative; }
.cs-dots button::before { content: ""; position: absolute; inset: -17px -6px; }
.cs-dots button[aria-current="true"] { width: 30px; background: var(--coral); }
html:not(.js) .cs-pic, html:not(.js) .cs-cap { transform: none; opacity: 1; }
@media (max-width: 860px) {
  .cs-slide { grid-template-columns: 1fr; gap: 16px; }
  .cs-cap { text-align: center; }
}
.ivf-badge { margin: 14px 0 4px; display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 14px; color: #fff; font-size: 15.5px; line-height: 1.6;
  background: linear-gradient(120deg, #b23b4f, var(--coral) 55%, #e07a52); box-shadow: 0 14px 28px -16px rgba(178,59,79,.8); }
.ivf-badge svg { flex: none; width: 30px; height: 30px; color: #ffe2c9; }
.ivf-badge b { font-weight: 800; }
.addr { display: flex; width: fit-content; align-items: center; gap: 8px; margin: -12px auto 26px; font-weight: 700; font-size: 17px; color: var(--ink); text-decoration: none; max-width: 40em; }
.addr svg { flex: none; width: 22px; height: 22px; color: var(--coral); }
.addr:hover { color: var(--coral-d); }
.social { display: flex; justify-content: center; gap: 14px; margin-top: 30px; }
.social a { display: inline-flex; align-items: center; gap: 10px; min-height: 50px; padding: 10px 22px 10px 18px; border-radius: 999px; text-decoration: none; font-weight: 700; color: #fff; transition: transform .25s var(--gm-ease), box-shadow .25s; }
.social a:hover { transform: translateY(-3px); }
.social svg { width: 24px; height: 24px; }
.social a:first-child { background: #1877f2; box-shadow: 0 12px 24px -12px rgba(24,119,242,.7); }
.social a:last-child { background: linear-gradient(45deg, #f09433, #dc2743 50%, #bc1888); box-shadow: 0 12px 24px -12px rgba(220,39,67,.7); }
