:root{ --brand:#0080FF; --text:#0f172a; --muted:#64748b; --bg:#ffffff; --card:#ffffff; --border:#e2e8f0; }
*{ box-sizing:border-box }
html, body{ margin:0; padding:0; font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:var(--text); background:var(--bg); }
.container{ max-width:1100px; margin:0 auto; padding:0 1rem; }
.header{ position:sticky; top:0; z-index:10; background:rgba(255,255,255,.85); backdrop-filter: blur(8px); border-bottom:1px solid var(--border); }
.header-inner{ height:56px; display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; gap:.5rem; }
.brand-logo{ width:28px; height:28px; /*border-radius:8px;*/ background:var(--brand); object-fit:cover; }
.brand-name{ font-weight:600; }
.nav{ display:flex; gap:1rem; }
.nav a{ color:#334155; text-decoration:none; }
.nav a:hover{ color:#0f172a; }
.section{ padding:64px 0; border-top:1px solid var(--border); }
.section-hero{ padding:64px 0; border-top:1px solid var(--border); background: var(--brand); color: #fff; }
.section h2{ font-size:1.5rem; font-weight:700; margin:0 0 1rem; }
.card{ background:var(--card); border:1px solid var(--border); border-radius:12px; padding:1rem; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.grid{ display:grid; gap:1rem; background: #e4f2ff; }
.grid-2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.grid-col-span-2{ grid-column:1 / -1; }
@media (max-width: 800px){ .grid-2{ grid-template-columns:1fr; } }
.btn{ display:inline-flex; align-items:center; justify-content:center; padding:.75rem 1.25rem; border-radius:8px; color:#fff; background:var(--brand); border:none; font-weight:600; cursor:pointer; }
.btn-hero{ display:inline-flex; align-items:center; justify-content:center; padding:.75rem 1.25rem; border-radius:8px; color:var(--brand); background:var(--bg); border:none; font-weight:600; cursor:pointer; }
.btn:disabled{ opacity:.6; cursor:not-allowed; }
label{ display:block; font-size:.9rem; font-weight:600; margin-bottom:.35rem; color:#334155; }
input, textarea{ width:100%; padding:.6rem .75rem; border:1px solid var(--border); border-radius:12px; outline:none; font-weight: 700; }
textarea{ font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; font-size: .9rem;}
input:focus, textarea:focus{ border-color:#94a3b8; box-shadow:0 0 0 3px rgba(148,163,184,.35); }
.required{ color:red; }
.small{ font-size:.78rem; color:var(--muted); margin-top:.25rem; min-height:1.25rem; }
.hidden-robot{ position:absolute; left:-9999px; opacity:0; }
.bg{ background:#fff; }
.hero{ display:grid; grid-template-columns: 1fr 1fr; gap:2rem; align-items:center; }
@media (max-width: 900px){ .hero{ grid-template-columns:1fr; } }
.hero-card{ background:url('/hero.jpg') center/cover no-repeat; min-height:300px; }
@media (min-width:900px){ .hero-card{ min-height:300px; } }
.prose p{ margin:.5rem 0; line-height:1.6; }
.footer-prose p{ margin:.5rem 0; line-height:1.2; }
details.card{ padding:.75rem 1rem; }
summary{ cursor:pointer; }
.toast{ position:fixed; right:24px; bottom:24px; background:#0f172a; color:#fff; border-radius:12px; padding:.75rem 1rem; box-shadow:0 8px 24px rgba(0,0,0,.25); }
.footer{ border-top:1px solid var(--border); padding:32px 0; color:var(--muted); font-size:.78rem; }
.copyright{ margin-bottom: 10px;}
.mt-6{ margin-top:1.5rem; }
.space-y-4 > * + * { margin-top:1rem; }

::placeholder { color: #aaaaaa; opacity: 1; }   /* modern browsers */
:-ms-input-placeholder { color: #aaaaaa; }      /* IE 10-11 */
::-ms-input-placeholder { color: #aaaaaa; }     /* Legacy Edge */
::-webkit-input-placeholder { color: #aaaaaa; } /* Chrome/Safari */

/* Force placeholder color across browsers */
input::placeholder,
textarea::placeholder { color: #aaaaaa !important; opacity: 1; }

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder { color: #aaaaaa !important; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder { color: #aaaaaa !important; }

input::-ms-input-placeholder,
textarea::-ms-input-placeholder { color: #aaaaaa !important; }

/* Validation message (small helper) turns red when there's an error */
.small.error { color: #dc2626; }

/* Checkbox row layout */
.consent-label{
  display: flex !important;     /* override global label { display:block } */
  align-items: flex-start;
  gap: .5rem;
  cursor: pointer;
}

.consent-label input[type="checkbox"]{
  flex: 0 0 auto;
  margin: .2rem 0 0 0;          /* nudge vertically to align with first text line */
}

.consent-label .consent-text{
  flex: 1 1 auto;               /* let the text take all space to the right */
  line-height: 1.5;
  min-width: 0;                 /* prevents overflow issues in tight grids */
}

/* --- Consent row layout (checkbox left, text expands right) --- */
.consent-row{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start; /* ensure left */
  gap:.5rem;
}
.consent-row input[type="checkbox"]{
  flex:0 0 auto;
  margin:.2rem 0 0 0; /* nudge to align with first text line */
  min-width: 27px;
  width: 1%;
}
.consent-row .consent-text{
  flex:1 1 auto;      /* text gets all remaining width */
  line-height:1.5;
  min-width:0;
}

/* make the helper line sit under the row cleanly */
#err-consent.small { display: block; margin-top: .25rem; }

/* --- Responsive navigation --- */
.nav-toggle{
  display:none;
  appearance:none;
  background:transparent;
  border:1px solid var(--border);
  border-radius:12px;
  padding:.4rem;
  color:#0f172a;
}

@media (max-width: 820px){
  .nav-toggle{ display:inline-flex; align-items:center; justify-content:center; }
  .nav{ 
    position: fixed; 
    top: 56px; 
    left: 0; 
    right: 0; 
    background: #fff; 
    border-bottom: 1px solid var(--border);
    box-shadow: 0 8px 16px rgba(0,0,0,.06);
    display: none; 
    flex-direction: column; 
    padding: .5rem 1rem; 
    z-index: 11;
  }
  .nav.open{ display:flex; }
  .nav a{ padding:.75rem 0; }
  body.nav-open{ overflow:hidden; }
}