.root-font{font-family: Georgia, 'Times New Roman', serif}
:root{
  --bg:#f6f8f7; /* softer pale */
  --bg-top:#f9fbfb;
  --bg-bottom:#edf2f3;
  --card:#ffffff;
  --accent:#5f9c97; /* calming teal */
  --accent-strong:#3f7f7a;
  --widget-soft:#4f8f9d;
  --widget-soft-2:#5f9c97;
  --widget-border:#cfe2e6;
  --widget-bg:#f4fafb;
  --chat-base-bottom:4px;
  --chat-shift:0px;
  --callback-base-bottom:52px;
  --muted:#6b6b6b;
  --maxw:980px;
}
html{
  background-color:var(--bg);
  background-image:
    linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);
  background-attachment:fixed;
}
*{box-sizing:border-box}
.site-header{
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,0.04);
  position:sticky;
  top:0;
  z-index:1300;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between}
.brand{
  color:#1f3042;
  text-decoration:none;
  font-family:'Merriweather', Georgia, serif;
  font-size:1.25rem;
  font-weight:600;
  text-align:left;
  margin-right:auto;
}
.logo{height:40px;width:auto}
.logo-link{display:inline-flex;align-items:center}
.site-header nav a{margin-left:1rem;color:var(--muted);text-decoration:none}
main{
  position:relative;
  isolation:isolate;
}
main::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background-image:
    radial-gradient(circle at 14% 18%, rgba(95,156,151,0.08) 0, rgba(95,156,151,0) 38%),
    radial-gradient(circle at 84% 72%, rgba(79,143,157,0.06) 0, rgba(79,143,157,0) 42%);
}
.hero{padding:4rem 0;background:transparent}
.hero h2{margin:0 0 .5rem;font-size:1.8rem}
.hero p{margin:0 0 1rem;color:var(--muted)}
.cta{display:inline-block;background:var(--accent);color:#fff;padding:.8rem 1.2rem;border-radius:8px;text-decoration:none;font-weight:600}
.services .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.card{background:var(--card);padding:1.2rem;border-radius:10px;box-shadow:0 6px 18px rgba(20,20,20,0.04)}
.about,.contact{background:transparent;padding-top:1rem}
form{background:var(--card);padding:1.2rem;border-radius:10px;box-shadow:0 8px 24px rgba(20,20,20,0.04);max-width:720px}
label{display:block;margin-top:.6rem;font-weight:600}
input,select,textarea{width:100%;padding:.75rem;border-radius:8px;border:1px solid rgba(0,0,0,0.06);margin-top:.25rem}
button{margin-top:1rem;background:var(--accent-strong);color:#fff;padding:.75rem 1.2rem;border:none;border-radius:8px}
.status{margin-top:.6rem;color:green}
.site-footer{padding:1.2rem 0;margin-top:2rem;color:var(--muted);text-align:center}

.consent{display:flex;align-items:flex-start;gap:0.6rem;margin-top:0.8rem}
.consent input[type="checkbox"]{
  width:auto;
  flex:0 0 auto;
  margin:0.3rem 0 0 0;
  padding:0;
}
.consent label{display:inline;margin:0;font-weight:400;color:var(--muted);line-height:1.35}
.consent a{color:var(--accent-strong);text-decoration:underline}

.privacy{margin-top:1rem;padding-top:0.5rem;border-top:1px solid rgba(0,0,0,0.03);color:var(--muted)}

/* headings */
h1,h2,h3,h4{font-family:'Merriweather', Georgia, serif;color:var(--accent-strong)}
h2{font-weight:600}
p{color:#445}


@media(min-width:900px){
  .hero h2{font-size:2.4rem}
}

/* Additional styling for a calmer, approachable look */
.site-header h1{font-family: 'Georgia', serif; color:var(--accent)}
.container{max-width:var(--maxw);margin:0 auto;padding:2rem}
body{
  font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  margin:0;
  color:#222;
  background:transparent;
}
.card h4{color:#234; font-weight:700}
.hero{border-bottom:1px solid rgba(0,0,0,0.03)}

.container{max-width:var(--maxw);margin:0 auto;padding:2rem}
.site-header{
  background:#fff;
  border-bottom:1px solid #e6e6e9;
  position:sticky;
  top:0;
  z-index:1300;
}
.site-header .container{display:flex;align-items:center;justify-content:space-between}
.site-header nav{
  margin-left:auto;
}
.site-header .container{
  position:relative;
  left:-36px;
}
.site-header h1{margin:0;font-size:1.2rem}
.site-header nav a{margin-left:1rem;color:var(--muted);text-decoration:none}

.mini-cta{
  position:fixed;
  right:18px;
  top:14px;
  z-index:1408;
  margin-top:0;
  border-radius:999px;
  padding:.55rem 1rem;
  font-size:.92rem;
  font-weight:700;
  background:linear-gradient(110deg,var(--widget-soft),var(--widget-soft-2));
  color:#fff;
  box-shadow:0 12px 24px rgba(63,127,122,0.24);
}
.hero{padding:4rem 0;background:transparent}
.hero h2{margin:0 0 .5rem;font-size:1.8rem}
.hero p{margin:0 0 1rem;color:var(--muted)}
.cta{display:inline-block;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:6px;text-decoration:none}
.services .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1rem}
.card{background:var(--card);padding:1rem;border-radius:8px;box-shadow:0 1px 4px rgba(12,12,15,0.04)}
.about,.contact{background:transparent;padding-top:1rem}
form{background:var(--card);padding:1rem;border-radius:8px;box-shadow:0 1px 6px rgba(12,12,15,0.04);max-width:700px}
label{display:block;margin-top:.6rem;font-weight:600}
input,select,textarea{width:100%;padding:.6rem;border-radius:6px;border:1px solid #e6e6e9;margin-top:.25rem}
button{margin-top:1rem;background:var(--accent);color:#fff;padding:.6rem 1rem;border:none;border-radius:6px}
.status{margin-top:.6rem;color:green}
.site-footer{padding:1rem 0;margin-top:2rem;color:var(--muted);text-align:center}

.chat-widget{
  position:fixed;
  right:18px;
  bottom:calc(var(--chat-base-bottom) + var(--chat-shift));
  width:min(380px, calc(100vw - 24px));
  z-index:1405;
  transition:bottom .22s ease;
}
.chat-toggle{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  width:100%;
  border:none;
  border-radius:14px;
  background:linear-gradient(110deg,var(--widget-soft),var(--widget-soft-2));
  color:#fff;
  font-weight:700;
  letter-spacing:.2px;
  box-shadow:0 14px 30px rgba(63,127,122,0.24);
  cursor:pointer;
  animation:chatPulse 2.4s infinite;
}
.chat-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff;
}
.chat-panel{
  margin-top:.65rem;
  margin-bottom:0;
  background:#fff;
  border:2px solid var(--widget-border);
  border-radius:14px;
  box-shadow:0 20px 44px rgba(19,27,36,0.22);
  padding:.8rem;
  transform-origin:bottom right;
  transition:opacity .22s ease, transform .22s ease;
  max-height:calc(100vh - 108px);
  overflow:auto;
}

.callback-widget{
  position:fixed;
  right:18px;
  bottom:var(--callback-base-bottom);
  width:min(380px, calc(100vw - 24px));
  z-index:1404;
}
.callback-toggle{
  width:100%;
  border:none;
  border-radius:14px;
  background:linear-gradient(110deg,var(--widget-soft),var(--widget-soft-2));
  color:#fff;
  font-weight:700;
  letter-spacing:.2px;
  box-shadow:0 12px 30px rgba(63,127,122,0.24);
  cursor:pointer;
}
.callback-panel{
  margin-top:.65rem;
  margin-bottom:0;
  background:#fff;
  border:2px solid var(--widget-border);
  border-radius:14px;
  box-shadow:0 20px 44px rgba(19,27,36,0.22);
  padding:.8rem;
  transform-origin:bottom right;
  transition:opacity .22s ease, transform .22s ease;
  max-height:calc(100vh - 108px);
  overflow:auto;
}
.chat-widget:not(.open) .chat-panel{
  opacity:0;
  transform:translateY(14px) scale(.98);
  pointer-events:none;
}
.chat-widget:not(.open){
  pointer-events:none;
}
.chat-widget:not(.open) .chat-toggle{
  border-radius:999px;
  pointer-events:auto;
}
.callback-widget:not(.open) .callback-panel{
  opacity:0;
  transform:translateY(14px) scale(.98);
  pointer-events:none;
}
.callback-widget:not(.open){
  pointer-events:none;
}
.callback-widget:not(.open) .callback-toggle{
  border-radius:999px;
  pointer-events:auto;
}
.chat-head{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  margin-bottom:.65rem;
}
.chat-head strong{font-size:1rem;color:#1a2a39}
.chat-head span{font-size:.84rem;color:#4a5a66}
.chat-messages{
  border:1px solid #e6e6e9;
  border-radius:8px;
  padding:.8rem;
  min-height:180px;
  max-height:260px;
  overflow-y:auto;
  background:#fbfcfc;
}
.chat-msg{
  margin:.45rem 0;
  padding:.55rem .7rem;
  border-radius:8px;
  max-width:88%;
  line-height:1.4;
}
.chat-msg.user{
  margin-left:auto;
  background:#dbeeed;
  color:#123;
}
.chat-msg.bot{
  margin-right:auto;
  background:#eef1f4;
  color:#234;
}
.chat-form{margin-top:.8rem;background:transparent;box-shadow:none;padding:0;max-width:none}
.chat-input-row{display:flex;gap:.6rem;align-items:flex-end}
.chat-input-row input{margin-top:0}
.chat-input-row button{margin-top:0;white-space:nowrap}
.callback-box{
  margin-top:.9rem;
  padding:.75rem;
  border:1px solid var(--widget-border);
  border-radius:10px;
  background:var(--widget-bg);
}
.callback-box h4{
  margin:.1rem 0 .35rem;
  font-size:.95rem;
  color:#2a5860;
}
.callback-form{
  margin-top:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  max-width:none;
}
.callback-form label{margin-top:.45rem;font-size:.88rem}
.callback-form button{
  margin-top:.6rem;
  background:var(--accent-strong);
  padding:.55rem .85rem;
}
.callback-status{margin-top:.45rem;font-size:.88rem}

@media(max-width:1080px){
  .callback-widget{right:18px;bottom:var(--callback-base-bottom)}
}

@media(max-width:640px){
  :root{
    --chat-base-bottom:4px;
    --callback-base-bottom:50px;
  }
  .chat-widget{
    right:10px;
    width:calc(100vw - 20px);
  }
  .callback-widget{
    right:10px;
    width:calc(100vw - 20px);
  }
  .chat-panel{max-height:70vh;overflow:auto}
  .callback-panel{max-height:55vh;overflow:auto}
  .chat-input-row{flex-direction:column;align-items:stretch}

  html{
    background-image:
      linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);
  }
}

@keyframes chatPulse{
  0%{box-shadow:0 10px 24px rgba(63,127,122,0.16)}
  50%{box-shadow:0 16px 32px rgba(63,127,122,0.26)}
  100%{box-shadow:0 10px 24px rgba(63,127,122,0.16)}
}

/* Fallback: keep floating widgets visible even if external styles interfere. */
aside.chat-widget,
aside.callback-widget{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* Inspired refresh: clearer hierarchy, elegant typography, stronger offer cards */
body{
  font-family:'Manrope', 'Segoe UI', sans-serif;
  color:#1f2c3a;
}
h1,h2,h3,h4,.brand{
  font-family:'Cormorant Garamond', Georgia, serif;
}
.brand{
  font-size:2rem;
  letter-spacing:.1px;
}
.site-header{
  background:rgba(255,255,255,0.9);
  backdrop-filter:blur(6px);
}
.site-header nav a{
  font-weight:600;
}
html{
  background-image:
    radial-gradient(1200px 380px at 18% 0%, rgba(232,241,241,0.85), rgba(232,241,241,0)),
    linear-gradient(180deg, #f8fbfb 0%, #eef3f3 100%);
}
.hero{
  padding:6.2rem 0 5.4rem;
  border-bottom:1px solid rgba(28,55,73,0.1);
  position:relative;
}
.hero::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:min(760px, 84vw);
  height:240px;
  transform:translate(-50%, -50%);
  background:radial-gradient(circle, rgba(95,156,151,0.16) 0%, rgba(95,156,151,0) 68%);
  pointer-events:none;
}
.hero .container{
  max-width:860px;
}
.hero-kicker{
  display:inline-block;
  margin:0 0 1rem;
  padding:.42rem .92rem;
  border-radius:999px;
  background:linear-gradient(110deg, #dceff0, #eef7f6);
  color:#27586a;
  font-size:.96rem;
  font-weight:700;
  letter-spacing:.45px;
  text-transform:uppercase;
  box-shadow:0 10px 22px rgba(63,127,122,0.14);
}
.hero h2{
  font-size:clamp(3.1rem, 6vw, 4.2rem);
  line-height:1.02;
  margin:0 0 1rem;
  color:#1f4762;
  text-shadow:0 1px 0 rgba(255,255,255,0.45);
}
.hero p{
  font-size:clamp(1.18rem, 2vw, 1.5rem);
  color:#2f4a61;
  max-width:760px;
  font-weight:500;
}
.hero-note{
  font-size:1.2rem !important;
  color:#5a6978 !important;
  letter-spacing:.28px;
  font-weight:600;
}
.trust-chips{
  display:flex;
  flex-wrap:wrap;
  gap:.45rem;
  margin-top:.65rem;
}
.chip{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.36rem .82rem;
  background:linear-gradient(110deg, #e4f0f0, #edf6f6);
  color:#24576a;
  font-size:.92rem;
  font-weight:700;
  box-shadow:0 8px 18px rgba(63,127,122,0.14);
}
.cta{
  border-radius:999px;
  font-weight:700;
  padding:.8rem 1.5rem;
  box-shadow:0 14px 28px rgba(63,127,122,0.2);
}
.cta-button{
  border:none;
  cursor:pointer;
}
.services h3{
  font-size:2.5rem;
  margin-bottom:.2rem;
}
.section-lead{
  margin-top:0;
  margin-bottom:1.3rem;
  color:#546473;
}
.services .grid{
  gap:1.2rem;
}

.services{
  position:relative;
}

.services .card{
  position:relative;
}

.services.services-hover-highlight .card{
  animation:servicesGlow .9s ease-in-out infinite;
}

.services.services-hover-highlight .card::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:18px;
  border:2px solid rgba(95,156,151,0.48);
  box-shadow:0 0 0 0 rgba(95,156,151,0.24);
  pointer-events:none;
  animation:servicesRing .95s ease-in-out infinite;
}

.about{
  position:relative;
}

.about.about-hover-highlight{
  animation:servicesGlow .9s ease-in-out infinite;
}

.about.about-hover-highlight::after{
  content:"";
  position:absolute;
  inset:-8px -6px;
  border-radius:16px;
  border:2px solid rgba(95,156,151,0.46);
  box-shadow:0 0 0 0 rgba(95,156,151,0.24);
  pointer-events:none;
  animation:servicesRing .95s ease-in-out infinite;
}
.card{
  border:1px solid rgba(30,58,79,0.08);
  border-radius:16px;
  box-shadow:0 10px 26px rgba(17,37,53,0.06);
  padding:1.3rem 1.2rem 1.1rem;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover{
  transform:translateY(-4px);
  border-color:rgba(63,127,122,0.42);
  box-shadow:0 18px 34px rgba(63,127,122,0.2);
}
.card-kicker{
  margin:0 0 .25rem;
  color:#5c7081;
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.32px;
}
.card h4{
  margin-top:.35rem;
  margin-bottom:.6rem;
  font-size:2rem;
  color:#1f3d58;
}
.card p{
  margin-top:0;
}
.card-cta{
  display:inline-block;
  margin-top:.55rem;
  text-decoration:none;
  color:#2f6a76;
  font-weight:700;
  background:transparent;
  border:none;
  padding:0;
  cursor:pointer;
}
.card-cta:hover{
  color:#204d57;
}
@media(max-width:760px){
  .brand{font-size:1.35rem}
  .hero{padding:4.1rem 0 3.7rem}
  .hero h2{font-size:2.2rem}
  .hero p{font-size:1.07rem}
  .mini-cta{
    top:auto;
    bottom:calc(var(--callback-base-bottom) + 60px);
    right:12px;
    padding:.5rem .9rem;
    font-size:.84rem;
  }
}

@keyframes servicesGlow{
  0%, 100%{
    filter:saturate(1);
    box-shadow:0 10px 26px rgba(17,37,53,0.06);
  }
  50%{
    filter:saturate(1.18);
    box-shadow:0 14px 30px rgba(63,127,122,0.24);
  }
}

@keyframes servicesRing{
  0%{
    opacity:.1;
    transform:scale(.98);
    box-shadow:0 0 0 0 rgba(95,156,151,0.28);
  }
  50%{
    opacity:1;
  }
  100%{
    opacity:.1;
    transform:scale(1.01);
    box-shadow:0 0 0 12px rgba(95,156,151,0);
  }
}

@keyframes cardPop{
  0%{transform:translateY(8px); opacity:.6}
  100%{transform:translateY(0); opacity:1}
}

/* Final widget layout: fixed, non-overlapping, and stable on mobile */
:root{
  --chat-base-bottom:12px;
  --chat-toggle-height:48px;
  --widget-gap:12px;
  --callback-base-bottom:calc(var(--chat-base-bottom) + var(--chat-toggle-height) + var(--widget-gap));
}

.chat-widget,
.callback-widget{
  position:fixed !important;
  right:12px !important;
  width:min(380px, calc(100vw - 24px)) !important;
  pointer-events:none;
}

.chat-widget{
  bottom:var(--chat-base-bottom) !important;
  z-index:1405 !important;
}

.callback-widget{
  bottom:var(--callback-base-bottom) !important;
  z-index:1404 !important;
}

.chat-toggle,
.callback-toggle{
  margin-top:0 !important;
  min-height:var(--chat-toggle-height);
  line-height:1.15;
  font-size:1.05rem;
  pointer-events:auto;
}

.chat-panel,
.callback-panel{
  margin-top:.65rem !important;
  max-height:min(58vh, 430px);
  overflow:auto;
}

.chat-widget.open,
.callback-widget.open{
  pointer-events:auto;
}

.chat-widget:not(.open) .chat-panel,
.callback-widget:not(.open) .callback-panel{
  display:none;
}

@media(max-width:640px){
  :root{
    --chat-base-bottom:10px;
    --widget-gap:10px;
  }
  .chat-widget,
  .callback-widget{
    right:10px !important;
    width:calc(100vw - 20px) !important;
  }
}

/* One-screen mode: no vertical page scrollbar */
html,
body{
  height:100%;
  overflow:hidden;
}

body{
  display:flex;
  flex-direction:column;
}

main{
  flex:1 1 auto;
  overflow:hidden;
}

.site-header .container,
.container{
  padding:.9rem 1.25rem;
}

.hero{
  padding:1.8rem 0 1.2rem !important;
}

.hero h2{
  font-size:clamp(1.7rem, 3.5vw, 2.35rem) !important;
  margin:0 0 .45rem;
}

.hero p{
  font-size:clamp(.95rem, 1.35vw, 1.05rem) !important;
  margin:0 0 .55rem;
}

.services h3,
.about h3,
.contact h3{
  margin:.25rem 0 .25rem;
}

.section-lead{
  margin:0 0 .75rem;
}

.services .grid{
  gap:.75rem;
}

.card{
  padding:.8rem .85rem .75rem;
}

.card h4{
  font-size:1.65rem;
  margin:.2rem 0 .35rem;
}

.card p{
  margin:0;
  font-size:.98rem;
}

.card-cta{
  margin-top:.35rem;
}

form{
  padding:.75rem;
}

label{
  margin-top:.35rem;
}

input,
select,
textarea{
  padding:.5rem;
}

button{
  margin-top:.6rem;
}

#privacy{
  display:none;
}

.site-footer{
  margin-top:.25rem;
  padding:.5rem 0;
}


.contact-open{
  margin-top:.65rem;
}

.contact-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:1500;
}

.contact-modal.open{
  display:block;
}

.contact-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(20, 31, 40, 0.42);
}

.contact-modal-panel{
  position:absolute;
  left:50%;
  top:54%;
  transform:translate(-50%, -50%);
  width:min(560px, calc(100vw - 24px));
  max-height:80vh;
  overflow:auto;
  padding:1rem;
  border-radius:14px;
  border:2px solid var(--widget-border);
  background:#fff;
  box-shadow:0 24px 54px rgba(11, 20, 30, 0.3);
}

.contact-modal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  margin-bottom:.5rem;
}

.contact-modal-head h3{
  margin:.1rem 0;
}

.contact-modal-close{
  margin-top:0;
  min-width:34px;
  height:34px;
  line-height:1;
  border-radius:8px;
  padding:0;
  font-size:1.3rem;
  background:#e8eff0;
  color:#214450;
}

@media(max-width:640px){
  .contact-modal-panel{
    top:52%;
    max-height:84vh;
    padding:.82rem;
  }
}
