/* SeeForth Fire Safety — additions to the Webflow kit (28 Oct 2026).
   Only what webflow.js, Finsweet and the page embeds supplied on the main site; the look itself is tokens.css + webflow-system.css. */
html{scroll-behavior:smooth}
body,h1,h2,h3,h4,p,li,a{overflow-wrap:normal;word-break:normal;hyphens:none}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:var(--_colors---rich-purple);padding:.5rem 1rem;z-index:2000}.skip:focus{left:1rem}

/* site name beside the SeeForth logo */
.navbar_logo-link{display:flex;align-items:center;text-decoration:none}
.navbar_logo.lockup{height:60px;width:auto}
.footer_logo-link{display:flex;align-items:center}
.footer_logo-link{width:auto}
.footer_logo.lockup{height:96px;width:auto;max-width:none;object-fit:contain}
@media (max-width:479px){.navbar_logo.lockup{height:52px}}

/* services dropdown (webflow.js replaced) */
.navbar_menu-dropdown{position:static}
.navbar_dropdown-toggle{cursor:pointer}
.navbar_dropdown-toggle[aria-expanded="true"] .dropdown-chevron{transform:rotate(180deg)}
.navbar_dropdown-list{left:0;right:0;top:100%;background-color:var(--light--background);border-bottom:1px solid var(--light--border);z-index:900}
.navbar_dropdown-list.w--open{display:block}
.navbar_dropdown-link .navbar_item-text{color:var(--_colors---rich-purple)}
@media (min-width:992px){.navbar_dropdown-content-left{grid-template-columns:repeat(4,1fr)}.navbar_dropdown-list{padding-left:5%;padding-right:5%}}

/* phone menu (webflow.js replaced) */
@media (max-width:991px){
  .navbar_component{position:relative}
  .w-nav[data-collapse=medium] .navbar_menu{top:100%;left:0;right:0;flex-direction:column}
  .w-nav[data-collapse=medium] .navbar_menu.w--open{display:flex}
  .navbar_menu-left{flex-direction:column;align-items:flex-start;width:100%;display:flex}
  .navbar_dropdown-list{top:auto;border-bottom:0}
  .navbar_dropdown-list .navbar_container{padding:0}
  .navbar_menu-button.w--open .menu-icon1_line-top{transform:translateY(8px) rotate(45deg)}
  .navbar_menu-button.w--open .menu-icon1_line-middle{opacity:0}
  .navbar_menu-button.w--open .menu-icon1_line-bottom{transform:translateY(-8px) rotate(-45deg)}
  .menu-icon1_line-top,.menu-icon1_line-middle,.menu-icon1_line-bottom{transition:transform .3s,opacity .3s}
  body.menu-open{overflow:hidden}
}

/* FAQ accordion (Finsweet replaced) */
/* open and close: see motion.css (smooth height, closed content hidden from screen readers) */
.fs_accordion-1_icon{transition:transform .3s}
.fs_accordion-1_header[aria-expanded="true"] .fs_accordion-1_icon{transform:rotate(180deg)}

/* law / standards block, copied from the main site's page embed */
.frg h2{margin-bottom:1rem}
.frg h3{font-size:1.25rem;margin:0 0 .5rem}
.frg-intro{max-width:48rem;margin-bottom:2.5rem}
.frg-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:3.5rem}
.frg-grid.is-three{grid-template-columns:1fr 1fr 1fr}
.frg-card{border:2px solid var(--_colors---light-purple,#c9c3ea);padding:1.5rem}
.frg-card p{margin:0}
.frg-card .frg-price{font-family:var(--_typography---font-styles--heading);font-weight:700;font-size:2rem;color:var(--_colors---rich-purple);line-height:1.1;margin:.25rem 0 .75rem}
.frg-card .frg-price small{font-size:1rem;font-weight:400;color:var(--_colors---light-purple)}
.frg-list,.frg-steps{max-width:48rem;margin:0 0 3.5rem;padding-left:1.25rem}
.frg-list li,.frg-steps li{margin-bottom:.9rem}
.frg-areas{max-width:48rem}
.frg a{text-decoration:underline;text-underline-offset:.125rem}
.frg .button_group{margin-top:2rem}
@media (max-width:991px){.frg-grid.is-three{grid-template-columns:1fr 1fr}}
@media (max-width:767px){.frg-grid,.frg-grid.is-three{grid-template-columns:1fr}}

/* prose pages (guides) and forms */
.prose{max-width:48rem}.prose h2{margin-top:2.5rem;margin-bottom:1rem}.prose h3{margin-top:1.5rem}.prose p,.prose li{margin-bottom:1rem}
.prose table{width:100%;border-collapse:collapse;margin:1rem 0 2rem}.prose th,.prose td{text-align:left;vertical-align:top;padding:.75rem 1rem;border-bottom:1px solid var(--light--border)}.prose th{color:var(--_colors---rich-purple);font-weight:600}
.form_field{margin-bottom:1rem}.form_label{display:block;font-weight:600;color:var(--_colors---rich-purple);margin-bottom:.4rem}
.form_input{width:100%;font:inherit;color:var(--_colors---rich-purple);background:var(--light--input);border:var(--_ui-styles---stroke--border-width) solid var(--light--border);padding:.75rem 1rem;min-height:3rem}
.form_input:focus{outline:2px solid var(--_colors---rich-purple);outline-offset:1px;background:var(--light--input-hover)}
textarea.form_input{min-height:8rem;resize:vertical}
.form_row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width:767px){.form_row{grid-template-columns:1fr}}
.form_ok{display:none;border:2px solid var(--_colors---green);padding:1rem 1.5rem;margin-top:1rem}
.form_submit{appearance:none;border:0;background:none;padding:0;font:inherit}
.header_image{width:100%;height:auto}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* assessor cards: Webflow set the quick-stack columns per page; three across, then one */
.team-stack{grid-template-columns:1fr 1fr 1fr;padding:2rem 0 0}
.team-stack .image,.team-stack .image-2{width:100%;height:auto;margin-bottom:1rem}
@media (max-width:991px){.team-stack{grid-template-columns:1fr 1fr}}
@media (max-width:767px){.team-stack{grid-template-columns:1fr}}
.nav_btn{text-decoration:none}

/* the button's sliding duplicate text/icon was animated by webflow.js; without it the copy would show when a label wraps */
.button-text.is-absolute,.button-icon.is-absolute{display:none}
.button-block:hover .button-text-wrap{background-color:var(--_colors---green)}
.button-block:hover .button-icon-wrap{background-color:var(--_colors---green)}
.button-text-wrap,.button-icon-wrap{transition:background-color .2s}
@media (min-width:992px) and (max-width:1200px){.navbar_link,.navbar_dropdown-toggle{padding-left:.6rem;padding-right:.6rem}.navbar_menu{margin-left:1rem}}
@media (max-width:991px){.navbar_link{text-align:left;width:100%}.navbar_menu-right{width:100%}}

/* fixes from the first full-page review, 28 Oct */
.team-stack .image,.team-stack .image-2{aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.table-wrap{overflow-x:auto;margin:1rem 0 2rem}.table-wrap table{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.prose th:first-child,.prose td:first-child{white-space:nowrap}
.padding-section-large.is-narrow>*:not(.button_group_wrap){max-width:44rem}
@media (max-width:991px){.padding-section-large.is-narrow>*{max-width:none}}
.foot-copy{display:block}
.nb{white-space:nowrap}

/* contrast: paragraphs in the dark band and the form on the dark contact band (axe, 28 Oct) */
.assessors-section.dark p,.assessors-section.dark li{color:var(--_colors---seeforth-white)}
.section_contact .input{color:var(--_colors---pure-white)}
.section_contact .input-label,.section_contact .w-form-label,.section_contact .text-color-grey{color:var(--_colors---seeforth-white)}
.section_contact .input::placeholder{color:#c9c3ea}
.section_contact select.input option{color:#1d1c1a}

/* reviews page */
.stars{display:inline-flex;gap:2px;vertical-align:middle}
.review-summary{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:2.5rem}.review-summary .stars svg{width:28px;height:28px}.review-avg{margin:0;font-size:1.25rem}
.review .review-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.review-source{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--_colors---light-purple)}
.review .review-text{margin:0 0 1rem}.review .review-who{margin:0;font-size:.9rem}
.reviews-widget{min-height:12rem}

/* text never sits under an image (MD, 28 Oct: "the question mark disappears behind the fire alarm") */
.header_image-wrapper picture{display:block;width:100%}
.header_image{display:block;width:100%;max-height:40rem;object-fit:cover;object-position:50% 50%}
@media (min-width:992px){
  .assessors-section:has(.fs-photo) .padding-section-large>h2,.assessors-section:has(.fs-photo) .padding-section-large>h3{max-width:min(var(--_typography---max-width--headings),calc(100% - 380px - 3rem))}
  .assessors-section:has(.fs-photo) .padding-section-large>p,.assessors-section:has(.fs-photo) .padding-section-large>ul,.assessors-section:has(.fs-photo) .padding-section-large>ol{max-width:min(var(--_typography---max-width),calc(100% - 380px - 3rem))}
}
