/* The report, contact and footer use the same vertical rhythm as the desktop frames. */
.kw-lower {
  --kw-muted: rgb(33 33 33 / 50%);
  color: var(--ink, #212121);
  font-size: 13px;
  line-height: 17px;
  letter-spacing: -.02em;
}
.kw-lower :is(p,figure,blockquote,h2,h3,dl,dd,ul) { margin: 0; }
.kw-lower img { display: block; flex: none; }
.kw-lower h2 {
  font-family: 'Neue Montreal', 'Helvetica Neue', sans-serif;
  font-size: 36px;
  font-weight: 500;
  line-height: 47px;
  letter-spacing: -.02em;
}
.kw-lower :is(button,a):focus-visible, .kw-question summary:focus-visible {
  outline: 2px solid var(--blue); outline-offset: 3px;
}
.kw-lower a { text-decoration: none; color: inherit; }
.kw-lower button { appearance: none; font: inherit; color: inherit; cursor: pointer; }
.kw-framed { padding: 0 16px 16px; }
.kw-testimonials { padding: 80px 0; }
.kw-test-intro { display: grid; justify-items: center; gap: 16px; text-align: center; margin: 0 20px 60px; }
.kw-test-intro > p { color: var(--kw-muted); max-width: 426px; }
.kw-rating { display: flex; gap: 10px; align-items: flex-start; }
.kw-rating-copy { display: grid; gap: 6px; justify-items: start; }
.kw-rating-copy p { color: var(--kw-muted); }
.kw-rating-copy strong { font-weight: inherit; color: var(--ink); }
.kw-faces { display:inline-flex; align-items:center; isolation:isolate; height:35px; }
.kw-faces > span { display:grid; place-items:center; flex:none; width:39.005px; height:35px; }
.kw-faces > span:nth-child(even) { width:38.467px; }
.kw-faces > span + span { margin-left:-12px; }
.kw-faces img { width:35px; height:35px; object-fit:cover; border-radius:8px; transform:translateY(3px) rotate(-7deg); }
.kw-faces > span:nth-child(even) img { transform:rotate(6deg); }
.kw-stars { display: inline-flex; align-items: center; gap: 0; width: fit-content; }
.kw-review {
  position: relative; display: flex; flex: 0 0 auto; flex-direction: column; align-items: flex-start;
  justify-content: space-between; gap: 24px; width: 336px; min-height: 336px; padding: 24px;
  border-radius: 16px; background: white; overflow: hidden; isolation: isolate;
}
.kw-review-featured { width: 680px; background: var(--blue); color: white; }
.kw-review blockquote,.kw-founder blockquote {
  font-family:'Neue Montreal','Helvetica Neue',sans-serif;
  font-weight:500; font-size:20px; line-height:1.3; letter-spacing:-.02em;
}
.kw-review-copy { max-width:286px; display:grid; gap:16px; z-index:1; }
.kw-review-featured .kw-review-copy { max-width:425px; }
.kw-review figcaption,.kw-founder figcaption { display:flex; align-items:center; gap:16px; position:relative; z-index:1; }
.kw-review figcaption span { display:grid; gap:8px; }
.kw-review figcaption small,.kw-founder figcaption small { color:var(--kw-muted); font-size:inherit; }
.kw-review-featured figcaption small { color:rgb(255 255 255 / 50%); }
/* Home testimonials, Figma 665:4652. The open grid is also the no-script layout. */
.kw-review-wall {
  --kw-preview-rows: 3;
  position: relative;
  width: min(1024px, calc(100% - 40px));
  margin-inline: auto;
}
.kw-review-wall[data-state] { overflow: clip; }
.kw-review-wall[data-state="collapsed"] { height: var(--kw-visible-height); }
.kw-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.kw-review-grid .kw-review-portrait { border-radius: 50%; object-fit: cover; }
.kw-review-grid .kw-review { width: auto; min-height: 0; }
.kw-review-grid .kw-review-featured { grid-column: span 2; min-height: 336px; }
.kw-review-grid .kw-review-featured::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 6%); pointer-events: none;
}
.kw-review-grid:focus { outline: none; }
.kw-review-stars {
  display: block; width: 70px; height: 14px;
  background: url('/assets/social-proof/rating-star.svg') left center / 14px 14px repeat-x;
}
.kw-review-featured .kw-review-stars { filter: brightness(0) invert(1); }
.kw-review-fade, .kw-review-more { display: none; }
.kw-review-wall[data-state] .kw-review-fade {
  display: block; position: absolute; inset: auto 0 0; height: var(--kw-last-row-height); z-index: 1;
  background: linear-gradient(to bottom, transparent, var(--paper));
  pointer-events: none; transform-origin: center bottom;
}
.kw-review-wall[data-state] .kw-review-more {
  display: block; position: absolute; z-index: 2; bottom: 16px; left: 50%;
  translate: -50% 0; border: 0; border-radius: 12px; padding: 0 12px;
  min-height: 36px; white-space: nowrap; background: white; line-height: 1;
}
.kw-review-wall[data-state="expanded"] :is(.kw-review-fade, .kw-review-more) { opacity: 0; pointer-events: none; }
.kw-review-wall[data-state="expanded"] .kw-review-fade { transform: scaleY(0); }
.kw-review-wall[data-state="expanded"] .kw-review-more { transform: scale(.9); }
@media (prefers-reduced-motion: no-preference) {
  .kw-review-fade, .kw-review-more {
    transition: opacity 450ms cubic-bezier(.32,.72,0,1), transform 450ms cubic-bezier(.32,.72,0,1);
  }
}
@media (max-width: 960px) {
  .kw-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kw-review-grid .kw-review-featured { grid-column: auto; }
}
@media (max-width: 680px) {
  .kw-review-wall { --kw-preview-rows: 2; }
  .kw-review-grid { grid-template-columns: minmax(0, 1fr); }
  .kw-review-grid .kw-review-featured { grid-column: auto; min-height: 285px; }
}
.kw-auditor-shell,.kw-footer-shell { border-radius:16px; }
.kw-auditor-shell { padding:80px 24px; background:white; }
.kw-auditor-grid,.kw-faq-layout,.kw-footer-inner { width:min(1024px,100%); margin-inline:auto; }
.kw-auditor-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:60px; align-items:stretch; }
.kw-auditor-copy { min-width:0; }
.kw-auditor-intro { display:grid; gap:16px; margin-bottom:60px; }
.kw-auditor-intro p { color:var(--kw-muted); max-width:426px; }
.kw-founder { padding:24px; border-radius:16px; background:var(--paper); }
.kw-founder blockquote { max-width:425px; }
.kw-founder figcaption { margin-top:40px; gap:12px; }
.kw-founder figcaption span { border-left:1px solid rgb(0 0 0 / 6%); padding-left:12px; display:grid; }
.kw-stats { display:grid; grid-template-columns:repeat(3,1fr); align-items:center; gap:6px; min-height:82px; border-radius:16px; background:var(--paper); margin-top:8px !important; }
.kw-stats > div { position:relative; display:flex; flex-direction:column-reverse; align-items:center; justify-content:center; gap:8px; min-width:0; text-align:center; }
.kw-stats > div + div::before { content:""; position:absolute; left:-3px; height:50px; background:rgb(0 0 0 / 6%); width:1px; }
.kw-stats dt { color:var(--kw-muted); }
.kw-stats dd { font-family:'Neue Montreal',sans-serif; font-weight:500; font-size:18px; letter-spacing:-.02em; }
.kw-auditor-video { position:relative; overflow:hidden; border-radius:16px; background:#d9d9d9; box-shadow:inset 0 .5px #a1a1a1; min-height:100%; }
.kw-video-play { position:absolute; top:calc(50% + 6px); left:calc(50% + 7px); transform:translate(-50%,-50%); width:44px; height:44px; display:grid; place-items:center; padding-inline:15px 13px; border-radius:50%; background:rgb(255 255 255 /.14); backdrop-filter:blur(8px); }
.kw-faq { padding:80px 40px; }
.kw-faq-layout { display:grid; grid-template-columns:minmax(0,291px) minmax(0,500px); align-items:center; justify-content:space-between; gap:24px; }
.kw-faq-aside { position:sticky; top:calc(var(--site-header-height, 0px) + 24px); margin-top:0; align-self:center; }
.kw-contact-card { width:min(291px,100%); margin-top:24px; display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:16px; border-radius:16px; background:#fff; }
.kw-contact-card p { color:var(--ink, #212121); }
.kw-contact-card p span { color:var(--kw-muted); }
.kw-contact-actions { display:flex; align-items:center; gap:6px; }
.kw-contact-actions a { display:inline-flex; white-space:nowrap; gap:6px; min-height:36px; align-items:center; justify-content:center; border-radius:12px; font:inherit; line-height:1; }
.kw-contact-actions .kw-price-link { padding:6px 6px 6px 12px; color:white; }
.kw-contact-actions .kw-call-link { padding:6px 12px 6px 6px; }
.kw-questions {
  --faq-duration: 450ms;
  --faq-ease: cubic-bezier(.32,.72,0,1);
  overflow: hidden;
  border-radius: 16px;
  background: white;
}
.kw-question { padding:16px; color:var(--ink, #212121); }
.kw-question summary { display:flex; justify-content:space-between; align-items:center; gap:12px; cursor:pointer; list-style:none; }
.kw-question summary::-webkit-details-marker { display:none; }
.kw-question summary:focus-visible { outline-offset:5px; border-radius:3px; }
.kw-question-icon { flex:none; width:8px; height:8px; background:url('/assets/lower/9a1bd.svg') center / contain no-repeat; }
.kw-question[open] .kw-question-icon { transform:rotate(-45deg); }
.kw-answer { color:var(--kw-muted); min-height:0; overflow:hidden; }
.kw-answer p:first-child { margin-top:16px; }
.kw-answer p+p { margin-top:1.3em; }

/* Keep the answer in layout during closing so its grid row can reach zero. */
.kw-question::details-content { display:grid; grid-template-rows:0fr; }
.kw-question[open]::details-content { grid-template-rows:1fr; }
@media (prefers-reduced-motion: no-preference) {
  .kw-question::details-content {
    transition: grid-template-rows var(--faq-duration) var(--faq-ease),
                content-visibility var(--faq-duration) allow-discrete;
  }
  .kw-question-icon { transition:transform var(--faq-duration) var(--faq-ease); }
}
.kw-footer-shell { padding:0 24px; color:#fff; background:var(--ink); overflow:hidden; }
.kw-foot-logo { display:inline-block; margin-block:60px; vertical-align:top; }
.kw-foot-logo img { width:90.396px; height:23px; }
.kw-footer-grid { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:stretch; gap:6px; padding:4px; border-radius:20px; background:rgb(255 255 255 /.03); }
.kw-footer-info { display:flex; flex-direction:column; justify-content:center; gap:20px; padding:24px; }
.kw-footer-fixed-column .kw-footer-info { justify-content:flex-start; }
@media(min-width:1051px){.kw-footer-fixed-column .kw-footer-grid {grid-template-columns:322px minmax(0,1fr)}}
.kw-footer-info > div { display:grid; gap:12px; justify-items:start; }
.kw-footer-info > div+div { border-top:1px solid rgb(255 255 255 /.03); padding-top:20px; }
.kw-footer h3 { color:white; font:inherit; }
.kw-city-row,.kw-social-row { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.kw-city-row span,.kw-footer .kw-email { display:inline-flex; align-items:center; min-height:31px; color:white; background:rgb(255 255 255 /.06); border-radius:8px; padding:9px 12px; line-height:1; white-space:nowrap; }
/* Keep the hit area fixed while the Figma hover tile scales from 32px to 28px. */
.kw-social { width:32px; height:32px; flex:none; display:grid; place-items:center; border-radius:8px; }
.kw-social-tile { width:32px; height:32px; display:grid; place-items:center; border-radius:8px; background:rgb(255 255 255 /.06); transform:scale(1); }
/* This Figma asset already includes the 6% background. Add only the difference
   on hover so the combined background is the same 12% as the other icons. */
.kw-social-tile-baked { background:transparent; }
.kw-social:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.kw-social:focus-visible .kw-social-tile { transform:scale(.875); background:rgb(255 255 255 /.12); }
.kw-social:focus-visible .kw-social-tile-baked { background:rgb(255 255 255 / .0638297872); }
@media (hover:hover) and (pointer:fine) {
  .kw-social:hover .kw-social-tile { transform:scale(.875); background:rgb(255 255 255 /.12); }
  .kw-social:hover .kw-social-tile-baked { background:rgb(255 255 255 / .0638297872); }
}
@media (prefers-reduced-motion:no-preference) {
  .kw-social-tile { transition:transform 320ms cubic-bezier(.32,.72,0,1), background-color 320ms cubic-bezier(.32,.72,0,1); }
}
.kw-social-row a:first-child img { mask:url('/assets/lower/c4022.svg') center / contain no-repeat; }
.kw-footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; background:rgb(255 255 255 /.03); border-radius:16px; }
.kw-footer-links--compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
.kw-footer-list { padding:24px; }
.kw-footer-list h3 { margin-bottom:20px; }
.kw-footer-list ul { list-style:none; padding:0; color:rgb(255 255 255 /.5); }
.kw-footer-list li { padding-block:4px; overflow-wrap:anywhere; }
.kw-cookie-trigger { color:inherit; background:transparent; border:0; padding:0; text-align:start; }
.kw-copyright { display:flex; justify-content:space-between; gap:16px; padding:60px 0; color:rgb(255 255 255 /.5); }
@media(max-width:1050px){
  .kw-auditor-grid { gap:40px; }
  .kw-footer-info { padding:20px 16px; }
  .kw-footer-list { padding-inline:18px; }
}
@media(max-width:820px){
  .kw-auditor-grid { gap:24px; }
  .kw-auditor-intro { margin-bottom:32px; }
  .kw-founder { padding:20px; }
  .kw-footer-grid { grid-template-columns:1fr; }
  .kw-footer-info { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:20px; align-items:start; }
  .kw-footer-info > div+div { border:0; padding-top:0; }
  .kw-faq-layout { grid-template-columns:minmax(230px,291px) minmax(0,500px); }
  .kw-review-featured { width:min(680px,calc(100vw - 64px)); }
}
@media(max-width:680px){
  .kw-lower h2 { font-size:30px; line-height:1.18; }
  .kw-testimonials { padding:56px 0 64px; }
  .kw-test-intro { margin-bottom:32px; }
  .kw-test-intro h2 br { display:none; }
  .kw-test-intro h2 { max-width:390px; }
  .kw-review { width:min(336px,calc(100vw - 64px)); min-height:300px; }
  .kw-review-featured { width:min(440px,calc(100vw - 40px)); }
  .kw-framed { padding:0 10px 10px; }
  .kw-auditor-shell { padding:40px 18px 18px; }
  .kw-auditor-grid { grid-template-columns:minmax(0,1fr); }
  .kw-auditor-intro{ margin-bottom:24px; }
  .kw-founder { padding:20px; }
  .kw-founder figcaption { margin-top:24px; }
  .kw-stats { gap:2px; min-height:70px; }
  .kw-stats dt { font-size:11px; }
  .kw-stats > div { gap:4px; }
  .kw-auditor-video { width:100%; aspect-ratio:482/473; min-height:0; }
  .kw-faq { padding:48px 20px; }
  .kw-faq-layout { grid-template-columns:minmax(0,1fr); gap:20px; }
  .kw-faq-aside { position:static; margin:0; }
  .kw-contact-card { width:100%; margin-top:16px; }
  .kw-footer-shell { padding:0 16px; }
  .kw-foot-logo { margin-block:32px; }
  .kw-footer-info { display:flex; align-items:stretch; padding:16px; }
  .kw-footer-info > div { justify-items:stretch; }
  .kw-footer-info > div+div { border-top:1px solid rgb(255 255 255 /.06); padding-top:16px; }
  .kw-footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .kw-footer-list { padding:18px 12px; }
  .kw-footer-list h3 { margin-bottom:12px; }
  .kw-copyright { padding:32px 0; flex-direction:column; gap:8px; }
}
