:root{
  --primary:#1e40af;
  --primary-600:#1e3a8a;
  --primary-50:#eff6ff;
  --secondary:#059669;
  --secondary-600:#047857;
  --secondary-50:#ecfdf5;
  --bg:#ffffff;
  --footer-bg:#1f2937;
  --text:#0f172a;
  --muted:#475569;
  --button:#dc2626;
  --button-600:#b91c1c;
  --button-50:#fef2f2;
  --ring:rgba(30,64,175,.35);
  --shadow-sm:0 1px 2px rgba(0,0,0,.05);
  --shadow-md:0 4px 10px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.06);
  --shadow-lg:0 10px 25px rgba(0,0,0,.10),0 6px 12px rgba(0,0,0,.08);
  --radius:12px;
  --radius-sm:8px;
  --radius-lg:18px;
  --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;
  --max-w:1200px;
  --title-font:"Playfair Display",serif;
  --body-font:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Noto Sans","Liberation Sans",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--body-font);
  color:var(--text);
  background:var(--bg);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--ring);
}
.container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--space-6)}
.section{padding-block:var(--space-16)}
.section-tight{padding-block:var(--space-12)}
.section-loose{padding-block:var(--space-20)}
h1,h2,h3,h4,h5,h6{
  font-family:var(--title-font);
  line-height:1.25;
  letter-spacing:.01em;
  color:var(--text);
  margin:0 0 var(--space-4) 0;
}
h1{font-size:clamp(2rem,4vw,3rem);font-weight:700}
h2{font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700}
h3{font-size:clamp(1.375rem,2.25vw,1.75rem);font-weight:700}
.lead{font-size:1.125rem;color:var(--muted);max-width:65ch}
.muted{color:var(--muted)}
hr{border:none;border-top:1px solid #e2e8f0;margin-block:var(--space-8)}
.grid{display:grid;gap:var(--space-6)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:960px){
  .grid-2,.grid-3{grid-template-columns:1fr}
  .section{padding-block:var(--space-12)}
  .section-loose{padding-block:var(--space-16)}
}
.card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:var(--space-6);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}
.card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
  border-color:#dbeafe;
}
.badge{
  display:inline-block;
  font-size:.8125rem;
  font-weight:600;
  padding:.25rem .625rem;
  border-radius:9999px;
  background:var(--secondary-50);
  color:var(--secondary-600);
  border:1px solid rgba(5,150,105,.25);
}
.btn{
  --btn-bg:var(--button);
  --btn-bg-hover:var(--button-600);
  --btn-text:#fff;
  --btn-ring:var(--ring);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  font-weight:700;
  font-size:1rem;
  padding:.875rem 1.25rem;
  border-radius:9999px;
  border:none;
  background:var(--btn-bg);
  color:var(--btn-text);
  cursor:pointer;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
  box-shadow:0 2px 0 rgba(0,0,0,.05);
}
.btn:hover{background:var(--btn-bg-hover);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 6px var(--btn-ring)}
.btn-pill{padding:.75rem 1.25rem;border-radius:9999px}
.btn-outline{
  --btn-bg:#fff;
  --btn-text:var(--primary);
  border:1px solid #bfdbfe;
  box-shadow:none;
}
.btn-outline:hover{background:var(--primary-50)}
.link-underline{
  display:inline-block;
  color:var(--primary);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:4px;
}
.link-underline:hover{color:var(--primary-600)}
.input, .select, .textarea{
  width:100%;
  padding:.875rem 1rem;
  border-radius:var(--radius-sm);
  border:1px solid #cbd5e1;
  background:#fff;
  color:var(--text);
  font:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.input::placeholder, .textarea::placeholder{color:#94a3b8}
.input:focus, .select:focus, .textarea:focus{
  border-color:#bfdbfe;
  box-shadow:0 0 0 4px var(--ring);
  outline:none;
}
.checkbox, .radio{
  width:1.125rem;height:1.125rem;accent-color:var(--primary)
}
.form-row{display:grid;gap:var(--space-4)}
@media (min-width:768px){
  .form-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.form-help{font-size:.875rem;color:var(--muted);margin-top:.25rem}
.form-card{
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  padding:var(--space-6);
}
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:var(--radius);
  overflow:hidden;
}
.table th, .table td{
  text-align:left;
  padding:.875rem 1rem;
  border-bottom:1px solid #e2e8f0;
}
.table thead th{
  background:#f8fafc;
  color:#334155;
  font-weight:700;
}
.table tbody tr:hover{background:#f8fafc}
.tag{
  display:inline-flex;
  align-items:center;
  padding:.25rem .625rem;
  border-radius:9999px;
  font-size:.8125rem;
  font-weight:600;
  border:1px solid rgba(30,64,175,.15);
  color:var(--primary-600);
  background:var(--primary-50);
}
blockquote{
  margin:0;
  padding:var(--space-6);
  border-left:4px solid var(--primary);
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}
blockquote p{font-size:1.125rem;color:var(--muted)}
header, footer, nav{font-family:var(--body-font)}
.header{
  background:var(--bg);
  border-bottom:1px solid #e2e8f0;
  position:sticky;top:0;z-index:50
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-4)}
.brand{font-weight:800;font-size:1.125rem;color:var(--text);text-decoration:none}
.nav{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}
.nav a{color:var(--text);text-decoration:none;font-weight:600}
.nav a:hover{color:var(--primary)}
.footer{
  background:var(--footer-bg);
  color:#e5e7eb;
  padding-block:var(--space-12);
}
.footer a{color:#e5e7eb;text-decoration:underline}
.footer a:hover{color:#ffffff}
.kicker{
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  font-weight:800;
  color:var(--secondary-600);
  background:var(--secondary-50);
  display:inline-block;
  padding:.375rem .625rem;
  border-radius:9999px;
  border:1px solid rgba(5,150,105,.25);
  margin-bottom:var(--space-3);
}
.hero{
  display:grid;
  gap:var(--space-8);
  align-items:center;
}
@media (min-width:960px){
  .hero{grid-template-columns:1.15fr .85fr;gap:var(--space-12)}
}
.hero-illustration{
  background:linear-gradient(180deg,#ffffff, #f8fafc);
  border:1px solid #e2e8f0;
  border-radius:var(--radius-lg);
  padding:var(--space-8);
  box-shadow:var(--shadow-lg);
}
.section-alt{
  background:#f8fafc;
  border-block:1px solid #e2e8f0;
}
.chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.5rem .75rem;border-radius:9999px;
  background:#f1f5f9;border:1px solid #e2e8f0;color:#334155;font-weight:600
}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0
}
.section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8)}
.section-title h2{margin:0}
@media (max-width:640px){
  .section-title{flex-direction:column;align-items:flex-start}
}
.center{text-align:center}
.divider{height:1px;background:#e2e8f0;margin-block:var(--space-8)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
}


/* 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;
    }
}