.contact-page{background:#fffdfa}
.contact-page .header nav .active:after{right:0}
.contact-kicker{margin:0;color:#9d805b;font:600 11px/1.35 var(--heading);letter-spacing:.15em;text-transform:uppercase}

.contact-form-section{padding:116px 0 125px;background:#f4ede4}
.contact-form-inner{display:grid;grid-template-columns:.9fr 1.1fr;align-items:start;gap:92px}
.contact-form-story{padding-top:14px}
.contact-form-story h2,.visit-heading h2,.contact-route-card h2{margin:13px 0 24px;color:#312925;font:400 57px/1 var(--display)}
.contact-form-story h2 em,.visit-heading h2 em,.contact-route-card h2 em{color:var(--brand);font-style:italic}
.contact-form-story>p:not(.contact-kicker){max-width:555px;margin:0;color:#5b514b;font:400 16px/1.78 var(--body)}
.contact-drawing{height:485px;margin:47px 0 0;position:relative;overflow:hidden;background:#fffdfa}
.contact-drawing img{height:100%;padding:25px 10px 0;object-fit:contain;object-position:center bottom}
.contact-drawing figcaption{position:absolute;left:0;bottom:0;padding:14px 18px;background:var(--brand);color:#fffaf5;font:600 9px var(--heading);letter-spacing:.09em;text-transform:uppercase}

.contact-form{padding:46px 46px 50px;background:#fffdfa}
.form-heading{padding-bottom:27px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d9cec2}
.form-heading span{color:#312925;font:400 29px var(--display)}
.form-heading b{color:#8f8177;font:600 8px var(--heading);letter-spacing:.08em;text-transform:uppercase}
.form-grid{margin-top:31px;display:grid;grid-template-columns:1fr 1fr;gap:26px 22px}
.contact-form label>span{display:block;margin-bottom:9px;color:#544944;font:600 9px var(--heading);letter-spacing:.09em;text-transform:uppercase}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea{width:100%;border:1px solid #ded3c8;border-radius:0;outline:0;background:#f7f2eb;color:#312925;font:400 15px var(--body);transition:border-color .2s,background .2s}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"]{height:52px;padding:0 15px}
.contact-form textarea{min-height:218px;padding:14px;resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{border-color:#a58e60;background:#fffdfa}
.message-field{grid-column:1/-1}
.privacy-check{margin-top:23px;display:flex;align-items:flex-start;gap:10px}
.privacy-check input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--brand)}
.privacy-check span{margin:0!important;color:#6a5f58!important;font:500 9px/1.55 var(--heading)!important;letter-spacing:.06em!important}
.privacy-check a{text-decoration:underline}
.contact-form button{width:210px;height:50px;margin-top:25px;padding:0 21px;display:flex;align-items:center;justify-content:space-between;border:0;background:var(--brand);color:#fffaf5;font:600 10px var(--heading);letter-spacing:.08em;text-transform:uppercase}
.contact-form button span{font-size:15px}

.visit-section{padding:115px 0 108px;background:#fffdfa}
.visit-heading{display:grid;grid-template-columns:1.1fr .9fr;align-items:end;gap:95px;margin-bottom:59px}
.visit-heading h2{margin-bottom:0;font-size:59px}
.visit-heading>p{margin:0 0 5px;color:#5b514b;font:400 16px/1.76 var(--body)}
.visit-card-contact{min-height:610px;display:grid;grid-template-columns:1.18fr .82fr;background:var(--brand);color:#fff}
.visit-card-contact figure{height:560px;margin:25px 0 25px 25px;position:relative;overflow:hidden;background:#4a292d}
.visit-card-contact figure>img{height:100%;object-fit:cover}
.visit-card-contact figcaption{position:absolute;right:0;bottom:0;min-width:220px;padding:18px 22px;display:flex;align-items:center;gap:14px;background:#a18b5e;color:#fff}
.visit-card-contact figcaption b{font:400 28px var(--display)}
.visit-card-contact figcaption span{padding-left:14px;border-left:1px solid #ffffff55;font:600 8px/1.45 var(--heading);letter-spacing:.09em;text-transform:uppercase}
.visit-hours{padding:58px 50px;display:flex;flex-direction:column;justify-content:center}
.visit-hours .contact-kicker{color:#d7be87}
.visit-hours h3{margin:12px 0 27px;color:#fffaf5;font:400 39px var(--display)}
.visit-hours dl{margin:0;border-top:1px solid #ffffff2b}
.visit-hours dl>div{padding:10px 0;display:grid;grid-template-columns:115px 1fr;border-bottom:1px solid #ffffff2b}
.visit-hours dt{color:#fff9ef;font:600 11px var(--heading)}
.visit-hours dd{margin:0;color:#f0e3d6d9;font:400 12px/1.5 var(--body)}
.visit-hours .closed dd{color:#d7be87;font-style:italic}

.contact-details{min-height:128px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #d9cec2}
.contact-details>a{padding:28px 26px;display:flex;align-items:center;gap:18px;border-left:1px solid #d9cec2;color:#5a4f49;font:400 13px/1.55 var(--body)}
.contact-details>a:first-child{border-left:0}
.contact-details b{display:block;margin-bottom:3px;color:#312925;font:600 10px var(--heading);letter-spacing:.08em;text-transform:uppercase}
.detail-icon{width:42px;height:42px;display:grid;flex:0 0 42px;place-items:center;border-radius:50%;background:#f4ede4;color:var(--brand);font:600 18px var(--heading)}

.route-section{height:625px;position:relative;overflow:hidden;background:#e9e5df}
.route-section iframe{width:100%;height:100%;border:0;filter:saturate(.45) sepia(.08) contrast(.92)}
.contact-route-card{width:440px;min-height:330px;padding:45px 48px;position:absolute;left:max(40px,calc((100% - 1320px)/2));top:50%;transform:translateY(-50%);background:#fffdfaf2;box-shadow:0 22px 65px #41272b1c}
.contact-route-card h2{font-size:48px}
.contact-route-card>p:not(.contact-kicker){margin:0 0 25px;color:#5b514b;font:400 14px/1.7 var(--body)}

@media(max-width:1100px){
  .contact-form-inner{gap:58px}
  .contact-form-story h2{font-size:50px}
  .contact-form{padding-inline:34px}
  .visit-heading{gap:58px}
  .visit-card-contact{grid-template-columns:1fr 1fr}
  .visit-hours{padding-inline:34px}
}

@media(max-width:900px){
  .contact-form-inner,.visit-heading{grid-template-columns:1fr;gap:46px}
  .contact-form-story{max-width:680px;padding:0}
  .contact-drawing{height:520px}
  .contact-form{max-width:760px}
  .visit-heading>p{max-width:680px}
  .visit-card-contact{grid-template-columns:1fr}
  .visit-card-contact figure{height:520px;margin:20px 20px 0}
  .visit-hours{padding:52px 45px 59px}
  .contact-details{grid-template-columns:1fr}
  .contact-details>a{border-left:0;border-top:1px solid #d9cec2}
  .contact-details>a:first-child{border-top:0}
}

@media(max-width:620px){
  .contact-kicker{font-size:9px}
  .contact-form-section{padding:76px 0 83px}
  .contact-form-inner{gap:40px}
  .contact-form-story h2,.visit-heading h2{font-size:42px}
  .contact-form-story>p:not(.contact-kicker),.visit-heading>p{font-size:15px;line-height:1.72}
  .contact-drawing{height:335px;margin-top:34px}
  .contact-drawing img{padding:15px 0 0}
  .contact-drawing figcaption{padding:11px 13px;font-size:7px}
  .contact-form{padding:34px 23px 39px}
  .form-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .form-heading span{font-size:27px}
  .form-grid{grid-template-columns:1fr;gap:22px}
  .message-field{grid-column:auto}
  .contact-form textarea{min-height:190px}
  .contact-form button{width:100%}
  .visit-section{padding:76px 0 78px}
  .visit-heading{gap:22px;margin-bottom:40px}
  .visit-card-contact figure{height:330px;margin:13px 13px 0}
  .visit-card-contact figcaption{min-width:190px;padding:14px 16px}
  .visit-card-contact figcaption b{font-size:24px}
  .visit-hours{padding:42px 24px 48px}
  .visit-hours h3{font-size:35px}
  .visit-hours dl>div{grid-template-columns:88px 1fr;gap:12px}
  .visit-hours dt,.visit-hours dd{font-size:10px}
  .contact-details>a{padding:23px 12px}
  .route-section{height:auto;min-height:0;padding:330px 0 28px;display:block;overflow:visible;background:#e9e5df}
  .route-section iframe{height:330px;position:absolute;z-index:0;left:0;top:0}
  .contact-route-card{width:calc(100% - 28px);min-height:0;margin:0 auto;padding:39px 27px 45px;position:relative;z-index:2;left:auto;top:auto;transform:none;box-shadow:none}
  .contact-route-card h2{font-size:41px}
}
