/* G395 on-page tools (T-395): the absence rate calculator, the total reward
   statement builder and the communication year plan. They replace the
   downloads (Zak, 26 Sep 2026). The site's own language only: 3px black
   rules, hard offset shadows, Montserrat 900 uppercase labels, pink for
   emphasis. Buttons are the site's .btn-primary and .btn-secondary.
   Nothing here is page-specific; each page keeps its own layout. */
.g395-tool{border:3px solid var(--black);box-shadow:8px 8px 0 var(--pink);background:var(--white);padding:30px;max-width:900px;margin:0 0 8px;scroll-margin-top:96px}
.g395-anchor{scroll-margin-top:72px}
.g395-tool .cap{font-weight:900;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);margin-bottom:10px}
.g395-tool h3{font-weight:900;font-size:22px;line-height:1.15;letter-spacing:-.03em;text-transform:uppercase;margin:0 0 10px;color:var(--black)}
.g395-tool p{font-weight:500;font-size:15px;line-height:1.7;color:#444;margin:0 0 16px}
.g395-tool .g395-privacy{font-weight:700;font-size:12.5px;color:#666;line-height:1.6;margin:18px 0 0}
.g395-tool .g395-warn{border:3px solid var(--black);background:var(--off-white);padding:14px 18px;font-weight:600;color:var(--black)}
.g395-fields{display:grid;gap:18px;margin:22px 0 24px}
.g395-field label,.g395-field .g395-label,.g395-tool legend{display:block;font-weight:900;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--black);margin-bottom:6px}
.g395-field .g395-hint{display:block;font-weight:500;font-size:13px;color:#666;line-height:1.5;margin:0 0 8px}
.g395-tool input[type=text]{font-family:'Montserrat',sans-serif;font-weight:700;font-size:16px;color:var(--black);background:var(--white);
  border:3px solid var(--black);padding:11px 14px;width:100%;max-width:340px;border-radius:0;-webkit-appearance:none;appearance:none}
.g395-tool input[type=text]:focus-visible,.g395-tool input[type=checkbox]:focus-visible,.g395-tool button:focus-visible,
.g395-tool a:focus-visible{outline:3px solid var(--pink);outline-offset:2px}
.g395-tool input[aria-invalid=true]{border-color:var(--orange)}
.g395-money{display:flex;align-items:stretch;max-width:340px}
.g395-money span{display:flex;align-items:center;padding:0 12px;border:3px solid var(--black);border-right:0;background:var(--off-white);font-weight:900}
.g395-money input[type=text]{max-width:none;min-width:0;flex:1}
.g395-tool fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}
.g395-checks{display:flex;flex-wrap:wrap;gap:10px}
.g395-check{display:inline-flex;align-items:center;gap:10px;border:2px solid var(--black);padding:10px 14px;font-weight:700;font-size:14px;cursor:pointer;background:var(--white)}
.g395-check input{width:18px;height:18px;accent-color:var(--pink);margin:0;flex:none}
.g395-buttons{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}
.g395-tool button.btn-primary,.g395-tool button.btn-secondary{max-width:100%}
.g395-tool .g395-error{border-left:6px solid var(--orange);background:var(--off-white);padding:14px 18px;margin:18px 0 0;font-weight:700;font-size:14.5px;line-height:1.6;color:var(--black)}
.g395-tool .g395-error:empty{display:none}
.g395-output{margin-top:28px;border-top:3px solid var(--black);padding-top:26px}
.g395-output[hidden]{display:none}
.g395-output h4{font-weight:900;font-size:17px;letter-spacing:-.01em;text-transform:uppercase;margin:22px 0 10px;color:var(--black)}
.g395-output h4:first-child{margin-top:0}
.g395-output ul{margin:0 0 16px 20px}
.g395-tool .g395-output li{font-weight:500;font-size:14.5px;line-height:1.65;color:#444;margin-bottom:6px}
.g395-table{width:100%;border-collapse:collapse;border:3px solid var(--black);margin:0 0 16px;font-size:14.5px}
.g395-table caption{caption-side:top;text-align:left;font-weight:700;font-size:13px;color:#666;line-height:1.6;padding-bottom:10px}
.g395-table th,.g395-table td{text-align:left;padding:11px 12px;border-bottom:1px solid #e6e6e6;vertical-align:top;line-height:1.55}
.g395-table thead th{font-weight:900;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;border-bottom:3px solid var(--black);background:var(--off-white)}
.g395-table tbody th{font-weight:700;color:#222}
.g395-table td{font-weight:500;color:#333}
.g395-table td.num,.g395-table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.g395-table tr.g395-sub > *{font-weight:900;border-top:2px solid var(--black)}
.g395-table tr.g395-total > *{font-weight:900;border-top:3px solid var(--black);background:var(--off-white)}
.g395-table tbody tr:last-child > *{border-bottom:0}
.g395-figure{font-weight:900;font-size:22px;letter-spacing:-.02em;color:var(--black)}
.g395-lines{display:grid;gap:0;border:3px solid var(--black);margin:0 0 20px}
.g395-line{display:grid;grid-template-columns:minmax(0,1fr) 200px auto;gap:10px 16px;align-items:center;padding:12px 14px;border-bottom:1px solid #e6e6e6}
.g395-line:last-child{border-bottom:0}
.g395-line .g395-label{margin:0;font-size:12px}
.g395-line .g395-money{max-width:none}
.g395-line .g395-check{border:0;padding:0;font-size:13px}
.g395-tool .g395-stamp{font-weight:700;font-size:13px;color:#666;margin:0 0 14px}
@media (max-width:640px){
  .g395-tool{padding:20px;box-shadow:5px 5px 0 var(--pink)}
  .g395-line{grid-template-columns:1fr}
  .g395-table.g395-stack,.g395-table.g395-stack tbody,.g395-table.g395-stack tr,.g395-table.g395-stack th,.g395-table.g395-stack td{display:block;width:auto}
  .g395-table.g395-stack thead{display:none}
  .g395-table.g395-stack caption{display:block;width:auto;padding:12px 14px 10px;border-bottom:3px solid var(--black)}
  .g395-table.g395-stack tr{border-bottom:1px solid #e6e6e6;padding:12px 14px}
  .g395-table.g395-stack tr:last-child{border-bottom:0}
  .g395-table.g395-stack th,.g395-table.g395-stack td{padding:2px 0;border:0}
  .g395-table.g395-stack [data-label]::before{content:attr(data-label);display:block;font-weight:900;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#666}
}
/* Print: once a result exists, only the statement or plan prints. The tool
   script marks the chain of elements that contain it; every sibling along that
   chain is hidden, and the chain itself loses its screen spacing. */
@media print{
  html.g395-print-ready .g395-print-path > :not(.g395-print-path):not(.g395-print){display:none!important}
  html.g395-print-ready .g395-print-path{display:block!important;position:static!important;margin:0!important;padding:0!important;
    border:0!important;box-shadow:none!important;background:#fff!important;max-width:none!important;width:auto!important;min-height:0!important;height:auto!important}
  html.g395-print-ready body{padding:0!important;margin:0!important}
  html.g395-print-ready .g395-print{border:0;padding:0;margin:0}
  .g395-print .g395-table{break-inside:auto}
  .g395-print .g395-table tr{break-inside:avoid}
}
/* Total reward lines: pension as a percentage, benefit costs per month or per year. */
.g395-line .g395-label .g395-hint{display:block;text-transform:none;letter-spacing:0;font-weight:500;font-size:12.5px;color:#666;margin:4px 0 0}
.g395-pct span{border-right:3px solid var(--black);border-left:0}
.g395-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.g395-freq{display:inline-flex;gap:6px}
.g395-freq .g395-check{border:2px solid var(--black);padding:6px 10px;font-size:12.5px}
.g395-line{grid-template-columns:minmax(0,1fr) 170px auto}
@media (max-width:640px){.g395-line{grid-template-columns:1fr}}
@media (max-width:640px){.g395-table td.num{white-space:normal;text-align:right}.g395-controls{gap:8px 12px}}
