/* ==========================================================================
   Interior pages — page heads, service list, detail layout, 404, thank-you
   Loads after site.css and home.css.
   ========================================================================== */

.fm-h1{
  font-family:var(--fm-display);font-weight:600;
  font-size:clamp(36px,5.6vw,68px);line-height:1.02;letter-spacing:-.02em;
  color:var(--fm-ink);margin:0 0 16px;
}
.fm-h3{
  font-family:var(--fm-display);font-weight:600;
  font-size:clamp(21px,2.4vw,28px);line-height:1.2;color:var(--fm-ink);
  margin:38px 0 14px;
}
.fm-h3:first-child{margin-top:0}
.fm-narrow-left{max-width:62ch}
.fm-tagline--lg{font-size:20px;color:var(--fm-teal);font-weight:500;margin:0 0 18px}

/* ---------- breadcrumbs ---------- */
.fm-crumbs{padding:22px 0 0;font-size:14px;color:var(--fm-muted)}
.fm-crumbs a{color:var(--fm-muted);text-decoration:none}
.fm-crumbs a:hover{color:var(--fm-teal)}
.fm-crumbs span{margin:0 6px;color:#c3c1bb}
.fm-crumbs [aria-current]{color:var(--fm-ink);margin:0}

/* ---------- page head ---------- */
.fm-pagehead{padding:56px 0 60px}
.fm-pagehead .fm-hero__actions{margin-top:28px}

/* ---------- service list (hub) ---------- */
.fm-svclist{padding:0 0 40px}
.fm-svcrow{
  display:grid;grid-template-columns:340px 1fr;gap:48px;
  padding:44px 0;border-top:1px solid var(--fm-line);
}
.fm-svcrow.is-featured{
  border-top:2px solid var(--fm-teal);
  background:linear-gradient(180deg,rgba(53,184,185,.05),transparent 70%);
}
.fm-tag{
  display:inline-block;font:600 11px/1 var(--fm-sans);letter-spacing:.14em;
  text-transform:uppercase;color:#fff;background:var(--fm-teal);
  padding:6px 11px;border-radius:999px;margin-bottom:12px;
}
.fm-svcrow__title{
  font-family:var(--fm-display);font-weight:600;font-size:30px;line-height:1.1;
  margin:0 0 10px;
}
.fm-svcrow__title a{color:var(--fm-ink);text-decoration:none}
.fm-svcrow__title a:hover{color:var(--fm-teal)}
.fm-svcrow__tagline{font-size:16px;color:var(--fm-teal);margin:0;font-weight:500}
.fm-svcrow__body p{font-size:16.5px;line-height:1.62;color:var(--fm-muted);margin:0 0 18px}
.fm-svcrow__meta{font-size:14.5px!important;color:var(--fm-muted)}
.fm-svcrow__meta strong{color:var(--fm-ink)}

/* ---------- tick lists ---------- */
.fm-ticks{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.fm-ticks li{position:relative;padding-left:28px;font-size:16px;line-height:1.55;color:var(--fm-body)}
.fm-ticks li::before{
  content:"";position:absolute;left:0;top:.42em;width:16px;height:9px;
  border-left:2.5px solid var(--fm-teal);border-bottom:2.5px solid var(--fm-teal);
  transform:rotate(-45deg);
}
.fm-ticks--lg li{font-size:17px;padding-left:32px}

/* ---------- detail layout ---------- */
.fm-detail{padding:0 0 80px}
.fm-detail__grid{display:grid;grid-template-columns:1fr 340px;gap:64px;align-items:start}
.fm-detail__main p{font-size:16.5px;line-height:1.68;color:var(--fm-muted)}

.fm-steps{margin:0;padding-left:22px;display:grid;gap:14px}
.fm-steps li{font-size:16.5px;line-height:1.6;color:var(--fm-muted)}
.fm-steps strong{color:var(--fm-ink)}

.fm-detail__side{position:sticky;top:100px;display:grid;gap:24px}
.fm-factbox{background:#f6faf9;border:1px solid var(--fm-line);border-radius:16px;padding:28px}
.fm-factbox__title{font-family:var(--fm-display);font-size:19px;margin:0 0 18px;color:var(--fm-ink);font-weight:600}
.fm-factbox dl{margin:0 0 22px}
.fm-factbox dt{font:600 12px/1 var(--fm-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--fm-teal);margin-bottom:5px}
.fm-factbox dd{margin:0 0 15px;font-size:15.5px;line-height:1.5;color:var(--fm-body)}
.fm-factbox .fm-btn{width:100%}

.fm-sidenav{border:1px solid var(--fm-line);border-radius:16px;padding:24px 28px}
.fm-sidenav__title{font-family:var(--fm-display);font-size:17px;margin:0 0 14px;color:var(--fm-ink);font-weight:600}
.fm-sidenav ul{list-style:none;margin:0;padding:0}
.fm-sidenav li{margin-bottom:9px}
.fm-sidenav a{font-size:15px;color:var(--fm-muted);text-decoration:none}
.fm-sidenav a:hover{color:var(--fm-teal)}

/* slim protection strip on detail pages */
.fm-protect--slim{padding:56px 0}
.fm-protect--slim .fm-protect__inner{grid-template-columns:1fr;max-width:64ch}

/* ---------- 404 ---------- */
.fm-404{text-align:left}
.fm-stamp{
  display:inline-block;font:700 11px/1 var(--fm-sans);letter-spacing:.3em;
  text-transform:uppercase;color:#fff;background:var(--fm-ink);
  padding:7px 15px 6px;transform:rotate(-2.5deg);margin-bottom:24px;
}
.fm-404__code{
  font-family:var(--fm-display);font-size:clamp(72px,14vw,128px);line-height:.9;
  margin:0 0 14px;color:var(--fm-ink);
}
.fm-404__code em{font-style:normal;color:var(--fm-teal)}

/* ---------- thank you ---------- */
.fm-thanks__tick{
  display:inline-flex;align-items:center;justify-content:center;
  width:66px;height:66px;border-radius:50%;background:var(--fm-teal);color:#fff;
  margin-bottom:24px;
}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .fm-svcrow{grid-template-columns:1fr;gap:20px}
  .fm-detail__grid{grid-template-columns:1fr;gap:44px}
  .fm-detail__side{position:static}
}
@media (max-width:640px){
  .fm-pagehead{padding:36px 0 40px}
  .fm-svcrow{padding:32px 0}
  .fm-svcrow__title{font-size:25px}
}

/* ---------- pillars grid ---------- */
.fm-pillars{padding:0 0 60px}
.fm-pillars__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px 48px}
.fm-pillars__grid article h2,.fm-pillars__grid article h3{margin-top:0}
.fm-pillars__grid p{font-size:16px;line-height:1.62;color:var(--fm-muted);margin:0}

/* ---------- chips ---------- */
.fm-svcstrip{padding:70px 0;background:#f6faf9}
.fm-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.fm-chip{
  display:inline-flex;align-items:center;padding:11px 20px;border-radius:999px;
  border:1.5px solid var(--fm-line);background:#fff;color:var(--fm-body);
  text-decoration:none;font:500 15px/1 var(--fm-sans);transition:all .16s ease;
}
.fm-chip:hover{border-color:var(--fm-teal);color:var(--fm-teal)}
.fm-chip.is-featured{border-color:var(--fm-teal);background:var(--fm-teal);color:#fff}
.fm-chip.is-featured:hover{background:var(--fm-teal-dark);color:#fff}

/* ---------- commitments ---------- */
.fm-commitments{padding:20px 0 80px}
.fm-commit__list{list-style:none;margin:38px 0 0;padding:0;display:grid;gap:8px;counter-reset:c}
.fm-commit__list li{display:grid;grid-template-columns:76px 1fr;gap:18px;padding:26px 0;border-top:1px solid var(--fm-line)}
.fm-commit__num{font-family:var(--fm-display);font-size:26px;color:var(--fm-teal);line-height:1}
.fm-commit__list h3{font-family:var(--fm-display);font-size:22px;margin:0 0 9px;color:var(--fm-ink);font-weight:600}
.fm-commit__list p{font-size:16.5px;line-height:1.62;color:var(--fm-muted);margin:0 0 8px}
.fm-note{font-size:15px;color:var(--fm-teal);font-style:italic}

/* ---------- prose ---------- */
.fm-prose{max-width:66ch}
.fm-prose p{font-size:17px;line-height:1.7;color:var(--fm-muted);margin:0 0 18px}
.fm-prose strong{color:var(--fm-ink)}

/* ---------- forms ---------- */
.fm-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.fm-formcard{background:#f6faf9;border:1px solid var(--fm-line);border-radius:18px;padding:34px}
.fm-field{margin-bottom:18px}
.fm-field label,.fm-radios legend{
  display:block;font:600 14px/1.3 var(--fm-sans);color:var(--fm-ink);margin-bottom:7px;
}
.fm-field label span{color:var(--fm-teal)}
.fm-field input,.fm-field select,.fm-field textarea{
  width:100%;padding:12px 14px;font:400 15.5px/1.4 var(--fm-sans);color:var(--fm-ink);
  background:#fff;border:1.5px solid var(--fm-line);border-radius:9px;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.fm-field input:focus,.fm-field select:focus,.fm-field textarea:focus{
  outline:none;border-color:var(--fm-teal);box-shadow:0 0 0 3px rgba(53,184,185,.15);
}
.fm-field textarea{resize:vertical;min-height:96px}

.fm-radios{border:0;padding:0;margin-bottom:22px}
.fm-radio{
  display:flex;gap:11px;align-items:flex-start;background:#fff;border:1.5px solid var(--fm-line);
  border-radius:11px;padding:14px 16px;margin-bottom:9px;cursor:pointer;font-weight:400!important;
  transition:border-color .15s ease;
}
.fm-radio:has(input:checked){border-color:var(--fm-teal);background:rgba(53,184,185,.06)}
.fm-radio input{width:auto;margin-top:3px;accent-color:var(--fm-teal)}
.fm-radio span{display:block}
.fm-radio strong{display:block;font-size:15px;color:var(--fm-ink)}
.fm-radio em{display:block;font-style:normal;font-size:13.5px;color:var(--fm-muted);margin-top:2px}

.fm-btn--full{width:100%;margin-top:6px}
.fm-formnote{font-size:13.5px;color:var(--fm-muted);text-align:center;margin:14px 0 0}
.fm-formnote a{color:var(--fm-teal)}
.fm-formerr{
  background:#fdeaea;border:1px solid #f3c2c2;color:#8b2020;border-radius:9px;
  padding:12px 15px;font-size:14.5px;margin:0 0 20px;
}
/* honeypot — must stay visually hidden but not display:none */
.fm-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- contact ---------- */
.fm-contactblk{margin-top:36px}
.fm-address{font-style:normal;font-size:16.5px;line-height:1.8;color:var(--fm-muted)}
.fm-address a{color:var(--fm-teal);text-decoration:none}
.fm-address a:hover{text-decoration:underline}
.fm-map{padding:60px 0 0}
.fm-map .fm-h2{margin-bottom:30px}

@media (max-width:900px){
  .fm-formgrid{grid-template-columns:1fr;gap:40px}
  .fm-commit__list li{grid-template-columns:52px 1fr;gap:12px}
}

/* ---------- FAQs ---------- */
.fm-faqs{max-width:78ch;border-top:1px solid var(--fm-line)}
.fm-faq{border-bottom:1px solid var(--fm-line)}
.fm-faq summary{
  cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;
  font-family:var(--fm-display);font-weight:600;font-size:19px;line-height:1.35;color:var(--fm-ink);
}
.fm-faq summary::-webkit-details-marker{display:none}
.fm-faq summary::after{
  content:"";position:absolute;right:6px;top:30px;width:11px;height:11px;
  border-right:2.2px solid var(--fm-teal);border-bottom:2.2px solid var(--fm-teal);
  transform:rotate(45deg);transition:transform .2s ease;
}
.fm-faq[open] summary::after{transform:rotate(-135deg);top:34px}
.fm-faq summary:hover{color:var(--fm-teal)}
.fm-faq p{margin:0 0 24px;padding-right:40px;font-size:16.5px;line-height:1.68;color:var(--fm-muted)}

/* ---------- team ---------- */
.fm-team{padding:70px 0;background:#f6faf9}
.fm-team__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-top:32px}
.fm-person{background:#fff;border:1px solid var(--fm-line);border-radius:14px;padding:22px}
.fm-person__name{font-family:var(--fm-display);font-size:19px;margin:0 0 3px;color:var(--fm-ink);font-weight:600}
.fm-person__role{font-size:13.5px;color:var(--fm-teal);font-weight:600;margin:0 0 10px}
.fm-person__for{font-size:14.5px;line-height:1.5;color:var(--fm-muted);margin:0 0 14px}
.fm-person__tel{
  display:inline-block;font:600 15.5px/1 var(--fm-sans);color:var(--fm-ink);
  text-decoration:none;border-bottom:2px solid var(--fm-teal);padding-bottom:3px;
}
.fm-person__tel:hover{color:var(--fm-teal)}

/* ---------- article body ---------- */
.fm-article h2,.fm-article h3{font-family:var(--fm-display);color:var(--fm-ink);margin:34px 0 12px;font-weight:600}
.fm-article h2{font-size:26px}.fm-article h3{font-size:21px}
.fm-article ul,.fm-article ol{margin:0 0 18px;padding-left:22px}
.fm-article li{font-size:17px;line-height:1.7;color:var(--fm-muted);margin-bottom:8px}
.fm-article a{color:var(--fm-teal)}
.fm-article blockquote{
  margin:24px 0;padding:4px 0 4px 22px;border-left:3px solid var(--fm-teal);
  font-size:18px;line-height:1.6;color:var(--fm-ink);
}

/* ---------- contact lines (list style) ---------- */
.fm-lines__title{font-family:var(--fm-display);font-size:18px;margin:28px 0 14px;color:var(--fm-ink);font-weight:600}
.fm-lines{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.fm-lines li{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px 0;border-bottom:1px solid var(--fm-line);
}
.fm-lines li:first-child{border-top:1px solid var(--fm-line)}
.fm-lines__name{display:block;font:600 15px/1.3 var(--fm-sans);color:var(--fm-ink)}
.fm-lines__role{display:block;font-size:13px;color:var(--fm-muted);margin-top:2px}
.fm-lines a{
  font:600 15px/1 var(--fm-sans);color:var(--fm-teal);text-decoration:none;white-space:nowrap;
}
.fm-lines a:hover{text-decoration:underline}
@media (max-width:520px){
  .fm-lines li{flex-direction:column;align-items:flex-start;gap:6px}
}

/* ---------- legal pages ---------- */
.fm-legal h2{margin-top:40px}
.fm-legal .fm-ticks li{font-size:16.5px}
.fm-legalbox{
  background:#f6faf9;border:1px solid var(--fm-line);border-left:4px solid var(--fm-teal);
  border-radius:10px;padding:20px 22px;margin:22px 0;
}
.fm-legalbox p{font-size:15.5px;line-height:1.6;color:var(--fm-body);margin:0 0 8px}
.fm-legalbox a{color:var(--fm-teal)}
