/* Shared behavior/accessibility fixes, without changing the demo's visual identity. */
.kasa-site { overflow: clip; } /* Sticky header must not be trapped in an overflow:hidden ancestor. */
.site-header { grid-template-columns: minmax(100px, 140px) minmax(0, 1fr) auto; }
.mobile-nav { display: none; }
.menu-button { min-width: 44px; min-height: 44px; }
.menu-button .icon-x, .menu-button[aria-expanded="true"] .icon-menu { display: none; }
.menu-button[aria-expanded="true"] .icon-x { display: block; }
.header-cta, .primary-cta { color: var(--ink); border-radius: var(--button-radius); min-height: 44px; }
.eyebrow:not(.light), .detail-label { color: var(--accent-text); }
.final-cta .eyebrow, .process .eyebrow, .band .eyebrow { color: var(--accent-light); }
.back-to-top { color: var(--ink); }
.contact form { min-width: 0; }
.contact fieldset { padding: 0; margin: 0; display: grid; gap: 17px; min-width: 0; }
.contact input, .contact textarea { font-size: 16px; }
.contact [disabled] { opacity: .65; cursor: wait; }
.contact-details { margin-top: 24px; display: grid; gap: 12px; overflow-wrap: anywhere; }
.contact-details address { font-style: normal; }
.form-status { border-radius: var(--button-radius); padding: 13px 15px; line-height: 1.5; font-size: 14px; display: flex; gap: 10px; }
.form-status[data-state="success"] { background: var(--success-bg); color: var(--success); }
.form-status[data-state="error"] { background: var(--error-bg); color: var(--error); }
.form-status[data-state="info"] { background: var(--info-bg); color: var(--info); }
.status-icon { font-size: 19px; font-weight: 700; line-height: 1.2; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.form-privacy a { text-decoration: underline; }
.social-links { display: flex; flex-wrap: wrap; gap: 12px; }
.resource-download .primary-cta { white-space: normal; }
.resource-view { display: block; width: fit-content; margin-top: 16px; font-size: 13px; text-underline-offset: 3px; text-decoration: underline; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.form-privacy { font-size: 13px; line-height: 1.5; }
.final-cta { flex-wrap: wrap; }
.final-cta > div { min-width: 0; }
.expertise-result { grid-template-columns: .75fr 1.25fr; }
.expertise-result .text-link { grid-column: 2; justify-self: start; }
.expertise-heading, .expertise-content, .split > *, .method > * { min-width: 0; }
@media (min-width: 761px) and (max-width: 1100px) {
  .expertise-detail, .expertise-intro { gap: 5%; grid-template-columns: .8fr 1.2fr; }
  .expertise-content { grid-template-columns: 1fr; gap: 28px; }
  .expertise-result { grid-template-columns: 1fr; }
  .expertise-result .text-link { grid-column: auto; }
}
@media (max-width: 900px) {
  .contact-hero { background: linear-gradient(135deg, var(--ink) 0%, var(--ink) 85%, var(--orange) 85%) !important; }
  .site-header { height: 68px; padding: 0 var(--page-gutter); grid-template-columns: 1fr auto; }
  .desktop-nav, .site-header > .header-cta { display: none; }
  .menu-button { display: grid; place-items: center; }
  .mobile-nav { position: absolute; left: 0; right: 0; top: 68px; padding: 18px var(--page-gutter) 24px; background: var(--white); border-bottom: 1px solid var(--line); display: grid; gap: 12px; max-height: calc(100dvh - 68px); overflow-y: auto; }
  .mobile-nav a { min-height: 36px; display: flex; align-items: center; font-size: 16px; }
  .mobile-nav .active { color: var(--accent-text); font-weight: 800; }
  .mobile-nav .header-cta { color: var(--ink); width: max-content; max-width: 100%; margin-top: 8px; font-size: 14px; }
}
@media (max-width: 760px) {
  .expertise-result { grid-template-columns: 1fr; }
  .expertise-result .text-link { grid-column: auto; }
  .primary-cta { white-space: normal; text-align: center; }
}
@media (max-width: 380px) {
  .steps { grid-template-columns: 1fr; }
  .contact form { padding: 20px; }
}
