/* ===== Contact — information-dense, map, hours table ===== */

body{background:var(--sand)}

.contact__grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);margin-top:clamp(2rem,4vw,3.5rem)}
.contact__cell{background:var(--paper);padding:clamp(1.8rem,3vw,2.6rem)}
.contact__cell h3{font-size:1.4rem;margin-bottom:.9rem}
.contact__cell p{margin:0 0 .6rem;color:var(--ink-soft);font-size:.95rem}
.contact__cell a{border-bottom:1px solid var(--line);transition:.3s}
.contact__cell a:hover{color:var(--clay);border-color:var(--clay)}
.contact__cell .tiny{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin-bottom:1rem}

/* hours */
.hours{background:var(--ink);color:var(--sand)}
.hours__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.hours h2{color:var(--paper)}
.hours .eyebrow{color:var(--gold)}
.hours__table{width:100%;border-collapse:collapse;margin-top:1rem}
.hours__table th,.hours__table td{
  text-align:left;padding:1.05rem 0;border-bottom:1px solid var(--line-dark);font-weight:400
}
.hours__table th{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(246,240,231,.55)}
.hours__table td{font-family:var(--display);font-size:1.35rem;color:var(--paper)}
.hours__table td.closed{color:rgba(246,240,231,.35);font-style:italic}
.hours__table tr.today td,.hours__table tr.today th{color:var(--gold)}
.hours__note{font-size:.85rem;color:rgba(246,240,231,.55);margin-top:1.6rem}

/* map */
.map{position:relative;height:clamp(340px,52vh,560px);background:#dcd2c2;overflow:hidden}
.map iframe{width:100%;height:100%;border:0;filter:grayscale(.35) sepia(.15)}
.map__card{
  position:absolute;left:clamp(1rem,4vw,3.5rem);top:50%;transform:translateY(-50%);
  background:var(--paper);padding:2.2rem;max-width:340px;box-shadow:var(--shadow);z-index:2
}
.map__card h3{font-size:1.6rem;margin-bottom:.6rem}
.map__card p{font-size:.93rem;color:var(--ink-soft)}
.map__fallback{
  position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:.5rem;
  background:repeating-linear-gradient(45deg,#e4dacb,#e4dacb 14px,#dcd2c2 14px,#dcd2c2 28px);
  color:var(--ink-soft);font-size:.8rem;letter-spacing:.2em;text-transform:uppercase
}

/* directions */
.dir__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:3rem}
.dir h3{font-size:1.25rem;margin-bottom:.6rem}
.dir p{color:var(--ink-soft);font-size:.94rem;margin:0}
.dir b{display:block;font-family:var(--display);font-size:2.2rem;color:var(--clay);line-height:1;margin-bottom:.8rem}

/* message form */
.msg{background:var(--sand-deep)}
.msg__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.msg__form{background:var(--paper);border:1px solid var(--line);padding:clamp(1.8rem,3.5vw,3rem)}
.msg__form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.msg__form .field{margin-bottom:1.5rem}
.msg__social{display:flex;gap:.6rem;margin-top:2rem}
.msg__social a{border:1px solid var(--line);border-radius:999px;padding:.55rem 1.2rem;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;transition:.3s var(--ease)}
.msg__social a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

@media (max-width:980px){
  .contact__grid,.hours__grid,.dir__grid,.msg__grid{grid-template-columns:1fr}
  .map__card{position:static;transform:none;max-width:none;margin:0}
  .map{height:auto}
  .map iframe,.map__fallback{height:300px;position:relative}
}
@media (max-width:620px){ .msg__form .row{grid-template-columns:1fr} }
