:root { --hp-navy:#052942; --hp-deep:#03243a; --hp-ink:#0b2b44; --hp-red:#de1f2c; --hp-paper:#f8f7f3; --hp-copy:#354d60; --hp-line:#d6d2ca; }
.hp-page { width:100%; overflow:hidden; color:var(--hp-ink); background:var(--hp-paper); font-family:Inter,Arial,sans-serif; }
.hp-page *,.hp-page *::before,.hp-page *::after { box-sizing:border-box; }
.hp-page img { display:block; max-width:none; }
.hp-page svg { fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.hp-symbols { position:absolute; width:0; height:0; overflow:hidden; }

/* Hero */
.hp-hero { position:relative; height:calc(45.15 * var(--vln-activity-vw)); overflow:hidden; isolation:isolate; color:#fff; background:var(--hp-deep); }
.hp-hero-photo { position:absolute; z-index:-4; inset:0; width:100%; height:100%; object-fit:cover; object-position:52% 51%; }
.hp-hero-shade { position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(1,31,50,.99),rgba(1,33,53,.94) 27%,rgba(1,33,53,.5) 49%,rgba(1,33,53,.05) 77%),linear-gradient(180deg,rgba(0,22,37,.2),transparent 43%,rgba(1,23,37,.13)); }
.hp-hero-gridlines { position:absolute; z-index:-3; top:0; right:0; width:60%; height:70%; opacity:.24; background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size:calc(4.65 * var(--vln-activity-vw)) calc(4.65 * var(--vln-activity-vw)); -webkit-mask-image:linear-gradient(90deg,transparent,#000 33%); mask-image:linear-gradient(90deg,transparent,#000 33%); }
.hp-hero-copy { position:absolute; left:calc(2.42 * var(--vln-activity-vw)); top:calc(13.42 * var(--vln-activity-vw)); width:calc(43 * var(--vln-activity-vw)); }
.hp-hero-kicker { margin:0 0 calc(1.55 * var(--vln-activity-vw)); color:#fff; font-size:calc(1.05 * var(--vln-activity-type-vw)); font-weight:800; line-height:1; text-transform:uppercase; }
.hp-hero h1 { margin:0 0 calc(1.18 * var(--vln-activity-vw)); color:#fff; font-size:calc(4.42 * var(--vln-activity-type-vw)); font-weight:900; letter-spacing:-.025em; line-height:1.08; text-transform:uppercase; }
.hp-hero-lead { margin:0 0 calc(2.75 * var(--vln-activity-vw)); color:rgba(255,255,255,.94); font-size:calc(1.48 * var(--vln-activity-type-vw)); line-height:1.45; }
.hp-outline-button { display:inline-flex; align-items:center; justify-content:center; gap:calc(1.55 * var(--vln-activity-vw)); height:calc(4.25 * var(--vln-activity-vw)); padding:0 calc(1.78 * var(--vln-activity-vw)); color:#fff; border:calc(.16 * var(--vln-activity-vw)) solid var(--hp-red); background:rgba(1,31,49,.25); font-size:calc(1.08 * var(--vln-activity-type-vw)); font-weight:800; text-transform:uppercase; text-decoration:none; }
.hp-outline-button:hover { color:#fff; background:var(--hp-red); }
.hp-outline-button span { font-size:calc(2.35 * var(--vln-activity-type-vw)); font-weight:300; }

/* Work strip */
.hp-process { height:calc(6.6 * var(--vln-activity-vw)); display:grid; grid-template-columns:repeat(4,1fr); background:linear-gradient(90deg,#fbfaf7,#f6f5f1 52%,#fbfaf7); border-bottom:1px solid #d4d1ca; }
.hp-process > div { position:relative; display:flex; align-items:center; justify-content:center; gap:calc(1.48 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(1.04 * var(--vln-activity-type-vw)); text-transform:uppercase; }
.hp-process svg { width:calc(3.12 * var(--vln-activity-vw)); height:calc(3.12 * var(--vln-activity-vw)); flex:0 0 calc(3.12 * var(--vln-activity-vw)); stroke-width:1.55; }
.hp-process > div:not(:last-child)::after { content:''; position:absolute; top:21%; right:0; width:1px; height:58%; background:#b9bcbb; }

/* Map and survey work */
.hp-mapping { min-height:auto; padding:calc(1.8 * var(--vln-activity-vw)) calc(2.02 * var(--vln-activity-vw)) 0; background:radial-gradient(circle at 70% 28%,#fff,transparent 43%),var(--hp-paper); }
.hp-section-title { margin:0; color:var(--hp-ink); font-size:calc(2.3 * var(--vln-activity-type-vw)); font-weight:900; line-height:1.08; text-transform:uppercase; }
.hp-section-title::after { content:''; display:inline-block; width:calc(61.5 * var(--vln-activity-vw)); height:1px; margin:0 0 calc(.55 * var(--vln-activity-vw)) calc(1.4 * var(--vln-activity-vw)); background:#c9c5bd; }
.hp-map-grid { min-height:calc(36 * var(--vln-activity-vw)); height:auto; display:grid; grid-template-columns:32% 66.4%; gap:1.6%; margin-top:calc(.8 * var(--vln-activity-vw)); }
.hp-map-services { min-height:0; display:grid; grid-template-rows:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid var(--hp-line); border-radius:calc(.75 * var(--vln-activity-vw)); background:rgba(255,255,255,.45); }
.hp-map-services article { min-height:0; display:flex; align-items:flex-start; gap:calc(1.1 * var(--vln-activity-vw)); padding:calc(.95 * var(--vln-activity-vw)) calc(1.2 * var(--vln-activity-vw)); border-bottom:1px solid var(--hp-line); }
.hp-map-services article:last-child { border-bottom:0; }
.hp-map-services svg { width:calc(3.3 * var(--vln-activity-vw)); height:calc(3.3 * var(--vln-activity-vw)); flex:0 0 calc(3.3 * var(--vln-activity-vw)); color:var(--hp-ink); stroke-width:1.35; margin-top:calc(.15 * var(--vln-activity-vw)); }
.hp-map-services article > div { flex:1; min-width:0; }
.hp-map-services h3 { margin:0 0 calc(.35 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(1.35 * var(--vln-activity-type-vw)); font-weight:800; line-height:1.2; }
.hp-map-services p { margin:0; color:var(--hp-copy); font-size:calc(.94 * var(--vln-activity-type-vw)); line-height:1.45; }
.hp-ortho { position:relative; min-width:0; min-height:0; margin-top:0; padding:26px 36px 22px 16px; border:1px solid var(--hp-line); border-radius:calc(.78 * var(--vln-activity-vw)); background:#faf9f5; }
.hp-ortho > img { width:100%; height:100%; object-fit:cover; object-position:center; border:1px solid #808784; display:block; }
.hp-north { position:absolute; z-index:3; top:34px; right:48px; color:#fff; font-size:22px; line-height:.7; text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 4px rgba(0,0,0,.9); pointer-events:none; display:flex; flex-direction:column; align-items:center; }
.hp-north small { display:block; margin-top:4px; font-size:10px; font-weight:800; text-align:center; }
.hp-coordinates { position:absolute; display:flex; color:#3b4d56; font-size:10px; font-weight:600; font-family:monospace, sans-serif; pointer-events:none; }
.hp-coordinates-top { top:6px; left:16px; right:36px; justify-content:space-around; align-items:center; }
.hp-coordinates-side { top:34px; right:4px; bottom:22px; width:28px; flex-direction:column; justify-content:space-around; align-items:center; }
.hp-coordinates-side span { display:inline-block; transform:rotate(90deg); transform-origin:center center; white-space:nowrap; line-height:1; }
.hp-legend { position:absolute; left:calc(.65 * var(--vln-activity-vw)); bottom:calc(2.2 * var(--vln-activity-vw)); width:calc(9.8 * var(--vln-activity-vw)); padding:calc(.9 * var(--vln-activity-vw)) calc(.8 * var(--vln-activity-vw)) calc(.75 * var(--vln-activity-vw)); color:#203744; background:rgba(253,252,248,.96); border:1px solid #a8aaa4; box-shadow:0 calc(.3 * var(--vln-activity-vw)) calc(.9 * var(--vln-activity-vw)) rgba(0,0,0,.13); }
.hp-legend h3 { margin:0 0 calc(.6 * var(--vln-activity-vw)); font-size:calc(1 * var(--vln-activity-type-vw)); text-transform:uppercase; font-weight:800; }
.hp-legend p { display:flex; align-items:center; gap:calc(.55 * var(--vln-activity-vw)); margin:0 0 calc(.36 * var(--vln-activity-vw)); font-size:calc(.72 * var(--vln-activity-type-vw)); }
.hp-legend i { width:calc(1.25 * var(--vln-activity-vw)); height:calc(.25 * var(--vln-activity-vw)); flex:0 0 calc(1.25 * var(--vln-activity-vw)); }
.hp-legend .red-dot { width:calc(.45 * var(--vln-activity-vw)); height:calc(.45 * var(--vln-activity-vw)); flex-basis:calc(.45 * var(--vln-activity-vw)); border-radius:50%; background:#e12531; }
.hp-legend .red-line { height:2px; background:#e12531; }
.hp-legend .thin-line { height:1px; background:#2d4857; }
.hp-legend .dash-line { height:1px; background:repeating-linear-gradient(90deg,#2d4857 0 3px,transparent 3px 5px); }
.hp-legend .contour-line { height:2px; background:#a98667; }
.hp-legend .green-box { height:calc(.5 * var(--vln-activity-vw)); background:#8ba94c; }
.hp-legend .sand-box { height:calc(.5 * var(--vln-activity-vw)); background:#d5b87f; }
.hp-legend .blue-box { height:calc(.5 * var(--vln-activity-vw)); background:#77a9cf; }
.hp-legend small { display:block; margin-top:calc(.7 * var(--vln-activity-vw)); font-size:calc(.68 * var(--vln-activity-type-vw)); line-height:1.35; }
.hp-measure-flow { position:relative; min-height:calc(8.2 * var(--vln-activity-vw)); height:auto; display:grid; grid-template-columns:1fr calc(3 * var(--vln-activity-vw)) 1fr calc(3 * var(--vln-activity-vw)) 1fr calc(3 * var(--vln-activity-vw)) 1fr; align-items:center; margin:calc(.8 * var(--vln-activity-vw)) calc(-2.02 * var(--vln-activity-vw)) 0; padding:0 calc(2.8 * var(--vln-activity-vw)); border-top:1px solid var(--hp-line); background:#faf9f5; }
.hp-measure-flow article { min-width:0; display:flex; align-items:center; gap:calc(.85 * var(--vln-activity-vw)); }
.hp-measure-flow article svg { width:calc(3.5 * var(--vln-activity-vw)); height:calc(3.5 * var(--vln-activity-vw)); flex:0 0 calc(3.5 * var(--vln-activity-vw)); color:var(--hp-ink); stroke-width:1.35; }
.hp-measure-flow article > div { flex:1; min-width:0; }
.hp-measure-flow article h3 { margin:0 0 calc(.3 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(1.02 * var(--vln-activity-type-vw)); font-weight:900; text-transform:uppercase; }
.hp-measure-flow article p { margin:0; color:var(--hp-copy); font-size:calc(.82 * var(--vln-activity-type-vw)); line-height:1.42; }
.hp-measure-flow > span { color:var(--hp-red); font-size:calc(2.8 * var(--vln-activity-type-vw)); font-weight:300; text-align:center; }

/* YERBIS */
.hp-yerbis { position:relative; min-height:auto; height:auto; overflow:hidden; padding:40px clamp(24px,3.5vw,56px); color:#fff; background:radial-gradient(circle at 62% 35%,#064063,#032b46 42%,#02243b); }
.hp-yerbis::before { content:''; position:absolute; inset:0; opacity:.05; background:repeating-radial-gradient(ellipse at 20% 30%,transparent 0 calc(1.7 * var(--vln-activity-vw)),#fff calc(1.75 * var(--vln-activity-vw)) calc(1.8 * var(--vln-activity-vw))); pointer-events:none; }
.hp-section-title-white { color:#fff; margin:0 0 24px; font-size:clamp(22px,1.8vw,30px); font-weight:900; text-transform:uppercase; }
.hp-yerbis-grid { display:grid; grid-template-columns:30% 70%; gap:24px; align-items:center; }
.hp-yerbis-services { display:flex; flex-direction:column; gap:16px; min-width:0; }
.hp-yerbis-services article { display:flex; align-items:flex-start; gap:14px; min-width:0; }
.hp-yerbis-services svg { width:34px; height:34px; flex:0 0 34px; color:#fff; stroke-width:1.4; margin-top:2px; }
.hp-yerbis-services article > div { flex:1; min-width:0; }
.hp-yerbis-services h3 { margin:0 0 4px; color:#fff; font-size:15px; font-weight:800; line-height:1.2; }
.hp-yerbis-services p { margin:0; color:rgba(255,255,255,.86); font-size:12px; line-height:1.45; }
.hp-gis-stage-unified { width:100%; height:100%; max-height:540px; display:flex; align-items:center; justify-content:center; overflow:hidden; border:none; border-radius:0; box-shadow:none; background:transparent; }
.hp-gis-stage-unified img { width:100%; height:auto; max-height:540px; object-fit:contain; display:block; }

/* Planning */
.hp-planning { min-height:auto; padding:calc(2.4 * var(--vln-activity-vw)) calc(2.05 * var(--vln-activity-vw)) calc(1.3 * var(--vln-activity-vw)); background:linear-gradient(90deg,#faf9f6,#f7f6f2 55%,#faf9f7); }
.hp-planning .hp-section-title::after { width:calc(56 * var(--vln-activity-vw)); }
.hp-planning-grid { min-height:calc(27.7 * var(--vln-activity-vw)); height:auto; display:grid; grid-template-columns:35% 3.7% 35% 24%; gap:.76%; align-items:stretch; margin-top:calc(1.25 * var(--vln-activity-vw)); }
.hp-planning-grid figure { margin:0; min-width:0; }
.hp-planning-grid figcaption { height:calc(2.3 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(1.1 * var(--vln-activity-type-vw)); font-weight:900; text-transform:uppercase; }
.hp-planning-grid figure img { width:100%; height:calc(24.5 * var(--vln-activity-vw)); object-fit:cover; border:1px solid var(--hp-line); border-radius:calc(.55 * var(--vln-activity-vw)); }
.hp-plan-arrow-wrap { display:flex; align-items:center; justify-content:center; height:100%; padding-top:calc(2.3 * var(--vln-activity-vw)); }
.hp-plan-arrow { display:flex; align-items:center; justify-content:center; width:calc(3.4 * var(--vln-activity-vw)); height:calc(3.4 * var(--vln-activity-vw)); border:1.5px solid var(--hp-line); border-radius:50%; color:var(--hp-ink); background:#fff; box-shadow:0 calc(.3 * var(--vln-activity-vw)) calc(.8 * var(--vln-activity-vw)) rgba(0,27,50,.08); }
.hp-notes { min-width:0; height:100%; padding-left:calc(1.3 * var(--vln-activity-vw)); padding-top:calc(2.3 * var(--vln-activity-vw)); display:flex; flex-direction:column; justify-content:center; }
.hp-notes h3 { margin:0 0 calc(1.2 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(1.15 * var(--vln-activity-type-vw)); font-weight:900; text-transform:uppercase; }
.hp-notes p { display:flex; align-items:flex-start; gap:calc(.65 * var(--vln-activity-vw)); margin:0 0 calc(1.2 * var(--vln-activity-vw)); color:var(--hp-copy); font-size:calc(.92 * var(--vln-activity-type-vw)); line-height:1.45; }
.hp-notes svg { width:calc(1.55 * var(--vln-activity-vw)); height:calc(1.55 * var(--vln-activity-vw)); flex:0 0 calc(1.55 * var(--vln-activity-vw)); color:#54718a; stroke-width:1.6; margin-top:calc(.1 * var(--vln-activity-vw)); }
.hp-notes a,.hp-cta a { display:inline-flex; align-items:center; justify-content:center; gap:calc(1.2 * var(--vln-activity-vw)); height:calc(3.55 * var(--vln-activity-vw)); padding:0 calc(1.45 * var(--vln-activity-vw)); color:var(--hp-red); border:1px solid var(--hp-red); background:#fff; font-size:calc(.85 * var(--vln-activity-type-vw)); font-weight:800; text-transform:uppercase; text-decoration:none; }
.hp-notes a { margin-top:calc(.5 * var(--vln-activity-vw)); align-self:flex-start; }
.hp-notes a span,.hp-cta a span { font-size:calc(2 * var(--vln-activity-type-vw)); font-weight:300; }
.hp-decision-flow { min-height:calc(8.5 * var(--vln-activity-vw)); height:auto; display:grid; grid-template-columns:repeat(5,1fr); align-items:center; margin-top:calc(1.2 * var(--vln-activity-vw)); overflow:hidden; border:1px solid var(--hp-line); border-radius:calc(.65 * var(--vln-activity-vw)); background:rgba(255,255,255,.34); }
.hp-decision-flow article { min-width:0; height:65%; display:flex; align-items:center; gap:calc(.65 * var(--vln-activity-vw)); padding:0 calc(1.1 * var(--vln-activity-vw)); border-right:1px solid var(--hp-line); }
.hp-decision-flow article:last-child { border-right:0; }
.hp-decision-flow svg { width:calc(3.75 * var(--vln-activity-vw)); height:calc(3.75 * var(--vln-activity-vw)); flex:0 0 calc(3.75 * var(--vln-activity-vw)); color:var(--hp-ink); stroke-width:1.35; }
.hp-decision-flow article > div { flex:1; min-width:0; }
.hp-decision-flow h3 { margin:0 0 calc(.4 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(.95 * var(--vln-activity-type-vw)); font-weight:900; text-transform:uppercase; }
.hp-decision-flow p { margin:0; color:var(--hp-copy); font-size:calc(.75 * var(--vln-activity-type-vw)); line-height:1.45; }

/* CTA */
.hp-cta { min-height:calc(16.75 * var(--vln-activity-vw)); height:auto; display:grid; grid-template-columns:40% 60%; grid-template-rows:minmax(0,1fr); overflow:hidden; background:#f3f1ec; }
.hp-cta > div { min-width:0; min-height:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:calc(1.15 * var(--vln-activity-vw)) calc(2 * var(--vln-activity-vw)) calc(1.15 * var(--vln-activity-vw)) calc(5.1 * var(--vln-activity-vw)); }
.hp-cta h2 { margin:0 0 calc(.75 * var(--vln-activity-vw)); color:var(--hp-ink); font-size:calc(2.15 * var(--vln-activity-type-vw)); font-weight:900; line-height:1.08; text-transform:uppercase; }
.hp-cta p { margin:0 0 calc(1.25 * var(--vln-activity-vw)); color:var(--hp-copy); font-size:calc(.95 * var(--vln-activity-type-vw)); line-height:1.42; }
.hp-cta a { height:calc(3.35 * var(--vln-activity-vw)); color:var(--hp-red); background:transparent; }
.hp-cta a:hover,.hp-notes a:hover { color:#fff; background:var(--hp-red); }
.hp-cta > img { min-width:0; min-height:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%); mask-image:linear-gradient(90deg,transparent,#000 12%); }

/* Tablet */
@media (max-width: 1100px) {
  .hp-desktop-only { display:none; }
  .hp-hero { height:auto; min-height:680px; }
  .hp-hero-photo { object-position:62% center; }
  .hp-hero-shade { background:linear-gradient(90deg,rgba(1,31,50,.98),rgba(1,32,52,.8) 67%,rgba(1,32,52,.24)); }
  .hp-hero-copy { left:28px; top:205px; width:min(calc(74 * var(--vln-activity-vw)),590px); }
  .hp-hero-kicker { margin-bottom:16px; font-size:11px; }
  .hp-hero h1 { margin-bottom:17px; font-size:clamp(44px,calc(7.8 * var(--vln-activity-type-vw)),64px); }
  .hp-hero-lead { margin-bottom:28px; font-size:15px; line-height:1.6; }
  .hp-outline-button { height:47px; gap:14px; padding:0 18px; border-width:2px; font-size:11px; }
  .hp-outline-button span { font-size:22px; }
  .hp-process { height:auto; grid-template-columns:repeat(2,1fr); }
  .hp-process > div { min-height:76px; gap:14px; font-size:11px; }
  .hp-process svg { width:31px; height:31px; }
  .hp-process > div:nth-child(2)::after { display:none; }
  .hp-process > div:nth-child(-n+2) { border-bottom:1px solid var(--hp-line); }
  .hp-mapping { height:auto; padding:48px 28px 0; }
  .hp-section-title { font-size:29px; }
  .hp-section-title::after { display:none; }
  .hp-map-grid { height:auto; grid-template-columns:1fr; gap:20px; margin-top:26px; }
  .hp-map-services { grid-template-columns:repeat(2,1fr); grid-template-rows:none; }
  .hp-map-services article { min-height:140px; display:flex; align-items:flex-start; gap:14px; padding:18px; border-right:1px solid var(--hp-line); border-bottom:1px solid var(--hp-line); }
  .hp-map-services article:nth-child(2n) { border-right:0; }
  .hp-map-services article:nth-last-child(-n+2) { border-bottom:0; }
  .hp-map-services svg { width:44px; height:44px; flex:0 0 44px; margin-top:2px; }
  .hp-map-services article > div { flex:1; min-width:0; }
  .hp-map-services h3 { margin-bottom:7px; font-size:14px; line-height:1.25; }
  .hp-map-services p { font-size:11px; line-height:1.45; }
  .hp-ortho { height:580px; margin:0; padding:28px 36px 24px 14px; border-radius:8px; }
  .hp-coordinates { font-size:9.5px; }
  .hp-coordinates-top { top:6px; left:14px; right:36px; }
  .hp-coordinates-side { top:34px; right:4px; bottom:22px; width:28px; }
  .hp-coordinates-side span { display:inline-block; transform:rotate(90deg); transform-origin:center center; white-space:nowrap; line-height:1; }
  .hp-north { top:34px; right:48px; font-size:22px; }
  .hp-north small { margin-top:8px; font-size:10px; }
  .hp-legend { left:12px; bottom:42px; width:120px; padding:11px 9px; }
  .hp-legend h3 { margin-bottom:8px; font-size:10px; }
  .hp-legend p { gap:6px; margin-bottom:4px; font-size:7px; }
  .hp-legend i { width:16px; flex-basis:16px; }
  .hp-legend small { margin-top:8px; font-size:7px; }
  .hp-measure-flow { height:auto; grid-template-columns:repeat(2,1fr); gap:22px; margin:32px -28px 0; padding:32px 28px; }
  .hp-measure-flow article { display:flex; align-items:center; gap:12px; min-height:85px; }
  .hp-measure-flow article svg { width:48px; height:48px; flex:0 0 48px; }
  .hp-measure-flow article > div { flex:1; min-width:0; }
  .hp-measure-flow article h3 { margin-bottom:5px; font-size:11px; }
  .hp-measure-flow article p { font-size:9px; }
  .hp-measure-flow > span { display:none; }
  .hp-yerbis { height:auto; padding:48px 28px; }
  .hp-yerbis > h2 { font-size:22px; }
  .hp-yerbis-services { position:relative; left:auto; top:auto; width:auto; grid-template-columns:repeat(2,1fr); gap:24px; margin-top:30px; }
  .hp-yerbis-services article { display:flex; align-items:flex-start; gap:12px; }
  .hp-yerbis-services svg { width:34px; height:34px; flex:0 0 34px; margin-top:2px; }
  .hp-yerbis-services article > div { flex:1; min-width:0; }
  .hp-yerbis-services h3 { margin-bottom:5px; font-size:14px; line-height:1.25; }
  .hp-yerbis-services p { font-size:11px; line-height:1.45; }
  .hp-gis-stage { position:relative; top:auto; right:auto; bottom:auto; width:100%; height:620px; margin-top:40px; }
  .hp-gis-stage figcaption { height:30px; padding:0 10px; font-size:9px; }
  .hp-slope-panel img,.hp-dsm-panel img { height:calc(100% - 30px); }
  .hp-layer-menu { left:10px; top:35px; width:120px; padding:11px 10px; }
  .hp-layer-menu h3 { margin-bottom:7px; padding-bottom:6px; font-size:10px; }
  .hp-layer-menu span { margin:2px 0; font-size:8px; }
  .hp-planning { height:auto; padding:48px 28px 38px; }
  .hp-planning-grid { height:auto; grid-template-columns:1fr 50px 1fr; gap:14px; margin-top:28px; }
  .hp-planning-grid figcaption,.hp-notes h3 { height:28px; font-size:11px; }
  .hp-planning-grid figure img { height:300px; border-radius:6px; }
  .hp-plan-arrow { width:44px; height:44px; margin-top:18px; font-size:26px; }
  .hp-notes { grid-column:1/-1; height:auto; padding:28px 0 0; }
  .hp-notes p { display:flex; align-items:flex-start; gap:10px; margin-bottom:14px; font-size:11px; }
  .hp-notes svg { width:19px; height:19px; flex:0 0 19px; margin-top:2px; }
  .hp-notes a,.hp-cta a { height:44px; gap:13px; padding:0 17px; font-size:10px; }
  .hp-notes a span,.hp-cta a span { font-size:20px; }
  .hp-decision-flow { height:auto; grid-template-columns:repeat(2,1fr); gap:0; margin-top:34px; }
  .hp-decision-flow article { min-height:115px; display:flex; align-items:center; gap:12px; padding:15px; border-bottom:1px solid var(--hp-line); }
  .hp-decision-flow svg { width:44px; height:44px; flex:0 0 44px; }
  .hp-decision-flow article > div { flex:1; min-width:0; }
  .hp-decision-flow h3 { margin-bottom:5px; font-size:10px; }
  .hp-decision-flow p { font-size:8px; }
  .hp-cta { height:auto; min-height:350px; grid-template-columns:46% 54%; }
  .hp-cta > div { padding:38px 28px; }
  .hp-cta h2 { margin-bottom:13px; font-size:28px; }
  .hp-cta p { margin-bottom:20px; font-size:11px; }
}

/* Phone */
@media (max-width:640px) {
  .hp-hero { min-height:650px; }
  .hp-hero-photo { object-position:68% center; }
  .hp-hero-copy { left:20px; right:20px; top:auto; bottom:70px; width:auto; }
  .hp-hero h1 { font-size:clamp(38px,calc(11 * var(--vln-activity-type-vw)),54px); }
  .hp-hero-lead { font-size:14px; }
  .hp-mapping { padding:40px 15px 0; }
  .hp-section-title { font-size:25px; }
  .hp-map-services { grid-template-columns:1fr; }
  .hp-map-services article { min-height:auto; border-right:0; border-bottom:1px solid var(--hp-line); padding:16px; }
  .hp-map-services article:last-child { border-bottom:0; }
  .hp-map-services svg { width:34px; height:34px; flex:0 0 34px; }
  .hp-ortho { height:500px; }
  .hp-measure-flow { grid-template-columns:1fr; margin-inline:-15px; padding-inline:20px; }
  .hp-yerbis { padding:42px 20px; }
  .hp-yerbis > h2 { font-size:20px; }
  .hp-yerbis-services { grid-template-columns:1fr; gap:18px; }
  .hp-yerbis-services svg { width:28px; height:28px; flex:0 0 28px; }
  .hp-gis-stage { height:720px; }
  .hp-gis-main { width:100%; height:56%; }
  .hp-slope-panel { top:48%; width:55%; height:30%; }
  .hp-dsm-panel { width:52%; height:31%; }
  .hp-planning { padding:42px 15px 32px; }
  .hp-planning-grid { grid-template-columns:1fr; }
  .hp-planning-grid figure img { height:auto; aspect-ratio:16/10; }
  .hp-plan-arrow { margin:0 auto; transform:rotate(90deg); }
  .hp-notes { grid-column:auto; }
  .hp-decision-flow { grid-template-columns:1fr; }
  .hp-cta { grid-template-columns:1fr; }
  .hp-cta > div { min-height:300px; padding:40px 24px; }
  .hp-cta > img { height:auto; aspect-ratio:16/10; -webkit-mask-image:none; mask-image:none; }
}

@media (max-width:420px) {
  .hp-process > div { min-height:68px; padding:7px; font-size:9px; }
  .hp-process svg { width:27px; height:27px; }
  .hp-legend { width:105px; }
  .hp-gis-stage { height:650px; }
}

