/* Общие стили */
* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {

  utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2246%22%20viewBox%3D%220%200%2040%2046%22%3E%0A%20%20%3Cdefs%3E%0A%20%20%20%20%3Cpattern%20id%3D%22hex%22%20width%3D%2240%22%20height%3D%2246%22%20patternUnits%3D%22userSpaceOnUse%22%3E%0A%20%20%20%20%20%20%3Cpath%20d%3D%22M10%203.464L20%200l10%203.464%2010%206.928v13.856L30%2034.614%2020%2038.078%2010%2034.614%200%2024.248V10.392z%22%20fill%3D%22none%22%20stroke%3D%22#9aa5b1%22%20stroke-width%3D%220.5%22%20opacity%3D%220.15%22/%3E%0A%20%20%20%20%3C/pattern%3E%0A%20%20%3C/defs%3E%0A%20%20%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22url%28#hex%29%22%20/%3E%0A%3C/svg%3E');



  margin: 0;
  padding: 0;
  font-family: 'Inter', sans-serif;
  line-height: 1.7;
  color: #1f2937;

}

/* Заголовок */
header {
  padding: 1.5rem;
  background: rgba(245,245,220,.9);
  backdrop-filter: blur(8px);
  text-align: center;
  border-bottom: 1px solid #0000000d;
}

header h1 {
  font-size: 2.6rem;
  font-weight: 700;
  margin-bottom: 0.4rem;
}

header p {
  font-size: 1.1rem;
  color: #334155;
}

/* Основное содержимое */
main {
  background: #ffffffd9;
  border-radius: 12px;
  padding: 2.5rem;
  margin: 2rem auto;
  box-shadow: 0 8px 24px #0000001a;
  max-width: 1200px;
}

section {
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e5e7eb;
}

section h2 {
  font-size: 2.1rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #1f2937;
  transition: color 0.3s ease-in-out;
}

section h2:hover {
  color: #1d4ed8;
}

ul {
  list-style: disc;
  margin-left: 1.5rem;
  font-size: 1.15rem;
  color: #374151;
  line-height: 1.6;
}

ul li {
  margin-bottom: 0.6rem;
}

/* Блог-посты */
.blog-entry {
  margin-bottom: 1.5rem;
}

.blog-entry h3 {
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.blog-entry p {
  font-size: 1.05rem;
  color: #475569;
}

/* Контактная форма */
#contact-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 400px;
  margin: 2rem auto;
}

#contact-form input,
#contact-form textarea {
  padding: 0.5rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 1rem;
  background: #ffffffe6;
}

#contact-form textarea {
  min-height: 100px;
  resize: vertical;
}

#contact-form button {
  background: #000;
  color: #fff;
  border: 1px solid #000;
  padding: 0.5rem 1.2rem;
  font-size: 1rem;
  border-radius: 999px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.3s ease, color 0.3s ease;
}

#contact-form button:hover {
  background: #fff;
  color: #000;
}

/* Футер */
footer {
  padding: 1rem;
  text-align: center;
  background: #ffffffd9;
  backdrop-filter: blur(6px);
  font-size: 0.9rem;
  color: #4b5563;
  margin-top: 2rem;
}

footer a {
  color: #2563eb;
  text-decoration: none;
}

footer a:hover {
  text-decoration: underline;
}

/* Security Footer */
.security-footer {
  margin-top: 1rem;
  padding: 0.5rem 1rem;
  background: #f0f2f5;
  text-align: center;
  font-size: 0.9rem;
  color: #333;
  border-top: 1px solid #ddd;
}

.security-footer a {
  color: #005da0;
  text-decoration: none;
  margin: 0 0.25rem;
}

.security-footer a:hover {
  text-decoration: underline;
}

/* (old .lang-switcher styles removed in favor of /assets/lang-switcher.css) */
/* Анимации */
.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

.fade-in.visible {
  opacity: 1;
  transform: none;
}

/* Стили для страниц видеореzюme */
.video-page {
  background: #000;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
}

.video-page video {
  width: 100%;
  height: auto;
  max-height: 100vh;
}

.video-page .Back-button {
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.video-page .Back-button a {
  color: #fff;
  background: #00000099;
  padding: 0.5rem 1rem;
  border-radius: 5px;
  text-decoration: none;
}

/* Адаптивные стили */
@media (max-width: 768px) {
  body {
    padding: 1rem;
    background-size: auto;
    font-size: 1rem;
  }

  header h1 {
    font-size: 1.8rem;
    word-break: break-word;
    line-height: 1.3;
  }

  header p {
    font-size: 1rem;
    line-height: 1.5;
  }

  main {
    padding: 1rem;
    margin: 1rem auto;
    width: 95%;
    max-width: 95%;
  }

  section h2 {
    font-size: 1.4rem;
    line-height: 1.4;
  }

  ul {
    font-size: 1rem;
    margin-left: 1rem;
    padding-left: 1.2rem;
    line-height: 1.5;
  }

  .blog-entry h3 {
    font-size: 1.2rem;
  }

  .blog-entry p {
    font-size: 1rem;
  }
}

@media (max-width: 600px) {
.lang-switcher a {
    font-size: 0.85rem;
  }
}

@media (max-width: 480px) {
}
/* Contact card styling added */
.contact-card {
  border:1px solid #e5e7eb;
  padding:2rem;
  border-radius:1rem;
  background:#fff;
  max-width:600px;
  margin:2rem auto;
}
.contact-card form{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.contact-card input,
.contact-card textarea{
  width:100%;
  padding:0.75rem 1rem;
  border:1px solid #d1d5db;
  border-radius:0.5rem;
  font-size:1rem;
  box-sizing:border-box;
}
.contact-card button{
  width:100%;
  background:#000;
  color:#fff;
  border:none;
  padding:0.75rem 1rem;
  border-radius:999px;
  font-size:1rem;
  cursor:pointer;
}
.contact-card button:hover{
  background:#fff;
  color:#000;
  border:1px solid #000;
}


/* ---- Reusable components for CTA (minimal) ---- */
.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.btn{background:#000;color:#fff;border:1px solid #000;padding:.6rem 1rem;border-radius:999px;cursor:pointer;text-decoration:none;display:inline-block}
.btn:hover{background:#fff;color:#000}
.muted{color:#6b7280}
.floating-cta{position:fixed;right:1rem;bottom:1rem;z-index:50}
.floating-cta .cta-inner{display:flex;gap:.75rem;align-items:center;padding:.75rem}
.floating-cta .cta-icon{width:32px;height:32px;border-radius:8px;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.floating-cta .close{border:none;background:transparent;cursor:pointer;font-size:1rem;opacity:.6;line-height:1}
.floating-cta .close:hover{opacity:1}
@media (max-width:640px){.floating-cta{left:.75rem;right:.75rem}}

/* --- PATCH: better mobile scaling for floating CTA (DE/EN) --- */
.floating-cta .cta-inner{flex-wrap:wrap;}
@media (max-width:640px){
  .floating-cta{left:.75rem;right:.75rem;} /* keep full width on mobile */
  .floating-cta .cta-inner{align-items:flex-start;}
  .floating-cta .btn{flex:1 1 100%;text-align:center;}
}
/* --- END PATCH --- */

/* === Fix: responsive KPI cards === */
.kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.75rem;
  align-items: start;
}

.kpi {
  display: flex;
  flex-direction: column;
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
  box-sizing: border-box;
}

.kpi ul { margin: 0.25rem 0 0; padding-left: 1.25rem; }
.kpi li { margin: 0.35rem 0; }

.kpi, .kpi a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 640px) {
  .kpis { grid-template-columns: 1fr; }
}

/* === Security Check responsive card fixes === */
.kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 0.75rem;
  align-items: start;
}
.kpi {
  display: flex;
  flex-direction: column;
  height: auto !important;
  min-height: 0;
  overflow: visible !important;
  box-sizing: border-box;
}
.kpi ul { margin: 0.25rem 0 0; padding-left: 1.25rem; }
.kpi li { margin: 0.35rem 0; }
.kpi, .kpi a { overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 640px) { .kpis { grid-template-columns: 1fr; } }


/* Improve tap targets for mobile (SEO) */
@media (prefers-reduced-motion: reduce) {
  .fade-in { animation: none !important; opacity: 1 !important; }
}


/* Visually hidden (for accessible labels) */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 1px, 1px); white-space: nowrap; border: 0;
}


/* Lightweight honeycomb background (tileable SVG) */
body{
  background-color:#f8fafc;
  background-image:url(/assets/honeycomb.svg);
  background-repeat:repeat;
  background-size:48px 56px;
  background-attachment:scroll;
}

/* Optional: enable parallax-like fixed background on large screens only */
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  body{ background-attachment: fixed; }
}


/* Honeycomb background with absolute path + inline fallback */
body{
  background-color:#F1EEEB;
  background-image:url('/assets/honeycomb.svg'), url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http://www.w3.org/2000/svg%22%20width%3D%2248%22%20height%3D%2256%22%20viewBox%3D%220%200%2048%2056%22%3E%0A%20%20%3Cdefs%3E%3Cpattern%20id%3D%22h%22%20width%3D%2248%22%20height%3D%2256%22%20patternUnits%3D%22userSpaceOnUse%22%3E%0A%20%20%20%20%3Cpolygon%20points%3D%2212,0%2036,0%2048,14%2036,28%2012,28%200,14%22%20fill%3D%22none%22%20stroke%3D%22#0f172a%22%20stroke-width%3D%221%22%20opacity%3D%220.08%22/%3E%0A%20%20%3C/pattern%3E%3C/defs%3E%0A%20%20%3Crect%20width%3D%22100%%22%20height%3D%22100%%22%20fill%3D%22url%28#h%29%22/%3E%0A%3C/svg%3E');
  background-repeat:repeat;
  background-size:48px 56px, 48px 56px;
  background-attachment:scroll;
}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){
  body{ background-attachment: fixed; }
}

/* Accessibility & focus improvements */
:focus-visible {
  outline: 3px solid #1d4ed8;
  outline-offset: 3px;
  border-radius: 6px;
}

/* Ensure links are distinguishable */
a {
  text-underline-offset: 2px;
}
a:hover {
  text-decoration-thickness: 2px;
}


/* Navigation block for Blog link */
.site-nav {
  display: inline-block;
  margin-left: 1rem;
}
.site-nav a {
  font-size: 0.95rem;
  color: #333;
  text-decoration: none;
  padding: 0.2rem 0.4rem;
  border-radius: 6px;
  transition: background-color 0.2s ease;
}
.site-nav a:hover {
  background-color: rgba(0,0,0,0.05);
}

/* --- Blog topbar & Allschwil badge polish --- */
.topbar .home-link { text-decoration:none; color:#1f2937; padding:.25rem .5rem; border-radius:8px; }
.allschwil-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  background:#0f172a; color:#fff; border:2px solid #2563eb;
  border-radius:12px; padding:.25rem .5rem; text-decoration:none;
}
.allschwil-badge:hover { filter:brightness(1.05); }
.allschwil-badge img, .allschwil-badge svg { height:18px; width:18px; display:block; }
.badge-row { display:flex; align-items:center; gap:.6rem; margin-top: .75rem; }

/* Allschwil shield sizing */
.allschwil-badge img[src$="allschwil-shield.svg"],
.allschwil-badge img[src$="allschwil-shield-compact.svg"] {
  height: 20px;
  width: auto;
}

/* Footer badges layout */
.footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  align-items: center;
  margin-top: 1rem;
}
.footer-badges .badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: #0f172a;
  padding: 0.2rem 0.6rem;
  border-radius: 0.6rem;
  color: #f8fafc;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
}
.footer-badges .badge img {
  height: 16px;
  width: auto;
}
.footer-badges .badge:hover {
  background: #1e293b;
}

/* --- Allschwil COA mini + centered layout --- */
.badge-row {
  display:flex;
  align-items:center;
  justify-content:center;   /* center the row */
  gap:.6rem;
  margin-top:.75rem;
  flex-wrap:wrap;
  text-align:center;
}
.allschwil-badge {
  display:inline-flex; align-items:center; gap:.4rem;
  background:#0f172a; color:#fff; border:2px solid #2563eb;
  border-radius:12px; padding:.2rem .5rem; text-decoration:none;
  font-weight:600;
}
.allschwil-badge img { height:16px; width:auto; display:block; }
.badge-row .badge-caption { opacity:.75; }

/* --- Allschwil directory link (single, compact) --- */
.allschwil-link {
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.25rem .6rem;border-radius:999px;
  background:#0f172a;color:#fff;border:2px solid #2563eb;
  text-decoration:none;font-weight:600;line-height:1;
}
.allschwil-link img{height:18px;width:auto;display:block}
.footer-badges{display:flex;justify-content:center;gap:1rem;align-items:center;flex-wrap:wrap;margin:.75rem 0}

/* --- Partner badges row (Allschwil + AGV) --- */
.partner-badges{display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0}
.partner-badges a{display:inline-flex;align-items:center;gap:.45rem;background:#0f172a;color:#fff;border:2px solid #2563eb;border-radius:12px;padding:.25rem .6rem;text-decoration:none;font-weight:600;line-height:1}
.partner-badges a img {
  height: 22px;
  width: auto;
  display: block;
}

/* --- Partner badges (light style) --- */
.partner-badges{
  display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.75rem 0
}
.partner-badges a{
  display:inline-flex;align-items:center;gap:.5rem;
  background:#ffffff;border:1px solid rgba(0,0,0,.12);
  color:#111827;border-radius:999px;padding:.35rem .7rem;
  text-decoration:none;font-weight:600;line-height:1
}
.partner-badges a:hover{box-shadow:0 1px 4px rgba(0,0,0,.08)}
.partner-badges a img {
  height: 22px;
  width: auto;
  display: block;
}

/* Official partner icons sizing */
.partner-badges a img
.partner-badges a img.badge-round { height:20px; width:auto; display:block }

.partner-badges a img
.partner-badges a img.badge-round{height:20px;width:auto;display:block}


/* --- Blog polish: lang switch & dates --- */
.post-list { list-style: none; padding-left: 0; }
.post-list li { margin: .5rem 0; }
.post-list .meta { margin-left: .5rem; color: #6b7280; white-space: nowrap; }
/* --- Site header simple nav --- */
.main-nav {
  display:flex; gap:1rem; align-items:center; justify-content:center;
  margin: .75rem auto; padding: 0 .5rem;
}
.main-nav a { text-decoration: none; color: #1f2937; padding: .25rem .5rem; border-radius: 8px; }
.main-nav a:hover { background: rgba(0,0,0,.05); }



/* Blog polish */
/* Post list: keep date off the title */
.post-list { list-style:none; padding-left:0; }
.post-list li { margin:.5rem 0; }
.post-list .meta { margin-left:.5rem; color:#6b7280; white-space:nowrap; }



/* --- Responsive header nav --- */
.main-nav.responsive { display:flex; justify-content:center; margin:.5rem auto; }
.nav-toggle {
  appearance:none; border:1px solid rgba(0,0,0,.15); background:#fff; color:#111827;
  padding:.4rem .75rem; border-radius:10px; font-weight:600; cursor:pointer;
  box-shadow:0 1px 4px rgba(0,0,0,.06);
}
.nav-panel { display:flex; gap:.75rem; flex-wrap:wrap; justify-content:center; margin-top:.5rem; }
.nav-panel a { text-decoration:none; color:#1f2937; padding:.25rem .5rem; border-radius:8px; }
.nav-panel a:hover { background:rgba(0,0,0,.05); }

/* Desktop: show links inline, hide button */
@media (min-width: 900px){
  .nav-toggle { display:none; }
  .nav-panel { display:flex !important; }
  .nav-panel[hidden] { display:flex !important; } /* ensure visible on desktop */
}

/* Mobile: panel collapses under the button */
@media (max-width: 899px){
  .nav-panel[hidden]{ display:none; }
}

/* Ensure lang-switch doesn't overlap content on small screens */
/* --- Readable responsive menu polish --- */
.main-nav.responsive{position:relative; z-index:5; margin-top:.5rem}
.nav-panel{background:#fff; border:1px solid rgba(0,0,0,.12); border-radius:12px; padding:.5rem .75rem;
  box-shadow:0 6px 20px rgba(0,0,0,.08); gap:1rem}
.nav-panel a{font-weight:600}
@media (max-width:899px){
  .nav-panel{flex-direction:column; align-items:stretch; margin-top:.5rem}
  .nav-panel a{padding:.5rem .75rem}
}



/* Page container */
.container{
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  width: 100%;
}

/* Blog list layout */
.post-list li{ display:flex; align-items: baseline; gap:.4rem; flex-wrap:wrap; }
.post-list li a{ flex: 1 1 auto; }
.post-list li .meta{ flex: 0 0 auto; }


/* --- Mobile polish --- */
@media (max-width: 720px){
  .floating-cta{ display: none; } /* avoid overlay and layout shift on mobile */
  .contact-card{ padding: 1.25rem; }
  .contact-card .btn{ width: 100%; text-align:center; }
}
.small-note{ color:#6b7280; margin: .5rem 0 0; }
.small-note a{ text-decoration: underline; }



/* Blog index: switcher identical to Security-Check */
.blog-index .lang-switcher a,
.blog-index .lang-switcher a.active { text-decoration: underline; }
.blog-index .Back { margin: 0.5rem 0 0.5rem; }
.blog-index .Back a,
.blog-index .Back a:visited { color:#000; text-decoration:none; }

/* Blog posts: ensure Back link is clean */
.blog .Back { margin: 0.5rem 0 0.5rem; }
.blog .Back a, .blog .Back a:visited { color:#000; text-decoration:none; }


/* Accessibility helpers */
.hidden { display: none !important; }
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 1px, 1px);
  white-space: nowrap; border: 0;
}
.thank-message { font-weight: 600; }
.thank-message:focus { outline: 2px solid; outline-offset: 4px; }

/* Form validation */
.field-error { font-size: 0.95rem; margin-top: 6px; }
.input-error { border: 2px solid; }

/* Required field marker (if labels are visible) */
label[for="name"]:after,
label[for="email"]:after,
label[for="message"]:after { content: ""; }
label.required:after { content: " *"; }

/* Language switcher: CSS-only active highlighting (Cloudflare CSP-safe) */
.lang-switcher a.active { text-decoration: underline; font-weight: 700; }

/* Auto-activate by filename suffix + <html lang> */
/* Current route highlighting */
nav a.current, .nav a.current, header a.current, .menu a.current {
  text-decoration: underline;
  font-weight: 700;
}


/* Ensure skip-link is only visible on focus */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;padding:8px 12px;background:#fff;border:2px solid #111;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.2);z-index:10000}


/* --- Outdoor gallery protections --- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;list-style:none;padding:0;margin:0 0 1.5rem}


/* Ensure caption always visible above the shield link */
.card .shield{z-index:1}
.card .caption{z-index:2; pointer-events:none}

.card{position:relative;border:1px solid rgba(2,6,23,.08);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 1px 2px rgba(2,6,23,.04)}
.card picture,.card img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.card img{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;pointer-events:none}
.card .shield{position:absolute;inset:0;display:block;background:transparent;text-indent:-9999px;cursor:zoom-in}
.caption{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.45);color:#fff;padding:.25rem .5rem;border-radius:8px;font-size:.85rem}
@media print{.card img{filter:blur(12px) contrast(.6)}}

/* --- Outdoor CTA buttons --- */
.cta-row{display:flex;flex-wrap:wrap;gap:.6rem;margin:.5rem 0 1rem;align-items:center}
.btn.with-icon{display:inline-flex;align-items:center;gap:.5rem}
.btn-ghost{background:#fff;color:#111;border:1px solid #e5e7eb}
.btn-ghost:hover{background:#111;color:#fff;border-color:#111}
@media (max-width:640px){ .hide-sm{display:none} }


/* UACH shield sizing */






.partner-badges a img




@media (max-width: 640px){
  
}


@media (max-width: 640px){
  
}

.partner-badges a img.badge-flag-ua { height: 28px !important; width: auto !important; }
@media (max-width: 640px){ .partner-badges a img.badge-flag-ua { height: 26px !important; } }
