/* ---------------------------------------------------------
   Site-specific overrides for Georgios Georgiou CV.
   Kept separate from the theme's styles.css so theme updates
   can be dropped in without losing these changes.
--------------------------------------------------------- */

/* Header text logo (replaces the theme's "D" icon glyph) */
.logo-text {
  font-weight: 700;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--white);
  white-space: nowrap;
}
.logo-text .text-primary { margin-left: 1px; }

/* Hero without a portrait: let the big name sit in normal flow */
.section-hero-v2 .image-wrap.no-photo { min-height: 0; }
.section-hero-v2 .image-wrap.no-photo .img-item-2 {
  position: relative;
  inset: auto;
  transform: none;
  width: 100%;
}
.section-hero-v2 .image-wrap.no-photo .img-item-2 img { width: 100%; height: auto; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
/* The <Georgios/> art has its own green accent, so drop the theme's green "cursor" bar */
.section-hero-v2 .image-wrap.no-photo .img-item-2::after { display: none; }
/* Header email is too long for the header column at any width (outlook address).
   It is still shown in the Contact section, the mobile menu and the CV. */
.tf-header .header-contact > a { display: none; }
/* Keep the big name clear of the 4-line menu at the top right (menu is hidden on mobile) */
@media (min-width: 768px) {
  .section-hero-v2 .image-wrap.no-photo { margin-top: 72px; }
}

/* Tech stack circles: longer lists than the theme's demo copy */
.wg-tech-v2 .tech-desc.stack-list { line-height: 1.6; max-width: 300px; margin-left: auto; margin-right: auto; }

/* Experience accordion: meta column instead of an image, wrapping bullets */
.section-experience .s-header { margin-bottom: 40px; }
.service-accordion_item .accordion-action h5 { word-break: break-word; }
/* Theme pulls the title 24px down over its image; with a text box that would overlap */
.section-experience .service-accordion_item .accordion-action { margin-bottom: 16px; }
.section-experience .service-accordion_item .accordion-action.collapsed { margin-bottom: 0; }
.exp-meta { align-self: flex-start; }
.work-image picture { display: contents; }
.exp-meta {
  flex: 0 0 320px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 28px;
  border: 1px solid var(--white-16);
}
.exp-meta .exp-role { color: var(--white); }
.exp-meta .exp-years { color: var(--primary); }
.exp-meta .exp-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.exp-meta .exp-tags span {
  border: 1px solid var(--white-16);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 13px;
  color: var(--white-64);
}
.service-accordion_item .content-right.exp-bullets { white-space: normal; flex: 1 1 auto; }
.exp-bullets .tf-list li { line-height: 1.55; }
@media (max-width: 991px) {
  .service-accordion_item .accordion-content { flex-wrap: wrap; }
  .exp-meta { flex: 1 1 100%; }
}

/* Education list (static, replaces the auto-scrolling award ticker) */
.edu-list { display: grid; gap: 20px; }
.edu-list li { display: flex; flex-direction: column; gap: 4px; }
.edu-list .edu-name { color: var(--black); }
.edu-list .edu-note { color: var(--black-64); }

/* Contact block (replaces the theme form, which has no backend) */
.contact-main { text-align: center; display: grid; gap: 40px; justify-items: center; }
.contact-email { color: var(--white); word-break: normal; overflow-wrap: anywhere; }
.contact-email:hover { color: var(--primary); }
.contact-links { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* Footer name art */
.tf-footer .img-agency img { width: 100%; height: auto; opacity: 0.9; }

/* Side-project cards: short description under the title, readable over the cover art */
.wg-work .work-head { display: flex; flex-direction: column; gap: 12px; max-width: 480px; }
.wg-work .work-desc { color: var(--white-64); line-height: 1.5; margin: 0; font-size: 16px; }
.wg-work .work-content {
  background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 45%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.7) 100%);
}
@media (max-width: 767px) {
  .wg-work .work-image img { min-height: 560px; }
  .wg-work .work_bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
  .wg-work .work_top { flex-direction: column; gap: 16px; }
  .wg-work .work_top .tf-list { display: none; }   /* type is already in the description on phones */
  .wg-work .work-desc { font-size: 14px; }
}

/* ---------- NumberSequence page ---------- */
.page-numbersequence .tf-header { position: relative; }
.ns-title { padding-top: 40px; }
.ns-title .ns-icon { width: 112px; height: 112px; border-radius: 26px; margin-bottom: 28px; box-shadow: 0 0 0 1px var(--white-16); }
.ns-title .page-title { margin-bottom: 12px; }
.ns-tagline { color: var(--white-64); margin-bottom: 24px; }
.ns-title .breadcrumbs { margin-bottom: 36px; }
.ns-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

.ns-shot { display: block; position: relative; overflow: hidden; border: 1px solid var(--white-16); border-radius: 12px; }
.ns-shot img { width: 100%; height: auto; display: block; transition: transform .5s ease; }
.ns-shot:hover img { transform: scale(1.02); }
.ns-shot .ns-cap { position: absolute; left: 16px; bottom: 14px; color: var(--white);
  background: rgba(0,0,0,0.6); padding: 6px 10px; border-radius: 6px; }

.ns-facts { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin-top: 24px;
  background: var(--white-16); border: 1px solid var(--white-16); }
.ns-facts li { background: #000; padding: 20px; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 767px) { .ns-facts { grid-template-columns: repeat(2, 1fr); } .ns-facts li:last-child { grid-column: span 2; } }

.ns-section { border-top: 1px solid var(--white-16); }
.ns-h { margin-bottom: 40px; }
.ns-steps { display: grid; gap: 20px; margin-top: 40px; }
.ns-steps li { display: flex; gap: 20px; align-items: baseline; padding-bottom: 20px; border-bottom: 1px solid var(--white-16); }
.ns-num { color: var(--primary); font-weight: 600; font-variant-numeric: tabular-nums; min-width: 32px; }

.ns-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 767px) { .ns-gallery { grid-template-columns: 1fr; } }

.ns-lead { margin-bottom: 24px; }
.ns-list strong { color: var(--white); font-weight: 600; }
.ns-list li { line-height: 1.6; }
.ns-formula { margin-top: 40px; padding: 28px; border: 1px solid var(--white-16); border-left: 3px solid var(--primary); display: grid; gap: 10px; }

.ns-build { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ns-build-item { padding: 28px; border: 1px solid var(--white-16); display: flex; flex-direction: column; gap: 16px; }
.ns-build-item li { line-height: 1.55; }
@media (max-width: 991px) { .ns-build { grid-template-columns: 1fr; } }

.ns-cta { border-top: 1px solid var(--white-16); }
.ns-cta h2 { margin-bottom: 32px; }

/* RevXBot card: two dashboard screenshots crossfading */
.work-slides { position: relative; }
.work-slides .slide-2 { position: absolute; inset: 0; display: block; }
.work-slides .slide-2 img { width: 100%; height: 100%; object-fit: cover; }
.work-slides .slide-2 { animation: workSlideFade 10s ease-in-out infinite; }
@keyframes workSlideFade {
  0%, 40%   { opacity: 0; }
  50%, 90%  { opacity: 1; }
  100%      { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .work-slides .slide-2 { animation: none; opacity: 0; } }
