/* ==========================================================================
   Concept Media — Global layout: header, footer, section marks, scene
   indicator, small shared pieces. Ships to WordPress (header.php/footer.php).
   ========================================================================== */

.logo { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 1014 / 267; fill: currentColor; }

.btn--sm { min-block-size: 40px; padding-inline: var(--space-5); font-size: 13px; }
.btn__icon { inline-size: 18px; block-size: 18px; flex: none; }

/* Internal production notes: hidden from the public interface, shown only in
   reviewer mode (?review=1 in the prototype; editors-only in WordPress). */
.review-only, .tbc { display: none !important; }
.is-review .review-only { display: revert !important; }
.is-review .tbc { display: inline-block !important; }

/* "To be confirmed" marker for unverified placeholder content */
.tbc {
  display: inline-block; vertical-align: middle;
  margin-inline-start: var(--space-2);
  padding: 1px 8px; border-radius: var(--radius-pill);
  border: 1px dashed rgba(255, 92, 0, 0.6);
  color: var(--cm-orange-glow);
  font-family: var(--font-latin); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  line-height: 1.6;
}

/* ---------- Section mark: "01 — The agency" ---------- */
.section-mark { display: flex; align-items: baseline; gap: var(--space-4); }
.section-mark__n {
  font-family: var(--font-latin); font-size: var(--text-label); font-weight: 500;
  color: var(--color-accent); font-variant-numeric: tabular-nums; letter-spacing: 0.1em;
}
.section-mark__n::after { content: ""; display: inline-block; inline-size: 2.5rem; block-size: 1px; background: currentColor; vertical-align: middle; margin-inline-start: var(--space-3); opacity: 0.6; }
.section-mark .t-label { margin: 0; }

/* ---------- Header ---------- */
.site-header {
  position: fixed; inset-block-start: 0; inset-inline: 0; z-index: var(--z-header);
  transition: transform var(--dur-ui) var(--ease-in-out), background-color var(--dur-ui) var(--ease-standard);
}
.site-header__inner {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  block-size: var(--header-h);
  max-inline-size: var(--page-max); margin-inline: auto; padding-inline: var(--page-gutter);
}
.site-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(4, 4, 4, 0.9);
  backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-block-end: var(--border-hair);
  opacity: 0; transition: opacity var(--dur-ui) var(--ease-standard);
}
.site-header.is-solid::before { opacity: 1; }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header:focus-within { transform: none; }
.site-header__logo { inline-size: clamp(112px, 8vw, 140px); color: var(--cm-white); justify-self: start; }

.site-nav ul { display: flex; gap: clamp(1.5rem, 2.6vw, 3rem); }
.site-nav a {
  position: relative; display: inline-block; padding-block: var(--space-2);
  font-size: 14px; font-weight: 500; letter-spacing: 0.01em; text-decoration: none;
  color: var(--cm-ink-200); transition: color var(--dur-micro) var(--ease-standard);
}
.site-nav a::after {
  content: ""; position: absolute; inset-inline-start: 50%; inset-block-end: -2px;
  inline-size: 4px; block-size: 4px; border-radius: 50%; background: var(--cm-orange);
  transform: translateX(-50%) scale(0); transition: transform var(--dur-ui) var(--ease-out);
}
.site-nav a:hover, .site-nav a[aria-current="true"], .site-nav a[aria-current="page"] { color: var(--cm-white); }
.site-nav a[aria-current="true"]::after, .site-nav a[aria-current="page"]::after { transform: translateX(-50%) scale(1); }

.site-header__end { justify-self: end; display: flex; align-items: center; gap: var(--space-5); }
/* Five menu items: keep clear of the language switch and CTA on small desktops */
@media (min-width: 900px) and (max-width: 1199px) {
  .site-nav ul { gap: 1.1rem; }
  .site-header__end { gap: var(--space-4); }
}
.lang-switch {
  font-family: var(--font-arabic); font-size: 15px; font-weight: 500; text-decoration: none;
  color: var(--cm-ink-200); padding: var(--space-2);
}
.lang-switch:hover { color: var(--cm-white); }
.lang-switch[aria-disabled="true"] { cursor: not-allowed; opacity: 0.55; }

/* ---------- Mobile menu (<900px) ----------
   The primary <nav> itself becomes a full-screen "stage" that rises like the
   hero curtain. Closed = visibility:hidden (out of the tab order); open =
   html.is-menu-open (set by menu.js, which also makes the page behind inert).
   Desktop never sees the toggle or the extra block. */
.menu-toggle, .site-nav__extra { display: none; }

@media (max-width: 899px) {
  .site-header__inner { grid-template-columns: 1fr auto; }
  .site-header__logo, .site-header__end { position: relative; z-index: 2; }
  .site-header__end { gap: var(--space-3); }
  .site-header__end > .lang-switch { display: none; }   /* lives in the menu on small screens */

  .menu-toggle {
    position: relative; display: inline-grid; place-items: center;
    inline-size: 44px; block-size: 44px; padding: 0;
    background: transparent; color: var(--cm-white);
    border: 1px solid var(--color-line-strong); border-radius: var(--radius-pill);
    -webkit-tap-highlight-color: transparent;
    transition: border-color var(--dur-micro) var(--ease-standard), background-color var(--dur-micro) var(--ease-standard);
  }
  .menu-toggle:hover { border-color: var(--cm-white); }
  .menu-toggle__icon, .menu-toggle__icon::before { display: block; inline-size: 18px; block-size: 1.5px; background: currentColor; border-radius: 1px; }
  .menu-toggle__icon { position: relative; transform: translateY(-3.5px); transition: transform var(--dur-ui) var(--ease-out); }
  .menu-toggle__icon::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 7px; inline-size: 12px; transition: transform var(--dur-ui) var(--ease-out), inline-size var(--dur-ui) var(--ease-out); }
  .is-menu-open .menu-toggle { border-color: var(--cm-orange); }
  .is-menu-open .menu-toggle__icon { transform: rotate(45deg); }
  .is-menu-open .menu-toggle__icon::before { inline-size: 18px; transform: translateY(-7px) rotate(-90deg); }

  .site-nav {
    position: fixed; inset: 0; z-index: 1;
    display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-8);
    padding: calc(var(--header-h) + var(--space-7)) var(--page-gutter) calc(var(--space-7) + env(safe-area-inset-bottom, 0px));
    background: var(--cm-black);
    overflow-y: auto; overscroll-behavior: contain;
    visibility: hidden;
    clip-path: inset(0 0 100% 0);
    transition: clip-path var(--dur-reveal) var(--ease-curtain), visibility 0s linear var(--dur-reveal);
  }
  .site-nav::before {   /* ember rising from the stage floor, as in the hero */
    content: ""; position: absolute; inset: auto 0 0 0; block-size: 60%; z-index: -1; pointer-events: none;
    background: radial-gradient(90% 80% at 20% 100%, rgba(255, 92, 0, 0.3), rgba(90, 31, 0, 0.14) 45%, rgba(4, 4, 4, 0) 75%);
  }
  [dir="rtl"] .site-nav::before { background: radial-gradient(90% 80% at 80% 100%, rgba(255, 92, 0, 0.3), rgba(90, 31, 0, 0.14) 45%, rgba(4, 4, 4, 0) 75%); }
  .is-menu-open .site-nav { visibility: visible; clip-path: inset(0 0 0 0); transition: clip-path var(--dur-reveal) var(--ease-curtain); }
  .is-menu-open .site-header { transform: none; }
  html.is-menu-open { overflow: hidden; }

  .site-nav ul { flex-direction: column; gap: 0; counter-reset: menu; }
  .site-nav li { border-block-end: var(--border-hair); }
  .site-nav li:first-child { border-block-start: var(--border-hair); }
  .site-nav li > a {
    display: flex; align-items: baseline; gap: var(--space-4);
    padding-block: var(--space-4);
    font-size: clamp(2.25rem, 11vw, 3.5rem); font-weight: 600; line-height: 1.05; letter-spacing: -0.04em;
    color: var(--cm-white);
  }
  :lang(ar) .site-nav li > a { letter-spacing: 0; line-height: 1.35; }
  .site-nav li > a::before {
    counter-increment: menu; content: counter(menu, decimal-leading-zero);
    min-inline-size: 2ch; font-family: var(--font-latin); font-size: 13px; font-weight: 500; letter-spacing: 0.1em; color: var(--cm-orange);
  }
  .site-nav li > a::after { position: static; flex: none; align-self: center; margin-inline-start: auto; inline-size: 8px; block-size: 8px; transform: scale(0); }
  .site-nav li > a[aria-current="true"]::after, .site-nav li > a[aria-current="page"]::after { transform: scale(1); }

  .site-nav__extra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); }
  /* Undo the desktop .site-nav a link styling for the two extra controls */
  .site-nav__extra a::after { content: none; }
  .site-nav__extra .btn { display: inline-flex; flex: 1 1 12rem; justify-content: center; padding-block: 0; font-size: var(--text-small); color: var(--btn-fg); }
  :lang(ar) .site-nav__extra .btn { font-size: 1rem; }
  .site-nav__extra .lang-switch { min-block-size: 44px; display: inline-flex; align-items: center; padding: var(--space-2); font-size: 17px; color: var(--cm-ink-200); }

  /* Links rise into place once the curtain is up */
  @media (prefers-reduced-motion: no-preference) {
    .site-nav li, .site-nav__extra { opacity: 0; transform: translateY(18px); transition: opacity var(--dur-ui) var(--ease-standard), transform var(--dur-ui) var(--ease-out); }
    .is-menu-open .site-nav li, .is-menu-open .site-nav__extra { opacity: 1; transform: none; transition-duration: var(--dur-reveal); }
    .is-menu-open .site-nav li:nth-child(1) { transition-delay: 160ms; }
    .is-menu-open .site-nav li:nth-child(2) { transition-delay: 210ms; }
    .is-menu-open .site-nav li:nth-child(3) { transition-delay: 260ms; }
    .is-menu-open .site-nav li:nth-child(4) { transition-delay: 310ms; }
    .is-menu-open .site-nav li:nth-child(5) { transition-delay: 360ms; }
    .is-menu-open .site-nav__extra { transition-delay: 430ms; }
  }
  @media (prefers-reduced-motion: reduce) {
    .site-nav, .is-menu-open .site-nav { transition: none; }
    .menu-toggle__icon, .menu-toggle__icon::before { transition: none; }
  }
}
/* Smallest phones: logo + menu only; "Start a project" moves into the menu */
@media (max-width: 374px) { .site-header__end > .btn { display: none; } }

/* ---------- Footer ---------- */
.site-footer { position: relative; overflow: hidden; padding-block-start: var(--space-10); background: var(--cm-black); border-block-start: var(--border-hair); }
.site-footer__top { display: grid; gap: var(--space-8); align-items: start; }
@media (min-width: 900px) { .site-footer__top { grid-template-columns: 1.4fr 1fr; } }
.site-footer__line { font-size: var(--text-h2); line-height: 1.05; letter-spacing: var(--tracking-heading); display: grid; justify-items: start; }
.site-footer__line .t-thin { color: var(--cm-ink-300); }
.site-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.site-footer__nav ul { display: grid; gap: var(--space-3); align-content: start; }
.site-footer__nav a { font-size: var(--text-lead); font-weight: 300; }
.site-footer__nav .tbc { font-size: 9px; }
.site-footer__word {
  color: var(--cm-white);
  padding-inline: var(--page-gutter);
  margin-block: var(--space-10) var(--space-6);
  max-inline-size: var(--page-max); margin-inline: auto;
}
/* Wordmark construction (logo-formation.js): the logo keeps its place in the layout
   and is only transparent until the construction overlay hands back to it. */
.site-footer__word.is-forming .logo { opacity: 0; }
.logo-formation { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; overflow: visible; pointer-events: none; }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); padding-block: var(--space-6); border-block-start: var(--border-hair); }

/* ---------- Scene indicator ---------- */
.scene {
  position: fixed; inset-block-end: var(--space-6); inset-inline-start: var(--page-gutter); z-index: var(--z-raised);
  display: flex; align-items: center; gap: var(--space-3);
  font-size: 11px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--cm-ink-300); mix-blend-mode: difference;
  opacity: 0; transition: opacity var(--dur-ui) var(--ease-standard);
  pointer-events: none;
}
.scene.is-visible { opacity: 1; }
.scene__bar { position: relative; inline-size: 56px; block-size: 1px; background: rgba(255, 255, 255, 0.25); overflow: hidden; }
.scene__fill { position: absolute; inset: 0; background: var(--cm-white); transform-origin: 0 50%; transform: scaleX(0); }
[dir="rtl"] .scene__fill { transform-origin: 100% 50%; }
@media (max-width: 899px) { .scene { display: none; } }
