:root{
  --paper:#E8EDEF; --paper-2:#F5F7F8; --ink:#13283A; --ink-2:#4A5C6B; --line:#B9C5CC;
  --flag:#E5530F; --line-strong:#13283A;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans)}
a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--flag)}
:focus-visible{outline:2px solid var(--flag);outline-offset:3px}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
header.site{border-bottom:1px solid var(--line-strong)}
header.site .wrap{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding-top:20px;padding-bottom:16px;flex-wrap:wrap}
.mark{font:700 1.25rem/1 var(--serif);text-decoration:none;letter-spacing:.01em}
.mark small{font:400 .8rem var(--sans);color:var(--ink-2);margin-left:10px}
nav a{margin-left:22px;text-decoration:none;font-size:.95rem;padding-bottom:3px;border-bottom:1px solid transparent}
nav a:hover,nav a[aria-current]{border-bottom-color:var(--flag);color:var(--ink)}
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;min-height:460px;gap:24px}
.hero h1{font:700 clamp(2.2rem,5vw,3.6rem)/1.08 var(--serif);margin:0 0 20px;letter-spacing:-.01em;max-width:14ch}
.hero p{max-width:46ch;color:var(--ink-2);margin:0 0 28px;font-size:1.08rem}
.btn{display:inline-block;background:var(--ink);color:var(--paper-2);padding:12px 22px;text-decoration:none;font-weight:600;border-radius:2px}
.btn:hover{background:var(--flag);color:#fff}
.contours{width:100%;height:auto;display:block}
.contours path{stroke:var(--ink-2);stroke-width:1;opacity:.55;stroke-dasharray:1;stroke-dashoffset:0}
.contours path.idx{stroke:var(--ink);stroke-width:1.6;opacity:.9}
.contours circle{fill:var(--flag)}
@media (prefers-reduced-motion:no-preference){
  .contours path{animation:draw 2.2s cubic-bezier(.3,.6,.2,1) both;animation-delay:calc(var(--i)*70ms)}
  @keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
}
main section{padding:56px 0;border-bottom:1px solid var(--line)}
main section:last-of-type{border-bottom:0}
h2{font:700 1.7rem/1.2 var(--serif);margin:0 0 24px}
h3{font:700 1.1rem/1.3 var(--serif);margin:0 0 6px}
.cols{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px}
.cols>div>h2{margin-bottom:8px}
.lead{color:var(--ink-2);margin:0;max-width:30ch}
dl.services{margin:0;max-width:68ch}
dl.services div{padding:18px 0;border-top:1px solid var(--line)}
dl.services div:first-child{border-top:1px solid var(--line-strong)}
dl.services dt{font:700 1.1rem/1.3 var(--serif)}
dl.services dd{margin:4px 0 0;color:var(--ink-2)}
table{width:100%;border-collapse:collapse;font-size:.97rem}
caption{text-align:left;color:var(--ink-2);padding-bottom:10px}
th,td{text-align:left;padding:11px 12px 11px 0;border-top:1px solid var(--line);vertical-align:top}
thead th{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);font-weight:600}
.tw{overflow-x:auto}
.prose{max-width:62ch}
.prose p{margin:0 0 1.1em}
.page-title{padding:56px 0 8px}
.page-title h1{font:700 clamp(2rem,4vw,2.8rem)/1.1 var(--serif);margin:0;max-width:20ch}
form{display:grid;gap:16px;max-width:520px}
label{display:grid;gap:6px;font-weight:600;font-size:.95rem}
input,textarea{font:inherit;padding:10px 12px;border:1px solid var(--ink-2);background:var(--paper-2);color:var(--ink);border-radius:2px}
textarea{min-height:140px;resize:vertical}
button{font:inherit;cursor:pointer;border:0}
footer.site{background:var(--ink);color:#C9D4DB;padding:40px 0;font-size:.92rem}
footer.site a{color:#fff}
footer.site .wrap{display:flex;gap:32px;justify-content:space-between;flex-wrap:wrap}
footer.site p{margin:0 0 4px}
@media (max-width:760px){
  .hero .wrap{grid-template-columns:1fr;min-height:0;padding-top:36px;padding-bottom:12px}
  .cols{grid-template-columns:1fr;gap:8px}
  nav a{margin:0 18px 0 0}
  header.site .wrap{flex-direction:column;gap:12px}
}
