/* Original IHOS product-concept presentation. Scope is isolated to this module. */
.device-stage { background: #143b30; color: #f5f6ed; padding: 36px 0 62px; overflow: hidden; }
.device-stage__inner { position: relative; scroll-margin-top: 112px; }
.device-stage__mast { display: flex; justify-content: space-between; gap: 22px; align-items: center; padding-bottom: 28px; border-bottom: 1px solid #416055; }
.device-stage__wordmark { font-size: 14px; font-weight: 650; letter-spacing: -.02em; }
.device-stage__wordmark > span { color: #9eaf9a; margin: 0 11px; font-weight: 400; }
.device-status { display: inline-flex; gap: 8px; align-items: center; border: 1px solid #647951; border-radius: 30px; padding: 9px 13px; font-size: 11px; line-height: 1.45; color: #e2ecce; }
.device-status > span { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: #d7fa87; }
.device-stage__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 42px; align-items: center; padding-top: 42px; }
.device-stage__copy { min-width: 0; }
.device-stage__eyebrow { color: #c3d3c6; font-size: 12px; line-height: 1.5; margin-bottom: 21px; }
.device-stage__title { font-family: 'DM Sans', 'Manrope', sans-serif; font-size: clamp(44px, 5.8vw, 82px); font-weight: 550; letter-spacing: -.06em; line-height: 1.035; color: #f5f6ed; margin: 0 0 27px; }
.device-stage__title em { font-style: normal; font-weight: inherit; color: #d7fa87; }
.device-stage__lede { max-width: 43ch; color: #d0dfd3; font-size: 15px; line-height: 1.85; }
.device-stage__actions { display: flex; align-items: flex-start; flex-direction: column; gap: 12px; margin-top: 27px; }
.device-stage .device-stage__cta { color: #153c30; background: #d7fa87; border-color: #d7fa87; max-width: 100%; white-space: normal; line-height: 1.5; }
.device-stage .device-stage__cta:hover { background: #e7ffb5; border-color: #e7ffb5; }
.device-stage__secondary { display: inline-flex; align-items: center; gap: 16px; color: #e1e9db; padding: 10px 0; font-size: 12px; font-weight: 550; }
.device-stage__secondary:hover { color: #d7fa87; }
.device-stage a:focus-visible { outline-color: #e6ffa8; }
.device-stage__figure { margin: 0; min-width: 0; }
.device-stage__image { overflow: hidden; background: #eef1e6; border-radius: 24px; }
.device-stage__image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.device-stage__figure figcaption { padding: 18px 2px 0; }
.device-stage__figure figcaption > span { font-size: 12px; font-weight: 600; color: #f0f4e9; }
.device-stage__figure figcaption p { color: #bccfc0; font-size: 11px; line-height: 1.7; margin-top: 5px; max-width: 60ch; }
.device-stage--compact { padding-top: 34px; padding-bottom: 46px; }
.device-stage--compact .device-stage__grid { grid-template-columns: .85fr 1.15fr; gap: 58px; }
.device-stage--compact .device-stage__title { font-size: clamp(40px, 4.7vw, 66px); }
.device-stage--compact .device-stage__lede { font-size: 14px; }
.device-goals { background: #f6f7f1; padding: 78px 0; }
.device-section-intro { display: grid; grid-template-columns: 1.15fr .85fr; gap: 60px; align-items: end; margin-bottom: 37px; }
.device-section-intro .h2 { max-width: 23ch; margin-top: 17px; }
.device-section-intro > p { max-width: 42ch; font-size: 14px; line-height: 1.85; color: #53685b; padding-bottom: 4px; }
.device-goals__body { display: grid; grid-template-columns: 1.1fr .9fr; gap: 55px; align-items: center; }
.device-in-use { margin: 0; min-width: 0; }
.device-in-use img { display: block; width: 100%; height: auto; border-radius: 22px; }
.device-in-use figcaption { margin-top: 13px; font-size: 10px; line-height: 1.7; color: #52675a; }
.device-goals__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr; gap: 24px; }
.device-goals__grid li { display: grid; grid-template-columns: 27px 1fr; gap: 0 15px; padding: 22px 0 0; border-top: 1px solid #bbcbb6; }
.device-goals__number { grid-row: span 2; padding-top: 6px; font: 11px var(--mono); color: #61784f; }
.device-goals__grid h3 { font-size: 22px; font-weight: 550; letter-spacing: -.035em; line-height: 1.3; color: #193e31; margin: 0 0 10px; }
.device-goals__grid p { font-size: 13px; line-height: 1.85; color: #53685b; max-width: 45ch; }
.device-paths { background: #e8eedd; padding: 64px 0; }
.device-paths__grid { display: grid; grid-template-columns: 1.05fr 1fr 1fr; gap: 25px; align-items: stretch; }
.device-paths__intro { padding: 10px 15px 15px 0; }
.device-paths__intro .h2 { font-size: clamp(30px, 3.1vw, 42px); margin-top: 21px; }
.device-path { background: #f7f8f2; border: 1px solid #d1dbc7; padding: 28px; border-radius: 20px; display: flex; flex-direction: column; align-items: start; }
.device-path--future { background: #d6e4c2; border-color: #cadaba; }
.device-path__label { font-size: 10px; font-weight: 650; letter-spacing: .04em; color: #52664e; margin-bottom: 24px; }
.device-path h3 { color: #173d30; font-size: 25px; font-weight: 550; letter-spacing: -.04em; line-height: 1.25; margin-bottom: 14px; }
.device-path p { font-size: 13px; line-height: 1.8; color: #4c6353; margin-bottom: 23px; }
.device-path a { display: flex; gap: 16px; justify-content: space-between; width: 100%; padding-top: 17px; border-top: 1px solid #b6c6ab; font-size: 12px; font-weight: 650; color: #183e31; margin-top: auto; }
.device-path a:hover { text-decoration: underline; text-underline-offset: 4px; }
.device-questions { padding: 76px 0; background: #fff; }
.device-questions__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 74px; }
.device-questions .h2 { margin-top: 18px; }
.device-question { border-top: 1px solid #d5dfce; }
.device-question:last-child { border-bottom: 1px solid #d5dfce; }
.device-question summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 22px; padding: 23px 0; font-size: 15px; line-height: 1.5; font-weight: 600; color: #193f31; }
.device-question summary::-webkit-details-marker { display: none; }
.device-question summary > span:last-child { font-size: 23px; line-height: 1; font-weight: 400; transition: transform .2s; }
.device-question[open] summary > span:last-child { transform: rotate(45deg); }
.device-question p { padding: 0 32px 25px 0; font-size: 13px; line-height: 1.9; color: #52675a; }
@media (max-width: 1040px) {
  .device-stage__grid, .device-stage--compact .device-stage__grid { gap: 30px; grid-template-columns: 1fr 1.05fr; }
  .device-stage__title { font-size: clamp(41px, 5.7vw, 65px); }
  .device-stage__lede { font-size: 14px; }
  .device-goals__body { gap: 30px; }
  .device-paths__grid { grid-template-columns: 1fr 1fr; }
  .device-paths__intro { grid-column: 1 / -1; max-width: 650px; }
  .device-questions__grid { gap: 45px; }
}
@media (max-width: 760px) {
  .device-stage { padding-top: 25px; padding-bottom: 36px; }
  .device-stage__mast { flex-wrap: wrap; gap: 15px; padding-bottom: 22px; }
  .device-stage__wordmark { font-size: 13px; }
  .device-status { font-size: 10px; padding: 8px 11px; }
  .device-stage__grid, .device-stage--compact .device-stage__grid { grid-template-columns: 1fr; gap: 30px; padding-top: 30px; }
  .device-stage__title, .device-stage--compact .device-stage__title { font-size: clamp(43px, 9.3vw, 68px); }
  .device-stage__lede { max-width: 58ch; }
  .device-stage__image { border-radius: 17px; }
  .device-stage__actions { margin-top: 23px; }
  .device-stage__cta { font-size: 13px; padding: 14px 20px; }
  .device-goals, .device-questions { padding: 48px 0; }
  .device-section-intro, .device-questions__grid, .device-goals__body { grid-template-columns: 1fr; gap: 23px; }
  .device-section-intro > p { max-width: 60ch; }
  .device-goals__grid { grid-template-columns: 1fr; gap: 25px; }
  .device-goals__grid li { display: grid; grid-template-columns: 30px 1fr; gap: 0 15px; padding-top: 22px; }
  .device-goals__number { grid-row: span 2; padding-top: 6px; }
  .device-goals__grid h3 { margin: 0 0 10px; }
  .device-goals__grid p { max-width: 55ch; }
  .device-paths { padding: 39px 0; }
  .device-paths__grid { grid-template-columns: 1fr; gap: 18px; }
  .device-path { padding: 24px; }
  .device-paths__intro { padding: 0 0 10px; }
  .device-question summary { font-size: 14px; }
  .device-question p { padding-right: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .device-question summary > span:last-child { transition: none; }
}
