:root{--ink:#253c34;--paper:#f5f3ec;--muted:#626b63;--line:#d6d9ce;--accent:#c5d494}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #788d51;outline-offset:5px}header{height:100px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:16px;font-size:16px;font-weight:600;letter-spacing:2px;line-height:1.35}.brand small{display:block;font-size:8px;letter-spacing:2.8px;margin-top:7px;font-weight:400}.monogram{font:38px/1 'Avenir','Avenir Next',Arial,sans-serif;letter-spacing:-7px;position:relative;width:55px}.monogram span{position:absolute;top:-15px;right:-2px;font:35px Arial;font-weight:200}nav{display:flex;gap:32px;font-size:13px}.nav-right{display:flex;align-items:center;gap:24px}.nav-right button{border:0;background:none;font-size:12px}.nav-cta{font-size:12px;border-bottom:1px solid;padding:8px 0}#menu{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:730px}.hero-copy{padding:65px 9% 24px 10%;display:flex;flex-direction:column}.eyebrow,.section-label{font-size:10px;letter-spacing:1.8px;font-weight:500}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow b{font-weight:500}.eyebrow span{width:7px;height:7px;background:#829756;border-radius:50%}h1,h2{font-family:'Avenir','Avenir Next',Arial,sans-serif;font-weight:400;letter-spacing:-2.5px;line-height:1.05}h1{font-size:clamp(48px,4.6vw,78px);margin:33px 0 23px}em{font-weight:400;color:#7c8668}h1 em{font-size:.96em}.hero p{max-width:380px;font-size:14px;line-height:1.85;color:var(--muted);margin:0 0 30px}.button{display:flex;align-items:center;justify-content:space-between;gap:50px;background:var(--ink);color:white;padding:16px 21px;font-size:12px;width:fit-content;transition:background .2s}.button:hover{background:#41604e}.button span{font-size:20px}.hero-bottom{margin-top:auto;padding-top:37px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;gap:20px}.hero-art{background:#788677;position:relative;overflow:hidden;min-height:680px}.hero-art>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:55% center;filter:saturate(.55)}.art-tint{position:absolute;inset:0;background:linear-gradient(180deg,#17352b12,#17352b88)}.survey{position:absolute;inset:4% 6%;height:90%;width:88%;fill:none;stroke:#fff8;stroke-width:.8;mix-blend-mode:screen}.image-caption{position:absolute;bottom:24px;left:30px;right:30px;display:flex;justify-content:space-between;color:#fff;font-size:8px;letter-spacing:1.4px}.image-note{position:absolute;bottom:85px;left:38px;font:italic 32px/1.15 'Avenir','Avenir Next',Arial,sans-serif;color:#fff;letter-spacing:-.5px}.ribbon{background:#e7eadf;display:flex;align-items:center;justify-content:space-around;gap:25px;padding:25px 5%;font-size:9px;letter-spacing:1.6px}.ribbon i{font-size:20px;font-style:normal;color:#89986c}.section{padding:100px 8%}.studio{display:grid;grid-template-columns:1fr 2.25fr;gap:60px}.section-label{margin-bottom:25px}h2{font-size:clamp(35px,3.6vw,56px);margin:0 0 30px;line-height:1.13;letter-spacing:-1.8px}.studio-text{display:grid;grid-template-columns:1fr 1fr;gap:35px}.studio-text p{font-size:13px;color:var(--muted);margin-top:0}.signature{font:italic 30px 'Avenir','Avenir Next',Arial,sans-serif;margin-top:24px}.signature span{font:9px Arial;text-transform:uppercase;letter-spacing:2px;margin-left:20px}.services{background:#eaece3}.section-top{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:35px}.section-top>p{max-width:285px;font-size:13px;color:var(--muted);margin:0 0 32px}.service-list{border-top:1px solid #bec6b8}details{border-bottom:1px solid #bec6b8}summary{list-style:none;display:grid;grid-template-columns:60px 1fr 28px;gap:15px;align-items:center;padding:27px 0;cursor:pointer}summary::-webkit-details-marker{display:none}.service-number{font:11px monospace;color:#7b866e}summary h3{font:29px 'Avenir','Avenir Next',Arial,sans-serif;margin:0;font-weight:400;letter-spacing:-.6px}.plus{font-size:25px;font-weight:300;transition:transform .2s}details[open] .plus{transform:rotate(45deg)}.detail-body{margin:0 45px 28px 75px;max-width:650px;font-size:14px;color:var(--muted)}.detail-body a{display:inline-block;margin-top:14px;font-size:12px;color:var(--ink);border-bottom:1px solid}.digital{display:grid;grid-template-columns:1fr 1fr;background:var(--ink);color:var(--paper)}.digital-art{background:#1f352e;position:relative;padding:35px 15px}.digital-art svg{width:100%;height:100%;max-height:430px}.digital-art>span{position:absolute;left:30px;bottom:20px;font:8px monospace;letter-spacing:1px;color:#a0b5a2}.digital-copy{padding:70px 12%}.digital-copy h2 em{color:var(--accent)}.digital-copy p{font-size:13px;color:#c6d0c6;line-height:1.9}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.tags span{border:1px solid #6b7f70;padding:5px 10px;font-size:8px;letter-spacing:1px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.step{border-top:1px solid var(--line);padding-top:24px}.step>span{font:italic 32px 'Avenir','Avenir Next',Arial,sans-serif;color:#8a9677}.step h3{font:24px 'Avenir','Avenir Next',Arial,sans-serif;font-weight:400;margin:25px 0 13px}.step p{font-size:12px;color:var(--muted)}.international{display:grid;grid-template-columns:1fr 2.25fr;gap:60px;background:#e7eadf}.international p{max-width:600px;font-size:14px;color:var(--muted)}.text-link{display:inline-block;border-bottom:1px solid;padding:10px 0;font-size:12px}.contact{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1.3fr 1fr;gap:90px}.contact h2 em{color:var(--accent)}.contact p{font-size:13px;max-width:400px;color:#c5cec4}.light{background:var(--paper);color:var(--ink);margin-top:32px}.light:hover{background:var(--accent)}.contact-details{padding-top:65px}.contact-details>a{display:block;font:23px 'Avenir','Avenir Next',Arial,sans-serif;border-bottom:1px solid #5b6d5f;padding:15px 0}.contact-details>a.whatsapp{font:12px Arial;padding:20px 0}.location{margin-top:35px}.location>span{font-size:9px;letter-spacing:2px}.location p{font-size:12px}footer{padding:35px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:9px;color:var(--muted)}.footer-brand{font-size:11px;display:block}.footer-brand small{font-size:7px;margin-top:2px}footer button{border:0;background:transparent;font-size:9px;padding:0}dialog{max-width:580px;background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:45px}dialog::backdrop{background:#10251fcc;backdrop-filter:blur(4px)}dialog h2{font-size:32px;letter-spacing:-1px}dialog p{font-size:13px}#close-privacy{float:right;background:none;border:0;font-size:28px;line-height:1}.skip{position:fixed;top:-80px;left:20px;background:white;z-index:50;padding:15px}.skip:focus{top:10px}@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero{min-height:850px}.hero-copy{padding-top:90px}}@media(max-width:900px){header{height:85px;padding:0 5%}nav{gap:18px}h1{font-size:49px}.hero-copy{padding:50px 8% 25px}.hero{min-height:680px}.hero-art{min-height:650px}.section{padding:70px 6%}.studio,.international{grid-template-columns:1fr 2fr;gap:30px}.studio-text{grid-template-columns:1fr;gap:5px}.contact{gap:40px}.digital-copy{padding:55px 9%}.ribbon{font-size:8px;gap:15px}.ribbon i{font-size:15px}}@media(max-width:650px){header{height:80px}.brand{font-size:12px;gap:12px}.brand small{font-size:6px;letter-spacing:1.8px}.monogram{font-size:31px;width:42px}.monogram span{font-size:28px}.nav-right{gap:15px}.nav-cta{display:none}#menu{display:block;font-size:20px}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:25px;box-shadow:0 12px 16px #233d3512}header.menu-open nav{display:flex;flex-direction:column}.hero{grid-template-columns:1fr}.hero-copy{padding:38px 7% 25px}h1{font-size:53px;letter-spacing:-2px;margin:25px 0}.eyebrow{font-size:8px;letter-spacing:1px}.hero p{font-size:13px}.hero-bottom{padding-top:35px}.hero-art{min-height:420px}.image-note{font-size:29px}.ribbon{flex-wrap:wrap;gap:12px 20px;padding:20px}.ribbon i:last-of-type{display:none}.ribbon span{font-size:8px}.section{padding:58px 7%}.studio,.international,.contact{grid-template-columns:1fr;gap:5px}.studio-text{grid-template-columns:1fr}.section-label{font-size:9px;margin-bottom:22px}h2{font-size:37px}.section-top{display:block;margin-bottom:20px}.section-top>p{max-width:100%;margin-bottom:30px}summary{grid-template-columns:30px 1fr 24px;gap:5px;padding:23px 0}summary h3{font-size:23px}.detail-body{margin:0 15px 25px 35px;font-size:13px}.digital{grid-template-columns:1fr}.digital-art{min-height:320px}.digital-art svg{max-height:330px}.digital-copy{padding:45px 7% 55px}.steps{grid-template-columns:1fr 1fr;gap:28px 22px}.step h3{font-size:22px;margin-top:15px}.contact-details{padding-top:32px}.contact-details>a{font-size:23px}footer{display:grid;grid-template-columns:1fr 1fr;padding:30px 7%}footer>:nth-child(even){text-align:right}.image-caption{font-size:7px;left:25px;right:25px}dialog{margin:20px;padding:28px}.survey{height:95%;top:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.contact-details>a.pec{font:16px/1.6 Arial,Helvetica,sans-serif;overflow-wrap:anywhere}.pec small{font-size:9px;letter-spacing:1px;margin-right:8px}.professional-info{max-width:430px;font-size:9px;line-height:1.8}.professional-info span{display:block}.studio-identity{border-bottom:1px solid var(--line);padding-bottom:20px}.studio-identity a{text-decoration:underline}@media(max-width:650px){footer .professional-info{text-align:left;grid-column:1/-1;grid-row:2}.contact-details>a.pec{font-size:14px}}

.contact-details>a.digital-card{font:13px/1.6 Arial,Helvetica,sans-serif;padding:18px 0;color:var(--accent)}.digital-card:hover{text-decoration:underline}

.photo-motto{display:block;font:11px/1.6 Arial,Helvetica,sans-serif;letter-spacing:2px;margin-top:20px;color:#fff}@media(max-width:650px){.photo-motto{font-size:10px;letter-spacing:1.5px;margin-top:16px}}

.map-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:30px}.map-heading h2{margin-bottom:16px}.map-heading p{font-size:13px;color:var(--muted)}.studio-map{display:block;width:100%;height:440px;border:1px solid var(--line);background:#e7eadf}.map-note{font-size:10px;color:var(--muted);margin-top:14px}@media(max-width:650px){.map-heading{display:block}.map-heading .button{margin-top:24px}.studio-map{height:350px}}

/* Unified Avenir typography across all components. */
body,button,input,textarea,select,h1,h2,h3,.brand,.monogram,.monogram span,.signature,.signature span,.service-number,.step>span,.tags span,.digital-art>span,.photo-motto,.contact-details>a,.contact-details>a.whatsapp,.contact-details>a.pec,.contact-details>a.digital-card{font-family:"Avenir","Avenir Next",Arial,sans-serif}

@font-face{font-family:"Studio Handwriting";src:url("assets/caveat.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}.image-note .photo-motto{font-family:"Studio Handwriting","Segoe Script",cursive;font-size:34px;font-style:normal;font-weight:500;letter-spacing:.3px;line-height:1.2;margin-top:18px}.hero-art>img{object-position:56% 48%;filter:none}.hero-art .art-tint{background:linear-gradient(180deg,rgba(20,42,32,.02) 35%,rgba(20,42,32,.25) 62%,rgba(20,42,32,.8) 100%)}.hero-art .survey{opacity:.2}.image-note{bottom:85px;text-shadow:0 2px 16px #10251f66}@media(max-width:650px){.image-note .photo-motto{font-size:30px}.hero-art>img{object-position:50% 52%}.hero-art{min-height:530px}}

[hidden]{display:none!important}@media(max-width:650px){html:not(.js-ready) nav{display:flex;position:static;box-shadow:none;padding:0;flex-direction:row;gap:12px;font-size:10px}html:not(.js-ready) header{height:auto;min-height:90px;flex-wrap:wrap;gap:18px;padding-top:15px;padding-bottom:15px}}

/* Professional title always sits below the name. */
.signature>span{display:block;margin-left:0;margin-top:7px;font-style:normal;line-height:1.5}.brand small{display:block}.studio-identity>span[data-it="Geometra"]{display:block;line-height:1.5}

/* Lower the photo copy to reveal more of the central facade. */
.hero-art .image-note{bottom:36px}@media(max-width:650px){.hero-art .image-note{bottom:36px}}

.hero-art .image-caption{bottom:12px}

/* Phone layouts and touch interaction, including narrow screens. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.hero-copy,.hero-art,.studio>div,.section-top>div,.digital-copy,.contact>div{min-width:0}
@media(max-width:650px){
 header{gap:12px;min-height:88px;height:auto;padding-top:10px;padding-bottom:10px}
 header>.brand{flex:1;min-width:0;gap:10px}
 header .monogram{flex:0 0 38px;width:38px}
 header .brand>span:last-child{min-width:0}
 header .brand small{font-size:6.5px;letter-spacing:1px;line-height:1.5;white-space:normal}
 .nav-right{flex:0 0 auto;gap:4px}
 .nav-right button{min-width:44px;min-height:44px;padding:8px}
 nav{top:100%;padding:14px 7%;z-index:20}
 nav a{display:flex;align-items:center;min-height:44px;font-size:15px}
 h1{font-size:clamp(38px,11.5vw,53px);overflow-wrap:break-word}
 .hero p,.studio-text p,.digital-copy p,.contact p,.international p,.detail-body,.section-top>p{font-size:15px;line-height:1.75}
 .hero-bottom{flex-wrap:wrap;align-items:center;gap:8px 16px}
 .hero-bottom a{display:flex;align-items:center;min-height:44px}
 .hero-art .image-note{left:22px;right:22px;bottom:36px;font-size:clamp(23px,6.7vw,29px);line-height:1.2}
 .image-note .photo-motto{font-size:clamp(26px,7.5vw,30px);line-height:1.2}
 .image-caption{left:22px;right:22px;gap:10px;font-size:6px;letter-spacing:1px}
 .button{min-height:48px;max-width:100%;gap:24px;font-size:14px}
 summary{min-height:64px}summary h3{font-size:22px;line-height:1.3}
 .step p{font-size:14px;line-height:1.7}
 .contact-details>a{overflow-wrap:anywhere;min-height:48px}
 .contact-details>a.whatsapp,.contact-details>a.pec,.contact-details>a.digital-card{font-size:14px;line-height:1.6}
 .location p{font-size:14px}
 .studio-map{height:330px}
 .map-heading p{font-size:14px}
 .map-note{font-size:12px;line-height:1.6}
 footer{font-size:11px;gap:16px}
 footer>a:not(.brand),footer button{font-size:12px;min-height:44px;display:flex;align-items:center}
 .professional-info{font-size:11px;overflow-wrap:anywhere}
 .text-link{font-size:14px;min-height:44px}
 dialog{width:calc(100% - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:25px;overflow:auto}
 #close-privacy{min-width:44px;min-height:44px}
}
@media(max-width:360px){.steps{grid-template-columns:1fr}.ribbon{column-gap:12px}.ribbon span{letter-spacing:1px}h2{font-size:33px}.hero-art{min-height:500px}}
@media(hover:none){a,button,summary{touch-action:manipulation}}

/* Quiet editorial separators, with an orderly phone layout. */
.ribbon .ribbon-divider{display:block;flex:0 0 1px;width:1px;height:20px;background:#8a967d;opacity:.55}
@media(max-width:650px){.ribbon{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:16px 12px;padding:22px 7%;text-align:center;align-items:center}.ribbon>span{min-width:0;line-height:1.6}.ribbon .ribbon-divider{justify-self:center;height:24px}.ribbon .ribbon-divider:nth-of-type(2){display:none}.ribbon>span:nth-of-type(3){grid-column:1;grid-row:2}.ribbon .ribbon-divider:nth-of-type(3){grid-column:2;grid-row:2;display:block}.ribbon>span:nth-of-type(4){grid-column:3;grid-row:2}}

/* Photo / point cloud / wireframe presentation. */
.digital-art.laser-photo{position:relative;padding:0;min-height:580px;overflow:hidden;background:#11241f}.laser-photo>img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:50% 47%}.laser-image-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(10,23,20,.2) 75%,rgba(10,23,20,.92) 100%);pointer-events:none}.laser-stages{position:absolute;bottom:60px;left:28px;right:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));color:#fff;font-size:9px;letter-spacing:1.1px;line-height:1.5}.laser-stages>span{padding:13px 10px 0;border-top:1px solid #ffffff70}.laser-stages>span:first-child{padding-left:0}.laser-stages>span+span{border-left:1px solid #ffffff45}.digital-art.laser-photo>.laser-caption{left:28px;right:20px;bottom:23px;font-family:"Avenir","Avenir Next",Arial,sans-serif;font-size:8px;color:#d2dfd5;letter-spacing:1px;line-height:1.6}.digital-copy{align-self:center}@media(max-width:900px){.digital-art.laser-photo{min-height:560px}}@media(max-width:650px){.digital-art.laser-photo{min-height:0;aspect-ratio:4/5}.laser-stages{left:22px;right:22px;bottom:62px;font-size:8px;letter-spacing:.6px}.digital-art.laser-photo>.laser-caption{left:22px;right:22px;font-size:7px}.laser-photo>img{object-position:50% 48%}}

/* Consistent contact rows and platform-independent arrow icons. */
.contact-details>a.contact-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:20px 0;margin:0;font-family:"Avenir","Avenir Next",Arial,sans-serif;font-size:18px;font-weight:400;line-height:1.5;letter-spacing:0;color:var(--paper);border-bottom:1px solid #6d7d6f;text-decoration:none}.contact-label{flex:1;min-width:0;overflow-wrap:anywhere}.contact-arrow{display:block;flex:0 0 20px;width:20px;height:20px;transition:transform .2s ease}.contact-row:hover{color:var(--accent)}.contact-row:hover .contact-arrow{transform:translate(2px,-2px)}@media(max-width:650px){.contact-details>a.contact-row{font-size:16px;min-height:68px;padding:19px 0;gap:14px}.contact-arrow{flex-basis:18px;width:18px;height:18px}}@media(prefers-reduced-motion:reduce){.contact-row:hover .contact-arrow{transform:none}}

/* Unified directional icon family throughout the site. */
.ui-arrow,.contact-arrow.ui-arrow{display:inline-block;vertical-align:middle;width:18px;height:18px;min-width:18px;flex:0 0 18px;stroke-width:1.5}.nav-cta,.text-link,.detail-body a,.hero-bottom a,footer>a:not(.brand){display:inline-flex;align-items:center;gap:10px}.button>span{display:flex;align-items:center;justify-content:center;font-size:inherit}.contact-row .ui-arrow{margin-left:auto}@media(max-width:650px){.ui-arrow,.contact-arrow.ui-arrow{width:18px;height:18px;flex-basis:18px}}

/* Separate the language control from the name on phone screens. */
@media(max-width:650px){header{column-gap:24px}header>.brand{padding-right:8px}header .nav-right{padding-left:8px}header #lang{min-width:44px}}
@media(max-width:360px){header{padding-left:4%;padding-right:4%;column-gap:18px}header>.brand{gap:8px;padding-right:4px}header .brand{font-size:11px;letter-spacing:1.5px}header .nav-right{padding-left:4px}}

/* Keep repeated letters in the motto consistent with the rest of the handwriting. */
.image-note .photo-motto{font-variant-ligatures:none;font-feature-settings:"liga" 0,"clig" 0,"dlig" 0,"hlig" 0,"calt" 0;font-synthesis:none}

/* The language selector is a crawlable link on both language pages. */
.nav-right a#lang{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;font-size:12px;background:none;border:0}

/* Circular LN mark; existing name and qualification unchanged. */
.brand-mark{display:block;width:55px;height:55px;flex:0 0 55px;object-fit:contain}
@media(max-width:650px){.brand-mark{width:42px;height:42px;flex-basis:42px}}

/* Isolated visual proposal, not production. */
.editorial-icon{display:block;width:32px;height:32px;color:#858c70}
.service-number{display:flex;align-items:center;justify-content:flex-start}
.step>span{display:flex;align-items:center;margin-bottom:24px}
.step>span .editorial-icon{width:42px;height:42px}
.section-label{display:flex;align-items:center;gap:12px}
.section-label:before{content:"";display:inline-block;width:7px;height:7px;border:1px solid #858c70;transform:rotate(45deg);flex:none}

.editorial-icon{width:28px;height:28px;color:#233d35;opacity:.85}
.step>span .editorial-icon{width:34px;height:34px}

/* Contact symbols aligned before each address or label. */
.contact-type-icon{display:block;flex:0 0 22px;width:22px;height:22px;color:#b6bea2}
.contact-row:hover .contact-type-icon{color:currentColor}
@media(max-width:650px){.contact-type-icon{flex-basis:20px;width:20px;height:20px}}
