@import url('/mirror/wordmark-font.css');
/* Scoped Idiomly adjustments to the extracted source styles. */
.mirror-hero-subject { color: #fff; font-size: clamp(14px, 1.2vw, 20px); font-weight: 700; line-height: 1.4; letter-spacing: .12em; margin: 0 0 20px; }
.mirror-project-cta { max-width: 1200px; margin: 0 auto; text-align: center; padding: 0 24px; }
.mirror-project-cta > .title, .mirror-project-cta > .text { float: none !important; width: 100% !important; margin-left: 0 !important; }
.mirror-project-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; padding: 28px 0 8px; }
.mirror-project-actions a { display: inline-flex; align-items: center; justify-content: center; min-height: 64px; padding: 14px 32px; border: 2px solid #fff; border-radius: 8px; background: #fff; color: #2747ff; font-weight: 700; text-decoration: none; }
.mirror-project-actions a + a { background: #fff; color: #2747ff; }
.mirror-project-actions a:hover { background: #e6eaff; color: #1932be; }
.mirror-project-actions a:focus-visible { outline: 3px solid #fff; outline-offset: 5px; }
@media (max-width: 600px) { .mirror-project-actions { flex-direction: column; } .mirror-project-actions a { padding: 14px 16px; } }
/* Preserve natural photo colors while keeping the principle headings legible. */
#container-d1cd8a307e .front .card-content {
  background: rgba(0, 0, 0, .66);
  border-radius: 4px;
  max-width: calc(100% - 24px);
}
#container-d1cd8a307e .front .card-content .flip-main-title {
  color: #fff;
  text-transform: none;
}
.mirror-inline-video { display:block; width:100%; aspect-ratio:16/9; border:0; }
.video-loading-placeholder { pointer-events:none; animation:mirror-loaded .1s 3s forwards; }
@keyframes mirror-loaded { to { opacity:0; visibility:hidden; } }
.mirror-form-status { text-align:center; color:white; }
@media(prefers-reduced-motion:reduce) { .carousel-column,.mobile-tiles-container { animation-play-state:paused !important; } }

/* Keep service cards and their bottom-positioned links aligned within each row. */
.mirror-service-cards {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
}
.aem-Grid.mirror-service-cards > .aem-GridColumn.teaser {
  display: flex;
}
.mirror-service-cards > .teaser > .cmp-teaser {
  flex: 1;
  min-width: 0;
  height: auto;
}

/* Full photos keep heads intact instead of using the shallow banner exports. */
.mirror-service-cards .cmp-teaser__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: contain;
}
img[src^="/images/idiomly/"] { object-position: center top; }

/* Match the abstract background video to Idiomly's original blue palette. */
.hero-background-video { filter: hue-rotate(210deg); }

/* The extracted hero script sets its gradient inline when it initializes. */
.hero-main-title.hero-title-gradient {
  color: #2747ff !important;
  background-image: linear-gradient(90deg, #2747ff 0%, #5a91ff 100%) !important;
}

/* Center the footer wordmark beneath its button, without an adjacent divider. */
.footercomponent .footer-column.lastdiv {
  border-right: 0;
}
.footercomponent .footer-cta {
  align-items: center;
}
.footercomponent .footer-logo {
  display: block;
}

/* New natural-color poster photos retain the existing 16:9 video footprint. */
.mirror-video { aspect-ratio: 16 / 9; }
.mirror-video-cover {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: #101b37;
}
.mirror-video-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mirror-video-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 72px; height: 72px; border-radius: 50%; background: #2747ff;
  box-shadow: 0 4px 18px #0004;
}
.mirror-video-play::after {
  content: ''; position: absolute; top: 23px; left: 29px;
  border-top: 13px solid transparent; border-bottom: 13px solid transparent;
  border-left: 20px solid white;
}
.mirror-video-cover:focus-visible { outline: 3px solid #2747ff; outline-offset: 4px; }
.mirror-video-cover[hidden], .mirror-inline-video[hidden] { display: none; }

/* Original Idiomly wordmark and simplified main navigation. */
.mirror-original-logo{display:inline-flex!important;flex-direction:column;align-items:center;line-height:1;color:#fff;white-space:nowrap}
.mirror-logo-main{font-family:'Instrument Serif',serif!important;font-style:italic;font-size:50px;font-weight:400;letter-spacing:-.01em;line-height:1}
.mirror-logo-sub{font-family:Arial,sans-serif;font-size:10px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:#8eb8ff;margin-top:6px;margin-left:4px}
a:has(.mirror-original-logo){text-decoration:none!important}
a:hover .mirror-logo-main,a:focus-visible .mirror-logo-main{text-decoration:underline;text-decoration-color:#2747ff}
#header-component .cmp-image__logo{display:none}
#header-component>.image{flex-shrink:0}
#header-component .cmp-image__link{display:flex;align-items:center;justify-content:center}
#header-component .headertabs{flex:0 1 auto}
#header-component{justify-content:space-between;gap:24px}
.mirror-language{display:flex;align-items:center;gap:14px;color:white;font-size:15px;white-space:nowrap}
.mirror-language a{color:white;text-decoration:none}
.mirror-language a[aria-current]{color:#8eb8ff;border-bottom:2px solid #2747ff;padding-bottom:4px}
.footer-cta .mirror-original-logo{margin-top:28px}
.footer-cta .mirror-logo-main{font-size:76px}
.footer-cta .mirror-logo-sub{font-size:14px}
#header-component-mobile>.mirror-language{padding:22px 20px;justify-content:center}
@media(max-width:1419px){#header-component>.mirror-language{display:none}.mirror-logo-main{font-size:38px}.mirror-logo-sub{font-size:8px}}
#header-component>.image:first-child{margin-left:24px}
.cmp-separator__lionConnectorOrange{background-image:url('/mirror/idiomly-divider.svg')!important}
/* Utility-row removal leaves a single 85px fixed header. */
body>.root{top:85px!important}
.headercomponent .header-component-content-height #header-component{justify-content:flex-end!important;gap:28px;padding-right:24px;box-sizing:border-box}
.headercomponent .header-component-content-height #header-component>.image:first-child{margin-right:auto}
.headercomponent .header-component-content-height #header-component>.button-wrapper{position:static!important;flex-shrink:0}
.headercomponent .header-component-content-height #header-component>.text{padding:0!important;height:auto!important;margin:0!important}
.headercomponent .header-component-content-height #header-component>.text p{margin:0!important;padding:0!important}
#header-component>.mirror-language{order:3;flex-shrink:0}
@media(max-width:1419px){.headercomponent .header-component-content-height #header-component{justify-content:space-between!important}}
#header-component-mobile .mirror-original-logo{color:#111;margin:12px 20px}
#header-component-mobile .mirror-logo-sub{color:#2747ff}
#header-component-mobile .mirror-language a{color:#111}
#header-component-mobile .mirror-language a[aria-current]{color:#2747ff}

/* Fit the six primary destinations alongside the existing actions. */
@media(min-width:1420px){
 .headercomponent .header-component-content-height #header-component{gap:10px}
 .headercomponent .header-component-content-height #header-component .headertabs .cmp-tabs__tab{padding-inline:10px;white-space:nowrap}
}
.mirror-offerings-menu { max-width: 1280px; margin: auto; padding: 36px; text-align: left; }
.mirror-menu-links { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px 40px; }
.mirror-menu-links a { color: #111; font-size: 16px; line-height: 1.45; text-decoration: none; }
.mirror-menu-links a:hover { color: #2747ff; text-decoration: underline; }
/* Wider desktop columns keep full sector names on one line at the same size. */
@media(min-width:1420px){
 #header-component .cmp-tabs__tabpanel:has(.mirror-offerings-menu) {left:50%!important;transform:translateX(-50%)!important;width:min(1280px,calc(100vw - 64px))!important;}
 #header-component .mirror-menu-links {grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;gap:6px 40px;}
 #header-component .mirror-menu-links a {display:flex;align-items:center;min-height:44px;}
}
.mirror-menu-languages { display: block; margin-top: 28px; padding-top: 22px; border-top: 1px solid #ddd; color: #2747ff; font-size: 16px; text-align: center; }
#header-component-mobile .mirror-offerings-menu { padding: 12px 24px 24px; }
#header-component-mobile .mirror-menu-links { grid-template-columns: 1fr; gap: 14px; }
#header-component-mobile .mirror-mobile-link{display:block;padding:15px 20px;color:#000;font-family:NotoSans,sans-serif;font-size:16px;line-height:22px;text-decoration:none}
#header-component-mobile .mirror-mobile-link:hover{color:#2747ff;text-decoration:underline}
/* Equal-size quote/contact actions throughout the shared call to action. */
.mirror-project-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px;margin-inline:auto;}
.mirror-project-actions a {box-sizing:border-box;width:100%;min-height:64px;text-align:center;}
#header-component .mirror-nav-action,#header-component-mobile .mirror-nav-action {display:inline-flex!important;justify-content:center;align-items:center;box-sizing:border-box;background:linear-gradient(110deg,#6594fb,#3044ff)!important;color:#fff!important;border:1px solid #476aff!important;border-radius:6px!important;padding:14px 18px!important;min-height:48px!important;font-size:13px!important;line-height:1.2!important;font-weight:600;text-decoration:none!important;white-space:nowrap;}
#header-component>.text:has(.mirror-nav-action) {flex-shrink:0;}
/* Keep the quote action out of the 85px navigation text baseline. */
#header-component>.text:has(.mirror-nav-action) p {display:flex;align-items:center;line-height:normal;margin:0;}
#header-component .button-wrapper .button {padding:0!important;}
@media(max-width:600px){.mirror-project-actions {grid-template-columns:1fr;}}
#header-component>.text:has(.mirror-nav-action) .cmp-text {padding:0!important;}
/* Distribute primary navigation across the header, as in the reference. */
@media(min-width:1420px){
 .headercomponent .header-component-content-height #header-component {justify-content:space-between!important;gap:clamp(10px,1vw,24px);}
 .headercomponent .header-component-content-height #header-component>.image:first-child {margin-right:0;}
 .headercomponent .header-component-content-height #header-component>.headertabs {flex:1 1 auto;min-width:max-content;}
 .headercomponent .header-component-content-height #header-component .headertabs .cmp-tabs__tablist {justify-content:center;}
 .headercomponent .header-component-content-height #header-component .headertabs .cmp-tabs__tab {text-align:center;padding-inline:8px;}
}
#header-component .mirror-nav-action,#header-component-mobile .mirror-nav-action {width:max-content!important;min-width:190px!important;height:56px!important;min-height:56px!important;padding:10px 20px!important;white-space:nowrap!important;text-align:center;}
/* One consistent overview replaces the two overlapping homepage service lists. */
#container-53818e67de {max-width:1240px;margin-inline:auto;padding-inline:24px;box-sizing:border-box;}
.mirror-home-services-heading {text-align:center;max-width:980px;margin:0 auto 36px;}
.mirror-home-services-heading h2 {font-size:36px;line-height:1.25;margin:0;}
.mirror-home-services-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:32px;}
.mirror-home-services-grid>.teaser {display:flex;min-width:0;width:100%;margin:0;padding:0;}
.mirror-home-services-grid .cmp-teaser {display:flex;flex-direction:column;width:100%;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;padding:0!important;margin:0!important;border-radius:8px;overflow:hidden;background:#e6e6e6;}
.mirror-home-services-grid .cmp-teaser__image {width:100%;flex:none;margin:0;padding:0;}
.mirror-home-services-grid .cmp-teaser__image img {display:block;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:3/2;object-fit:cover;}
.mirror-home-services-grid .cmp-teaser__content {position:static!important;transform:none!important;box-sizing:border-box;width:100%!important;height:auto!important;min-height:0!important;padding:24px!important;flex:1;margin:0!important;}
.mirror-home-services-grid .cmp-teaser__title {font-size:26px;line-height:1.25;min-height:0!important;margin:0 0 18px!important;}
.mirror-home-services-grid .cmp-teaser__description {margin:0!important;padding:0!important;}
.mirror-home-services-grid p {font-size:18px;line-height:1.55;margin:0!important;}
.mirror-home-services-grid .cmp-teaser__content {display:flex;flex-direction:column;align-items:center;}
.mirror-home-services-grid .cmp-teaser {cursor:default;}
.mirror-home-service-learn-more {display:inline-block;color:#243ae0!important;font-size:16px;font-weight:700;margin-top:auto;padding-top:22px;text-decoration:underline;text-underline-offset:4px;}
.mirror-home-service-learn-more:focus-visible {outline:2px solid #243ae0;outline-offset:5px;}
@media(max-width:1000px){.mirror-home-services-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.mirror-home-services-grid>.teaser:last-child:nth-child(odd){grid-column:1/-1;width:calc((100% - 32px)/2);justify-self:center;}}
@media(max-width:600px){.mirror-home-services-grid{grid-template-columns:1fr;gap:24px;}.mirror-home-services-grid>.teaser:last-child:nth-child(odd){grid-column:auto;width:100%;}.mirror-home-services-heading h2{font-size:30px;}}
#container-53818e67de {scroll-margin-top:110px;}
.mirror-home-services-heading .cmp-title__text {color:#000!important;}
.mirror-video{aspect-ratio:auto;}
.mirror-video video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#0c1731;object-fit:contain;}
.mirror-video-transcript{padding:16px 0;font-size:16px;line-height:1.6;color:#111;}
.mirror-video-transcript summary{cursor:pointer;color:#243ae0;text-decoration:underline;text-underline-offset:3px;}
.mirror-video-transcript p{font-size:16px!important;line-height:1.6!important;margin:16px 0!important;}
#header-component-mobile .cmp-accordion__panel{background:#fff!important;color:#111;}
/* Keep the English project invitation on one line at desktop sizes. */
.mirror-project-cta{container-type:inline-size;}
@media(min-width:1024px){html[lang^="en"] .mirror-project-cta #text-e7f444e944 p{font-size:clamp(13px,1.65cqw,22px)!important;line-height:1.5;white-space:nowrap;}}
/* Leave room for the French quote label and language switch at the desktop breakpoint. */
@media(min-width:1420px) and (max-width:1550px){
 .headercomponent .header-component-content-height #header-component {gap:6px!important;}
 .headercomponent .header-component-content-height #header-component .headertabs .cmp-tabs__tab {padding-inline:6px;}
}

/* Keyboard shortcut past the shared navigation. */
.mirror-skip { position:fixed;left:20px;top:-100px;z-index:10000;padding:12px 20px;background:#fff;color:#1930cb; }
.mirror-skip:focus { top:10px; }

/* Preserve the introductory kicker typography without creating a heading. */
.mirror-home-kicker.cmp-title__text {font-family:NotoSansLight,sans-serif;font-size:1.17em;font-weight:700;line-height:1.2;margin:0;}

/* Keep original carousel geometry; the client controller adds continuous looping. */
.idiomly-client-gallery .cmp-carousel__previous:focus-visible,
.idiomly-client-gallery .cmp-carousel__next:focus-visible {outline:3px solid #3044ff;outline-offset:5px;border-radius:50%;}
@media(prefers-reduced-motion:reduce){.idiomly-client-gallery .cmp-carousel__content{transition:none!important;}}

.idiomly-client-gallery .cmp-carousel__content {transition:none!important;will-change:transform;}
.idiomly-client-gallery .client-carousel-pause {position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;display:block;margin:14px auto 0;padding:5px 10px;border:0;background:transparent;color:#555;font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.idiomly-client-gallery .client-carousel-pause[hidden] {display:none;}
.idiomly-client-gallery .client-carousel-pause:focus-visible {outline:2px solid #3044ff;outline-offset:3px;}
