/* Bavoneli — self-hosted fonts, base styles, responsive helpers, cookie banner, toast */

@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/fredoka-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}
@font-face {
  font-family: 'Fredoka';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('../fonts/fredoka-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/nunito-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122;
}
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/nunito-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F;
}

*{box-sizing:border-box;}
body{margin:0;background:oklch(98% 0.012 70);font-family:'Nunito',sans-serif;color:oklch(27% 0.03 40);}
a{color:oklch(55% 0.16 28);}
a:hover{color:oklch(45% 0.16 28);}
img{max-width:100%;display:block;}
input,textarea,select,button{font-family:'Nunito',sans-serif;}
button{cursor:pointer;}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid oklch(64% 0.12 195);
  outline-offset:2px;
}

@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes toastIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.toast{animation:toastIn .25s ease-out;}

.is-hidden{display:none !important;}

/* Cookie consent banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:oklch(27% 0.03 40);color:oklch(90% 0.01 60);
  padding:18px 24px;box-shadow:0 -8px 30px -10px oklch(20% 0.02 40 / 0.5);
  display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;
}
.cookie-banner.is-hidden{display:none;}
.cookie-banner__text{font-size:13px;line-height:1.6;max-width:640px;margin:0;}
.cookie-banner__text a{color:oklch(80% 0.1 28);}
.cookie-banner__actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-banner__actions button{
  border:none;padding:10px 20px;border-radius:999px;font-weight:700;font-size:13px;
}
.cookie-banner__accept{background:oklch(66% 0.16 28);color:#fff;}
.cookie-banner__reject{background:transparent;color:oklch(85% 0.01 60);border:1px solid oklch(50% 0.02 40) !important;}

/* Responsive grid collapse (desktop layout preserved via inline styles; these
   breakpoints override grid-template-columns only on narrow viewports) */
@media (max-width: 900px) {
  .grid-2, .grid-3, .grid-4, .footer-grid { grid-template-columns: 1fr !important; }
  .hero-grid { grid-template-columns: 1fr !important; }
  section { padding-left: 18px !important; padding-right: 18px !important; }
}
@media (max-width: 640px) {
  h1{font-size:32px !important;}
  .site-header .brand-name{font-size:19px !important;}
}

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.skip-link{
  position:absolute;left:-999px;top:0;background:oklch(66% 0.16 28);color:#fff;
  padding:10px 16px;border-radius:0 0 10px 0;z-index:999;font-weight:700;text-decoration:none;
}
.skip-link:focus{left:0;}
