/* Shared responsive safeguards for the public site and admin area. */
img,svg,video,canvas{max-width:100%}
button,.button,.admin-button{max-width:100%;white-space:normal}
h1,h2,h3,h4,p,a,strong,td,th{overflow-wrap:anywhere}
.container,.header-inner,.hero-slide,.hero-grid,.section-heading,.product-grid,.capability-cards,.software-inner,.software-preview,.home-about-grid,.contact-section,.footer-main,.event-grid,.showcase-grid,.admin-wrap,.admin-grid,.admin-columns{min-width:0}
.product-grid,.capability-cards,.pillar-grid,.showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.product-card,.capability-card,.pillar,.showcase-card,.event-card,.software-tile{min-width:0}
.product-card-copy>p:not(.card-kicker){min-height:0}
.event-card-body h3,.product-card h3,.showcase-card-copy h3,.software-tile strong,.contact-line strong,.footer-contact a,.footer-links a{overflow-wrap:anywhere}
.event-card-image .event-date-badge{top:14px;right:auto;bottom:auto;left:14px;display:inline-flex;width:max-content;min-width:0;height:auto;min-height:0;align-items:center;justify-content:center;padding:8px 11px;line-height:1.2;white-space:nowrap;z-index:2}
.product-image-wrap,.event-card-image,.event-detail-image,.showcase-logo-frame,.home-about-visual{contain:layout paint}
.button,.nav-cta,.text-arrow{line-height:1.35}
.feature-actions{flex-wrap:wrap}
.catalog-section,.feature-section,.capabilities-section,.home-about,.contact-section,.showcase-section,.showcase-section-tint{padding-block:clamp(56px,7vw,96px)}
.site-footer{overflow-wrap:anywhere}
.event-popup-close{position:sticky;top:10px;float:right;margin:10px 10px -46px 0;z-index:3}
.event-popup-content,.event-popup-image,.event-popup-copy{min-width:0}
.admin-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.hero-copy{padding-left:clamp(32px,calc((100vw - 1200px)/2),100px)}
.slider-controls{left:clamp(32px,calc((100vw - 1200px)/2),100px)}

@media(max-width:1100px){
  .header-inner{width:calc(100% - 48px)}
  .menu-toggle{display:flex;position:relative;inset:auto;width:44px;height:42px;flex:0 0 44px;flex-direction:column;justify-content:center;align-items:center;gap:5px;border:1px solid #dce4ee;border-radius:8px;background:#fff}
  .menu-toggle>span:not(.sr-only){height:2px;width:18px;background:var(--navy)}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;padding:12px 24px 20px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 14px 25px #0c1e3817;align-items:stretch;gap:2px}
  .main-nav.is-open{display:flex;flex-direction:column}
  .main-nav>a{padding:10px 4px;font-size:13px}
  .main-nav .nav-cta{border:0;padding:10px 4px}
  .language-form{padding:8px 4px 0;border-top:1px solid var(--line)}
}
@media(max-width:900px){
  .container{width:calc(100% - 48px)}
  .product-grid,.capability-cards,.pillar-grid,.showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .product-card-copy{padding:18px}
  .software-inner{gap:30px}
  .footer-main{grid-template-columns:1.2fr 1fr;gap:32px}
  .footer-brand{grid-column:1/-1}
  .event-grid-single .event-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .event-grid-single .event-card-image{min-width:0}
  .banner-graphic{width:220px;right:0;opacity:.18}
  .page-banner-inner>div:first-child{max-width:calc(100% - 170px)}
}
@media(max-width:760px){
  .container{width:calc(100% - 40px)}
  .feature-section,.software-inner,.contact-section,.home-about-grid{grid-template-columns:minmax(0,1fr)}
  .feature-section{gap:30px;padding-block:58px}
  .feature-art{height:auto;min-height:0;aspect-ratio:4/3}
  .contact-section{gap:28px;padding-block:58px}
  .page-banner-inner{min-height:310px}
  .page-banner-inner>div:first-child{max-width:min(100%,600px)}
  .banner-graphic{opacity:.35}
  .spotlight-slide{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .footer-main{grid-template-columns:1fr 1fr;gap:24px}
}
@media(max-width:650px){
  .header-inner{width:calc(100% - 38px)}
  .menu-toggle{position:relative;inset:auto;right:auto;top:auto;width:42px;height:40px;flex-basis:42px}
  .main-nav{top:100%;padding-inline:19px}
  .container{width:calc(100% - 38px)}
  .product-grid,.capability-cards,.pillar-grid,.showcase-grid{grid-template-columns:minmax(0,1fr)}
  .catalog-section{padding-block:58px}
  .product-image-wrap{height:auto;aspect-ratio:16/10}
  .product-card-copy>p:not(.card-kicker){min-height:0}
  .section-heading-row{gap:16px}
  .section-heading h2{font-size:clamp(30px,8vw,38px)}
  .feature-actions{align-items:flex-start;gap:16px}
  .page-banner-inner{min-height:0}
  .page-banner-inner>div:first-child{padding-block:44px 54px}
  .page-banner h1{font-size:clamp(36px,10vw,52px)}
  .banner-graphic{right:-24px}
  .banner-graphic{display:none}
  .spotlight-slide{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(200px,58vw)}
  .spotlight-copy{padding:26px 20px 62px}
  .spotlight-copy h2{font-size:clamp(30px,8vw,38px)}
  .spotlight-visual{min-height:0}
  .spotlight-controls{left:20px}
  .event-popup{width:calc(100% - 16px);max-height:calc(100dvh - 16px);overflow-y:auto}
  .event-popup-content{grid-template-columns:minmax(0,1fr);min-height:0}
  .event-popup-image,.event-popup-art{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:16/8;object-fit:cover}
  .event-popup-copy{padding:24px 20px 22px}
  .event-popup-copy h2{font-size:clamp(26px,7vw,32px)}
  .event-popup-close{margin:8px 8px -44px 0}
  .footer-main{grid-template-columns:minmax(0,1fr);padding-block:38px 30px}
  .footer-brand{grid-column:auto}
  .footer-bottom{gap:8px}
  .admin-wrap{width:calc(100% - 28px);margin:16px auto 40px}
  .admin-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;padding:8px}
  .admin-nav a{min-width:0;padding:10px 8px;text-align:center;overflow-wrap:anywhere}
  .admin-nav form{grid-column:1/-1;margin:4px 0 0}
  .admin-nav button{width:100%;min-height:42px}
  .admin-box{padding:16px}
  .admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-table{min-width:650px}
  .admin-page-heading{align-items:flex-start;flex-direction:column}
}
@media(max-width:380px){
  .container,.header-inner{width:calc(100% - 30px)}
  .brand{gap:7px}
  .brand-wordmark{font-size:9px}
  .menu-toggle{width:38px;height:38px;flex-basis:38px}
  .hero-editable .hero-copy h1{font-size:clamp(38px,11vw,48px)}
  .admin-nav{grid-template-columns:minmax(0,1fr)}
  .admin-nav form{grid-column:auto}
  .admin-stats{grid-template-columns:minmax(0,1fr)}
  .contact-form-wrap{padding:15px}
}
@media(min-width:1536px){
  .container{width:min(1200px,calc(100% - 128px))}
  .header-inner{width:min(1320px,calc(100% - 128px))}
}
