:root{
  --navy:#06294a;
  --navy-deep:#031c34;
  --blue:#1478bd;
  --blue-2:#238fd2;
  --sky:#72d3ff;
  --ice:#eaf8ff;
  --white:#ffffff;
  --ink:#0b2a49;
  --muted:#61788d;
  --line:#cde5f2;
  --shadow:0 24px 70px rgba(2,35,65,.25);
}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:#f4fbff;
  color:var(--ink);
}
button,input,select{font:inherit}
.hero{
  position:relative;
  min-height:92vh;
  overflow:hidden;
  isolation:isolate;
  background:#06294a;
}
.hero-photo{
  position:absolute;
  inset:0;
  z-index:-3;
}
.hero-photo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 50%;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    linear-gradient(
      90deg,
      rgba(3,28,51,.97) 0%,
      rgba(4,42,76,.90) 27%,
      rgba(5,54,91,.58) 48%,
      rgba(4,33,58,.20) 73%,
      rgba(2,22,39,.25) 100%
    ),
    linear-gradient(
      180deg,
      rgba(2,20,36,.20) 0%,
      rgba(2,20,36,.05) 58%,
      rgba(2,24,43,.40) 100%
    );
}
.hero-inner{
  position:relative;
  z-index:3;
  width:min(1500px,94vw);
  min-height:92vh;
  margin:0 auto;
  padding:64px 0 165px;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
  gap:52px;
  align-items:center;
}
.hero-copy{
  max-width:760px;
  color:#fff;
}
.hero-copy h1{
  margin:0;
  font-size:clamp(42px,5vw,76px);
  line-height:.94;
  letter-spacing:-.07em;
  font-weight:900;
  text-shadow:0 6px 28px rgba(0,0,0,.22);
}
.hero-copy .script{
  display:block;
  margin-top:8px;
  color:var(--sky);
  font-family:Pacifico,cursive;
  font-size:.88em;
  line-height:1.02;
  font-weight:400;
  letter-spacing:-.03em;
  transform:rotate(-2deg);
}
.hero-rule{
  width:min(420px,72%);
  height:2px;
  margin:28px 0 22px;
  background:rgba(255,255,255,.75);
}
.hero-sub{
  margin:0;
  max-width:650px;
  color:rgba(255,255,255,.97);
  font-size:clamp(21px,2vw,29px);
  line-height:1.42;
}
.hero-sub strong{
  color:var(--sky);
}
.calculator-card{
  width:100%;
  max-width:520px;
  justify-self:end;
  padding:32px 28px 25px;
  background:rgba(255,255,255,.975);
  border:1px solid rgba(255,255,255,.88);
  border-radius:22px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(8px);
}
.calc-title{
  margin:0;
  text-align:center;
  font-size:36px;
  line-height:1.05;
  letter-spacing:-.05em;
  font-weight:900;
}
.calc-title span{
  color:var(--blue);
}
.calc-title sup{
  font-size:.34em;
  vertical-align:top;
}
.calc-intro{
  margin:8px 0 20px;
  text-align:center;
  color:var(--muted);
  font-size:15px;
}
.card-divider{
  height:1px;
  background:var(--line);
  margin-bottom:24px;
}
.field{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:14px;
  margin-bottom:21px;
}
.field-icon{
  width:40px;
  height:40px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#dff3ff;
  color:var(--blue);
  font-size:19px;
  font-weight:900;
}
label{
  display:block;
  margin-bottom:8px;
  font-size:15px;
  line-height:1.35;
  font-weight:800;
}
input,
select{
  width:100%;
  height:48px;
  padding:0 14px;
  border:1px solid #a8cadc;
  border-radius:8px;
  background:#fff;
  color:var(--ink);
  outline:none;
}
input:focus,
select:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(20,120,189,.12);
}
.result-box{
  padding:24px 20px 22px;
  border-radius:12px;
  text-align:center;
  background:linear-gradient(180deg,#effaff 0%,#dff3ff 100%);
}
.result-kicker{
  color:var(--blue);
  font-size:13px;
  font-weight:900;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.result-date{
  margin:10px 0 7px;
  color:var(--navy);
  font-size:clamp(36px,3.5vw,50px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.045em;
}
.wave{
  color:var(--blue);
  font-size:27px;
  letter-spacing:-7px;
  margin-bottom:8px;
}
.result-note{
  max-width:390px;
  margin:0 auto;
  font-size:14px;
  line-height:1.5;
}
.sample-disclosure{
  margin:14px auto 0;
  max-width:410px;
  padding-top:13px;
  border-top:1px solid rgba(20,120,189,.18);
  color:#4f6f88;
  font-size:12px;
  line-height:1.5;
}
.sample-disclosure strong{
  color:var(--navy);
}
.calc-methodology{
  margin-top:18px;
  padding-top:15px;
  border-top:1px solid rgba(20,120,189,.18);
  color:#71879a;
  text-align:center;
  font-size:11px;
  line-height:1.55;
}
.calc-methodology strong{
  color:var(--navy);
  font-size:12px;
}
.trust-strip{
  position:absolute;
  left:50%;
  bottom:22px;
  z-index:5;
  transform:translateX(-50%);
  width:min(1460px,94vw);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  overflow:hidden;
  background:rgba(255,255,255,.96);
  border-radius:20px;
  box-shadow:0 14px 42px rgba(2,35,65,.20);
}
.trust-item{
  display:flex;
  align-items:center;
  gap:15px;
  padding:22px 26px;
  border-right:1px solid #dbeaf2;
}
.trust-item:last-child{
  border-right:0;
}
.trust-icon{
  flex:0 0 auto;
  width:50px;
  height:50px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#1769ad;
  color:#fff;
  font-size:22px;
  font-weight:900;
}
.trust-item strong{
  display:block;
  margin-bottom:4px;
  font-size:17px;
  line-height:1.1;
}
.trust-item span{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.35;
}
.contractor-directory{padding:78px 0 90px;background:#f4fbff}
.directory-wrap{width:min(1400px,94vw);margin:0 auto}
.directory-header{max-width:780px;margin-bottom:28px}
.directory-eyebrow{margin-bottom:8px;color:var(--blue);font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.directory-header h2{margin:0;color:var(--navy);font-size:clamp(34px,4vw,52px);line-height:1.02;letter-spacing:-.055em}
.directory-header p{margin:14px 0 0;color:var(--muted);font-size:17px;line-height:1.65}
.directory-controls{display:block;margin-bottom:18px}
.directory-search{width:100%;height:50px;padding:0 15px;border:1px solid #a8cadc;border-radius:10px;background:#fff;color:var(--ink);outline:none}
.directory-search:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(20,120,189,.12)}
.directory-results{display:flex;justify-content:space-between;gap:20px;margin-bottom:14px;color:var(--muted);font-size:12px}
.pool-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pool-directory-card{display:flex;flex-direction:column;min-width:0;padding:18px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 24px rgba(2,35,65,.045)}
.pool-directory-card[hidden]{display:none}
.pool-directory-card-top{min-height:66px}
.pool-directory-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pool-directory-card h3{margin:0;color:var(--navy);font-size:18px;line-height:1.08;letter-spacing:-.025em}
.pool-directory-license{margin-top:6px;color:var(--muted);font-size:10px}
.splashdate-badge,.limited-badge{flex:0 0 auto;padding:5px 7px;border-radius:999px;font-size:8px;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.035em}
.splashdate-badge{background:#dff3ff;color:var(--blue)}
.limited-badge{background:#f1f3f5;color:#788894}
.pool-directory-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.pool-directory-metric{min-width:0;padding:12px;background:#f6f9fc;border:1px solid #dbe4ec;border-radius:13px}
.pool-directory-metric span,.pool-directory-total span{display:block;color:var(--muted);font-size:9px;line-height:1.25}
.pool-directory-metric strong{display:block;margin-top:6px;color:var(--navy);font-size:21px;line-height:1.05}
.pool-directory-card-bottom{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px}
.pool-directory-total strong{display:block;margin-top:5px;color:#d51d1d;font-size:17px}
.pool-directory-link{flex:0 0 auto;padding:9px 13px;border:1px solid #d8e1e9;border-radius:999px;color:var(--navy);font-size:10px;font-weight:900}
.pool-directory-link:hover{border-color:var(--blue);color:var(--blue)}
.directory-empty{padding:30px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:14px;color:var(--muted)}
/* ── RESEARCH SECTION (homepage) ── */
.research-section{padding:64px 0 60px;background:var(--navy)}
.research-wrap{width:min(1460px,94vw);margin:0 auto}
.research-header{max-width:760px;margin-bottom:26px}
.research-eyebrow{margin-bottom:7px;color:var(--sky);font-size:12px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.research-header h2{margin:0 0 10px;font-size:clamp(27px,3vw,42px);line-height:1.02;letter-spacing:-.05em;color:#fff}
.research-header p{margin:0;color:rgba(255,255,255,.78);font-size:15px;line-height:1.65}
.research-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.research-card{display:block;padding:26px 28px;background:#fff;border-radius:18px;box-shadow:0 10px 32px rgba(2,20,40,.28);transition:transform .15s ease,box-shadow .15s ease}
.research-card:hover{transform:translateY(-3px);box-shadow:0 18px 46px rgba(2,20,40,.38)}
.research-kicker{margin-bottom:8px;color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.research-card h3{margin:0 0 8px;font-size:21px;line-height:1.15;letter-spacing:-.035em;color:var(--navy)}
.research-card p{margin:0 0 13px;color:var(--muted);font-size:14px;line-height:1.65}
.research-link{font-size:13px;font-weight:900;color:var(--blue)}

@media(max-width:720px){
.field{
    grid-template-columns:38px minmax(0,1fr);
gap:10px;
  }
.field > div:last-child{
    min-width:0;
  }
input, select{
    width:100%;
    max-width:100%;
    min-width:0;
box-sizing:border-box;
  }
input[type="date"]{
    display:block;
    box-sizing:border-box;
-webkit-appearance:none;
appearance:none;
font-size:16px;
  }
}

@media(max-width:720px){
.hero-inner{
    grid-template-columns:1fr;
    align-items:start;
    padding:44px 0 380px;
    gap:38px;
  }
.hero-copy{
    max-width:800px;
  }
.calculator-card{
    justify-self:center;
    max-width:680px;
  }
.trust-strip{
    grid-template-columns:repeat(2,1fr);
  }
.trust-item:nth-child(2){
    border-right:0;
  }
.trust-item:nth-child(-n+2){
    border-bottom:1px solid #dbeaf2;
  }
}

@media(max-width:720px){
.hero{
    min-height:auto;
  }
.hero-photo{
    height:570px;
    bottom:auto;
  }
.hero-photo img{
    object-position:center 45%;
  }
.hero::before{
    height:570px;
    bottom:auto;
    background:
      linear-gradient(
        180deg,
        rgba(3,28,51,.34) 0%,
        rgba(3,28,51,.18) 34%,
        rgba(3,28,51,.56) 70%,
        rgba(3,28,51,.95) 100%
      );
  }
.hero-inner{
    width:92vw;
    min-height:auto;
    padding:40px 0 500px;
    gap:18px;
  }
.hero-copy{
    min-height:390px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
.hero-copy h1{
    font-size:42px;
    line-height:.94;
  }
.hero-copy .script{
    font-size:.80em;
  }
.hero-sub{
    font-size:18px;
  }
.calculator-card{
    position:relative;
    z-index:8;
    width:100%;
    max-width:560px;
    margin:0 auto;
    padding:26px 18px 22px;
    border-radius:18px;
  }
.calc-title{
    font-size:30px;
  }
.field{
    grid-template-columns:38px minmax(0,1fr);
    gap:10px;
  }
.field-icon{
    width:36px;
    height:36px;
    font-size:17px;
  }
.trust-strip{
    width:92vw;
    bottom:18px;
    grid-template-columns:1fr;
    border-radius:16px;
  }
.trust-item{
    padding:16px 18px;
    border-right:0;
    border-bottom:1px solid #dbeaf2!important;
  }
.trust-item:last-child{
    border-bottom:0!important;
  }
.trust-icon{
    width:42px;
    height:42px;
    font-size:20px;
  }
.trust-item strong{
    font-size:15px;
  }
}

@media(max-width:980px){
.pool-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
.directory-results{display:block}
.pool-directory-grid{grid-template-columns:1fr}
.pool-directory-heading-row{display:block}
.splashdate-badge,.limited-badge{display:inline-block;margin-top:8px}
}

@media(max-width:860px){
.research-section{padding:52px 0 48px}
.research-grid{grid-template-columns:1fr}
}
