/* Sample recreation of stephenvitosky.com (Squarespace "Wexley" template look).
   Original uses Typekit "europa"; Mulish (Google Fonts) is the stand-in, with Helvetica/Arial fallback. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#666;font-family:Mulish,europa,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;font-size:14px;line-height:1.8;letter-spacing:.04em;-webkit-font-smoothing:antialiased}
a{color:#000;text-decoration:none}
img{max-width:100%;height:auto;display:block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.site{padding:45px 45px 30px;max-width:1920px;margin:0 auto}
/* header */
.header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:10px;position:relative}
.logo img{height:100px;width:auto}
.logo-subtitle{font-size:12px;color:#aaa;line-height:1.2;margin-top:8px}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:35px}
.main-nav{padding-top:33px}
.main-nav a{color:#4d4d4d;font-size:14px;letter-spacing:.04em;transition:color .2s}
.main-nav a:hover,.main-nav .active a{color:#000}
.main-nav .active a{font-weight:400}
.nav-toggle{display:none;background:none;border:0;font:inherit;color:#4d4d4d;cursor:pointer;padding:33px 0 0}
/* justified thumbnail grid (like Wexley's #thumbList) */
.thumb-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.thumb{flex:calc(var(--ar)*100) 1 calc(var(--ar)*400px);position:relative;overflow:hidden;background:#f4f4f4}
.thumb::before{content:"";display:block;padding-top:calc(100%/var(--ar))}
.thumb a,.thumb img{position:absolute;inset:0;width:100%;height:100%}
.thumb img{object-fit:cover;transition:opacity .3s}
.thumb a:hover img{opacity:.85}
.thumb-filler{flex:10000 1 0;height:0}
/* text pages */
.page-content{margin:50px auto 0;max-width:1100px}
.page-content h1{font-size:14px;font-weight:600;color:#222;margin:0 0 6px;letter-spacing:.04em}
.page-content h2{font-size:13px;font-weight:600;color:#222;margin:24px 0 4px}
.page-content p{margin:0 0 1em}
.page-content strong{font-weight:600;color:#444}
.small{font-size:13px}
.note{font-size:12px;color:#b07a2a}
.list{margin:0 0 1em;padding-left:1.1em}
.text-link{border-bottom:1px solid #000}
.contact{display:grid;grid-template-columns:minmax(0,320px) minmax(0,520px);gap:80px;justify-content:center}
.about{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
/* form */
.field{margin-bottom:16px}
.field label{display:block;font-size:12px;color:#222;margin-bottom:4px;letter-spacing:.04em}
.req{color:#999}.opt{color:#aaa;font-size:11px}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:14px;color:#222;padding:10px 12px;border:1px solid #ccc;border-radius:0;background:#fafafa;letter-spacing:normal}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#666;background:#fff}
.field .error{display:none;color:#c0392b;font-size:12px;margin:4px 0 0}
.field.has-error .error{display:block}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#c0392b}
.btn{font:inherit;font-size:12px;letter-spacing:.15em;text-transform:uppercase;background:#272727;color:#fff;border:0;padding:14px 34px;cursor:pointer}
.btn:hover{background:#000}
.hp{position:absolute;left:-9999px}
.thanks{padding:30px 0;outline:none}.thanks-title{font-weight:600;color:#222;font-size:16px}
/* footer */
.footer{margin-top:55px;font-size:13px}
.footer p{margin:0 0 10px}
.social{display:flex;gap:14px}.social a{color:#222}
/* lightbox: white, image centred, "prev / next" text below, × top right (as on live site) */
.lightbox{position:fixed;inset:0;background:#fff;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:70px 45px 30px}
.lightbox[hidden]{display:none}
.lb-open{overflow:hidden}
.lb-figure{margin:0;flex:1;display:flex;align-items:center;justify-content:center;min-height:0;width:100%}
.lb-img{max-width:100%;max-height:calc(100vh - 160px);width:auto;height:auto;object-fit:contain}
.lb-caption,.lb-count{display:none}
.lb-controls{margin-top:16px;font-size:13px;color:#222}
.lb-controls button{background:none;border:0;font:inherit;color:#222;cursor:pointer;padding:4px}
.lb-sep{margin:0 2px}
.lb-close{position:absolute;top:30px;right:45px;background:none;border:0;font-size:24px;line-height:1;color:#222;cursor:pointer}
/* responsive */
@media (max-width:900px){.contact,.about{grid-template-columns:1fr;gap:30px}}
@media (max-width:768px){
 .site{padding:24px 18px}
 .logo img{height:64px}
 .nav-toggle{display:block;padding-top:18px}
 .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:10px 0 20px;z-index:10;border-bottom:1px solid #eee}
 .nav-open .main-nav{display:block}
 .main-nav ul{flex-direction:column;gap:8px}
 .main-nav a{font-size:16px}
 .thumb{flex-basis:calc(var(--ar)*200px)}
 .lightbox{padding:60px 10px 20px}.lb-close{right:16px;top:16px}
}
