/* Responsive containment for the public product experience. */

@media (min-width:801px) and (max-width:1100px){
  html,
  body,
  main,
  .site-footer{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  body,
  main{
    overflow-x:hidden;
  }

  .toolkit-section{
    min-width:0;
    max-width:100%;
  }

  .tool-rail{
    width:100%;
    min-width:0;
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-padding-inline:0 70px;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 58px),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 58px),transparent 100%);
  }

  .rail-controls{
    position:absolute;
    z-index:8;
    top:112px;
    right:20px;
    margin:0;
  }

  .rail-controls button{
    border-radius:50%;
    background:rgba(7,19,38,.94);
    box-shadow:0 0 24px rgba(63,214,255,.16);
  }
}

@media (min-width:768px) and (max-width:800px){
  html,
  body,
  main,
  .site-footer{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  body,
  main{
    overflow-x:hidden;
  }

  .toolkit-section{
    min-width:0;
    max-width:100%;
  }

  .tool-rail{
    width:100%;
    min-width:0;
    max-width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-padding-inline:0 46px;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 38px),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 38px),transparent 100%);
  }

  .rail-controls button{
    border-radius:50%;
  }
}

@media (max-width:767px){
  html,
  body,
  main,
  .site-footer{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  html,
  body,
  main{
    overflow-x:hidden;
  }

  .site-header{
    width:100%;
    max-width:100%;
    min-width:0;
    height:68px;
    margin:0;
    padding-inline:16px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    box-sizing:border-box;
  }

  .site-header > *{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  .brand{
    grid-column:1;
    width:100%;
    min-width:0;
    max-width:100%;
    gap:7px;
    overflow:hidden;
    font-size:clamp(12px,3.35vw,14px);
    white-space:nowrap;
  }

  .brand img{
    width:40px;
    height:40px;
    flex:0 0 40px;
    border-radius:9px;
  }

  .brand span{
    display:block!important;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .header-actions{
    grid-column:2;
    width:auto;
    min-width:0;
    max-width:100%;
    margin:0 44px 0 0;
    gap:0;
    justify-content:end;
    box-sizing:border-box;
  }

  .header-actions .sign-in{
    display:none;
  }

  .header-actions .button{
    width:120px;
    min-width:0;
    max-width:120px;
    min-height:40px;
    padding:8px 5px;
    font-size:11px;
    line-height:1.05;
    white-space:nowrap;
    box-sizing:border-box;
  }

  .menu-toggle{
    display:flex;
    position:absolute;
    z-index:3;
    top:12px;
    right:8px;
    width:40px;
    height:44px;
    padding:0;
  }

  .menu-toggle span{
    width:23px;
  }

  .site-nav{
    top:68px;
    left:0;
    right:0;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  .hero{
    width:100%;
    max-width:100%;
    min-width:0;
    height:auto;
    min-height:0;
    margin:0;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
  }

  .hero > *,
  .hero-copy,
  .hero-copy > *,
  .hero-actions,
  .hero-actions > *,
  .store-row,
  .store-row > *{
    min-width:0;
    max-width:100%;
    box-sizing:border-box;
  }

  .hero-copy{
    width:100%;
    max-width:100%;
    min-width:0;
    padding:34px 20px 24px;
  }

  .hero .eyebrow{
    width:100%;
    max-width:100%;
    min-width:0;
    margin-bottom:12px;
    font-size:11px;
    line-height:1.35;
    white-space:normal;
  }

  .hero h1{
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0;
    font-size:clamp(44px,12.5vw,50px);
    line-height:.98;
    letter-spacing:-.052em;
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    box-sizing:border-box;
  }

  .hero h1 span{
    display:block;
    margin:0;
    padding:0;
    line-height:inherit;
  }

  .hero h1 br{
    display:none;
  }

  .hero-lead{
    width:100%;
    max-width:none;
    min-width:0;
    margin:20px 0 22px;
    font-size:17px;
    line-height:1.4;
    white-space:normal;
    overflow-wrap:anywhere;
    box-sizing:border-box;
  }

  .hero .hero-actions{
    width:100%;
    max-width:100%;
    min-width:0;
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    align-items:stretch;
    box-sizing:border-box;
  }

  .hero .hero-actions .button{
    width:100%;
    max-width:100%;
    min-width:0!important;
    min-height:50px;
    height:50px;
    padding:11px 14px;
    flex:none;
    font-size:13px;
    letter-spacing:-.012em;
    white-space:normal;
    text-align:center;
    box-sizing:border-box;
  }

  .price-note{
    width:100%;
    max-width:100%;
    min-width:0;
    margin:13px 0;
    font-size:12px;
    line-height:1.5;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .price-note i{
    display:none;
  }

  .store-row{
    width:100%;
    max-width:340px;
    min-width:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  .store-badge{
    width:100%;
    max-width:100%;
    min-width:0;
    height:47px;
    padding:6px 9px;
    overflow:hidden;
    box-sizing:border-box;
  }

  .store-badge small,
  .store-badge strong{
    max-width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .store-badge strong{
    font-size:clamp(13px,4vw,16px);
  }

  .hero-scene{
    width:100vw;
    max-width:none;
    min-width:0;
    min-height:480px;
    height:clamp(480px,140vw,610px);
    margin:0 0 0 calc(50% - 50vw);
    position:relative;
    overflow:hidden;
    align-self:auto;
    isolation:isolate;
    box-sizing:border-box;
  }

  .hero-scene:before{
    inset:0;
    border-left:0;
    border-right:0;
    border-top:1px solid rgba(63,214,255,.18);
    border-bottom:1px solid rgba(63,214,255,.16);
  }

  .hero-scene img{
    position:absolute;
    z-index:2;
    top:8px;
    left:50%;
    width:clamp(700px,220vw,950px);
    max-width:none;
    min-width:0;
    height:auto;
    object-fit:contain;
    object-position:center top;
    transform:translateX(-32.5%);
  }

  .scene-glow{
    width:82vw;
    height:72vw;
    max-height:350px;
    left:4%;
    top:68px;
  }

  .scene-caption{
    display:block;
    right:16px;
    bottom:14px;
    max-width:calc(100% - 32px);
    margin:0;
    font-size:13px;
    white-space:nowrap;
  }

  .scene-caption span{
    padding:0 5px;
  }

  .audience-strip{
    width:100%;
    max-width:100%;
    min-width:0;
    height:62px;
    margin:0;
    padding:0;
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    scrollbar-color:#2a5b77 transparent;
    scroll-snap-type:x proximity;
    box-sizing:border-box;
  }

  .audience-strip > div{
    flex:0 0 168px;
    width:168px;
    min-width:168px;
    min-height:61px;
    padding:9px 13px;
    gap:8px;
    justify-content:flex-start;
    border-right:1px solid #24405a;
    border-bottom:0;
    white-space:nowrap;
    text-align:left;
    line-height:1.25;
    scroll-snap-align:start;
    box-sizing:border-box;
  }

  .audience-strip svg{
    flex:0 0 20px;
    width:20px;
    height:20px;
  }

  .line-icon{
    flex:0 0 21px;
    font-size:20px;
  }

  .audience-strip strong{
    font-size:13px;
  }

  .toolkit-section,
  .workflow-section,
  .visual-section,
  .use-cases,
  .pricing-band,
  .partner-promo,
  .faq-preview,
  .final-cta,
  .inner-hero,
  .partner-hero,
  .content-split,
  .gallery-section,
  .form-section,
  .pricing-hero,
  .section-frame{
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
  }

  .toolkit-section{
    overflow:hidden;
  }

  .toolkit-intro,
  .toolkit-intro > *,
  .tool-card > *{
    min-width:0;
    max-width:100%;
  }

  .tool-rail{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0 35px;
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 30px),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 30px),transparent 100%);
  }

  .tool-card,
  .tool-card-main{
    flex:0 0 calc(100vw - 40px);
    width:calc(100vw - 40px);
    max-width:calc(100vw - 40px);
    scroll-snap-align:start;
  }

  .training-ribbon{
    width:calc(100% - 20px);
    max-width:calc(100% - 20px);
    min-width:0;
    padding-left:13px;
    gap:10px;
    overflow:hidden;
    box-sizing:border-box;
  }

  .training-ribbon strong{
    min-width:0;
    font-size:12px;
    white-space:normal;
    line-height:1.2;
  }

  .training-ribbon b{
    flex:0 0 48px;
    width:48px;
  }

  .inner-hero > *,
  .partner-hero > *,
  .content-split > *,
  .form-section > *,
  .pricing-band > *,
  .partner-promo > *,
  .final-cta > *,
  .footer-main > *{
    min-width:0;
    max-width:100%;
  }

  .inner-hero .hero-actions{
    width:100%;
    max-width:100%;
  }

  .inner-hero .hero-actions .button,
  .partner-hero .button{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }

  .technical-orbit{
    width:min(260px,calc(100vw - 64px));
    height:min(260px,calc(100vw - 64px));
    max-width:calc(100vw - 64px);
  }

  .technical-orbit strong{
    right:0;
    top:20px;
    max-width:145px;
  }

  .support-shortcuts{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-left:0;
    margin-top:30px;
  }

  .partner-diagram{
    width:100%;
    max-width:100%;
    min-width:0;
    margin-top:40px;
  }

  .partner-diagram span{
    min-width:0;
    padding:8px 6px;
    font-size:9px;
    white-space:nowrap;
  }

  .partner-diagram i{
    width:auto;
    min-width:18px;
    flex:1 1 35px;
  }

  .partner-diagram b{
    width:76px;
    height:76px;
    flex:0 0 76px;
  }

  .price-layout{
    width:auto;
    max-width:calc(100% - 40px);
    min-width:0;
  }

  .price-main,
  .included,
  .big-price,
  .faq-page,
  .faq-list,
  .product-gallery,
  .field-grid,
  .enquiry-form{
    min-width:0;
    max-width:100%;
  }

  .big-price strong{
    font-size:clamp(50px,16vw,63px);
  }

  .pricing-band .button,
  .final-cta .button,
  .partner-promo .button{
    max-width:100%;
    white-space:normal;
    text-align:center;
  }

  .footer-main,
  .footer-legal{
    max-width:100%;
    min-width:0;
  }

  p,
  li,
  figcaption,
  .prose,
  .footer-legal{
    overflow-wrap:anywhere;
  }
}

@media (max-width:360px){
  .brand{
    font-size:12px;
  }

  .brand span{
    display:none!important;
  }

  .brand img{
    width:39px;
    height:39px;
    flex-basis:39px;
  }

  .header-actions .button{
    width:116px;
    max-width:116px;
    font-size:10.5px;
  }

  .hero-copy{
    padding-left:20px;
    padding-right:20px;
  }

  .hero .hero-actions{
    gap:8px;
  }

  .audience-strip > div{
    flex-basis:160px;
    width:160px;
    min-width:160px;
    padding-left:10px;
    padding-right:9px;
    font-size:12px;
  }
}
