:root{--neutral-darkest:oklch(.18 0 0);--neutral-dark:oklch(.35 0 0);--neutral-base:oklch(.55 0 0);--neutral-light:oklch(.95 0 0);--neutral-lightest:oklch(.98 0 0);--green:#477340;--red:#f20505;--yellow:#ffd885;--darkbrown:#9e6e1f;--lightbrown:#d8a152;--blue-accessible:#005fcc;--darkbrown-darkest:hsl(from var(--darkbrown) h s calc(l * .5));--darkbrown-dark:hsl(from var(--darkbrown) h s calc(l * .7));--darkbrown-light:hsl(from var(--darkbrown) h s calc(l * 1.2));--darkbrown-lightest:hsl(from var(--darkbrown) h s calc(l * 1.5));--green-dark:hsl(from var(--green) h s calc(l * .5));--green-light:hsl(from var(--green) h s calc(l * 1.2));--green-fade:hsl(from var(--green) h s l / .15);--green-fade-light:hsl(from var(--green) h s l / .05);--green-fade-lightest:hsl(from var(--green) h s l / .02);--red-fade:hsl(from var(--red) h s l / .15);--red-fade-light:hsl(from var(--red) h s l / .05);--red-fade-lightest:hsl(from var(--red) h s l / .02);--lightbrown-fade:hsl(from var(--lightbrown) h s l / .15);--lightbrown-fade-light:hsl(from var(--lightbrown) h s l / .05);--lightbrown-fade-lightest:hsl(from var(--lightbrown) h s l / .02);--bg-page-light:var(--neutral-light);--bg-panel-light:var(--neutral-lightest);--bg-row-highlight:var(--green-fade-light);--bg-dim:.2;--text-main-dark:var(--neutral-darkest);--text-emphasis:var(--darkbrown-dark);--text-emphasis-a:color-mix(in oklch,var(--blue-accessible),black 15%);--text-soft-dark:var(--neutral-base);--text-main-light:var(--neutral-light);--text-nav:var(--darkbrown-darkest);--text-nav-focus:var(--green);--border-heavy:var(--darkbrown-darkest);--border-medium:var(--darkbrown-light);--border-light:var(--darkbrown-lightest);--nav-active-text:var(--text-nav-focus);--nav-active-border:var(--text-nav-focus);--nav-parent-text:hsl(from var(--text-nav-focus) h s calc(l * .8));--nav-parent-border:hsl(from var(--green) h s l / .25);--bg-li-bullet:var(--lightbrown);--gradient-page-light:linear-gradient(135deg,hsl(from var(--bg-page-light) h s calc(l * 1.03)),hsl(from var(--bg-page-light) h s calc(l * .97)));--gradient-panel-light:linear-gradient(135deg,hsl(from var(--bg-panel-light) h s calc(l * 1.03)),hsl(from var(--bg-panel-light) h s calc(l * .97)));--gradient-green:linear-gradient(135deg,hsl(from var(--green) h s calc(l * 1.1)),hsl(from var(--green) h s calc(l * .8)));--gradient-lightbrown:linear-gradient(135deg,hsl(from var(--lightbrown) h s calc(l * 1.1)),hsl(from var(--lightbrown) h s calc(l * .8)));--gradient-darkbrown:linear-gradient(135deg,hsl(from var(--darkbrown) h s calc(l * .8)),hsl(from var(--darkbrown) h s calc(l * .7)));--shadow-small:drop-shadow(1px 1px 1px hsl(0 0% 0% / .5));--shadow-card:0 2px 3px hsl(from var(--neutral-darkest) h s l / .12),0 4px 10px hsl(from var(--neutral-darkest) h s l / .14);--shadow-card-hover:0 1px 2px hsl(from var(--neutral-darkest) h s l / .16),0 2px 5px hsl(from var(--neutral-darkest) h s l / .18);--shadow-cta:0 2px 6px hsl(from var(--darkbrown-darkest) h s l / .18);--shadow-cta-hover:0 1px 3px hsl(from var(--darkbrown-darkest) h s l / .22);--filter-shadow-img:drop-shadow(var(--neutral-base) 2px 2px 2px);--height-header:150px;--max-width-inner:900px;--fontsize-h1:2.5rem;--fontsize-h2:1.4rem;--fontsize-h3:1.05rem;--fontsize-h3-small:.875rem;--fontsize-p:1rem;--fontsize-p-small:.875rem;--fontsize-tiny:.725rem;--fontsize-lead:var(--fontsize-h3);--fontsize-li:var(--fontsize-p-small)}html{box-sizing:border-box;font-size:100%;line-height:1.5;scrollbar-gutter:stable;-webkit-text-size-adjust:100%}*,*::before,*::after{box-sizing:inherit;margin:0;padding:0;border:0}a{text-decoration:none;color:inherit}img,video,canvas,svg{display:block;max-width:100%;height:auto}svg{display:inline-block;vertical-align:middle}table{border-collapse:collapse;border-spacing:0}:focus-visible{outline:2px solid var(--blue-accessible);outline-offset:2px}html,body{width:100%;min-width:340px;margin:0;padding:0;box-sizing:border-box;user-select:none;background-color:var(--bg-page-light);font-family:Roboto,Helvetica,Arial,sans-serif;color:var(--text-main-dark)}h1,h2,h3,h4,h5,p,span{user-select:text}::selection{background-color:var(--lightbrown)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:linear-gradient(rgb(0 0 0 / var(--bg-dim)),rgb(0 0 0 / var(--bg-dim))),url("../images/map_wi_bg.avif") center / cover no-repeat fixed}h1{font-family:'Arquitectura';font-size:var(--fontsize-h1);margin-bottom:.5rem;>span{display:block}}h2{font-size:var(--fontsize-h2);color:var(--darkbrown-darkest)}h3{font-size:var(--fontsize-h3);font-weight:600;color:var(--text-soft-dark)}svg{height:24px;width:24px;fill:currentColor}@font-face{font-family:'Arquitectura';src:url('ArquitecturaRegular.woff2') format('woff2'),url('ArquitecturaRegular.woff') format('woff');font-weight:100;font-style:normal;font-display:swap}.page-wrapper{min-height:100dvh;display:flex;flex-direction:column}header,footer,main{display:flex;flex-direction:column;align-items:center;>div{width:100%;max-width:var(--max-width-inner);display:flex;align-items:center;justify-content:space-between}}header{position:sticky;top:0;padding:1rem 0 0;background-color:var(--lightbrown);background:var(--gradient-lightbrown);border-bottom:4px solid var(--green);z-index:20;@media (orientation:landscape) and (max-height:500px){position:static}>div{max-width:var(--max-width-inner);width:calc(100% - 4rem)}.top{.right{font-size:clamp(1rem,-.05rem + 4vw,1.5rem);color:var(--text-main-light);p{text-align:right;line-height:1.2}}}.bottom{display:flex;justify-content:flex-end;align-items:center;padding-top:.5rem;@media (max-width:570px){justify-content:center}}.logo{height:clamp(3.438rem,-.859rem + 15.625vw,5rem);max-width:none;filter:var(--shadow-small)}}header::after{content:"";position:absolute;inset:0;pointer-events:none;background:url('../images/contour-background.avif') right center / cover no-repeat;opacity:.15;-webkit-mask-image:linear-gradient(to left,black 0%,black 5%,transparent 65%);mask-image:linear-gradient(to left,black 0%,black 5%,transparent 65%)}footer{padding:1rem 0 .5rem;gap:1rem;background-color:var(--green);background:var(--gradient-green);color:var(--yellow);.top,.bottom{flex-direction:column}.bottom{justify-content:center;font-size:var(--fontsize-tiny);span{text-align:center;text-wrap:balance}}a.priv{text-decoration:underline;&:focus-visible{outline:2px solid currentColor;outline-offset:2px}}svg{color:var(--lightbrown)}.logo{width:120px;height:55px;margin-bottom:.25rem}.map{padding:1rem}.pn-map-small{width:120px;border-radius:20px}}main{flex-direction:column;flex:1;gap:1.5rem;background:var(--green-fade)}.location{display:flex;align-items:center;gap:1.5rem;font-size:var(--fontsize-p-small);.details{.t{margin-left:1.75rem;margin-bottom:.5rem}.n{display:flex;flex-direction:column;align-items:flex-start;gap:0}}}nav{font-size:clamp(.75rem,-.05rem + 4vw,1rem);ul{margin:0;display:flex;gap:.75rem;list-style:none;line-height:normal}li{display:flex;flex-direction:column;justify-content:flex-end;text-align:center;font-weight:bold;color:var(--text-nav);border-bottom:6px solid transparent;cursor:pointer}li:hover{color:var(--text-nav-focus);border-color:var(--text-nav-focus)}a{padding:.25rem .5rem}}#pg-landsurveying nav li[data-page="landsurveying"]{color:var(--nav-active-text);border-color:var(--nav-active-border)}#pg-specialistservices nav li[data-page="specialistservices"]{color:var(--nav-active-text);border-color:var(--nav-active-border)}#pg-contact nav li[data-page="contact"]{color:var(--nav-active-text);border-color:var(--nav-active-border)}#pg-about nav li[data-page="about"]{color:var(--nav-active-text);border-color:var(--nav-active-border)}#pg-alta,#pg-asbuilt,#pg-csm{nav{li[data-page="landsurveying"]{color:var(--nav-parent-text);border-color:var(--nav-parent-border);&:hover{color:var(--text-nav-focus);border-color:var(--text-nav-focus)}}}}#pg-bathymetric,#pg-golfservices,#pg-aerialmapping,#pg-traildesign{nav{li[data-page="specialistservices"]{color:var(--nav-parent-text);border-color:var(--nav-parent-border);&:hover{color:var(--text-nav-focus);border-color:var(--text-nav-focus)}}}}.carousel{max-width:900px;margin:.5rem auto;.dots{display:flex;justify-content:center;gap:.5rem;margin-top:.25rem;flex-wrap:wrap}.dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--green-fade);border:none;cursor:pointer;padding:0;margin:.5rem;transition:transform .2s ease,background .2s ease;&.active{background:var(--green);transform:scale(1.2)}}.image-wrapper{position:relative;overflow:hidden;border-radius:8px;aspect-ratio:16 / 9}.slides{position:relative;height:100%}.slide{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;opacity:0;transition:opacity 1s ease;z-index:1;&.active{opacity:1;z-index:2;img{transform:scale(1.03)}}img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1);transition:transform 6s cubic-bezier(.16,1,.3,1)}}.description{position:absolute;bottom:8px;right:0;background:var(--green-dark);color:var(--text-main-light);border-radius:4px;z-index:5;text-align:center;opacity:1;transition:opacity 1s ease;font-size:1.125rem;a{display:flex;align-items:center;>span{padding:0 1.25rem}>p{display:flex;align-items:center;padding:.325rem .25rem .325rem .75rem;background:var(--lightbrown);color:var(--green-dark);>span{font-size:.8em}}}}.arrow{position:absolute;top:50%;transform:translateY(-50%);background:var(--green-dark);color:var(--text-main-light);border:none;width:40px;height:40px;border-radius:50%;cursor:pointer;z-index:10}.prev{left:10px}.next{right:10px}}@media (max-width:500px){.carousel .arrow{width:30px;height:30px}.carousel .description{font-size:.8rem}}@media (max-width:360px){.carousel .description{font-size:.75rem}}section{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;scroll-margin-top:calc(var(--height-header) + 32px);.content:not(.special){display:flex;flex-direction:column;gap:1rem}.content{container-type:inline-size;container-name:section-content;max-width:var(--max-width-inner);width:calc(100% - 4rem);padding:0 1.5rem 1rem;background-color:var(--bg-page-light);background:var(--gradient-page-light);border-top:4px solid var(--green);h2{padding:.5rem 0;text-wrap:balance;text-align:center;position:relative}h3{margin:0 auto;padding:.25rem}.list-label{width:100%;text-align:left;background:var(--lightbrown-fade);padding:.25rem .75rem;margin-bottom:.5rem;font-size:var(--fontsize-p-small)}>.top,>.bottom{display:flex;flex-direction:column}>.bottom{border:2px solid var(--green);padding:.75rem;margin:.5rem 0}}h2 a{width:100%;background:var(--lightbrown-fade-light);.arrow{position:absolute;right:4px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;svg{width:100%;height:100%;fill:var(--darkbrown);display:block;transition:transform .2s ease}}&:hover{color:var(--darkbrown);.arrow svg{transform:translateX(4px)}}}ul,ol{list-style:none;margin-left:1.75rem}li{position:relative;font-size:var(--fontsize-li);padding:.25rem .25rem .25rem .75rem}li::before{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background-color:var(--bg-li-bullet);left:-.75rem;top:12px}}section.top,section.bottom,section.cta-row{.content{padding:0;border:none;gap:0;align-items:center}.cta.tertiary{padding:.5rem}}section.cta-row{.content{padding:.75rem 1.5rem}}a.internal-link{color:var(--text-emphasis);text-decoration:none;border-bottom:1px solid var(--green-fade);transition:border-color .2s ease,color .2s ease;&:hover,&:focus{border-bottom-color:var(--green);color:var(--green)}}h1{width:100%;text-align:center;text-wrap:balance;background-color:var(--green);background:var(--gradient-green);color:var(--lightbrown);border-top:3px solid var(--lightbrown)}.text-lead,.text-intro,.text-bridge,.text-body{padding:0 clamp(0,-3.75rem + 12vw,1.5rem)}.text-intro{color:var(--text-soft-dark);font-size:var(--fontsize-p);+.text-intro{margin-top:1rem}}.text-lead{font-size:var(--fontsize-lead);margin:.5rem 2.5rem}.text-body{color:var(--text-main-dark)}.text-bridge{font-size:var(--fontsize-p-small);color:var(--neutral-base);opacity:.85}strong{font-weight:500;color:var(--text-emphasis);a{color:var(--text-emphasis-a);&:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em;color:var(--text-emphasis-a)}}}@media (max-width:719px) and (min-width:521px){section .content{width:calc(100% - ((100vw - 520px) / 200 * 64))}}@media (max-width:520px){section .content{width:100%}}.cards{display:grid;gap:.75rem;margin-bottom:.5rem;grid-template-columns:repeat(4,1fr);&.major{grid-template-columns:repeat(2,1fr)}}@media (max-width:700px){.cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.cards{grid-template-columns:1fr}.cards.major{grid-template-columns:1fr}}.card{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;font-size:var(--fontsize-p-small);background:var(--bg-panel-light);background:var(--gradient-panel-light);border:1px solid var(--border-light);border-style:dashed;border-radius:6px;transition:all .15s ease}.card.pagelink{align-items:center;border:1px solid var(--border-medium);box-shadow:var(--shadow-card);h3{font-size:var(--fontsize-h3-small)}.icon{display:flex;align-items:center;justify-content:center;height:42px;color:var(--darkbrown);transition:all .15s ease}a{text-align:center;width:100%}.highlight{display:inline-block;background:var(--green-fade);color:var(--green);margin-top:.3rem;padding:.125rem .375rem;border-radius:4px;font-size:var(--fontsize-tiny);font-weight:500}}.card.pagelink:hover{transform:translateY(1px);background:var(--bg-panel-light);border-color:var(--border-medium);box-shadow:var(--shadow-card-hover);.icon{color:var(--green);transform:scale(1.1)}}.card.list{h3{background:var(--lightbrown-fade);width:100%;text-align:center}ul{margin-left:1.25rem}li{padding:.25rem .5rem}li::before{left:-.75rem;top:12px;width:6px;height:6px;border-radius:50%;background-color:var(--bg-li-bullet)}}.card.spotlight{container-type:inline-size;margin-bottom:1rem;.top{display:flex;flex-direction:column;align-items:center;padding:1rem 2rem}.bottom{display:flex;flex-direction:row;justify-content:center;padding:.25rem 1rem;gap:1.5rem;a{flex:1;padding:.75rem 1.25rem}}h3{margin:0 0 .75rem;font-size:1.25rem;font-weight:600;color:var(--darkbrown)}p{color:var(--text-main-dark)}.cta.tertiary{border:1px solid transparent;border-color:var(--lightbrown)}.cta.tertiary:hover,.cta.tertiary:focus{color:var(--darkbrown);border-color:var(--darkbrown)}}@container (max-width:550px){.card.spotlight .bottom{flex-direction:column;gap:.75rem;a{justify-content:center}}}.card.contact{justify-content:space-between;padding:.5rem 1.5rem;container-type:inline-size;&.highlight{border-color:var(--lightbrown);background:var(--green-fade)}.bottom{display:flex;align-items:center;h2{margin:0 0 .5rem 0;font-size:1.25rem}p{margin:0}}.cta{white-space:nowrap;min-width:200px;svg.icon{width:14px;height:14px;margin-left:.4em;vertical-align:middle}}}@container (max-width:470px){.card.contact .bottom{flex-direction:column;gap:1rem;a{text-align:center;width:100%}}}.content>.card.contact{margin-bottom:1rem}.content>.card.contact:first-of-type{margin-top:1rem}.list-grid{padding:0 .5rem .5rem;ul{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;margin-left:.75rem}li{display:flex;align-items:first baseline;padding:.25rem .75rem}li::before{top:-2px;flex-shrink:0;position:relative}}@media (max-width:600px){.list-grid ul{grid-template-columns:repeat(2,1fr)}}@media (max-width:400px){.list-grid ul{grid-template-columns:1fr}}.pivot-grid{display:grid;grid-template-columns:1fr 1fr 2fr;border-top:1px solid var(--border-medium);margin:1rem 0;.header{font-weight:600;background-color:var(--neutral-light);color:var(--text-soft-dark);border-bottom:2px solid var(--border-medium);padding:.75rem}.row{display:contents}.row>div{padding:.75rem;border-bottom:1px solid var(--border-medium);font-size:var(--fontsize-p-small)}.row.self>div{background-color:var(--bg-row-highlight)}}@media (max-width:640px){.pivot-grid{display:block;border:none;.header{display:none}.row{display:block;border:1px solid var(--border-medium);border-radius:6px;margin-bottom:1rem;overflow:hidden}.row.self{background-color:var(--bg-row-highlight)}.row>div:first-child{font-weight:600;font-size:var(--fontsize-p);padding:.75rem;border-bottom:1px solid var(--border-medium)}.row>div:nth-child(2),.row>div:nth-child(3){display:flex;padding:.5rem .75rem;font-size:var(--fontsize-p-small);border-top:0}.row>div:nth-child(2)::before,.row>div:nth-child(3)::before{font-weight:600;color:var(--text-soft-dark);content:attr(data-label) ":";flex:0 0 80px;font-size:var(--fontsize-p-small)}.row>div:nth-child(2) span,.row>div:nth-child(3) span{flex:1}}}.cta{display:flex;align-items:center;gap:.5rem;transition:all .2s ease;position:relative;justify-content:center;&.right{flex-direction:row}&.left{flex-direction:row-reverse}span{display:inline-flex;align-items:center}svg{fill:currentColor;transition:all .2s ease;flex-shrink:0}}.cta.primary{justify-content:center;font-weight:600;padding:.75rem 1.25rem;border-radius:6px;color:var(--text-main-light);background:var(--green);box-shadow:var(--shadow-cta)}.cta.primary:hover,.cta.primary:focus{background:var(--green-dark);outline:2px solid var(--green);outline-offset:2px;transform:translateY(1px);box-shadow:var(--shadow-cta-hover)}.cta.secondary{background-color:var(--lightbrown-fade-light);color:var(--darkbrown-darkest);font-weight:500;padding:.5rem 1rem;overflow:hidden}.cta.secondary:hover,.cta.secondary:focus{background-color:var(--lightbrown-fade-lightest);color:var(--darkbrown)}.cta.tertiary{background:transparent;color:var(--lightbrown);border:none;border-radius:6px;padding:.5rem 0;font-weight:400;font-size:var(--fontsize-p-small);justify-content:flex-end;&.right{font-weight:500;color:var(--darkbrown)}&.left{opacity:.85}}.cta.tertiary svg{transition:transform .2s ease}.cta.tertiary:hover{&.right{color:var(--darkbrown-dark);svg{transform:translateX(4px)}}&.left{color:var(--darkbrown);svg{transform:translateX(-4px)}}}main>.top,main>.bottom,main>.cta-row{a{width:100%}}a.external{position:relative;svg.superscript{height:16px;width:16px;position:relative;top:-6px}}.media-block{position:relative;width:100%;margin:1rem 0;img{display:block;width:100%;height:auto;filter:var(--filter-shadow-img)}figcaption{font-size:.75rem;color:var(--text-soft-dark);margin-top:.4rem}.base,.overlay{will-change:opacity}.base{position:relative;z-index:1}.overlay{position:absolute;inset:0;z-index:2;opacity:0}&.is-visible{&.fade{.overlay{animation:fadeInOverlay 2.5s ease-in-out 2s forwards}}&.pulse{.overlay{animation:pulseOverlay 10s linear 0s infinite;animation-fill-mode:both}}&.pulseCrossfade{.base{animation:pulseBase 10s linear 0s infinite;animation-fill-mode:both}.overlay{animation:pulseOverlay 10s linear 0s infinite;animation-fill-mode:both}}}}@keyframes fadeInOverlay{from{opacity:0}to{opacity:1}}@keyframes pulseOverlay{0%{opacity:0}20%{opacity:1}50%{opacity:1}70%{opacity:0}100%{opacity:0}}@keyframes pulseBase{0%,100%{opacity:1}25%,55%{opacity:.5}}.media-text{display:flex;gap:1.5rem;align-items:center;.text-intro{flex:1;margin:0}.media-block{flex:0 0 35%;max-width:35%;margin:0}&.reverse{flex-direction:row-reverse}}@container section-content (max-width:600px){.media-text{flex-direction:column-reverse;&.reverse{flex-direction:column-reverse}.media-block{max-width:100%;flex:1 1 auto}}}.media-strip{display:grid;gap:1rem;&.count-2{grid-template-columns:1fr 1fr}&.count-3{grid-template-columns:1fr 1fr 1fr}&.count-4{grid-template-columns:1fr 1fr 1fr 1fr}.media-item{margin:0;img{display:block;width:100%;object-fit:cover;filter:var(--filter-shadow-img)}}}@container section-content (max-width:600px){.media-strip{display:flex;overflow-x:auto;gap:.75rem;padding-bottom:.5rem;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;.media-item{flex:0 0 80%}.media-item img{scroll-snap-align:start}}}#pg-home{section .content{border:none}section:last-of-type{margin-bottom:1.5rem}}#pg-contact{.pn-map-large{border:6px solid var(--green)}.content:has(.map){display:flex;flex-direction:row;align-items:center;gap:.75rem;padding-bottom:1rem;.map{flex:1;padding:1rem}svg{color:var(--darkbrown)}.details{color:var(--darkbrown-darkest);font-weight:600}}}@media (max-width:740px){#pg-contact{.content:has(.map){flex-direction:column}}}#pg-about .content{p+p{padding-top:1rem;position:relative;&::before{content:"";position:absolute;top:0;left:5%;right:5%;height:1px;background-color:hsl(0,100%,85%)}&::after{content:"\2605";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--bg-page-light);padding:0 1rem;font-size:.75rem;color:hsl(0,100%,75%)}}}#pg-privacypolicy{section.primary .content{padding-top:2rem}p{margin:.375rem 0}}