/* Project details only. Existing palette, typefaces, AOS and container widths are inherited. */
.single-whm_project #mainNav { background: rgba(255,255,255,.95); }
.single-whm_project #mainNav .nav-link { color: var(--primary-color); }
.single-whm_project #mainNav .navbar-toggler-icon { background: var(--primary-color); }
.whm-editorial-project { --editorial-space: clamp(4rem, 9vw, 9rem); }
.whm-project-opening { padding: clamp(150px, 14vw, 200px) 0 clamp(3rem, 5vw, 4.5rem); }
.whm-opening-grid { display: grid; grid-template-columns: minmax(0, .34fr) minmax(0, .66fr); align-items: start; gap: clamp(2rem, 3.5vw, 3.5rem); }
.whm-opening-visual { padding-top: 2.5rem; }
.whm-opening-availability { margin-top: 1.75rem; padding-top: 1rem; border-top: 1px solid rgba(180,151,107,.25); text-align: left; }
.whm-opening-availability .section-subtitle { display: block; font-size: .69rem; letter-spacing: .12em; margin-bottom: .8rem; }
.whm-opening-availability p { max-width: 760px; font-size: .9375rem; line-height: 1.7; margin-bottom: .7rem; }
.whm-opening-availability p:last-child { margin-bottom: 0; }
.whm-opening-availability p + p { font-size: .85rem; color: var(--text-color); }
.whm-opening-copy .section-title { margin: .7rem 0 1.5rem; }
.whm-project-introduction { color: var(--text-color); line-height: 1.8; margin-bottom: 1.8rem; }
.whm-opening-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1.75rem; margin: 0; }
.whm-opening-facts dt { font-size: .69rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500; color: var(--text-color); margin-bottom: .3rem; }
.whm-opening-facts dd { font-size: .9375rem; margin: 0; line-height: 1.65; overflow-wrap: anywhere; }
.whm-opening-services { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.8rem; font-size: .8rem; }
.whm-opening-services a, .whm-project-return a { color: var(--primary-color); border-bottom: 1px solid var(--accent-color); }
.whm-editorial-figure { margin: 0; }
.whm-editorial-figure a { position: relative; display: block; overflow: hidden; border-radius: 8px; cursor: zoom-in; }
.whm-editorial-figure img { display: block; width: 100%; height: auto; object-fit: contain; contain-intrinsic-size: none; }
.whm-opening-visual img { transform: scale(var(--whm-image-zoom, 1)); }
.whm-project-lead figure > a { aspect-ratio: var(--lead-ratio, 2.1); }
.whm-project-lead figure > a > img { height: 100%; object-fit: cover; }
.whm-project-lead .whm-process-layer { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; transform: none; opacity: 0; transition: opacity 1.3s ease; pointer-events: none; }
.whm-project-lead .whm-process-layer img { position: absolute; display: block; max-width: none; min-height: 0; object-fit: contain; transform: none; }
.whm-project-lead .whm-process-layer.is-visible { opacity: 1; }
.whm-project-lead .whm-image-affordance { z-index: 2; }
.whm-image-affordance { position: absolute; right: 1rem; bottom: 1rem; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: rgba(255,255,255,.9); color: var(--primary-color); font: 20px/1 sans-serif; opacity: 0; transition: opacity .3s; }
.whm-editorial-figure a:hover .whm-image-affordance, .whm-editorial-figure a:focus-visible .whm-image-affordance { opacity: 1; }
.whm-editorial-figure a:focus-visible, .whm-next-spread:focus-visible { outline: 2px solid var(--accent-color); outline-offset: 5px; }
.whm-project-story { padding-bottom: var(--editorial-space); }
.whm-story-grid { display: grid; grid-template-columns: minmax(0, .48fr) minmax(0, .52fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.whm-story-grid.has-portrait { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.whm-story-copy { max-width: 36rem; }
.whm-story-copy .section-subtitle { display: block; margin-bottom: 1.5rem; }
.whm-story-copy p { line-height: 1.9; margin-bottom: 0; }
.whm-story-copy p + p { margin-top: 1rem; }
.whm-project-notes { padding-bottom: var(--editorial-space); }
.whm-notes-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem 4rem; align-items: start; }
.whm-notes-grid p { font-size: 1rem; line-height: 1.85; }
.whm-notes-grid .section-subtitle { display: block; margin-bottom: 1rem; }
.whm-editorial-composition { margin-bottom: var(--editorial-space); display: grid; gap: clamp(1.5rem, 3vw, 3rem); align-items: center; }
.whm-editorial-composition.is-asymmetric { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
.whm-editorial-composition.is-inset { width: 82%; margin-left: auto; }
.whm-editorial-composition.is-asymmetric > :last-child { padding-top: 12%; }
.whm-editorial-composition.is-portrait-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
/* A bounded editorial story followed by compact supporting media. */
.whm-media-block { margin-bottom: clamp(4.5rem, 6.5vw, 6rem); }
.whm-media-block-items { display: grid; gap: clamp(1.5rem, 3vw, 3rem); align-items: center; }
.whm-media-block--centered .whm-media-block-items { width: min(82%, 1050px); margin-inline: auto; }
.whm-media-block--centered .is-portrait { max-width: 600px; margin-inline: auto; }
.whm-media-block--pair .whm-media-block-items { grid-template-columns: repeat(2, minmax(0,1fr)); }
.whm-media-block--asymmetric .whm-media-block-items { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); }
.whm-media-block--pair .whm-media-block-items,
.whm-media-block--asymmetric .whm-media-block-items { align-items: stretch; gap: clamp(24px, 2.3vw, 32px); }
.whm-media-block--pair .whm-media-block-items,
.whm-media-block--asymmetric .whm-media-block-items { aspect-ratio: auto; }
.whm-media-block--pair .whm-editorial-figure,
.whm-media-block--asymmetric .whm-editorial-figure { height: auto; }
.whm-media-block--pair .whm-editorial-figure a,
.whm-media-block--asymmetric .whm-editorial-figure a { height: auto; display: block; }
.whm-media-block--pair .whm-editorial-figure img,
.whm-media-block--asymmetric .whm-editorial-figure img { height: auto; min-height: 0; object-fit: contain; }
.whm-media-block--compact .whm-media-block-items { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: start; gap: 2rem; }
.whm-media-block--compact[data-media-count="1"] .whm-media-block-items { grid-template-columns: minmax(0,1fr); width: min(100%,500px); margin-inline: auto; }
.whm-media-block--compact[data-media-count="2"] .whm-media-block-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
.whm-support-label { margin-bottom: 1.5rem; }
.whm-media-block--compact .whm-editorial-figure a { display: block; }
.whm-media-block--compact .whm-editorial-figure img { height: auto; min-height: 0; object-fit: contain; }
.whm-editorial-figure figcaption, .whm-media-caption { margin-top: .8rem; font-size: .8rem; line-height: 1.6; color: var(--text-color); }
.whm-media-text-composition { max-width: 1050px; margin-inline: auto; }
.whm-media-text-composition.has-copy { max-width: none; display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); align-items: center; gap: clamp(2rem,5vw,5rem); }
.whm-media-text-copy .section-subtitle { display: block; margin-bottom: 1.2rem; }
.whm-media-text-copy p { line-height: 1.9; }
.whm-media-block--technical .whm-media-text-image { background: var(--light-bg, #f5f3ee); padding: clamp(1rem,3vw,3rem); border-radius: 8px; }
.whm-media-block--technical .whm-media-text-copy { margin-top: 1.2rem; }
.whm-media-block--technical .has-copy .whm-media-text-copy { margin-top: 0; }
.whm-graphic-watermark { position: absolute; left: 50%; bottom: 1rem; transform: translateX(-50%); padding: .4rem .8rem; color: #665b48; background: rgba(255,255,255,.78); font-size: .65rem; letter-spacing: .1em; white-space: nowrap; pointer-events: none; }
.whm-graphic-watermark[hidden] { display: none; }
.whm-viewer-canvas { position: relative; }
.whm-media-video .section-subtitle { margin-bottom: 1rem; }
.whm-concept-footnote { font-size: .9375rem; line-height: 1.65; color: var(--text-color); padding-block: 1.5rem 2rem; text-align: left; }
.whm-design-availability { max-width: 960px; padding-block: 1rem 3.5rem; }
.whm-design-availability .section-subtitle { display: block; margin-bottom: 1rem; }
.whm-design-availability p { font-size: 1rem; line-height: 1.75; }
.whm-project-copyright { max-width: 960px; font-size: .875rem; line-height: 1.65; color: var(--text-color); padding-block: 1rem 3.5rem; }
.whm-concept-footnote p { max-width: none; margin: 0; }
.whm-next-project { padding: var(--editorial-space) 0 2.5rem; background: var(--light-bg, #f5f3ee); }
.whm-next-spread { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 6rem); color: var(--primary-color); }
.whm-next-spread .section-title { margin: 1rem 0; }
.whm-next-label { font-size: .85rem; color: var(--text-color); }
.whm-next-preview { overflow: hidden; border-radius: 8px; }
.whm-next-preview img { display: block; width: 100%; height: auto; transition: transform .5s; }
.whm-next-spread:hover img { transform: scale(1.025); }
.whm-project-return { margin-top: 2.5rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1.5rem; font-size: .85rem; }

/* Native dialog is exclusively the still-image viewer. Video stays inline. */
.whm-image-viewer { border: 0; padding: 0; margin: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; background: #171716; color: #fff; overflow: hidden; }
.whm-image-viewer::backdrop { background: #171716; }
.whm-image-viewer[open] { display: grid; place-items: center; }
.whm-image-viewer figure { width: calc(100% - 140px); margin: 0; }
.whm-viewer-canvas { height: calc(100dvh - 120px); display: grid; place-items: center; touch-action: pan-y; }
.whm-viewer-canvas img { display: block; width: 100%; height: 100%; max-height: calc(100dvh - 120px); min-height: 0; object-fit: contain; user-select: none; }
.whm-image-viewer figcaption { display: flex; align-items: center; justify-content: center; gap: 1.5rem; min-height: 44px; font-size: .75rem; letter-spacing: .04em; color: #e1ddd5; }
.whm-image-viewer button { position: absolute; display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid #77736b; border-radius: 50%; background: transparent; color: #fff; font: 24px/1 sans-serif; cursor: pointer; transform: none; transition: border-color .2s, color .2s; z-index: 1; }
.whm-image-viewer button:hover, .whm-image-viewer button:focus-visible { color: var(--accent-color); border-color: var(--accent-color); transform: none; }
.whm-image-viewer .whm-viewer-close { top: 16px; right: 20px; }
.whm-image-viewer .whm-viewer-prev { left: 12px; top: calc(50% - 24px); }
.whm-image-viewer .whm-viewer-next { right: 12px; top: calc(50% - 24px); }
.whm-image-viewer button[hidden] { display: none; }
.whm-viewer-error { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); }
.whm-viewer-error a { color: var(--accent-color); }
@media (max-width: 991px) {
  .whm-story-grid, .whm-story-grid.has-portrait { grid-template-columns: 1fr; }
  .whm-opening-copy { max-width: 40rem; }
  .whm-opening-visual { grid-row: 2; }
  .whm-story-copy { max-width: 42rem; }
  .whm-next-spread { gap: 2rem; }
  .whm-media-text-composition.has-copy { grid-template-columns: 1fr; }
  .whm-media-block--compact .whm-media-block-items { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .whm-notes-grid { gap: 2.5rem; }
}
@media (max-width: 899px) {
  .whm-opening-grid { grid-template-columns: 1fr; }
  .whm-opening-visual { padding-top: 0; }
}
@media (min-width: 900px) {
  .whm-opening-visual { grid-row: auto; }
  .whm-project-lead figure > a { aspect-ratio: 16 / 10; }
}
@media (max-width: 575px) {
  .whm-notes-grid { grid-template-columns: 1fr; }
  .whm-project-opening { padding-top: 145px; }
  .whm-editorial-composition.is-asymmetric, .whm-editorial-composition.is-portrait-pair, .whm-next-spread { grid-template-columns: 1fr; }
  .whm-editorial-composition.is-asymmetric > :last-child { padding-top: 0; }
  .whm-editorial-composition.is-inset { width: 100%; }
  .whm-media-block--centered .whm-media-block-items { width: 100%; }
  .whm-media-block--pair .whm-media-block-items, .whm-media-block--asymmetric .whm-media-block-items { grid-template-columns: 1fr; }
  .whm-media-block--pair .whm-media-block-items, .whm-media-block--asymmetric .whm-media-block-items { aspect-ratio: auto; }
  .whm-media-block--asymmetric .whm-media-block-item:last-child { padding-top: 0; }
  .whm-media-block--compact .whm-media-block-items,
  .whm-media-block--compact[data-media-count="2"] .whm-media-block-items { grid-template-columns: 1fr; gap: 2rem; }
  .whm-media-block--pair .whm-editorial-figure a,
  .whm-media-block--asymmetric .whm-editorial-figure a { height: auto; }
  .whm-media-block--pair .whm-editorial-figure img,
  .whm-media-block--asymmetric .whm-editorial-figure img { height: auto; }
  .whm-media-block--compact .whm-media-block-item.is-video { grid-column: 1 / -1; }
  .whm-image-affordance { opacity: 1; width: 28px; height: 28px; }
  .whm-image-viewer figure { width: calc(100% - 24px); }
  .whm-viewer-canvas { height: calc(100dvh - 170px); }
  .whm-viewer-canvas img { max-height: calc(100dvh - 170px); }
  .whm-image-viewer .whm-viewer-prev, .whm-image-viewer .whm-viewer-next { top: auto; bottom: 16px; }
  .whm-image-viewer figcaption { flex-direction: column; gap: .3rem; padding: 0 2rem; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .whm-next-preview img, .whm-image-affordance { transition: none; } }
@media (prefers-reduced-motion: reduce) { .whm-project-lead .whm-process-layer { display: none; transition: none; } }
