*{box-sizing:border-box}
:root{
  --ink:#10212b;
  --muted:#60727d;
  --line:#dce5e9;
  --paper:#ffffff;
  --soft:#f3f6f7;
  --sea:#103f50;
  --sea-dark:#092e3b;
  --sand:#ece7dc;
  --radius:20px;
  --shadow:0 22px 60px rgba(16,33,43,.09);
}
html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);scroll-behavior:smooth}
body{margin:0;min-height:100vh}
img{max-width:100%}
a{color:inherit}
.portal-shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}
.portal-header{height:82px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}
.portal-brand{display:grid;line-height:.9;text-decoration:none}
.portal-brand span{font-size:.85rem}
.portal-brand strong{font-size:1.4rem}
.portal-nav{display:flex;align-items:center;gap:28px}
.portal-nav a{text-decoration:none;font-weight:700;font-size:.93rem}
.portal-nav a:hover{color:var(--sea)}
.portal-menu-button{display:none;border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:9px 12px}
.portal-hero{background:linear-gradient(140deg,var(--soft),#fff 65%);border-bottom:1px solid var(--line)}
.portal-hero__inner{min-height:520px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-block:80px}
.portal-kicker{margin:0 0 12px;color:var(--sea);font-size:.74rem;font-weight:850;letter-spacing:.15em;text-transform:uppercase}
.portal-hero h1,.portal-page-head h1,.portal-detail h1{margin:0;max-width:900px;font-size:clamp(3rem,8vw,7.2rem);line-height:.92;letter-spacing:-.065em}
.portal-lead{max-width:720px;margin:24px 0 0;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.55;color:var(--muted)}
.portal-search{display:flex;width:min(720px,100%);margin-top:34px;padding:6px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:var(--shadow)}
.portal-search input{flex:1;min-width:0;border:0;padding:0 15px;font:inherit;font-size:1rem;outline:0}
.portal-search button,.portal-button{border:0;border-radius:11px;background:var(--sea);color:#fff;padding:14px 22px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center}
.portal-search button:hover,.portal-button:hover{background:var(--sea-dark)}
.portal-search--compact{margin-top:28px}
.portal-section{padding-block:80px}
.portal-section--soft{background:var(--soft);padding-block:80px}
.portal-section__header{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.portal-section__header h2{margin:0;font-size:clamp(2rem,4vw,3.4rem);letter-spacing:-.045em}
.portal-section__header>a{font-weight:800;text-decoration:none;color:var(--sea)}
.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.portal-card{display:block;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.portal-card:hover,.portal-event-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.portal-card__media{height:220px;background:var(--sand);display:grid;place-items:center;overflow:hidden;color:var(--sea);font-size:3rem;font-weight:850}
.portal-card__media img{width:100%;height:100%;object-fit:cover}
.portal-card__media--logo{background:#fff;padding:30px}
.portal-card__media--logo img{object-fit:contain}
.portal-card__body{padding:20px}
.portal-card__body h2,.portal-card__body h3{margin:7px 0;font-size:1.35rem}
.portal-card__body p:last-child{margin:0;color:var(--muted);line-height:1.55}
.portal-card-meta{margin:0;color:var(--sea);font-size:.72rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.portal-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.portal-event-card{display:block;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}
.portal-event-card img{width:100%;height:210px;object-fit:cover;display:block}
.portal-event-card>div{padding:20px}
.portal-event-card h3{margin:8px 0;font-size:1.35rem}
.portal-event-card p:last-child{margin:0;color:var(--muted)}
.portal-empty{padding:34px;border:1px dashed #b9c7cd;border-radius:var(--radius);color:var(--muted);background:var(--soft)}
.portal-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:80px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--line)}
.portal-numbers>div{background:#fff;padding:28px}
.portal-numbers strong{display:block;font-size:2.4rem}
.portal-numbers span{color:var(--muted)}
.portal-page-head{padding:76px 0 56px;background:var(--soft);border-bottom:1px solid var(--line)}
.portal-page-head p:not(.portal-kicker){font-size:1.15rem;color:var(--muted)}
.portal-page-head h1{font-size:clamp(3rem,7vw,6rem)}
.portal-event-list{display:grid;border-top:1px solid var(--line)}
.portal-event-list>a{display:grid;grid-template-columns:72px 1fr 170px;gap:20px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.portal-event-list time{width:64px;height:68px;border-radius:12px;background:var(--soft);display:grid;place-items:center;align-content:center}
.portal-event-list time strong{font-size:1.6rem;line-height:1}
.portal-event-list time span{font-size:.7rem;font-weight:850;letter-spacing:.12em;margin-top:4px}
.portal-event-list h2{margin:7px 0 5px}
.portal-event-list p{margin:0;color:var(--muted)}
.portal-event-list img{width:170px;height:104px;border-radius:12px;object-fit:cover}
.portal-detail__hero{height:min(62vh,680px);overflow:hidden;background:var(--soft)}
.portal-detail__hero img{width:100%;height:100%;object-fit:cover}
.portal-detail__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.7fr);gap:70px;padding-block:70px}
.portal-detail__grid--top{padding-top:80px}
.portal-detail h1{font-size:clamp(3rem,7vw,6.5rem)}
.portal-detail__lead{font-size:1.35rem;color:var(--muted);line-height:1.55}
.portal-detail__summary{font-size:1.18rem;font-weight:700;line-height:1.65}
.portal-prose{font-size:1.05rem;line-height:1.85;color:#263943}
.portal-detail__aside{align-self:start;position:sticky;top:110px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.portal-facts{display:grid;gap:0;margin:0 0 20px}
.portal-facts>div{padding:14px 0;border-bottom:1px solid var(--line)}
.portal-facts>div:first-child{padding-top:0}
.portal-facts dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:850}
.portal-facts dd{margin:6px 0 0;line-height:1.55}
.portal-company-logo{max-width:220px;max-height:120px;object-fit:contain;margin-bottom:30px}
.portal-related{margin-top:60px;padding-top:35px;border-top:1px solid var(--line)}
.portal-related h2{font-size:2rem}
.portal-related__list{display:grid;border-top:1px solid var(--line)}
.portal-related__list a{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none}
.portal-related__list span{color:var(--muted)}
.portal-search-results{display:grid;gap:45px}
.portal-search-results section{display:grid;border-top:1px solid var(--line)}
.portal-search-results h3{display:flex;justify-content:space-between;font-size:1.5rem}
.portal-search-results h3 span{color:var(--muted)}
.portal-search-results section>a{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}
.portal-search-results section>a span{color:var(--muted)}
.portal-footer{display:flex;justify-content:space-between;gap:30px;padding:55px max(24px,calc((100vw - 1180px)/2));background:var(--sea-dark);color:#fff}
.portal-footer p{color:#b8c7cd}
.portal-footer a{text-decoration:none}
.portal-brand--footer{display:inline-grid}
@media(max-width:900px){
  .portal-card-grid,.portal-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-detail__grid{grid-template-columns:1fr;gap:35px}
  .portal-detail__aside{position:static}
}
@media(max-width:700px){
  .portal-header{height:auto;min-height:72px;flex-wrap:wrap;padding-block:14px}
  .portal-menu-button{display:block}
  .portal-nav{display:none;width:100%;padding:12px 0 5px;flex-direction:column;align-items:flex-start;gap:14px}
  .portal-nav.is-open{display:flex}
  .portal-card-grid,.portal-event-grid,.portal-numbers{grid-template-columns:1fr}
  .portal-section__header{align-items:flex-start;flex-direction:column}
  .portal-event-list>a{grid-template-columns:60px 1fr}
  .portal-event-list img{display:none}
  .portal-related__list a,.portal-search-results section>a{display:grid}
  .portal-search{display:grid}
  .portal-search input{min-height:48px}
  .portal-footer{display:grid}
}


/* Öffentliche Startseite – redaktionelles Fundament */
.portal-home-hero{
  position:relative;
  min-height:min(76vh,760px);
  display:grid;
  align-items:end;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%,rgba(255,255,255,.28),transparent 28%),
    linear-gradient(135deg,#164e61 0%,#0c3543 58%,#082934 100%);
  color:#fff;
}

.portal-home-hero__image,
.portal-home-hero__shade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.portal-home-hero__image{
  object-fit:cover;
}

.portal-home-hero__shade{
  background:
    linear-gradient(90deg,rgba(5,28,37,.9) 0%,rgba(5,28,37,.62) 52%,rgba(5,28,37,.22) 100%),
    linear-gradient(0deg,rgba(5,28,37,.6),transparent 55%);
}

.portal-home-hero__inner{
  position:relative;
  z-index:1;
  padding-block:clamp(80px,12vw,145px) 72px;
}

.portal-home-hero .portal-kicker{
  color:#cae2e9;
}

.portal-home-hero h1{
  max-width:900px;
  margin:0;
  font-size:clamp(3.4rem,9vw,8.4rem);
  line-height:.88;
  letter-spacing:-.07em;
}

.portal-home-hero .portal-lead{
  max-width:690px;
  color:#dce8ec;
}

.portal-home-hero .portal-search{
  box-shadow:0 24px 70px rgba(0,0,0,.22);
}

.portal-home-hero__links{
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:25px;
}

.portal-home-hero__links a{
  color:#fff;
  font-weight:750;
  text-underline-offset:5px;
}

.portal-notice{
  margin-top:22px;
  padding:14px 18px;
  border:1px solid #d9d2c2;
  border-radius:12px;
  background:#f5f0e5;
  color:#5f5542;
}

.portal-start-empty{
  max-width:850px;
  padding:clamp(35px,7vw,80px);
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(140deg,var(--soft),#fff);
}

.portal-start-empty h2{
  margin:0 0 15px;
  font-size:clamp(2rem,5vw,4rem);
  letter-spacing:-.05em;
}

.portal-start-empty p:last-child{
  max-width:650px;
  color:var(--muted);
  font-size:1.1rem;
  line-height:1.7;
}

.portal-feature-event{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  min-height:430px;
  border-radius:26px;
  overflow:hidden;
  background:var(--sea-dark);
  color:#fff;
  text-decoration:none;
  box-shadow:var(--shadow);
}

.portal-feature-event__media{
  min-height:360px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#164e61;
}

.portal-feature-event__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}

.portal-feature-event__media>span{
  font-size:7rem;
  font-weight:850;
  color:#b8d5de;
}

.portal-feature-event:hover img{
  transform:scale(1.025);
}

.portal-feature-event__body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(30px,5vw,58px);
}

.portal-feature-event__body .portal-card-meta{
  color:#a9ced9;
}

.portal-feature-event__body h3{
  margin:10px 0 14px;
  font-size:clamp(2rem,4vw,3.8rem);
  line-height:1;
  letter-spacing:-.05em;
}

.portal-feature-event__body p{
  color:#c1d2d8;
  line-height:1.65;
}

.portal-feature-event__place{
  font-weight:750;
}

.portal-feature-event__body>strong{
  margin-top:18px;
}

.portal-home-event-list{
  display:grid;
  border-top:1px solid var(--line);
}

.portal-home-event-list>a{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 28px;
  gap:18px;
  align-items:center;
  padding:18px 0;
  border-bottom:1px solid var(--line);
  text-decoration:none;
}

.portal-home-event-list time{
  width:58px;
  height:62px;
  border-radius:12px;
  display:grid;
  place-items:center;
  align-content:center;
  background:#fff;
}

.portal-home-event-list time strong{
  font-size:1.45rem;
  line-height:1;
}

.portal-home-event-list time span{
  margin-top:4px;
  color:var(--sea);
  font-size:.68rem;
  font-weight:850;
}

.portal-home-event-list h3{
  margin:5px 0 4px;
  font-size:1.25rem;
}

.portal-home-event-list p{
  margin:0;
  color:var(--muted);
}

.portal-home-event-list>a>span{
  font-size:1.5rem;
  color:var(--sea);
}

.portal-place-mosaic{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:260px;
  gap:18px;
}

.portal-place-tile{
  position:relative;
  min-height:260px;
  overflow:hidden;
  border-radius:22px;
  background:linear-gradient(135deg,#dfe9ec,#b9ced5);
  color:#fff;
  text-decoration:none;
}

.portal-place-tile--large{
  grid-row:span 2;
}

.portal-place-tile img,
.portal-place-tile__shade{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}

.portal-place-tile img{
  object-fit:cover;
  transition:transform .45s ease;
}

.portal-place-tile__shade{
  background:linear-gradient(0deg,rgba(5,28,37,.82),rgba(5,28,37,.08) 68%);
}

.portal-place-tile>div{
  position:absolute;
  z-index:1;
  inset:auto 0 0;
  padding:24px;
}

.portal-place-tile .portal-card-meta{
  color:#c5e0e8;
}

.portal-place-tile h3{
  margin:7px 0 5px;
  font-size:clamp(1.45rem,3vw,2.4rem);
}

.portal-place-tile p{
  margin:0;
  color:#d5e2e6;
}

.portal-place-tile:hover img{
  transform:scale(1.035);
}

.portal-section--sand{
  padding-block:80px;
  background:#eee8dc;
}

.portal-company-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.portal-company-strip>a{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:15px;
  align-items:center;
  min-height:112px;
  padding:17px;
  border:1px solid rgba(62,70,66,.14);
  border-radius:16px;
  background:rgba(255,255,255,.72);
  text-decoration:none;
}

.portal-company-strip__logo{
  width:68px;
  height:68px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:13px;
  background:#fff;
  color:var(--sea);
  font-size:1.7rem;
  font-weight:850;
}

.portal-company-strip__logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:8px;
}

.portal-company-strip h3{
  margin:5px 0 3px;
  font-size:1.05rem;
}

.portal-company-strip p:last-child{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.portal-home-numbers{
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  padding-block:45px;
}

.portal-home-numbers>p{
  color:var(--muted);
}

.portal-home-numbers>div{
  display:flex;
  gap:28px;
  flex-wrap:wrap;
}

.portal-home-numbers span{
  color:var(--muted);
}

.portal-home-numbers strong{
  color:var(--ink);
  font-size:1.3rem;
}

.settings-section-title{
  margin-top:10px;
  padding-top:20px;
  border-top:1px solid var(--line);
}

.settings-section-title:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

.settings-section-title h2{
  margin:0;
}

.portal-footer nav{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  align-content:flex-start;
}

.portal-nav__search{
  padding:9px 13px;
  border:1px solid var(--line);
  border-radius:10px;
}

@media(max-width:900px){
  .portal-feature-event{
    grid-template-columns:1fr;
  }

  .portal-place-mosaic{
    grid-template-columns:1fr 1fr;
    grid-auto-rows:240px;
  }

  .portal-place-tile--large{
    grid-column:1/-1;
    grid-row:auto;
  }

  .portal-company-strip{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .portal-home-hero{
    min-height:680px;
  }

  .portal-home-hero__shade{
    background:linear-gradient(0deg,rgba(5,28,37,.88),rgba(5,28,37,.35));
  }

  .portal-home-hero__inner{
    padding-block:95px 45px;
  }

  .portal-home-hero__links{
    display:grid;
    gap:11px;
  }

  .portal-feature-event__media{
    min-height:240px;
  }

  .portal-place-mosaic,
  .portal-company-strip{
    grid-template-columns:1fr;
  }

  .portal-place-tile--large{
    grid-column:auto;
  }

  .portal-home-numbers{
    display:grid;
  }

  .portal-home-numbers>div{
    display:grid;
    gap:10px;
  }

  .portal-footer nav{
    display:grid;
  }
}
