/* Shared public header. Scoped to coexist with each page's content styles. */
.top-bar.site-header {
  display: block; padding: 0; overflow: visible; position: relative; z-index: 30;
  background: linear-gradient(110deg, #fff 35%, #fcfdfc);
  border-bottom: 1px solid #dce6df; box-shadow: 0 3px 20px #153d2205;
  font-family: var(--font-sans, 'Source Sans 3', 'Segoe UI', sans-serif); line-height: 1.55;
}
.top-bar.site-header, .top-bar.site-header * { box-sizing: border-box; }
.top-bar.site-header .header-shell { max-width: 1440px; margin: 0 auto; padding: 0 32px; }
.top-bar.site-header .header-main { display: grid; grid-template-columns: auto 1fr auto; gap: 28px; align-items: center; min-height: 94px; position: relative; }
.top-bar.site-header .brand-line { margin: 0; }
.top-bar.site-header .brand-mini { display: inline-flex; align-items: center; gap: 12px; font-size: 28px; max-width: none; overflow: visible; color: #143b29; line-height: 1; text-decoration: none; }
.top-bar.site-header .header-mark { display: block; width: 44px; height: 44px; flex-shrink: 0; border-radius: 13px; box-shadow: 0 0 0 1px #1f593314; }
.top-bar.site-header .brand-copy { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; text-align: center; }
.top-bar.site-header .brand-wordmark { display: block; line-height: 1.1; font-family: var(--font-display, 'Playfair Display', Georgia, serif); font-weight: 700; white-space: nowrap; }
.top-bar.site-header .brand-wordmark > span { color: #377c61; }
.top-bar.site-header .brand-caption { display: block; line-height: 1.2; padding-left: 1.65px; font-family: var(--font-sans, 'Segoe UI', sans-serif); font-size: 9px; font-weight: 600; letter-spacing: 1.65px; color: #718679; white-space: nowrap; }
.top-bar.site-header .top-nav { display: flex; justify-content: center; flex-wrap: nowrap; gap: 3px; margin: 0; }
.top-bar.site-header .top-nav a { position: relative; font-size: 13px; font-weight: 600; text-decoration: none; color: #5d6f65; padding: 12px 9px; border-radius: 6px; white-space: nowrap; background: transparent; }
.top-bar.site-header .top-nav a:hover { color: #173f2e; background: #f0f5f1; }
.top-bar.site-header .top-nav a.active { color: #173f2e; box-shadow: none; }
.top-bar.site-header .top-nav a.active::after { content: ''; position: absolute; height: 2px; left: 9px; right: 9px; bottom: 4px; border-radius: 2px; background: #377c61; }
.top-bar.site-header .top-right { display: flex; align-items: center; flex-wrap: nowrap; gap: 14px; margin: 0; }
.top-bar.site-header .lang-switch { display: inline-flex; flex-shrink: 0; gap: 0; padding: 3px; border: 1px solid #e0e8e2; border-radius: 24px; background: #f2f6f3; font-family: inherit; font-size: 10px; }
.top-bar.site-header .lang-switch > a, .top-bar.site-header .lang-switch > span { display: inline-flex; align-items: center; justify-content: center; gap: 5px; width: 43px; min-height: 30px; padding: 0; border: 0; border-radius: 18px; color: #687b6e; font-size: 10px; font-weight: 600; text-decoration: none; }
.top-bar.site-header .lang-switch .lang-current { color: #204a34; background: #fff; box-shadow: 0 1px 4px #143b2912; }
.top-bar.site-header .lang-switch .lang-other:hover { color: #204a34; background: #e5eee7; }
.top-bar.site-header .lang-flag { width: 12px; height: 9px; }
.top-bar.site-header .btn-cta-top { display: inline-flex; align-items: center; gap: 8px; width: auto; min-width: 0; min-height: 40px; padding: 9px 12px; border: 0; border-radius: 8px; background: transparent; color: #4c6657; font-size: 13px; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; }
.top-bar.site-header svg { display: block; width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.top-bar.site-header .btn-cta-try { min-height: 44px; padding: 12px 17px; gap: 18px; border-radius: 9px; color: #fff; background: #173f2e; box-shadow: 0 3px 8px #173f2e12; font-size: 13px; font-weight: 700; transition: background .16s, box-shadow .16s; }
.top-bar.site-header .btn-cta-try:hover { color: #fff; background: #285b43; box-shadow: 0 4px 12px #173f2e24; }
.top-bar.site-header .btn-cta-try[aria-current="page"] { outline: 2px solid #88b69a; outline-offset: 3px; }
.top-bar.site-header .btn-cta-secondary:hover { background: #edf4ef; color: #204a34; }
.top-bar.site-header .btn-cta-secondary[aria-current="page"] { background: #e6efe8; color: #204a34; outline: none; }
.top-bar.site-header .header-tools { display: flex; align-items: center; gap: 20px; min-height: 56px; border-top: 1px solid #edf1ed; }
.top-bar.site-header .header-tools-label { font-size: 10px; font-weight: 600; letter-spacing: 1.45px; text-transform: uppercase; color: #829087; }
.top-bar.site-header .top-cta-group { display: flex; flex-direction: row; align-items: center; flex-wrap: nowrap; gap: 8px; width: auto; }
.top-bar.site-header .header-open-label { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; font-size: 11px; color: #829087; white-space: nowrap; }
.top-bar.site-header .header-open-label > span { width: 5px; height: 5px; border-radius: 50%; background: #62a17a; }
.top-bar.site-header .mobile-menu { display: none; }
.top-bar.site-header .mobile-menu summary { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; list-style: none; cursor: pointer; border: 1px solid #dce7df; border-radius: 9px; background: #fff; }
.top-bar.site-header .mobile-menu summary::-webkit-details-marker { display: none; }
.top-bar.site-header .menu-lines { width: 18px; height: 12px; position: relative; border-top: 1.5px solid #204a34; border-bottom: 1.5px solid #204a34; }
.top-bar.site-header .menu-lines::after { content: ''; position: absolute; top: 4px; right: 0; width: 12px; border-top: 1.5px solid #204a34; }
.top-bar.site-header .mobile-menu[open] summary { background: #eaf2ec; }
.top-bar.site-header .mobile-menu[open] .menu-lines { border: 0; }
.top-bar.site-header .mobile-menu[open] .menu-lines::before, .top-bar.site-header .mobile-menu[open] .menu-lines::after { content: ''; position: absolute; top: 5px; left: 0; width: 18px; border-top: 1.5px solid #204a34; transform: rotate(45deg); }
.top-bar.site-header .mobile-menu[open] .menu-lines::after { transform: rotate(-45deg); }
.top-bar.site-header .mobile-menu-panel { position: absolute; top: calc(100% + 10px); right: 0; width: 320px; max-width: 100%; padding: 14px; border: 1px solid #dce7df; border-radius: 14px; background: #fff; box-shadow: 0 18px 50px #143b2926; }
.top-bar.site-header .mobile-menu-panel nav { display: grid; gap: 3px; }
.top-bar.site-header .mobile-menu-panel nav a { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; border-radius: 8px; color: #4c6657; font-size: 15px; font-weight: 600; text-decoration: none; text-align: left; }
.top-bar.site-header .mobile-menu-panel nav a:hover, .top-bar.site-header .mobile-menu-panel nav a.active { background: #edf4ef; color: #204a34; }
.top-bar.site-header .mobile-tools { display: grid; gap: 3px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #edf1ed; }
.top-bar.site-header .mobile-tools .btn-cta-top { width: 100%; min-height: 44px; justify-content: flex-start; text-align: left; padding: 10px 12px; gap: 12px; }
.top-bar.site-header .mobile-plan-link { display: flex; justify-content: space-between; width: 100%; margin-bottom: 8px; box-shadow: none; }
.top-bar.site-header a:focus-visible, .top-bar.site-header summary:focus-visible { outline: 3px solid #609d78; outline-offset: 4px; }
@media (max-width: 1180px) {
  .top-bar.site-header .header-shell { padding: 0 24px; }
  .top-bar.site-header .header-main { min-height: 86px; gap: 20px; }
  .top-bar.site-header .brand-mini { font-size: 25px; }
  .top-bar.site-header .top-nav a { font-size: 12px; padding: 10px 6px; }
  .top-bar.site-header .top-right { gap: 10px; }
}
@media (max-width: 1100px) {
  .top-bar.site-header .header-main { grid-template-columns: 1fr auto; }
  .top-bar.site-header .top-nav, .top-bar.site-header .header-tools { display: none; }
  .top-bar.site-header .mobile-menu { display: block; }
  .top-bar.site-header .top-right > .btn-cta-try { display: none; }
  .top-bar.site-header .mobile-menu-panel { top: calc(100% - 6px); }
}
@media (max-width: 640px) {
  .top-bar.site-header .header-shell { padding: 12px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)); }
  .top-bar.site-header .header-main { grid-template-columns: 1fr auto auto; gap: 14px 10px; min-height: 0; }
  .top-bar.site-header .brand-line { grid-column: 1; grid-row: 1; }
  .top-bar.site-header .brand-mini { font-size: 24px; gap: 9px; }
  .top-bar.site-header .header-mark { width: 36px; height: 36px; border-radius: 10px; }
  .top-bar.site-header .brand-copy { gap: 4px; }
  .top-bar.site-header .brand-caption { font-size: 7px; letter-spacing: 1.1px; padding-left: 1.1px; }
  .top-bar.site-header .top-right { display: contents; }
  .top-bar.site-header .lang-switch { grid-column: 2; grid-row: 1; }
  .top-bar.site-header .lang-switch > a, .top-bar.site-header .lang-switch > span { width: 30px; min-height: 28px; }
  .top-bar.site-header .lang-flag { display: none; }
  .top-bar.site-header .mobile-menu { grid-column: 3; grid-row: 1; }
  .top-bar.site-header .mobile-menu summary { width: 38px; height: 38px; }
  .top-bar.site-header .mobile-menu-panel { top: calc(100% + 12px); width: min(360px, 100%); padding: 8px; max-height: calc(100dvh - 100px); overflow-y: auto; border-radius: 12px; }
  .top-bar.site-header .mobile-menu-panel nav a { padding: 8px 12px; font-size: 14px; }
}
@media (max-width: 360px) {
  .top-bar.site-header .brand-mini { font-size: 19px; gap: 6px; }
  .top-bar.site-header .header-mark { width: 30px; height: 30px; }
  .top-bar.site-header .brand-caption { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .top-bar.site-header .btn-cta-try { transition: none; }
}
.top-bar.site-header .language-menu { display: block; position: relative; overflow: visible; padding: 0; background: transparent; border: 0; }
.top-bar.site-header .language-menu summary { display: flex; gap: 8px; align-items: center; padding: 9px 12px; min-height: 40px; color: #204a34; font-size: 13px; font-weight: 700; border: 1px solid #dce7df; border-radius: 9px; cursor: pointer; list-style: none; }
.top-bar.site-header .language-menu summary::-webkit-details-marker { display: none; }
.top-bar.site-header .language-menu nav { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: 200px; padding: 6px; background: #fff; border: 1px solid #dce7df; border-radius: 12px; box-shadow: 0 14px 36px #143b2926; }
.top-bar.site-header .language-menu nav a { display: flex; justify-content: space-between; padding: 10px; color: #204a34; border-radius: 6px; text-decoration: none; font-size: 14px; }
.top-bar.site-header .language-menu nav a:hover, .top-bar.site-header .language-menu nav a[aria-current] { background: #edf4ef; }
.top-bar.site-header .language-menu small { color: #718778; }
.top-bar.site-header .language-menu nav { max-height: min(65vh, 32rem); overflow-y: auto; overscroll-behavior: contain; }
.top-bar.site-header .language-menu nav a { align-items: center; gap: 10px; }
.top-bar.site-header .language-menu nav a > span { flex: 1; }
.top-bar.site-header svg.language-flag { width: 22px; height: 15px; border-radius: 2px; stroke: none; box-shadow: 0 0 0 1px #143b291a; }
.translation-notice { margin: 16px 0; padding: 14px 18px; border-left: 3px solid #d08b21; background: #fffae9; color: #6c4d22; font: 15px/1.6 var(--font-sans, sans-serif); }
.translation-notice a { color: inherit; margin-left: 8px; }
.translation-original-fragment { display: inline; padding: 0; border: 0; background: transparent; }
.translation-original-fragment::before { content: attr(data-label); display: inline; margin-right: .5em; color: #718679; font: 12px/1.4 var(--font-sans, sans-serif); }
@media (max-width: 640px) { .top-bar.site-header .language-menu { grid-column: 2; grid-row: 1; } .top-bar.site-header .language-menu summary { min-height: 38px; padding: 8px; } }
