/* Shared responsive safeguards, loaded after each page's own styles. */
img,video{max-width:100%;height:auto}iframe{max-width:100%}
h1,h2,h3,p,a{overflow-wrap:anywhere}
.grid>*,.project-grid>*,.team-grid>*,.gallery>*,.contact-layout>*,.home-intro>*{min-width:0}
.about-inner,.description,.blog-detail-content{min-width:0;overflow-wrap:anywhere}
.about-inner img,.description img,.blog-detail-content img{max-width:100%!important;height:auto!important}
.about-inner table,.description table,.blog-detail-content table{display:block;max-width:100%;overflow-x:auto}
.about-inner iframe,.description iframe,.blog-detail-content iframe{max-width:100%}
.slider,.hero{height:100svh;min-height:420px}
.hero .overlay{width:calc(100% - 40px);max-width:1000px}
.hero .overlay h1{font-size:clamp(25px,4vw,42px);line-height:1.25}
.about-hero h1{font-size:clamp(30px,6vw,80px);letter-spacing:clamp(1px,.4vw,6px);text-align:center;color:white;padding:0 20px}
.side-menu{height:100dvh;max-width:100vw;overflow-y:auto;overscroll-behavior:contain;padding-bottom:30px}
/* One reachable menu toggle above the drawer on every page. */
#headerMenuIcon{display:none}
#menuIcon{z-index:7100;width:44px;height:44px;top:11px;left:15px;padding:12px 10px}
#menuIcon span{flex-shrink:0}
#menuIcon.active span{background:#fff!important}
.menu-icon.active span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.menu-icon.active span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.team-details.active{max-height:none;scroll-margin-top:85px}
.hero-title-main{overflow-wrap:anywhere}
.home-intro h2{overflow-wrap:anywhere}
footer{padding-inline:18px}
@media(max-width:1024px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:768px){
 .header-inner{width:100%;padding:0 72px 0 54px}
 #topBar .header-logo a{font-size:clamp(12px,3.7vw,18px);letter-spacing:.5px;white-space:nowrap}
 #topBar .lang-switch{right:12px;font-size:12px;white-space:nowrap}
 .lang-switch a{display:inline-flex;align-items:center;min-height:44px}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .about-content{padding:50px 20px}.about-inner{text-align:left}
 .team-section{padding:45px 0 65px}.team-details.active{padding:30px 18px}
 .team-details h3{font-size:20px}.team-details p{font-size:14px}
 .overlay-name{opacity:1;transform:none;left:12px;right:12px;bottom:12px;font-size:13px;text-shadow:0 1px 6px #000}
 .description{margin:35px auto;font-size:14px}.gallery{margin:35px auto 60px}
 .contact-layout{gap:25px}.contact-form-card,.contact-info-card{min-width:0}
 input,select,textarea{max-width:100%;font-size:16px!important}
 .section-title,.blog-detail-header h1{font-size:clamp(23px,6vw,30px);letter-spacing:.08em}
 .filter-bar{gap:8px!important;padding:0 12px;margin-bottom:28px!important}
 .filter-bar a{font-size:13px!important;min-height:44px}
 .grid .project h3{font-size:15px}.grid .project .info{padding:14px}
 .grid .project{aspect-ratio:auto;min-height:280px}
 .grid .project img{position:absolute;inset:0}
 .project-name{opacity:1;left:14px;right:14px;font-size:15px;text-align:left;text-shadow:0 1px 6px #000}
 .project-item:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0008);pointer-events:none}
 .project-name{z-index:1}
 .dots{bottom:15px;gap:2px}.dot{width:36px;height:36px;border:12px solid transparent}.dot,.dot.active{background-clip:padding-box}
 .hero-title{bottom:85px}.hero-title-main{font-size:clamp(30px,8vw,43px)}
}
@media(max-width:380px){.team-grid{grid-template-columns:minmax(0,1fr)}.home-intro h2{font-size:34px}}
@media(max-height:500px) and (orientation:landscape){.slider,.hero{min-height:360px}.side-menu{padding-top:65px}.side-menu ul li{margin:8px 0}.side-menu .social-area{margin-top:16px}.hero-title{bottom:65px}.hero-title-main{font-size:34px;margin:10px 0}.hero-title-kicker{font-size:8px}.hero-title-link{font-size:10px}}
@media(prefers-reduced-motion:reduce){html,body{scroll-behavior:auto}}
