:root{--orange:#fd7306;--orange-dark:#c95400;--orange-text:#bf4e00;--ink:#111;--muted:#5c5c5c;--line:#e6e6e6;--side:#e7e7e5;--side-text:#151515;--side-muted:#595959;--bg:#fff;--soft:#f5f5f3;--sidew:300px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Jost","Avenir Next","Avenir","Segoe UI",Helvetica,Arial,sans-serif;font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0;background:#fff;color:#000;padding:10px 16px;z-index:2000}
.skip:focus{left:8px;top:8px}

/* header */
.top{background:#fff;border-bottom:1px solid var(--line)}
.top-in{max-width:1800px;margin:0 auto;padding:30px 28px 24px;display:flex;flex-direction:column;align-items:flex-start}
.brand{display:block;width:520px;max-width:100%}
.brand img{width:100%;height:auto}
.tagline{margin:14px 0 0;color:var(--muted);font-size:20px;line-height:1.4;font-weight:300}
.facts{margin:10px 0 0;font-size:16px;font-weight:500;line-height:1.4;color:var(--ink)}
.offer{margin:4px 0 0;font-size:16px;line-height:1.4;color:var(--ink)}
.offer a{color:var(--orange-text);font-weight:500;text-decoration:none;border-bottom:2px solid transparent;white-space:nowrap}
.offer a:hover{color:var(--ink);border-bottom-color:var(--orange)}
.hint{color:var(--muted);font-size:14px;margin-left:6px}
.nav{display:flex;align-items:center;margin-top:14px}
.nav a{text-decoration:none;color:var(--orange-text);font-size:15px;font-weight:500;letter-spacing:.05em;margin:0 24px 0 0;padding:3px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav a:hover{color:var(--ink);border-bottom-color:var(--orange)}
.nav a[aria-current="page"]{border-bottom-color:var(--orange)}
.main{background:var(--bg)}
.copy a{text-decoration:none}
.copy a:hover{color:var(--orange-text)}

/* gallery */
.gallery{list-style:none;margin:0;padding:8px;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:8px;gap:8px}
.gallery li{margin:0;background:var(--soft);overflow:hidden}
.tile{display:block;position:relative;cursor:-webkit-zoom-in;cursor:zoom-in;line-height:0}
.tile img{width:100%;transition:transform .5s ease}
.tile:hover img{-webkit-transform:scale(1.05);transform:scale(1.05)}
.tile:after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--orange);-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left;transition:transform .3s}
.tile:hover:after,.tile:focus-visible:after{-webkit-transform:scaleX(1);transform:scaleX(1)}

/* about */
.about{padding:88px 56px 96px;border-top:1px solid var(--line);margin-top:8px}
.about-grid{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:170px minmax(0,1fr);grid-gap:48px;gap:48px;align-items:start}
.about img{width:100%;max-width:170px}
h1,h2{font-weight:300;line-height:1.15;margin:0 0 22px;font-size:clamp(30px,3.6vw,44px)}
.about p{margin:0 0 18px;max-width:34em}
.label{font-size:14px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;margin:30px 0 12px;display:flex;align-items:center}
.label:before{content:"";width:9px;height:9px;background:var(--orange);-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-right:14px;flex:none}
.services{list-style:none;margin:0;padding:0;columns:2;-webkit-columns:2;column-gap:36px}
.services li{break-inside:avoid;-webkit-column-break-inside:avoid;padding:5px 0 5px 22px;position:relative;font-size:17px;line-height:1.4}
.services li:before{content:"";position:absolute;left:2px;top:.85em;width:7px;height:7px;background:var(--orange);-webkit-transform:rotate(45deg);transform:rotate(45deg)}

/* contact page */
.page{padding:72px 56px 96px;max-width:1040px}
.contact-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-gap:56px;gap:56px}
.offer-note a{color:var(--orange-text);font-weight:500;text-decoration:none;white-space:nowrap}
.offer-note a:hover{text-decoration:underline}
.fp{max-width:1200px;margin:28px 0 0}
.fp iframe{display:block;width:100%;height:72vh;min-height:480px;border:1px solid var(--line);background:var(--soft)}
.fp-links{margin-top:14px;font-size:16px}
.fp-links a{color:var(--orange-text);font-weight:500;text-decoration:none;margin-right:22px}
.fp-links a:hover{text-decoration:underline}
.details{list-style:none;padding:0;margin:26px 0 0;font-size:24px}
.details li{margin-bottom:8px}
.details a{text-decoration:none;color:var(--orange-dark);font-weight:500}
.details a:hover{text-decoration:underline}
form label{display:block;font-size:14px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px}
form .row{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}
form .field{margin-bottom:18px}
input,textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);background:#fff;border:1px solid #b9b9b9;border-radius:0;padding:13px 14px;-webkit-appearance:none;appearance:none}
textarea{min-height:150px;resize:vertical}
input:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(253,115,6,.25)}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-weight:500;font-size:16px;letter-spacing:.1em;text-transform:uppercase;padding:15px 38px;border:2px solid var(--ink);border-radius:0;cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;transition:background .2s,border-color .2s,color .2s}
.btn:hover{background:var(--orange);border-color:var(--orange);color:#111}
.note{margin:14px 0 0;font-size:16px;min-height:1.6em}
.note.ok{color:#1a7a3a}.note.err{color:#b3261e}
.copy{padding:26px 28px;border-top:1px solid var(--line);font-size:15px;color:var(--muted);display:flex;flex-wrap:wrap;justify-content:space-between}

/* lightbox */
.lb{position:fixed;left:0;top:0;right:0;bottom:0;z-index:1000;background:rgba(10,10,10,.985);display:none;-webkit-user-select:none;user-select:none;touch-action:pan-y}
.lb.open{display:block}
.lb-stage{position:absolute;left:0;right:0;top:0;bottom:56px;display:flex;align-items:center;justify-content:center;padding:56px 72px 8px}
.lb-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity .25s;box-shadow:0 10px 60px rgba(0,0,0,.5)}
.lb-img.on{opacity:1}
.lb-bar{position:absolute;left:0;right:0;bottom:0;height:56px;display:flex;align-items:center;justify-content:center;color:#d9d9d9;font-size:15px;letter-spacing:.08em}
.lb-bar .dot{display:inline-block;width:7px;height:7px;background:var(--orange);-webkit-transform:rotate(45deg);transform:rotate(45deg);margin:0 12px}
.lb button{position:absolute;background:transparent;border:0;color:#fff;cursor:pointer;width:56px;height:56px;font-size:0;padding:0;-webkit-tap-highlight-color:transparent}
.lb button:hover{color:var(--orange)}
.lb button svg{width:30px;height:30px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:square}
.lb-close{right:6px;top:6px}
.lb-prev{left:6px;top:50%;margin-top:-28px}
.lb-next{right:6px;top:50%;margin-top:-28px}
.lb-spin{position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border:3px solid #444;border-top-color:var(--orange);border-radius:50%;-webkit-animation:sp .8s linear infinite;animation:sp .8s linear infinite;display:none}
.lb.loading .lb-spin{display:block}
@-webkit-keyframes sp{to{-webkit-transform:rotate(360deg)}}
@keyframes sp{to{transform:rotate(360deg)}}
body.lb-lock{overflow:hidden}

/* tablet and phone: sidebar becomes a top bar */
@media (max-width:900px){
  .top-in{flex-direction:column;align-items:center;padding:20px 16px 14px}
  .brand{width:340px;margin:0 auto}
  .tagline{text-align:center;font-size:17px;margin-top:10px}
  .offer,.facts{text-align:center}
  .nav{margin-top:12px;justify-content:center}
  .nav a{margin:0 12px;font-size:14px}
  .gallery{padding:6px;grid-gap:6px;gap:6px}
  .about{padding:56px 24px 64px}
  .contact-grid{grid-template-columns:1fr;grid-gap:32px;gap:32px}
  .about-grid{grid-template-columns:1fr}.about img{max-width:150px}
  .page{padding:48px 24px 64px}
  .copy{padding:22px 16px}
}
@media (max-width:600px){
  body{font-size:17px}
  .brand{width:270px}
  .tagline{font-size:14px}
  .offer{font-size:14px}
  .facts{font-size:15px}
  .gallery{grid-gap:4px;gap:4px;padding:4px}
  .services{columns:1;-webkit-columns:1}
  form .row{grid-template-columns:1fr;grid-gap:0;gap:0}
  .details{font-size:22px}
  .lb-stage{padding:52px 8px 4px}
  .lb-prev,.lb-next{top:auto;bottom:0;margin:0}
  .lb-prev{left:6px}.lb-next{right:6px}
}
/* column counts that divide evenly into 80 so the last row is always full */
@media (min-width:600px){.gallery{grid-template-columns:repeat(4,1fr)}}
@media (min-width:1200px){.gallery{grid-template-columns:repeat(5,1fr)}}
@media (min-width:1900px){.gallery{grid-template-columns:repeat(8,1fr)}}
@media (hover:none){.tile:hover img{-webkit-transform:none;transform:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;-webkit-animation:none!important;animation:none!important;scroll-behavior:auto!important}}
