/* =========================================================
   Scientific Nutrition Center (SNC) — Design System
   ========================================================= */

:root{
  /* Brand colors (derived from logo) */
  --green-50:  #EBF7E9;
  --green-100: #D2EECB;
  --green-200: #A6DE9B;
  --green-300: #79CE6B;
  --green-500: #2E9B1C;
  --green-600: #108700;
  --green-700: #0C6A00;
  --green-800: #094F00;
  --green-900: #063600;

  --ink-900: #14201A;
  --ink-700: #2B372F;
  --ink-500: #57655C;
  --ink-300: #8A968D;
  --ink-100: #E6ECE7;
  --ink-50:  #F5F8F5;

  --white: #FFFFFF;
  --gold:  #C9A24B; /* subtle accent for trust badges/ratings */

  --shadow-sm: 0 2px 10px rgba(20,32,26,.06);
  --shadow-md: 0 10px 30px rgba(20,32,26,.10);
  --shadow-lg: 0 20px 50px rgba(20,32,26,.14);

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  --container: 1180px;

  --font-en-head: 'Poppins', sans-serif;
  --font-en-body: 'Inter', sans-serif;
  --font-ar: 'Cairo', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  color:var(--ink-900);
  background:var(--white);
  font-family:var(--font-en-body);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
html[lang="ar"] body{ font-family:var(--font-ar); }
h1,h2,h3,h4{
  font-family:var(--font-en-head);
  line-height:1.25;
  margin:0 0 .5em;
  color:var(--ink-900);
  font-weight:700;
}
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4{
  font-family:var(--font-ar);
  font-weight:800;
}
p{ margin:0 0 1em; color:var(--ink-500); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }

.container{ max-width:var(--container); margin-inline:auto; padding-inline:24px; }
.section{ padding:88px 0; }
.section-tight{ padding:56px 0; }
@media (max-width:768px){
  .section{ padding:56px 0; }
  .section-tight{ padding:36px 0; }
}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--green-700); background:var(--green-50);
  border:1px solid var(--green-100);
  padding:6px 16px; border-radius:var(--radius-pill);
  font-size:13px; font-weight:700; letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom:16px;
}
html[lang="ar"] .eyebrow{ text-transform:none; letter-spacing:0; }

.section-head{ max-width:680px; margin-bottom:48px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size:clamp(28px,3.4vw,40px); }
.section-head p{ font-size:17px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 28px; border-radius:var(--radius-pill);
  font-weight:700; font-size:15px; border:2px solid transparent;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--green-600); color:var(--white); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--green-700); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline{ border-color:var(--ink-900); color:var(--ink-900); }
.btn-outline:hover{ background:var(--ink-900); color:var(--white); transform:translateY(-2px); }
.btn-white{ background:var(--white); color:var(--green-700); }
.btn-white:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-sm{ padding:10px 20px; font-size:14px; }
.btn-wa{ background:#25D366; color:var(--white); }
.btn-wa:hover{ background:#1DA851; transform:translateY(-2px); }
.btn svg{ width:18px; height:18px; flex:none; }

/* ---------- Header ---------- */
.announce-bar{
  background:var(--ink-900); color:var(--ink-100);
  font-size:13px; padding:9px 0;
}
.announce-bar .container{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.announce-bar a{ color:var(--green-300); font-weight:600; }
.announce-links{ display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.announce-links span, .announce-links a{ display:inline-flex; align-items:center; gap:6px; }
.announce-links svg{ width:14px; height:14px; }

header.site-header{
  position:sticky; top:0; z-index:100;
  border-bottom:1px solid var(--ink-100);
  isolation:isolate;
}
/* The frosted-glass effect lives on a ::before layer (not the header itself)
   so header.site-header never gets backdrop-filter directly. A filter on the
   header would create a new containing block for its position:fixed
   descendants (the mobile nav overlay), pinning it to the header's small box
   instead of the viewport and pushing it off-screen when opened. */
header.site-header::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(10px);
}
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 0; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:52px; width:auto; }
.brand-text{ display:flex; flex-direction:column; line-height:1.2; }
.brand-text strong{ font-family:var(--font-en-head); font-size:16px; color:var(--ink-900); }
html[lang="ar"] .brand-text strong{ font-family:var(--font-ar); font-size:17px; }
.brand-text span{ font-size:11.5px; color:var(--green-700); font-weight:700; letter-spacing:.03em; }

nav.main-nav{ display:flex; align-items:center; gap:32px; }
nav.main-nav a{
  font-size:15px; font-weight:600; color:var(--ink-700);
  position:relative; padding:6px 0;
}
nav.main-nav a:hover, nav.main-nav a.active{ color:var(--green-700); }
nav.main-nav a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--green-600); border-radius:2px;
}
nav.main-nav a[href="index.html"]{ display:inline-flex; align-items:center; }
nav.main-nav a[href="index.html"] svg{ width:19px; height:19px; }
@media (max-width:980px){
  nav.main-nav a[href="index.html"]{ width:auto; }
}

.header-actions{ display:flex; align-items:center; gap:14px; }
.lang-switch{
  display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700;
  border:1.5px solid var(--ink-100); border-radius:var(--radius-pill); padding:6px 6px;
}
.lang-switch a{ padding:5px 12px; border-radius:var(--radius-pill); color:var(--ink-500); }
.lang-switch a.active{ background:var(--green-600); color:var(--white); }
.lang-switch svg{ width:15px; height:15px; color:var(--green-600); margin-inline-start:6px; }

/* Client portal — compact icon with hover login dropdown */
.portal-login{ position:relative; display:flex; align-items:center; }
.portal-login-icon{
  display:flex; align-items:center; justify-content:center; width:34px; height:34px;
  border-radius:50%; color:var(--ink-700); border:1.5px solid var(--ink-100); transition:.15s;
}
.portal-login-icon svg{ width:17px; height:17px; }
.portal-login-icon:hover{ color:var(--white); background:var(--green-600); border-color:var(--green-600); }
.portal-login-drop{
  position:absolute; top:100%; inset-inline-end:0; margin-top:12px; width:230px;
  background:var(--white); border:1px solid var(--ink-100); border-radius:var(--radius-md);
  box-shadow:var(--shadow-md); padding:16px; z-index:60;
  opacity:0; visibility:hidden; transform:translateY(-8px); transition:.15s ease;
}
.portal-login:hover .portal-login-drop,
.portal-login:focus-within .portal-login-drop{ opacity:1; visibility:visible; transform:translateY(0); }
.portal-login-drop label{ font-size:11.5px; font-weight:700; color:var(--ink-500); display:block; margin-bottom:4px; }
.portal-login-drop input{
  width:100%; padding:8px 10px; margin-bottom:12px; border:1.5px solid var(--ink-100);
  border-radius:8px; font-family:inherit; font-size:13.5px;
}
.portal-login-drop input:focus{ outline:none; border-color:var(--green-500); }
.portal-login-drop .btn{ width:100%; justify-content:center; padding:9px 14px; font-size:13.5px; }

.nav-toggle{ display:none; background:none; border:none; padding:8px; }
.nav-toggle svg{ width:26px; height:26px; }

@media (max-width:980px){
  nav.main-nav{
    position:fixed; inset:0; top:auto; height:0; overflow:hidden;
    background:var(--white); flex-direction:column; align-items:flex-start;
    padding:0 24px; gap:0; transition:height .3s ease; z-index:99;
  }
  nav.main-nav.open{ height:calc(100vh - 0px); overflow:auto; padding-top:110px; padding-bottom:40px; gap:6px; }
  nav.main-nav a{ width:100%; padding:14px 0; border-bottom:1px solid var(--ink-100); font-size:18px; }
  .nav-toggle{ display:inline-flex; }
  .header-actions .btn-sm.hide-mobile{ display:none; }
  .header-actions .portal-login{ display:none; }
}
.hide-desktop{ display:none; }
@media (max-width:980px){ .hide-desktop{ display:inline-flex; } }

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg, var(--green-50) 0%, var(--white) 78%);
  padding:76px 0 40px;
}
.hero-blob{
  position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; z-index:0;
}
.hero-blob.b1{ width:420px; height:420px; background:var(--green-200); top:-160px; inset-inline-end:-120px; }
.hero-blob.b2{ width:300px; height:300px; background:var(--gold); opacity:.15; bottom:-100px; inset-inline-start:-80px; }
.hero-grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
@media (max-width:980px){ .hero-grid{ grid-template-columns:1fr; } }
.hero h1{ font-size:clamp(34px,4.6vw,58px); letter-spacing:-.01em; }
.hero h1 em{ font-style:normal; color:var(--green-600); }
.hero-lead{ font-size:18px; max-width:520px; }
.hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:28px; }
.hero-stats{ display:flex; gap:32px; margin-top:44px; flex-wrap:wrap; }
.hero-stats .stat b{ display:block; font-family:var(--font-en-head); font-size:26px; color:var(--ink-900); }
html[lang="ar"] .hero-stats .stat b{ font-family:var(--font-ar); }
.hero-stats .stat span{ font-size:13px; color:var(--ink-500); }

.hero-visual{ position:relative; }
.hero-card{
  position:relative; border-radius:var(--radius-lg);
  background:linear-gradient(160deg, var(--green-700), var(--green-900));
  padding:36px; color:var(--white); box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.hero-card::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 85% 15%, rgba(255,255,255,.18), transparent 55%);
}
.hero-card .badge-row{ display:flex; justify-content:space-between; align-items:center; position:relative; z-index:1; }
.hero-rating{
  display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.14);
  padding:8px 14px; border-radius:var(--radius-pill); font-size:13px; font-weight:700;
}
.hero-rating svg{ width:16px; height:16px; color:var(--gold); }
.hero-card-body{ position:relative; z-index:1; margin-top:28px; }
.hero-card-body h3{ color:var(--white); font-size:22px; }
.hero-card-body p{ color:rgba(255,255,255,.85); font-size:14.5px; }
.hero-pillars{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; position:relative; z-index:1; }
.pillar{
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.16);
  border-radius:var(--radius-md); padding:16px;
}
.pillar svg{ width:22px; height:22px; color:var(--green-200); margin-bottom:8px; }
.pillar strong{ display:block; font-size:14px; color:var(--white); }
.pillar span{ font-size:12px; color:rgba(255,255,255,.7); }

/* ---------- Trust strip ---------- */
.trust-strip{ background:var(--ink-900); padding:22px 0; }
.trust-strip .container{ display:flex; align-items:center; justify-content:space-around; flex-wrap:wrap; gap:24px; }
.trust-item{ display:flex; align-items:center; gap:10px; color:var(--ink-100); font-size:13.5px; font-weight:600; }
.trust-item svg{ width:20px; height:20px; color:var(--green-300); flex:none; }

/* ---------- Feature / Why us ---------- */
.feature-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:980px){ .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .feature-grid{ grid-template-columns:1fr; } }
.feature-card{
  background:var(--white); border:1px solid var(--ink-100); border-radius:var(--radius-md);
  padding:28px 24px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.feature-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent; }
.icon-badge{
  width:52px; height:52px; border-radius:14px; background:var(--green-50);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.icon-badge svg{ width:26px; height:26px; color:var(--green-600); }
.feature-card h3{ font-size:18px; }
.feature-card p{ font-size:14.5px; margin:0; }

/* ---------- Services ---------- */
.service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:980px){ .service-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .service-grid{ grid-template-columns:1fr; } }
.service-card{
  border-radius:var(--radius-lg); padding:30px; background:var(--ink-50);
  border:1px solid var(--ink-100); transition:all .25s ease; position:relative;
}
.service-card:hover{ background:var(--white); box-shadow:var(--shadow-md); transform:translateY(-6px); }
.service-card .icon-badge{ background:var(--white); box-shadow:var(--shadow-sm); }
.service-card h3{ font-size:19px; }
.service-card p{ font-size:14.5px; }
.service-card .learn{ display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--green-700); font-size:14px; margin-top:10px; }
.service-card .learn svg{ width:16px; height:16px; transition:transform .2s; }
.service-card:hover .learn svg{ transform:translateX(4px); }
html[dir="rtl"] .service-card:hover .learn svg{ transform:translateX(-4px) scaleX(-1); }

.service-detail{
  display:grid; grid-template-columns:auto 1fr; gap:22px; padding:30px;
  border:1px solid var(--ink-100); border-radius:var(--radius-lg); margin-bottom:20px; align-items:flex-start;
}
@media (max-width:640px){ .service-detail{ grid-template-columns:1fr; } }
.service-detail .icon-badge{ width:60px; height:60px; }
.service-detail .icon-badge svg{ width:30px; height:30px; }
.service-detail ul{ margin-top:12px; display:flex; flex-direction:column; gap:8px; }
.service-detail ul li{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink-500); }
.service-detail ul li svg{ width:18px; height:18px; color:var(--green-600); flex:none; margin-top:2px; }

/* ---------- About ---------- */
.about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:center; }
@media (max-width:980px){ .about-grid{ grid-template-columns:1fr; } }
.about-media{ position:relative; }
.about-media .frame{
  border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--ink-100);
}
.about-media .frame img{ display:block; width:100%; height:420px; object-fit:cover; }
.about-badge{
  position:absolute; bottom:-22px; inset-inline-start:-22px; background:var(--white);
  border:1px solid var(--ink-100); box-shadow:var(--shadow-md); border-radius:var(--radius-md);
  padding:18px 22px; display:flex; align-items:center; gap:14px;
}
.about-badge b{ display:block; font-family:var(--font-en-head); font-size:24px; color:var(--green-700); }
html[lang="ar"] .about-badge b{ font-family:var(--font-ar); }
.about-badge span{ font-size:12.5px; color:var(--ink-500); }

.values-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:20px; }
@media (max-width:980px){ .values-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .values-grid{ grid-template-columns:1fr; } }

.timeline{ display:flex; flex-direction:column; gap:0; border-inline-start:2px solid var(--green-100); margin-inline-start:10px; }
.timeline .t-item{ position:relative; padding:0 0 32px 32px; }
html[dir="rtl"] .timeline .t-item{ padding:0 32px 32px 0; }
.timeline .t-item::before{
  content:""; position:absolute; inset-inline-start:-7px; top:2px; width:12px; height:12px; border-radius:50%;
  background:var(--green-600); box-shadow:0 0 0 4px var(--green-50);
}
.timeline .t-item b{ display:block; color:var(--green-700); font-size:13px; margin-bottom:4px; }

/* ---------- Team ---------- */
.team-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:980px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{
  border:1px solid var(--ink-100); border-radius:var(--radius-lg); overflow:hidden; text-align:center;
  background:var(--white); transition:box-shadow .25s ease, transform .25s ease;
}
.team-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-6px); }
.team-avatar{
  height:220px; width:100%; display:block; object-fit:cover;
  background:linear-gradient(160deg,var(--green-100),var(--green-50));
  font-family:var(--font-en-head); font-size:44px; font-weight:800; color:var(--green-700);
}
.team-info{ padding:22px; }
.team-info h3{ font-size:17px; margin-bottom:2px; }
.team-role{ color:var(--green-700); font-size:13px; font-weight:700; margin-bottom:10px; display:block; }
.team-info p{ font-size:13.5px; margin-bottom:0; }
.placeholder-tag{
  display:inline-block; margin-top:10px; font-size:11px; background:var(--ink-50); color:var(--ink-500);
  padding:4px 10px; border-radius:var(--radius-pill); border:1px dashed var(--ink-300);
}

/* ---------- Stats band ---------- */
.stats-band{ background:var(--green-900); color:var(--white); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); text-align:center; }
@media (max-width:768px){ .stats-grid{ grid-template-columns:repeat(2,1fr); gap:32px 0; } }
.stats-grid .stat b{ display:block; font-family:var(--font-en-head); font-size:38px; color:var(--white); }
html[lang="ar"] .stats-grid .stat b{ font-family:var(--font-ar); }
.stats-grid .stat span{ font-size:13.5px; color:rgba(255,255,255,.7); }

/* ---------- Offers / Packages ---------- */
.offers-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:980px){ .offers-grid{ grid-template-columns:1fr; } }
.offer-card{
  background:var(--white); border:1px solid var(--ink-100); border-radius:var(--radius-lg); padding:30px;
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; text-align:center; overflow:hidden;
}
.offer-media{ margin:-30px -30px 40px; background:var(--ink-50); }
.offer-media.aspect-square{ aspect-ratio:1/1; }
.offer-media.aspect-story{ aspect-ratio:9/16; max-height:420px; }
.offer-media img, .offer-media video{ width:100%; height:100%; object-fit:cover; display:block; }

/* Service program/session media thumbnail — reuses .offer-media's square/story
   aspect ratio classes but sized + rounded like the icon-badge it replaces. */
.service-media{ border-radius:14px; overflow:hidden; flex:none; background:var(--ink-50); margin:0; }
.service-detail .service-media{ width:60px; height:60px; }
.service-card .service-media{ width:52px; height:52px; margin-bottom:18px; }
.service-media.aspect-square{ aspect-ratio:1/1; }
.service-media.aspect-story{ aspect-ratio:9/16; height:auto; }
.service-media img, .service-media video{ width:100%; height:100%; object-fit:cover; display:block; }

/* Landing-page block builder: single image/video block + gallery block. */
.landing-media{ border-radius:16px; overflow:hidden; background:var(--ink-50); margin-inline:auto; }
.landing-media.aspect-square{ aspect-ratio:1/1; max-width:520px; }
.landing-media.aspect-story{ aspect-ratio:9/16; max-height:520px; max-width:320px; }
.landing-media img, .landing-media video{ width:100%; height:100%; object-fit:cover; display:block; }
.landing-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:980px){ .landing-gallery{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .landing-gallery{ grid-template-columns:1fr; } }
.landing-gallery-item{ border-radius:14px; overflow:hidden; background:var(--ink-50); }
.landing-gallery-item.aspect-square{ aspect-ratio:1/1; }
.landing-gallery-item.aspect-story{ aspect-ratio:9/16; }
.landing-gallery-item img{ width:100%; height:100%; object-fit:cover; display:block; }

.offer-card h3{ font-family:var(--font-en-head); font-size:19px; color:var(--ink-900); margin-top:0; margin-bottom:10px; }
html[lang="ar"] .offer-card h3{ font-family:var(--font-ar); }
.offer-card .offer-desc{ font-size:14.5px; color:var(--ink-700); margin-bottom:18px; flex:1; }
.offer-price{ font-family:var(--font-en-head); font-size:32px; color:var(--green-600); margin-bottom:4px; }
html[lang="ar"] .offer-price{ font-family:var(--font-ar); }
.offer-price small{ font-size:14px; color:var(--ink-500); font-weight:400; }
.offer-price .offer-price-old{ font-size:16px; color:var(--ink-500); text-decoration:line-through; margin-inline-end:8px; }
.offer-discount-note{ font-size:12.5px; color:var(--green-600); background:rgba(16,135,0,.08); border-radius:20px; padding:4px 12px; display:inline-block; margin-bottom:16px; }
.offer-actions{ display:flex; flex-direction:column; gap:10px; margin-top:auto; }
.offers-empty, .offers-loading{ text-align:center; color:var(--ink-500); padding:40px 0; grid-column:1/-1; }

/* ---------- Testimonials ---------- */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:980px){ .testi-grid{ grid-template-columns:1fr; } }
.testi-card{
  background:var(--white); border:1px solid var(--ink-100); border-radius:var(--radius-lg); padding:28px;
  box-shadow:var(--shadow-sm);
}
.testi-stars{ display:flex; gap:3px; margin-bottom:14px; }
.testi-stars svg{ width:16px; height:16px; color:var(--gold); }
.testi-card p{ font-size:15px; color:var(--ink-700); font-style:italic; }
.testi-who{ display:flex; align-items:center; gap:12px; margin-top:16px; }
.testi-avatar{
  width:42px; height:42px; border-radius:50%; background:var(--green-100); color:var(--green-700);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-family:var(--font-en-head);
}
.testi-who b{ display:block; font-size:14px; }
.testi-who span{ font-size:12px; color:var(--ink-500); }

/* ---------- Blog ---------- */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
@media (max-width:980px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:640px){ .blog-grid{ grid-template-columns:1fr; } }
.blog-card{
  border:1px solid var(--ink-100); border-radius:var(--radius-lg); overflow:hidden; background:var(--white);
  transition:box-shadow .25s ease, transform .25s ease;
}
.blog-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-6px); }
.blog-cover{
  height:170px; overflow:hidden;
  background:linear-gradient(160deg,var(--green-600),var(--green-800));
}
.blog-cover svg{ width:44px; height:44px; color:rgba(255,255,255,.85); }
.blog-cover svg.blog-illus{ width:100%; height:100%; display:block; color:unset; }
.blog-cover img.blog-illus{ width:100%; height:100%; display:block; object-fit:cover; }

/* ---------- Hero illustrations (treatment / article banners) ---------- */
.illus-banner{ max-width:900px; margin:0 auto 36px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.illus-banner svg.hero-illus{ display:block; width:100%; height:auto; }
.illus-banner img.hero-illus{ display:block; width:100%; height:auto; }
.blog-body{ padding:22px; }
.blog-meta{ font-size:12px; color:var(--green-700); font-weight:700; margin-bottom:8px; text-transform:uppercase; letter-spacing:.03em; }
html[lang="ar"] .blog-meta{ text-transform:none; }
.blog-body h3{ font-size:17px; }
.blog-body p{ font-size:14px; }
.blog-read{ font-size:13.5px; font-weight:700; color:var(--ink-900); display:inline-flex; align-items:center; gap:6px; }

.article-header{ max-width:760px; margin:0 auto 32px; text-align:center; }
.article-body{ max-width:760px; margin:0 auto; font-size:16.5px; color:var(--ink-700); }
.article-body h2{ font-size:24px; margin-top:1.4em; }
.article-body ul{ margin:0 0 1.2em; padding-inline-start:20px; list-style:disc; display:flex; flex-direction:column; gap:8px; }
html[dir="rtl"] .article-body ul{ padding-inline-start:0; padding-inline-end:20px; }
.article-body blockquote{
  border-inline-start:4px solid var(--green-600); margin:1.6em 0; padding:6px 22px; font-style:italic; color:var(--ink-900); background:var(--green-50); border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

/* ---------- CTA banner ---------- */
.cta-banner{
  border-radius:var(--radius-lg); background:linear-gradient(120deg,var(--green-700),var(--green-900));
  padding:56px; text-align:center; color:var(--white); position:relative; overflow:hidden;
}
.cta-banner::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 20% 20%, rgba(255,255,255,.14), transparent 50%); }
.cta-banner h2{ color:var(--white); position:relative; z-index:1; }
.cta-banner p{ color:rgba(255,255,255,.85); max-width:560px; margin-inline:auto; margin-bottom:1.6em; text-align:center; position:relative; z-index:1; }
.cta-banner .hero-ctas{
  justify-content:center; position:relative; z-index:1;
  flex-direction:column; align-items:stretch; max-width:320px; margin-inline:auto;
}
.cta-banner .hero-ctas .btn{ justify-content:center; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:flex-start; }
@media (max-width:980px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info-card{ border:1px solid var(--ink-100); border-radius:var(--radius-lg); padding:30px; background:var(--ink-50); }
.info-row{ display:flex; gap:16px; align-items:flex-start; margin-bottom:22px; }
.info-row:last-child{ margin-bottom:0; }
.info-row .icon-badge{ background:var(--white); box-shadow:var(--shadow-sm); flex:none; }
.info-row h4{ font-size:14.5px; margin-bottom:2px; }
.info-row p{ font-size:14px; margin:0; }
.map-frame{ border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--ink-100); margin-top:24px; }
.map-frame iframe{ width:100%; height:280px; border:0; display:block; }

.form-card{ border:1px solid var(--ink-100); border-radius:var(--radius-lg); padding:34px; box-shadow:var(--shadow-sm); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:13px; font-weight:700; margin-bottom:6px; color:var(--ink-700); }
.field input, .field select, .field textarea{
  width:100%; border:1.5px solid var(--ink-100); border-radius:var(--radius-sm); padding:13px 16px;
  font-family:inherit; font-size:14.5px; background:var(--white); color:var(--ink-900); transition:border-color .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--green-500); }
.field textarea{ resize:vertical; min-height:110px; }

/* ---------- Footer ---------- */
footer.site-footer{ background:var(--ink-900); color:var(--ink-100); padding-top:70px; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.1fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:860px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-brand img{ height:54px; margin-bottom:16px; }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:14px; max-width:280px; }
.footer-col h5{ color:var(--white); font-size:14px; margin-bottom:18px; text-transform:uppercase; letter-spacing:.04em; }
html[lang="ar"] .footer-col h5{ text-transform:none; }
.footer-col ul{ display:flex; flex-direction:column; gap:12px; }
.footer-col a, .footer-col p{ color:rgba(255,255,255,.65); font-size:14.5px; }
.footer-col a:hover{ color:var(--green-300); }
.social-row{ display:flex; gap:10px; margin-top:18px; }
.social-row a{
  width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08);
  display:flex; align-items:center; justify-content:center; transition:background .2s;
}
.social-row a:hover{ background:var(--green-600); }
.social-row svg{ width:17px; height:17px; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding:24px 0; flex-wrap:wrap; gap:10px; }
.footer-bottom p{ font-size:13px; color:rgba(255,255,255,.5); margin:0; }
.footer-bottom .credits a{ color:rgba(255,255,255,.5); }

/* ---------- WhatsApp float ---------- */
.wa-float{
  position:fixed; bottom:26px; inset-inline-end:26px; z-index:200;
  width:60px; height:60px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(0,0,0,.22);
  transition:transform .2s ease;
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:30px; height:30px; }

/* ---------- SNC FAQ Chatbot ---------- */
.snc-chat-launcher{
  position:fixed; bottom:26px; inset-inline-start:26px; z-index:200;
  width:60px; height:60px; border-radius:50%; background:var(--green-600); color:#fff; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(0,0,0,.22);
  transition:transform .2s ease;
}
.snc-chat-launcher:hover{ transform:scale(1.08); }
.snc-chat-launcher svg{ width:27px; height:27px; }
.snc-chatbot.open .snc-chat-launcher svg{ display:none; }
.snc-chatbot.open .snc-chat-launcher{ background:var(--ink-900); }
.snc-chatbot.open .snc-chat-launcher::after{
  content:"\2715"; font-size:20px; line-height:1;
}

.snc-chat-window{
  position:fixed; bottom:98px; inset-inline-start:26px; z-index:200;
  width:340px; max-width:calc(100vw - 40px); max-height:min(520px, 70vh);
  background:var(--white); border-radius:20px; box-shadow:0 20px 50px rgba(20,32,26,.22);
  display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(12px) scale(.98); pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;
}
.snc-chatbot.open .snc-chat-window{ opacity:1; transform:none; pointer-events:auto; }

.snc-chat-header{
  background:var(--green-600); color:#fff; padding:16px 18px; display:flex; align-items:center; justify-content:space-between;
}
.snc-chat-header strong{ display:block; font-family:var(--font-en-head); font-size:15.5px; }
html[lang="ar"] .snc-chat-header strong{ font-family:var(--font-ar); }
.snc-chat-header span{ display:block; font-size:12px; color:rgba(255,255,255,.8); margin-top:2px; }
.snc-chat-close{
  background:none; border:none; color:#fff; font-size:22px; line-height:1; cursor:pointer; padding:0 4px; opacity:.85;
}
.snc-chat-close:hover{ opacity:1; }

.snc-chat-messages{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--ink-50); }
.snc-chat-msg{ max-width:85%; }
.snc-chat-msg p{ margin:0; padding:10px 13px; border-radius:14px; font-size:13.5px; line-height:1.5; color:var(--ink-900); }
.snc-chat-msg.bot{ align-self:flex-start; }
.snc-chat-msg.bot p{ background:var(--white); border-bottom-left-radius:4px; box-shadow:0 1px 4px rgba(20,32,26,.08); }
html[lang="ar"] .snc-chat-msg.bot p{ border-bottom-left-radius:14px; border-bottom-right-radius:4px; }
.snc-chat-msg.user{ align-self:flex-end; }
.snc-chat-msg.user p{ background:var(--green-600); color:#fff; border-bottom-right-radius:4px; }
html[lang="ar"] .snc-chat-msg.user p{ border-bottom-right-radius:14px; border-bottom-left-radius:4px; }
.snc-chat-link{
  display:inline-block; margin-top:4px; font-size:12.5px; font-weight:700; color:var(--green-600); text-decoration:none;
}
.snc-chat-link:hover{ text-decoration:underline; }
.snc-chat-link.snc-chat-wa{
  background:#25D366; color:#fff; padding:7px 12px; border-radius:20px; margin-top:6px;
}
.snc-chat-link.snc-chat-wa:hover{ text-decoration:none; background:#1DA851; }

.snc-chat-quick{ display:flex; flex-wrap:wrap; gap:6px; padding:0 14px 12px; background:var(--ink-50); }
.snc-chat-chip{
  background:var(--white); border:1px solid var(--ink-100); color:var(--ink-700); border-radius:20px;
  padding:6px 12px; font-size:12px; cursor:pointer; transition:background .15s ease;
}
.snc-chat-chip:hover{ background:var(--green-50); border-color:var(--green-600); color:var(--green-700); }

.snc-chat-input-row{ display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--ink-100); background:var(--white); }
.snc-chat-input-row input{
  flex:1; border:1px solid var(--ink-100); border-radius:20px; padding:9px 14px; font-size:13.5px; outline:none;
}
.snc-chat-input-row input:focus{ border-color:var(--green-600); }
.snc-chat-input-row button{
  background:var(--green-600); color:#fff; border:none; border-radius:20px; padding:0 16px; font-size:13px; font-weight:700; cursor:pointer;
}
.snc-chat-input-row button:hover{ background:var(--green-700); }

@media (max-width:480px){
  .snc-chat-launcher{ inset-inline-start:16px; bottom:16px; width:54px; height:54px; }
  .snc-chat-window{ inset-inline-start:12px; bottom:82px; width:calc(100vw - 24px); }
}

/* ---------- Page header (inner pages) ---------- */
.page-hero{
  background:linear-gradient(180deg, var(--green-50), var(--white));
  padding:64px 0 48px; text-align:center; position:relative; overflow:hidden;
}
.page-hero .eyebrow{ margin-inline:auto; }
.breadcrumb{ font-size:13px; color:var(--ink-500); margin-top:14px; }
.breadcrumb a{ color:var(--green-700); font-weight:600; }

/* ---------- Process steps ---------- */
.process-grid{ display:flex; flex-wrap:wrap; justify-content:center; gap:28px; counter-reset:step; }
.process-step{ position:relative; padding-top:8px; flex:1 1 220px; max-width:260px; }
.process-num{
  width:50px; height:50px; border-radius:50%; background:var(--green-600); color:var(--white);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-en-head); font-weight:800; font-size:19px;
  margin-bottom:18px; box-shadow:var(--shadow-sm); margin-inline:auto;
}
html[lang="ar"] .process-num{ font-family:var(--font-ar); }
.process-step{ text-align:center; }
.process-step h3{ font-size:17px; }
.process-step p{ font-size:14px; margin:0; }
.process-connector{ display:none; }
@media (min-width:768px){
  .process-step:not(:last-child)::after{
    content:""; position:absolute; top:25px; inset-inline-start:calc(50% + 45px); width:calc(100% - 50px);
    height:2px; background:repeating-linear-gradient(90deg, var(--green-200) 0 8px, transparent 8px 14px);
  }
}

/* ---------- Comparison (SNC vs typical big clinics) ---------- */
.compare-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:768px){ .compare-grid{ grid-template-columns:1fr; } }
.compare-card{ border-radius:var(--radius-lg); padding:32px; border:1px solid var(--ink-100); }
.compare-card.muted{ background:var(--ink-50); }
.compare-card.highlight{ background:linear-gradient(160deg,var(--green-700),var(--green-900)); color:var(--white); border-color:transparent; box-shadow:var(--shadow-lg); }
.compare-card h3{ font-size:18px; margin-bottom:18px; }
.compare-card.highlight h3{ color:var(--white); }
.compare-card ul{ display:flex; flex-direction:column; gap:14px; }
.compare-card li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; }
.compare-card.muted li{ color:var(--ink-500); }
.compare-card.highlight li{ color:rgba(255,255,255,.9); }
.compare-card li svg{ width:19px; height:19px; flex:none; margin-top:2px; }
.compare-card.muted li svg{ color:var(--ink-300); }
.compare-card.highlight li svg{ color:var(--green-200); }
.compare-tag{ display:inline-block; font-size:11.5px; font-weight:700; padding:4px 12px; border-radius:var(--radius-pill); margin-bottom:14px; }
.compare-card.muted .compare-tag{ background:var(--ink-100); color:var(--ink-500); }
.compare-card.highlight .compare-tag{ background:rgba(255,255,255,.16); color:var(--white); }

/* ---------- FAQ (native details/summary — zero JS, always works) ---------- */
.faq-list{ max-width:820px; margin-inline:auto; display:flex; flex-direction:column; gap:12px; }
.faq-item{ border:1px solid var(--ink-100); border-radius:var(--radius-md); background:var(--white); overflow:hidden; }
.faq-item summary{
  cursor:pointer; padding:20px 24px; font-weight:700; font-size:15.5px; color:var(--ink-900);
  display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-size:22px; font-weight:400; color:var(--green-600); flex:none; transition:transform .2s ease;
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item .faq-answer{ padding:0 24px 20px; font-size:14.5px; color:var(--ink-500); margin:0; }

/* ---------- Generic check-list (ideal-for / aftercare lists) ---------- */
.check-list{ display:flex; flex-direction:column; gap:12px; max-width:760px; margin-inline:auto; }
.check-list li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--ink-500); background:var(--white); padding:14px 18px; border-radius:var(--radius-md); border:1px solid var(--ink-100); }
.check-list li svg{ width:19px; height:19px; color:var(--green-600); flex:none; margin-top:2px; }

/* ---------- Chip links (related-treatment cross-links) ---------- */
.chip-row{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:880px; margin-inline:auto; }
.chip-link{
  display:inline-block; padding:9px 18px; border-radius:var(--radius-pill); border:1px solid var(--ink-100);
  background:var(--white); color:var(--ink-700); font-size:14px; font-weight:600; transition:all .2s ease;
}
.chip-link:hover{ background:var(--green-600); border-color:var(--green-600); color:var(--white); }

/* ---------- BMI calculator ---------- */
.tool-card{
  max-width:640px; margin-inline:auto; border:1px solid var(--ink-100); border-radius:var(--radius-lg);
  padding:34px; background:var(--ink-50);
}
.tool-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
@media (max-width:560px){ .tool-row{ grid-template-columns:1fr; } }
.tool-result{
  margin-top:20px; padding:20px; border-radius:var(--radius-md); background:var(--white);
  border:1px solid var(--ink-100); text-align:center; display:none;
}
.tool-result.show{ display:block; }
.tool-result .bmi-value{ font-family:var(--font-en-head); font-size:34px; color:var(--green-700); font-weight:800; }
html[lang="ar"] .tool-result .bmi-value{ font-family:var(--font-ar); }
.tool-result .bmi-cat{ font-size:14px; font-weight:700; margin-top:4px; }
.tool-result .bmi-note{ font-size:12.5px; color:var(--ink-500); margin-top:10px; }

/* ---------- Entrance animation (pure CSS — always resolves to visible) ---------- */
@keyframes fadeInUp{
  from{ opacity:0; transform:translateY(16px); }
  to{ opacity:1; transform:translateY(0); }
}
.feature-card,.service-card,.testi-card,.blog-card,.team-card,.service-detail{
  animation:fadeInUp .6s cubic-bezier(.2,.7,.3,1) both;
}
.feature-grid>:nth-child(2),.service-grid>:nth-child(2),.testi-grid>:nth-child(2),.blog-grid>:nth-child(2),.team-grid>:nth-child(2){ animation-delay:.08s; }
.feature-grid>:nth-child(3),.service-grid>:nth-child(3),.testi-grid>:nth-child(3),.blog-grid>:nth-child(3),.team-grid>:nth-child(3){ animation-delay:.16s; }
.feature-grid>:nth-child(4),.service-grid>:nth-child(4),.blog-grid>:nth-child(4),.team-grid>:nth-child(4){ animation-delay:.24s; }
.service-grid>:nth-child(5),.team-grid>:nth-child(5){ animation-delay:.32s; }
.service-grid>:nth-child(6),.team-grid>:nth-child(6){ animation-delay:.4s; }
@media (prefers-reduced-motion: reduce){
  .feature-card,.service-card,.testi-card,.blog-card,.team-card,.service-detail{ animation:none; }
}

/* ---------- Utilities ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
@media (max-width:768px){ .two-col{ grid-template-columns:1fr; } }
.badge-note{
  display:flex; gap:10px; align-items:flex-start; background:#FFF7E8; border:1px solid #F1DDA8;
  border-radius:var(--radius-md); padding:16px 18px; font-size:13.5px; color:#7A5B12;
}
.badge-note svg{ width:20px; height:20px; flex:none; color:#C9A24B; }

/* ---------- Comparison table (treatments at a glance) ---------- */
.compare-table-wrap{ overflow-x:auto; border-radius:var(--radius-lg); border:1px solid var(--ink-100); background:var(--white); }
.compare-table{ width:100%; border-collapse:collapse; min-width:760px; font-size:14px; }
.compare-table th, .compare-table td{ padding:16px 18px; text-align:start; border-bottom:1px solid var(--ink-100); vertical-align:top; }
.compare-table thead th{ background:var(--ink-900); color:var(--white); font-size:12.5px; letter-spacing:.02em; text-transform:uppercase; font-weight:700; }
.compare-table tbody tr:last-child td{ border-bottom:none; }
.compare-table tbody tr:hover{ background:var(--green-50); }
.compare-table td:first-child, .compare-table th:first-child{ font-weight:700; color:var(--ink-900); white-space:nowrap; }
.compare-table td span.muted{ color:var(--ink-300); }

/* ---------- Goal matcher ---------- */
.goal-list{ display:flex; flex-direction:column; gap:12px; max-width:880px; margin-inline:auto; }
.goal-row{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  background:var(--white); border:1px solid var(--ink-100); border-radius:var(--radius-md); padding:16px 22px;
}
.goal-row .goal-text{ font-weight:700; font-size:15px; color:var(--ink-900); }
.goal-row .goal-links{ display:flex; gap:8px; flex-wrap:wrap; }
