:root{
      --hp-red:#b01e22;   /* anpassen, falls dein Logo andere Werte hat */
      --hp-black:#111111; /* anpassen */
      --paper:#f3f1ed;
      --paper-2:#ece9e3;
      --ink:#1a1a1a;
      --muted:#666;
      --rule:#cfcac2;
      --card:#f7f5f1;
      --shadow: 0 18px 35px rgba(0,0,0,.18);
    }

    body{
      background:#ddd;
      color:var(--ink);
      font-family: Georgia, "Times New Roman", Times, serif;
    }

    /* “Papier”-Seite */
    .paper{
      max-width: 980px;
      margin: 28px auto;
      background: linear-gradient(180deg, var(--paper) 0%, var(--paper-2) 100%);
      box-shadow: var(--shadow);
      border: 1px solid #d5d0c8;
      border-radius: 2px;
      position: relative;
      overflow: hidden;
    }

    /* subtiler Rand wie Zeitung */
    .paper:before{
      content:"";
      position:absolute;
      inset:10px 10px auto 10px;
      height: 2px;
      background: rgba(0,0,0,.08);
    }

    /* obere Linien */
    .rule{
      border-top: 2px solid var(--rule);
      border-bottom: 1px solid var(--rule);
    }
    .rule-thin{
      border-top: 1px solid var(--rule);
      border-bottom: 1px solid var(--rule);
    }

    /* Masthead */
    .masthead{
      padding: 18px 18px 10px;
    }
    .brand-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 12px;
      min-height: 64px;
    }
    .brand{
      font-weight: 800;
      letter-spacing: .5px;
      font-size: clamp(34px, 5vw, 56px);
      line-height: 1;
      margin: 0;
      text-transform: lowercase;
    }
    .brand .black{ color: var(--hp-black); }
    .brand .red{ color: var(--hp-red); }

    .brand-centered{
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      margin: 0;
      white-space: nowrap;
    }


    .top-icons{
      display:flex;
      align-items:center;
      gap: 14px;
      color:#333;
      font-size: 18px;
    }
    .top-icons a{
      color:#333;
      text-decoration:none;
    }
    .top-icons a:hover{ color: var(--hp-red); }

    .strap{
      font-size: 15px;
      letter-spacing: 1.2px;
      text-transform: uppercase;
      color:#2b2b2b;
      text-align:center;
      padding: 8px 18px;
    }

    .red-bar{
      height: 6px;
      background: var(--hp-red);
    }

    /* Hero */
    .hero{
      padding: 18px;
    }
    .hero-frame{
      border: 1px solid var(--rule);
      background: #fff;
      padding: 10px;
    }
    .hero-img{
      position: relative;
      border: 1px solid var(--rule);
      overflow: hidden;
    }
    .hero-img img{
      width:100%;
      height: 280px;
      object-fit: cover;
      display:block;
      filter: saturate(1.02) contrast(1.02);
    }
    .hero-overlay{
      position:absolute;
      inset:0;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      text-align:center;
      padding: 18px;
      color:#fff;
      background: linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.12) 45%, rgba(0,0,0,.25) 100%);
    }
    .hero-overlay h1{
      font-weight: 800;
      font-size: clamp(30px, 4.2vw, 56px);
      margin: 0 0 6px;
      text-shadow: 0 8px 18px rgba(0,0,0,.35);
    }
    .hero-overlay p{
      margin: 0 0 14px;
      font-size: 18px;
      text-shadow: 0 6px 14px rgba(0,0,0,.35);
    }
    .btn-hp{
      background: var(--hp-red);
      border-color: var(--hp-red);
      color:#fff;
      padding: .65rem 1.35rem;
      border-radius: 4px;
      font-weight: 700;
      letter-spacing: .2px;
      box-shadow: 0 10px 20px rgba(176,30,34,.18);
    }
    .btn-hp:hover{
      background:#8f171a;
      border-color:#8f171a;
      color:#fff;
    }

    /* Sections */
    .section{
      padding: 0 18px 18px;
    }
    .section-title{
      font-weight: 800;
      font-size: 20px;
      margin: 0;
      text-align:center;
      padding: 10px 0;
    }

    /* “3 Kacheln” */
    .mini-card{
      border: 1px solid var(--rule);
      background: #fff;
      padding: 10px;
      height: 100%;
    }
    .mini-card h3{
      font-size: 18px;
      font-weight: 800;
      margin: 6px 0 10px;
      text-align:center;
      color:#222;
    }
    .mini-thumb{
      position:relative;
      border: 1px solid var(--rule);
      overflow:hidden;
      background:#eee;
    }
    .mini-thumb img{
      width:100%;
      height: 150px;
      object-fit: cover;
      display:block;
    }
    .mini-ribbon{
      position:absolute;
      left:0;
      right:0;
      bottom:0;
      padding: 8px 10px;
      font-weight: 700;
      color:#fff;
      font-size: 14px;
      letter-spacing:.2px;
    }
    .ribbon-red{ background: var(--hp-red); }
    .ribbon-dark{ background: #222; }

    /* große Boxen */
    .box{
      border: 1px solid var(--rule);
      background: #fff;
      padding: 14px;
      height: 100%;
    }
    .box h4{
      font-weight: 900;
      font-size: 22px;
      margin: 0 0 10px;
    }
    .box .sub{
      color:#333;
      font-weight: 700;
      margin-bottom: 10px;
      font-style: italic;
    }
    .list-dot{
      margin: 0;
      padding-left: 0;
      list-style: none;
    }
    .list-dot li{
      position: relative;
      padding-left: 18px;
      margin: 8px 0;
      color:#222;
    }
    .list-dot li:before{
      content:"■";
      position:absolute;
      left:0;
      top:0;
      color: var(--hp-red);
      font-size: 10px;
      transform: translateY(3px);
    }

    /* Zahlenbox */
    .facts-head{
      font-weight: 900;
      font-size: 22px;
      margin: 0 0 10px;
    }
    .facts{
      border-top: 1px solid var(--rule);
      border-bottom: 1px solid var(--rule);
      padding: 10px 0;
      margin-bottom: 10px;
    }
    .fact{
      text-align:center;
    }
    .fact .num{
      font-weight: 900;
      font-size: 34px;
      line-height: 1;
    }
    .fact .label{
      display:block;
      font-weight: 700;
      font-size: 13px;
      color:#333;
      margin-top: 4px;
    }
    .city-strip{
      border: 1px solid var(--rule);
      overflow:hidden;
    }
    .city-strip img{
      width:100%;
      height: 88px;
      object-fit: cover;
      display:block;
    }

    /* Wetter / Kontakt unten */
    .weather{
      display:flex;
      gap: 14px;
      align-items:center;
    }
    .weather-icon{
      width: 70px;
      height: 70px;
      border: 1px solid var(--rule);
      background: #e8edf7;
      display:flex;
      align-items:center;
      justify-content:center;
      border-radius: 2px;
      font-size: 36px;
      color:#233a7a;
    }
    .weather strong{
      font-size: 22px;
    }

    .contact-list{
      margin: 0;
      padding-left: 0;
      list-style:none;
    }
    .contact-list li{
      padding: 6px 0;
      border-bottom: 1px solid rgba(0,0,0,.06);
      display:flex;
      gap: 8px;
      align-items:flex-start;
    }
    .contact-list li:last-child{ border-bottom:0; }
    .contact-list i{
      color: var(--hp-red);
      margin-top: 2px;
    }

    .project-tile{
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration:none;
  color:inherit;
  border: 1px solid var(--rule);
  background:#fff;
  overflow:hidden;
  transition: transform .2s ease, box-shadow .2s ease;
}

.project-tile:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}

/* Bild immer gleich hoch */
.project-tile img{
  width:100%;
  height:120px;          /* ggf. feinjustieren */
  object-fit:cover;
  display:block;
  filter: saturate(0.95) contrast(1.05);
}

/* Textbereich füllt Rest */
.project-caption{
  flex: 1;
  padding: 10px;
  border-top: 1px solid var(--rule);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.project-caption strong{
  display:block;
  font-size:15px;
  font-weight:800;
  margin-bottom: 2px;
}

.project-caption span{
  font-size:13px;
  color:#444;
  line-height:1.3;
}



/* Footer */
.footer{
    padding: 12px 18px 18px;
    text-align:center;
    color:#333;
    font-size: 14px;
}
.footer a{
    color:#333;
    text-decoration:none;
}
.footer a:hover{ color: var(--hp-red); }


a{
  color: #8f1d1d;
  text-decoration: none;
  border-bottom: 1px solid rgba(143,29,29,0.35);
}

a:hover{
  color: #6f1414;
  border-bottom-color: rgba(111,20,20,0.6);
}

a.link-extern::after{
  content: "\f1c5"; /* bi-box-arrow-up-right */
  font-family: "Bootstrap-icons";
  display: inline-block;
  margin-left: 1.00em;
  font-size: 0.85em;
  vertical-align: baseline;
  opacity: 0.75;
}

a.link-extern:hover::after{
  opacity: 1;
}

/* hammpost Artikel-Optik */
.hp-article {
  padding: 1.2rem 0;
}

.hp-article:last-child {
  border-bottom: none;
}

.hp-article-title {
  font-size: 1.25rem;
  margin: 0 0 0.3rem 0;
  font-weight: 600;
}




.hp-article-meta {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 0.5rem;
}

.hp-article-teaser {
  margin: 0;
  color: #333;
  line-height: 1.5;
}

/* externer Hinweis dezent */
.meta-extern {
  color: #888;
}


    