*{box-sizing:border-box}
:root{--ink:#20201c;--paper:#e9e2d3;--mud:#5b5548;--line:#aaa391;--accent:#d7c7a5}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}
a{color:inherit}
.skip{position:absolute;left:-9999px;top:auto}
.skip:focus{left:16px;top:16px;z-index:50;background:#fff;padding:10px 14px;border:2px solid #111}
.top{border-bottom:1px solid var(--line);background:var(--paper)}
.top-inner{width:min(1180px,calc(100% - 44px));margin:auto;min-height:88px;display:flex;align-items:center;justify-content:space-between}
.name{text-decoration:none;display:flex;align-items:baseline;gap:13px;font-weight:900;letter-spacing:-.04em}
.name span{font-size:27px}
.name small{font-size:9px;letter-spacing:.18em}
.top-right{display:flex;align-items:center;gap:30px}
.location{font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.phone{font-size:14px;font-weight:900;text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:4px}
.opening{min-height:700px;display:grid;grid-template-columns:43% 57%;position:relative}
.opening-image{background:#34352f;position:relative;overflow:hidden;min-height:500px}
.opening-image:before{content:"";position:absolute;width:470px;height:470px;border:1px solid #8e8e82;border-radius:50%;left:-180px;bottom:-220px}
.opening-image:after{content:"";position:absolute;width:690px;height:690px;border:1px solid #66685f;border-radius:50%;left:-260px;bottom:-320px}
.waterline{position:absolute;left:0;right:0;bottom:145px;height:1px;background:#77796f}
.waterline:after{content:"";position:absolute;width:150px;height:7px;border-top:1px solid #8c8d83;border-bottom:1px solid #8c8d83;right:16%;top:-13px}
.marker{position:absolute;left:52px;top:50%;transform:translateY(-50%);font-size:10px;line-height:1.5;letter-spacing:.22em;color:#ddd8ca;border-left:3px solid #ddd8ca;padding-left:14px;font-weight:900}
.opening-copy{padding:95px clamp(40px,8vw,120px) 90px 70px;display:flex;justify-content:center;flex-direction:column}
.eyebrow{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.18em;margin:0 0 24px}
.opening h1{font-size:clamp(64px,8vw,112px);line-height:.82;letter-spacing:-.08em;margin:0 0 36px;font-weight:900}
.opening h1 i{font-family:Georgia,serif;font-weight:400;letter-spacing:-.06em}
.lead{max-width:560px;font-size:18px;margin:0 0 32px}
.opening-links{display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.primary{background:var(--ink);color:var(--paper);text-decoration:none;font-weight:900;padding:15px 19px}
.map-link{font-weight:900;text-decoration:underline;text-underline-offset:5px}
.strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.strip div{min-height:72px;padding:20px 28px;display:flex;align-items:center;gap:22px;border-right:1px solid var(--ink)}
.strip div:last-child{border-right:0}
.strip b{font-size:10px}
.strip span{font-size:10px;font-weight:900;letter-spacing:.13em}
.approach{width:min(100% - 44px,980px);margin:130px auto 145px;display:grid;grid-template-columns:40% 60%;min-height:400px}
.approach-left{background:#34352f;color:#e9e2d3;padding:50px;position:relative;overflow:hidden}
.giant{font-size:clamp(100px,15vw,190px);font-weight:900;letter-spacing:-.11em;line-height:.75;position:absolute;left:35px;top:65px}
.approach-left p{position:absolute;bottom:42px;left:50px;font-size:10px;letter-spacing:.18em;font-weight:900;line-height:1.7}
.approach-right{padding:55px 65px;background:#ddd4c1;display:flex;justify-content:center;flex-direction:column}
.approach-right h2{font-size:clamp(45px,5vw,72px);line-height:.9;letter-spacing:-.065em;margin:0 0 25px}
.approach-right>p:not(.eyebrow){max-width:510px;font-size:17px}
.arrow-link{font-weight:900;text-decoration:none;margin-top:20px;display:flex;justify-content:space-between;max-width:410px;border-bottom:1px solid var(--ink);padding-bottom:12px}
.arrow-link strong{font-size:20px}
.service-band{background:#34352f;color:#e9e2d3;padding:110px max(22px,calc((100% - 1180px)/2)) 120px;display:grid;grid-template-columns:42% 58%;gap:60px}
.service-title h2{font-size:clamp(55px,7vw,100px);line-height:.78;letter-spacing:-.08em;margin:0}
.service-detail{padding:35px 50px 0 0}
.large{font:400 clamp(24px,3vw,40px)/1.15 Georgia,serif;max-width:700px;margin:0 0 60px}
.service-note{border-top:1px solid #77786f;padding-top:20px;display:flex;justify-content:space-between;gap:20px;max-width:650px}
.service-note span{font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.service-note a{font-weight:900}
.reviews{width:min(1180px,calc(100% - 44px));margin:auto;padding:120px 0 145px;display:grid;grid-template-columns:1.15fr .95fr .95fr;grid-template-rows:auto auto;gap:70px 45px}
.reviews-heading{grid-column:1/-1;display:flex;align-items:end;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line);padding-bottom:38px}
.reviews-heading h2{font-size:clamp(40px,5vw,70px);line-height:.9;letter-spacing:-.065em;max-width:650px;margin:0}
.dark-link{font-size:12px}
.review-card{position:relative;padding:10px 30px 0 0}
.review-card.first{grid-column:1}
.review-card.second{grid-column:2;margin-top:55px}
.review-card.third{grid-column:3}
.quote-mark{font:700 55px/1 Georgia,serif;display:block;height:38px}
.review-card blockquote{font:400 20px/1.4 Georgia,serif;margin:0 0 22px}
.review-card p{font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin:0}
.contact{background:var(--accent);padding:100px max(22px,calc((100% - 1180px)/2)) 90px}
.contact-top{border-bottom:2px solid var(--ink);padding-bottom:55px}
.contact h2{font-size:clamp(60px,10vw,140px);line-height:.78;letter-spacing:-.09em;margin:0}
.contact-bottom{padding-top:40px;display:flex;justify-content:space-between;align-items:end;gap:30px}
.huge-phone{font-size:clamp(32px,5vw,65px);font-weight:900;letter-spacing:-.055em;text-decoration:none}
.outline{padding:14px 18px;border:1px solid var(--ink);font-weight:900;text-decoration:none}
footer{background:var(--ink);color:var(--paper)}
.footer-inner{width:min(1180px,calc(100% - 44px));margin:auto;min-height:110px;display:grid;grid-template-columns:1.5fr 1fr 1fr;align-items:center;gap:30px;font-size:11px}
.footer-inner a{font-size:14px;font-weight:900}
.footer-inner span{text-align:right}
@media(max-width:820px){
 .top-inner{min-height:72px;width:min(100% - 28px,1180px)}
 .name{flex-direction:column;gap:0}
 .name span{font-size:22px}.name small{font-size:7px}
 .location{display:none}
 .opening{grid-template-columns:1fr;min-height:auto}
 .opening-image{height:280px;min-height:280px}
 .opening-copy{padding:65px 28px 80px}
 .opening h1{font-size:clamp(58px,17vw,88px)}
 .strip{grid-template-columns:1fr}
 .strip div{border-right:0;border-bottom:1px solid var(--ink);min-height:58px;padding:16px 20px}
 .strip div:last-child{border-bottom:0}
 .approach{width:calc(100% - 28px);grid-template-columns:1fr;margin:80px auto 90px}
 .approach-left{height:280px}
 .approach-right{padding:45px 28px 55px}
 .service-band{grid-template-columns:1fr;padding:75px 28px 80px;gap:45px}
 .service-detail{padding:0}
 .reviews{width:calc(100% - 28px);grid-template-columns:1fr;padding:80px 0 90px;gap:50px}
 .reviews-heading{display:block}
 .reviews-heading .map-link{display:inline-block;margin-top:28px}
 .review-card.first,.review-card.second,.review-card.third{grid-column:auto;margin-top:0}
 .contact{padding:75px 28px 65px}
 .contact-bottom{display:block}
 .huge-phone{display:block;margin-bottom:30px}
 .footer-inner{width:calc(100% - 28px);grid-template-columns:1fr;gap:13px;padding:25px 0}
 .footer-inner span{text-align:left}
}
@media(max-width:480px){
 .top-right .phone{font-size:11px}
 .opening h1{font-size:56px}
 .lead{font-size:17px}
 .opening-image{height:230px;min-height:230px}
 .marker{left:28px}
 .approach-left{height:230px}
 .giant{left:25px;top:55px;font-size:110px}
 .approach-left p{left:28px;bottom:25px}
 .service-note{display:block}
 .service-note a{display:block;margin-top:10px}
 .contact h2{font-size:64px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
