*{box-sizing:border-box;margin:0}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
ul{list-style:none;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:20px}
body{font-family:'Source Sans 3',Arial,sans-serif;background:#fbf8f4;color:#3b3b3f;line-height:1.55}
a:focus-visible,summary:focus-visible,.mb:focus-visible{outline:3px solid #7a1f35;outline-offset:3px}

/* layout */
.n{max-width:680px;margin:0 auto;padding:0 20px}
.mb{display:none;background:none;border:0;font-size:1.6rem;cursor:pointer;color:inherit;min-width:44px;min-height:44px}

/* header */
.hd{border-bottom:2px solid #7a1f35}
.hd .n{display:flex;align-items:center;gap:16px;height:60px}
.hd nav{max-width:680px;margin:0 auto;padding:0 20px 10px}
nav a{margin-right:20px;text-decoration:none;font-size:.95rem}
nav a:hover{color:#7a1f35;text-decoration:underline}
.lg{font-family:'Playfair Display',serif;font-weight:800;color:#7a1f35;font-size:1.2rem;text-decoration:none}
.ph{margin-left:auto;font-weight:600;text-decoration:none}

/* type */
h1,h2,h3{font-family:'Playfair Display',serif}
h1{font-size:3.4rem;line-height:1.05;color:#7a1f35;padding-top:50px;animation:f .5s ease-out}
h2{color:#7a1f35;margin:44px 0 12px;font-size:1.5rem}
h3{font-size:1.05rem}
p+p{margin-top:12px}
@keyframes f{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}

/* hero */
.s{display:flex;gap:18px;align-items:center;margin:24px 0}
.s img{width:150px;border-radius:2px}
.s p{font-size:.95rem}

/* numbered lists (services, process) */
ol{counter-reset:c}
ol li{counter-increment:c;display:grid;grid-template-columns:44px 1fr;padding:12px 0;border-top:1px solid #d9cfc4}
ol li:before{content:"0" counter(c);font-family:'Playfair Display',serif;color:#7a1f35;font-size:1.3rem;grid-row:span 2}

/* about */
.ab{margin:6px 0 20px}
.ab img{width:100%;border-radius:2px;border:1px solid #d9cfc4}
#about h3{margin:26px 0 10px}

/* check-mark points */
.pts li{position:relative;padding:0 0 0 28px;margin-bottom:12px}
.pts li:before{content:"\2713";position:absolute;left:0;top:0;color:#7a1f35;font-weight:800}
.pts strong{color:#7a1f35}

/* tag lists (systems, areas) */
.areas{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.areas li{border:1px solid #d9cfc4;background:#fff;padding:5px 12px;border-radius:2px;font-size:.95rem}

/* faq */
details{border-top:1px solid #d9cfc4}
details:last-of-type{border-bottom:1px solid #d9cfc4}
summary{cursor:pointer;font-weight:600;padding:14px 32px 14px 0;position:relative;list-style:none}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";position:absolute;right:4px;top:10px;font-size:1.4rem;color:#7a1f35}
details[open] summary:after{content:"\2212"}
details p{padding:0 0 14px}

/* call to action */
.cta{background:#7a1f35;color:#fbf8f4;margin-top:44px;padding:36px 0}
.cta h2{color:#fbf8f4;margin:0 0 6px}
.btn{display:inline-block;margin-top:16px;background:#fbf8f4;color:#7a1f35;font-weight:600;text-decoration:none;padding:12px 22px;border-radius:2px}
.btn:hover{background:#fff}
.cta a:focus-visible{outline-color:#fbf8f4}

/* contact */
dl{border-top:2px solid #3b3b3f;padding-top:10px}
dl div{padding:7px 0;border-bottom:1px solid #d9cfc4;display:flex;gap:14px}
dt{width:110px;font-weight:600;color:#7a1f35;flex:none}
dd{margin:0;min-width:0;overflow-wrap:anywhere}
footer{padding:150px 80px;font-size:.85rem}

/* tablet */
@media(max-width:900px){h1{font-size:3rem}}

/* mobile */
@media(max-width:620px){
  .mb{display:block}
  .ph{font-size:.9rem}
  .hd nav{display:none;padding-bottom:0}
  .o .hd nav{display:block}
  nav a{display:block;margin:0;padding:12px 0;border-top:1px solid #d9cfc4;font-size:1rem}
  h1{font-size:2.3rem;padding-top:34px}
  h2{margin-top:36px;font-size:1.35rem}
  .s{flex-direction:column;align-items:flex-start}
  .s img{width:100%}
  ol li{grid-template-columns:36px 1fr}
  .areas li{font-size:.9rem}
  summary{padding-top:16px;padding-bottom:16px}
  .btn{display:block;text-align:center}
  .cta{padding:30px 0}
  dl div{flex-direction:column;gap:0}
}

/* small phones */
@media(max-width:380px){
  .hd .n{gap:8px}
  .lg{font-size:1.05rem}
  .ph{font-size:.82rem}
  h1{font-size:2rem}
}

@media(prefers-reduced-motion:reduce){
  h1{animation:none}
  html{scroll-behavior:auto}
}