:root{--ink:#111;--paper:#fff;--muted:#626262;--line:#dedede}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Raleway,Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}button{font:inherit}img{display:block;max-width:100%}.header{height:102px;padding:12px 5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand img{width:72px;height:73px;object-fit:contain}.header nav{display:flex;align-items:center;gap:34px}.header nav>a:not(.button){text-decoration:none;font-weight:600;font-size:15px}.header nav>a:not(.button):hover{text-decoration:underline;text-underline-offset:6px}.button{display:inline-flex;align-items:center;justify-content:center;padding:17px 28px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;font-size:14px;font-weight:700;letter-spacing:.02em;line-height:1.4;transition:background .2s,color .2s}.button:hover{background:#fff;color:#111}.button.small{padding:13px 24px}.button.light{background:#fff;color:#111;border-color:#fff}.button.light:hover{background:#111;color:#fff}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:44% 56%;min-height:650px}.hero-copy{padding:70px 11% 28px;display:flex;align-items:flex-start;flex-direction:column}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.17em;margin:0 0 28px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(42px,4.7vw,76px);line-height:1.09;letter-spacing:-.055em;font-weight:800;margin:0 0 28px}h2{font-size:clamp(34px,3.5vw,54px);line-height:1.15;letter-spacing:-.045em;font-weight:700;margin-bottom:30px}h3{font-size:22px;line-height:1.4;letter-spacing:-.02em}.hero-description{font-size:18px;color:var(--muted);max-width:330px;margin-bottom:32px}.hero-bottom{width:100%;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:auto;padding-top:26px;font-size:12px;font-weight:600}.hero-image{position:relative;overflow:hidden;min-height:650px;background:#222}.hero-image>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:57% center}.photo-label{position:absolute;bottom:25px;left:24px;background:rgba(0,0,0,.78);color:#fff;padding:9px 14px;font-size:10px;font-weight:600;letter-spacing:.11em}.section{max-width:1320px;margin:auto;padding:90px 5%}.intro{display:grid;grid-template-columns:1fr 1.2fr;gap:12%}.intro-copy{max-width:640px}.intro-copy p{color:var(--muted);margin-bottom:20px}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding-top:0;padding-bottom:70px}.services>div{border-top:1px solid var(--ink);padding-top:20px;display:flex;gap:26px;align-items:center}.services span{font-size:12px;color:var(--muted)}.services h3{font-size:20px;margin:0}.shop{padding-top:65px;border-top:1px solid var(--line)}.gallery-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:35px}.gallery-heading h2{margin-bottom:0}.gallery-heading>p{color:var(--muted);max-width:280px;margin-bottom:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.gallery-item{position:relative;border:0;padding:0;background:#eee;cursor:pointer;overflow:hidden;aspect-ratio:4/5}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.gallery-item:hover img{transform:scale(1.035)}.gallery-item span{position:absolute;bottom:12px;right:12px;padding:6px 10px;background:#fff;font-size:12px;opacity:0;transition:opacity .2s}.gallery-item:hover span,.gallery-item:focus-visible span{opacity:1}.booking-banner{background:#111;color:#fff;text-align:center;padding:76px 24px 80px}.booking-banner .eyebrow{color:#bbb;margin-bottom:16px}.booking-banner h2{font-size:clamp(38px,4vw,64px);margin-bottom:26px}.contact{display:grid;grid-template-columns:1fr 1fr;gap:15%}.contact h2{margin-bottom:26px}address{font-style:normal;font-size:18px;line-height:1.9}.social-links{display:flex;gap:24px;margin-top:28px;font-size:14px;font-weight:600;text-underline-offset:5px}.hours{padding-top:40px}.hours h3{margin-bottom:26px}.hours dl{margin:0}.hours dl>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);gap:25px}.hours dd{margin:0;font-variant-numeric:lining-nums;white-space:nowrap}.map{height:390px;background:#eee}.map iframe{width:100%;height:100%;border:0}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:30px 5%;font-size:12px}footer p{margin:0;color:var(--muted)}footer>a:last-child{font-weight:600}dialog{border:0;padding:0;background:#111;max-width:90vw;max-height:94vh;overflow:visible}dialog::backdrop{background:rgba(0,0,0,.88)}dialog img{max-height:85vh;max-width:85vw;object-fit:contain}.close-photo{position:absolute;right:0;top:-35px;background:none;color:#fff;border:0;cursor:pointer;padding:3px 0;font-size:14px}:focus-visible{outline:3px solid #737373;outline-offset:5px}@media(min-width:1600px){.hero-copy{padding-top:100px}.hero{min-height:740px}.hero-image{min-height:740px}}@media(max-width:1000px){.hero-copy{padding:55px 8% 28px}.hero,.hero-image{min-height:590px}.hero-bottom{flex-direction:column;gap:8px}.intro{gap:8%}.section{padding-top:70px;padding-bottom:70px}.services{padding-top:0}.gallery{gap:15px}.contact{gap:8%}.photo-label{font-size:9px}}@media(max-width:700px){html{scroll-padding-top:86px}.header{height:84px;padding:9px 6%}.brand img{width:60px;height:61px}.menu-toggle{display:flex;flex-direction:column;gap:6px;justify-content:center;width:44px;height:44px;background:none;border:1px solid #111;padding:10px;cursor:pointer}.menu-toggle span{height:1px;width:100%;background:#111}.header nav{display:none;position:absolute;top:84px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:14px 6% 24px;background:#fff;border-bottom:1px solid #ccc}.header nav.open{display:flex}.header nav>a:not(.button){padding:12px 0}.header nav .button{margin-top:12px}.hero{grid-template-columns:1fr;min-height:0}.hero-copy{padding:46px 6% 30px}.eyebrow{font-size:11px;margin-bottom:22px}h1{font-size:52px;max-width:440px;margin-bottom:22px}.hero-description{max-width:360px;margin-bottom:24px;font-size:17px}.hero-bottom{flex-direction:row;font-size:11px;margin-top:34px;padding-top:20px;gap:12px}.hero-image{min-height:0;height:340px}.hero-image img{object-position:center}.photo-label{left:18px;bottom:18px}.section{padding:58px 6%}.intro{grid-template-columns:1fr;gap:8px}.intro h2{font-size:40px;margin-bottom:24px}.intro-copy h3{font-size:21px}.services{padding-top:0;grid-template-columns:1fr;gap:20px}.services>div{padding-top:16px}.gallery-heading{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:24px}.gallery-heading>p{font-size:15px}.gallery{grid-template-columns:repeat(2,1fr);gap:12px}.gallery-item span{display:none}.booking-banner{padding:60px 6%}.contact{grid-template-columns:1fr;gap:30px}.hours{padding-top:0}.hours dl>div{font-size:15px}.map{height:330px}footer{flex-wrap:wrap;padding:25px 6%;gap:20px}footer p{flex:1;max-width:220px;font-size:11px}footer>a:last-child{display:none}dialog img{max-width:90vw}.button{min-height:50px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media(max-width:360px){h1{font-size:45px}.hero-bottom{flex-direction:column}.hero-image{height:290px}}

/* Larger navigation, hero details and footer text. */
.header nav{gap:30px}.header nav>a:not(.button){font-size:18px}.header .button.small{font-size:17px}.hero-copy>.eyebrow{font-size:17px;letter-spacing:.1em}.hero-bottom{font-size:16px;line-height:1.5}.photo-label{font-size:14px;letter-spacing:.05em}.social-links{gap:14px}.social-links a{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #111;text-decoration:none;transition:background .2s,color .2s}.social-links svg{width:24px;height:24px}.social-links a:hover{background:#111;color:#fff}footer,footer p{font-size:15px}@media(max-width:1000px){.header nav{gap:22px}.hero-bottom{font-size:16px}.photo-label{font-size:14px}}@media(max-width:700px){.header nav{gap:0}.header nav>a:not(.button){font-size:18px}.hero-copy>.eyebrow{font-size:15px}.hero-bottom{font-size:15px;flex-wrap:wrap}.photo-label{font-size:13px;left:16px;right:16px;width:fit-content}footer p{font-size:14px;max-width:250px}footer{font-size:14px}}
/* Slightly larger brand marks. */
.brand img{width:82px;height:83px}footer>a:first-child img{width:76px;height:auto}@media(max-width:700px){.brand img{width:68px;height:69px}footer>a:first-child img{width:72px}}
/* Keep the right side of the homepage photograph visible on mobile. */
@media(max-width:700px){.hero-image img{object-position:right center}}
