/** The homepage entrance: the map, and the three doors. */

.ecza-portal { position: relative; overflow: hidden; }
.ecza-portal__inner { display: grid; gap: clamp(2rem, 5vw, 4rem); }
.ecza-portal.has-map .ecza-portal__inner { grid-template-columns: 0.85fr 1.15fr; align-items: center; }

.ecza-portal__network { display: grid; gap: 1.5rem; }
.ecza-portal__title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(2rem, 1.3rem + 3vw, 3.25rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.ecza-portal__subtitle {
  margin: 0.5rem 0 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.05rem, 0.85rem + 0.9vw, 1.4rem);
  color: var(--champagne-text);
}

.ecza-portal__doors { display: grid; gap: 1rem; }

.ecza-door {
  display: flex; flex-direction: column; gap: 0.6rem;
  padding: 1.75rem;
  background: #fff;
  border: 1px solid var(--border-hairline);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  color: inherit;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
a.ecza-door:hover { transform: translateY(-2px); box-shadow: var(--shadow-luxury); border-color: var(--champagne-text); }

.ecza-door__top { display: flex; align-items: center; justify-content: space-between; }
.ecza-door__number { font-family: var(--font-display); font-size: 0.8125rem; letter-spacing: 0.14em; color: var(--ink-muted); }
.ecza-door__icon { color: var(--champagne-text); }

.ecza-door__title { margin: 0; font-family: var(--font-display); font-weight: 500; font-size: 1.25rem; line-height: 1.2; }
.ecza-door__body { margin: 0; color: var(--ink-soft); font-size: 0.9375rem; }

.ecza-door__enter { margin-top: auto; padding-top: 0.5rem; display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; font-size: 0.9375rem; }
.ecza-door__arrow { transition: transform 0.2s ease; }
a.ecza-door:hover .ecza-door__arrow { transform: translateX(3px); }

.is-dark .ecza-door { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.12); box-shadow: none; color: var(--cream-100); }
.is-dark .ecza-door__body { color: rgba(248,245,239,0.75); }

@media (max-width: 860px) {
  .ecza-portal.has-map .ecza-portal__inner { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .ecza-door, .ecza-door__arrow { transition: none; }
  a.ecza-door:hover { transform: none; }
}
