/* ===== Contact info cards ===== */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.contact-card{padding:26px;transition:transform .25s ease}
.contact-card:hover{transform:translateY(-6px)}
.contact-icon{width:44px;height:44px;border-radius:12px;background:var(--tint);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.contact-card .label{font-weight:600;font-size:15px;margin-bottom:6px}
.contact-card .value{font-size:14px;color:var(--muted);line-height:1.5}
.contact-card .value a{color:var(--muted);text-decoration:none}
.contact-card .value a:hover{color:var(--accent)}

/* ===== Form + map ===== */
.contact-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px;align-items:start}
.form-card{background:var(--card);border:1px solid var(--line);border-radius:26px;padding:40px}
.form-card h2{font-weight:600;font-size:26px;margin:0 0 24px}
form{display:flex;flex-direction:column;gap:18px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px;font-weight:600}
input,select,textarea{padding:13px 16px;border-radius:12px;border:1px solid var(--line);font-size:15px;background:var(--cream);font-family:inherit}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:2px}
.submit-btn{justify-self:start;background:var(--accent);color:var(--on-plum);border:none;padding:16px 32px;border-radius:100px;font-weight:600;font-size:16px;cursor:pointer;transition:transform .25s ease}
.submit-btn:hover{transform:translateY(-3px)}

.side-col{display:flex;flex-direction:column;gap:24px}
.map-card{border-radius:26px;overflow:hidden;border:1px solid var(--line);background:var(--card)}
.map-card iframe{width:100%;height:220px;border:0;display:block}
.map-card-inner{padding:20px}
.map-link{text-decoration:none;display:block;text-align:center;background:var(--plum);color:var(--on-plum);padding:12px;border-radius:100px;font-size:14.5px;font-weight:600;transition:transform .25s ease}
.map-link:hover{transform:translateY(-2px);color:var(--on-plum)}

.hours-panel{background:var(--plum-dark);border-radius:26px;padding:28px;position:relative;overflow:hidden}
.hours-panel h2{font-weight:600;font-size:20px;margin:0 0 18px;color:var(--on-plum);position:relative;z-index:1}
.hours-list{display:flex;flex-direction:column;gap:10px;font-size:14.5px;color:var(--on-plum-muted);position:relative;z-index:1}
.hours-list .row{display:flex;justify-content:space-between}
.hours-list .value{font-weight:600;color:var(--on-plum)}
.hours-list .value.closed{color:oklch(75% 0.03 300)}
.hours-note{font-size:13px;color:oklch(85% 0.02 300);margin:16px 0 0;line-height:1.5;position:relative;z-index:1}
