/* ===== 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:0.9375rem;margin-bottom:6px}
.contact-card .value{font-size:0.875rem;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:1.625rem;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:0.875rem;font-weight:600}
input,select,textarea{padding:13px 16px;border-radius:12px;border:1px solid var(--line);font-size:0.9375rem;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:1rem;cursor:pointer;transition:transform .25s ease}
.submit-btn:hover{transform:translateY(-3px)}
.submit-btn:disabled{opacity:.65;cursor:not-allowed;transform:none}
.form-status{font-size:0.875rem;min-height:1.2em;margin:0}
.form-status.success{color:oklch(50% 0.13 145)}
.form-status.error{color:oklch(55% 0.18 25)}

.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-frame{position:relative}
.map-consent-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:20px;background:oklch(97% 0.012 75 / 0.96);backdrop-filter:blur(2px)}
.map-consent-overlay p{font-size:0.8438rem;color:var(--muted);max-width:26ch}
.map-consent-btn{border:0;cursor:pointer;background:var(--plum);color:var(--on-plum);padding:10px 22px;border-radius:100px;font-size:0.875rem;font-weight:600;font-family:inherit;transition:transform .25s ease}
.map-consent-btn:hover{transform:translateY(-2px)}
.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:0.9063rem;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:1.25rem;margin:0 0 18px;color:var(--on-plum);position:relative;z-index:1}
.hours-list{display:flex;flex-direction:column;gap:10px;font-size:0.9063rem;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:0.8125rem;color:oklch(85% 0.02 300);margin:16px 0 0;line-height:1.5;position:relative;z-index:1}
.hours-exception{background:oklch(100% 0 0 / 0.08);border-radius:12px;padding:10px 12px;color:var(--on-plum)}
