    /* -- Floating Action Button v2 (glow-pulse, 72/64px, badge) -- */
    /* Badge placeholder (hidden by default, for future AI-chat count) */
/* About page responsive — mobile only, desktop not touched */
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
/*# sourceURL=global-styles-inline-css */
    
/*# sourceURL=uaeprop-interactions-inline-css */
/* Contact page: ITI phone flag selector dark-mode override */
    /* input.is-invalid highlight */

    /* Contact page responsive — mobile only */
@font-face{ font-family:Fraunces;font-style:normal;font-weight:300 700;font-display:swap;src:url('/fonts/fraunces-latin.woff2') format('woff2'); }
@font-face{ font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-sans-400-latin.woff2') format('woff2'); }
@font-face{ font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/ibm-plex-sans-500-latin.woff2') format('woff2'); }
@font-face{ font-family:"IBM Plex Sans";font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/ibm-plex-sans-700-latin.woff2') format('woff2'); }
@font-face{ font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/jetbrains-mono-500-latin.woff2') format('woff2'); }
.up-briefing-page { font-family:'IBM Plex Sans',sans-serif; }

.up-briefing-hero { background:var(--wp--preset--color--bg-dark); color:var(--wp--preset--color--cream); padding:80px max(80px, calc((100% - 1280px) / 2)) 72px; }
/* 24.07: padding was a flat 80px left/right — /insights/'s .up-ins-header uses the responsive
   rail-centering max(80px, (100%-1280px)/2) pattern instead, so this hero drifted off the
   1280px rail on viewports wider than 1440px while every other page stayed centred. */
.up-briefing-hero .up-eyebrow { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:500; letter-spacing:1.6px; text-transform:uppercase; color:rgba(247,237,217,0.65); display:block; margin-bottom:20px; }
.up-briefing-hero h1 { font-family:'Fraunces',serif; font-size:clamp(36px,5vw,56px); font-weight:400; line-height:1.1; margin:0 0 20px; color:var(--wp--preset--color--cream); }
.up-briefing-hero .up-sub { font-size:17px; line-height:1.65; color:rgba(247,237,217,0.85); max-width:985px; margin:0; }
/* 24.07: was max-width:640px — /insights/'s equivalent .up-ins-subhead uses 985px; this text
   was wrapping far narrower than the site's canonical hero-subtitle width. */

.up-briefing-grid-section { padding:64px 0 80px; background:var(--wp--preset--color--bg-light); }
/* .t2-section-inner token (max-width:1280px + padding:0 80px) applied via interactions.css */
.up-briefing-grid-inner { max-width:1280px; margin:0 auto; padding-left:80px; padding-right:80px;  }

/* Fluid card grid — matches .uaeprop-prop-grid (properties catalog) auto-fill mechanism */
.up-briefing-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:24px; }

/* 30.07: .up-briefing-card* rules removed — the grid now renders real
   <ArticleCard/> components (.up-desk__card* in src/styles/global.css,
   same component /insights/ + FromTheDesk.astro + DeveloperHub.astro use)
   instead of a hand-rolled parallel card. This was the structural fix for
   the title font-size/line-clamp/margin, excerpt font-size/color, and
   kicker color/letter-spacing drift from the /insights/ template — see
   src/lib/weekly-briefing.ts::splitWeeklyBriefingBody(). */

.up-briefing-empty { padding:80px; text-align:center; }
.up-briefing-empty p { font-family:'Fraunces',serif; font-size:24px; font-weight:400; color:var(--wp--preset--color--bg-dark); }

/* .up-briefing-grid is already fluid (auto-fill/minmax) at all widths — no manual column overrides, matching .uaeprop-prop-grid */
/* Mobile design pass — 2026-08-18 (mobile canon 390/430/768). Existing 700px tier already
   handled side padding correctly; this adds the missing pieces: vertical rhythm compression
   (canon: desktop's 80-120px section rhythm → ~48-64px mobile) and card-gap compression
   (canon: 16px mobile, was inheriting desktop's 24px at every width). */
/* 961-1439px tablet tier (25.08 sweep — Class B, missing-tablet-tier bug pattern per
   wiki/synthesis/2026-08-25_uaeprop_tablet_padding_bug_patterns.md): without this, the
   rail stayed at desktop's 80px all the way down to 769px. 48px matches the sitewide
   tablet-padding canon; vertical values reused directly from this file's own <=768px
   tier below (not invented). */
@media (min-width:961px) and (max-width:1439px) {
  .up-briefing-hero,.up-briefing-grid-inner { padding-left:48px; padding-right:48px; }
  .up-briefing-hero { padding-top:56px; padding-bottom:48px; }
  .up-briefing-grid-section { padding:48px 0 56px; }
}
/* 769-960px gap fix (25.08): the 961-1439px tier above and the <=768px tier below both
   stopped short of this range, leaving .up-briefing-hero/.up-briefing-grid-inner stuck on
   the 80px desktop rail while nav.t2-crumb (global.css) already sits at 24px !important
   for 481-960px — live-measured 56px left-edge mismatch at 850px. 24px matches the
   breadcrumb's existing value in this same range, not a new number.
   Code-review catch (25.08): the first version of this block only touched
   left/right and left vertical padding to the base (desktop) rule — since BOTH neighboring
   tiers (961-1439 above, <=768 below) override padding-top/bottom to the same compressed
   56/48 and 48/56 values, omitting them here made the vertical rhythm balloon back up to
   desktop's 80px/64px at 769-960px, a visible snap-then-shrink as you resize through this
   band. Added the same vertical values both neighbors already use — not a new number. */
@media (min-width:769px) and (max-width:960px) {
  .up-briefing-hero,.up-briefing-grid-inner { padding-left:24px; padding-right:24px; }
  .up-briefing-hero { padding-top:56px; padding-bottom:48px; }
  .up-briefing-grid-section { padding:48px 0 56px; }
}
@media (max-width:768px) {
  .up-briefing-hero,.up-briefing-grid-section,.up-briefing-grid-inner { padding-left:24px; padding-right:24px; }
  .up-briefing-hero { padding-top:56px; padding-bottom:48px; }
  .up-briefing-grid-section { padding:48px 0 56px; }
  .up-briefing-grid { gap:16px; }
  .up-briefing-empty { padding:56px 24px; }
}
@media (max-width:480px) {
  .up-briefing-hero,.up-briefing-grid-section,.up-briefing-grid-inner { padding-left:20px; padding-right:20px; }
  .up-briefing-hero { padding-top:40px; padding-bottom:36px; }
  .up-briefing-grid-section { padding:40px 0 48px; }
}
@font-face{ 
  font-family: 'IBM Plex Sans';
  src: url('/fonts/ibm-plex-sans-500-latin.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display:swap;
 }
@font-face{ 
  font-family: 'JetBrains Mono';
  src: url('/fonts/jetbrains-mono-500-latin.woff2') format('woff2');
  font-weight: 400 500; font-style: normal; font-display:swap;
 }

/* ── Outer shell ── */

/* ── Logo (left) ── */

/* ── Nav wrapper — centered via flex grow trick ── */

/* ── Nav item gap: 28px between items (half each side = 14px) ── */

/* ── Top-level links / buttons ── */

/* chevron icon */

/* ── Dropdown panel ── */

/* ── Emirates flyout arrow ── */

/* ── Emirates sub-dropdown (flies right) ── */

/* ── Right side: lang switcher + CTA ── */

/* Language switcher */

/* CTA pill — edits4: enlarged to match removed float-btn (h:56px, 16px, 500) */

/* ── Mobile hamburger ── */

/* ── Mobile menu panel ── */

/* ── Responsive breakpoint ── */
@font-face{ 
  font-family: 'IBM Plex Sans';
  src: url('/fonts/ibm-plex-sans-400-latin.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display:swap;
 }
@font-face{ 
  font-family: 'IBM Plex Sans';
  src: url('/fonts/ibm-plex-sans-500-latin.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display:swap;
 }
@font-face{ 
  font-family: 'JetBrains Mono';
  src: url('/fonts/jetbrains-mono-500-latin.woff2') format('woff2');
  font-weight: 400 500; font-style: normal; font-display:swap;
 }

/* ── Top row: brand left + columns right ── */

/* ── Brand block (left ~44%) ── */

/* ── 5 columns (right ~56%) — Wave-G: right-align cols block to rail edge ── */
/* Wave-G: gap handles spacing, no margin-left needed */

/* ── Bottom bar ── */

/* Lang switcher in footer bottom bar */

/* ── Responsive ── */
