/* Homepage components and responsive adaptations; shared theme styles are untouched. */
.im-home img{max-width:100%}
.im-home a:focus-visible,.im-home button:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.im-home .im-home-language{color:#C9CDF0;font-weight:400}
.im-home .im-home-language.im-home-is-active{color:var(--yellow);font-weight:600}
.im-home .im-home-language[aria-disabled="true"]{pointer-events:none}
.im-home .im-home-menu-toggle{display:none}
.im-home .im-home-svc-ic svg,.im-home .im-home-svc-ic img{width:30px;height:30px;object-fit:contain}
.im-home .im-home-framework svg,.im-home .im-home-framework img{width:30px;height:30px;object-fit:contain}
.im-home .im-home-hero__content h1{margin:0;font-size:clamp(38px,4.6vw,68px);line-height:1.12;font-weight:800;letter-spacing:-.03em;color:var(--navy)}
.im-home .im-home-hero__content>p{margin:30px 0 0;font-size:clamp(16px,1.55vw,22px);line-height:1.5;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--navy)}
.im-home .im-home-hero__content strong{color:var(--red)}
.im-home .im-home-hero__content p strong{display:inline-block;background:var(--yellow);padding:2px 10px;border-radius:6px;color:var(--navy)}
.im-home .im-home-hero__background-image{position:absolute;inset:0;pointer-events:none}
.im-home .im-home-hero__background-image img{width:100%;height:100%;object-fit:cover}
.im-home [data-background-mode="image"]{display:none}
.im-home .im-home-tcard figcaption>span:first-child img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.im-home .im-home-news-badge{color:#fff;font-size:12px;font-weight:600;padding:4px 12px;border-radius:999px;background:var(--red)}
.im-home .im-home-news-badge--navy{background:var(--navy)}
.im-home .im-home-news-badge--yellow{background:var(--yellow);color:var(--navy)}
.im-home .im-home-booking__form-shell{min-width:0}
.im-home .im-home-booking-form{display:flex;flex-direction:column;gap:18px;min-width:0}
.im-home .im-home-booking-form__intro{display:flex;flex-direction:column;gap:6px}
.im-home .im-home-booking-form__intro h3{margin:0;font-size:26px;font-weight:700;color:var(--navy)}
.im-home .im-home-booking-form__intro>span{font-size:14px;color:#565C7D}
.im-home .im-home-booking-form__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.im-home .im-home-booking-form__submit{width:100%;min-height:56px;font-size:16px}
.im-home .im-home-form__privacy{font-size:12px;color:#565C7D;text-align:center}
.im-home .im-home-form__response{padding:12px 16px;border-radius:12px;border:1px solid #141A7A;background:#F3F5FC;color:#141A7A;font-size:14px;line-height:1.5}
.im-home .im-home-form__response[data-error="true"]{color:#9b1c1c;border-color:#e0261f;background:#fff2f2}
.im-home .im-home-form [aria-invalid="true"]{border-color:#e0261f}
.im-home .im-home-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.im-home .im-home-newsletter-form{display:flex;flex-direction:column;gap:12px}
.im-home .im-home-newsletter-form__label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#474D6E}
.im-home .im-home-newsletter-form__controls{display:flex;gap:10px;flex-wrap:wrap}
.im-home .im-home-newsletter-form__controls input{flex:1 1 220px;min-width:0}
.im-home .im-home-newsletter-form__consent{font-size:12px;color:#5F6585}
.im-home .im-home-form button[disabled]{cursor:wait;opacity:.7}
.im-home .im-home-section{scroll-margin-top:24px}
.im-home .im-home-legacy{padding:90px 0}
.im-home .im-home-legacy__gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}
.im-home .im-home-legacy__item{margin-bottom:16px}
.im-home .im-home-legacy__gallery img{max-height:140px;object-fit:contain}
@media(max-width:1200px){
 .im-home .im-home-nav{gap:20px;padding-left:22px;padding-right:22px}
 .im-home .im-home-header header>div{gap:16px}
 .im-home .im-home-header header>div>a:last-child{padding-left:20px;padding-right:20px;white-space:nowrap}
}
@media(max-width:960px){
 .im-home .im-home-header header>div{flex-wrap:wrap;position:relative;min-height:80px;padding-top:14px;padding-bottom:14px}
 .im-home .im-home-header header>div>a:first-child{margin-right:auto}
 .im-home .im-home-header header>div>a:last-child{order:2;font-size:13px;min-height:44px}
 .im-home .im-home-menu-toggle{display:flex;order:3;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border:1px solid #E3E7F5;background:#fff;border-radius:10px;color:var(--navy);padding:10px;cursor:pointer}
 .im-home .im-home-menu-toggle span{height:2px;background:currentColor;width:22px;display:block}
 .im-home .im-home-header .im-home-nav{order:4;flex-basis:100%;width:100%;padding:16px;gap:18px;flex-wrap:wrap;box-shadow:none;border-radius:12px}
 .im-home .im-home-header.im-home-menu-open .im-home-nav{display:flex!important}
 .im-home .im-home-hero{padding-bottom:70px}
 .im-home .im-home-hero>.im-home-wrap>div{padding-top:30px}
 .im-home .im-home-projects>div{padding-left:16px;padding-right:16px}
 .im-home .im-home-section:not(.im-home-hero){padding-top:80px;padding-bottom:80px}
 .im-home .im-home-services>div>div:nth-child(2){grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
 .im-home .im-home-booking>div{gap:40px}
}
@media(min-width:961px) and (max-width:1100px){
 .im-home .im-home-header .im-home-nav{gap:14px;padding-left:16px;padding-right:16px}
 .im-home .im-home-header .im-home-nav a{font-size:12px;gap:5px}
 .im-home .im-home-header header>div>a:last-child{font-size:13px;padding-left:16px;padding-right:16px}
}
@media(max-width:600px){
 .im-home .im-home-header>div>div{gap:8px;padding-top:8px;padding-bottom:8px}
 .im-home .im-home-header>div>div>div{gap:12px}
 .im-home .im-home-top a{font-size:12px}
 .im-home .im-home-header header img{height:36px}
 .im-home .im-home-header header>div{gap:10px}
 .im-home .im-home-header header>div>a:last-child{padding:0 14px;font-size:12px}
 .im-home .im-home-header .im-home-nav{flex-direction:column;align-items:flex-start}
 .im-home .im-home-hero__content h1{font-size:clamp(32px,8.5vw,42px)}
 .im-home .im-home-hero__content>p{font-size:16px;line-height:1.65}
 .im-home .im-home-hero>.im-home-wrap>a{margin-top:48px;gap:16px}
 .im-home .im-home-hero>.im-home-wrap>a>div{flex-basis:160px}
 .im-home .im-home-section:not(.im-home-hero){padding-top:64px;padding-bottom:64px}
 .im-home .im-home-section>.im-home-wrap{gap:36px}
 .im-home .im-home-section .im-home-h2{font-size:34px;line-height:1.15}
 .im-home .im-home-projects>div>div:nth-child(2){grid-template-columns:minmax(0,1fr)}
 .im-home .im-home-services>div>div:nth-child(2),.im-home .im-home-values>div>div:nth-child(2),.im-home .im-home-testimonials>div>div:nth-child(2),.im-home .im-home-news>div>div:nth-child(2){grid-template-columns:minmax(0,1fr)}
 .im-home .im-home-svc,.im-home .im-home-tcard{padding:28px}
 .im-home .im-home-values>div>div:nth-child(2)>div{padding:28px;min-height:0}
 .im-home .im-home-mission>div,.im-home .im-home-clients>div>div:first-child{gap:20px}
 .im-home .im-home-mission>div>div:first-child,.im-home .im-home-clients>div>div:first-child>div:first-child{flex-basis:100%}
 .im-home .im-home-clients>div>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .im-home .im-home-kh{height:100px}
 .im-home .im-home-crit{gap:18px;padding:26px 0}
 .im-home .im-home-crit>div:first-child{flex-basis:44px;font-size:34px}
 .im-home .im-home-crit>div:nth-child(2){flex-basis:54px;height:54px;border-radius:16px}
 .im-home .im-home-crit>h3{flex-basis:calc(100% - 140px);font-size:21px}
 .im-home .im-home-crit>p{flex-basis:100%}
 .im-home .im-home-booking>div>div,.im-home .im-home-newsletter>div>div{flex-basis:100%;min-width:0}
 .im-home .im-home-booking__form-shell{padding:24px}
 .im-home .im-home-booking-form__grid{grid-template-columns:minmax(0,1fr)}
 .im-home .im-home-field input,.im-home .im-home-field select,.im-home .im-home-field textarea{font-size:16px;min-width:0}
 .im-home .im-home-newsletter-form__controls button{width:100%}
 .im-home footer{padding-top:60px;padding-bottom:30px}
 .im-home footer>div>div:first-child{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}
 .im-home footer>div>div:first-child>div:first-child{grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.im-home *,.im-home *::before,.im-home *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* WordPress Main Menu: preserve its hierarchy, with separate touch controls. */
.im-home .im-home-header{position:relative;z-index:20}
.im-home .im-home-header .im-home-nav{padding:0 18px;gap:0;font-family:'Be Vietnam Pro',sans-serif}
.im-home .im-home-nav ul{list-style:none;margin:0;padding:0}
.im-home .im-home-menu{display:flex;align-items:center;gap:18px}
.im-home .im-home-nav li{position:relative;display:flex;align-items:center;margin:0;padding:0}
.im-home .im-home-nav a{font-family:'Be Vietnam Pro',sans-serif;font-weight:600;letter-spacing:0;line-height:1.5}
.im-home .im-home-menu>li>a{min-height:60px;white-space:nowrap}
.im-home .im-home-submenu-toggle{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:40px;padding:0;border:0;border-radius:8px;color:var(--navy);background:transparent;cursor:pointer}
.im-home .im-home-submenu-toggle svg{transition:transform .2s ease}
.im-home .im-home-submenu-toggle[aria-expanded="true"]>svg{transform:rotate(180deg)}
.im-home .im-home-nav .sub-menu{display:none;position:absolute;z-index:30;top:100%;left:0;width:260px;max-width:calc(100vw - 32px);padding:8px;background:#fff;border:1px solid #E3E7F5;border-radius:12px;box-shadow:0 16px 36px rgba(17,17,17,.14)}
.im-home .im-home-nav .sub-menu li{width:100%;border-radius:6px;transition:background-color .2s ease}
.im-home .im-home-nav .sub-menu a{flex:1;display:block;min-width:0;padding:11px 12px;font-size:14px;text-transform:none;white-space:normal}
.im-home .im-home-nav .sub-menu a:hover,.im-home .im-home-nav .current-menu-item>a,.im-home .im-home-nav .current-menu-ancestor>a{color:var(--red)}
.im-home .im-home-nav .sub-menu>li:hover{background:#F3F5FC}
.im-home .im-home-nav li.im-home-submenu-open>.sub-menu{display:block}
.im-home .im-home-nav:not([data-im-home-menu-ready]) li:hover>.sub-menu,.im-home .im-home-nav:not([data-im-home-menu-ready]) li:focus-within>.sub-menu{display:block}
.im-home .im-home-nav .sub-menu .sub-menu{top:0;left:100%}
.im-home .im-home-menu>li:nth-last-child(-n+2)>.sub-menu{left:auto;right:0}

/* Desktop uses the menu label/hover; mobile keeps its separate submenu button. */
@media(min-width:1201px){
 .im-home .im-home-menu>li>.im-home-submenu-toggle{display:none}
 /* Nested submenus fly out to the right, so their chevron points right. */
 .im-home .im-home-nav .sub-menu .im-home-submenu-toggle>svg,
 .im-home .im-home-nav .sub-menu .im-home-submenu-toggle[aria-expanded="true"]>svg{transform:rotate(-90deg)}
 /* Opacity keeps the hit area stationary while opening; hidden menus stay out of keyboard focus. */
 .im-home .im-home-nav .sub-menu{display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .18s ease,visibility 0s linear .18s}
 .im-home .im-home-nav li.im-home-submenu-open>.sub-menu,
 .im-home .im-home-nav:not([data-im-home-menu-ready]) li:hover>.sub-menu,
 .im-home .im-home-nav:not([data-im-home-menu-ready]) li:focus-within>.sub-menu{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}
}

@media(min-width:1201px) and (max-width:1350px){
 .im-home .im-home-menu{gap:10px}
 .im-home .im-home-menu>li>a{font-size:13px}
 .im-home .im-home-header .im-home-nav{padding-left:12px;padding-right:12px}
}
@media(max-width:1200px){
 .im-home .im-home-header header>div{flex-wrap:wrap;position:relative;min-height:80px;padding-top:14px;padding-bottom:14px}
 .im-home .im-home-header header>div>a:first-child{margin-right:auto}
 .im-home .im-home-header header>div>a:last-child{order:2;font-size:13px;min-height:44px}
 .im-home .im-home-menu-toggle{display:flex;order:3;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border:1px solid #E3E7F5;background:#fff;border-radius:10px;color:var(--navy);padding:10px;cursor:pointer}
 .im-home .im-home-menu-toggle span{height:2px;background:currentColor;width:22px;display:block}
 .im-home .im-home-header .im-home-nav{display:none!important;order:4;flex-basis:100%;width:100%;padding:8px 16px;box-shadow:none;min-height:0;border-radius:12px;align-items:stretch}
 .im-home .im-home-header.im-home-menu-open .im-home-nav{display:block!important}
 .im-home .im-home-menu{display:block;width:100%}
 .im-home .im-home-nav li{flex-wrap:wrap;width:100%}
 .im-home .im-home-menu>li>a{min-height:48px;flex:1;font-size:14px;white-space:normal}
 .im-home .im-home-submenu-toggle{width:44px;flex-basis:44px;height:44px}
 .im-home .im-home-nav .sub-menu,.im-home .im-home-nav .sub-menu .sub-menu{position:static;flex-basis:100%;width:100%;max-width:none;margin:0 0 6px;padding:0 0 0 12px;border:0;border-left:2px solid #E3E7F5;border-radius:0;box-shadow:none}
 .im-home .im-home-nav .sub-menu a{font-size:14px}
}
@media(max-width:600px){
 .im-home .im-home-header header>div>a:last-child{font-size:12px}
}

/* Original four-point menu spark and a white glass header after the top bar scrolls away. */
.im-home .im-home-menu-spark{flex:0 0 12px;color:#9A9A9A;transition:color .25s ease,transform .3s ease}
.im-home .im-home-menu>li>a:hover .im-home-menu-spark{color:var(--red);transform:rotate(90deg)}
.im-home .im-home-header-placeholder{display:block;height:0}
.im-home .im-home-header__s1.im-home-is-sticky{position:fixed;top:var(--im-home-admin-offset,0px);left:0;right:0;z-index:1000;background:rgba(255,255,255,.87);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);box-shadow:0 8px 28px rgba(17,17,17,.10)}
.im-home .im-home-is-sticky .im-home-nav{background:rgba(255,255,255,.55);box-shadow:none}
.im-home .im-home-section{scroll-margin-top:calc(var(--im-home-sticky-height,88px) + var(--im-home-admin-offset,0px) + 16px)}
@media(max-width:1200px){.im-home .im-home-is-sticky .im-home-nav{max-height:calc(100dvh - 112px - var(--im-home-admin-offset,0px));overflow-y:auto;overscroll-behavior:contain}}

/* Fifteen logos per page: two pages for the current 30-logo gallery. No visible controls. */
.im-home .im-home-client-slider{width:100%;min-width:0}
.im-home .im-home-client-slider__viewport{width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;padding:8px 0 18px;-webkit-overflow-scrolling:touch}
.im-home .im-home-client-slider__viewport:active{cursor:grabbing}
.im-home .im-home-client-slider__viewport::-webkit-scrollbar{display:none}
.im-home .im-home-client-slider__viewport:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.im-home .im-home-client-slider__track{display:flex;width:100%;gap:0;align-items:stretch}
.im-home .im-home-client-page{flex:0 0 100%;min-width:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-content:start;gap:18px;scroll-snap-align:start;scroll-snap-stop:always}
.im-home .im-home-client-logo-item{min-width:0;user-select:none}
.im-home .im-home-client-logo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
@media(max-width:600px){.im-home .im-home-client-page{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.im-home .im-home-client-logo-item{height:88px}}
.im-home .im-home-reveal{animation:none}
.im-home:not(.im-home-aos-ready) [data-aos]{opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.im-home [data-aos]{opacity:1!important;transform:none!important;transition:none!important}}

/* Shared loop engine; testimonials keep the existing cards, arranged horizontally. */
.im-home .im-home-client-slider{--im-home-slider-per-view:1}
.im-home .im-home-testimonial-slider{--im-home-slider-per-view:3;width:100%;min-width:0}
.im-home .im-home-testimonial-slider__viewport{width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;cursor:grab;padding:8px 0 18px;-webkit-overflow-scrolling:touch}
.im-home .im-home-testimonial-slider__viewport:active{cursor:grabbing}
.im-home .im-home-testimonial-slider__viewport::-webkit-scrollbar{display:none}
.im-home .im-home-testimonial-slider__viewport:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.im-home .im-home-testimonial-slider__track{display:flex;gap:20px;align-items:stretch;width:100%}
.im-home .im-home-testimonial-slider .im-home-tcard{flex:0 0 calc((100% - (var(--im-home-visible-slides,3) - 1)*20px)/var(--im-home-visible-slides,3));min-width:0;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:always;user-select:none}
@media(max-width:1024px){.im-home .im-home-testimonial-slider{--im-home-slider-per-view:2}}
@media(max-width:600px){.im-home .im-home-testimonial-slider{--im-home-slider-per-view:1}}

/* Footer full variant (company/contact/bottom columns/badges filled in ACF). */
@media(max-width:1100px){
 .im-home .im-home-footer--full .im-home-footer__s3{grid-template-columns:repeat(2,minmax(0,1fr))}
 .im-home .im-home-footer__row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 .im-home .im-home-footer--full.im-home-footer__s1{padding:48px 0 24px}
 .im-home .im-home-footer--full .im-home-footer__s2{gap:28px}
 .im-home .im-home-footer--full .im-home-footer__s3,.im-home .im-home-footer__row{grid-template-columns:minmax(0,1fr);gap:24px}
 .im-home .im-home-footer__row{padding:20px;border-radius:16px}
 .im-home .im-home-footer--full .im-home-footer__s11{flex-direction:column;align-items:flex-start;gap:16px}
}
