*{box-sizing:border-box}
body{margin:0;text-align:var(--text-align,left);font-family:var(--font, Inter, Arial, sans-serif) !important;background:var(--bg);color:#1e1e1e}
html,body,body *,input,textarea,select,button,option{font-family:var(--font, Inter, Arial, sans-serif) !important}
a{text-decoration:none;color:inherit}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.topbar{position:sticky;top:0;background:#ffffffd9;backdrop-filter:blur(10px);border-bottom:1px solid #ddd;z-index:20}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;padding:14px 0}
.lang-switcher a{padding:8px 12px;border-radius:999px}
.lang-switcher a.active{background:var(--primary);color:#fff}
.section{padding:56px 0}
.grid{display:grid;gap:28px}
.hero-grid,.two-col{grid-template-columns:1fr 1fr;align-items:center}
.hero-media img,.section-image{width:100%;border-radius:var(--radius);display:block;box-shadow:0 20px 50px rgba(0,0,0,.08)}
h1,h2,h3{margin:0 0 14px}
h1{font-size:40px;line-height:1.1}
h2{font-size:30px}
.subtitle{font-size:18px;color:#4a4a4a}
.richtext{line-height:1.7}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.card{background:#fff;padding:20px;border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.05);border:1px solid #eee;transition:transform .25s ease,box-shadow .25s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(0,0,0,.08)}
.card-icon{width:44px;height:44px;object-fit:cover;border-radius:12px;margin-bottom:10px}
.section-head{max-width:700px;margin-bottom:24px}
.section-head.center{text-align:center;margin:0 auto 24px}
.form-wrap{max-width:700px;margin:0 auto;background:#fff;padding:28px;border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,0,0,.05)}
.lead-form{display:grid;gap:14px}
.field{display:grid;gap:8px}
.field input,.field textarea,.field select{width:100%;padding:14px 16px;border-radius:14px;border:1px solid #cfcfcf;background:#faf9f6}
.field textarea{min-height:120px;resize:vertical}
.checkbox{display:flex;gap:10px;align-items:flex-start}

.btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding:14px 18px;
    background:#0f5c73;
    color:#fff;
    border:none;
    border-radius:14px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
}

.sticky-cta{position:fixed;bottom:20px;right:20px;background:var(--button);color:#fff;padding:14px 20px;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.footer{padding:24px 0;border-top:1px solid #ddd;background:#fff}
.footer-inner{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.thanks-page{min-height:100vh;display:grid;place-items:center;padding:24px}
.thanks-card{max-width:560px;background:#fff;padding:40px;border-radius:24px;box-shadow:0 12px 40px rgba(0,0,0,.08);text-align:center}
.alert{padding:14px 16px;border-radius:14px;margin-bottom:16px}
.alert.success{background:#e5f8ec;color:#146b34}
.alert.error{background:#fde8e8;color:#9b1c1c}
.reveal{opacity:0;transform:translateY(20px);transition:all .6s ease}
.reveal.visible{opacity:1;transform:none}
.honeypot{display:none}

.admin-layout{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{background:#111827;color:#fff;padding:20px;position:sticky;top:0;height:100vh}
.sidebar a{display:block;padding:10px 12px;border-radius:12px;color:#d1d5db;margin-bottom:6px}
.sidebar a:hover,.sidebar a.active{background:#1f2937;color:#fff}
.admin-main{padding:24px;background:#f3f4f6;overflow:visible;padding-bottom:40px}
.panel{background:#fff;padding:20px;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.04);margin-bottom:20px;overflow:visible}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.stat{background:#fff;border-radius:18px;padding:18px;box-shadow:0 6px 22px rgba(0,0,0,.04)}
table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px}

.admin-form{display:grid;gap:12px}
.admin-form input,
.admin-form select,
.admin-form textarea{padding:12px;border:1px solid #d1d5db;border-radius:12px;width:100%}

.pill{display:inline-block;padding:6px 10px;border-radius:999px;background:#eef2ff}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:420px;background:#fff;padding:30px;border-radius:24px;box-shadow:0 10px 30px rgba(0,0,0,.06)}

.admin-form button,
.admin-form .btn,
form button[type="submit"],
form input[type="submit"]{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    background:#0f5c73 !important;
    color:#ffffff !important;
    border:none;
    border-radius:12px;
    padding:12px 20px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    margin-top:12px;
    width:auto;
    text-decoration:none;
}

.admin-form button:hover,
.admin-form .btn:hover,
form button[type="submit"]:hover,
form input[type="submit"]:hover{
    opacity:.92;
}

.admin-actions{
    display:flex;
    justify-content:flex-start;
    margin:12px 0 18px;
}

.admin-actions .btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    background:#0f5c73 !important;
    color:#fff !important;
    border:none;
    border-radius:12px;
    padding:12px 20px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
}

.admin-save-bar{
    position:sticky;
    top:10px;
    z-index:50;
    background:#ffffff;
    padding:12px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    margin-bottom:16px;
}

.admin-save-bar .btn{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    background:#0f5c73 !important;
    color:#fff !important;
    border:none;
    border-radius:12px;
    padding:12px 20px;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    text-decoration:none;
}

button.btn{
    background:#0f5c73 !important;
    color:#ffffff !important;
    border:none !important;
    opacity:1 !important;
    visibility:visible !important;
}

@media (max-width:900px){
    .hero-grid,.two-col,.admin-layout{grid-template-columns:1fr}
    .sidebar{position:relative;height:auto}
    .sticky-cta{left:20px;right:20px;text-align:center}
    .section{padding:40px 0}
    h1{font-size:32px}
    h2{font-size:26px}
}
.review-buttons{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:22px;
}

.review-button{
    width:auto;
    min-width:160px;
}

@media (max-width:600px){
    .review-buttons{
        display:grid;
        grid-template-columns:1fr;
    }
    .review-button{
        width:100%;
    }
}

/* Site-wide text alignment and per-block/per-card/per-field fonts from admin settings */
main .section{ text-align:var(--section-text-align,var(--text-align,left)) !important; font-family:var(--section-font-family,var(--font,Inter,Arial,sans-serif)) !important; }
main .section *{ font-family:inherit !important; }
main .section p,main .section .subtitle,main .section .richtext,main .section .section-head,main .section .section-head p,main .section h1,main .section h2,main .section h3{ text-align:inherit !important; }
main .section .card{ text-align:var(--item-text-align,inherit) !important; font-family:var(--item-font-family,inherit) !important; }
main .section .card h3,main .section .card div{ text-align:inherit !important; }
main .section .field{ font-family:var(--field-font-family,inherit) !important; }
main .section .field *{ font-family:inherit !important; }


/* Privacy consent checkbox */
.privacy-consent-field{
    margin-top:6px;
}
.privacy-checkbox{
    display:flex;
    align-items:flex-start;
    gap:10px;
    line-height:1.45;
    font-size:14px;
}
.privacy-checkbox input{
    width:18px;
    height:18px;
    margin-top:2px;
    flex:0 0 auto;
}
.privacy-checkbox a{
    color:var(--primary,#0f5c73);
    font-weight:700;
    text-decoration:underline;
}

/* JavaScript enhancements: validation, AJAX message, FAQ accordion */
html{
    scroll-behavior:smooth;
}

.field.has-error input,
.field.has-error textarea,
.field.has-error select,
.field.has-error .checkbox{
    border-color:#dc2626 !important;
    box-shadow:0 0 0 3px rgba(220,38,38,.12);
}

.field-error{
    color:#b91c1c;
    font-size:14px;
    line-height:1.4;
}

.ajax-form-message{
    margin-bottom:16px;
}

.lead-form button[disabled],
.lead-form .btn[disabled],
.btn.is-loading{
    opacity:.7 !important;
    cursor:wait !important;
}

.section-faq .card.faq-item{
    cursor:pointer;
}

.section-faq .faq-question{
    position:relative;
    padding-right:34px;
    margin-bottom:0;
    cursor:pointer;
    user-select:none;
}

.section-faq .faq-question::after{
    content:'+';
    position:absolute;
    right:0;
    top:0;
    width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:var(--primary,#0f5c73);
    color:#fff;
    font-weight:700;
    line-height:1;
}

.section-faq .card.open .faq-question::after{
    content:'−';
}

.section-faq .faq-answer{
    display:none;
    margin-top:12px;
    line-height:1.6;
}

.section-faq .card.open .faq-answer{
    display:block;
}



.geo-permission-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease;
}
.geo-permission-modal.is-open{
  opacity:1;
  pointer-events:auto;
}
.geo-permission-modal[hidden]{
  display:none !important;
}
.geo-permission-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.55);
  backdrop-filter:blur(5px);
}
.geo-permission-box{
  position:relative;
  width:min(520px, 100%);
  padding:28px;
  border-radius:24px;
  background:#fff;
  color:#172033;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  transform:translateY(12px) scale(.98);
  transition:transform .22s ease;
}
.geo-permission-modal.is-open .geo-permission-box{
  transform:translateY(0) scale(1);
}
.geo-permission-close{
  position:absolute;
  top:14px;
  right:14px;
  width:36px;
  height:36px;
  border:0;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
.geo-permission-icon{
  width:56px;
  height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
  border-radius:18px;
  background:#e0f2fe;
  font-size:28px;
}
.geo-permission-box h2{
  margin:0 0 12px;
  font-size:26px;
  line-height:1.2;
  color:#0f172a;
}
.geo-permission-box p{
  margin:0 0 12px;
  color:#475569;
  line-height:1.55;
}
.geo-permission-small{
  font-size:14px;
}
.geo-permission-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.geo-permission-allow:disabled{
  opacity:.72;
  cursor:not-allowed;
}
.geo-permission-later{
  border:1px solid #cbd5e1;
  border-radius:999px;
  padding:12px 18px;
  background:#fff;
  color:#334155;
  font-weight:700;
  cursor:pointer;
}
.geo-permission-status{
  min-height:20px;
  margin-top:14px;
  font-weight:700;
  font-size:14px;
}
.geo-permission-status.success{ color:#166534; }
.geo-permission-status.error{ color:#b91c1c; }
.geo-permission-status.loading{ color:#075985; }
@media (max-width:560px){
  .geo-permission-box{padding:22px;}
  .geo-permission-box h2{font-size:22px;}
  .geo-permission-actions{flex-direction:column;}
  .geo-permission-actions .btn,
  .geo-permission-later{width:100%;}
}


/* Separate fonts for block titles/text, cards and form fields */

main .section h1,main .section h2,main .section .section-head h2{font-family:var(--block-title-font-family,inherit) !important;}
main .section .subtitle,main .section .section-head p{font-family:var(--block-subtitle-font-family,inherit) !important;}
main .section .richtext,main .section .richtext *{font-family:var(--block-content-font-family,inherit) !important;}
main .section .card h3{font-family:var(--item-title-font-family,inherit) !important;}
main .section .card div,main .section .card p{font-family:var(--item-description-font-family,inherit) !important;}
main .section .field > label,main .section .field .checkbox span{font-family:var(--field-label-font-family,var(--field-font-family,inherit)) !important;}
main .section .field input,main .section .field textarea,main .section .field select,main .section .field option{font-family:var(--field-input-font-family,var(--field-font-family,inherit)) !important;}
