/* QE Design System 2027 - global tokens, locked per QE_FINAL_HANDOFF.zip README */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap');

:root{
  --green:#18A957;
  --black:#14140F;
  --ink:#14140F;
  --gold:#D98F2B;
  --gold-soft:#F0C989;
  --ivory:#F7F5EF;
  --cream:#F7F5EF;
  --sage:#EAF3EC;
  --mint:#EAF3EC;
  --line:#E6E1D6;
}

body{ font-family:'Inter',sans-serif; background:var(--ivory); color:var(--black); line-height:1.55; }

/* Global text-justify rule (locked, applies site-wide) - headings excluded.
   This is the ONE authoritative rule - do not redeclare text-align:justify
   in page-type stylesheets. 2026-08-10 sweep: this rule already existed but
   was being silently overridden almost everywhere, because every page-type
   file's class-qualified paragraph selectors (e.g. ".qe-content .story p")
   have higher specificity than the bare "p" here, regardless of load order.
   Removed those overrides wherever the target was real body/paragraph text.
   Deliberate text-align:left/center/right overrides remain only for genuine
   non-body-text elements - each is commented at its own declaration. One
   repeated category, flagged once here rather than per-file: every page
   type's "hero p" / "hero p.lead" (the short intro sentence directly under
   the H1) is kept text-align:left - a judgment call (heading-adjacent lead
   statement, consistently treated this way across every page type already,
   not clearly a "badge/tag/button" per the brief but also not ordinary
   flowing body prose) - flagged for Ahmad to override if he'd rather see
   these justified too. */
p, li{ text-align:justify; text-justify:inter-word; }
h1,h2,h3,h4,h5,h6{ text-align:left; font-family:'Fraunces',serif; }

.eyebrow{font-family:'JetBrains Mono', monospace; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--green); font-weight:500;}

.qe-btn-primary, .btn-primary{
  display:inline-block; background:var(--green); color:var(--cream);
  padding:14px 26px; border-radius:10px; font-weight:600; text-decoration:none;
  font-family:'Inter',sans-serif; box-shadow:0 6px 18px rgba(24,169,87,0.25);
}
.btn-secondary{border:1.5px solid var(--black); color:var(--black); padding:14px 26px; border-radius:10px; text-decoration:none; font-weight:600;}

/* Ikhlaas Premium gold-variant flag - toggled by body class qe-ikhlaas */
.qe-ikhlaas{ --qe-accent:var(--gold); }

/* Mobile-only sticky quick-booking bar + watermark, per handoff README section 7 */
@media (min-width:761px){
  .mobile-sticky, .qe-mobile-watermark{ display:none !important; }
}
