:root{
  --color-primary:#1e40af;
  --color-secondary:#dc2626;
  --color-bg:#ffffff;
  --color-footer-bg:#1f2937;
  --color-button:#1e40af;
  --color-section-1:#f8fafc;
  --color-section-2:#ffffff;
  --color-section-3:#f1f5f9;
  --color-text:#0f172a;
  --color-muted:#475569;
  --color-border:#e2e8f0;
  --color-card:#ffffff;
  --shadow-sm:0 1px 2px rgba(15,23,42,.06),0 1px 1px rgba(15,23,42,.04);
  --shadow-md:0 4px 8px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.06);
  --shadow-lg:0 12px 24px rgba(15,23,42,.12),0 6px 12px rgba(15,23,42,.08);
  --radius-sm:6px;
  --radius-md:12px;
  --radius-pill:9999px;
  --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;
  --font-serif:'Playfair Display',serif;
  --font-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
}

html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-sans);
  line-height:1.7;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

h1,h2,h3{font-family:var(--font-serif);color:var(--color-text);letter-spacing:.2px;line-height:1.25;margin-top:0;margin-bottom:var(--space-4)}
h1{font-size:clamp(2rem,3.5vw + 1rem,3.25rem)}
h2{font-size:clamp(1.5rem,1.5vw + 1rem,2.25rem)}
h3{font-size:clamp(1.25rem,1vw + .8rem,1.5rem)}
h4,h5,h6{font-family:var(--font-serif);line-height:1.3;color:var(--color-text);margin:0 0 var(--space-3)}
h4{font-size:1.125rem}
h5{font-size:1rem}
h6{font-size:.925rem}

p{margin:0 0 var(--space-4)}
small,.text-sm{font-size:.875rem;color:var(--color-muted)}
.text-xs{font-size:.8rem;color:var(--color-muted)}
strong,b{font-weight:600}

a{
  color:var(--color-primary);
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
}
a:hover{color:#1b3a8a}
a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}

img{max-width:100%;height:auto;display:block}

ul,ol{padding-left:1.25rem;margin:0 0 var(--space-4)}
li{margin-bottom:.4rem}

hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-8) 0}

.container{max-width:1160px;margin-inline:auto;padding-inline:clamp(16px,4vw,24px)}

.spacious{padding-block:var(--space-16)}
.spacious-sm{padding-block:var(--space-12)}
.spacious-lg{padding-block:var(--space-24)}

.section{background:var(--color-section-1)}
.section:nth-child(even){background:var(--color-section-3)}
.section.alt{background:var(--color-section-2)}

.section-heading{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-8);align-items:flex-start;text-align:left}
.section-heading.center{align-items:center;text-align:center}
.section-subtitle{color:var(--color-muted);max-width:65ch}

.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid rgba(226,232,240,.6);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:var(--space-4)}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none}
.brand-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:700;color:var(--color-text);letter-spacing:.3px}
.nav{display:flex;gap:var(--space-6);align-items:center}
.nav a{color:var(--color-text);text-decoration:none;font-weight:500}
.nav a:hover{color:var(--color-primary)}
@media (max-width:768px){
  .nav{display:none}
}

.hero{
  background:linear-gradient(135deg,#eef2ff 0%,#ffffff 60%,#f8fafc 100%);
  border-bottom:1px solid var(--color-border);
}
.hero-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--space-12);align-items:center}
@media (max-width:960px){.hero-inner{grid-template-columns:1fr;gap:var(--space-8)}}
.hero-title{margin-bottom:var(--space-4)}
.hero-subtitle{color:var(--color-muted);max-width:60ch}
.hero-cta{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}

.card{
  background:var(--color-card);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  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:#cbd5e1}
.card-header{margin-bottom:var(--space-3)}
.card-title{margin:0 0 var(--space-2)}
.card-subtitle{margin:0;color:var(--color-muted)}
.card-body{margin-top:var(--space-3)}
.card-footer{margin-top:var(--space-6);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}

.grid{display:grid;gap:var(--space-6)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media (max-width:960px){.grid.cols-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}}

.btn{
  --btn-bg:var(--color-button);
  --btn-fg:#ffffff;
  display:inline-flex;align-items:center;justify-content:center;
  gap:8px;
  padding:10px 20px;
  border:none;border-radius:var(--radius-pill);
  background:var(--btn-bg);color:var(--btn-fg);
  font-weight:600;text-decoration:none;
  box-shadow:var(--shadow-sm);
  transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,filter .2s ease;
  cursor:pointer
}
.btn:hover{filter:brightness(1.05);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.btn-sm{padding:8px 14px;font-size:.9rem}
.btn-lg{padding:14px 24px;font-size:1.05rem}

.btn-outline{
  --btn-bg:transparent;
  --btn-fg:var(--color-primary);
  background:var(--btn-bg);
  color:var(--btn-fg);
  border:2px solid var(--color-primary);
  box-shadow:none
}
.btn-outline:hover{background:var(--color-primary);color:#ffffff}

.btn-secondary{
  --btn-bg:var(--color-secondary);
}
.btn-secondary:hover{filter:brightness(.98)}

.btn-link{
  background:none;border:none;padding:0;color:var(--color-primary);text-decoration:underline;text-underline-offset:3px;font-weight:600;cursor:pointer;border-radius:0
}
.btn-link:hover{color:#1b3a8a}

.form{display:grid;gap:var(--space-4)}
.form-row{display:grid;gap:var(--space-2)}
.form-row.inline{grid-template-columns:1fr 1fr;gap:var(--space-4)}
@media (max-width:640px){.form-row.inline{grid-template-columns:1fr}}
label{font-weight:600;color:var(--color-text)}
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="search"],input[type="number"],input[type="date"],input[type="time"],textarea,select{
  width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:10px;background:#fff;color:var(--color-text);
  transition:border-color .2s ease,box-shadow .2s ease;outline:none
}
input:focus,textarea:focus,select:focus{border-color:#cbd5e1;box-shadow:0 0 0 4px rgba(30,64,175,.08)}
textarea{min-height:120px;resize:vertical}

.badge{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius-pill);
  font-size:.85rem;font-weight:600;background:rgba(30,64,175,.08);color:var(--color-primary);border:1px solid rgba(30,64,175,.15)
}
.badge.red{background:rgba(220,38,38,.08);color:#b91c1c;border-color:rgba(220,38,38,.15)}

.kicker{
  display:inline-block;font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:var(--space-2)
}

.feature{display:flex;gap:var(--space-4);align-items:flex-start}
.feature-icon{
  flex:0 0 auto;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,rgba(30,64,175,.12),rgba(30,64,175,.04));
  display:flex;align-items:center;justify-content:center;color:var(--color-primary);border:1px solid rgba(30,64,175,.18)
}
.feature-body h3{margin-bottom:var(--space-2)}
.feature-body p{margin:0;color:var(--color-muted)}

.callout{
  background:linear-gradient(135deg,#ffffff,rgba(248,250,252,.6));
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  padding:var(--space-6);
  box-shadow:var(--shadow-sm)
}

blockquote{
  margin:0;padding:var(--space-6);border-left:4px solid var(--color-primary);background:linear-gradient(90deg,rgba(30,64,175,.06),transparent 70%);border-radius:0 var(--radius-sm) var(--radius-sm) 0
}
blockquote p{font-size:1.05rem;color:var(--color-text)}
blockquote cite{display:block;margin-top:var(--space-3);color:var(--color-muted);font-style:normal}

.site-footer{
  background:var(--color-footer-bg);
  color:#cbd5e1;
  margin-top:var(--space-20)
}
.footer-inner{padding-block:var(--space-12)}
.footer-top{display:flex;justify-content:space-between;gap:var(--space-6);align-items:center;flex-wrap:wrap}
.footer-nav{display:flex;gap:var(--space-6);flex-wrap:wrap}
.footer-nav a{color:#e5e7eb;text-decoration:none}
.footer-nav a:hover{color:#ffffff}
.footer-bottom{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.footer-brand{font-family:var(--font-serif);font-weight:700;color:#ffffff;letter-spacing:.3px}
.footer-small{font-size:.9rem;color:#9ca3af}

.privacy,.terms{max-width:760px}

.table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--color-border);border-radius:12px;overflow:hidden}
.table th,.table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--color-border)}
.table thead th{background:#f8fafc;font-weight:700;color:var(--color-text)}
.table tbody tr:hover{background:#f8fafc}

code,kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,'Liberation Mono','Courier New',monospace;background:#f1f5f9;color:#0f172a;border:1px solid #e2e8f0;border-radius:6px;padding:2px 6px}

.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}

@media (max-width:768px){
  .hero-inner{gap:var(--space-6)}
  .card{padding:var(--space-5)}
  .section-heading{margin-bottom:var(--space-6)}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!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;
    }
}