/* Project discovery within the existing premium editorial system. */
[hidden] { display:none !important; }
.project-discovery { scroll-margin-top:8rem; border-top:1px solid #d7e1df; }
.project-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin:2rem 0; padding:2rem; background:#f2f3ed; }
.project-filters .project-search { grid-column:1/-1; }
.project-filters label { display:block; font-weight:600; margin-bottom:.5rem; }
.project-filters input,.project-filters select { width:100%; min-width:0; min-height:48px; padding:.75rem; background:white; border:1px solid #829b9c; border-radius:2px; color:#18323d; font:inherit; }
.project-filter-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; }
.project-filters .p-button { cursor:pointer; font:inherit; border:0; }
.discovery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin-top:2rem; }
.discovery-card { padding:2rem; border:1px solid #cddad6; background:#fbfaf6; }
.discovery-card h3 { font-size:clamp(1.7rem,3vw,2.6rem); margin:1rem 0; }
.discovery-card p { line-height:1.7; overflow-wrap:anywhere; }
.project-story h1 { max-width:20ch; font-size:clamp(2.5rem,6vw,5.5rem); line-height:1.08; overflow-wrap:anywhere; margin:2rem 0; }
.project-story__body { max-width:850px; padding-bottom:6rem; }
.project-story__body section { padding:2rem 0; border-top:1px solid #d2dfda; }
.project-story__body p { line-height:1.85; overflow-wrap:anywhere; }
.project-facts { display:grid; grid-template-columns:2fr 1fr 1fr; gap:2rem; margin-top:3rem; }
.project-facts dt { font-size:.85rem; color:#4c6067; }
.project-facts dd { margin:.5rem 0 0; line-height:1.6; overflow-wrap:anywhere; }
@media(max-width:700px) { .project-filters { grid-template-columns:1fr; padding:1.25rem; }.discovery-grid,.project-facts { grid-template-columns:1fr; }.discovery-card { padding:1.5rem; }.project-facts { gap:1rem; } }

/* Neutral, image-free report placeholder: no imitation photograph or project attribution. */
.project-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem; min-height:10rem; padding:1.5rem; margin-bottom:1.5rem; color:#375961; background:linear-gradient(135deg,#f0f1e9,#deebe4); border:1px solid #ceded5; text-align:center; font-size:.875rem; letter-spacing:.02em; }
.project-placeholder__document { position:relative; display:block; width:2.8rem; height:3.4rem; border:1.5px solid currentColor; border-radius:3px; opacity:.75; }
.project-placeholder__document::before,.project-placeholder__document::after { content:""; position:absolute; left:.6rem; right:.6rem; height:1px; background:currentColor; }
.project-placeholder__document::before { top:1.1rem; box-shadow:0 .55rem currentColor; }
.project-placeholder__document::after { top:2.2rem; right:1rem; }
.project-story header > .project-placeholder { margin-top:3rem; min-height:13rem; }

/* Optional country globe; all rules are scoped to this additional project section. */
.project-globe { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(2rem,5vw,5rem); align-items:center; margin-block:clamp(2.5rem,5vw,5rem); }
.project-globe h2 { font-size:clamp(2rem,3.5vw,3.7rem); line-height:1.12; max-width:14ch; margin:.8rem 0 1.5rem; }
.project-globe__copy > p { line-height:1.65; }
.project-globe__touch,.project-globe__map-note { color:#52666b; font-size:.84rem; line-height:1.6; }
.project-globe__legend { list-style:none; padding:0; margin:1.5rem 0; display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; font-size:.8rem; }
.project-globe__legend li { display:flex; align-items:center; gap:.45rem; }
.globe-key { width:.65rem; height:.65rem; border-radius:50%; background:#416270; border:1px solid #496c74; flex:none; }
.globe-key--with { background:#39c9b3; }.globe-key--selected { background:#fae4ad; border-color:#8e7743; }
.project-globe__selection { border-top:1px solid #ceded8; padding-top:1rem; min-height:6rem; }
.project-globe__selection > span { font-size:.75rem; color:#52666b; }.project-globe__selection p { margin:.35rem 0; font-weight:600; line-height:1.5; }
.project-globe button { min-height:44px; font:inherit; cursor:pointer; }
.project-globe__selection button { border:0; padding:0; text-decoration:underline; background:transparent; color:#245d60; font-size:.875rem; }
.project-globe__visual { min-width:0; }
.project-globe__stage { position:relative; height:clamp(300px,36vw,480px); overflow:hidden; border-radius:50% 50% 3px 3px; background:radial-gradient(ellipse at 45% 44%,#224a58,#112b3c 70%); }
.project-globe__stage canvas { display:block; width:100%; height:100%; touch-action:pan-y; cursor:grab; }
.project-globe__stage canvas.is-dragging { cursor:grabbing; }
.project-globe__stage > [data-globe-status] { position:absolute; inset:35% 12% auto; color:#e1f0e9; text-align:center; line-height:1.7; }
.project-globe__tooltip { position:absolute; pointer-events:none; z-index:1; max-width:calc(100% - 16px); padding:.6rem .85rem; margin:0; border:1px solid #91b6b0; border-radius:3px; background:#f7f5eb; color:#18323d; font-size:.8rem; line-height:1.4; box-shadow:0 4px 20px #071b2a33; }
.project-globe__controls { display:flex; flex-wrap:wrap; gap:.4rem; padding:.65rem; background:#112b3c; border-radius:0 0 3px 3px; }
.project-globe__controls button { background:transparent; color:#f1f7f1; border:1px solid #6d9398; border-radius:2px; min-width:44px; padding:.4rem .65rem; font-size:.8rem; }
.project-globe__controls button:hover { background:#315463; }.project-globe button:focus-visible { outline:3px solid #008d85; outline-offset:4px; }
.project-globe__map-note { margin:.65rem 0 0; font-size:.7rem; }
@media(max-width:760px) { .project-globe { grid-template-columns:1fr; gap:1.25rem; }.project-globe h2 { max-width:20ch; }.project-globe__stage { height:270px; }.project-globe__legend { margin:1rem 0; }.project-globe__selection { min-height:0; }.project-globe__controls button:last-child { flex:1; } }
@media(max-width:350px) { .project-globe__stage { height:240px; } }
@media(prefers-reduced-motion:reduce) { .project-globe * { scroll-behavior:auto; } }
