/* ================================================
   style.css â€” Rama Ganama Portfolio
   Premium Dark Theme â€” vCard Version #1 Match
   ================================================ */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&family=El+Messiri:wght@500;600&family=IBM+Plex+Sans+Arabic:wght@300;400;500&display=swap');

/* ------------------------------------------------
   Variables
------------------------------------------------ */
:root {
  --font-en: 'Poppins', sans-serif;
  --font-ar: 'El Messiri', serif;
  --font-ar-body: 'IBM Plex Sans Arabic', sans-serif;
  --font-size-base: 14px;          /* demo: 15px, we go 14 for Arabic */

  --color-heading: #F2EDE6;
  --color-paragraph: #D6D6D6;
  --color-border: #383838;
  --color-bg: #121212;
  --color-surface-1: #1e1e1f;
  --color-surface-2: #2a2a2b;
  --color-surface-3: #202021;
  --color-accent: #E8D5B7;
  --color-accent-2: #C9A87C;
  --color-error: #B84C4C;

  --grid-color-major: rgba(232, 213, 183, 0.12);
  --grid-color-minor: rgba(232, 213, 183, 0.04);
  --grid-spotlight: rgba(232, 213, 183, 0.09);
  --mouse-x: 50%;
  --mouse-y: 50%;

  --gradient-accent: linear-gradient(137.84deg, #E8D5B7 26.31%, #C9A87C 93.75%);
  --gradient-accent-soft: linear-gradient(135deg, rgba(232,213,183,0.0375) 0%, rgba(201,168,124,0) 100%), #1E1E1F;
  --gradient-text: linear-gradient(90deg, #E8D5B7, #C9A87C);
  --gradient-border: linear-gradient(155deg, #E8D5B7 0%, rgba(201,168,124,0) 50%);
  --gradient-border-gray: linear-gradient(135deg, #404040 0%, rgba(64,64,64,0) 48.44%);
  --gradient-gray: linear-gradient(137.84deg, #3F3F40 2.69%, #303030 93.75%);
  --gradient-icon: linear-gradient(135deg, rgba(232,213,183,0.18) 0%, rgba(201,168,124,0) 59.86%), #202021;
  --gradient-btn: linear-gradient(135deg, rgba(45,45,46,0.25) 0%, rgba(27,27,28,0) 100%), #202021;

  --shadow-24: -4px 8px 24px rgba(0,0,0,0.25);
  --shadow-30: 0px 16px 30px rgba(0,0,0,0.25);
  --shadow-40: 0px 16px 40px rgba(0,0,0,0.25);
  --shadow-50: 0px 25px 50px rgba(0,0,0,0.15);
  --shadow-80: 0px 24px 80px rgba(0,0,0,0.7);

  --radius-32: 32px;
  --radius-20: 20px;
  --radius-18: 18px;
  --radius-16: 16px;
  --radius-14: 14px;
  --radius-12: 12px;
  --radius-8:   8px;

  --transition: all 0.3s ease-in-out;
}

/* ------------------------------------------------
   Reset & Base
------------------------------------------------ */
*, ::before, ::after {
  box-sizing: border-box;
  background-repeat: no-repeat;
  -webkit-tap-highlight-color: transparent;
}

html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  background-color: var(--color-bg);
  transition: background-color 0.35s ease;
  margin: 0;
  padding: 0;
}

body {
  background: transparent;
  color: var(--color-paragraph);
  font-family: var(--font-ar-body);
  font-size: var(--font-size-base);
  font-weight: 300;
  line-height: 1.65;
  min-height: 100vh;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  direction: rtl;
  margin: 0;
  padding: 0;
}

img { max-width: 100%; display: block; user-select: none; }
a { color: var(--color-accent); text-decoration: none; cursor: pointer; }
a:hover { outline: none; }
ul { list-style: none; margin: 0; padding: 0; }
figure { margin: 0; }
button { cursor: pointer; border: none; background: none; font-family: inherit; outline: none; }

::selection { background: transparent; color: var(--color-accent); }

/* ------------------------------------------------
   Scroll Line
------------------------------------------------ */
.scroll-line {
  background: var(--gradient-accent);
  height: 3px;
  position: fixed;
  top: 0; left: 0;
  width: 0;
  z-index: 9999;
  transition: width 0.1s linear;
}

/* ------------------------------------------------
   Custom Scrollbar
------------------------------------------------ */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--color-bg); }
::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-accent); }


/* ------------------------------------------------
   Typography
------------------------------------------------ */
h1, h2, h3, h4, h5, h6 {
  color: var(--color-heading);
  font-family: var(--font-ar);
  font-weight: 600;
  line-height: 1.3;
  margin-top: 0;
}

/* Main section titles (h2 used as h1) get the warm beige accent */
.title--h1 {
  color: var(--color-accent);
}

/* Match demo sizing exactly */
.title--h1 { font-size: 1.625rem; margin-bottom: 1rem; }
.title--h2 { font-size: 1.25rem;  margin-bottom: 1rem; }
.title--h3 { font-size: 1rem;     margin-bottom: 0.4rem; }
.title--h4 { font-size: 0.9rem;   margin-bottom: 0.6rem; font-weight: 500; }

.title--tone {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* Underline accent bar â€” like demo */
.title__separate {
  margin-bottom: 2rem;
  position: relative;
}
.title__separate::before {
  content: '';
  background: var(--gradient-accent);
  border-radius: 8px;
  height: 5px;
  position: absolute;
  bottom: -0.8rem;
  right: 0;
  width: 2.5rem;
  z-index: 1;
}

.overhead {
  color: var(--color-paragraph);
  font-size: 0.6875rem;
  font-weight: 400;
  display: block;
  opacity: 0.7;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* ------------------------------------------------
   BOX SYSTEM
------------------------------------------------ */
.box {
  background: var(--gradient-border);
  position: relative;
  z-index: 0;
}
.box::before {
  content: '';
  position: absolute;
  top: 1px; right: 1px; bottom: 1px; left: 1px;
  background: var(--gradient-accent-soft);
  border-radius: inherit;
  z-index: -1;
}

.box-outer {
  background-color: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-20);
  box-shadow: var(--shadow-24);
  padding: 1.875rem;            /* matches demo exactly */
  position: relative;
}



/* Inner cards â€” demo uses 1.875rem padding, we keep it */
.box-inner {
  border-radius: var(--radius-16);
  box-shadow: var(--shadow-50);
  padding: 1.25rem 1.5rem;      /* slightly tighter than demo's 1.875rem */
  margin-bottom: 1.25rem;
}
.box-inner:last-child { margin-bottom: 0; }

/* Icon box â€” compact for desktop */
.icon-box {
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-12);
  box-shadow: var(--shadow-30);
  line-height: 1;
  margin-left: 0.75rem;
  height: 2.25rem;
  width:  2.25rem;
  flex-shrink: 0;
  background: var(--gradient-icon);
  border: 1px solid var(--color-border);
}

.icon-box i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.separation {
  background: var(--color-border);
  margin: 0.75rem 0;
  height: 1px;
  width: 100%;
}

/* ------------------------------------------------
   Badge
------------------------------------------------ */
.badge {
  background: var(--color-surface-2);
  font-size: 0.6875rem;         /* smaller like demo */
  font-weight: 400;
  border-radius: var(--radius-8);
  padding: 0.375rem 0.875rem;
  color: var(--color-paragraph);
  display: inline-block;
}

/* ------------------------------------------------
   Buttons â€” smaller/tighter like demo
------------------------------------------------ */
.btn {
  background: var(--gradient-border-gray);
  border-radius: var(--radius-14);
  box-shadow: var(--shadow-40);
  border: 0;
  color: var(--color-accent);
  cursor: pointer;
  font-weight: 400;
  font-size: 0.875rem;          /* demo: ~1rem, we do 0.875 */
  line-height: initial;
  padding: 0.75rem 1.25rem;     /* demo: 1rem 1.5rem â€” slightly less */
  position: relative;
  transition: var(--transition);
  white-space: nowrap;
  z-index: 0;
  font-family: var(--font-ar-body);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.btn::before {
  content: '';
  position: absolute;
  top: 1px; right: 1px; bottom: 1px; left: 1px;
  background: var(--gradient-btn);
  border-radius: inherit;
  transition: var(--transition);
  z-index: -1;
}
.btn:hover { background: var(--gradient-border); color: var(--color-accent); }
.btn:hover::before { background: var(--gradient-icon); }

.btn--small {
  box-shadow: var(--shadow-30);
  font-size: 0.6875rem;
  padding: 0.5rem 0.875rem;
}

/* ------------------------------------------------
   Layout
------------------------------------------------ */
.page-wrapper {
  max-width: 1290px;
  margin: 0 auto;
  padding: 3.75rem 1.5rem 2rem;
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
}

/* ------------------------------------------------
   Sidebar
------------------------------------------------ */
.sidebar {
  width: 270px;
  flex-shrink: 0;
  position: sticky;
  top: 1.875rem;
  z-index: 10;
}

.sidebar .box-outer {
  padding: 0;
  overflow: hidden;
}

.avatar-box {
  background: var(--gradient-gray);
  border-radius: var(--radius-24);
  overflow: hidden;
  margin: 1.25rem 1.25rem 1rem;
  aspect-ratio: 1;
  transition: var(--transition);
}

.avatar-box img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* Inline avatar for mobile horizontal sidebar layout */
.avatar-box--inline {
  display: none; /* hidden on desktop; shown on mobile */
  margin: 0;
  flex-shrink: 0;
  width: 5rem;
  height: 5rem;
  border-radius: var(--radius-18);
  aspect-ratio: 1;
  background: var(--gradient-gray);
  overflow: hidden;
}

.sidebar__base-info {
  padding: 0 1.25rem 0.625rem;
  text-align: center;
  position: relative;
}

.sidebar__name {
  font-family: var(--font-ar);
  font-size: 1.375rem;
  font-weight: 600;
  margin-bottom: 0.05rem;
  color: var(--color-heading);
  line-height: 1.2;
}

.sidebar__name-en {
  font-family: var(--font-en);
  font-size: 0.75rem;
  color: var(--color-paragraph);
  opacity: 0.6;
  margin: 0 0 0.5rem 0; /* Reset margins completely */
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

.sidebar__btn {
  display: none;
  position: absolute;
  top: 0; left: 0;
}

.sidebar__additional-info {
  display: block;
}
.sidebar__additional-info-inner {
  padding: 0 1.25rem 1rem;
}

/* Force details info to always be fully visible on desktop, preventing any JS or transition issues */
@media (min-width: 992px) {
  .sidebar__additional-info {
    display: block !important;
    height: auto !important;
    opacity: 1 !important;
    overflow: visible !important;
  }
  .sidebar__additional-info .separation {
    width: 100% !important;
  }
  .details-info__item {
    opacity: 1 !important;
    transform: none !important;
  }
  .social__link {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Details Info */
.details-info { padding: 0; margin-bottom: 0; }

.details-info__item {
  color: var(--color-heading);
  font-size: 0.8125rem;
  display: flex;
  align-items: center;
  margin-bottom: 0.75rem;
}
.details-info__item:last-child { margin-bottom: 0; }

.contacts-block__info { flex: 1; min-width: 0; }
.contacts-block__info a {
  color: var(--color-heading);
  -webkit-text-fill-color: inherit;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.contacts-block__info a:hover { text-decoration: none; }

.contacts-block__phone {
  text-align: right;
}
html[lang="en"] .contacts-block__phone {
  text-align: left;
}

/* Social */
.social { text-align: center; margin-top: 0; }
.social__link {
  font-size: 1.125rem;
  color: var(--color-heading);
  opacity: 0.6;
  margin: 0 0.375rem;
  transition: opacity 0.3s;
  display: inline-block;
}
.social__link:hover { opacity: 1; color: var(--color-heading); -webkit-text-fill-color: unset; }

/* ------------------------------------------------
   Main Content Box
------------------------------------------------ */
.main-content {
  flex: 1;
  min-width: 0;
}

.nav-wrapper {
  position: relative;
  height: 4rem;
  margin-bottom: 1.5rem;
}

.main-content .box-outer {
  padding: 1.875rem;
}

/* ------------------------------------------------
   Navigation (like demo â€” top-right on desktop, bottom on mobile)
------------------------------------------------ */
.nav-container {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-20);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 4rem;
  padding: 0 1.25rem 0 1.25rem;
  position: absolute;
  top: 0; left: 0;
  right: 0;
  z-index: 1;
}

/* Nav utils â€” theme & lang switcher inside nav bar */
.nav-utils {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-shrink: 0;
}

.nav-utils__divider {
  width: 1px;
  height: 1.5rem;
  background: var(--color-border);
  margin: 0 0.625rem;
  opacity: 0.7;
}

.nav-util-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: var(--radius-8);
  background: transparent;
  border: 1px solid transparent;
  color: var(--color-paragraph);
  font-size: 0.875rem;
  transition: color 0.25s, background 0.25s, border-color 0.25s;
  cursor: pointer;
}

.nav-util-btn:hover {
  color: var(--color-accent);
  background: rgba(232, 213, 183, 0.08);
  border-color: rgba(232, 213, 183, 0.15);
}

.nav-util-lang {
  font-family: var(--font-en);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}


.nav {
  display: flex;
  align-items: center;
  height: 100%;
  gap: 8px;
  position: relative;
}

.nav__item { margin-right: 0; }

.nav__btn {
  color: var(--color-paragraph);
  font-family: var(--font-ar-body);
  font-weight: 500;
  font-size: 0.9rem;
  padding: 0 1.125rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.25s ease-in-out;
  border: 1px solid transparent;
  background: transparent;
  border-radius: var(--radius-12);
  cursor: pointer;
  position: relative;
  white-space: nowrap;
  z-index: 1;
}

.nav__btn:hover {
  color: var(--color-accent);
}

.nav__btn.active {
  color: var(--color-accent);
  opacity: 1;
}

.nav-indicator {
  position: absolute;
  display: block;
  background-color: rgba(232, 213, 183, 0.08);
  border: 1.5px solid rgba(232, 213, 183, 0.15);
  border-radius: var(--radius-12);
  pointer-events: none;
  z-index: 0;
  left: 0;
  width: 0;
  height: 0;
  transition: left 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
              width 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
              height 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
              top 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.nav-indicator.no-transition {
  transition: none !important;
}

/* Mobile bottom nav */
@media (max-width: 991px) {
  .nav-container {
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
    background: rgba(30, 30, 31, 0.65);
    border: 1px solid rgba(232, 213, 183, 0.12);
    border-radius: 30px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
    position: fixed;
    top: auto;
    bottom: 16px;
    left: 0 !important;
    right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: max-content;
    max-width: 90%;
    height: 3.4rem;
    justify-content: center;
    padding: 0 0.5rem;
    z-index: 1112;
  }
  .nav__btn {
    font-size: 0.8rem;
    padding: 0 0.6rem;
    height: 2.125rem;
  }
  .nav { gap: 2px; }
  /* Ø¹Ù„Ù‰ Ø§Ù„Ù…ÙˆØ¨Ø§ÙŠÙ„: Ø£ÙŠÙ‚ÙˆÙ†Ø§Øª ØµØºÙŠØ±Ø© ÙÙ‚Ø· Ø¨Ø¯ÙˆÙ† divider Ø¶Ø®Ù… */
  .nav-utils__divider {
    height: 1.125rem;
    margin: 0 0.375rem;
  }
  .nav-util-btn {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.78rem;
  }
  .main-content .box-outer {
    padding: 1.25rem;
  }
}

@media (max-width: 580px) {
  .nav-container {
    height: 3.1rem;
    border-radius: 24px;
    bottom: 12px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: max-content;
    max-width: 95%;
    padding: 0 0.375rem;
  }
  .nav__btn { font-size: 0.7rem; padding: 0 0.45rem; height: 1.875rem; }
  .nav { gap: 1px; }

  /* Ø£ÙŠÙ‚ÙˆÙ†Ø§Øª Ù…Ø¶ØºÙˆØ·Ø© Ø¬Ø¯Ø§Ù‹ Ø¹Ù„Ù‰ Ø§Ù„Ù…ÙˆØ¨Ø§ÙŠÙ„ */
  .nav-utils { gap: 0.125rem; }
  .nav-utils__divider { height: 1rem; margin: 0 0.25rem; }
  .nav-util-btn { width: 1.5rem; height: 1.5rem; font-size: 0.7rem; }
}

/* ------------------------------------------------
   Content Sections
------------------------------------------------ */
.content-section {
  display: none;
}
.content-section.active { display: block; }

/* ------------------------------------------------
   About â€” Services Grid & Case Items (match demo exactly)
   Demo: horizontal desktop, vertical centered mobile
   Icon size in demo: 2.5rem Ã— 2.5rem (40px SVG)
   We use icon-box: 36px
------------------------------------------------ */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.services-grid .case-item {
  margin-bottom: 0;
}

.case-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--gradient-border);
}

.case-item::before { background: var(--gradient-accent-soft); }

/* Smaller icon box inside case items (demo uses 2.5rem SVG) */
.case-item .case-item__icon-wrap {
  width: 2.375rem;              /* 38px â€” matches demo 2.5rem feel */
  height: 2.375rem;
  background: var(--gradient-icon);
  border: 1px solid rgba(255,219,110,0.15);
  border-radius: var(--radius-12);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1rem;
  box-shadow: var(--shadow-24);
}

.case-item .case-item__icon-wrap i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.case-item__caption {
  color: var(--color-paragraph);
  font-size: 0.8125rem;
  line-height: 1.55;
  margin: 0;
}

/* Vertical centered on mobile (580px and below, matches demo) */
@media (max-width: 991px) {
  .services-grid {
    gap: 0.75rem;
  }
  .case-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.125rem 1rem;
    gap: 0.75rem;
  }
  .case-item .case-item__icon-wrap {
    width: 2.625rem;
    height: 2.625rem;
    font-size: 1.0625rem;
    border-radius: var(--radius-12);
    margin: 0 auto;
  }
  .case-item h3 { margin-bottom: 0.25rem; font-size: 0.9375rem; }
  .case-item__caption { font-size: 0.8rem; }
}

@media (max-width: 580px) {
  .case-item { padding: 0.875rem 0.75rem; }
}

/* ------------------------------------------------
   Timeline (Resume) â€” tighter like demo
------------------------------------------------ */
.resume-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.75rem;
  margin-bottom: 2rem;
}

.resume-col-title {
  font-family: var(--font-ar);
  font-size: 1.0625rem;         /* smaller than before */
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.resume-col-title i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 0.875rem;
}

.timeline { display: flex; flex-direction: column; }

.timeline-item {
  display: flex;
  gap: 0.875rem;
  padding-bottom: 1.125rem;
  position: relative;
}
.timeline-item:last-child { padding-bottom: 0; }

.timeline-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  padding-top: 4px;
}
.timeline-dot {
  width: 8px; height: 8px;      /* demo-sized dot */
  border-radius: 50%;
  background: var(--gradient-accent);
  flex-shrink: 0;
  box-shadow: 0 0 8px rgba(232, 213, 183, 0.4);
  position: relative;
  z-index: 1;
}
.timeline-line {
  width: 1px;
  flex: 1;
  background: var(--color-border);
  margin-top: 4px;
  margin-bottom: -1.125rem; /* bridge the gap equal to padding-bottom of .timeline-item */
}
.timeline-item:last-child .timeline-line { display: none; }

.timeline-body {
  flex: 1;
  min-width: 0;
}

.timeline-period {
  font-size: 0.6875rem;         /* very small like demo overhead */
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 3px;
  display: block;
}

.timeline-title {
  font-family: var(--font-ar);
  font-size: 0.9375rem;         /* demo h4: 1rem */
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 2px;
}

.timeline-place {
  font-size: 0.75rem;
  color: var(--color-accent);
  margin-bottom: 5px;
  opacity: 0.85;
}

.timeline-desc {
  font-size: 0.75rem;
  color: var(--color-paragraph);
  line-height: 1.6;
  margin: 0;
}

/* ------------------------------------------------
   Skills â€” compact tags like demo
------------------------------------------------ */
.skills-section {
  margin-top: 0.5rem;
}

.skill-group {
  margin-bottom: 1.5rem;
}
.skill-group:last-child {
  margin-bottom: 0;
}

.skill-group-title {
  font-family: var(--font-ar);
  font-size: 0.9375rem;         /* smaller */
  font-weight: 600;
  color: var(--color-heading);
  margin-bottom: 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.skill-group-title i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-size: 0.8125rem;
}

.skills-wrap { display: flex; flex-wrap: wrap; gap: 8px; }

/* Compact skill tags like demo badges */
.skill-tag {
  background: var(--gradient-border-gray);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-8);
  padding: 0.3125rem 0.875rem;  /* demo badge: 0.5rem 1rem â€” we go smaller */
  font-size: 0.75rem;           /* demo: 0.75rem */
  color: var(--color-paragraph);
  transition: var(--transition);
  position: relative;
  z-index: 0;
}
.skill-tag::before {
  content: '';
  position: absolute;
  inset: 1px;
  background: var(--gradient-btn);
  border-radius: inherit;
  z-index: -1;
  transition: var(--transition);
}
.skill-tag:hover {
  background: var(--gradient-border);
  color: var(--color-heading);
}
.skill-tag:hover::before { background: var(--gradient-icon); }

.lang-chips { display: flex; flex-wrap: nowrap; gap: 8px; }
.lang-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--gradient-border-gray);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-8);
  padding: 0.3125rem 0.875rem;
  font-size: 0.75rem;
  color: var(--color-paragraph);
  position: relative;
  z-index: 0;
}
.lang-chip::before {
  content: '';
  position: absolute;
  inset: 1px;
  background: var(--gradient-btn);
  border-radius: inherit;
  z-index: -1;
}
.lang-chip-dot {
  width: 5px; height: 5px;      /* smaller dot */
  border-radius: 50%;
  background: var(--gradient-accent);
  box-shadow: 0 0 5px rgba(232, 213, 183, 0.5);
  flex-shrink: 0;
}
.lang-level {
  font-size: 0.65rem;
  opacity: 0.6;
  letter-spacing: 0.04em;
}

/* Progress Bars */
.skills-list {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

.skill-progress-item {
  width: 100%;
}

.skill-progress-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.25rem;
}

.skill-progress-name {
  font-family: var(--font-ar-body);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--color-heading);
  margin: 0;
}

.skill-progress-value {
  font-family: var(--font-en);
  font-size: 0.8125rem;
  color: var(--color-paragraph);
  opacity: 0.85;
}

.skill-progress-bar-bg {
  background-color: var(--color-surface-2);
  border-radius: 10px;
  height: 6px;
  width: 100%;
  overflow: hidden;
  position: relative;
}

.skill-progress-bar-fill {
  background: var(--gradient-accent);
  border-radius: 10px;
  height: 100%;
  width: 0; /* Animated dynamically with GSAP */
}


/* ------------------------------------------------
   Portfolio â€” slightly tighter cards
------------------------------------------------ */
.portfolio-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.filter-btn {
  background: var(--gradient-border-gray);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-14);
  padding: 0.375rem 1rem;       /* smaller than before */
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--color-paragraph);
  cursor: pointer;
  font-family: var(--font-ar-body);
  transition: var(--transition);
  position: relative;
  z-index: 0;
}
.filter-btn::before {
  content: '';
  position: absolute;
  inset: 1px;
  background: var(--gradient-btn);
  border-radius: inherit;
  z-index: -1;
  transition: var(--transition);
}
.filter-btn.active, .filter-btn:hover {
  background: var(--gradient-border);
  color: var(--color-accent);
}
.filter-btn.active::before, .filter-btn:hover::before {
  background: var(--gradient-icon);
}

.portfolio-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.portfolio-row {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 2.25rem;
  align-items: center;
  cursor: pointer;
  transition: box-shadow 0.35s ease, border-color 0.35s ease;
}

.portfolio-row:hover {
  transform: translateY(-4px);
  border-color: var(--color-accent);
  box-shadow: var(--shadow-50);
  transition: transform 0.25s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

/* Alternating logic */
.portfolio-row:nth-child(even) {
  grid-template-columns: 1fr 1.25fr;
}
.portfolio-row:nth-child(even) .portfolio-row-visual {
  order: 2;
}
.portfolio-row:nth-child(even) .portfolio-row-desc {
  order: 1;
}

/* Visual wrapper */
.portfolio-row-visual {
  position: relative;
  border-radius: var(--radius-16);
  overflow: hidden;
  aspect-ratio: 16/10;
  border: 1px solid rgba(232, 213, 183, 0.1);
  box-shadow: var(--shadow-30);
  background-color: #000;
  z-index: 0;
}

.portfolio-row-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  display: block;
}

.portfolio-row:hover .portfolio-row-img {
  transform: scale(1.04);
}

/* Hover overlay on visual */
.portfolio-row-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(18,18,18,0.85) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.4s ease;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 1.25rem;
}

.portfolio-row:hover .portfolio-row-overlay {
  opacity: 1;
}

.portfolio-row-overlay-label {
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  display: flex;
  align-items: center;
  gap: 6px;
  background-color: rgba(30, 30, 31, 0.95);
  border: 1px solid rgba(232, 213, 183, 0.2);
  padding: 6px 12px;
  border-radius: 12px;
  box-shadow: var(--shadow-30);
}

/* Description block */
.portfolio-row-desc {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
  text-align: right;
}

/* Row elements styling */
.portfolio-row-badge {
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--color-accent);
  background: rgba(232, 213, 183, 0.08);
  border: 1px solid rgba(232, 213, 183, 0.15);
  padding: 3px 8px;
  border-radius: 8px;
  letter-spacing: 0.05em;
  font-family: var(--font-ar-body);
}

.portfolio-row-title {
  font-family: var(--font-ar);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--color-heading);
  line-height: 1.3;
  margin: 0;
  transition: color 0.3s ease;
}
.portfolio-row:hover .portfolio-row-title {
  color: var(--color-accent);
}

.portfolio-row-excerpt {
  font-size: 0.8rem;
  color: var(--color-paragraph);
  opacity: 0.85;
  line-height: 1.65;
  margin: 0;
  font-family: var(--font-ar-body);
  text-align: justify;
}

.portfolio-row-meta {
  display: flex;
  gap: 1.25rem;
  font-size: 0.725rem;
  color: var(--color-paragraph);
  opacity: 0.7;
  font-family: var(--font-ar-body);
}
.portfolio-row-meta i {
  color: var(--color-accent);
  margin-left: 4px;
}

.portfolio-row-desc .btn-view-project {
  margin-top: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.775rem;
  border-radius: var(--radius-12);
  gap: 6px;
}

@media (max-width: 991px) {
  .portfolio-row {
    gap: 1.75rem;
  }
}

@media (max-width: 850px) {
  .portfolio-list {
    gap: 1rem;
  }
  .portfolio-row, .portfolio-row:nth-child(even) {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .portfolio-row:nth-child(even) .portfolio-row-visual {
    order: 0;
  }
  .portfolio-row:nth-child(even) .portfolio-row-desc {
    order: 0;
  }
  .portfolio-row-title {
    font-size: 1.125rem;
  }
}

/* ------------------------------------------------
   Lightbox
------------------------------------------------ */
/* ------------------------------------------------
   Lightbox - Overhauled Split Screen
------------------------------------------------ */
.lightbox {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.85);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  opacity: 0;
  visibility: hidden;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.lightbox.open { opacity: 1; visibility: visible; }

.lightbox-inner {
  position: relative;
  background: rgba(30, 30, 31, 0.75);
  border: 1px solid rgba(232, 213, 183, 0.12);
  border-radius: var(--radius-20);
  overflow: hidden;
  max-width: 720px;
  width: 100%;
  box-shadow: var(--shadow-80);
  transform: scale(0.95) translateY(10px);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.lightbox.open .lightbox-inner { transform: scale(1) translateY(0); }

/* Details Column (Direct full-width layout) */
.lightbox-details {
  padding: 2.5rem 2.25rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-height: 85vh;
  overflow-y: auto;
}

/* Project Cover Image Hero Banner */
.lightbox-cover-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: var(--radius-14);
  overflow: hidden;
  border: 1px solid rgba(232, 213, 183, 0.12);
  box-shadow: var(--shadow-30);
  background: #000;
  cursor: pointer;
  flex-shrink: 0;
}

.lightbox-cover-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.lightbox-cover-wrap:hover img {
  transform: scale(1.04);
}

.lightbox-cover-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, 0.75) 0%, transparent 60%);
  opacity: 0;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 1.25rem;
  transition: opacity 0.3s ease;
}

.lightbox-cover-wrap:hover .lightbox-cover-overlay {
  opacity: 1;
}

.lightbox-cover-zoom-icon {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--color-accent);
  background: rgba(30, 30, 31, 0.85);
  border: 1px solid rgba(232, 213, 183, 0.2);
  padding: 6px 12px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  box-shadow: var(--shadow-30);
}

@media (max-width: 768px) {
  .lightbox-inner {
    max-width: 540px;
    margin: 0.5rem auto;
  }
  .lightbox-details {
    padding: 1.75rem 1.25rem;
    gap: 1.25rem;
    max-height: 80vh;
  }
}

/* ------------------------------------------------
   Zoom Overlay (Fullscreen Image Zoom)
   ------------------------------------------------ */
.zoom-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10, 10, 10, 0.96);
  z-index: 3000; /* Higher than Lightbox (2000) */
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  backdrop-filter: blur(25px);
  -webkit-backdrop-filter: blur(25px);
  padding: 2rem;
}

.zoom-overlay.open {
  opacity: 1;
  visibility: visible;
}

.zoom-wrapper {
  position: relative;
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.zoom-overlay img {
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border-radius: var(--radius-12);
  border: 1px solid rgba(232, 213, 183, 0.15);
  box-shadow: var(--shadow-80);
  transform: scale(0.95);
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.zoom-overlay.open img {
  transform: scale(1);
}

.zoom-caption {
  margin-top: 1rem;
  color: var(--color-heading);
  font-family: var(--font-ar-body);
  font-size: 0.9rem;
  font-weight: 500;
  background: rgba(30, 30, 31, 0.85);
  border: 1px solid rgba(232, 213, 183, 0.15);
  padding: 6px 16px;
  border-radius: 20px;
  box-shadow: var(--shadow-30);
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
}

.zoom-overlay.open .zoom-caption {
  opacity: 1;
  transform: translateY(0);
}

/* Close button for zoom overlay */
.zoom-close {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  width: 2.75rem;
  height: 2.75rem;
  background: rgba(30, 30, 31, 0.8);
  border-radius: 50%;
  color: var(--color-heading);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  cursor: pointer;
  transition: all 0.3s ease;
  border: 1px solid rgba(232, 213, 183, 0.15);
  z-index: 3010;
}

.zoom-close:hover {
  background: var(--color-accent);
  color: #000;
  border-color: var(--color-accent);
  transform: rotate(90deg);
}

@media (max-width: 580px) {
  .zoom-overlay {
    padding: 1rem;
  }
  .zoom-close {
    top: 1rem;
    left: 1rem;
    width: 2.25rem;
    height: 2.25rem;
    font-size: 1rem;
  }
}

.lightbox-header-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lightbox-cat-badge {
  align-self: flex-start;
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--color-accent);
  background: rgba(232, 213, 183, 0.1);
  border: 1px solid rgba(232, 213, 183, 0.2);
  padding: 4px 10px;
  border-radius: 12px;
  letter-spacing: 0.05em;
  font-family: var(--font-ar-body);
}
.lightbox-title {
  font-family: var(--font-ar);
  font-size: 1.625rem;
  font-weight: 600;
  color: var(--color-heading);
  line-height: 1.3;
  margin: 0;
}

/* Metadata Grid */
.lightbox-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.875rem;
  background: rgba(232, 213, 183, 0.03);
  border: 1px solid rgba(232, 213, 183, 0.08);
  border-radius: var(--radius-14);
  padding: 1rem;
}
.meta-item {
  display: flex;
  align-items: center;
  gap: 10px;
}
.meta-icon {
  width: 32px;
  height: 32px;
  background: rgba(232, 213, 183, 0.08);
  border: 1px solid rgba(232, 213, 183, 0.15);
  color: var(--color-accent);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}
.meta-label {
  display: block;
  font-size: 0.65rem;
  color: var(--color-paragraph);
  opacity: 0.6;
}
.meta-value {
  display: block;
  font-size: 0.775rem;
  font-weight: 500;
  color: var(--color-heading);
  font-family: var(--font-ar-body);
}

/* Concept Section */
.lightbox-concept-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-top: 1px solid rgba(232, 213, 183, 0.08);
  padding-top: 1.25rem;
}
.concept-title {
  font-family: var(--font-ar);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-accent);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}
.concept-title::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 12px;
  background: var(--color-accent);
  border-radius: 2px;
}
.lightbox-desc {
  font-size: 0.825rem;
  color: var(--color-paragraph);
  line-height: 1.8;
  margin: 0;
  font-family: var(--font-ar-body);
  text-align: justify;
}

/* Close Button Override */
.lightbox-close {
  position: absolute;
  top: 1rem;
  left: 1rem;
  width: 2.25rem;
  height: 2.25rem;
  background: rgba(30, 30, 31, 0.8);
  border-radius: 50%;
  color: var(--color-heading);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  border: 1px solid rgba(232, 213, 183, 0.15);
  z-index: 2010;
}
.lightbox-close:hover {
  background: var(--color-accent);
  color: #000;
  border-color: var(--color-accent);
}

/* Labeled Spaces Grid Gallery inside Lightbox */
.lightbox-spaces-gallery-section {
  border-top: 1px solid rgba(232, 213, 183, 0.08);
  padding-top: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.lightbox-spaces-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.space-gallery-card {
  background: rgba(30, 30, 31, 0.4);
  border: 1px solid rgba(232, 213, 183, 0.08);
  border-radius: var(--radius-12);
  overflow: hidden;
  cursor: pointer;
  transition: all 0.3s ease;
}
.space-gallery-card:hover {
  border-color: var(--color-accent);
  transform: translateY(-2px);
  box-shadow: var(--shadow-30);
}
.space-gallery-img-wrap {
  aspect-ratio: 16/10;
  overflow: hidden;
  background: #000;
}
.space-gallery-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.35s ease;
}
.space-gallery-card:hover .space-gallery-img-wrap img {
  transform: scale(1.06);
}
.space-gallery-info {
  padding: 8px 10px;
  text-align: center;
  border-top: 1px solid rgba(232, 213, 183, 0.05);
}
.space-gallery-name {
  font-size: 0.725rem;
  font-weight: 500;
  color: var(--color-paragraph);
  font-family: var(--font-ar-body);
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.space-gallery-card.active {
  border-color: var(--color-accent);
  background: rgba(232, 213, 183, 0.06);
  box-shadow: 0 0 10px rgba(232, 213, 183, 0.1);
}
.space-gallery-card.active .space-gallery-name {
  color: var(--color-accent);
}

@media (max-width: 768px) {
  .lightbox-spaces-grid {
    grid-template-columns: 1fr;
  }
}

/* ------------------------------------------------
   Contact â€” compact info items
------------------------------------------------ */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 580px;
  width: 100%;
  margin: 0 auto !important;
  gap: 1.25rem;
  align-items: start;
}

.contact-info-list { display: flex; flex-direction: column; gap: 0.75rem; }

.contact-info-item {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  background: var(--gradient-border);
  border-radius: var(--radius-12);
  padding: 0.875rem 1rem;
  position: relative;
  z-index: 0;
  min-width: 0; /* Enable grid items to shrink */
}
.contact-info-item > div {
  flex: 1;
  min-width: 0;
}
.contact-info-item::before {
  content: '';
  position: absolute;
  inset: 1px;
  background: var(--gradient-accent-soft);
  border-radius: inherit;
  z-index: -1;
}

.contact-info-label {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.6;
  margin-bottom: 2px;
  display: block;
}
.contact-info-value {
  font-size: 0.8125rem;
  color: var(--color-heading);
  font-weight: 500;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
a.contact-info-value { color: var(--color-heading); }

.contact-form { display: flex; flex-direction: column; gap: 1rem; }

.form-group { display: flex; flex-direction: column; gap: 5px; }

.form-label {
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-paragraph);
  opacity: 0.7;
}

.form-input, .form-textarea {
  background-color: transparent;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-14);
  box-shadow: none;
  color: var(--color-heading);
  font-size: 0.875rem;
  font-family: var(--font-ar-body);
  padding: 0.75rem 1.125rem;    /* slightly smaller than before */
  width: 100%;
  transition: border-color 0.3s;
  outline: none;
}
.form-input:focus, .form-textarea:focus {
  border-color: var(--color-accent);
  background-color: transparent;
}
.form-input::placeholder, .form-textarea::placeholder {
  color: var(--color-paragraph);
  opacity: 0.4;
}
.form-textarea { resize: vertical; min-height: 120px; }

.form-submit {
  align-self: flex-start;
}

/* ------------------------------------------------
   Scroll progress bar
------------------------------------------------ */

/* ------------------------------------------------
   GSAP reveal helpers
------------------------------------------------ */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  will-change: transform, opacity;
}

/* ------------------------------------------------
   Layout responsive
------------------------------------------------ */
@media (max-width: 1200px) {
  .page-wrapper { padding: 1.875rem 1rem; gap: 1.25rem; }
  .sidebar { width: 250px; }
}

/* ===== TABLET & MOBILE (< 991px) ===== */
@media (max-width: 991px) {
  /* Page layout */
  .page-wrapper {
    flex-direction: column;
    padding: 1.25rem 1.25rem 5.5rem;
    gap: 1.25rem;
    align-items: stretch;
  }

  /* Collapse navigation wrapper space on mobile/tablet since nav bar is fixed at bottom */
  .nav-wrapper {
    height: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Sidebar becomes a horizontal compact card â€” exactly like the demo */
  .sidebar { width: 100%; position: static; }

  .sidebar__additional-info {
    display: block;
    overflow: hidden;
    height: 0;
    opacity: 0;
    /* GSAP controls visibility â€” do NOT use display:none here */
  }
  .sidebar__additional-info-inner {
    padding: 0 1.25rem 1.25rem;
    min-height: 0;
  }
  /* Reset separation for drawing animation on mobile */
  .sidebar__additional-info .separation {
    width: 0;
    transition: none;
  }

  .sidebar .box-outer {
    padding: 0;
    overflow: hidden;
  }

  /* Hide the large desktop avatar above base-info */
  .avatar-box:not(.avatar-box--inline) { display: none; }

  /* Show the inline avatar inside base-info */
  .avatar-box--inline {
    display: block;
    width: 4.5rem;
    height: 4.5rem;
    border-radius: var(--radius-16);
    margin: 0;
  }

  /* Base info: horizontal row â€” avatar + info side by side */
  .sidebar__base-info {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    padding: 0.875rem 1.25rem 0.875rem 3.25rem;
    position: relative;
    cursor: pointer;
    user-select: none;
  }



  .sidebar__base-text { flex: 1; min-width: 0; text-align: right; }
  .sidebar__name { font-size: 1.0625rem; margin-bottom: 0.05rem; line-height: 1.2; }
  .sidebar__name-en { font-size: 0.7rem; margin: 0 0 0.3rem 0; line-height: 1.2; }
  .badge { font-size: 0.65rem; padding: 0.3rem 0.7rem; }

  /* Show contacts toggle btn â€” top left of sidebar */
  .sidebar__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    position: absolute;
    top: 0.625rem;
    left: 0.625rem;
    right: auto;
    border-radius: var(--radius-8);
    padding: 0.5rem 0.75rem;
    font-size: 0.68rem;
    z-index: 2;
  }

  /* Handled by 1200px grid slide media query */

  /* Details info: 2-column grid on tablet */
  .details-info {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 0;
  }
  .details-info__item { margin-bottom: 0; }

  /* Social: left-align on mobile (matches demo) */
  .social { text-align: right; margin-top: 0.75rem; }

  /* Separation spacing */
  .separation { margin: 0.875rem 0; }

  /* Main content: compact padding on mobile */
  .main-content .box-outer {
    padding: 1.25rem;
  }



  /* Contact info items grid on tablet */
  .contact-info-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
  }



  /* Language chips on one line (tablet) */
  .lang-chips {
    flex-wrap: nowrap;
    gap: 6px;
  }
  .lang-chip {
    padding: 0.25rem 0.5rem;
    font-size: 0.72rem;
    flex: 1;
    justify-content: center;
    white-space: nowrap;
  }
  .lang-level {
    font-size: 0.6rem;
  }
}

/* ===== SMALL MOBILE (< 580px) ===== */
@media (max-width: 580px) {
  .page-wrapper { padding: 1rem 1rem 5rem; gap: 1rem; }

  /* Sidebar base info tighter */
  .sidebar__base-info { padding: 0.875rem 1rem; padding-left: 3rem; gap: 0.75rem; }
  .sidebar__name { font-size: 0.9375rem; }
  .sidebar__btn span { display: none; }

  /* Box outer padding */
  .sidebar .box-outer { padding: 0; }
  .box-outer { padding: 0.9375rem; border-radius: var(--radius-16); }
  .main-content .box-outer { padding: 0.9375rem; }





  /* Typography */
  .title--h1 { font-size: 1.5rem; }
  .title--h2 { font-size: 1.125rem; }
  .title__separate { margin-bottom: 1.5rem; }
  .title__separate::before { height: 3px; bottom: -0.625rem; width: 1.875rem; }

  /* Details info: single col */
  .details-info { grid-template-columns: 1fr; }

  /* Contact list: single col on small mobile */
  .contact-info-list {
    grid-template-columns: minmax(0, 1fr);
  }

  /* Nav labels smaller */
  .nav__btn { font-size: 0.68rem; padding: 0 0.5rem; height: 1.875rem; }
  .nav-container {
    height: 3.1rem;
    border-radius: 24px;
    bottom: 12px;
    left: 0 !important;
    right: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: max-content;
    max-width: 95%;
    padding: 0 0.375rem;
  }

  /* Language chips wrap to prevent overflow */
  .lang-chips {
    flex-wrap: wrap;
    gap: 4px;
  }
  .lang-chip {
    padding: 0.25rem 0.375rem;
    font-size: 0.6875rem;
    flex: 1;
    justify-content: center;
    white-space: nowrap;
  }
  .lang-level {
    font-size: 0.58rem;
  }
}



/* ================================================
   Light Theme â€” Warm Beige
   Ø§Ù„Ø¨ÙŠØ¬ Ù‡Ùˆ Ø§Ù„Ø£Ø³Ø§Ø³
================================================ */
body.light-theme {
  --color-heading:     #1E1E1E;
  --color-paragraph:   #4A4A4A;
  --color-border:      #E6E1DA;
  --color-bg:          #FAF8F5;
  --color-surface-1:   #FFFFFF;
  --color-surface-2:   #F5F2EB;
  --color-surface-3:   #ECE7DD;

  --color-accent:      #B38F4D;
  --color-accent-2:    #917036;

  --gradient-accent:        linear-gradient(135deg, #C5A46E 0%, #9C7D46 100%);
  --gradient-accent-soft:   linear-gradient(135deg, rgba(197,164,110,0.06) 0%, rgba(156,125,70,0) 100%), #FFFFFF;
  --gradient-text:          linear-gradient(90deg, #B38F4D, #917036);
  --gradient-border:        linear-gradient(155deg, rgba(197,164,110,0.4) 0%, rgba(230,225,218,0.1) 100%);
  --gradient-border-gray:   linear-gradient(135deg, #E6E1DA 0%, rgba(230,225,218,0) 100%);
  --gradient-gray:          linear-gradient(137.84deg, #F9F7F4 2.69%, #ECE7DD 93.75%);
  --gradient-icon:          linear-gradient(135deg, rgba(197,164,110,0.12) 0%, rgba(156,125,70,0) 60%), #F5F2EB;
  --gradient-btn:           linear-gradient(135deg, rgba(255,255,255,0.8) 0%, rgba(245,242,235,0.2) 100%), #F5F2EB;

  --shadow-24: 0 8px 24px rgba(140, 130, 115, 0.06);
  --shadow-30: 0 12px 30px rgba(140, 130, 115, 0.08);
  --shadow-40: 0 16px 40px rgba(140, 130, 115, 0.09);
  --shadow-50: 0 20px 50px rgba(140, 130, 115, 0.07);
  --shadow-80: 0 30px 80px rgba(140, 130, 115, 0.12);

  --grid-color-major: rgba(179, 143, 77, 0.07);
  --grid-color-minor: rgba(179, 143, 77, 0.02);
  --grid-spotlight: rgba(179, 143, 77, 0.05);
}

/* ---- Layout & Cards ---- */
body.light-theme .box-outer {
  background-color: var(--color-surface-1);
  border-color: var(--color-border);
}
body.light-theme .box {
  background: var(--gradient-border);
}
body.light-theme .box::before {
  background: var(--gradient-accent-soft);
}
body.light-theme .box-inner {
  background: transparent;
  border: 1px solid var(--color-border);
}

/* ---- Navigation ---- */
body.light-theme .nav-container {
  background: var(--color-surface-3); /* #ECE7DD (darker beige) */
  border-color: var(--color-border); /* #E6E1DA */
  box-shadow: var(--shadow-24);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.light-theme .nav__btn {
  color: #57534E;
}
body.light-theme .nav__btn:hover {
  color: var(--color-accent);
}
body.light-theme .nav__btn.active {
  color: var(--color-accent) !important;
}
body.light-theme .nav-indicator {
  background: var(--color-surface-2); /* #F5F2EB (light beige) */
  border: 1px solid rgba(179, 143, 77, 0.15);
  box-shadow: 0 2px 8px rgba(140, 130, 115, 0.05);
}

/* ---- Sidebar ---- */
body.light-theme .avatar-box {
  background: var(--gradient-gray);
}
body.light-theme .badge {
  background: var(--color-surface-2);
  color: var(--color-paragraph);
}
body.light-theme .sidebar__btn {
  color: var(--color-accent);
}
body.light-theme .separation {
  background: var(--color-border);
}
body.light-theme .icon-box {
  background: var(--color-surface-3);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-24);
}
body.light-theme .icon-box i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
body.light-theme .social__link {
  color: var(--color-paragraph);
}
body.light-theme .social__link:hover {
  color: var(--color-accent);
  -webkit-text-fill-color: unset;
}

/* ---- Services (case-item) icon wrap ---- */
body.light-theme .case-item .case-item__icon-wrap {
  background: var(--color-surface-3);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-24);
}
body.light-theme .case-item .case-item__icon-wrap i {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---- Skills ---- */
body.light-theme .skill-tag {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  color: var(--color-paragraph);
}
body.light-theme .skill-tag::before {
  background: var(--color-surface-1);
}
body.light-theme .skill-tag:hover {
  background: var(--color-surface-3);
  border-color: rgba(168,120,0,0.3);
  color: var(--color-accent);
}
body.light-theme .skill-tag:hover::before {
  background: var(--color-surface-2);
}
body.light-theme .skill-progress-bar-bg {
  background: var(--color-surface-2);
}
body.light-theme .skill-progress-bar-fill {
  background: var(--gradient-accent);
  box-shadow: none;
}
body.light-theme .lang-chip {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  color: var(--color-heading);
}
body.light-theme .lang-chip::before {
  background: var(--color-surface-1);
}
body.light-theme .lang-chip-dot {
  background: var(--gradient-accent);
  box-shadow: none;
}

/* ---- Timeline ---- */
body.light-theme .timeline-dot {
  background: var(--gradient-accent);
  box-shadow: none;
}
body.light-theme .timeline-line {
  background: var(--color-border);
}
body.light-theme .timeline-period {
  background: var(--gradient-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---- Portfolio ---- */
body.light-theme .portfolio-row {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
}
body.light-theme .portfolio-row:hover {
  border-color: rgba(168,120,0,0.25);
  box-shadow: var(--shadow-40);
}
body.light-theme .portfolio-row-badge {
  background: rgba(168,120,0,0.1);
  color: var(--color-accent);
  border: 1px solid rgba(168,120,0,0.2);
}
body.light-theme .filter-btn {
  background: var(--color-surface-2);
  color: var(--color-paragraph);
  border: 1px solid var(--color-border);
}
body.light-theme .filter-btn:hover {
  color: var(--color-accent);
  background: var(--color-surface-3);
  border-color: rgba(168,120,0,0.25);
}
body.light-theme .filter-btn.active {
  color: var(--color-accent);
  background: rgba(168,120,0,0.08);
  border-color: rgba(168,120,0,0.2);
}

/* ---- Contact Form ---- */
body.light-theme .form-input,
body.light-theme .form-textarea {
  background: var(--color-surface-2);
  border-color: var(--color-border);
  color: var(--color-heading);
}
body.light-theme .form-input::placeholder,
body.light-theme .form-textarea::placeholder {
  color: var(--color-paragraph);
  opacity: 0.55;
}
body.light-theme .form-input:focus,
body.light-theme .form-textarea:focus {
  border-color: rgba(168,120,0,0.5);
  background: var(--color-surface-1);
  box-shadow: 0 0 0 3px rgba(168,120,0,0.08);
}
body.light-theme .form-label {
  color: var(--color-heading);
}

/* ---- Buttons ---- */
body.light-theme .btn {
  color: var(--color-accent);
}
body.light-theme .btn:hover {
  color: var(--color-accent);
}

/* ---- Nav Utils ---- */
body.light-theme .nav-utils__divider {
  background: rgba(179, 143, 77, 0.2);
}
body.light-theme .nav-util-btn {
  color: #57534E;
}
body.light-theme .nav-util-btn:hover {
  color: var(--color-accent);
  background: var(--color-surface-2); /* #F5F2EB */
  border-color: rgba(179, 143, 77, 0.15);
}


/* ---- Mobile nav (glass effect on light) ---- */
@media (max-width: 991px) {
  body.light-theme .nav-container {
    background: rgba(236, 231, 221, 0.9); /* Translucent darker beige #ECE7DD */
    border-color: rgba(179, 143, 77, 0.18);
    box-shadow: 0 8px 32px rgba(140, 130, 115, 0.08);
  }
}

/* ---- Smooth theme transition ---- */
body {
  transition: background-color 0.35s ease, color 0.35s ease;
}
.box-outer, .box, .box-inner, .case-item, .lang-chip, .timeline-dot,
.nav-container, .badge, .icon-box, .filter-btn, .skill-progress-bar-bg,
.skill-tag, .form-input, .form-textarea, .separation, .portfolio-row,
.nav-util-btn {
  transition: background 0.35s ease, background-color 0.35s ease,
              border-color 0.35s ease, box-shadow 0.35s ease, color 0.35s ease;
}


/* ================================================
   English / LTR Mode
================================================ */
html[lang="en"] body {
  font-family: var(--font-en);
  font-weight: 400;
  direction: ltr;
}

/* Headings in English */
html[lang="en"] h1,
html[lang="en"] h2,
html[lang="en"] h3,
html[lang="en"] h4 {
  font-family: var(--font-en);
  font-weight: 600;
}

/* Title underline stays on the left in LTR */
html[lang="en"] .title__separate::before {
  right: auto;
  left: 0;
}

/* Scroll line stays left-to-right (default) */
html[lang="en"] .scroll-line {
  left: 0;
  right: auto;
}

/* Nav indicator recalculates automatically via JS */

/* Page layout flip */
html[lang="en"] .page-wrapper {
  direction: ltr;
}

/* Sidebar layout flip */
html[lang="en"] .icon-box {
  margin-left: 0;
  margin-right: 0.75rem;
}

html[lang="en"] .details-info__item {
  flex-direction: row;
}

/* Timeline */
html[lang="en"] .timeline-item {
  flex-direction: row;
}
html[lang="en"] .timeline {
  padding-left: 0.75rem;
}

/* Sidebar name-en hidden in Arabic, show in English */
html[lang="en"] .sidebar__name-en {
  display: none; /* already shown in name field */
}

/* Sidebar button: flip icon, position on the right in LTR, and adjust border radii */
html[lang="en"] .sidebar__btn {
  left: auto !important;
  right: 0 !important;
}



@media (max-width: 991px) {
  html[lang="en"] .sidebar__btn {
    left: auto !important;
    right: 0.625rem !important;
    border-radius: var(--radius-8) !important;
  }
  html[lang="en"] .sidebar__base-info {
    padding-left: 1.25rem !important;
    padding-right: 3.25rem !important;
  }
  html[lang="en"] .sidebar__base-text {
    text-align: left !important;
  }
}

@media (max-width: 580px) {
  html[lang="en"] .sidebar__base-info {
    padding-left: 1rem !important;
    padding-right: 3rem !important;
  }
}

/* Mobile nav stays centered */
@media (max-width: 991px) {
  html[lang="en"] .nav-container {
    direction: ltr;
  }
}

/* Smooth language transition on text */
h1, h2, h3, h4, p, span, li, label, button, a {
  transition: font-family 0s; /* instant â€” no transition on font */
}

/* ------------------------------------------------
   Background Blueprint System (Grid, Glow, Shapes)
------------------------------------------------ */
.blueprint-bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -9999;
  background-color: var(--color-bg);
  overflow: hidden;
  transition: background-color 0.35s ease;
}

.blueprint-grid {
  position: absolute;
  inset: 0;
  background-image: 
    linear-gradient(var(--grid-color-major) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-color-major) 1px, transparent 1px),
    linear-gradient(var(--grid-color-minor) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-color-minor) 1px, transparent 1px);
  background-size: 
    40px 40px,
    40px 40px,
    10px 10px,
    10px 10px;
  background-position: center center;
  background-attachment: fixed;
  opacity: 0.85;
}

.blueprint-glow {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle 450px at var(--mouse-x, 50%) var(--mouse-y, 50%), var(--grid-spotlight) 0%, transparent 100%);
  transition: opacity 0.5s ease;
}

.blueprint-shapes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.blueprint-shape {
  position: absolute;
  width: 120px;
  height: 120px;
  opacity: 0.16;
  color: var(--color-accent);
  pointer-events: none;
  user-select: none;
  transition: color 0.35s ease, opacity 0.35s ease;
  will-change: transform;
}

/* Desktop positioning */
.blueprint-shape-1 {
  top: 12%;
  left: 5%;
  animation: float-rotate-1 45s infinite linear;
}

.blueprint-shape-2 {
  top: 55%;
  right: 5%;
  animation: float-rotate-2 40s infinite linear;
}

.blueprint-shape-3 {
  top: 30%;
  right: 4%;
  animation: float-rotate-3 50s infinite linear;
}

.blueprint-shape-4 {
  bottom: 12%;
  left: 6%;
  animation: float-rotate-2 55s infinite linear;
}

/* Mobile positioning (keeping them at the extreme edges so they show) */
@media (max-width: 991px) {
  .blueprint-shape {
    width: 90px;
    height: 90px;
  }
  .blueprint-shape-1 {
    top: 8%;
    left: -20px;
  }
  .blueprint-shape-2 {
    top: 48%;
    right: -20px;
  }
  .blueprint-shape-3 {
    top: 25%;
    right: -20px;
  }
  .blueprint-shape-4 {
    bottom: 15%;
    left: -20px;
  }
}

/* Animations */
@keyframes float-rotate-1 {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  33% {
    transform: translate(20px, -25px) rotate(120deg);
  }
  66% {
    transform: translate(-10px, 15px) rotate(240deg);
  }
  100% {
    transform: translate(0, 0) rotate(360deg);
  }
}

@keyframes float-rotate-2 {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  33% {
    transform: translate(-15px, 20px) rotate(-120deg);
  }
  66% {
    transform: translate(25px, -10px) rotate(-240deg);
  }
  100% {
    transform: translate(0, 0) rotate(-360deg);
  }
}

@keyframes float-rotate-3 {
  0% {
    transform: translate(0, 0) rotate(0deg);
  }
  50% {
    transform: translate(15px, 20px) rotate(180deg);
  }
  100% {
    transform: translate(0, 0) rotate(360deg);
  }
}

/* Set a warm sepia drafting ink color and higher opacity for shapes in light theme for readability */
body.light-theme .blueprint-shape {
  color: #9C8C78;
  opacity: 0.32;
}

/* =================================================
   iPad & Tablet Layout Optimizations (768px - 1024px)
   ================================================= */

/* General page layout, wrapper padding and spacing on tablet screens */
@media (min-width: 768px) and (max-width: 991px) {
  .page-wrapper {
    padding: 2.25rem 2rem 6.5rem;
    gap: 1.75rem;
  }
  .avatar-box--inline {
    width: 5.5rem;
    height: 5.5rem;
    border-radius: var(--radius-18);
  }
  .sidebar__name {
    font-size: 1.25rem;
    margin-bottom: 0.05rem;
    line-height: 1.2;
  }
  .sidebar__name-en {
    font-size: 0.75rem;
  }
  .badge {
    font-size: 0.7rem;
  }
  .details-info {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}

/* Stacking threshold for columns and list items on smaller viewports */
@media (max-width: 849px) {
  .resume-cols {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* Ensure resume columns and contact grid are side-by-side on tablet sizes and desktop-medium */
@media (min-width: 850px) {
  .resume-cols {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
  }
}

/* Custom WhatsApp button styling */
.btn-whatsapp {
  background: rgba(37, 211, 102, 0.15) !important;
  border: 1px solid rgba(37, 211, 102, 0.4) !important;
  color: #25D366 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  border-radius: var(--radius-12) !important;
  text-decoration: none;
  font-weight: 500;
  font-size: 1.0625rem;
  padding: 1.125rem 2.25rem;
  transition: var(--transition);
  box-shadow: var(--shadow-24);
  width: 100%;
}
.btn-whatsapp::before {
  display: none !important; /* disable default button background gradient */
}
.btn-whatsapp:hover {
  background: rgba(37, 211, 102, 0.25) !important;
  border-color: rgba(37, 211, 102, 0.6) !important;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.2);
  transform: translateY(-2px);
}

