/* v1.9.2: consistent mobile spacing, navigation and unobstructed video. */
:root { --idg-header-height:94px; --idg-header-offset:0px; }
html { scroll-padding-top:calc(var(--idg-header-height) + var(--idg-header-offset) + 76px); }
body.idg-custom-theme [hidden] { display:none !important; }
body.idg-custom-theme .screen-reader-text:focus { clip:auto; width:auto; height:auto; margin:0; padding:15px 22px; left:16px; top:12px; background:white; color:var(--blue); z-index:1000; }
body.idg-custom-theme h1, body.idg-custom-theme h2, body.idg-custom-theme h3 { text-transform:none !important; }
body.idg-custom-theme h2 { font-size:clamp(1.85rem,2.65vw,2.7rem); line-height:1.15; letter-spacing:-.035em; }
body.idg-custom-theme h3 { letter-spacing:-.025em; }
body.idg-custom-theme .section { padding-top:64px; padding-bottom:64px; }
body.idg-custom-theme p { line-height:1.65; }
body.idg-custom-theme main [id] { scroll-margin-top:calc(var(--idg-header-height) + var(--idg-header-offset) + 76px); }
.idg-anchor { display:block; height:0; width:0; }
.idg-inline-note { margin:24px 0 0; }
.idg-inline-note a, .idg-email-link { text-decoration:underline; text-underline-offset:4px; }
body.idg-custom-theme .text-link { min-height:44px; text-decoration:underline; text-underline-offset:5px; }
body.idg-custom-theme .button:hover { background:#a51a29 !important; border-color:#a51a29 !important; }
body.idg-custom-theme .button-light:hover { background:#fff !important; border-color:#fff !important; color:var(--blue) !important; }
body.idg-custom-theme .header { min-height:94px; border-top:0; gap:20px; }
.header .brand { gap:15px; }
.header .brand img { width:76px; height:76px; }
.header .brand>span { font-size:13px; }
.header .brand b { font-size:11px; }
.desktop-domain-nav { gap:26px; }
body.idg-custom-theme .desktop-domain-nav > .desktop-nav-item > button, .desktop-domain-nav>a { font-size:14px; white-space:nowrap; }
.nav-chevron { font-size:17px; margin-left:5px; }
.header-actions { gap:22px; margin-left:10px; }
.header-contact { display:flex; padding-left:22px; }
.desktop-nav-item { position:relative; }
body.idg-custom-theme .desktop-nav-item .desktop-mega:not([hidden]) { display:block; }
.services-nav .services-dropdown { width:640px; left:0; right:auto; padding:24px; }
.idg-menu-columns { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.idg-menu-label { display:block; color:#aebfcb; font:11px/1.5 monospace; text-transform:uppercase; letter-spacing:.07em; padding:0 0 14px; border-bottom:1px solid #365365; }
.idg-menu-columns a { display:block; padding:16px 0; border-bottom:1px solid #365365; color:#fff; }
.idg-menu-columns a>span { display:flex; align-items:center; justify-content:space-between; font-weight:600; font-size:16px; gap:10px; }
.idg-menu-columns a small { display:block; color:#b7c7d2; margin-top:8px; font-size:13px; line-height:1.5; }
.idg-menu-columns a:hover, .idg-menu-columns a[aria-current=page] { background:#143145; }
.company-nav .company-dropdown { width:630px; right:0; }
.company-nav .company-dropdown .desktop-mega-links>a { min-height:0; padding:20px; }
.company-nav .company-dropdown .desktop-mega-links>a>span { font-size:17px; line-height:1.35; }
.company-nav .company-dropdown .desktop-mega-links>a>p { font-size:14px; }
.idg-noscript-nav { padding:18px 6%; display:flex; flex-wrap:wrap; gap:22px; background:var(--pale); }
body.idg-custom-theme .page-section-nav { top:calc(var(--idg-header-height) + var(--idg-header-offset)); }
.page-section-nav>div { flex-wrap:wrap; gap:8px 28px; }
body.idg-custom-theme .page-section-nav a { min-height:48px; padding:14px 0; }

body.idg-custom-theme .hero { height:auto; min-height:600px; max-height:none; }
.hero-visual { display:contents; }
body.idg-custom-theme .hero-content { padding:68px 6% 48px; margin-block:auto; width:100%; }
body.idg-custom-theme .hero h1 { font-size:clamp(2.65rem,4.1vw,4.3rem) !important; line-height:1.08; max-width:1080px; margin-bottom:26px; }
body.idg-custom-theme .hero-content>p:not(.eyebrow) { max-width:770px; font-size:1.08rem; line-height:1.7 !important; margin-bottom:28px; }
.hero .eyebrow { margin-bottom:22px; }
.hero-bottom>a { color:#d4dfe8; display:inline-flex; flex-wrap:wrap; align-items:center; gap:12px; min-height:44px; letter-spacing:0; font:13px/1.5 Arial,Helvetica,sans-serif; }
.hero-bottom>a:hover { color:#fff; text-decoration:underline; }
.idg-offer-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:32px; }
.idg-offer-grid>* { min-width:0; border:1px solid var(--line); background:var(--pale); }
.idg-supply-card { display:flex; flex-direction:column; }
.idg-supply-card>img { width:100%; height:230px; object-fit:cover; }
.idg-supply-card>div { padding:26px 28px; }
.idg-supply-card h3 { display:flex; align-items:start; justify-content:space-between; gap:15px; font-size:1.55rem; margin-bottom:14px; }
.idg-supply-card p { margin:0; }
.idg-systems-card { padding:28px; }
.idg-systems-title { display:flex; align-items:start; justify-content:space-between; gap:15px; }
.idg-systems-title h3 { font-size:1.55rem; margin:0 0 14px; }
.idg-capability-links { margin-top:24px; }
.idg-capability-links>a { display:flex; justify-content:space-between; align-items:center; gap:15px; border-top:1px solid #c6d2db; padding:17px 0; font-size:1.05rem; font-weight:600; color:var(--blue); }
.idg-capability-links small { display:block; font-size:.9rem; line-height:1.5; font-weight:400; color:var(--muted); margin-top:5px; }
.idg-supply-card:hover, .idg-presence-grid>a:hover, .idg-detail-card:hover { border-color:#617e94; background:#e9eff3; }
.idg-capability-links>a:hover, .idg-systems-title:hover { text-decoration:underline; text-underline-offset:4px; }
.idg-partnership { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; background:var(--pale); max-width:none; position:relative; }
.idg-partnership>.idg-anchor { position:absolute; }
.idg-partnership p { max-width:610px; }
.idg-partnership>img { width:100%; height:340px; object-fit:cover; }
.idg-presence-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; }
.idg-presence-grid>a { display:block; border:1px solid var(--line); border-top:3px solid var(--blue); padding:28px; }
.idg-presence-grid h3 { display:flex; align-items:start; justify-content:space-between; gap:15px; font-size:1.5rem; margin-bottom:15px; }
.idg-presence-grid p { margin:0; }
.idg-presence-grid .micro { color:var(--blue); margin-bottom:18px; }
body.idg-custom-theme .contact-band { display:flex; align-items:center; justify-content:space-between; gap:30px; }
body.idg-custom-theme .contact-band>div { display:block; }
body.idg-custom-theme .contact-band h2 { font-size:clamp(1.9rem,2.6vw,2.7rem); }
body.idg-custom-theme .contact-band p { color:#dae6ee; margin:12px 0 0; }

body.idg-custom-theme .visual-intro h1 { font-size:clamp(2.3rem,3.25vw,3.5rem) !important; line-height:1.13 !important; letter-spacing:-.035em !important; }
body.idg-custom-theme .visual-intro { gap:54px; }
body.idg-custom-theme .intro-copy>p:not(.eyebrow) { font-size:1.04rem; }
.breadcrumb a { text-decoration:underline; text-underline-offset:3px; }
.idg-editorial { display:grid; grid-template-columns:.85fr 1.15fr; align-items:start; gap:64px; position:relative; }
.idg-editorial>.idg-anchor { position:absolute; }
.idg-editorial h2 { max-width:490px; }
.idg-editorial p { max-width:680px; margin:0 0 20px; }
.idg-delivery { background:var(--pale); max-width:none; }
.detail-grid .idg-detail-card { display:block; border:1px solid var(--line); background:var(--pale); padding:26px; }
.detail-grid h3 { font-size:1.35rem; line-height:1.3; margin-bottom:12px; }
.detail-grid .idg-detail-card h3 { display:flex; justify-content:space-between; align-items:start; gap:15px; }
.detail-grid p { margin:0; }
.idg-related { display:flex; align-items:center; flex-wrap:wrap; gap:18px 36px; border-top:1px solid var(--line); }
body.idg-custom-theme .idg-related { padding-top:26px; padding-bottom:26px; }
.idg-related>span { font:12px monospace; text-transform:uppercase; color:var(--muted); }
.idg-related a { color:var(--blue); display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:4px; }
body.idg-custom-theme .tech-hero h1 { font-size:clamp(2.45rem,3.6vw,3.8rem); line-height:1.12; }
.tech-hero h1>span { color:#b7cbd9; }
body.idg-custom-theme .tech-hero .text-link { color:#fff !important; }
.tech-card-grid { grid-template-columns:1fr 1fr; margin-top:28px; }
.tech-card-grid article { min-height:0; padding:28px; }
.tech-card-grid p { font-size:1rem; color:#c2cfd9; }
.tech-focus-grid { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:28px; }
.tech-focus-grid>a { min-height:0; padding:26px; }
.tech-focus-grid p { font-size:1rem; }
.idg-operation-grid>article,.idg-operation-grid>a { min-height:0; }
.idg-operation-grid .idg-arrow { display:inline-block; margin:0 0 0 .35em; font:inherit; letter-spacing:0; }
body.idg-custom-theme .footer a { line-height:1.6; overflow-wrap:anywhere; }
.footer-top { gap:32px; }
.footer-top a:hover { text-decoration:underline; text-underline-offset:4px; }

.idg-contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:start; }
.idg-contact-intro h1 { font-size:clamp(2.8rem,4.5vw,4.7rem); line-height:1.1; margin-bottom:24px; }
.idg-contact-intro>p { max-width:540px; font-size:1.04rem; }
.idg-email-link { display:inline-block; padding:12px 0; max-width:100%; overflow-wrap:anywhere; color:var(--blue); }
.idg-contact-intro .idg-information-note { margin-top:26px; padding-top:24px; border-top:1px solid var(--line); font-size:.9rem; }
.idg-form-panel { background:var(--pale); border:1px solid var(--line); padding:32px; min-width:0; }
.idg-contact-form { position:relative; display:grid; gap:18px; margin:0; }
.idg-contact-form label { display:block; color:var(--ink); font-size:15px; font-weight:600; line-height:1.5; }
.idg-contact-form label>span { font-weight:400; }
.idg-form-row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
body.idg-custom-theme .idg-contact-form input:not([type=checkbox]):not([type=hidden]), body.idg-custom-theme .idg-contact-form textarea, body.idg-custom-theme .idg-contact-form select { width:100%; max-width:100%; min-width:0; display:block; margin-top:8px; padding:12px; border:1px solid #8c9fad; border-radius:0; color:var(--ink); background:white; font:16px/1.5 Arial,Helvetica,sans-serif !important; box-shadow:none; }
.idg-contact-form textarea { resize:vertical; min-height:160px; }
.idg-contact-form input:focus-visible,.idg-contact-form textarea:focus-visible,.idg-contact-form select:focus-visible { outline:3px solid #c71e31; outline-offset:2px; }
.idg-contact-form [aria-invalid=true] { border-color:#b31c2e !important; }
.idg-contact-form .idg-consent { display:flex; align-items:flex-start; gap:12px; font-size:14px; font-weight:400; }
.idg-consent input { flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; accent-color:var(--blue); }
.idg-contact-form .idg-form-help { font-size:13px; line-height:1.55; margin:-7px 0 0; }
.idg-contact-form .button { justify-self:start; min-height:48px; }
.idg-contact-form .idg-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.idg-form-errors,.idg-form-success { padding:20px; margin-bottom:24px; border-left:4px solid var(--red); background:white; }
.idg-form-success { border-left-color:#287144; }
body.idg-custom-theme .idg-form-errors h2, body.idg-custom-theme .idg-form-success h2 { font-size:1.3rem; margin-bottom:12px; }
.idg-form-errors ul { padding-left:20px; margin:0; font-size:14px; line-height:1.65; }
.idg-form-success p { font-size:15px; margin:0; }

@media (max-width:1100px) {
  .desktop-nav-zone { display:none; }
  .header-actions { margin-left:auto; }
  .site-menu-toggle { display:flex; min-height:48px; }
  .header-contact { display:none; }
  body.idg-custom-theme .mega-menu.open:not([hidden]) { display:block; overflow-y:auto; overscroll-behavior:contain; max-height:calc(100vh - var(--idg-header-height) - var(--idg-header-offset)); max-height:calc(100dvh - var(--idg-header-height) - var(--idg-header-offset)); }
  body.idg-custom-theme .mega-menu-inner { display:grid; grid-template-columns:1fr 1fr; padding:24px 6% 32px; gap:32px; max-height:none; overflow:visible; }
  .menu-group>a { min-height:48px; }
  .menu-group .menu-subitem { padding-left:16px; }
  .idg-mobile-company-label { margin-top:28px; }
  .idg-mobile-contact { margin-top:14px; }
  .idg-partnership { gap:32px; }
  .idg-editorial,.idg-contact-layout { gap:38px; }
  .idg-form-panel { padding:24px; }
}
@media (max-width:850px) {
  body.idg-custom-theme .section { padding-top:44px; padding-bottom:44px; }
  .idg-offer-grid,.idg-partnership,.idg-editorial,.idg-contact-layout { grid-template-columns:1fr; gap:28px; }
  .idg-editorial h2 { max-width:650px; margin:0; }
  .idg-partnership>img { height:300px; }
  .idg-presence-grid { gap:16px; }
  .idg-presence-grid>a { padding:24px; }
  .tech-focus-grid { grid-template-columns:1fr; gap:14px; }
  body.idg-custom-theme .visual-intro { gap:28px; }
  body.idg-custom-theme .footer-top { grid-template-columns:1fr 1fr; }
}
@media (max-width:560px) {
  html { scroll-padding-top:calc(var(--idg-header-height) + var(--idg-header-offset) + 16px); }
  body.idg-custom-theme main [id], body.idg-custom-theme main .section[id] { scroll-margin-top:0; }
  body.idg-custom-theme main .section>* { min-width:0; }
  body.idg-custom-theme main h1, body.idg-custom-theme main h2, body.idg-custom-theme main h3 { overflow-wrap:break-word; word-break:normal; }
  body.idg-custom-theme main h2 { font-size:clamp(1.6rem,7vw,1.85rem); line-height:1.2; letter-spacing:-.025em; margin-bottom:18px; }
  body.idg-custom-theme main h3 { line-height:1.3; letter-spacing:-.02em; }
  body.idg-custom-theme main p { line-height:1.6; }
  body.idg-custom-theme main .section>div>p:last-child { margin-bottom:0; }
  body.idg-custom-theme main .idg-editorial>div>h2:last-child { margin-bottom:0; }
  body.idg-custom-theme main .eyebrow { font-size:.7rem; line-height:1.5; letter-spacing:.07em; margin-top:0; margin-bottom:18px; gap:10px; }
  body.idg-custom-theme .text-link { max-width:100%; gap:12px; font-size:.9rem; line-height:1.45; padding:8px 0; }
  body.idg-custom-theme .button { max-width:100%; gap:14px; min-height:48px; font-size:.9rem; line-height:1.4; padding:12px 18px; white-space:normal; }
  body.idg-custom-theme .header { min-height:78px; padding:0 22px; }
  .header .brand img { width:64px; height:64px; }
  .site-menu-toggle { width:48px; min-width:48px; height:48px; min-height:48px; padding:12px; }
  .site-menu-toggle .menu-lines { display:grid; }
  .site-menu-toggle .menu-label { display:none; }
  body.idg-custom-theme .mega-menu-inner { grid-template-columns:1fr; padding:20px 22px 30px; gap:22px; }
  body.idg-custom-theme .section { padding:36px 22px; }
  body.idg-custom-theme .hero { min-height:0; height:auto; }
  .hero-visual { display:block; position:relative; width:100%; flex:none; }
  body.idg-custom-theme .hero-media { position:relative; inset:auto; z-index:0; width:100%; height:auto; aspect-ratio:16/9; opacity:1; }
  body.idg-custom-theme .hero-media img, body.idg-custom-theme .hero-media video { inset:0; object-fit:contain; object-position:center; }
  body.idg-custom-theme .hero-shade { display:none; }
  body.idg-custom-theme .hero-content { padding:28px 22px 20px; margin:0; animation:none; }
  body.idg-custom-theme .hero-content .eyebrow { font-size:.68rem; margin-bottom:20px; }
  body.idg-custom-theme .hero h1 { font-size:clamp(1.85rem,7.8vw,2.55rem) !important; line-height:1.12 !important; letter-spacing:-.025em; margin-bottom:22px; }
  body.idg-custom-theme .hero h1 br { display:none; }
  body.idg-custom-theme .hero-content>p:not(.eyebrow) { font-size:1rem; line-height:1.6 !important; margin-bottom:24px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  body.idg-custom-theme .hero-actions .button { width:100%; min-height:48px; }
  body.idg-custom-theme .hero-bottom { padding:0 22px 14px; display:flex; flex-wrap:wrap; gap:4px 20px; }
  .hero-bottom>a { font-size:12px; }
  body.idg-custom-theme .visual-intro h1, body.idg-custom-theme .tech-hero h1 { font-size:clamp(1.8rem,8vw,2.05rem) !important; line-height:1.16 !important; letter-spacing:-.025em !important; margin-bottom:20px; }
  body.idg-custom-theme .tech-hero h1>span { font-size:.78em; }
  body.idg-custom-theme .intro-copy>p:not(.eyebrow), body.idg-custom-theme .tech-hero-copy>p:not(.eyebrow) { font-size:1rem; margin-bottom:20px; }
  body.idg-custom-theme .visual-intro .breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:.72rem; line-height:1.5; margin-bottom:16px; }
  .breadcrumb a { display:inline-flex; align-items:center; min-height:44px; }
  body.idg-custom-theme .visual-intro .editorial-image img { height:auto; aspect-ratio:16/9; min-height:0; }
  .editorial-image figcaption { font-size:.75rem; line-height:1.5; }
  .idg-presence-grid,.idg-operation-grid,.tech-card-grid,.detail-grid { grid-template-columns:1fr; }
  .idg-supply-card>img { height:200px; }
  .idg-supply-card>div,.idg-systems-card,.idg-presence-grid>a, .idg-operation-grid>article, .idg-operation-grid>a, .tech-card-grid article, .tech-focus-grid>a { padding:20px; }
  .idg-offer-grid,.idg-presence-grid,.idg-operation-grid,.tech-card-grid,.tech-focus-grid,.detail-grid { min-width:0; margin-top:22px; }
  .idg-offer-grid>*,.idg-presence-grid>*,.idg-operation-grid>*,.tech-card-grid>*,.tech-focus-grid>*,.detail-grid>* { min-width:0; }
  .detail-grid article,.detail-grid article:nth-child(even),.detail-grid .idg-detail-card { padding:20px; }
  .idg-operation-grid h3 { font-size:1.35rem; }
  .idg-operation-grid p { margin-bottom:16px; }
  .idg-operation-grid article p:last-child { margin-bottom:0; }
  .idg-operation-grid span,.idg-presence-grid .micro { margin-bottom:14px; }
  .idg-operation-grid b { display:block; line-height:1.5; }
  .idg-partnership>img { height:230px; }
  .idg-presence-grid h3,.idg-supply-card h3,.idg-systems-title h3 { font-size:1.35rem; }
  .idg-related { align-items:flex-start; flex-direction:column; gap:8px; }
  body.idg-custom-theme .page-section-nav { position:static; }
  body.idg-custom-theme .page-section-nav>div { padding:8px 22px; gap:0 18px; min-height:48px; flex-wrap:wrap; overflow:visible; }
  body.idg-custom-theme .page-section-nav a { font-size:.85rem; line-height:1.4; padding:12px 0; }
  body.idg-custom-theme .page-section-nav a:last-child { margin-left:0; }
  .tech-hero-image figcaption { flex-wrap:wrap; gap:6px; }
  .idg-form-row { grid-template-columns:1fr; }
  .idg-form-panel { padding:20px; }
  .idg-contact-intro h1 { font-size:3rem; }
  .idg-contact-form .button { width:100%; }
  body.idg-custom-theme .footer-top { grid-template-columns:1fr; gap:24px; }
  body.idg-custom-theme .footer-top a { display:flex; align-items:center; min-height:44px; padding:8px 0; margin-bottom:0; font-size:14px; }
  .footer-top .micro { margin-bottom:8px; }
  .footer .legal { font-size:12px; line-height:1.65; }
  .footer-bottom { flex-direction:column; gap:8px; }
  body.idg-custom-theme .contact-band { flex-direction:column; align-items:stretch; }
  body.idg-custom-theme .contact-band .button { margin-top:0; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  body.idg-custom-theme *,body.idg-custom-theme *:before,body.idg-custom-theme *:after { animation:none !important; transition:none !important; }
}
