body.alod-site {margin:0;overflow-x:hidden;}
.alod-site main {overflow-x:clip;}
.alod-site .elementor-widget {margin-bottom:0;margin-block-end:0!important;}
.alod-site .elementor-widget-container {width:100%;}
.alod-site .elementor {--widgets-spacing:0px;}
.alod-site .e-con {--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;--gap:0;}
.alod-site img.avatar {border-radius:18px;}
.alod-site .google-map-layout:has(.map-contact-block) {grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr)!important;}
.alod-site .map-info:has(.map-contact-block) {row-gap:24px;}
.alod-site .map-contact-block + .map-contact-block {margin-top:6px;}
@media(max-width:980px){.alod-site .google-map-layout:has(.map-contact-block){grid-template-columns:1fr!important;}}
.alod-site alod-text {display:inline;font:inherit;color:inherit;letter-spacing:inherit;}
.alod-site main .elementor-widget-container .article-copy figure.story-image {margin:0 0 34px;}
.alod-site main .elementor-widget-container .article-copy figure.story-image.secondary {margin:46px 0 36px;}
.alod-honeypot {position:absolute!important;inset-inline-start:-10000px!important;width:1px!important;height:1px!important;}
.alod-form-status {grid-column:1/-1;padding:12px 0;font-size:14px;line-height:1.6;}
.alod-form-status[data-state="error"] {color:#b42318;}
.alod-form-status[data-state="success"] {color:#067647;}
.alod-form-status[data-state="notice"] {color:#59446d;}
.alod-form-unit{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px;padding:6px 6px 6px 16px;border-radius:999px;background:color-mix(in oklab,var(--shared-purple,#792a8e) 9%,#fff);color:var(--shared-deep,#250330);font-size:14px;font-weight:600;line-height:1.4}
html[dir=rtl] .alod-form-unit{padding:6px 16px 6px 6px}
.alod-form-unit[hidden]{display:none}
.alod-form-unit button{flex:none;width:30px;height:30px;border:0;border-radius:50%;background:#fff;color:inherit;font-size:18px;line-height:1;cursor:pointer}
.alod-form-unit button:focus-visible{outline:2px solid var(--shared-gold,#c9a35b);outline-offset:2px}
.alod-site button:focus-visible,.alod-site a:focus-visible {outline:2px solid #856399;outline-offset:4px;}
.alod-site button[disabled] {opacity:.55;cursor:wait;}
.alod-site a[aria-disabled="true"] {opacity:.65;cursor:not-allowed;}
.alod-site [hidden] {display:none!important;}
.alod-site [data-carousel-loop="yes"] {overflow-x:hidden!important;scroll-snap-type:none!important;}
.alod-site [data-carousel-loop="yes"] > :is(.project-card,.news-card,.related-card) {translate:calc(var(--alod-drag-base,0px) + var(--alod-drag-x,0px)) 0;}
.alod-site :is(#projects,[data-alod-original-id="projects"]) .project-card[data-carousel-original-index="0"] .project-status {background:#25745a!important;}
.alod-site :is(#projects,[data-alod-original-id="projects"]) .project-card[data-carousel-original-index]:not([data-carousel-original-index="0"]) .project-status {background:#792a8e!important;}
.alod-site .alod-draggable {cursor:grab;}
.alod-site .alod-draggable :is(.project-card,.news-card,.related-card) {cursor:inherit;}
.alod-site .alod-dragging {cursor:grabbing;user-select:none;scroll-snap-type:none!important;scroll-behavior:auto!important;}
.alod-site .hero-slides > .hero-slide {width:100%;height:100%;max-width:none;object-fit:cover;transition:opacity .55s cubic-bezier(.22,1,.36,1);}
.alod-site .destinations {overflow-x:clip;}
@media(max-width:1200px){
  .alod-site .topnav nav {gap:4px!important;max-height:calc(100svh - 76px);overflow-y:auto;}
  .alod-site .topnav nav a {display:flex;align-items:center;min-height:44px;width:100%;font-size:14px!important;letter-spacing:.04em!important;}
  .alod-site .topnav :is(.menu-btn,.language-btn) {min-width:44px;min-height:44px;}
}
.alod-site video.alod-hero-video {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.alod-site [data-hero-mode="video"] :is(.hero-slides,.hero-bg,.slider-controls) {display:none;}
@media(max-width:620px){.alod-site main .article-heading .breadcrumb{max-width:100%!important;}}
.alod-site .alod-dialog {border:0;border-radius:8px;padding:24px;max-width:min(960px,94vw);max-height:90vh;background:#fff;color:#2c2432;}
.alod-dialog::backdrop {background:rgb(0 0 0/.75);}
.alod-dialog img,.alod-dialog video {max-width:100%;max-height:75vh;object-fit:contain;}
.alod-dialog iframe {width:85vw;max-width:900px;height:70vh;border:0;}
.alod-search-results a {display:block;padding:16px;border-bottom:1px solid #dfd8e5;text-decoration:none;}
.alod-site .alod-search-dialog {box-sizing:border-box;width:min(680px,calc(100vw - 32px));max-width:none;max-height:calc(100svh - 32px);padding:0;border-radius:16px;color:#250330;font-family:var(--font-body,var(--font,sans-serif));text-align:start;}
.alod-search-dialog .shared-search-top {position:sticky;top:0;z-index:1;background:#fff;gap:24px;padding:28px 32px;align-items:flex-start;}
.alod-search-dialog .shared-search-top > div {min-width:0;}
.alod-search-dialog .shared-search-top h2 {margin:0;font-size:28px;line-height:1.3;font-weight:700;}
.alod-search-dialog .shared-search-top p {margin:8px 0 0;color:#59446d;font-size:15px;line-height:1.6;}
.alod-search-dialog .shared-search-close {flex:0 0 44px;width:44px;height:44px;border:0;color:#250330;font:inherit;font-size:28px;cursor:pointer;}
.alod-search-dialog .shared-search-body {margin:0;padding:28px 32px;}
.alod-search-control {display:grid;gap:10px;margin:0;color:#59446d;font-size:14px;font-weight:600;}
.alod-search-dialog .alod-search-control :is(input,select) {box-sizing:border-box;width:100%;min-width:0;min-height:52px;margin:0;padding:12px 16px;border:1px solid #cdbcd2;border-radius:10px;background:#fff;color:#250330;font:inherit;font-size:16px!important;font-weight:400;}
.alod-search-dialog input::placeholder {color:#59446d;opacity:1;}
.alod-search-dialog .shared-advanced-fields {grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:22px;}
.alod-site .alod-search-dialog .shared-submit {width:100%;min-height:52px;border:0;border-radius:999px;font:inherit;font-size:16px!important;font-weight:600;letter-spacing:0;color:#fff!important;cursor:pointer;}
.alod-search-status {margin:0;padding:0 32px;color:#59446d;font-size:15px;line-height:1.6;}
.alod-search-status:empty,.alod-search-dialog .alod-search-results:empty {display:none;}
.alod-search-status[data-state="error"] {color:#b42318;}
.alod-search-dialog .alod-search-results {display:grid;gap:0;max-height:320px;overflow-y:auto;padding:12px 32px 28px;}
.alod-search-dialog .alod-search-results a {display:grid;gap:5px;padding:16px 0;color:#250330;line-height:1.5;}
.alod-search-dialog .alod-search-results a:hover strong {color:#792a8e;}
.alod-search-dialog .alod-search-results strong {font-size:17px;font-weight:600;}
.alod-search-result-type,.alod-search-dialog .alod-search-results small {color:#59446d;font-size:13px;}
@media(max-width:1200px){.alod-site .topnav .search-btn{display:grid!important}.alod-site .topnav .nav-actions{gap:4px!important}}
@media(max-width:480px){
  .alod-site .topnav .container.topnav-inner{gap:4px!important}
  .alod-site .topnav .brand-logo{width:120px!important}.alod-site .topnav .language-btn{min-width:44px!important}
  .alod-search-dialog .shared-search-top,.alod-search-dialog .shared-search-body{padding:22px}
  .alod-search-dialog .shared-search-top h2{font-size:24px}.alod-search-dialog .shared-advanced-fields{grid-template-columns:1fr;gap:18px}
  .alod-search-status{padding-inline:22px}.alod-search-dialog .alod-search-results{padding:12px 22px 22px}
}
.alod-site .social-rail {position:fixed;z-index:90;left:10px;top:45%;display:flex;flex-direction:column;align-items:center;gap:14px;width:36px;padding:14px 0;border-radius:14px;background:rgb(89 68 109/.09);color:#250330;}
.alod-site .social-rail a {display:flex;align-items:center;justify-content:center;width:24px;height:20px;color:inherit;}
.alod-site .social-rail svg {width:14px;height:14px;fill:currentColor;}
.alod-site .social-rail.over-dark {color:#f4efe8;background:rgb(244 239 232/.08);}
.alod-site[dir="rtl"] .social-rail,html[dir="rtl"] .alod-site .social-rail {left:auto;right:10px;}
@media(max-width:900px){.alod-site .social-rail {display:none;}}
@media(prefers-reduced-motion:reduce){.alod-site * {scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important;}}

/* Geographic project markers follow the map viewport; other embedded maps retain their styles. */
.map-panel .map-location-pins.alod-geographic-map{z-index:2!important;pointer-events:auto;background:#ede5ef;font-family:var(--font-body);isolation:isolate}
.alod-geographic-map .leaflet-tile-pane{filter:grayscale(.7) sepia(.12) hue-rotate(235deg) saturate(1.2)}
.alod-geographic-map .leaflet-tile-pane::after{content:"";position:absolute;inset:-100vh -100vw;background:rgb(122 42 143 / 16%);mix-blend-mode:color;pointer-events:none}
.alod-geographic-map .alod-location-marker{border:0;background:transparent}
.alod-geographic-map .map-location-pin{position:relative!important;left:auto!important;top:auto!important;display:block;justify-content:center;width:110px;min-height:40px;padding:10px 8px;font-size:max(var(--alod-min-font,0px),11px);text-align:center;white-space:nowrap;cursor:pointer}
/* The homepage pin pulses; this pulse keeps it centred over its city label (the reference one animates the rotation only). */
.alod-geographic-map .map-location-pin::before{animation-name:alod-pin-pulse}
@keyframes alod-pin-pulse{0%,100%{box-shadow:0 0 0 4px color-mix(in oklch,var(--accent) 18%,transparent);transform:translateX(-50%) rotate(-45deg) scale(1)}50%{box-shadow:0 0 0 12px color-mix(in oklch,var(--accent) 2%,transparent);transform:translateX(-50%) rotate(-45deg) scale(1.08)}}
.alod-geographic-map .map-location-pin:focus-visible{outline:3px solid var(--deep);outline-offset:4px}
.alod-geographic-map .leaflet-control-zoom a{background:var(--surface);color:var(--deep);border-color:var(--border)}
.alod-geographic-map .alod-map-overview{padding:10px 16px;min-height:44px;border:1px solid var(--border);border-radius:24px;background:var(--surface);color:var(--deep);font:600 12px var(--font-body);cursor:pointer;box-shadow:0 3px 12px rgb(37 3 48 / 12%)}
.alod-geographic-map .leaflet-control-attribution{font:max(var(--alod-min-font,0px),11px)/1.5 sans-serif;background:rgb(255 255 255 / 95%);color:#250330;direction:ltr}
.alod-geographic-map .leaflet-control-attribution a{color:#6b237d}
.map-panel:has(.alod-geographic-map)::after{display:none}
.map-panel:has(.alod-geographic-map) .map-direct-link{bottom:30px!important}
@media(max-width:600px){.alod-geographic-map .map-location-pin{font-size:max(var(--alod-min-font,0px),10px)}.alod-geographic-map .leaflet-control-attribution{font-size:max(var(--alod-min-font,0px),10px)}.alod-geographic-map .alod-map-overview{padding:10px 12px}}

.map-project-card__heading h3{white-space:normal!important;overflow-wrap:anywhere}

/* Editable text wrappers become separate grid items; keep the badge lines together and centered like the approved design. */
.heritage b:has(>alod-text){align-content:center}
.heritage b:has(>alod-text)>br{display:none}
.heritage b{flex:0 0 56px} /* never squeeze the round badge into an oval on narrow screens */
@media (pointer:coarse),(max-width:767px){.alod-geographic-map.leaflet-container .leaflet-bar a{width:40px;height:40px;line-height:40px;font-size:20px}} /* finger-sized zoom buttons */
@media (max-width:360px){h1,h2{overflow-wrap:break-word;hyphens:auto}} /* long single words (e.g. Sustainability) must not spill past the smallest phones */
/* News photography is often portrait (people): keep heads in frame when cards and story images crop to cover. */
.alod-site .news-card .news-image img,.alod-site .related-card img,.alod-site .article-copy figure.story-image img{object-position:50% 18%}
/* A news slider holding a single story: center it and drop the slider controls. */
.alod-site .news-grid:has(>.news-card:only-child){justify-content:center}
.alod-site .news-slider:has(.news-grid>.news-card:only-child) .news-controls{display:none}
/* project gallery categories with fewer than three images fill the frame instead of repeating one */
.gallery[data-count="1"]{grid-template-columns:1fr}
.gallery[data-count="1"] .gallery-main,.gallery[data-count="2"] figure:not([hidden]):not(.gallery-main){grid-row:1/3}
@media(max-width:600px){.gallery[data-count="1"],.gallery[data-count="2"]{grid-template-rows:260px}.gallery[data-count="2"]{grid-template-rows:260px 200px}.gallery[data-count] figure{grid-row:auto!important}}
/* masterplan: pins sit on an uncropped 16:9 canvas so their percentages land on the same spot at every width */
.masterplan-section .masterplan:has(>.masterplan-canvas){min-height:0}
.masterplan-section .masterplan-canvas{position:relative;width:100%;aspect-ratio:16/9}
.masterplan-section .masterplan-canvas>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.masterplan-section .masterplan-canvas .master-hotspot i:before{content:none}
.masterplan-section .masterplan-canvas .master-hotspot i{position:relative}
/* the number sits alone in the dot: the (hidden) editable label inside <i> would otherwise take a grid row and push it down */
.masterplan-section .masterplan-canvas .master-hotspot i:after{content:attr(data-number);position:absolute;inset:0;display:grid;place-items:center;color:#fff;font:700 12px/1 var(--mono)}
@media(max-width:600px){
  .masterplan-section .masterplan:has(>.masterplan-canvas){overflow:visible;border:0;background:none;box-shadow:none}
  .masterplan-section .masterplan-canvas{overflow:hidden;border-radius:16px}
  .masterplan-section .master-hotspot{width:24px;height:24px}
  .masterplan-section .master-hotspot.active{width:30px;height:30px}
  .masterplan-section .master-hotspot:before{inset:-4px}
  .masterplan-section .master-detail{position:static;width:auto;margin-top:12px}
  .masterplan-section .master-hint,.masterplan-section .masterplan:has(>.masterplan-canvas):after{display:none}
  .masterplan-section .masterplan-canvas .master-hotspot i:after{font-size:max(var(--alod-min-font,0px),9px)}
}
/* editor only: a section switched off for visitors */
.alod-hidden-section{display:grid;gap:4px;justify-items:center;margin:16px auto;max-width:1200px;padding:22px;border:2px dashed #792a8e66;border-radius:16px;background:#792a8e0d;color:#250330;text-align:center;font:500 14px/1.6 Montserrat,'Brando Arabic',sans-serif}
.alod-hidden-section strong{font-weight:700}
.alod-hidden-section span{color:#6b5a72;font-size:13px}
/* editor: masterplan pins can be dragged into place */
body.elementor-editor-active .masterplan-canvas .master-hotspot{cursor:grab;touch-action:none}
body.elementor-editor-active .masterplan-canvas .master-hotspot.is-dragging{cursor:grabbing;transition:none;z-index:6}

/* ===== media stage: images, videos and the 3D experience share one branded viewer ===== */
html.alod-stage-open{overflow:hidden}
.alod-stage{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;display:grid;grid-template-rows:auto minmax(0,1fr);color:#fff;font-family:inherit;
  background:radial-gradient(120% 90% at 50% 0%,rgb(121 42 142/.38),transparent 60%),radial-gradient(80% 70% at 100% 100%,rgb(166 109 53/.16),transparent 70%),rgb(18 6 24/.94)}
.alod-stage:not([open]){display:none}
.alod-stage::backdrop{background:rgb(18 6 24/.55);backdrop-filter:blur(10px)}
.alod-stage[open]{animation:alod-stage-in .35s cubic-bezier(.2,.7,.2,1)}
@keyframes alod-stage-in{from{opacity:0}to{opacity:1}}
.alod-stage__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(16px,3vw,32px)}
.alod-stage__heading{display:grid;gap:2px;min-width:0}
.alod-stage__heading small{font:600 max(var(--alod-min-font,0px),10px)/1.4 var(--mono,'DM Mono',monospace);letter-spacing:.18em;text-transform:uppercase;color:#d8b77a}
.alod-stage[dir=rtl] .alod-stage__heading small{font-family:inherit;font-size:12px;line-height:1.5;letter-spacing:0;text-transform:none}
.alod-stage__heading strong{font-size:clamp(16px,1.6vw,21px);font-weight:700;line-height:1.3;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.alod-stage__tools{display:flex;align-items:center;gap:10px;flex:none}
.alod-stage__count{font:500 12px var(--mono,'DM Mono',monospace);letter-spacing:.12em;color:rgb(255 255 255/.7);padding-inline:6px;direction:ltr}
.alod-stage__btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgb(255 255 255/.18);border-radius:999px;background:rgb(255 255 255/.08);color:#fff;cursor:pointer;text-decoration:none;backdrop-filter:blur(12px);transition:background .2s,border-color .2s,transform .2s}
.alod-stage__btn svg{width:20px;height:20px}
.alod-stage__btn:hover{background:rgb(255 255 255/.18);border-color:rgb(255 255 255/.35);color:#fff}
.alod-stage__btn:focus{outline:none;box-shadow:none}
.alod-stage__btn:focus-visible{outline:2px solid #d8b77a;outline-offset:3px}
.alod-stage__btn--text{display:inline-flex;gap:8px;width:auto;padding-inline:16px;font-size:13px;font-weight:600}
.alod-stage__btn--text svg{width:17px;height:17px}
.alod-stage__body{display:grid;place-items:center;min-height:0;padding:0 clamp(16px,6vw,96px) clamp(16px,3vw,32px);touch-action:pan-y}
.alod-stage__body.is-in>*{animation:alod-stage-media .45s cubic-bezier(.2,.7,.2,1)}
@keyframes alod-stage-media{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.alod-stage__body img{display:block;max-width:100%;max-height:calc(100vh - 128px);width:auto;height:auto;border-radius:16px;box-shadow:0 30px 80px -20px rgb(0 0 0/.7);user-select:none;-webkit-user-drag:none}
.alod-stage__body video{display:block;width:min(1280px,100%);max-height:calc(100vh - 128px);aspect-ratio:16/9;border-radius:16px;background:#000;box-shadow:0 30px 80px -20px rgb(0 0 0/.7)}
.alod-stage__frame{position:relative;width:min(1440px,100%);height:calc(100vh - 112px);border-radius:18px;overflow:hidden;background:#f6f1f8;box-shadow:0 30px 80px -20px rgb(0 0 0/.7)}
.alod-stage__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.alod-stage__loading{position:absolute;inset:0;display:grid;place-items:center;color:#5b4a63;font-size:14px}
.alod-stage__note{margin:0;padding:28px 32px;border-radius:16px;background:rgb(255 255 255/.08);color:#fff}
.alod-stage__nav{position:absolute;top:50%;margin-top:-26px;width:52px;height:52px;z-index:2}
.alod-stage__nav--prev{inset-inline-start:clamp(10px,2vw,28px)}
.alod-stage__nav--next{inset-inline-end:clamp(10px,2vw,28px)}
.alod-stage[dir=rtl] .alod-stage__nav svg{transform:scaleX(-1)}
@media(max-width:700px){
  .alod-stage__bar{padding:12px 14px}
  .alod-stage__btn--text span{display:none}
  .alod-stage__btn--text{width:44px;padding:0}
  .alod-stage__body{padding:0 10px 14px}
  .alod-stage__body img,.alod-stage__body video{border-radius:12px}
  .alod-stage__nav{top:auto;bottom:22px;margin:0;width:44px;height:44px}
  .alod-stage__frame{height:calc(100vh - 92px);border-radius:14px}
}
@media(prefers-reduced-motion:reduce){.alod-stage[open],.alod-stage__body.is-in>*{animation:none}}

/* one video per language: the single card is centered and cinematic instead of a third of an empty row */
.video-grid:has(>.video-card:only-of-type){grid-template-columns:minmax(0,880px);justify-content:center}
.video-grid>.video-card:only-of-type{height:auto;aspect-ratio:16/9}
.video-grid>.video-card:only-of-type .play{inset:50% auto auto 50%;width:72px;height:72px;margin:0;transform:translate(-50%,-50%);padding:0 0 0 4px;font-size:20px;box-shadow:0 0 0 10px rgb(255 255 255/.12)}
.video-grid>.video-card:only-of-type strong{bottom:46px;font-size:clamp(17px,2vw,24px)}
.video-grid>.video-card:only-of-type small{bottom:24px;font-size:max(var(--alod-min-font,0px),10px)}
.video-grid>.video-card:only-of-type strong,.video-grid>.video-card:only-of-type small{left:28px;right:28px}
/* Arabic video cards read from the right, like the rest of the page */
html[dir=rtl] .video-card{text-align:right}
html[dir=rtl] .video-card strong,html[dir=rtl] .video-card small{text-align:right}
/* The reference zeroes the closing CTA's top padding to sit under a white section; after a tinted one it needs its own breathing room */
.e-con:has(section.chairman)+.e-con section.cta{padding-top:clamp(72px,8vw,116px)}
@media(max-width:560px){.e-con:has(section.chairman)+.e-con section.cta{padding-top:66px}}

/* Floating WhatsApp: the icon alone in the site's circle (owner's call 2026-10-26). a.fixed-whatsapp outranks the page's own .fixed-whatsapp rules */
a.fixed-whatsapp{width:56px;height:56px;padding:0;border-radius:50%;display:grid;place-items:center;background:var(--accent);box-shadow:0 12px 30px rgb(37 3 48 / 30%);transition:transform .2s,background .2s}
a.fixed-whatsapp svg{width:26px;height:26px}
a.fixed-whatsapp:hover,a.fixed-whatsapp:focus-visible{transform:translateY(-3px);background:var(--plum,var(--muted))}
@media(prefers-reduced-motion:reduce){a.fixed-whatsapp{transition:none}a.fixed-whatsapp:hover{transform:none}}
/* the PUIUX Studio badge docks in the same corner (bottom-end = bottom-right on LTR pages): sit beside it, never under it */
html:not([dir=rtl]):has(built-with-puiux-studio[data-dock="bottom-end"]:not([hidden])) a.fixed-whatsapp{right:84px}
