/* Lazo Legal V3 — clean, maintainable stylesheet. IBM Plex Mono applies everywhere. */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap');
:root{--navy:#152d56;--gold:#b39760;--paper:#fbfaf7;--muted:#5f6470;--border:#e4dbcd;--font:'IBM Plex Mono','Courier New',monospace}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--paper);color:#24324b;font:400 14px/1.7 var(--font)}
button,input,textarea,select{font:inherit} a{color:inherit} a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.container{max-width:1180px;margin-inline:auto;padding-inline:38px}
.demo-notice{text-align:center;color:#766044;background:#f2ece2;padding:7px 18px;font-size:10px;line-height:1.5}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,253,249,.98);border-bottom:1px solid var(--border)}
.nav-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:105px}
.brand{display:flex;align-items:center;gap:13px;min-width:0;text-decoration:none}
.brand-mark{width:82px;height:86px;object-fit:contain;flex-shrink:0}
.brand-copy{display:flex;flex-direction:column;min-width:0}
.brand-name{font-weight:600;color:var(--navy);font-size:30px;line-height:1.2;letter-spacing:.02em}
.brand-description{color:var(--navy);font-size:11px;line-height:1.6}
.brand-caption{color:#927444;font-size:9px;letter-spacing:.12em;line-height:2}
.primary-nav{display:flex;gap:30px;align-items:center}
.primary-nav a{font-size:15px;color:var(--navy);text-decoration:none;border-bottom:1px solid transparent;padding:8px 0}
.primary-nav a:hover,.primary-nav a:focus-visible{border-bottom-color:var(--gold)}
.menu-button{display:none;color:var(--navy);border:1px solid var(--border);background:transparent;border-radius:3px;padding:8px 10px;cursor:pointer;flex-shrink:0}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--border);background:#fcfaf7;isolation:isolate}
.hero-image{position:absolute;inset:0 0 0 auto;width:53%;z-index:-1;background:url('assets/architectural-columns.webp') center right/cover no-repeat;mask-image:linear-gradient(to right,transparent 0%,rgba(0,0,0,.5) 22%,black 48%)}
.hero-layout{display:flex;align-items:center;min-height:420px;padding-block:48px}
.hero-content{max-width:625px;width:59%}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:var(--navy);font-weight:500}
h1{font-size:clamp(31px,3.65vw,49px);line-height:1.18;letter-spacing:-.075em;margin-bottom:22px}
.hero p{font-size:15px;line-height:1.7;max-width:515px;margin-bottom:25px}
.ornament{position:relative;height:1px;width:min(420px,90%);background:var(--gold);margin:22px 0 24px;text-align:center}
.ornament span{position:relative;top:-13px;background:#fcfaf7;padding:0 12px;color:var(--gold);font-size:16px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:18px;min-height:46px;padding:12px 20px;background:var(--navy);color:white;text-decoration:none;font-size:11px;line-height:1.45;text-transform:uppercase;letter-spacing:.045em;font-weight:600;text-align:center;border:1px solid var(--navy);transition:background .15s}
.button:hover{background:#2c4773}
.section{padding-block:60px}
.services{background:#fefcf9}
.section-heading{text-align:center;text-transform:uppercase;letter-spacing:.2em;color:#96713b;font-size:13px;font-weight:600;display:flex;gap:18px;justify-content:center;align-items:center;margin-bottom:29px}
.section-heading::before,.section-heading::after{content:"";height:1px;background:var(--gold);width:90px}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-card{background:linear-gradient(135deg,#fffefd,#fcfaf7);border:1px solid var(--border);border-bottom:2px solid var(--gold);padding:24px 26px;box-shadow:0 5px 18px rgba(25,38,57,.08)}
.service-icon{display:block;color:var(--gold);font-size:30px;height:46px;line-height:1.3}
.service-card h3{font-size:19px;letter-spacing:-.045em;line-height:1.4;margin:0 0 12px}
.service-card p{font-size:12.5px;line-height:1.75;margin:0}
.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;align-items:center;gap:50px}
.about-heading{display:flex;align-items:center;gap:20px}
.about-watermark{width:100px;height:auto;opacity:.15;filter:grayscale(1)}
.about-heading-copy{border-left:1px solid var(--gold);padding-left:20px}
.eyebrow{display:block;font-size:10px;font-weight:600;color:#987642;letter-spacing:.14em;text-transform:uppercase}
.about h2,.contact h2{font-size:clamp(25px,2.6vw,34px);letter-spacing:-.06em;line-height:1.3;margin:8px 0}
.about-copy p{font-size:13px;line-height:1.8;margin-bottom:13px}
.fine-print{font-size:10px!important;line-height:1.8;color:var(--muted)}
.contact{background:#f5f0e8;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:55px;align-items:start}
.contact-intro p{max-width:480px;font-size:13px}
.contact-address{margin-top:25px;overflow-wrap:anywhere}
.contact-address a{color:var(--navy);text-underline-offset:4px}
.contact-panel{background:#fffdf9;border:1px solid var(--border);border-left:3px solid var(--gold);padding:26px;box-shadow:0 5px 18px rgba(25,38,57,.06)}
.contact-panel h3{font-size:16px;margin:0 0 13px}
.contact-panel p,.contact-panel li{font-size:12px;line-height:1.8}
.contact-panel ul{padding-left:21px;margin:10px 0 17px}
.contact-panel li{padding-bottom:5px}
.button-full{display:flex;width:100%;margin:21px 0 16px}
.site-footer{background:#fffdf9}
.footer-layout{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:85px;font-size:14px}
.footer-layout strong{color:var(--navy)}.footer-separator{margin-inline:8px;color:var(--gold)}
.footer-layout nav{display:flex;flex-wrap:wrap;gap:18px;font-size:14px}
.footer-layout a{text-decoration:none;color:var(--navy)}
@media(max-width:980px){.container{padding-inline:28px}.nav-bar{min-height:90px}.primary-nav{gap:17px}.brand-name{font-size:25px}.hero-content{width:65%}.hero-image{width:55%;opacity:.85}.service-card{padding:21px}.service-card h3{font-size:17px}}
@media(max-width:700px){
 html{scroll-padding-top:80px}.container{padding-inline:24px}
 .nav-bar{min-height:80px;gap:10px}.brand{gap:8px}.brand-mark{width:48px;height:58px}.brand-name{font-size:17px}.brand-description{font-size:7px}.brand-caption{font-size:6px;letter-spacing:.05em}
 .menu-button{display:block;font-size:11px}
 .primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fffdf9;border-bottom:1px solid var(--border);box-shadow:0 9px 14px #152d5619;padding:14px 24px;flex-direction:column;align-items:stretch;gap:0}
 .primary-nav.open{display:flex}.primary-nav a{padding:11px 0;font-size:15px}
 .hero-layout{min-height:430px;padding-block:55px}.hero-image{width:100%;opacity:.16;mask-image:linear-gradient(to right,transparent,black)}.hero-content{width:100%;max-width:100%}
 h1{font-size:clamp(27px,7.2vw,40px);line-height:1.25;letter-spacing:-.075em;overflow-wrap:break-word}
 .hero p{font-size:13px;line-height:1.75;max-width:100%}
 .section{padding-block:52px}.section-heading{font-size:11px;gap:12px}.section-heading::before,.section-heading::after{width:32px}
 .service-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:22px}
 .about-watermark{width:76px}.about-grid{gap:24px}.contact-panel{padding:20px}.footer-layout{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:20px;font-size:12px}.footer-layout nav{font-size:12px}
}
@media(max-width:360px){.container{padding-inline:18px}.brand-name{font-size:15px}.brand-description{font-size:6px}.brand-caption{font-size:5.5px}h1{font-size:26px}.button{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
