/* Page-specific styles: kontakt.html */

.kontakt-hero { padding: 3rem 0 2.5rem; }
.kontakt-hero h1 { font-size: 2.3rem; margin-bottom: .8rem; }
.kontakt-hero p { max-width: 640px; }

.kontakt-grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .kontakt-grid { grid-template-columns: 1.2fr 1fr; align-items: start; } }

/* Form */
.kontakt-form { border: 3px solid var(--ink); border-radius: var(--rough-1); padding: 1.6rem 1.5rem; }
.kontakt-form .field { margin-bottom: 1.1rem; }
.kontakt-form label { display: block; font-weight: 600; margin-bottom: .35rem; font-size: .95rem; }
.kontakt-form input[type="text"],
.kontakt-form input[type="email"],
.kontakt-form select,
.kontakt-form textarea {
  width: 100%;
  font: inherit;
  padding: .65rem .8rem;
  border: 2px dashed var(--ink);
  border-radius: 10px 3px 12px 4px;
  background: #fff;
}
.kontakt-form input:focus, .kontakt-form select:focus, .kontakt-form textarea:focus {
  outline: 3px solid var(--accent);
  outline-offset: 1px;
}
.kontakt-form .consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .85rem; }
.kontakt-form .consent input { margin-top: .25rem; }

/* Info panel */
.info-panel { display: flex; flex-direction: column; gap: 1.4rem; }
.info-block { border: 4px dotted var(--ink); border-radius: var(--rough-2); padding: 1.3rem 1.4rem; }
.info-block h2 { font-size: 1.25rem; }
.info-block .icon-lg { color: var(--accent); }
.info-line { display: flex; gap: .6rem; align-items: flex-start; margin-bottom: .5rem; font-size: .95rem; }
.info-line .icon { margin-top: 3px; color: var(--accent); }

.hours-table { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 0; }
.hours-table td { padding: .35rem 0; border-bottom: 1px dotted var(--ink); }
.hours-table td:last-child { text-align: right; font-weight: 600; }

/* Departments */
.dept-grid { display: grid; gap: 1.2rem; margin-top: 1rem; }
@media (min-width: 768px) { .dept-grid { grid-template-columns: repeat(3, 1fr); } }
.dept-grid .card h3 { font-size: 1.05rem; font-family: 'Rubik', sans-serif; font-weight: 700; }
.dept-grid .card p { font-size: .9rem; margin-bottom: .4rem; }
.dept-grid .icon-lg { color: var(--accent); margin-bottom: .4rem; }

/* Map */
.map-wrap {
  border: 3px dashed var(--ink);
  border-radius: 20px 5px 24px 6px;
  overflow: hidden;
  margin-top: 2rem;
}
.map-wrap iframe { display: block; width: 100%; height: 360px; border: 0; }
