@font-face{font-family:TildaSans;src:url('/assets/tildasans.woff2') format('woff2');font-style:normal;font-weight:250 1000;font-display:swap}
@font-face{font-family:DMSerifDisplay;src:url('/assets/dm-serif-display.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{font-family:TildaSans,Arial,sans-serif;font-weight:300;color:#333;background:#f1f8fb;color-scheme:light;--blue:#f1f8fb;--pink:#faf1fb;--cream:#fbfaf1;--dark:#212121;--green:#199c68}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0}
body:has(dialog[open]){overflow:hidden}
button,input,textarea{font:inherit}
a{color:inherit;text-underline-offset:5px}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #19734f;outline-offset:5px}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
h2{font-size:2.125rem;line-height:1.2;font-weight:300}
.container{width:min(1160px,calc(100% - 80px));margin-inline:auto}
.skip-link{position:fixed;top:-100px;left:16px;padding:12px 20px;background:#fff;z-index:50;font-weight:500}
.skip-link:focus{top:12px}
.site-header{min-height:70px;padding:12px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--blue)}
.wordmark{font-family:DMSerifDisplay,Georgia,serif;font-weight:400;font-size:1.75rem;line-height:1.3;text-decoration:none;color:#000}
nav{display:flex;align-items:center;justify-content:flex-end;gap:30px;flex-wrap:wrap}
nav a{font-size:1rem;font-weight:400;color:#000;text-decoration:none;padding-block:9px}
nav a:hover{text-decoration:underline}
.hero{padding:75px 24px 210px;background:var(--blue);text-align:center}
h1{font-size:3.875rem;font-weight:300;line-height:1.1;max-width:760px;margin:auto}
.product-gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,50vh)}
.gallery-item{overflow:hidden;display:block;min-width:0;min-height:0;cursor:zoom-in}
.gallery-main{grid-row:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;object-position:center}
.gallery-item:focus-visible{outline-offset:-6px}
.mission{padding:210px 0;background:var(--blue)}
.mission-layout{display:grid;grid-template-columns:1fr 2fr;gap:40px}
.mission h2{padding-top:8px}
.mission p{font-size:2.25rem;line-height:1.55;font-weight:300}
.services{padding:210px 0;background:var(--pink)}
.services h2{text-align:center;margin-bottom:105px}
.service-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;text-align:center}
.service-number{display:flex;align-items:center;justify-content:center;height:80px;font-size:2rem;font-weight:600;margin-bottom:20px}
.service-list h3{font-size:1.5rem;font-weight:400;line-height:1.35;margin-bottom:18px}
.service-list p{font-size:1.5rem;line-height:1.5;font-weight:300}
.invitation{padding:105px 24px;background:var(--cream);text-align:center}
.invitation p{max-width:760px;margin:auto;font-size:1.625rem;line-height:1.5}
.contact{padding:60px 0;background:var(--dark);color:#fff}
.contact-layout{max-width:960px;display:flex;justify-content:space-between;gap:30px;align-items:center}
.contact h2{font-size:5.125rem;line-height:1.2;font-weight:600;white-space:nowrap}
.contact address{font-style:normal;text-align:right;display:flex;flex-direction:column;gap:4px;font-size:2.125rem;line-height:1.55;min-width:0}
.contact a{text-decoration:none;overflow-wrap:anywhere}
.contact a:hover{text-decoration:underline}
.site-footer{padding:60px 24px 64px;background:var(--dark);color:#fff;text-align:center}
.site-footer p{max-width:560px;margin:auto;font-size:1rem;line-height:1.55}
.contact-fab{width:60px;height:60px;position:fixed;right:100px;bottom:50px;z-index:10;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--green);border-radius:50%;box-shadow:0 6px 24px #0001}
.contact-fab:hover{background:#137e53}
dialog{border:0;color:#333;padding:0;max-height:calc(100dvh - 40px);max-width:calc(100vw - 32px);overscroll-behavior:contain}
dialog::backdrop{background:#0007}
.close-button{position:absolute;right:12px;top:10px;width:44px;height:44px;border:0;background:transparent;font:300 2rem/1 Arial,sans-serif;color:inherit;z-index:2}
.contact-dialog{width:420px;padding:42px 30px 24px;box-shadow:0 16px 72px #0003}
.contact-dialog h2{font-size:1.625rem;font-weight:500;line-height:1.25;padding-right:12px;margin-bottom:28px}
label{display:block;font-size:1rem;font-weight:400;margin:16px 0 7px}
label span{font-weight:300;font-size:.875rem}
input,textarea{width:100%;padding:11px 12px;border:1px solid #bdbdbd;border-radius:0;font-size:1rem;background:#fff;color:#212121;line-height:1.5}
textarea{resize:vertical;min-height:110px}
.form-note{font-size:.875rem;line-height:1.5;margin-top:16px;color:#555}
.email-button{width:100%;border:0;background:var(--green);color:#fff;padding:16px;font-size:1rem;font-weight:500;margin-top:20px}
.email-button:hover{background:#137e53}
.form-status{font-size:.875rem;line-height:1.5;margin-top:14px}
.form-status:empty{display:none}
.image-dialog{background:#212121;color:#fff;width:min(1200px,calc(100vw - 32px));padding:54px 20px 16px}
.image-dialog img{height:min(75dvh,1000px);width:100%;object-fit:contain}
.image-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:14px;font-size:1rem}
.image-controls button{background:transparent;border:1px solid #888;color:#fff;min-height:44px;padding:8px 16px;font-size:1rem}
@media(max-width:1100px){.contact h2{font-size:4rem}.contact address{font-size:1.75rem}.contact-fab{right:35px;bottom:35px}}
@media(max-width:960px){.container{width:calc(100% - 48px)}.hero{padding-bottom:150px}h1{font-size:3.5rem}.mission,.services{padding:110px 0}.mission-layout{grid-template-columns:1fr;gap:35px}.mission p{font-size:2rem}.services h2{margin-bottom:55px}.service-list{gap:28px}.service-list p{font-size:1.25rem}.contact-layout{align-items:flex-start}.contact h2{font-size:3.5rem}.contact address{font-size:1.5rem}}
@media(max-width:900px){.product-gallery{grid-template-columns:1fr 1fr;grid-template-rows:70vh 35vh}.gallery-main{grid-column:span 2;grid-row:1}}
@media(max-width:640px){.site-header{padding:18px 24px;align-items:flex-start;gap:16px;flex-wrap:wrap}.wordmark{font-size:1.75rem}nav{gap:18px;justify-content:flex-start}nav a{font-size:.9375rem}.hero{padding:55px 24px 100px}h1{font-size:clamp(2.2rem,8.3vw,3.3rem);max-width:470px}.product-gallery{grid-template-rows:400px 200px}.mission,.services{padding:80px 0}h2{font-size:1.875rem}.mission p{font-size:1.625rem;line-height:1.5}.service-list{grid-template-columns:1fr;gap:48px;max-width:410px;margin:auto}.service-number{height:48px;margin-bottom:10px;font-size:1.75rem}.service-list h3{font-size:1.5rem;margin-bottom:14px}.service-list p{font-size:1.25rem}.services h2{margin-bottom:45px}.invitation{padding:70px 24px}.invitation p{font-size:1.375rem}.contact{padding:60px 0 20px}.contact-layout{display:block}.contact h2{font-size:3.5rem;white-space:normal;margin-bottom:25px}.contact address{text-align:left;font-size:1.5rem;gap:8px}.site-footer{padding:35px 24px 100px}.site-footer p{text-align:left;max-width:none}.contact-fab{right:20px;bottom:20px;width:56px;height:56px}.contact-dialog{padding:44px 24px 22px}.image-dialog{padding:54px 8px 16px}.image-controls{gap:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
