/* Extracted from page-future-projects.php so it is cached once instead of being re-sent
   inside the HTML on every page view. Enqueued by
   lumoria_enqueue_template_styles() in functions.php. */

    #lumFpPage, #lumFpPage * { box-sizing: border-box; }
    #lumFpPage {
      --lum-gold: #44BDA1;
      --lum-gold-dark: #04272F;
      --lum-ink: #1D1235;
      --lum-sub: var(--text-muted);
      --lum-line: rgba(29,18,53,.09);
      --lum-danger: #d9534f;
      font-family: var(--font-primary);
      max-width: var(--container-w);
      margin: 0 auto;
      padding: clamp(28px,4vw,52px) clamp(16px,4vw,48px) clamp(64px,8vw,104px);
    }

    /* ---------------- PAGE HERO ---------------- */
    #lumFpPage .lum-fp-hero {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0,1.05fr) minmax(360px,.95fr);
      min-height: 490px;
      margin-block-end: clamp(40px,5vw,68px);
      overflow: hidden;
      border-radius: var(--radius-lg);
      background: var(--lum-gold-dark);
      box-shadow: 0 30px 70px -36px rgba(4,39,47,.65);
      isolation: isolate;
    }
    #lumFpPage .lum-fp-hero.is-image-free { grid-template-columns: minmax(0,1fr); }
    #lumFpPage .lum-fp-hero-copy {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-width: 0;
      padding: clamp(42px,6vw,84px);
    }
    #lumFpPage .lum-fp-hero-copy::before {
      content: "";
      position: absolute;
      inset-block-start: clamp(28px,4vw,52px);
      inset-inline-start: clamp(42px,6vw,84px);
      width: 54px;
      height: 3px;
      border-radius: 999px;
      background: var(--lum-gold);
    }
    #lumFpPage .lum-fp-head { max-width: 720px; margin: 0; text-align: start; }
    #lumFpPage .lum-fp-eyebrow {
      display: inline-flex; align-items: center; gap: 10px;
      margin-bottom: 16px; padding: 8px 20px;
      border: 1px solid rgba(68,189,161,.4); border-radius: 999px;
      font-size: 13px; font-weight: var(--fw-semibold);
      letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--lum-gold);
    }
    #lumFpPage .lum-fp-hero .lum-fp-eyebrow { border-color: rgba(255,255,255,.24); color: #fff; }
    #lumFpPage .lum-fp-title {
      margin: 0 0 14px; font-size: var(--text-h2); font-weight: var(--fw-heading);
      line-height: 1.15; letter-spacing: var(--ls-h2); color: var(--lum-ink);
    }
    #lumFpPage .lum-fp-intro { margin: 0; font-size: var(--text-base); line-height: var(--lh-prose); color: var(--lum-sub); }
    #lumFpPage .lum-fp-hero .lum-fp-title { color: #fff; font-size: clamp(36px,4.2vw,62px); }
    #lumFpPage .lum-fp-hero .lum-fp-intro { max-width: 58ch; color: rgba(255,255,255,.76); }
    #lumFpPage .lum-fp-hero-meta {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      width: fit-content;
      margin-block-start: 22px;
      font-size: var(--text-sm);
      font-weight: var(--fw-medium);
      color: rgba(255,255,255,.82);
    }
    #lumFpPage .lum-fp-hero-meta i { color: var(--lum-gold); }
    #lumFpPage .lum-fp-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: 30px; }
    #lumFpPage .lum-fp-hero-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      min-height: 48px;
      padding-inline: 22px;
      border: 1px solid rgba(255,255,255,.3);
      border-radius: var(--radius-pill);
      color: #fff;
      font-size: var(--text-sm);
      font-weight: var(--fw-semibold);
      text-decoration: none;
      transition: transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);
    }
    #lumFpPage .lum-fp-hero-btn.is-primary { border-color: var(--lum-gold); background: var(--lum-gold); }
    #lumFpPage .lum-fp-hero-btn:hover { transform: translateY(-2px); border-color: #fff; background: rgba(255,255,255,.1); }
    #lumFpPage .lum-fp-hero-btn.is-primary:hover { border-color: #fff; background: #fff; color: var(--lum-gold-dark); }
    #lumFpPage .lum-fp-hero-media { position: relative; min-width: 0; overflow: hidden; }
    #lumFpPage .lum-fp-hero-media::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(90deg, var(--lum-gold-dark) 0%, rgba(4,39,47,0) 32%);
      pointer-events: none;
    }
    html[dir="rtl"] #lumFpPage .lum-fp-hero-media::after { transform: scaleX(-1); }
    #lumFpPage .lum-fp-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

    /* ---------------- PROJECT CARDS ---------------- */
    #lumFpPage .lum-fp-grid {
      display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px;
      margin-bottom: clamp(48px,6vw,72px);
    }
    #lumFpPage .lum-fp-grid.is-single { grid-template-columns: minmax(0,500px); justify-content: center; }
    #lumFpPage .lum-fp-grid.is-pair { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 1040px; margin-inline: auto; }
    #lumFpPage .lum-fp-card {
      display: flex; flex-direction: column; overflow: hidden;
      background: #fff; border: 1px solid var(--lum-line); border-radius: 18px;
      box-shadow: 0 2px 6px rgba(29,18,53,.05);
      transition: transform .3s ease, box-shadow .3s ease;
    }
    #lumFpPage .lum-fp-card:hover { transform: translateY(-3px); box-shadow: 0 22px 44px -20px rgba(29,18,53,.22); }
    #lumFpPage .lum-fp-media { position: relative; display: block; aspect-ratio: 16/11; overflow: hidden; }
    #lumFpPage .lum-fp-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
    #lumFpPage .lum-fp-card:hover .lum-fp-media img { transform: scale(1.05); }
    #lumFpPage .lum-fp-badge {
      position: absolute; top: 14px; inset-inline-start: 14px;
      padding: 6px 14px; border-radius: 999px;
      background: rgba(4,39,47,.82); color: #fff;
      font-size: var(--text-xs); font-weight: var(--fw-semibold); letter-spacing: .02em;
      backdrop-filter: blur(2px);
    }
    #lumFpPage .lum-fp-body { display: flex; flex-direction: column; flex-grow: 1; padding: 22px 24px 24px; }
    #lumFpPage .lum-fp-name { margin: 0 0 8px; font-size: var(--text-xl); font-weight: var(--fw-semibold); line-height: var(--lh-snug); color: var(--lum-ink); }
    #lumFpPage .lum-fp-name a { color: inherit; text-decoration: none; }
    #lumFpPage .lum-fp-name a:hover { color: var(--lum-gold-dark); }
    #lumFpPage .lum-fp-loc { display: flex; align-items: center; gap: 7px; margin: 0 0 14px; font-size: 13.5px; color: var(--lum-sub); }
    #lumFpPage .lum-fp-loc i { color: var(--lum-gold); font-size: 13px; }
    #lumFpPage .lum-fp-desc {
      margin: 0 0 20px; flex-grow: 1; font-size: 15px; line-height: 1.6; color: var(--lum-sub);
      display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
    }
    #lumFpPage .lum-fp-actions { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--lum-line); }
    #lumFpPage .lum-fp-btn {
      display: inline-flex; align-items: center; gap: 7px;
      padding: 11px 18px; border-radius: 999px; border: 1px solid var(--lum-line);
      font-size: 13.5px; font-weight: var(--fw-semibold); color: var(--lum-ink);
      background: #fff; text-decoration: none; transition: border-color .2s ease, color .2s ease, background .2s ease;
    }
    #lumFpPage .lum-fp-btn:hover { border-color: var(--lum-gold); color: var(--lum-gold-dark); }
    #lumFpPage .lum-fp-btn.is-primary { background: var(--lum-gold); border-color: var(--lum-gold); color: #fff; }
    #lumFpPage .lum-fp-btn.is-primary:hover { background: var(--lum-gold-dark); border-color: var(--lum-gold-dark); color: #fff; }
    #lumFpPage .lum-fp-btn i { font-size: 11px; transition: transform var(--transition-fast); }
    #lumFpPage .lum-fp-btn:hover i { transform: translateX(3px); }
    html[dir="rtl"] #lumFpPage .lum-fp-btn i { transform: scaleX(-1); }
    html[dir="rtl"] #lumFpPage .lum-fp-btn:hover i { transform: scaleX(-1) translateX(3px); }
    #lumFpPage .lum-fp-media-placeholder {
      display: grid;
      width: 100%;
      height: 100%;
      place-items: center;
      background: linear-gradient(135deg, rgba(68,189,161,.16), rgba(4,39,47,.12));
      color: var(--lum-gold-dark);
      font-size: var(--text-5xl);
    }
    #lumFpPage .lum-fp-empty { padding: 48px 24px; text-align: center; border: 1px dashed var(--lum-line); border-radius: 18px; color: var(--lum-sub); }

    /* ---------------- PRE-RESERVE FORM ----------------
       Dark brief panel on one side, form on the other, sharing one card so
       the block reads as a single deliberate object rather than a loose form. */
    #lumFpPage .lum-fp-form-card {
      display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
      max-width: 1120px; margin: 0 auto;
      overflow: hidden;
      background: #fff; border: 1px solid var(--lum-line); border-radius: 22px;
      box-shadow: 0 30px 70px -42px rgba(29,18,53,.45);
    }
    #lumFpPage .lum-fp-form-card > * { min-width: 0; }
    #lumFpPage .lum-fp-form-aside {
      position: relative;
      display: flex; flex-direction: column; justify-content: center;
      padding: clamp(32px,3.6vw,48px);
      background: var(--lum-gold-dark); color: #fff;
    }
    /* Symmetric wash — no physical side, so RTL needs no override. */
    #lumFpPage .lum-fp-form-aside::after {
      content: ""; position: absolute; inset: 0; pointer-events: none;
      background: radial-gradient(120% 90% at 50% -10%, rgba(68,189,161,.22), transparent 62%);
    }
    #lumFpPage .lum-fp-form-aside > * { position: relative; z-index: 1; }
    #lumFpPage .lum-fp-form-aside .lum-fp-eyebrow { border-color: rgba(255,255,255,.26); color: #fff; }
    #lumFpPage .lum-fp-form-aside h2 {
      margin: 0 0 12px; font-size: var(--text-h3); font-weight: var(--fw-heading);
      line-height: var(--lh-heading); letter-spacing: var(--ls-h2); color: #fff;
    }
    #lumFpPage .lum-fp-form-aside p { margin: 0; font-size: var(--text-sm); line-height: var(--lh-prose); color: rgba(255,255,255,.74); }
    #lumFpPage .lum-fp-points {
      display: grid; gap: 14px;
      margin: clamp(24px,2.6vw,32px) 0 0; padding-block-start: clamp(24px,2.6vw,32px);
      padding-inline: 0; list-style: none;
      border-top: 1px solid rgba(255,255,255,.14);
    }
    #lumFpPage .lum-fp-point {
      display: flex; align-items: flex-start; gap: 12px;
      font-size: 13.5px; line-height: var(--lh-body); color: rgba(255,255,255,.86);
    }
    #lumFpPage .lum-fp-point i { flex-shrink: 0; margin-block-start: 3px; font-size: 13px; color: var(--lum-gold); }
    #lumFpPage .lum-fp-form-body { padding: clamp(32px,3.6vw,48px); }
    #lumFpPage .lum-fp-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px 24px; margin-bottom: 20px; }
    #lumFpPage .lum-fp-field { display: flex; flex-direction: column; min-width: 0; }
    #lumFpPage .lum-fp-field.is-full { grid-column: 1 / -1; }
    #lumFpPage .lum-fp-field > label { margin-bottom: 8px; font-size: 13.5px; font-weight: var(--fw-semibold); color: var(--lum-ink); }
    #lumFpPage .lum-fp-req { color: var(--lum-danger); margin-inline-start: 2px; }
    #lumFpPage .lum-fp-field input, #lumFpPage .lum-fp-field select {
      height: 50px; width: 100%; padding-inline: 20px; border: 1px solid var(--lum-line);
      border-radius: 999px; background: #fff; font-family: inherit; font-size: 14.5px; color: var(--lum-ink);
      outline: none; transition: border-color .2s ease, box-shadow .2s ease;
    }
    #lumFpPage .lum-fp-field select { appearance: none; -webkit-appearance: none; padding-inline-end: 44px; cursor: pointer; }
    #lumFpPage .lum-fp-field textarea {
      width: 100%; min-height: 110px; padding: 16px 20px; border: 1px solid var(--lum-line);
      border-radius: 22px; background: #fff; font-family: inherit; font-size: 14.5px; color: var(--lum-ink);
      resize: vertical; outline: none; transition: border-color .2s ease, box-shadow .2s ease;
    }
    #lumFpPage .lum-fp-field input::placeholder, #lumFpPage .lum-fp-field textarea::placeholder { color: rgba(4,39,47,.42); }
    #lumFpPage .lum-fp-field input:focus, #lumFpPage .lum-fp-field select:focus, #lumFpPage .lum-fp-field textarea:focus {
      border-color: var(--lum-gold); box-shadow: 0 0 0 3px rgba(68,189,161,.18);
    }
    #lumFpPage .lum-fp-select { position: relative; }
    #lumFpPage .lum-fp-select svg { position: absolute; inset-inline-end: 18px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--lum-sub); }
    #lumFpPage .lum-fp-field.is-invalid input, #lumFpPage .lum-fp-field.is-invalid select,
    #lumFpPage .lum-fp-field.is-invalid .lum-fp-consent-box { border-color: var(--lum-danger); }
    #lumFpPage .lum-fp-error { display: none; margin-top: 6px; font-size: var(--text-xs); color: var(--lum-danger); }
    #lumFpPage .lum-fp-field.is-invalid .lum-fp-error { display: block; }

    #lumFpPage .lum-fp-consent { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; cursor: pointer; }
    #lumFpPage .lum-fp-consent input { position: absolute; width: 22px; height: 22px; margin: 0; opacity: 0; cursor: pointer; }
    #lumFpPage .lum-fp-consent-box { position: relative; width: 21px; height: 21px; flex-shrink: 0; border: 1.5px solid var(--lum-gold); border-radius: 50%; }
    #lumFpPage .lum-fp-consent-box::after { content: ""; position: absolute; inset: 5px; border-radius: 50%; background: var(--lum-gold); transform: scale(0); transition: transform .18s ease; }
    #lumFpPage .lum-fp-consent input:checked ~ .lum-fp-consent-box::after { transform: scale(1); }
    #lumFpPage .lum-fp-consent input:focus-visible ~ .lum-fp-consent-box { outline: 2px solid var(--lum-gold); outline-offset: 2px; }
    #lumFpPage .lum-fp-consent-text { font-size: 13.5px; line-height: 1.55; color: var(--lum-sub); }

    #lumFpPage .lum-fp-submit {
      width: 100%; height: 58px; border: 0; border-radius: 999px;
      background: var(--lum-gold); color: #fff; font-family: inherit;
      font-size: 15.5px; font-weight: var(--fw-semibold); cursor: pointer;
      box-shadow: 0 14px 30px -14px rgba(68,189,161,.7);
      transition: background .25s ease, transform .15s ease;
    }
    #lumFpPage .lum-fp-submit:hover { background: var(--lum-gold-dark); }
    #lumFpPage .lum-fp-submit:disabled { opacity: .65; cursor: not-allowed; }
    #lumFpPage .lum-fp-note { margin: 16px 0 0; text-align: center; font-size: var(--text-xs); color: var(--lum-sub); }
    #lumFpPage .lum-fp-status { display: none; margin-top: 14px; text-align: center; font-size: var(--text-sm); font-weight: var(--fw-semibold); }
    #lumFpPage .lum-fp-status.is-shown { display: block; }
    #lumFpPage .lum-fp-status.is-success { color: var(--lum-gold-dark); }
    #lumFpPage .lum-fp-status.is-error { color: var(--lum-danger); }

    /* ---------------- FACILITIES & SERVICES ----------------
       Its own band between the projects and the form: the list is far too
       long to sit beside a four-field form without a scrollbar. */
    #lumFpPage .lum-fp-facilities { margin-block-end: clamp(48px,6vw,80px); }
    #lumFpPage .lum-fp-facilities-head {
      max-width: 680px; margin: 0 auto clamp(28px,3.2vw,40px); text-align: center;
    }
    #lumFpPage .lum-fp-facilities-title {
      margin: 0 0 12px; font-size: var(--text-h3); font-weight: var(--fw-heading);
      line-height: var(--lh-heading); letter-spacing: var(--ls-h2); color: var(--lum-ink);
    }
    #lumFpPage .lum-fp-facilities-note { margin: 0; font-size: var(--text-sm); line-height: var(--lh-prose); color: var(--lum-sub); }
    #lumFpPage .lum-fp-facilities-list {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(250px,1fr));
      gap: 12px; margin: 0; padding: 0; list-style: none;
    }
    #lumFpPage .lum-fp-facility {
      display: flex; align-items: center; gap: 13px;
      padding: 14px 18px;
      border: 1px solid var(--lum-line); border-radius: 14px; background: #fff;
      font-size: 14px; line-height: var(--lh-snug); color: var(--lum-gold-dark);
      transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
    }
    #lumFpPage .lum-fp-facility:hover {
      border-color: rgba(68,189,161,.45); transform: translateY(-2px);
      box-shadow: 0 16px 30px -22px rgba(29,18,53,.35);
    }
    #lumFpPage .lum-fp-facility-icon {
      display: flex; align-items: center; justify-content: center; flex-shrink: 0;
      width: 34px; height: 34px; border-radius: 50%;
      background: rgba(68,189,161,.13); color: var(--lum-gold); font-size: 13px;
    }

    @media (max-width: 1100px) {
      #lumFpPage .lum-fp-hero { grid-template-columns: minmax(0,1fr) minmax(300px,.8fr); }
      #lumFpPage .lum-fp-grid:not(.is-single) { grid-template-columns: repeat(2, minmax(0,1fr)); }
    }
    @media (max-width: 900px) {
      #lumFpPage .lum-fp-hero { grid-template-columns: minmax(0,1fr); }
      #lumFpPage .lum-fp-hero-media { min-height: 320px; }
      #lumFpPage .lum-fp-hero-media::after { background: linear-gradient(180deg, var(--lum-gold-dark) 0%, rgba(4,39,47,0) 34%); }
      html[dir="rtl"] #lumFpPage .lum-fp-hero-media::after { transform: none; }
      #lumFpPage .lum-fp-form-card { grid-template-columns: minmax(0,1fr); }
    }
    @media (max-width: 780px) {
      #lumFpPage .lum-fp-grid { grid-template-columns: minmax(0,1fr); }
      #lumFpPage .lum-fp-form-grid { grid-template-columns: minmax(0,1fr); gap: 18px; }
      #lumFpPage .lum-fp-facilities-list { grid-template-columns: minmax(0,1fr); }
    }
    @media (max-width: 640px) {
      #lumFpPage { padding-block-start: 18px; }
      #lumFpPage .lum-fp-hero { min-height: 0; border-radius: 22px; }
      #lumFpPage .lum-fp-hero-copy { padding: 56px 24px 36px; }
      #lumFpPage .lum-fp-hero-copy::before { inset-block-start: 32px; inset-inline-start: 24px; }
      #lumFpPage .lum-fp-hero .lum-fp-title { font-size: var(--text-h2); }
      #lumFpPage .lum-fp-hero-actions { align-items: stretch; flex-direction: column; }
      #lumFpPage .lum-fp-hero-btn { width: 100%; }
      #lumFpPage .lum-fp-hero-media { min-height: 240px; }
      #lumFpPage .lum-fp-card { border-radius: 16px; }
      #lumFpPage .lum-fp-body { padding: 20px; }
      #lumFpPage .lum-fp-actions { align-items: stretch; flex-direction: column; }
      #lumFpPage .lum-fp-btn { justify-content: center; width: 100%; }
      #lumFpPage .lum-fp-form-card { border-radius: 18px; }
      #lumFpPage .lum-fp-form-aside,
      #lumFpPage .lum-fp-form-body { padding: 28px 22px; }
    }
  
