/* Minimal CSS (Bootstrap removed for performance).
   Goal: keep existing class names working with a lightweight style system.
*/

:root{
  --text:#111;
  --muted:#495057;
  --border:rgba(0,0,0,.12);
  --bg:#fff;
  --bg-soft:#f8f9fa;
  --primary:#0b5ed7;
  --primary2:#084298;
  --radius:12px;
  --shadow:0 6px 18px rgba(0,0,0,.06);
  --hero1:#0d6efd;
  --hero2:#6610f2;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.45;color:var(--text);background:var(--bg)}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}

/* Layout */
.container{max-width:1100px;margin:0 auto;padding-left:16px;padding-right:16px}
.container-fluid{width:100%}
.py-2{padding-top:8px;padding-bottom:8px}
.py-3{padding-top:12px;padding-bottom:12px}
.py-4{padding-top:16px;padding-bottom:16px}
.py-5{padding-top:24px;padding-bottom:24px}
.mb-0{margin-bottom:0}
.mb-1{margin-bottom:4px}
.mb-2{margin-bottom:8px}
.mb-3{margin-bottom:12px}
.mb-4{margin-bottom:16px}
.mt-1{margin-top:4px}
.mt-2{margin-top:8px}
.mt-3{margin-top:12px}
.mt-4{margin-top:16px}
.mt-5{margin-top:24px}
.my-4{margin-top:16px;margin-bottom:16px}
.my-5{margin-top:24px;margin-bottom:24px}
.p-3{padding:12px}
.p-4{padding:16px}
.p-md-5{padding:16px}
.rounded{border-radius:var(--radius)}
.rounded-3{border-radius:18px}
.border{border:1px solid var(--border)}
.border-top{border-top:1px solid var(--border)}
.border-bottom{border-bottom:1px solid var(--border)}
.bg-white{background:#fff}
.bg-light{background:var(--bg-soft)}
.sticky-top{position:sticky;top:0;z-index:20}

/* Grid */
.row{display:flex;flex-wrap:wrap;margin-left:-8px;margin-right:-8px}
.row > *{padding-left:8px;padding-right:8px}
.g-3 > *{margin-top:16px}
.g-4 > *{margin-top:16px}
.g-2 > *{margin-top:10px}
.col-12{width:100%}
.col-sm-6{width:100%}
.col-md-4{width:100%}
.col-md-6{width:100%}
.col-lg-5{width:100%}
.col-lg-7{width:100%}
@media (min-width: 700px){
  .col-md-4{width:33.3333%}
  .col-md-6{width:50%}
}
@media (min-width: 980px){
  .col-lg-7{width:58.3333%}
  .col-lg-5{width:41.6667%}
  .col-sm-6{width:50%}
  .p-md-5{padding:24px}
}

/* Flex helpers */
.d-flex{display:flex}
.d-grid{display:block}
.flex-wrap{flex-wrap:wrap}
.align-items-center{align-items:center}
.align-items-end{align-items:flex-end}
.justify-content-between{justify-content:space-between}
.justify-content-md-end{justify-content:flex-start}
.w-100{width:100%}
.gap-2{gap:8px}
.gap-3{gap:12px}

/* Typography helpers */
.fw-semibold{font-weight:600}
.small{font-size:.875rem}
.text-secondary{color:var(--muted)}
.text-muted{color:var(--muted)}
.text-dark{color:var(--text)}
.text-uppercase{text-transform:uppercase}
.h2{font-size:1.5rem}
.h3{font-size:1.35rem}
.h4{font-size:1.25rem}
.h5{font-size:1.1rem}
.h6{font-size:0.95rem}
.display-6{font-size:1.9rem;line-height:1.15}
.lead{font-size:1.1rem}

/* Components */
.card{border:1px solid var(--border);border-radius:var(--radius);background:#fff}
.card-body{padding:14px}
.shadow-sm{box-shadow:var(--shadow)}
.h-100{height:100%}

.btn{display:inline-block;padding:10px 14px;border-radius:10px;border:1px solid transparent;font-weight:600;cursor:pointer}
.btn:hover{text-decoration:none;filter:brightness(.98)}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:var(--primary2);border-color:var(--primary2)}
.btn-outline-secondary{background:transparent;border-color:var(--border);color:var(--text)}
.btn-outline-primary{background:transparent;border-color:var(--primary);color:var(--primary)}
.btn-sm{padding:7px 10px;border-radius:9px;font-weight:600}

.form-label{display:block;margin-bottom:6px}
.form-control,.form-select,textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;font:inherit}
.form-text{color:var(--muted);font-size:.875rem;margin-top:6px}

/* Client-side validation (Bootstrap-like) */
.invalid-feedback{display:none;margin-top:6px;font-size:.875rem;color:#b02a37}
.was-validated .form-control:invalid,
.was-validated textarea:invalid,
.was-validated .form-select:invalid{border-color:#dc3545}
.was-validated .form-control:valid,
.was-validated textarea:valid,
.was-validated .form-select:valid{border-color:#198754}
.was-validated .form-control:invalid ~ .invalid-feedback,
.was-validated textarea:invalid ~ .invalid-feedback,
.was-validated .form-select:invalid ~ .invalid-feedback{display:block}

.alert{padding:12px 14px;border-radius:12px;border:1px solid var(--border)}
.alert-success{background:#ecfdf3;border-color:#a7f3d0;color:#065f46}
.alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}

/* Breadcrumb */
.breadcrumb{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}
.breadcrumb-item{color:var(--muted)}
.breadcrumb-item a{color:var(--primary)}
.breadcrumb-item.active{color:var(--text)}
.breadcrumb-item + .breadcrumb-item:before{content:"/";margin-right:6px;color:var(--muted)}

/* Hero + feature */
.hero{background:linear-gradient(135deg, rgba(13,110,253,.10), rgba(102,16,242,.10));border:1px solid rgba(0,0,0,.06)}
.feature{padding:14px 16px;border:1px solid rgba(0,0,0,.06);border-radius:12px;background:#fff}
.upload-box{border:2px dashed rgba(13,110,253,.25);border-radius:14px;padding:14px;background:rgba(13,110,253,.03)}

/* Content */
.content h2{color:#111;margin-top:1.25rem}
.content a{color:var(--primary)}

/* Footer contrast */
footer.bg-light .text-secondary{color:var(--muted) !important;}
footer.bg-light a{color:var(--primary);}
footer.bg-light a:hover{color:var(--primary2);}

/* Utilities used in templates */
hr{border:none;border-top:1px solid var(--border)}
.list-unstyled{list-style:none;padding-left:0;margin:0}

/* FAQ (details/summary) */
details{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:#fff}
details + details{margin-top:10px}
summary{cursor:pointer;font-weight:600}

/* Consent banner */
.consent{position:fixed;left:0;right:0;bottom:0;padding:12px;z-index:50}
.consent-inner{max-width:1100px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:12px 14px}
