/* Base */
*{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg:#EEF3FF;
  --card:#fff;
  --ink:#101828;
  --muted:#667085;
  --primary:#3B82F6;
  --primary-contrast:#fff;
  --border:#E5E7EB;
  --shadow:0 10px 25px -12px rgba(16,24,40,.15);
  --radius:14px;
  --radius-sm:10px;
  --space:clamp(16px,2.5vw,24px);
  --popover:#0F172A;
}

html,body{
  height:100%;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans";
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
}

.email-calculator{max-width:1040px;margin:0 auto;padding:calc(var(--space)*1.5) var(--space)}

.calculator-header{
  text-align:center;display:flex;flex-direction:column;align-items:center;
  margin-bottom:calc(var(--space) * 1.25)
}
.calculator-title{font-size:clamp(26px,2.8vw,36px);font-weight:800;letter-spacing:.2px;margin-bottom:6px}
.calculator-subtitle{color:var(--muted);max-width:760px;margin:0 auto}

.calculator-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:calc(var(--space)*1.1);margin-top:var(--space);box-shadow:var(--shadow)}

.form-group{margin-bottom:18px;position:relative}
.form-label{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:700;margin-bottom:8px}
.form-input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--ink);font-size:16px}
.form-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(59,130,246,.2)}

.radio-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.radio-pill{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;user-select:none}
.radio-pill input{appearance:none;width:18px;height:18px;border:2px solid var(--border);border-radius:50%;position:relative}
.radio-pill input:checked{border-color:var(--primary)}
.radio-pill input:checked::after{content:"";position:absolute;inset:4px;background:var(--primary);border-radius:50%}
.radio-pill span{display:flex;flex-direction:column}
.radio-pill strong{font-size:14px}
.radio-pill small{color:var(--muted);font-size:12px}

.calculate-btn{margin-top:10px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 16px;border:none;border-radius:var(--radius-sm);background:var(--primary);color:var(--primary-contrast);font-weight:700;font-size:16px;cursor:pointer;box-shadow:var(--shadow);transition:transform .06s ease,filter .2s ease}
.calculate-btn:hover{filter:brightness(1.05)}
.calculate-btn:active{transform:translateY(1px)}

.results-section{margin-top:calc(var(--space)*1.1)}
.results-section.hidden{display:none}
.results-header{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}
.results-title{font-size:20px;font-weight:800}
.sort-hint{color:var(--muted);font-size:13px}

/* Header bar (sortable) */
.column-headers{
  display:grid;
  grid-template-columns:1.2fr 1fr .9fr 1.3fr .8fr .9fr;
  gap:8px;
  padding:8px;
  margin:8px 0 12px 0;
  background:#F7F9FF;
  border:1px solid #E5E7EE;
  border-radius:16px;
  overflow:auto; /* usable on small screens */
}
.col-head{
  appearance:none;-webkit-appearance:none;background:transparent;border:none;color:var(--ink);
  text-align:left;font-weight:700;font-size:14px;padding:10px 12px;border-radius:10px;line-height:1;cursor:default;white-space:nowrap
}
.col-head.sort{cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s ease,box-shadow .15s ease,color .15s ease}
.col-head.sort:hover{background:#EEF3FF}
.col-head.sort:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.25)}
.col-head.sort.active{background:#E8F0FF;color:var(--primary);box-shadow:inset 0 0 0 2px rgba(59,130,246,.35)}
.col-head.sort::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid transparent;transform:translateY(1px);opacity:.7}
.col-head.sort.active::after{border-top-color:currentColor}
.col-head.sort.desc.active::after{border-top-color:transparent;border-bottom:6px solid currentColor;transform:translateY(-1px)}

/* Cards */
.results-container{display:grid;gap:12px}
.provider-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .08s ease}
.provider-card:hover{transform:translateY(-2px)}

.provider-layout{
  display:grid;gap:14px;align-items:center;padding:16px;
  grid-template-columns:1.2fr 1fr .9fr 1.3fr .8fr .9fr;
}
.provider-column{display:flex;flex-direction:column;gap:6px;min-height:40px}
.provider-column.center{align-items:center;text-align:center}
.provider-column.right{align-items:flex-end;text-align:right}

.provider-name{font-weight:700}
.provider-link{color:inherit;text-decoration:none;border-bottom:1px dotted transparent}
.provider-link:hover{color:var(--primary);border-bottom-color:var(--primary)}

.best-fit{color:var(--muted);font-size:13px}
.free-offer{color:var(--muted);font-size:13px;line-height:1.35;white-space:normal}
.monthly-price{color:var(--primary);font-size:22px;font-weight:800}
.yearly-price{color:var(--muted);font-size:12px}
.try-button{padding:10px 14px;background:var(--primary);color:#fff;text-decoration:none;border-radius:10px;font-weight:700;font-size:14px;display:inline-flex;justify-content:center;align-items:center}

/* Accessibility helper to hide the original select while keeping it in DOM for JS */
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ===== Range (slider) ===== */
/* Tighten the vertical rhythm so bubble stays close to slider and never overlaps the next question */
.range-wrap{
  position:relative;
  padding-top:6px;
  padding-bottom:34px; /* enough space for bubble below */
}
.form-range{
  -webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--primary) 0%,var(--primary) 0%, #E5E7EB 0%);outline:none;
}
.form-range:focus{box-shadow:0 0 0 3px rgba(59,130,246,.2)}
.form-range::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;
  background:#fff;border:2px solid var(--primary);box-shadow:var(--shadow);cursor:pointer;
}
.form-range::-moz-range-thumb{
  width:22px;height:22px;border-radius:50%;
  background:#fff;border:2px solid var(--primary);box-shadow:var(--shadow);cursor:pointer;
}
/* bubble positioned just beneath the track (no huge gap, no overlap) */
.range-value{
  position:absolute;
  top:28px;              /* sits just under the track */
  left:0;
  transform:translateX(-50%);
  background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);
  padding:6px 10px;border-radius:8px;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;z-index:1;
}

/* ===== Inline help popovers ===== */
.help{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:50%;background:#E9EEFF;color:#335CFF;
  font-weight:800;font-size:12px;line-height:1;cursor:help;position:relative;user-select:none
}
.help:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}
.help-popover{
  position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);
  min-width:220px;max-width:300px;padding:10px 12px;border-radius:10px;background:var(--popover);color:#fff;
  font-size:12px;line-height:1.4;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:10
}
.help-popover::after{
  content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);
  border-width:6px;border-style:solid;border-color:var(--popover) transparent transparent transparent;
}
.help:hover .help-popover,
.help:focus .help-popover{opacity:1}

/* ===== Suggested tools section ===== */
.tools-section{margin-top:18px}
.tools-section h3{font-size:18px;font-weight:800;margin:8px 0 10px}
.tools-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.tool-card{
  display:flex;flex-direction:column;gap:8px;
  background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .08s ease, box-shadow .15s ease;
}
.tool-card:hover{transform:translateY(-2px)}
.tool-card h4{font-size:15px;font-weight:800}
.tool-card p{font-size:13px;color:var(--muted)}
.tool-cta{font-weight:700;font-size:13px}

/* ===== Responsive ===== */
@media (max-width:1024px){
  .provider-layout,.column-headers{grid-template-columns:1.4fr .9fr .9fr 1fr .8fr .9fr}
}
@media (max-width:820px){
  .radio-group{grid-template-columns:1fr}
  .column-headers{display:grid}
  .provider-layout{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .provider-column.right,.provider-column.center{align-items:flex-start;text-align:left}
  .tools-grid{grid-template-columns:1fr}
}
@media (max-width:520px){
  .calculator-card{padding:16px}
  .provider-layout{grid-template-columns:1fr}
  .monthly-price{font-size:20px}
}
/* Keep the bubble safely inside on both sides and add tidy spacing */
.calculator-card{
  overflow: hidden;      /* prevents bubble from hanging outside the rounded card */
}

.range-wrap{
  position: relative;
  /* Side insets sized to half the widest bubble (“Upto 500,000 Contacts”) */
  padding-left: 110px;   /* adjust if your bubble copy changes length */
  padding-right: 110px;
  /* Reserve room below the track for the bubble so it won't overlap next section */
  padding-top: 8px;
  padding-bottom: 42px;
}

.form-range{
  width: 100%;
  display: block;
}

/* Places the bubble a clean distance under the track */
.range-value{
  top: 36px;             /* space between track and bubble */
  transform: translateX(-50%); /* keep bubble centered on the thumb */
  z-index: 1;            /* ensure it renders above the track */
}
/* How far inside the card the bubble must stay (half bubble width) */
:root { --bubble-inset: 96px; } /* tweak if your bubble text changes length */

/* Slider container spacing stays modest */
.range-wrap{
  position: relative;
  padding-top: 8px;
  padding-bottom: 42px; /* reserved room for bubble */
}

/* Let CSS clamp the bubble so it never leaves the card */
.range-value{
  position: absolute;
  top: 36px;                          /* neat gap under the track */
  transform: translateX(-50%);        /* keep it centered relative to 'left' */
  left: clamp(var(--bubble-inset),
              var(--bubble-left, 50%),
              calc(100% - var(--bubble-inset)));
  z-index: 1;
}

/* Ensure the card doesn't crop the bubble (rounded corners look clean) */
.calculator-card{ overflow: visible; }

.how-section { margin-top: 24px; } /* :contentReference[oaicite:0]{index=0} */

.how-wrap {
  max-width: 1040px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 16px;
} /* :contentReference[oaicite:1]{index=1} */

.how-wrap h2 { font-size: 20px; font-weight: 800; margin-bottom: 8px; } /* :contentReference[oaicite:2]{index=2} */
.how-wrap h3 { font-size: 16px; font-weight: 800; margin-top: 14px; margin-bottom: 8px; } /* :contentReference[oaicite:3]{index=3} */
.how-wrap p  { margin: 8px 0; color: var(--ink); } /* :contentReference[oaicite:4]{index=4} */