/* Scoped calculator styles; the bright brand accent is decorative, dark teal keeps text legible. */
.efficiency { --sim-accent:#00B1C5; --sim-ink:#007581; }
.efficiency__eyebrow { color:var(--sim-ink); font-size:12px; letter-spacing:.12em; font-weight:700; margin-bottom:16px; }
.efficiency__lead { margin:24px 0 36px; color:var(--text-soft); }
.efficiency__layout { display:grid; grid-template-columns:1fr 1fr; border:1px solid var(--line); border-top:3px solid var(--sim-accent); border-radius:12px; overflow:hidden; }
.efficiency__settings,.efficiency__results { padding:32px; min-width:0; }
.efficiency__results { background:#eaf8fa; border-left:1px solid var(--line); }
.efficiency__settings-head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; align-items:center; margin-bottom:12px; }
.efficiency__settings-head h3 { font-size:20px; }
.efficiency button { font:inherit; font-size:12px; color:var(--sim-ink); background:white; border:1px solid var(--sim-ink); border-radius:4px; padding:8px 10px; cursor:pointer; }
.efficiency__hint { font-size:12px; color:var(--text-soft); line-height:1.8; }
.efficiency__fields { display:grid; grid-template-columns:1fr; gap:10px; padding:0; margin:24px 0 8px; border:0; min-width:0; }
.efficiency__field { min-width:0; }
.efficiency__field label { display:block; font-size:13px; font-weight:700; margin-bottom:6px; }
.efficiency__input { display:flex; align-items:center; gap:12px; }
.efficiency input { font:inherit; font-size:16px; width:108px; min-width:0; border:1px solid #859b9e; border-radius:4px; padding:5px 8px; background:white; color:var(--ink); }
.efficiency__input span { font-size:11px; color:var(--text-soft); }
.efficiency input[aria-invalid="true"] { border-color:#a42d26; }
.efficiency__error { font-size:12px; color:#a42d26; min-height:2.1em; overflow-wrap:anywhere; }
.efficiency :is(input,button,a):focus-visible { outline:3px solid var(--sim-ink); outline-offset:4px; }
.efficiency__monthly { font-size:clamp(29px,3.4vw,46px); line-height:1.4; color:var(--sim-ink); font-weight:700; overflow-wrap:anywhere; }
.efficiency__annual { font-size:26px; margin:8px 0 24px; overflow-wrap:anywhere; }
.efficiency__value { font-size:14px; }
.efficiency__value strong { display:block; font-size:clamp(23px,2.5vw,32px); color:var(--sim-ink); overflow-wrap:anywhere; margin:4px 0 12px; }
.efficiency__net { margin-top:16px; padding-top:14px; border-top:1px solid #bddfe3; font-size:14px; overflow-wrap:anywhere; }
.efficiency__chart { margin:28px 0; }
.efficiency__chart figcaption { font-size:13px; font-weight:700; margin-bottom:14px; }
.efficiency__chart-row { margin-top:12px; }
.efficiency__chart-row span { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:12px; }
.efficiency__chart-row b { font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.efficiency__track { height:16px; background:#d5e9ec; border-radius:3px; overflow:hidden; margin-top:6px; }
.efficiency__bar { height:100%; background:var(--sim-accent); }
.efficiency__bar--before { background:#657e83; }
.efficiency__cta { display:flex; text-align:center; justify-content:center; gap:10px; margin:24px 0 10px; font-size:14px; padding:15px; }
.efficiency__disclaimer { font-size:12px; color:var(--text-soft); border-top:1px solid var(--line); margin-top:24px; padding-top:16px; }
.efficiency__sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
@media(max-width:800px) { .efficiency__layout { grid-template-columns:1fr; } .efficiency__results { border-left:0; border-top:1px solid var(--line); } }
@media(max-width:480px) { .efficiency__settings,.efficiency__results { padding:24px 18px; } .efficiency__fields { gap:8px 14px; } .efficiency .section__title { font-size:25px; } }
/* Large native slider thumbs support dragging, touch, and arrow keys. */
.efficiency input.efficiency__slider { -webkit-appearance:none; appearance:none; display:block; width:100%; height:44px; margin:4px 0 0; padding:0; border:0; border-radius:0; cursor:grab; background:transparent; touch-action:pan-y; }
.efficiency input.efficiency__slider:active { cursor:grabbing; }
.efficiency__slider::-webkit-slider-runnable-track { height:8px; border-radius:8px; background:linear-gradient(to right,var(--sim-accent) var(--gauge-fill,0%),#d5e6e9 var(--gauge-fill,0%)); }
.efficiency__slider::-moz-range-track { height:8px; border-radius:8px; background:#d5e6e9; }
.efficiency__slider::-moz-range-progress { height:8px; border-radius:8px; background:var(--sim-accent); }
.efficiency__slider::-webkit-slider-thumb { -webkit-appearance:none; width:28px; height:28px; margin-top:-10px; border-radius:50%; background:white; border:3px solid var(--sim-ink); box-shadow:0 2px 6px #00545e25; }
.efficiency__slider::-moz-range-thumb { width:22px; height:22px; border-radius:50%; background:white; border:3px solid var(--sim-ink); box-shadow:0 2px 6px #00545e25; }
.efficiency__range-ends { display:flex; justify-content:space-between; font-size:11px; color:var(--text-soft); margin-top:-4px; }
.efficiency__error:empty { min-height:12px; }
@media(max-width:480px) { .efficiency__fields { grid-template-columns:1fr; gap:10px; } .efficiency__field label { min-height:0; margin-bottom:8px; } .efficiency__input { flex-wrap:nowrap; align-items:center; gap:12px; } .efficiency__input span { flex:1; } }
/* Keep the full-width gauge while grouping its label and value on one row. */
.efficiency__fields { gap:8px; margin-top:20px; }
.efficiency__field { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:12px; }
.efficiency__field label { margin:0; line-height:1.5; }
.efficiency__input { gap:7px; }
.efficiency__input input { width:82px; font-size:15px; padding:4px 7px; }
.efficiency__input span { max-width:90px; line-height:1.4; }
.efficiency input.efficiency__slider { grid-column:1 / -1; margin:0; }
.efficiency__range-ends,.efficiency__error { grid-column:1 / -1; }
.efficiency__error:empty { min-height:0; }
.efficiency__error { min-height:0; }
@media(max-width:480px) {
  .efficiency__fields { gap:12px; }
  .efficiency__field { column-gap:8px; }
  .efficiency__field label { font-size:12px; margin:0; }
  .efficiency__input { flex-direction:column; gap:3px; align-items:flex-end; }
  .efficiency__input input { width:82px; }
  .efficiency__input span { font-size:10px; text-align:right; max-width:100px; }
}
.simulation-breadcrumb a:focus-visible { outline:3px solid var(--accent-ink); outline-offset:5px; }
.simulation-breadcrumb { padding-top:138px; font-size:12px; color:var(--text-soft); }
.efficiency--page.section { padding-top:32px; }
.efficiency--page h1 { font-size:clamp(25px,3vw,36px); }
.simulation-back { margin-top:32px; margin-bottom:64px; font-size:14px; color:var(--accent-ink); }
@media(max-width:800px) { .simulation-breadcrumb { padding-top:110px; } }

/* One large, self-explanatory entry card. The entire surface is a single link. */
.simulation-invite__card { display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; padding:44px; color:var(--text); text-decoration:none; border:1px solid #b5dce1; border-radius:18px; background:linear-gradient(125deg,#f8fdfd,#e5f7f9); box-shadow:0 12px 40px #004f5b08; transition:transform .2s,box-shadow .2s,border-color .2s; }
.simulation-invite__card:hover { transform:translateY(-4px); border-color:#00B1C5; box-shadow:0 18px 45px #004f5b15; }
.simulation-invite__card:focus-visible { outline:3px solid var(--accent-ink); outline-offset:6px; }
.simulation-invite__eyebrow { display:inline-block; color:#006a77; border:1px solid #b5dce1; border-radius:30px; padding:4px 12px; background:#fff9; font-size:12px; font-weight:700; letter-spacing:.06em; margin-bottom:18px; }
.simulation-invite h2 { font-size:clamp(24px,2.6vw,32px); line-height:1.65; }
.simulation-invite__description { margin:18px 0 26px; font-size:15px; line-height:1.9; color:var(--text-soft); }
.simulation-invite__button { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:58px; padding:14px 24px; background:#007b89; color:white; border-radius:7px; font-size:15px; font-weight:700; }
.simulation-invite__button > span { transition:transform .2s; font-size:22px; }
.simulation-invite__card:hover .simulation-invite__button > span { transform:translateX(5px); }
.simulation-invite__privacy { margin-top:10px; font-size:12px; color:var(--text-soft); }
.simulation-invite__preview { background:#fff; border:1px solid #d1e8eb; border-radius:12px; padding:26px; box-shadow:0 6px 20px #00566308; min-width:0; }
.simulation-invite__preview-label { font-size:12px; color:var(--text-soft); margin-bottom:18px; }
.simulation-invite__comparison { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.simulation-invite__comparison > div > span { display:block; font-size:12px; color:var(--text-soft); }
.simulation-invite__comparison strong { display:block; font-family:var(--sans); font-size:46px; line-height:1.4; font-weight:700; color:#476267; font-variant-numeric:tabular-nums; }
.simulation-invite__comparison > div:last-child strong { color:#007b89; }
.simulation-invite small { font-size:17px; margin-left:5px; font-weight:500; }
.simulation-invite__arrow { color:#007b89; font-size:25px; }
.simulation-invite__mini-bars { display:grid; gap:8px; margin:12px 0 22px; }
.simulation-invite__mini-bars span { height:8px; background:#718b90; border-radius:4px; }
.simulation-invite__mini-bars span:last-child { width:50%; background:#00B1C5; }
.simulation-invite__outcome { display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; justify-content:space-between; border-top:1px solid var(--line); padding-top:14px; }
.simulation-invite__outcome > span { font-size:13px; color:#007581; font-weight:700; }
.simulation-invite__outcome strong { font-size:48px; color:#007581; line-height:1.4; }
.simulation-invite__example-note { margin-top:10px; color:var(--text-soft); font-size:11px; line-height:1.7; }
.simulation-invite__try { display:flex; justify-content:space-between; gap:8px; padding-top:18px; margin-top:18px; border-top:1px solid var(--line); font-size:12px; color:#007581; }
@media(max-width:800px) { .simulation-invite__card { grid-template-columns:1fr; gap:26px; padding:28px; } .simulation-invite__description br { display:none; } .simulation-invite__button { width:100%; } }
@media(max-width:480px) { .simulation-invite__card { padding:22px 18px; gap:22px; } .simulation-invite__preview { padding:20px 16px; } .simulation-invite h2 { font-size:24px; } .simulation-invite__button { padding:13px 16px; font-size:14px; gap:12px; } .simulation-invite__comparison strong { font-size:40px; } }
@media(prefers-reduced-motion:reduce) { .simulation-invite__card,.simulation-invite__button > span { transition:none; } .simulation-invite__card:hover,.simulation-invite__card:hover .simulation-invite__button > span { transform:none; } }
.simulation-return { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid #bddfe3; border-radius:6px; background:white; color:var(--accent-ink); text-decoration:none; font-size:14px; }
.simulation-return:hover { background:var(--pale); }
.simulation-return:focus-visible { outline:3px solid var(--accent-ink); outline-offset:4px; }
.simulation-invite__demo-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 20px; margin-bottom:12px; color:var(--text-soft); font-size:12px; }
.simulation-invite__demo-controls button { font:inherit; color:var(--accent-ink); background:white; border:1px solid #bddfe3; border-radius:6px; min-height:44px; padding:8px 14px; cursor:pointer; }
.simulation-invite__demo-controls button:focus-visible { outline:3px solid var(--accent-ink); outline-offset:4px; }
.simulation-invite__demo-gauge { margin:0 0 20px; font-size:11px; color:var(--text-soft); }
.simulation-invite__demo-track { position:relative; height:7px; border-radius:5px; background:#d5e9ec; margin:20px 12px 28px; }
.simulation-invite__demo-track i { display:block; position:absolute; top:50%; left:16.6667%; width:23px; height:23px; transform:translate(-50%,-50%); background:white; border:3px solid #007581; border-radius:50%; }
.simulation-invite__demo-track svg { position:absolute; width:27px; height:27px; left:8px; top:12px; opacity:0; }
.is-demo-playing .simulation-invite__demo-track svg { opacity:1; }
.simulation-invite__comparison strong,.simulation-invite__outcome strong { font-variant-numeric:tabular-nums; }
/* Match the site's editorial typography and fine rules rather than a dashboard card. */
.simulation-invite__card { gap:64px; padding:36px 0; border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; transition:border-color .2s; }
.simulation-invite__card:hover { transform:none; box-shadow:none; border-color:#7ebbc3; }
.simulation-invite__eyebrow { border:0; border-radius:0; padding:0; background:transparent; color:var(--text-soft); font-size:11px; font-weight:500; letter-spacing:.12em; }
.simulation-invite h2 { font-size:clamp(24px,2.35vw,29px); font-weight:500; letter-spacing:.06em; }
.simulation-invite__description { font-size:14px; line-height:2; }
.simulation-invite__button { background:transparent; color:var(--accent-ink); border-radius:0; border-top:1px solid var(--line); border-bottom:1px solid var(--accent-ink); padding:14px 0; min-height:56px; font-size:14px; font-weight:500; letter-spacing:.05em; }
.simulation-invite__privacy { font-size:11px; margin-top:12px; }
.simulation-invite__preview { padding:8px 0 8px 32px; border:0; border-left:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
.simulation-invite__preview-label { letter-spacing:.08em; }
.simulation-invite__comparison strong { font-family:var(--serif); font-size:42px; font-weight:500; color:var(--text-soft); }
.simulation-invite__comparison > div:last-child strong { color:var(--ink); }
.simulation-invite__mini-bars span { height:3px; border-radius:0; background:#9eafb2; }
.simulation-invite__mini-bars span:last-child { background:#00B1C5; }
.simulation-invite__outcome strong { font-family:var(--serif); font-size:43px; font-weight:500; color:var(--ink); }
.simulation-invite__outcome > span { color:var(--text-soft); font-weight:500; }
.simulation-invite__demo-track { height:3px; border-radius:0; }
.simulation-invite__demo-track i { width:18px; height:18px; border-width:1.5px; }
.simulation-invite__demo-controls button { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; font-size:11px; padding:8px 0; }
.simulation-invite__try { font-size:11px; color:var(--text-soft); }
@media(max-width:800px) { .simulation-invite__card { gap:28px; padding:28px 0; } .simulation-invite__preview { padding:24px 0 0; border-left:0; border-top:1px solid var(--line); } }
/* Make the full linked area unmistakable on hover and keyboard focus. */
.simulation-invite__card { transition:background-color .18s,border-color .18s; cursor:pointer; }
.simulation-invite__card:is(:hover,:focus-visible) { background-color:transparent; border-color:#007f8e; }
.simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__button { background:#007b89; color:#fff; border-color:#007b89; padding-left:16px; padding-right:16px; }
.simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__preview { border-color:#83bcc4; }
@media(prefers-reduced-motion:reduce) { .simulation-invite__card { transition:none; } }
.simulation-invite__button { padding-left:16px; padding-right:16px; }
/* Give the highlighted surface real internal space, identical in every state. */
.simulation-invite__card { padding:40px 44px; gap:44px; transition:none; }
.simulation-invite__card:hover .simulation-invite__button > span { transform:none; }
.simulation-invite__button > span { transition:none; }
@media(max-width:800px) { .simulation-invite__card { padding:30px 28px; gap:28px; } }
@media(max-width:480px) { .simulation-invite__card { padding:26px 22px; } }

/* Ease into the hover treatment without moving the layout. */
.simulation-invite__card { transition:background-color .65s cubic-bezier(.22,1,.36,1),border-color .65s cubic-bezier(.22,1,.36,1); }
.simulation-invite__button { transition:background-color .5s ease,color .5s ease,border-color .5s ease; }
.simulation-invite__preview { transition:border-color .65s ease; }
.simulation-invite__button > span { transition:transform .55s cubic-bezier(.22,1,.36,1); }
.simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__button > span { transform:translateX(4px); }
@media(prefers-reduced-motion:reduce) { .simulation-invite__card,.simulation-invite__button,.simulation-invite__preview,.simulation-invite__button > span { transition:none; } .simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__button > span { transform:none; } }

/* A diagonal waterline fills the surface; content never moves. */
.simulation-invite__card { position:relative; isolation:isolate; overflow:hidden; background:transparent; transition:border-color .8s ease; }
.simulation-invite__copy,.simulation-invite__preview { position:relative; z-index:1; }
.simulation-invite__water { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; overflow:hidden; }
.simulation-invite__tide { transform:translateY(110%); transition:transform 1s cubic-bezier(.16,1,.3,1); }
.simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__tide { transform:translateY(-75%); transition-duration:5s; transition-timing-function:cubic-bezier(.08,1,.16,1); }
.simulation-invite__water-glow { filter:blur(8px); }
.simulation-invite__water-ripple { position:absolute; left:30%; top:65%; width:120px; height:70px; margin:-35px -60px; border:1px solid #4fbac866; border-radius:50%; pointer-events:none; opacity:0; z-index:0; }
.simulation-invite__water-ripple::after { content:""; position:absolute; inset:10px; border:1px solid #ffffffb3; border-radius:50%; }
.simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__water-ripple { animation:simulation-water-ripple 1.1s ease-out 1.05s both; }
@keyframes simulation-water-ripple { 0% { opacity:0; transform:scale(.3); } 20% { opacity:.65; } 100% { opacity:0; transform:scale(3); } }
.simulation-invite__card .simulation-invite__button { transition:background-color .6s ease .12s,color .6s ease .12s,border-color .6s ease .12s; }
@media(prefers-reduced-motion:reduce) {
  .simulation-invite__card,.simulation-invite__tide,.simulation-invite__card .simulation-invite__button { transition:none; }
  .simulation-invite__card:is(:hover,:focus-visible) .simulation-invite__water-ripple { animation:none; }
}
