/* ICONA Development / inner pages: page hero, about, locations, news, contact, legal, system. */

/* ========================================================= page hero == */

.phero { padding-top: calc(var(--header-h) + clamp(3rem, 9vw, 8rem)); padding-bottom: clamp(3rem, 6vw, 5rem); }
.phero__inner { display: grid; gap: clamp(1rem, 2vw, 1.5rem); justify-items: start; }
.phero__title {
  font-size: clamp(3rem, 8vw, 8.5rem); line-height: .96; letter-spacing: -0.045em; color: var(--night);
}
.phero__title--sm { font-size: clamp(2.4rem, 5.5vw, 5rem); font-weight: 600; }
.phero__line { display: block; overflow: hidden; padding-bottom: .06em; }
.phero__line > span { display: inline-block; }
.phero__line b { font-weight: 600; }
.phero__line--light { padding-inline-start: .55em; color: var(--navy); }
.phero__line--light i { font-weight: 300; }
.phero__lede { font-size: var(--fs-lead); color: var(--ink-soft); max-width: 46ch; }
.phero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: .5rem; }
.phero__stage { margin-top: clamp(3rem, 6vw, 5rem); }
.phero__media { position: relative; aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--corner-xl); background: #dcdcdc; }
.phero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.phero--compact { padding-bottom: clamp(2rem, 4vw, 3rem); }
.phero--center .phero__inner { justify-items: center; text-align: center; }
.phero--center .phero__line--light { padding-inline-start: 0; }
@media (max-width: 899px) {
  .phero__media { aspect-ratio: 4 / 3; border-radius: var(--corner); }
  .phero__line--light { padding-inline-start: .3em; }
}

/* ========================================================== shared == */

.section-head { display: grid; gap: 1.25rem; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.section-head .h2 { max-width: 18ch; }
.section-head--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1rem 2rem; }
.lead { font-size: var(--fs-lead); color: var(--ink); }
.muted { color: var(--ink-soft); }
.band--night .muted { color: var(--on-night-soft); }
.empty { font-size: var(--fs-lead); color: var(--ink-soft); padding-block: 3rem; }

/* visible placeholder for content ICONA has not supplied yet */
.ph {
  display: inline-block; padding: .2em .6em; border: 1px dashed currentColor; border-radius: var(--corner-sm);
  font-size: .8125rem; font-weight: 500; letter-spacing: 0; color: #9a6a00; background: rgb(255 214 120 / 0.14);
}
.band--night .ph { color: #ffd98a; background: rgb(255 214 120 / 0.08); }

.chips { display: flex; flex-wrap: wrap; gap: .6rem; padding-bottom: clamp(2rem, 4vw, 3rem); }
.chip {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: .5rem 1.1rem;
  border: 1px solid var(--line); border-radius: var(--corner-sm); font-weight: 500; font-size: .9375rem;
  transition: background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}
.chip:hover { background: var(--navy); color: var(--plaster); border-color: var(--navy); }

.cta-band { padding-block: clamp(5rem, 10vw, 9rem); border-radius: var(--corner-xl); }
.cta-band__inner { display: grid; gap: 2rem; justify-items: start; }
.cta-band__inner .h2 { max-width: 14ch; }
.cta-band__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }

/* ------------------------------------------------------ project card -- */

.pcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.pcard { display: grid; gap: .6rem; align-content: start; }
.pcard__img { display: block; overflow: hidden; border-radius: var(--corner); aspect-ratio: 4 / 3; background: var(--deep); }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.pcard:hover .pcard__img img { transform: scale(1.05); }
.pcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; font-size: var(--fs-small); color: var(--ink-soft); margin-top: .4rem; }
.pcard__name { font-size: var(--fs-h3); font-weight: 600; line-height: 1.15; letter-spacing: -0.02em; }
.pcard__place { color: var(--ink-soft); }
.band--night .pcard__meta, .band--night .pcard__place { color: var(--on-night-soft); }

/* ============================================================ about == */

.story__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2.5rem; }
.story__head { grid-column: 1 / -1; }
.story__lead { grid-column: 1 / 10; }
.story__body { grid-column: 1 / 7; display: grid; gap: 1.1rem; font-size: var(--fs-lead); color: var(--ink-soft); align-self: start; }
.story__img { grid-column: 8 / 13; overflow: hidden; border-radius: var(--corner); aspect-ratio: 4 / 5; }
.story__img img { width: 100%; height: 100%; object-fit: cover; }

.record { padding-block: var(--section); border-radius: var(--corner-xl); }
.record .h2 { margin-top: 1.25rem; max-width: 16ch; }
.record__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 3rem); margin-top: clamp(3rem, 6vw, 5rem); }
.record__item { display: grid; gap: .75rem; padding-top: 1.5rem; border-top: 1px solid var(--line-night); align-content: start; }
.record__item dt { color: var(--on-night-soft); font-size: var(--fs-small); letter-spacing: .08em; }
.record__num { font-size: clamp(3rem, 7vw, 6rem); font-weight: 600; line-height: 1; letter-spacing: -0.05em; font-variant-numeric: tabular-nums; }

.standards__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.standard { display: grid; gap: .75rem; align-content: start; }
.standard__img { overflow: hidden; border-radius: var(--corner); aspect-ratio: 4 / 5; margin-bottom: .5rem; }
.standard__img img { width: 100%; height: 100%; object-fit: cover; }
.standard__title { font-size: 1.25rem; font-weight: 600; letter-spacing: -0.015em; }
.standard__text { color: var(--ink-soft); }

.people__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.person { display: grid; gap: 1rem; }
.person__img { display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: var(--corner); background: var(--paper); border: 1px solid var(--line); color: rgb(59 72 120 / 0.18); }
.person__mark { width: 34%; height: auto; }

.partners__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2rem; align-items: end; }
.partners__grid > div:first-child { grid-column: 1 / 7; display: grid; gap: 1.25rem; }
.partners__body { grid-column: 8 / 13; display: grid; gap: 1.25rem; justify-items: start; }

@media (max-width: 899px) {
  .story__lead, .story__body, .story__img { grid-column: 1 / -1; }
  .record__grid { grid-template-columns: 1fr; }
  .standards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .people__grid { grid-template-columns: 1fr 1fr; }
  .partners__grid > div:first-child, .partners__body { grid-column: 1 / -1; }
}
@media (max-width: 559px) {
  .standards__grid, .people__grid { grid-template-columns: 1fr; }
}

/* ======================================================== locations == */

.dest { padding-block: clamp(4rem, 9vw, 8rem); }
.dest.band--night { border-radius: var(--corner-xl); }
.dest__stage { position: relative; }
.dest__media { position: relative; aspect-ratio: 21 / 9; overflow: hidden; border-radius: var(--corner-xl); background: var(--deep); }
.dest__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dest__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgb(12 23 48 / 0.6), rgb(12 23 48 / 0) 55%); pointer-events: none; }
.dest__title { position: absolute; inset-inline: clamp(1.25rem, 3vw, 3rem); top: clamp(1.25rem, 3vw, 2.75rem); z-index: 1; color: var(--plaster); }
.dest__name { font-size: var(--fs-display); font-weight: 600; line-height: .95; letter-spacing: -0.045em; }
.dest__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2.5rem; margin-top: clamp(2.5rem, 5vw, 4rem); }
.dest__text { grid-column: 1 / 7; display: grid; gap: 1rem; align-content: start; }
.dest__summary { font-size: var(--fs-h3); line-height: 1.3; letter-spacing: -0.015em; font-weight: 500; }
.dest__h { font-size: var(--fs-label); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-soft); margin-top: 1rem; }
.band--night .dest__h { color: var(--on-night-soft); }
.dest .facts li { color: inherit; border-color: var(--line); }
.dest.band--night .facts li { border-color: var(--line-night); }
.dest .facts { border-color: var(--line); }
.dest.band--night .facts { border-color: var(--line-night); }
.dest__side { grid-column: 8 / 13; }
.dest__projects { margin-top: clamp(3rem, 6vw, 5rem); display: grid; gap: 1.5rem; }
@media (max-width: 899px) {
  .dest__media { aspect-ratio: 4 / 3; border-radius: var(--corner); }
  .dest__text, .dest__side { grid-column: 1 / -1; }
  .dest__name { font-size: clamp(2.4rem, 11vw, 4rem); }
}

/* -------------------------------------------------------------- map -- */

.map { display: grid; gap: .9rem; }
.map__preview, .map__frame {
  position: relative; width: 100%; aspect-ratio: 4 / 3; border: 0; border-radius: var(--corner); overflow: hidden;
  background:
    linear-gradient(90deg, rgb(59 72 120 / 0.07) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(rgb(59 72 120 / 0.07) 1px, transparent 1px) 0 0 / 40px 40px,
    linear-gradient(115deg, transparent 46%, rgb(59 72 120 / 0.16) 46.5%, rgb(59 72 120 / 0.16) 48%, transparent 48.5%),
    linear-gradient(28deg, transparent 62%, rgb(59 72 120 / 0.12) 62.4%, rgb(59 72 120 / 0.12) 63.4%, transparent 63.8%),
    var(--paper);
}
.band--night .map__preview { background-color: rgb(236 236 236 / 0.06); }
.map__pin {
  position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; transform: translate(-50%, -100%) rotate(-45deg);
  background: var(--navy); border-radius: 50% 50% 50% 0; box-shadow: 0 8px 18px -6px rgb(19 34 63 / 0.6);
}
.map__pin::after { content: ''; position: absolute; inset: 7px; border-radius: 50%; background: var(--plaster); }
.map__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.map__note { font-size: .8125rem; color: var(--ink-soft); }
.band--night .map__note { color: var(--on-night-soft); }
.map.is-open .map__note { display: none; }

/* ============================================================= news == */

.ncards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem) clamp(1rem, 2vw, 2rem); }
.ncards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ncard--large { grid-column: 1 / -1; }
.ncard__link { display: grid; gap: .7rem; align-content: start; }
.ncard--large .ncard__link { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); align-items: end; }
.ncard__img { display: block; overflow: hidden; border-radius: var(--corner); aspect-ratio: 3 / 2; background: #dcdcdc; }
.ncard--large .ncard__img { grid-column: 1 / 8; grid-row: 1 / 5; aspect-ratio: 16 / 10; }
.ncard--large .ncard__meta, .ncard--large .ncard__title, .ncard--large .ncard__excerpt { grid-column: 8 / 13; }
.ncard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.ncard__link:hover .ncard__img img { transform: scale(1.04); }
.ncard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; font-size: var(--fs-small); color: var(--ink-soft); margin-top: .3rem; }
.ncard__title { font-size: 1.35rem; font-weight: 600; line-height: 1.25; letter-spacing: -0.015em; text-wrap: balance; }
.ncard--large .ncard__title { font-size: var(--fs-h3); }
.ncard__excerpt { color: var(--ink-soft); }
.ncard__link:hover .ncard__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.pager { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: clamp(3rem, 6vw, 5rem); padding-top: 1.5rem; border-top: 1px solid var(--line); }
@media (max-width: 899px) {
  .ncards, .ncards--two { grid-template-columns: 1fr; }
  .ncard--large .ncard__link { display: grid; grid-template-columns: 1fr; }
  .ncard--large .ncard__img, .ncard--large .ncard__meta, .ncard--large .ncard__title, .ncard--large .ncard__excerpt { grid-column: 1; grid-row: auto; }
}

.article__head { padding-top: calc(var(--header-h) + clamp(2.5rem, 6vw, 5rem)); display: grid; gap: 1.25rem; justify-items: start; }
.article__back { font-size: var(--fs-small); }
.article__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; font-size: var(--fs-small); color: var(--ink-soft); }
.article__meta a { text-decoration: underline; text-underline-offset: 3px; }
.article__title { font-size: clamp(2.2rem, 5vw, 4.5rem); font-weight: 600; line-height: 1.05; letter-spacing: -0.035em; max-width: 20ch; text-wrap: balance; }
.article__lede { font-size: var(--fs-lead); color: var(--ink-soft); max-width: 50ch; }
.article__cover { margin-top: clamp(2.5rem, 5vw, 4rem); overflow: hidden; border-radius: var(--corner-xl); aspect-ratio: 21 / 9; }
.article__cover > div, .article__cover img { width: 100%; height: 100%; }
.article__cover img { object-fit: cover; }
.article__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 3rem; padding-block: clamp(3rem, 6vw, 5rem) var(--section); }
.article__grid .prose { grid-column: 2 / 9; }
.article__aside { grid-column: 10 / 13; display: grid; gap: 1rem; align-content: start; position: sticky; top: calc(var(--header-h) + 2rem); }
.more-news { padding-top: 0; }
@media (max-width: 899px) {
  .article__cover { aspect-ratio: 4 / 3; border-radius: var(--corner); }
  .article__grid .prose, .article__aside { grid-column: 1 / -1; position: static; }
}

/* ------------------------------------------------------------ prose -- */

.prose { font-size: 1.0625rem; line-height: 1.75; color: var(--ink); max-width: 68ch; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); font-weight: 600; line-height: 1.2; letter-spacing: -0.02em; margin-top: 2em; }
.prose h3 { font-size: 1.2rem; font-weight: 600; margin-top: 1.6em; }
.prose ul, .prose ol { padding-inline-start: 1.25em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .4em; }
.prose a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.prose blockquote { padding-inline-start: 1.25rem; border-inline-start: 2px solid var(--navy); font-size: 1.2rem; color: var(--navy); }

/* ========================================================== contact == */

.quick { display: grid; grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); padding-bottom: clamp(2rem, 4vw, 3rem); }
.quick__item {
  display: grid; align-content: space-between; gap: 1.5rem; min-height: 11rem; padding: clamp(1.25rem, 2vw, 1.75rem);
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--corner);
  transition: background-color var(--dur), color var(--dur), border-color var(--dur);
}
a.quick__item:hover { background: var(--navy); color: var(--plaster); border-color: var(--navy); }
.quick__item .icon { width: 1.4rem; height: 1.4rem; }
.quick__label { font-size: var(--fs-small); opacity: .75; }
.quick__value { font-size: clamp(1.15rem, 1.6vw, 1.45rem); font-weight: 600; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.quick__value--sm { font-size: 1rem; }
.quick__item--main { background: var(--night); color: var(--plaster); border-color: var(--night); }
.quick__item--main .quick__value { font-size: clamp(3.5rem, 7vw, 6rem); line-height: .9; letter-spacing: -0.05em; }
a.quick__item--main:hover { background: var(--deep); }
@media (max-width: 1023px) { .quick { grid-template-columns: 1fr 1fr; } .quick__item--main { grid-column: 1 / -1; } }
@media (max-width: 559px) { .quick { grid-template-columns: 1fr; } .quick__item { min-height: 0; } }

.offices__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.office { display: grid; gap: 1rem; align-content: start; }
.office__name { font-size: var(--fs-h3); font-weight: 600; letter-spacing: -0.02em; line-height: 1.15; }
.office__address { font-size: var(--fs-lead); color: var(--ink-soft); }
.office__facts { display: grid; gap: .6rem; padding-block: 1rem; border-block: 1px solid var(--line); }
.office__facts div { display: grid; grid-template-columns: 9rem 1fr; gap: 1rem; }
.office__facts dt { color: var(--ink-soft); font-size: var(--fs-small); }
@media (max-width: 899px) { .offices__grid { grid-template-columns: 1fr; } .office__facts div { grid-template-columns: 1fr; gap: .2rem; } }

.tabs { display: flex; gap: .4rem; padding: 5px; margin-bottom: 1.25rem; background: rgb(236 236 236 / 0.06); border: 1px solid var(--line-night); border-radius: var(--corner); }
.tabs__tab { flex: 1; min-height: 2.9rem; padding: .5rem 1rem; border-radius: var(--corner-sm); font-weight: 500; color: var(--on-night-soft); transition: background-color var(--dur-fast), color var(--dur-fast); }
.tabs__tab:hover { color: var(--on-night); }
.tabs__tab[aria-selected='true'] { background: var(--plaster); color: var(--night); }
.tabs__lede { color: var(--on-night-soft); margin-bottom: 1rem; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 559px) { .form__row { grid-template-columns: 1fr; } }
.field input[type='date'] { color-scheme: dark; }

/* ============================================================ legal == */

.legal { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2rem; padding-bottom: var(--section); }
.legal__toc { grid-column: 1 / 4; position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; display: grid; gap: 1rem; }
.legal__toc ol { display: grid; gap: .5rem; font-size: .9375rem; counter-reset: toc; }
.legal__toc a { color: var(--ink-soft); }
.legal__toc a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.legal__body { grid-column: 5 / 12; }
.legal__body section + section { margin-top: 2.5rem; }
.legal__body h2 { margin-top: 0; }
@media (max-width: 899px) {
  .legal__toc { grid-column: 1 / -1; position: static; padding-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
  .legal__body { grid-column: 1 / -1; }
}

/* =========================================================== thanks == */

.thanks__mark { width: 4.5rem; color: var(--navy); margin-bottom: .5rem; }
.thanks__svg { width: 100%; height: auto; }
.thanks__docs { display: grid; justify-items: center; gap: .9rem; margin-top: 1.5rem; padding: 1.5rem 1.75rem; border: 1px solid var(--line); border-radius: var(--corner); background: var(--paper); }
.thanks__docs p { font-weight: 500; }
/* a brochure button can carry the project name too: let it wrap on a phone */
.thanks__docs .btn { max-width: 100%; white-space: normal; text-align: center; }
.thanks__call { display: grid; justify-items: center; gap: .5rem; margin-top: 1.5rem; color: var(--ink-soft); }
.thanks__num { color: var(--navy); font-size: clamp(3.5rem, 9vw, 7rem); }
.thanks__next .eyebrow { margin-bottom: 2rem; }
.thanks__links { margin-top: 2.5rem; }

/* ================================================== PROJECTS INDEX == */

.projects-index { padding-top: 0; }
.filters { display: grid; gap: 1.25rem; padding: clamp(1.25rem, 2.5vw, 2rem); margin-bottom: clamp(2.5rem, 5vw, 4rem); background: var(--paper); border: 1px solid var(--line); border-radius: var(--corner); }
.filters__group { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: 9rem 1fr; gap: .75rem 1.5rem; align-items: center; }
.filters__legend { float: left; padding: 0; font-size: var(--fs-label); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-soft); }
:lang(ar) .filters__legend { letter-spacing: 0; font-size: .9rem; }
[dir='rtl'] .filters__legend { float: right; }
.filters__chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.fchip { position: relative; cursor: pointer; }
.fchip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fchip span {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: .45rem 1rem;
  border: 1px solid var(--line); border-radius: var(--corner-sm); font-size: .9375rem; font-weight: 500;
  transition: background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}
.fchip:hover span { border-color: var(--navy); }
.fchip input:checked + span { background: var(--navy); border-color: var(--navy); color: var(--plaster); }
.fchip input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 2px; }
.filters__bar { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.filters__count { font-weight: 600; margin-inline-end: auto; }
.filters.is-live .filters__apply { display: none; }
@media (max-width: 699px) { .filters__group { grid-template-columns: 1fr; } }

.plist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4vw, 3.5rem) clamp(1rem, 2.5vw, 2.5rem); }
.plist__item[hidden] { display: none; }
.pc { display: grid; gap: 1.1rem; }
.pc__img { position: relative; display: block; overflow: hidden; aspect-ratio: 4 / 3; border-radius: var(--corner-xl); background: var(--deep); }
.pc__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease-out); }
.pc:hover .pc__img img { transform: scale(1.05); }
.pc__status {
  position: absolute; inset-inline-start: 1rem; top: 1rem; padding: .35rem .8rem; border-radius: var(--corner-sm);
  background: rgb(246 246 245 / 0.9); color: var(--night); font-size: .8125rem; font-weight: 600;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.plist__item--sold_out .pc__img img { filter: grayscale(.7); }
.plist__item--sold_out .pc__status { background: var(--night); color: var(--plaster); }
.plist__item--coming_soon .pc__status { background: var(--navy); color: var(--plaster); }
.pc__body { display: grid; gap: .5rem; }
.pc__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; font-size: var(--fs-small); color: var(--ink-soft); }
.pc__name { font-size: clamp(1.9rem, 3.4vw, 3rem); line-height: 1.02; letter-spacing: -0.035em; }
.pc__name b { font-weight: 600; }
.pc__name i { font-weight: 300; color: var(--navy); }
:lang(ar) .pc__name { letter-spacing: 0; line-height: 1.25; }
:lang(ar) .pc__name b { font-weight: 700; }
:lang(ar) .pc__name i { font-style: normal; }
.pc__line { font-size: var(--fs-lead); color: var(--ink-soft); }
.pc__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-top: .9rem; margin-top: .3rem; border-top: 1px solid var(--line); font-size: .9375rem; }
.pc__kinds { color: var(--ink-soft); }
.pc__price { font-weight: 600; color: var(--navy); }
.pc:hover .pc__name b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .15em; }
@media (max-width: 799px) { .plist { grid-template-columns: 1fr; } }

/* ==================================================== PROJECT PAGE == */

.phx { position: relative; min-height: min(100svh, 1000px); display: grid; align-items: end; overflow: hidden; color: var(--plaster); }
.phx__media { position: absolute; inset: 0; }
.phx__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.phx__media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgb(12 23 48 / 0.86), rgb(12 23 48 / 0.3) 45%, rgb(12 23 48 / 0.45)); }
.phx__content { position: relative; z-index: 1; display: grid; gap: 1.1rem; justify-items: start; padding-top: calc(var(--header-h) + 3rem); padding-bottom: clamp(3rem, 7vw, 6rem); }
.phx__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.1rem; font-size: var(--fs-small); letter-spacing: .06em; }
.phx__status { padding: .3rem .75rem; border-radius: var(--corner-sm); background: var(--plaster); color: var(--night); font-weight: 600; letter-spacing: 0; }
.phx__title { font-size: clamp(3.2rem, 9vw, 9rem); line-height: .95; letter-spacing: -0.045em; }
.phx__title .phero__line--light { color: var(--plaster); opacity: .92; }
:lang(ar) .phx__title { letter-spacing: 0; line-height: 1.2; }
.phx__line { font-size: clamp(1.15rem, 1.8vw, 1.6rem); max-width: 32ch; color: rgb(236 236 236 / 0.9); }
.phx__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: .75rem; }
.phx__actions .link { color: var(--plaster); }

.subnav { position: sticky; top: var(--header-h); transition: top .6s var(--ease-out); z-index: calc(var(--z-header) - 2); background: rgb(236 236 236 / 0.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
body:has(.site-header.is-hidden) .subnav { top: 0; }   /* the bar moves up when the header slides away */
.subnav__inner { display: flex; gap: clamp(1rem, 2.5vw, 2.25rem); overflow-x: auto; scrollbar-width: none; }
.subnav__inner::-webkit-scrollbar { display: none; }
.subnav a { position: relative; flex: none; padding-block: 1.05rem; font-size: .9375rem; font-weight: 500; color: var(--ink-soft); white-space: nowrap; }
.subnav a::after { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 2px; background: var(--navy); transform: scaleX(0); transition: transform var(--dur) var(--ease-out); }
.subnav a:hover, .subnav a.is-on { color: var(--ink); }
.subnav a.is-on::after { transform: none; }

.pidea__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2.5rem; align-items: start; }
.pidea__text { grid-column: 1 / 8; display: grid; gap: 1.5rem; }
.pidea__lead { max-width: 30ch; font-size: clamp(1.4rem, 2.5vw, 2.4rem); }
.pidea__body { font-size: var(--fs-lead); color: var(--ink-soft); max-width: 52ch; }
.facts--light { border-color: var(--line); max-width: 36rem; }
.facts--light li { color: var(--ink); border-color: var(--line); }
.pidea__img { grid-column: 9 / 13; overflow: hidden; border-radius: var(--corner); aspect-ratio: 4 / 5; }
.pidea__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 899px) { .pidea__text, .pidea__img { grid-column: 1 / -1; } .pidea__img { aspect-ratio: 4 / 3; } }

.pmp { padding-top: 0; }
.pmp__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2rem; align-items: start; }
.pmp__plan { position: relative; grid-column: 1 / 9; margin: 0; overflow: hidden; border-radius: var(--corner); border: 1px solid var(--line); background: var(--paper); }
.pmp__plan img { width: 100%; height: auto; }
.pmp__pin {
  position: absolute; width: 2.2rem; height: 2.2rem; transform: translate(-50%, -50%);
  display: grid; place-items: center; border-radius: 50%;
  background: var(--navy); color: var(--plaster); font: 600 .9rem/1 var(--font); border: 2px solid var(--plaster);
  box-shadow: 0 6px 16px -6px rgb(19 34 63 / 0.6); transition: transform var(--dur) var(--ease-out), background-color var(--dur-fast);
}
.pmp__pin::before { content: ''; position: absolute; inset: -10px; border-radius: 50%; }  /* 44px touch target */
.pmp__pin:hover, .pmp__pin.is-on { transform: translate(-50%, -50%) scale(1.2); background: var(--night); }
.pmp__legend { grid-column: 9 / 13; display: grid; gap: 1rem; }
.pmp__legend .dest__h { margin-top: 0; }
.pmp__list { display: grid; }
.pmp__list li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .9rem; padding: .85rem .6rem; border-bottom: 1px solid var(--line); border-radius: var(--corner-sm); transition: background-color var(--dur-fast); cursor: default; }
.pmp__list li.is-on { background: rgb(59 72 120 / 0.08); }
.pmp__num { width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: 50%; background: var(--navy); color: var(--plaster); font-size: .8rem; font-weight: 600; }
.pmp__list .muted { font-size: .9rem; }
.tag--sm { padding: .18rem .5rem; font-size: .625rem; vertical-align: middle; }
.pmp__note { font-size: .8125rem; color: var(--ink-soft); }
@media (max-width: 999px) { .pmp__plan, .pmp__legend { grid-column: 1 / -1; } .pmp__pin { width: 1.8rem; height: 1.8rem; font-size: .75rem; } }

.punits { padding-block: var(--section); border-radius: var(--corner-xl); }
.pnote { display: inline-block; margin-bottom: clamp(2rem, 4vw, 3rem); padding: .6rem 1rem; border: 1px dashed rgb(255 214 120 / 0.6); border-radius: var(--corner-sm); color: #ffd98a; font-size: .875rem; }
.punits__block + .punits__block { margin-top: clamp(4rem, 8vw, 7rem); }
.punits__block > .h2 { margin-bottom: clamp(1.5rem, 3vw, 2.5rem); }
.utable { overflow-x: auto; border: 1px solid var(--line-night); border-radius: var(--corner); }
.utable table { width: 100%; border-collapse: collapse; min-width: 44rem; font-size: .9375rem; }
.utable th, .utable td { padding: 1.1rem 1.25rem; text-align: start; border-bottom: 1px solid var(--line-night); vertical-align: top; }
.utable thead th { font-size: var(--fs-label); font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--on-night-soft); background: rgb(236 236 236 / 0.04); }
:lang(ar) .utable thead th { letter-spacing: 0; font-size: .85rem; }
.utable tbody tr:last-child > * { border-bottom: 0; }
.utable tbody th { font-weight: 600; }
.utable__kind { display: block; font-weight: 400; font-size: .8125rem; color: var(--on-night-soft); margin-top: .2rem; }
.utable__price { font-weight: 600; white-space: nowrap; }
.utable__row--sold_out { color: rgb(236 236 236 / 0.5); }
.avail { display: inline-block; padding: .25rem .6rem; border-radius: var(--corner-sm); font-size: .8125rem; font-weight: 500; background: rgb(191 227 198 / 0.14); color: #BFE3C6; white-space: nowrap; }
.avail--few_left { background: rgb(255 214 120 / 0.14); color: #ffd98a; }
.avail--sold_out { background: rgb(236 236 236 / 0.08); color: var(--on-night-soft); }
@media (max-width: 699px) {
  .utable { border: 0; overflow: visible; }
  .utable table { min-width: 0; }
  .utable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .utable tr { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem 1rem; padding: 1.1rem 1.1rem; margin-bottom: .9rem; border: 1px solid var(--line-night); border-radius: var(--corner); }
  .utable th, .utable td { display: block; padding: .35rem 0; border: 0; }
  .utable tbody th { grid-column: 1 / -1; font-size: 1.1rem; padding-bottom: .6rem; }
  .utable td::before { content: attr(data-label); display: block; font-size: .75rem; color: var(--on-night-soft); margin-bottom: .1rem; }
}

.plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: clamp(1rem, 2vw, 2rem); }
.plan { display: grid; gap: 1.1rem; align-content: start; padding: clamp(1.5rem, 2.5vw, 2.25rem); border: 1px solid var(--line-night); border-radius: var(--corner); background: rgb(236 236 236 / 0.03); }
.plan__name { font-size: 1.2rem; font-weight: 600; }
.plan__down { display: flex; align-items: baseline; gap: .6rem; color: var(--on-night-soft); }
.plan__big { font-size: clamp(3rem, 5vw, 4.25rem); font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: var(--on-night); }
.plan__facts { display: grid; gap: .55rem; padding-top: 1rem; border-top: 1px solid var(--line-night); }
.plan__facts div { display: flex; justify-content: space-between; gap: 1rem; font-size: .9375rem; }
.plan__facts dt { color: var(--on-night-soft); }
.plan__facts dd { font-weight: 500; text-align: end; }
.plan__note { font-size: .8125rem; color: var(--on-night-soft); }

.pgal__tabs { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip.is-on { background: var(--navy); color: var(--plaster); border-color: var(--navy); }
.pgal__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.25rem); }
.pgal__item[hidden] { display: none; }
.pgal__item--wide { grid-column: span 2; grid-row: span 2; }
.pgal__btn { display: block; width: 100%; min-width: 0; height: 100%; overflow: hidden; border-radius: var(--corner); aspect-ratio: 4 / 3; cursor: zoom-in; background: #dcdcdc; }
.pgal__item--wide .pgal__btn { aspect-ratio: auto; min-height: 100%; }
.pgal__btn img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease-out); }
.pgal__btn:hover img { transform: scale(1.04); }
.pgal__item--wide { display: grid; grid-template-rows: 1fr auto; }
.pgal__cap { font-size: var(--fs-small); color: var(--ink-soft); margin-top: .5rem; }
@media (max-width: 799px) { .pgal__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 499px) { .pgal__grid { grid-template-columns: minmax(0, 1fr); } .pgal__item--wide { grid-column: auto; grid-row: auto; } .pgal__item--wide .pgal__btn { aspect-ratio: 4 / 3; } }

.lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: rgb(8 14 30 / 0.96); color: var(--plaster); }
.lightbox::backdrop { background: rgb(8 14 30 / 0.7); }
.lightbox[open] { display: grid; place-items: center; }
.lightbox__fig { display: grid; gap: .9rem; justify-items: center; max-width: min(92vw, 1400px); margin: 0; }
.lightbox__fig img { max-width: 100%; max-height: 80dvh; width: auto; height: auto; border-radius: var(--corner); }
.lightbox__fig figcaption { font-size: .9375rem; color: var(--on-night-soft); text-align: center; }
.lightbox__count { position: absolute; top: 1.4rem; inset-inline-start: 1.5rem; font-size: .875rem; color: var(--on-night-soft); }
.lightbox__btn { position: absolute; width: 3rem; height: 3rem; display: grid; place-items: center; border-radius: 50%; background: rgb(236 236 236 / 0.1); color: var(--plaster); transition: background-color var(--dur-fast); }
.lightbox__btn:hover { background: rgb(236 236 236 / 0.22); }
.lightbox__btn .icon { width: 1.3rem; height: 1.3rem; }
.lightbox__close { top: 1rem; inset-inline-end: 1rem; }
.lightbox__prev { inset-inline-start: 1rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { inset-inline-end: 1rem; top: 50%; transform: translateY(-50%); }
@media (max-width: 699px) { .lightbox__prev, .lightbox__next { top: auto; bottom: 1.25rem; transform: none; } }

.ploc__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2vw, 2rem); row-gap: 2.5rem; align-items: start; }
.ploc__text { grid-column: 1 / 6; display: grid; gap: 1.5rem; }
.ploc__map { grid-column: 7 / 13; }
.places { display: grid; border-top: 1px solid var(--line); }
.places li { display: flex; justify-content: space-between; gap: 1rem; padding-block: .95rem; border-bottom: 1px solid var(--line); }
.places__min { font-weight: 600; color: var(--navy); white-space: nowrap; }
.places__note { font-size: .8125rem; }
@media (max-width: 899px) { .ploc__text, .ploc__map { grid-column: 1 / -1; } }

.pdocs { padding-top: 0; }
.docs { display: grid; gap: .75rem; max-width: 52rem; }
.doc { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1.25rem; padding: 1.1rem 1.25rem; border: 1px solid var(--line); border-radius: var(--corner); background: var(--paper); }
.doc__icon { width: 3rem; height: 3.6rem; display: grid; place-items: center; border-radius: 4px 12px 4px 12px; background: var(--navy); color: var(--plaster); font-size: .7rem; font-weight: 600; letter-spacing: .08em; }
.doc__text { display: grid; gap: .2rem; }
.doc__text .muted { font-size: .875rem; }
@media (max-width: 559px) { .doc { grid-template-columns: auto 1fr; } .doc .btn { grid-column: 1 / -1; } }

/* phone gate for brochures */
.gate { position: fixed; inset: 0; z-index: calc(var(--z-menu) + 5); display: grid; place-items: center; padding: var(--gutter); background: rgb(8 14 30 / 0.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gate[hidden] { display: none !important; }
.gate__panel { position: relative; width: min(100%, 30rem); max-height: calc(100dvh - 2rem); overflow: auto; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--night); color: var(--on-night); border-radius: var(--corner); box-shadow: 0 40px 90px -30px rgb(0 0 0 / 0.7); }
.gate__close { position: absolute; top: .75rem; inset-inline-end: .75rem; width: 2.75rem; height: 2.75rem; display: grid; place-items: center; border-radius: 50%; color: var(--on-night); }
.gate__close:hover { background: rgb(236 236 236 / 0.1); }
.gate__title { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.02em; padding-inline-end: 2.5rem; }
.gate__lede { color: var(--on-night-soft); margin: .6rem 0 1.4rem; font-size: .9375rem; }
.gate__done { display: grid; gap: 1.1rem; }
.gate__done .btn--primary { --btn-bg: var(--plaster); --btn-fg: var(--night); --btn-fill: #fff; }
.form--gate { padding: 0; background: none; border: 0; }
.form--gate .btn--primary { --btn-bg: var(--plaster); --btn-fg: var(--night); --btn-fill: #fff; }
html.gate-open, html.gate-open body { overflow: hidden; }