:root{
  --primary:#22c55e;
  --secondary:#f97316;
  --background:#ffffff;
  --footer:#15803d;
  --text:#111827;
  --muted:#374151;
  --border:#000000;

  --font-sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji';
  --font-serif:'Merriweather', Georgia, 'Times New Roman', serif;

  --radius-sm:0px;
  --radius-md:4px;

  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --space-8:32px;
  --space-10:40px;
  --space-12:48px;
  --space-16:64px;
  --space-20:80px;
  --space-24:96px;

  --shadow-button:4px 4px 0 var(--border);
  --shadow-card:6px 6px 0 var(--border);
  --shadow-card-hover:8px 8px 0 var(--border);
}

*{box-sizing:border-box}
html{font-size:16px}
body{
  margin:0;
  font-family:var(--font-sans);
  color:var(--text);
  background:var(--background);
  line-height:1.6;
  letter-spacing:0.2px;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-sans);
  color:var(--text);
  line-height:1.25;
  margin:0 0 var(--space-4);
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2rem, 5vw, 3rem); font-weight:800}
h2{font-size:clamp(1.5rem, 3vw, 2rem); font-weight:800}
h3{font-size:clamp(1.25rem, 2.5vw, 1.5rem); font-weight:700}
h4{font-size:1.125rem; font-weight:700}
h5{font-size:1rem; font-weight:700}
h6{font-size:0.875rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em}

p{margin:0 0 var(--space-4); color:var(--text)}
small{font-size:0.875rem; color:var(--muted)}
a{color:var(--primary); text-decoration:none}
a:hover{text-decoration:underline}

.container{
  max-width:1200px;
  margin:0 auto;
  padding:0 var(--space-4);
}

.section{
  padding:var(--space-20) 0;
}
.section--alt{
  background:#f8fafc;
}
.section--alt-2{
  background:#f1f5f9;
}

.header{
  position:relative;
  background:var(--background);
  border-bottom:2px solid var(--border);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:var(--space-6) 0;
}
.brand{
  font-weight:800;
  font-size:1.25rem;
  color:var(--text);
  text-decoration:none;
  letter-spacing:-0.02em;
}
.nav{
  display:flex;
  gap:var(--space-6);
}
.nav a{
  color:var(--muted);
  font-weight:600;
}
.nav a:hover{color:var(--text)}

.burger{
  display:none;
  width:44px;height:44px;
  border:2px solid var(--border);
  background:#ffffff;
  color:var(--text);
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.burger:focus{outline:3px dashed var(--primary); outline-offset:2px}
@media (max-width: 768px){
  .nav{display:none}
  .nav.open{
    display:flex;
    position:absolute;
    top:100%;
    left:0;right:0;
    background:#ffffff;
    border-bottom:2px solid var(--border);
    padding:var(--space-4);
    gap:var(--space-4);
    flex-direction:column;
  }
  .burger{display:flex}
}

.hero{
  padding:var(--space-24) 0 var(--space-20);
  border-bottom:2px solid var(--border);
}
.kicker{
  display:inline-block;
  padding:4px 8px;
  border:2px solid var(--border);
  background:#ffffff;
  font-weight:700;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-size:0.75rem;
}
.hero h1{
  margin-top:var(--space-6);
}
.hero p.lead{
  font-size:1.125rem;
  color:var(--muted);
  margin-bottom:var(--space-8);
}

.btn-row{display:flex; flex-wrap:wrap; gap:var(--space-4)}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border:2px solid var(--border);
  border-radius:var(--radius-sm);
  font-weight:700;
  cursor:pointer;
  background:#ffffff;
  color:var(--text);
  transition:transform 0.15s ease;
}
.btn:hover{
  transform:translate(0, -1px);
}
.btn:focus{
  outline:3px dashed var(--primary);
  outline-offset:2px;
}
.btn-primary{
  background:var(--primary);
  color:#ffffff;
  box-shadow:var(--shadow-button);
}
.btn-primary:hover{
  box-shadow:6px 6px 0 var(--border);
}
.btn-secondary{
  background:var(--secondary);
  color:#ffffff;
  box-shadow:var(--shadow-button);
}
.btn-outline{
  background:#ffffff;
  color:var(--text);
  box-shadow:var(--shadow-button);
}

.grid{
  display:grid;
  gap:var(--space-6);
}
.grid-3{
  grid-template-columns:repeat(3, 1fr);
}
.grid-2{
  grid-template-columns:repeat(2, 1fr);
}
@media (max-width: 1024px){
  .grid-3{grid-template-columns:repeat(2, 1fr)}
}
@media (max-width: 640px){
  .grid-3,.grid-2{grid-template-columns:1fr}
}

.card{
  background:#ffffff;
  border:2px solid var(--border);
  border-radius:var(--radius-md);
  padding:var(--space-6);
  box-shadow:var(--shadow-card);
  transition:box-shadow 0.15s ease, transform 0.15s ease;
}
.card:hover{
  box-shadow:var(--shadow-card-hover);
  transform:translate(0,-2px);
}
.card h3{margin-bottom:var(--space-2)}
.card p{color:var(--muted)}

.icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px;height:48px;
  border:2px solid var(--border);
  background:#ffffff;
  border-radius:0;
  margin-bottom:var(--space-4);
}

.form{
  display:grid;
  gap:var(--space-4);
}
.form-group{
  display:grid;
  gap:6px;
}
.label{
  font-weight:700;
  color:var(--text);
}
.input,
.textarea,
.select{
  border:2px solid var(--border);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  background:#ffffff;
  color:var(--text);
  font:inherit;
}
.input:focus,
.textarea:focus,
.select:focus{
  outline:3px dashed var(--primary);
  outline-offset:2px;
}
.textarea{min-height:120px; resize:vertical}

.footer{
  background:var(--footer);
  color:#ffffff;
  border-top:2px solid var(--border);
  padding:var(--space-12) 0;
}
.footer a{color:#ffffff; text-decoration:underline}
.footer .grid{row-gap:var(--space-4)}

.copyright{
  margin-top:var(--space-8);
  padding-top:var(--space-6);
  border-top:2px solid #0f5e2e;
  color:#d1fae5;
  font-size:0.875rem;
}

.cta{
  border:2px solid var(--border);
  background:#ffffff;
  padding:var(--space-8);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-card);
}
.cta h2{margin-bottom:var(--space-3)}
.cta p{margin-bottom:var(--space-5)}

ul,ol{padding-left:1.25rem; margin:0 0 var(--space-4)}
li{margin-bottom:6px}

.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:2px solid var(--border);
  background:#ffffff;
}
.table th,
.table td{
  padding:12px 14px;
  border-bottom:2px solid var(--border);
  text-align:left;
}
.table th{
  background:#ffffff;
  font-weight:700;
}
.table tr:last-child td{border-bottom:none}

.badge{
  display:inline-block;
  border:2px solid var(--border);
  background:#ffffff;
  padding:4px 8px;
  font-size:0.75rem;
  font-weight:700;
  border-radius:var(--radius-sm);
}

.blockquote{
  border-left:4px solid var(--primary);
  padding-left:var(--space-4);
  margin:0 0 var(--space-4);
  font-style:italic;
  color:var(--text);
}

hr{
  border:none;
  border-top:2px solid var(--border);
  margin:var(--space-8) 0;
}

.kpi{
  display:grid; gap:var(--space-2); text-align:center;
  border:2px solid var(--border);
  border-radius:var(--radius-sm);
  background:#ffffff;
  padding:var(--space-5);
  box-shadow:var(--shadow-card);
}
.kpi strong{font-size:1.75rem}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important}
}

.visually-hidden{
  position:absolute !important;
  height:1px; width:1px;
  overflow:hidden;
  clip:rect(1px,1px,1px,1px);
  white-space:nowrap;
}

:focus-visible{
  outline:3px dashed var(--primary);
  outline-offset:2px;
}


/* Cookie Banner Additional Styles for Tailwind */
.cookie-banner-hover-effect:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
    .cookie-banner-hover-effect:hover {
        transform: none;
    }
}