:root{
  --bg:#f7f9fb;
  --ink:#1b1b1b;
  --muted:#6a6a6a;
  --accent:#5aa7a7;
  --accent-soft:#e8f3f3;
  --focus:#005fcc;
  --shadow-soft:0 25px 50px rgba(0,0,0,.08);
  --shadow-strong:0 30px 60px rgba(0,0,0,.08);
  --radius-xl:28px;
  --a11y-scale:1;
}

html{
  font-size:calc(100% * var(--a11y-scale));
  scroll-behavior:smooth;
}

body{
  font-family:Manrope,system-ui,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.75;
}

h1,h2,h3,h5{
  font-weight:600;
  letter-spacing:-0.01em;
}

p{
  max-width:75ch;
}

a{
  text-underline-offset:.18em;
}

.skip-link{
  position:absolute;
  left:-999px;
  top:12px;
  background:#000;
  color:#fff;
  padding:8px 12px;
  z-index:10001;
  border-radius:10px;
}

.skip-link:focus{
  left:12px;
}

:focus-visible{
  outline:3px solid var(--focus);
  outline-offset:3px;
}

[id]{
  scroll-margin-top:140px;
}

/* ===============================
   NAVBAR
=============================== */
.navbar{
  background:rgba(247,249,251,.92);
  backdrop-filter:blur(10px);
  transition:all .35s ease;
  font-size:18px;
  padding-top:1.1rem;
  padding-bottom:1.1rem;
}

.navbar.scrolled{
  background:#fff;
  box-shadow:0 14px 40px rgba(0,0,0,.12);
}

.navbar-inner{
  max-width:1500px;
  margin:0 auto;
  padding-left:1rem;
  padding-right:1rem;
}

.navbar .navbar-nav{
  align-items:center;
}

.navbar .nav-link{
  font-weight:500;
  color:var(--ink);
  padding:8px 16px;
  border-radius:22px;
  line-height:1;
  transition:background .25s ease,color .25s ease,transform .25s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link.active,
.navbar .nav-link[aria-current="page"]{
  background:var(--accent-soft);
  color:var(--accent);
  transform:translateY(-1px);
}

.navbar-brand{
  margin-right:3.5rem;
}

.logo-img{
  height:64px;
  width:auto;
  display:block;
}

.privacy-page .logo-img{
  height:52px;
}

.dropdown-menu{
  border:none;
  border-radius:16px;
  box-shadow:0 25px 50px rgba(0,0,0,.15);
}

.navbar-toggler{
  border:none;
  padding:.35rem .65rem;
  border-radius:16px;
}

.navbar-toggler:focus{
  box-shadow:none;
}

.navbar-toggler-icon{
  width:1.25em;
  height:1.25em;
}

/* ===============================
   HEROES
=============================== */
.hero{
  text-align:center;
  background:linear-gradient(180deg,var(--bg),var(--accent-soft));
}

.home-page .hero-cover{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:
    linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),
    url('img/image.png') center/cover no-repeat;
}

.home-page .hero-cover-content{
  color:#fff;
  max-width:900px;
  padding:0 24px;
  text-align:center;
}

.home-page .hero-cover h1{
  font-size:clamp(2.2rem, 4.8vw, 3.4rem);
  line-height:1.15;
  margin-bottom:24px;
}

.home-page .hero-cover p{
  max-width:720px;
  margin:0 auto;
  font-size:1.05rem;
  opacity:.95;
}

.home-page .hero-cover-divider{
  width:90px;
  height:3px;
  background:#fff;
  margin:26px auto;
}

.content-page .hero{
  padding:140px 0 90px;
}

.content-page .hero p{
  font-size:1.1rem;
  color:var(--muted);
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}

.accessibility-page .hero{
  padding:150px 0 90px;
}

.accessibility-page .hero h1{
  font-size:clamp(2rem,4vw,2.8rem);
}

/* ===============================
   SECTIONS
=============================== */
.home-page .section{
  padding:120px 0;
}

.content-page .section{
  padding:100px 0;
}

.accessibility-page .section{
  padding:90px 0;
}

.home-page .section.soft{
  background:linear-gradient(180deg,var(--bg),var(--accent-soft));
}

.home-page .section h2::after{
  content:'';
  display:block;
  width:60px;
  height:3px;
  background:var(--accent);
  margin:18px auto 0;
}

.content-page .section h2{
  margin-top:70px;
}

.content-page .section h2:first-child{
  margin-top:0;
}

/* ===============================
   CARDS & PANELS
=============================== */
.card,
.content-card,
.card-soft,
.contact-card{
  background:#fff;
  border-radius:var(--radius-xl);
}

.card,
.content-card{
  padding:60px;
  box-shadow:var(--shadow-strong);
}

.card-soft{
  padding:44px;
  box-shadow:var(--shadow-soft);
  height:100%;
  text-align:center;
  transition:transform .35s ease, box-shadow .35s ease;
}

.card-soft:hover{
  transform:translateY(-6px);
  box-shadow:0 35px 70px rgba(0,0,0,.12);
}

.card-soft h5{
  margin-top:18px;
  margin-bottom:12px;
}

.content-card ul,
.card ul{
  padding-left:1.2rem;
}

.content-card li,
.card li{
  margin-bottom:10px;
}

.icon-circle{
  width:56px;
  height:56px;
  border-radius:50%;
  background:linear-gradient(135deg,var(--accent),#7cc7c7);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  margin:0 auto 14px;
  transition:transform .35s ease;
}

.card-soft:hover .icon-circle{
  transform:scale(1.05);
}

/* ===============================
   CONTACT
=============================== */
.contact-card{
  padding:46px;
  box-shadow:0 25px 50px rgba(0,0,0,.1);
}

.contact-card h4{
  font-weight:600;
}

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

.contact-list li{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 0;
  border-bottom:1px solid #eee;
}

.contact-list li:last-child{
  border-bottom:none;
}

.contact-list i{
  font-size:1.2rem;
  color:var(--accent);
  min-width:22px;
}

.socials a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:1.3rem;
  transition:.3s ease;
  text-decoration:none;
}

.socials a:hover{
  background:var(--accent);
  color:#fff;
  transform:translateY(-3px);
}

.map-wrap{
  border-radius:var(--radius-xl);
  overflow:hidden;
  min-height:100%;
  box-shadow:var(--shadow-soft);
}

/* ===============================
   BUTTONS & TEXT
=============================== */
.btn-outline-dark{
  border-radius:30px;
  padding:8px 22px;
  font-weight:500;
  transition:background .25s ease,color .25s ease,transform .25s ease,border-color .25s ease;
}

.btn-outline-dark:hover{
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  transform:translateY(-2px);
}

.brand-text{
  font-weight:700;
  line-height:1.1;
  color:var(--ink);
}

.brand-text small{
  display:block;
  font-weight:500;
  font-size:.75rem;
  color:var(--muted);
  letter-spacing:.02em;
}

/* ===============================
   FOOTER
=============================== */
footer{
  background:#1b1b1b;
  color:#bbb;
  display:flex;
  justify-content:center;
  text-align:center;
}

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

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

.footer-inner{
  max-width:1200px;
  margin:0 auto;
  text-align:center;
}

.footer-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  flex-wrap:wrap;
}

/* ===============================
   ACCESSIBILITY PANEL
=============================== */
.a11y-toggle{
  position:fixed;
  right:16px;
  bottom:16px;
  z-index:9999;
  width:48px;
  height:48px;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.5rem;
  background:#000;
  color:#fff;
  border:none;
  border-radius:999px;
  cursor:pointer;
  box-shadow:0 10px 25px rgba(0,0,0,.16);
}

.a11y-toggle i{
  line-height:1;
}

.a11y-panel{
  position:fixed;
  right:16px;
  bottom:72px;
  width:260px;
  background:#fff;
  border-radius:16px;
  padding:12px;
  box-shadow:0 20px 40px rgba(0,0,0,.2);
  z-index:9999;
}

.a11y-panel hr{
  margin:10px 0;
}

.a11y-option{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  padding:8px 10px;
  font-size:14px;
  cursor:pointer;
  border-radius:8px;
  color:var(--ink);
}

.a11y-option:hover{
  background:var(--accent-soft);
}

.a11y-reset{
  font-weight:600;
}

body.a11y-contrast{
  background:#000 !important;
  color:#fff !important;
}

body.a11y-contrast .navbar,
body.a11y-contrast .a11y-panel{
  background:#000 !important;
  color:#fff !important;
  backdrop-filter:none !important;
}

body.a11y-contrast .card,
body.a11y-contrast .card-soft,
body.a11y-contrast .contact-card,
body.a11y-contrast .content-card,
body.a11y-contrast .map-wrap{
  background:#000 !important;
  color:#fff !important;
  border:2px solid #fff !important;
  box-shadow:none !important;
}

body.a11y-contrast .nav-link,
body.a11y-contrast .a11y-option,
body.a11y-contrast footer,
body.a11y-contrast .contact-list i,
body.a11y-contrast .hero p,
body.a11y-contrast .text-muted,
body.a11y-contrast .brand-text,
body.a11y-contrast .brand-text small{
  color:#fff !important;
}

body.a11y-contrast .icon-circle{
  background:#fff !important;
  color:#000 !important;
}

body.a11y-contrast .a11y-toggle,
body.a11y-contrast .btn-outline-dark,
body.a11y-contrast .socials a{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
}

body.a11y-contrast a{
  color:#fff !important;
  text-decoration:underline;
}

body.a11y-invert{
  filter:invert(1) hue-rotate(180deg);
}

body.a11y-grayscale{
  filter:grayscale(1);
}

body.a11y-underline a{
  text-decoration:underline !important;
}

body.a11y-reduce-motion *,
body.a11y-reduce-motion *::before,
body.a11y-reduce-motion *::after{
  animation:none !important;
  transition:none !important;
  scroll-behavior:auto !important;
}

/* ===============================
   RESPONSIVE
=============================== */
@media (max-width: 991.98px){
  .navbar-brand{
    margin-right:0;
  }

  .navbar .navbar-nav{
    align-items:flex-start;
    gap:.5rem;
    padding-top:1rem;
  }

  .home-page .hero-cover{
    min-height:82vh;
    padding-top:120px;
  }

  .home-page .section,
  .content-page .section,
  .accessibility-page .section{
    padding:80px 0;
  }

  .card,
  .content-card,
  .card-soft,
  .contact-card{
    padding:34px;
  }
}

@media (max-width: 767.98px){
  .logo-img{
    height:56px;
  }

  .privacy-page .logo-img{
    height:50px;
  }

  .home-page .hero-cover h1{
    font-size:clamp(2rem, 8vw, 2.7rem);
  }

  .contact-list li{
    align-items:flex-start;
  }

  .footer-links{
    gap:.35rem;
  }
}

@media (max-width: 480px){
  .card,
  .content-card,
  .card-soft,
  .contact-card{
    padding:26px;
  }

  .a11y-panel{
    width:min(260px, calc(100vw - 32px));
  }
}



/* ===============================
   ACTIONS PAGE
=============================== */
.actions-feature-card{
  padding:56px;
}

.actions-feature-points{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin-top:20px;
}

.actions-feature-points span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--ink);
  font-weight:500;
}

.actions-download-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:28px;
  border-radius:24px;
  background:linear-gradient(180deg,var(--bg),var(--accent-soft));
}

.actions-note{
  padding:24px 28px;
  border-radius:24px;
  background:var(--accent-soft);
}

.draseis-page .card-soft{
  text-align:left;
}

.draseis-page .card-soft .icon-circle{
  margin:0 0 14px;
}

@media (max-width: 991.98px){
  .actions-download-box{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width: 767.98px){
  .actions-feature-card,
  .card,
  .content-card,
  .contact-card{
    padding:28px;
  }

  .actions-feature-points span{
    width:100%;
  }
}
