/* Start custom CSS for html, class: .elementor-element-a88cd23 */.ph-article{
  --ph-bg:#f6f7f8;
  --ph-card:#ffffff;
  --ph-text:#20242a;
  --ph-muted:#66707b;
  --ph-line:#e3e7eb;
  --ph-accent:#1f5f4a;
  --ph-accent-soft:#e9f3ef;
  --ph-warn:#fff5dc;
  --ph-war:#8f4c42;
  max-width:1120px;
  margin:0 auto;
  padding:24px 18px 60px;
  color:var(--ph-text);
  font-family:Arial,Helvetica,sans-serif;
  font-size:18px;
  line-height:1.72;
}

.ph-article *{box-sizing:border-box}
.ph-article h1,.ph-article h2,.ph-article h3{line-height:1.17;color:#15191d}
.ph-article h1{font-size:clamp(34px,5vw,58px);margin:12px 0 20px;letter-spacing:-.03em}
.ph-article h2{font-size:clamp(28px,3.5vw,40px);margin:62px 0 18px;letter-spacing:-.02em}
.ph-article p{margin:0 0 20px}
.ph-article a{color:#145e7a;text-decoration-thickness:1px;text-underline-offset:3px}
.ph-article img{display:block;max-width:100%;height:auto}

.ph-hero{
  padding:44px 42px;
  border:1px solid var(--ph-line);
  border-radius:26px;
  background:linear-gradient(145deg,#fff 0%,#f0f5f2 100%);
}
.ph-kicker{
  display:inline-block;
  font-size:14px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ph-accent);
}
.ph-lead{font-size:21px;max-width:920px;color:#39434c}
.ph-facts{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:28px;
}
.ph-facts div{
  min-height:112px;
  padding:18px;
  border:1px solid rgba(31,95,74,.15);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.ph-facts strong{display:block;font-size:25px;color:var(--ph-accent);margin-bottom:8px}
.ph-facts span{display:block;font-size:14px;line-height:1.45;color:var(--ph-muted)}

.ph-toc{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:24px 0 44px;
  padding:20px;
  border:1px solid var(--ph-line);
  border-radius:18px;
  background:#fff;
}
.ph-toc strong{width:100%;margin-bottom:6px}
.ph-toc a{
  display:inline-block;
  padding:8px 11px;
  border-radius:9px;
  background:var(--ph-bg);
  text-decoration:none;
  font-size:14px;
}

.ph-note,.ph-warning,.ph-quote-box{
  margin:28px 0;
  padding:22px 24px;
  border-radius:16px;
}
.ph-note{background:var(--ph-accent-soft);border-left:4px solid var(--ph-accent)}
.ph-warning{background:var(--ph-warn);border-left:4px solid #bd7b18}
.ph-quote-box{background:#f2f4f6;border:1px solid var(--ph-line)}
.ph-quote-box strong{display:block;font-size:20px;margin-bottom:8px}

.ph-article blockquote{
  margin:28px 0;
  padding:24px 28px;
  border-left:4px solid var(--ph-accent);
  background:#f5f7f6;
  font-size:20px;
  line-height:1.6;
}

.ph-map{
  margin:34px 0;
  overflow:hidden;
  border:1px solid var(--ph-line);
  border-radius:20px;
  background:#fff;
}
.ph-map img{width:100%;max-height:720px;object-fit:contain;background:#eee}
.ph-map figcaption,.ph-caption{
  padding:16px 19px;
  color:var(--ph-muted);
  font-size:14px;
  line-height:1.55;
}
.ph-map-wide{max-width:980px;margin-left:auto;margin-right:auto}

.ph-source-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:26px 0;
  padding:20px;
  border:1px solid var(--ph-line);
  border-radius:16px;
  background:#fff;
}
.ph-source-card strong{display:block;margin-bottom:4px}
.ph-source-card span{display:block;color:var(--ph-muted);font-size:15px}
.ph-source-card a{
  flex:none;
  padding:10px 14px;
  border-radius:10px;
  background:var(--ph-accent);
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:700;
}

.ph-project-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  margin:28px 0;
}
.ph-project-grid div{
  padding:20px;
  border:1px solid var(--ph-line);
  border-radius:16px;
  background:#fff;
}
.ph-project-grid strong{display:block;font-size:20px;margin-bottom:8px}
.ph-project-grid span{display:block;color:var(--ph-muted);font-size:15px}

.ph-overlay{
  margin:56px 0;
  padding:28px;
  border-radius:22px;
  background:#f7f8f9;
  border:1px solid var(--ph-line);
}
.ph-svg-wrap{margin-top:24px;overflow:auto}
.ph-svg-wrap svg{display:block;width:100%;min-width:760px;height:auto}
.svg-bg{fill:#fff}
.svg-road{fill:none;stroke:#b59167;stroke-width:8;stroke-linecap:round;stroke-dasharray:16 12}
.svg-water{fill:none;stroke:#88afc2;stroke-width:7;stroke-linecap:round}
.svg-old{fill:#8a5b3d}
.svg-now{fill:#1f5f4a}
.svg-future{fill:#a4731f}
.svg-war{fill:#8f4c42}
.svg-title{font:700 22px Arial;fill:#1c2328}
.svg-small{font:16px Arial;fill:#4c5963}
.svg-label{font:italic 15px Arial;fill:#4c5963}
.road-label{fill:#876b4e}
.water-label{fill:#668da1}
.svg-legend{fill:#f8faf9;stroke:#dfe6e2}

.ph-timeline{
  position:relative;
  margin:30px 0;
  padding-left:34px;
}
.ph-timeline:before{
  content:"";
  position:absolute;
  left:9px;
  top:8px;
  bottom:8px;
  width:2px;
  background:#cfd7d2;
}
.ph-timeline div{
  position:relative;
  margin:0 0 20px;
  padding:0 0 0 18px;
}
.ph-timeline div:before{
  content:"";
  position:absolute;
  left:-31px;
  top:8px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:var(--ph-accent);
  box-shadow:0 0 0 5px #e8f0ec;
}
.ph-timeline time{
  display:block;
  font-weight:800;
  color:var(--ph-accent);
  font-size:17px;
}
.ph-timeline p{margin:3px 0 0}

.ph-sources{
  margin-top:64px;
  padding:30px;
  border-radius:20px;
  background:#f4f5f6;
}
.ph-sources h2{margin-top:0}
.ph-sources li{margin-bottom:13px;font-size:15px;line-height:1.55}
.ph-footer{
  margin-top:40px;
  padding-top:24px;
  border-top:1px solid var(--ph-line);
  color:var(--ph-muted);
  font-size:14px;
}

@media(max-width:900px){
  .ph-facts{grid-template-columns:repeat(2,1fr)}
  .ph-project-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .ph-article{padding:12px 12px 40px;font-size:17px}
  .ph-hero{padding:26px 20px;border-radius:18px}
  .ph-lead{font-size:19px}
  .ph-facts,.ph-project-grid{grid-template-columns:1fr}
  .ph-source-card{align-items:flex-start;flex-direction:column}
  .ph-overlay,.ph-sources{padding:20px 16px}
  .ph-article blockquote{padding:19px 20px;font-size:18px}
}

.ph-archive-preview{
  display:flex;
  align-items:center;
  gap:22px;
  margin:30px 0;
  padding:24px;
  border:1px solid var(--ph-line);
  border-radius:18px;
  background:#fff;
}
.ph-archive-year{
  flex:none;
  min-width:112px;
  text-align:center;
  font-size:34px;
  font-weight:800;
  color:var(--ph-accent);
}
.ph-archive-preview strong{display:block;font-size:20px;margin-bottom:7px}
.ph-archive-preview p{margin:0;color:var(--ph-muted);font-size:15px}
@media(max-width:640px){
  .ph-archive-preview{align-items:flex-start;flex-direction:column}
}/* End custom CSS */