/*--------------------------------------------------------------
# Notar Dr. Becker - Theme-Styles
#
# Ergaenzt das gekuerzte MediTrust-main.css um die Notariats-Komponenten.
# Farben: Schiefergrau #3d4852 (Akzent, Buttons, Links; 9,3:1 auf Weiss) in
# Anlehnung an die Grautoene der bisherigen Website. Gold #c8a23a aus dem
# Landeswappen nur als Schmuckfarbe: Flaechen, Linien, Icons und Text auf
# dunklem Grund (6,5:1 auf #1f2326), nie als Text auf Weiss (2,4:1).
--------------------------------------------------------------*/
:root {
  --nbg-gold: #c8a23a;
  --nbg-gold-dark: #7d6212;
  --nbg-slate-dark: #2a3138;
  --nbg-paper: #f6f4ef;
  --nbg-radius: 12px;
  --nbg-shadow: 0 10px 30px rgba(34, 38, 42, 0.08);
}

body {
  line-height: 1.65;
}

/* iframe.js und Sprungmarken: Abstand fuer den fixierten Header */
html {
  scroll-padding-top: 110px;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
.header .logo {
  gap: 12px;
}

.header .logo .nbg-logo-img {
  width: auto;
  height: 50px;
  max-height: none;
  margin: 0;
}

.nbg-logo-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.header .sitename {
  font-family: var(--heading-font);
  font-size: 18px;
  font-weight: 700;
  color: var(--heading-color);
}

.header .nbg-tagline {
  font-size: 13px;
  color: color-mix(in srgb, var(--default-color), transparent 20%);
}

@media (max-width: 575px) {
  .header .sitename {
    font-size: 15px;
  }

  .header .nbg-tagline {
    font-size: 12px;
  }

  .header .logo .nbg-logo-img {
    height: 40px;
  }
}

@media (min-width: 1200px) {
  .navmenu > ul > li {
    padding: 15px 11px;
  }

  .navmenu a,
  .navmenu a:focus {
    font-size: 15px;
  }

  /* Die hinteren Untermenues rechtsbuendig, sonst ragen sie ueber den Viewport. */
  .navmenu > ul > li.dropdown:nth-last-child(-n+3) > ul {
    left: auto;
    right: 0;
  }

  /* Tastatur: Untermenue oeffnet sich auch bei Fokus */
  .navmenu .dropdown:focus-within > ul {
    opacity: 1;
    top: 100%;
    visibility: visible;
  }
}

@media (min-width: 1200px) and (max-width: 1399px) {
  .navmenu > ul > li {
    padding: 15px 8px;
  }

  .navmenu a,
  .navmenu a:focus {
    font-size: 14px;
  }
}

.mobile-nav-toggle {
  background: transparent;
  border: 0;
  padding: 0;
  line-height: 1;
}

/*--------------------------------------------------------------
# Barrierefreiheit (WCAG 2.1 AA) - analog notar-schindler-dresden
--------------------------------------------------------------*/
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--accent-color);
  outline-offset: 2px;
  border-radius: 2px;
}

.dark-background a:focus-visible,
.dark-background button:focus-visible,
.nbg-card-accent a:focus-visible,
.nbg-widget-accent a:focus-visible,
.nbg-call-strip a:focus-visible {
  outline-color: var(--nbg-gold);
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 8px;
  z-index: 10000;
  padding: 12px 20px;
  background: #ffffff;
  color: var(--accent-color);
  font-weight: 600;
  border: 2px solid var(--accent-color);
  border-radius: 0 0 4px 4px;
  transition: none;
}

.skip-link:focus {
  top: 0;
  color: var(--accent-color);
}

#main:focus {
  outline: none;
}

/* Inhaltslinks nicht nur ueber Farbe erkennbar (WCAG 1.4.1) */
.entry-content a:not(.nbg-btn):not(.wp-block-button__link) {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.entry-content a:not(.nbg-btn):not(.wp-block-button__link):hover {
  color: var(--nbg-slate-dark);
  text-decoration-thickness: 2px;
}

.stretched-link:focus-visible {
  outline: none;
}

.stretched-link:focus-visible::after {
  outline: 3px solid var(--accent-color);
  outline-offset: 2px;
  border-radius: var(--nbg-radius);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  [data-aos] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/*--------------------------------------------------------------
# Bausteine
--------------------------------------------------------------*/
.nbg-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--nav-font);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nbg-gold-dark);
  margin-bottom: 12px;
}

.nbg-eyebrow::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 2px;
  background: var(--nbg-gold);
}

.nbg-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 26px;
  border-radius: 50px;
  font-family: var(--nav-font);
  font-weight: 700;
  font-size: 15px;
  border: 2px solid transparent;
  transition: background-color 0.25s, color 0.25s, border-color 0.25s;
}

.nbg-btn-primary {
  background: var(--accent-color);
  border-color: var(--accent-color);
  color: #ffffff;
}

.nbg-btn-primary:hover {
  background: var(--nbg-slate-dark);
  border-color: var(--nbg-slate-dark);
  color: #ffffff;
}

.nbg-btn-outline {
  border-color: var(--accent-color);
  color: var(--accent-color);
  background: transparent;
}

.nbg-btn-outline:hover {
  background: var(--accent-color);
  color: #ffffff;
}

.nbg-btn-light {
  background: #ffffff;
  color: var(--nbg-slate-dark);
}

.nbg-btn-light:hover {
  background: var(--nbg-paper);
  color: var(--nbg-slate-dark);
}

.nbg-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 24px;
}

.nbg-link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
}

.nbg-card {
  background: var(--surface-color);
  border-radius: var(--nbg-radius);
  box-shadow: var(--nbg-shadow);
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 92%);
  border-top: 3px solid var(--nbg-gold);
  padding: 28px;
}

.nbg-card-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 16px;
}

.nbg-card-title i {
  color: var(--accent-color);
}

.nbg-card p:last-child {
  margin-bottom: 0;
}

.nbg-card .nbg-link-arrow {
  margin-top: 4px;
}

/*--------------------------------------------------------------
# Startseite: Kopfbereich (MediTrust Hero)
--------------------------------------------------------------*/
.hero .hero-content .content-box .badge-accent {
  background-color: var(--nbg-gold);
  color: #1f2326;
  font-weight: 700;
}

.hero .hero-content .content-box h1 {
  font-size: clamp(2.1rem, 4.6vw, 3.4rem);
}

.hero .hero-content .content-box .cta-group {
  flex-wrap: wrap;
}

.hero .hero-content .content-box .cta-group .btn.btn-primary {
  background-color: var(--nbg-gold);
  border-color: var(--nbg-gold);
  color: #1f2326;
}

.hero .hero-content .content-box .cta-group .btn.btn-primary:hover {
  background-color: #d6b453;
  border-color: #d6b453;
  color: #1f2326;
}

.hero .hero-content .content-box .cta-group .btn.btn-outline {
  border-color: #ffffff;
  color: #ffffff;
}

.hero .hero-content .content-box .cta-group .btn.btn-outline:hover {
  background-color: #ffffff;
  border-color: #ffffff;
  color: #1f2326;
}

.hero .hero-content .content-box .info-badges {
  flex-wrap: wrap;
}

.hero .hero-content .content-box .info-badges .badge-item i {
  color: var(--nbg-gold);
}

.hero .hero-content .content-box .info-badges .badge-item .badge-content strong,
.hero .hero-content .content-box .info-badges .badge-item .badge-content strong a {
  color: #ffffff;
}

.hero .features-wrapper .feature-item .feature-icon {
  background-color: color-mix(in srgb, var(--nbg-gold), transparent 82%);
}

.hero .features-wrapper .feature-item .feature-icon i {
  color: var(--nbg-gold);
}

.hero .features-wrapper .feature-item .feature-text h2 {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.hero .features-wrapper .feature-item .feature-text h2 a {
  color: #ffffff;
}

.hero .features-wrapper .feature-item .feature-text p {
  color: color-mix(in srgb, #ffffff, transparent 18%);
}

.hero .features-wrapper .feature-item:hover .feature-text h2 a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

/*--------------------------------------------------------------
# Startseite: Willkommen (MediTrust Home About)
--------------------------------------------------------------*/
.home-about .about-image {
  margin: 0 0 30px;
}

.home-about .about-image img {
  width: 100%;
}

.nbg-about-caption {
  margin-top: 10px;
  font-size: 0.9rem;
  color: color-mix(in srgb, var(--default-color), transparent 25%);
}

.home-about .about-image .experience-badge {
  bottom: 40px;
  background-color: var(--accent-color);
  border-bottom: 3px solid var(--nbg-gold);
}

.home-about .about-image .experience-badge .years {
  color: var(--nbg-gold);
  font-family: var(--heading-font);
  font-size: 30px;
}

.home-about .feature-item .icon {
  color: var(--accent-color);
}

.home-about .feature-item h3 {
  font-size: 18px;
  margin-bottom: 10px;
  font-weight: 600;
}

.home-about .about-content .entry-content p {
  margin-bottom: 16px;
}

.home-about .cta-wrapper .btn {
  border-radius: 50px;
  padding: 10px 26px;
}

/*--------------------------------------------------------------
# Kacheln (MediTrust Featured Departments)
--------------------------------------------------------------*/
.featured-departments .department-card {
  position: relative;
  border-top: 3px solid var(--nbg-gold);
}

.featured-departments .department-image {
  height: 180px;
}

/* Hochformat (Portraet): 180 px aus ~600 px Bildhoehe, bei "top" laege die Kante auf
   Augenhoehe. 22 % haelt das Gesicht bei Kachelbreiten von 330 bis 700 px im Bild. */
.featured-departments .nbg-card-portrait .department-image img {
  object-position: 50% 22%;
}

.featured-departments .department-icon {
  background: var(--accent-color);
}

.featured-departments .department-icon i {
  color: var(--nbg-gold);
}

.featured-departments h2,
.featured-departments h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 40px 0 12px 0;
}

.featured-departments h2 a,
.featured-departments h3 a {
  color: var(--heading-color);
}

.featured-departments .department-card:hover h2 a,
.featured-departments .department-card:hover h3 a {
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.featured-departments p {
  font-size: 0.95rem;
  margin-bottom: 18px;
}

/* Ohne Beitragsbild: Icon im Fluss statt ueber der Bildkante */
.featured-departments .nbg-card-no-image .department-icon {
  position: static;
  margin-bottom: 20px;
}

.featured-departments .nbg-card-no-image h2,
.featured-departments .nbg-card-no-image h3 {
  margin-top: 0;
}

.featured-departments .nbg-card-accent {
  background: var(--accent-color);
}

.featured-departments .nbg-card-accent h2 a,
.featured-departments .nbg-card-accent h3 a,
.featured-departments .nbg-card-accent p,
.featured-departments .nbg-card-accent .btn-learn-more {
  color: #ffffff;
}

.featured-departments .nbg-card-accent .department-icon {
  background: var(--nbg-gold);
}

.featured-departments .nbg-card-accent .department-icon i {
  color: #1f2326;
}

.nbg-subpages {
  margin-top: 16px;
}

.nbg-subpages.featured-departments {
  padding: 0;
  overflow: visible;
}

/*--------------------------------------------------------------
# Startseite: Kontakt
--------------------------------------------------------------*/
.nbg-location h2 {
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  font-weight: 700;
  margin-bottom: 20px;
}

/*--------------------------------------------------------------
# Kontakt & Öffnungszeiten
--------------------------------------------------------------*/
.nbg-contact {
  font-style: normal;
  margin: 0;
}

.nbg-contact-name {
  font-family: var(--heading-font);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--heading-color);
  margin-bottom: 12px;
}

.nbg-contact-list {
  list-style: none;
  padding: 0;
  margin: 0 0 16px;
}

.nbg-contact-list li {
  display: flex;
  gap: 12px;
  padding: 5px 0;
}

.nbg-contact-list i {
  color: var(--accent-color);
  font-size: 1.05rem;
  line-height: 1.6;
}

.nbg-label {
  min-width: 4.5em;
  font-weight: 600;
}

.nbg-hours-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  color: var(--heading-color);
  margin-bottom: 8px;
}

.nbg-hours-title i {
  color: var(--accent-color);
}

.nbg-hours {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr);
  gap: 4px 18px;
  margin: 0;
}

.nbg-hours dt {
  font-weight: 600;
}

.nbg-hours dd {
  margin: 0;
}

.nbg-hours-note {
  margin: 10px 0 0;
  font-size: 0.95rem;
  color: color-mix(in srgb, var(--default-color), transparent 15%);
}

@media (max-width: 575px) {
  .nbg-hours {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .nbg-hours dd {
    margin-bottom: 8px;
  }
}

/*--------------------------------------------------------------
# Unterseiten: Seitentitel, Inhalt, Seitenleiste
--------------------------------------------------------------*/
.page-title {
  padding: 140px 0 40px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--default-color), transparent 92%);
}

.page-title .title-wrapper {
  padding: 0.5rem 15px 0;
}

.page-title .title-wrapper h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.5rem);
}

.page-title .title-wrapper h1::after {
  content: "";
  display: block;
  width: 50px;
  height: 3px;
  margin: 18px auto 0;
  background: var(--nbg-gold);
}

.page-title .breadcrumbs .breadcrumb {
  flex-wrap: wrap;
  padding: 0 15px;
}

.page-title .breadcrumbs .breadcrumb .breadcrumb-item.active {
  color: var(--accent-color);
  font-weight: 600;
}

@media (max-width: 1199px) {
  .page-title {
    padding-top: 120px;
  }
}

.section-title h2:after {
  background: var(--nbg-gold);
}

.entry-content > *:first-child {
  margin-top: 0;
}

.entry-content h2 {
  font-size: 1.6rem;
  font-weight: 700;
  margin: 2rem 0 1rem;
}

.entry-content h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 1.6rem 0 0.8rem;
}

.entry-content h4 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 1.4rem 0 0.6rem;
}

.entry-content p,
.entry-content ul,
.entry-content ol,
.entry-content .wp-block-table {
  margin-bottom: 1.1rem;
}

.entry-content ul,
.entry-content ol {
  padding-left: 1.3rem;
}

.entry-content li {
  margin-bottom: 0.4rem;
}

.entry-content li::marker {
  color: var(--nbg-gold-dark);
}

.entry-content .wp-block-table table,
.entry-content table {
  width: 100%;
  border-collapse: collapse;
}

.entry-content th,
.entry-content td {
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 85%);
  padding: 10px 12px;
  vertical-align: top;
}

.entry-content .wp-block-table td:first-child {
  width: 30%;
  font-weight: 600;
}

.entry-content .wp-block-table {
  overflow-x: auto;
}

.nbg-sidebar {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.nbg-widget {
  background: var(--surface-color);
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
  border-radius: var(--nbg-radius);
  box-shadow: 0 5px 15px rgba(34, 38, 42, 0.04);
  padding: 26px;
}

.nbg-widget-title {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.nbg-widget-title a {
  color: var(--heading-color);
}

.nbg-subnav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nbg-subnav li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--default-color);
}

.nbg-subnav li a i {
  color: var(--accent-color);
}

.nbg-subnav li a:hover {
  background: var(--nbg-paper);
  color: var(--nbg-slate-dark);
}

.nbg-subnav li a.active {
  background: var(--accent-color);
  color: #ffffff;
  font-weight: 600;
}

.nbg-subnav li a.active i {
  color: var(--nbg-gold);
}

.nbg-widget-accent {
  background: var(--accent-color);
  border-color: var(--accent-color);
  border-top: 3px solid var(--nbg-gold);
  color: #ffffff;
}

.nbg-widget-accent .nbg-widget-title {
  color: #ffffff;
}

/* Portraet auf der Vita-Seite */
.entry-content .nbg-portrait {
  float: right;
  width: 40%;
  max-width: 300px;
  margin: 0 0 1rem 1.75rem;
}

.entry-content .nbg-portrait img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--nbg-radius);
  box-shadow: var(--nbg-shadow);
}

@media (max-width: 575px) {
  .entry-content .nbg-portrait {
    float: none;
    width: 60%;
    margin: 0 0 1.25rem;
  }
}

/*--------------------------------------------------------------
# Fusszeile
--------------------------------------------------------------*/
.footer .footer-about .logo {
  gap: 12px;
  margin-bottom: 18px;
}

.footer .footer-about .logo .nbg-logo-img-sm {
  width: auto;
  height: 44px;
  max-height: none;
  margin: 0;
}

.footer .footer-about .logo .sitename {
  font-size: 19px;
  letter-spacing: 0;
}

.nbg-footer-heading {
  font-size: 16px;
  font-weight: 700;
  padding-bottom: 12px;
  color: var(--heading-color);
}

.footer .footer-links ul a {
  color: var(--default-color);
  line-height: 1.4;
}

.footer .footer-links ul a:hover,
.footer .nbg-contact a:hover {
  color: var(--accent-color);
  text-decoration: underline;
}

.footer .nbg-contact {
  margin-top: 16px;
}

.footer .nbg-contact-name {
  display: none;
}

.footer .nbg-contact-list li {
  padding: 3px 0;
}

.footer .copyright p {
  margin: 0;
}

.nbg-legal-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nbg-legal-links a {
  color: var(--default-color);
}

.nbg-legal-links a:hover {
  color: var(--accent-color);
  text-decoration: underline;
}

/*--------------------------------------------------------------
# 404
--------------------------------------------------------------*/
.nbg-404-icon {
  display: block;
  font-size: 64px;
  color: var(--nbg-gold);
  margin-bottom: 16px;
}

/*--------------------------------------------------------------
# Mandantenportal (iframe.js), analog notar-schindler-dresden
--------------------------------------------------------------*/
/* Startseite: eigener Abschnitt direkt unter dem Kopfbereich */
.nbg-portal-section {
  padding: 70px 0 60px;
  border-bottom: 1px solid color-mix(in srgb, var(--default-color), transparent 92%);
}

.nbg-portal-head {
  max-width: 760px;
  margin-bottom: 28px;
}

.nbg-portal-section .nbg-portal-head {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.nbg-portal-section .nbg-eyebrow {
  justify-content: center;
}

.nbg-portal-title {
  font-size: clamp(1.8rem, 3.6vw, 2.5rem);
  font-weight: 700;
  margin: 0 0 12px;
}

.nbg-portal-head p {
  font-size: 1.08rem;
  margin: 0;
}

.entry-content .nbg-portal-title {
  margin-top: 0;
}

.nbg-portal-frame {
  min-height: 320px;
  background: #ffffff;
  border: 1px solid color-mix(in srgb, var(--default-color), transparent 90%);
  border-top: 4px solid var(--nbg-gold);
  border-radius: var(--nbg-radius);
  box-shadow: 0 18px 45px rgba(34, 38, 42, 0.12);
  overflow: hidden;
}

.nbg-portal-frame iframe {
  display: block;
  width: 100%;
  border: 0;
}

.nbg-portal-note {
  margin: 14px 0 0;
  font-size: 0.95rem;
}

.nbg-portal-note a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.nbg-portal-section .nbg-portal-note,
.nbg-portal-forms {
  text-align: center;
}

.nbg-portal-forms {
  margin: 10px 0 0;
  font-size: 0.95rem;
}

.entry-content .nbg-forms-heading {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid color-mix(in srgb, var(--default-color), transparent 88%);
}

/* Startseite: Telefon-Hinweis ueber den Kontaktdaten */
.nbg-call-strip {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 48px;
  padding: 24px 28px;
  border-radius: var(--nbg-radius);
  background: var(--accent-color);
  border-bottom: 3px solid var(--nbg-gold);
  color: #ffffff;
}

.nbg-call-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: color-mix(in srgb, #ffffff, transparent 88%);
  color: var(--nbg-gold);
  font-size: 1.4rem;
}

.nbg-call-text {
  flex: 1;
}

.nbg-call-text h2 {
  color: #ffffff;
  margin: 0 0 4px;
  font-size: 1.3rem;
}

.nbg-call-text p {
  margin: 0;
  color: color-mix(in srgb, #ffffff, transparent 15%);
}

@media (max-width: 767px) {
  .nbg-call-strip {
    flex-direction: column;
    text-align: center;
  }
}
