:root {
  --idp-ink: #0b1729;
  --idp-navy: #0d223f;
  --idp-navy-2: #13345c;
  --idp-blue: #1c4c79;
  --idp-gold: #c7a35a;
  --idp-gold-light: #e7cf99;
  --idp-ivory: #f7f4ed;
  --idp-paper: #ffffff;
  --idp-mist: #f2f5f8;
  --idp-line: #dfe5ec;
  --idp-muted: #657184;
  --idp-text: #253145;
  --idp-green: #2c6b56;
  --idp-danger: #a12d2d;
  --idp-container: 1320px;
  --idp-shadow: 0 24px 80px rgba(7, 24, 45, .13);
  --idp-shadow-soft: 0 16px 48px rgba(7, 24, 45, .08);
  --idp-radius: 8px;
  --idp-radius-lg: 18px;
  --idp-serif: Georgia, "Times New Roman", serif;
  --idp-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--idp-paper);
  color: var(--idp-text);
  font-family: var(--idp-sans);
  font-size: 17px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.idp-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--idp-blue); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--idp-gold); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
::selection { background: var(--idp-gold-light); color: var(--idp-ink); }

.idp-container { width: min(calc(100% - 48px), var(--idp-container)); margin-inline: auto; }
.idp-main { min-height: 60vh; overflow: clip; }
.idp-section { padding: 118px 0; }
.idp-skip-link {
  position: fixed; top: 14px; left: 14px; z-index: 99999; transform: translateY(-150%);
  background: #fff; color: var(--idp-ink); padding: 12px 18px; border-radius: 4px; box-shadow: var(--idp-shadow);
}
.idp-skip-link:focus { transform: translateY(0); }

.idp-kicker {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 18px;
  color: var(--idp-gold); font-size: .76rem; font-weight: 800; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase;
}
.idp-kicker span { width: 34px; height: 1px; background: currentColor; }
.idp-kicker-light { color: var(--idp-gold-light); }
.idp-section-head { margin-bottom: 56px; }
.idp-section-head h2,
.idp-profile-copy h2,
.idp-contact-intro h2,
.idp-contact-sidebar h2 {
  margin: 0; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2.35rem, 4.4vw, 4.9rem); font-weight: 500; line-height: 1.04; letter-spacing: -.035em;
}
.idp-section-head-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .72fr); gap: 90px; align-items: end; }
.idp-section-head-split > div:last-child,
.idp-section-head-split > p { margin: 0; color: var(--idp-muted); font-size: 1.04rem; }
.idp-section-head-inline { display: flex; align-items: end; justify-content: space-between; gap: 30px; }

/* Header */
.idp-site-header { position: relative; z-index: 1200; background: var(--idp-paper); transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }
.idp-site-header.is-overlay { position: absolute; inset: 0 0 auto; background: transparent; color: #fff; }
.idp-site-header.is-stuck { position: fixed; inset: 0 0 auto; background: rgba(255,255,255,.97); color: var(--idp-ink); box-shadow: 0 8px 34px rgba(4,18,35,.13); backdrop-filter: blur(14px); }
.idp-site-header.is-stuck .idp-utility-bar { display: none; }
.idp-site-header.is-stuck .idp-navigation-bar { border-color: rgba(11,23,41,.08); }
.idp-site-header.is-stuck .idp-wordmark-main,
.idp-site-header.is-stuck .idp-nav-list > li > a,
.idp-site-header.is-stuck .idp-menu-toggle { color: var(--idp-ink); }
.idp-site-header.is-stuck .idp-wordmark-sub { color: var(--idp-gold); }
.idp-site-header.is-stuck .idp-header-cta { color: #fff; border-color: var(--idp-ink); background: var(--idp-ink); }

.idp-utility-bar { border-bottom: 1px solid rgba(255,255,255,.16); background: var(--idp-ink); color: rgba(255,255,255,.74); font-size: .76rem; }
.idp-site-header.is-overlay .idp-utility-bar { background: rgba(5,17,34,.52); backdrop-filter: blur(10px); }
.idp-utility-inner { min-height: 37px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.idp-utility-inner p { margin: 0; letter-spacing: .06em; text-transform: uppercase; }
.idp-utility-actions { display: flex; align-items: center; gap: 20px; }
.idp-utility-actions > a { color: rgba(255,255,255,.9); text-decoration: none; }
.idp-utility-actions > a:hover { color: var(--idp-gold-light); }
.idp-language-switcher { display: flex; align-items: center; gap: 3px; }
.idp-language-switcher a {
  min-width: 32px; height: 24px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid transparent; border-radius: 99px; color: inherit; font-size: .69rem; font-weight: 800; letter-spacing: .06em; text-decoration: none;
}
.idp-language-switcher a:hover,
.idp-language-switcher a.is-active { border-color: rgba(231,207,153,.65); color: #fff; background: rgba(199,163,90,.15); }

.idp-navigation-bar { border-bottom: 1px solid rgba(255,255,255,.16); }
.idp-site-header:not(.is-overlay) .idp-navigation-bar { border-bottom-color: var(--idp-line); }
.idp-navigation-inner { min-height: 92px; display: flex; align-items: center; gap: 28px; }
.idp-branding { flex: 0 0 auto; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: auto; max-height: 66px; }
.idp-wordmark { display: inline-flex; flex-direction: column; line-height: 1; color: inherit; text-decoration: none; }
.idp-wordmark-main { color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.86rem; font-weight: 600; letter-spacing: -.02em; }
.idp-site-header.is-overlay .idp-wordmark-main { color: #fff; }
.idp-wordmark-sub { margin-top: 8px; color: var(--idp-gold); font-size: .66rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.idp-primary-nav { margin-left: auto; }
.idp-nav-list { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.idp-nav-list li { position: relative; }
.idp-nav-list > li > a {
  position: relative; display: inline-flex; align-items: center; min-height: 48px; padding: 0 13px;
  color: var(--idp-ink); font-size: .84rem; font-weight: 700; letter-spacing: .025em; text-decoration: none;
}
.idp-site-header.is-overlay .idp-nav-list > li > a { color: rgba(255,255,255,.94); }
.idp-nav-list > li > a::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: 7px; height: 1px; background: var(--idp-gold); transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.idp-nav-list > li > a:hover::after,
.idp-nav-list .current-menu-item > a::after,
.idp-nav-list .current_page_item > a::after { transform: scaleX(1); }
.idp-nav-list .sub-menu {
  position: absolute; left: 0; top: calc(100% + 10px); min-width: 260px; margin: 0; padding: 10px; list-style: none;
  background: #fff; border: 1px solid var(--idp-line); box-shadow: var(--idp-shadow); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s ease;
}
.idp-nav-list li:hover > .sub-menu,
.idp-nav-list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.idp-nav-list .sub-menu a { display: block; padding: 10px 12px; color: var(--idp-ink); text-decoration: none; font-size: .88rem; font-weight: 650; }
.idp-nav-list .sub-menu a:hover { background: var(--idp-ivory); color: var(--idp-gold); }
.idp-header-cta {
  display: inline-flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 19px; border: 1px solid rgba(255,255,255,.58);
  color: #fff; font-size: .78rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase;
}
.idp-site-header:not(.is-overlay) .idp-header-cta { color: var(--idp-ink); border-color: var(--idp-ink); }
.idp-header-cta:hover { color: var(--idp-ink); background: var(--idp-gold-light); border-color: var(--idp-gold-light); }
.idp-menu-toggle { display: none; align-items: center; gap: 10px; border: 0; background: transparent; color: var(--idp-ink); font-weight: 800; }
.idp-site-header.is-overlay .idp-menu-toggle { color: #fff; }
/* Explicit sticky overrides must follow the overlay rules. */
.idp-site-header.is-stuck.is-overlay .idp-wordmark-main,
.idp-site-header.is-stuck.is-overlay .idp-nav-list > li > a,
.idp-site-header.is-stuck.is-overlay .idp-menu-toggle { color: var(--idp-ink); }
.idp-site-header.is-stuck.is-overlay .idp-wordmark-sub { color: var(--idp-gold); }
.idp-site-header.is-stuck.is-overlay .idp-header-cta { color: #fff; border-color: var(--idp-ink); background: var(--idp-ink); }
.idp-menu-icon { width: 26px; display: grid; gap: 5px; }
.idp-menu-icon i { display: block; height: 2px; background: currentColor; transition: .2s ease; }

/* Hero */
.idp-hero { position: relative; min-height: 900px; height: 100svh; max-height: 1080px; background: var(--idp-ink); color: #fff; }
.idp-hero-slides,
.idp-hero-slide { position: absolute; inset: 0; }
.idp-hero-slide { opacity: 0; visibility: hidden; transition: opacity .9s ease, visibility .9s ease; }
.idp-hero-slide.is-active { opacity: 1; visibility: visible; }
.idp-hero-image { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.06); transition: transform 8s ease; }
.idp-hero-slide.is-active .idp-hero-image { transform: scale(1); }
.idp-hero-shade {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(5,16,32,.94) 0%, rgba(7,22,43,.79) 39%, rgba(7,22,43,.27) 70%, rgba(7,22,43,.42) 100%),
    linear-gradient(0deg, rgba(5,16,32,.72) 0%, transparent 38%);
}
.idp-hero-layout { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: minmax(0, 900px) 1fr; align-items: center; padding-top: 150px; padding-bottom: 140px; }
.idp-hero-copy { max-width: 880px; }
.idp-hero-copy h1 { margin: 0 0 26px; font-family: var(--idp-serif); font-size: clamp(3.6rem, 6.8vw, 7.5rem); font-weight: 500; line-height: .96; letter-spacing: -.045em; text-wrap: balance; }
.idp-hero-lead { max-width: 720px; margin: 0 0 38px; color: rgba(255,255,255,.83); font-size: clamp(1.03rem, 1.45vw, 1.3rem); line-height: 1.65; }
.idp-hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.idp-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 15px; min-height: 54px; padding: 0 25px; border: 1px solid transparent;
  color: var(--idp-ink); font-size: .82rem; font-weight: 800; letter-spacing: .045em; text-decoration: none; text-transform: uppercase; transition: .2s ease;
}
.idp-button:hover { transform: translateY(-2px); }
.idp-button-gold { background: var(--idp-gold-light); border-color: var(--idp-gold-light); }
.idp-button-gold:hover { color: #fff; background: var(--idp-gold); border-color: var(--idp-gold); }
.idp-button-outline { color: var(--idp-ink); border-color: var(--idp-ink); background: transparent; }
.idp-button-outline:hover { color: #fff; background: var(--idp-ink); }
.idp-hero-secondary { display: inline-flex; align-items: center; gap: 10px; color: #fff; font-size: .82rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }
.idp-hero-secondary:hover { color: var(--idp-gold-light); }
.idp-hero-number { justify-self: end; align-self: end; margin-bottom: 12px; color: rgba(255,255,255,.09); font-family: var(--idp-serif); font-size: 12rem; line-height: .72; }
.idp-hero-controls { position: absolute; left: 50%; bottom: 42px; z-index: 5; transform: translateX(-50%); display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.idp-hero-dots { display: flex; align-items: center; gap: 24px; }
.idp-hero-dot { display: grid; grid-template-columns: auto 70px; align-items: center; gap: 10px; padding: 0; border: 0; background: transparent; color: rgba(255,255,255,.52); font-size: .72rem; }
.idp-hero-dot i { display: block; height: 1px; background: rgba(255,255,255,.3); position: relative; overflow: hidden; }
.idp-hero-dot i::after { content: ""; position: absolute; inset: 0; background: var(--idp-gold-light); transform: scaleX(0); transform-origin: left; transition: transform .35s ease; }
.idp-hero-dot.is-active { color: #fff; }
.idp-hero-dot.is-active i::after { transform: scaleX(1); }
.idp-hero-arrows { display: flex; gap: 8px; }
.idp-hero-arrows button { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.32); background: rgba(5,16,32,.28); color: #fff; font-size: 1.05rem; }
.idp-hero-arrows button:hover { border-color: var(--idp-gold-light); background: var(--idp-gold); }
.idp-scroll-cue { position: absolute; right: 22px; bottom: 48px; z-index: 6; display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.56); font-size: .65rem; letter-spacing: .16em; text-decoration: none; text-transform: uppercase; transform: rotate(-90deg); transform-origin: right center; }
.idp-scroll-cue span { width: 44px; height: 1px; background: currentColor; }

/* Profile */
.idp-profile-section { background: var(--idp-paper); }
.idp-profile-grid { display: grid; grid-template-columns: minmax(350px, .82fr) minmax(0, 1.18fr); gap: 105px; align-items: center; }
.idp-profile-image { position: relative; padding: 24px 24px 0 0; }
.idp-profile-image::before { content: ""; position: absolute; inset: 0 0 54px 54px; background: var(--idp-ivory); }
.idp-profile-image-frame { position: relative; z-index: 1; min-height: 590px; overflow: hidden; background: var(--idp-mist); box-shadow: var(--idp-shadow-soft); }
.idp-profile-image-frame img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; object-position: center top; }
.idp-profile-seal { position: absolute; right: -38px; bottom: 10px; z-index: 2; width: 145px; height: 145px; border-radius: 50%; display: grid; place-content: center; text-align: center; background: var(--idp-ink); color: #fff; box-shadow: var(--idp-shadow); }
.idp-profile-seal strong { color: var(--idp-gold-light); font-family: var(--idp-serif); font-size: 2rem; font-weight: 500; line-height: 1; }
.idp-profile-seal span { margin-top: 7px; font-size: .58rem; line-height: 1.4; letter-spacing: .11em; text-transform: uppercase; }
.idp-profile-copy { max-width: 740px; }
.idp-profile-copy h2 { margin-bottom: 28px; }
.idp-profile-copy > p { color: var(--idp-muted); }
.idp-profile-copy .idp-large-copy { color: var(--idp-text); font-size: 1.19rem; line-height: 1.72; }
.idp-profile-facts { margin: 38px 0 34px; border-top: 1px solid var(--idp-line); border-bottom: 1px solid var(--idp-line); }
.idp-profile-facts > div { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 18px; padding: 15px 0; border-bottom: 1px solid var(--idp-line); }
.idp-profile-facts > div:last-child { border-bottom: 0; }
.idp-profile-facts span { color: var(--idp-gold); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.idp-profile-facts strong { color: var(--idp-ink); font-size: .94rem; font-weight: 700; }
.idp-text-link { display: inline-flex; align-items: center; gap: 13px; color: var(--idp-ink); font-size: .8rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.idp-text-link span { transition: transform .2s ease; }
.idp-text-link:hover span { transform: translateX(4px); }

/* Focus */
.idp-focus-section { position: relative; background: var(--idp-ink); color: rgba(255,255,255,.75); }
.idp-focus-section::before { content: ""; position: absolute; inset: 0; opacity: .045; background-image: linear-gradient(rgba(255,255,255,.5) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.5) 1px, transparent 1px); background-size: 80px 80px; }
.idp-focus-section .idp-container { position: relative; }
.idp-focus-section .idp-section-head h2 { color: #fff; }
.idp-focus-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.17); border-left: 1px solid rgba(255,255,255,.17); }
.idp-focus-card { position: relative; min-height: 440px; padding: 42px 38px; border-right: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); transition: background .25s ease, transform .25s ease; }
.idp-focus-card:hover { background: rgba(255,255,255,.055); transform: translateY(-4px); }
.idp-focus-card > span { position: absolute; top: 24px; right: 26px; color: rgba(255,255,255,.28); font-size: .7rem; }
.idp-focus-icon { width: 72px; height: 72px; margin-bottom: 76px; color: var(--idp-gold-light); }
.idp-focus-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.4; }
.idp-focus-card h3 { margin: 0 0 17px; color: #fff; font-family: var(--idp-serif); font-size: 2rem; font-weight: 500; line-height: 1.12; }
.idp-focus-card p { margin: 0; color: rgba(255,255,255,.65); font-size: .96rem; }

/* Meetings collage */
.idp-meetings-section { background: var(--idp-ivory); }
.idp-meeting-collage { display: grid; grid-template-columns: 1.35fr .65fr .65fr; grid-template-rows: 310px 310px; gap: 14px; }
.idp-collage-item { position: relative; overflow: hidden; padding: 0; border: 0; background: var(--idp-ink); }
.idp-collage-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease, opacity .35s ease; }
.idp-collage-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,16,32,.58), transparent 52%); opacity: .5; transition: opacity .3s ease; }
.idp-collage-item:hover img { transform: scale(1.045); }
.idp-collage-item:hover::after { opacity: .85; }
.idp-collage-item > span { position: absolute; left: 22px; right: 22px; bottom: 18px; z-index: 2; display: flex; align-items: center; justify-content: space-between; color: #fff; font-size: .68rem; letter-spacing: .12em; }
.idp-collage-item > span i { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; font-style: normal; font-size: 1.15rem; }
.idp-collage-1 { grid-row: 1 / 3; }
.idp-collage-2 { grid-column: 2 / 4; }

/* Projects */
.idp-projects-section { background: #fff; }
.idp-project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px 24px; }
.idp-project-card { background: #fff; border: 1px solid var(--idp-line); transition: transform .25s ease, box-shadow .25s ease; }
.idp-project-card:hover { transform: translateY(-7px); box-shadow: var(--idp-shadow-soft); }
.idp-project-media { position: relative; display: block; height: 270px; overflow: hidden; background: var(--idp-ink); }
.idp-project-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, opacity .3s ease; }
.idp-project-card:hover .idp-project-media img { transform: scale(1.045); opacity: .86; }
.idp-project-placeholder { display: block; width: 100%; height: 100%; background: radial-gradient(circle at 70% 30%, #244f72, transparent 34%), linear-gradient(135deg, #0b1729, #15355a); }
.idp-project-index { position: absolute; right: 18px; top: 16px; width: 45px; height: 45px; display: grid; place-items: center; background: rgba(255,255,255,.92); color: var(--idp-ink); font-size: .7rem; font-weight: 800; }
.idp-project-body { padding: 26px 28px 30px; }
.idp-project-body h3 { margin: 0 0 12px; font-family: var(--idp-serif); font-size: 1.62rem; font-weight: 500; line-height: 1.16; }
.idp-project-body h3 a { color: var(--idp-ink); text-decoration: none; }
.idp-project-body p { min-height: 72px; margin: 0 0 20px; color: var(--idp-muted); font-size: .91rem; }
.idp-card-link { display: inline-flex; align-items: center; gap: 8px; color: var(--idp-ink); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-decoration: none; text-transform: uppercase; }
.idp-card-link:hover { color: var(--idp-gold); }

/* EWS */
.idp-ews-section { position: relative; min-height: 690px; display: flex; align-items: center; color: #fff; background: var(--idp-ink); }
.idp-ews-image { position: absolute; inset: 0; background-size: cover; background-position: center; }
.idp-ews-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,16,32,.95) 0%, rgba(7,24,45,.84) 50%, rgba(7,24,45,.36) 100%); }
.idp-ews-content { position: relative; z-index: 2; padding-block: 100px; }
.idp-ews-content h2 { max-width: 890px; margin: 0 0 25px; color: #fff; font-family: var(--idp-serif); font-size: clamp(2.8rem, 5.3vw, 6rem); font-weight: 500; line-height: 1.01; letter-spacing: -.04em; }
.idp-ews-content > p:not(.idp-kicker) { max-width: 690px; margin: 0 0 34px; color: rgba(255,255,255,.78); font-size: 1.08rem; }

/* News */
.idp-news-section { background: var(--idp-mist); }
.idp-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.idp-news-card { background: #fff; border: 1px solid var(--idp-line); }
.idp-news-media { display: block; height: 235px; overflow: hidden; background: var(--idp-ink); }
.idp-news-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.idp-news-card:hover .idp-news-media img { transform: scale(1.045); }
.idp-news-body { padding: 26px 28px 30px; }
.idp-news-body time { color: var(--idp-gold); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.idp-news-body h2,
.idp-news-body h3 { margin: 10px 0 18px; font-family: var(--idp-serif); font-size: 1.65rem; font-weight: 500; line-height: 1.2; }
.idp-news-body h2 a,
.idp-news-body h3 a { color: var(--idp-ink); text-decoration: none; }
.idp-news-body p { color: var(--idp-muted); }

/* Contact */
.idp-contact-section { background: var(--idp-paper); }
.idp-contact-grid { display: grid; grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr); gap: 90px; align-items: start; }
.idp-contact-intro { position: sticky; top: 130px; }
.idp-contact-intro h2,
.idp-contact-sidebar h2 { margin-bottom: 24px; }
.idp-contact-intro > p,
.idp-contact-sidebar > p { color: var(--idp-muted); }
.idp-contact-rule { width: 100%; height: 1px; margin: 36px 0; background: var(--idp-line); }
.idp-contact-list { margin: 0; }
.idp-contact-list > div { display: grid; grid-template-columns: 105px 1fr; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--idp-line); }
.idp-contact-list dt { color: var(--idp-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.idp-contact-list dd { margin: 0; color: var(--idp-ink); font-weight: 650; }
.idp-contact-list a { color: inherit; text-decoration: none; }
.idp-form-shell { padding: 44px; background: var(--idp-mist); border-top: 4px solid var(--idp-gold); box-shadow: var(--idp-shadow-soft); }
.idp-contact-form { position: relative; }
.idp-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.idp-field-wide { grid-column: 1 / -1; }
.idp-field label,
.idp-preference legend { display: block; margin-bottom: 7px; color: var(--idp-ink); font-size: .75rem; font-weight: 800; letter-spacing: .035em; }
.idp-field label span { color: var(--idp-danger); }
.idp-field input,
.idp-field textarea,
.idp-field select {
  width: 100%; border: 1px solid #cfd7e1; border-radius: 0; background: #fff; color: var(--idp-ink); padding: 13px 14px; outline: none; transition: border-color .2s ease, box-shadow .2s ease;
}
.idp-field input,
.idp-field select { height: 52px; }
.idp-field textarea { resize: vertical; min-height: 180px; }
.idp-field input:focus,
.idp-field textarea:focus,
.idp-field select:focus { border-color: var(--idp-blue); box-shadow: 0 0 0 3px rgba(28,76,121,.1); }
.idp-field input:invalid:not(:placeholder-shown),
.idp-field textarea:invalid:not(:placeholder-shown) { border-color: #bd5d5d; }
.idp-preference { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 26px; margin: 24px 0 20px; padding: 0; border: 0; }
.idp-preference legend { width: 100%; }
.idp-preference label { display: inline-flex; align-items: center; gap: 8px; color: var(--idp-text); font-size: .88rem; }
.idp-preference input,
.idp-consent input { accent-color: var(--idp-blue); }
.idp-security-row { display: grid; grid-template-columns: 130px 1fr; gap: 24px; align-items: end; margin: 12px 0 24px; }
.idp-consent { display: flex; align-items: flex-start; gap: 10px; color: var(--idp-muted); font-size: .78rem; line-height: 1.5; }
.idp-consent input { margin-top: 3px; flex: 0 0 auto; }
.idp-submit { width: 100%; border: 0; background: var(--idp-ink); color: #fff; }
.idp-submit:hover { background: var(--idp-blue); color: #fff; }
.idp-form-note { margin: 14px 0 0; color: var(--idp-muted); font-size: .74rem; text-align: center; }
.idp-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.idp-form-notice { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; padding: 14px 16px; font-size: .88rem; font-weight: 650; }
.idp-form-notice span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: #fff; }
.idp-form-notice.is-success { background: #eaf6f0; color: #205c45; border: 1px solid #b7dfce; }
.idp-form-notice.is-success span { background: #2c7a5d; }
.idp-form-notice.is-error { background: #fff0f0; color: #7c2525; border: 1px solid #efc5c5; }
.idp-form-notice.is-error span { background: #a12d2d; }

/* Inner pages */
.idp-inner-hero,
.idp-page-hero { position: relative; min-height: 490px; display: flex; align-items: flex-end; background: var(--idp-ink); color: #fff; }
.idp-inner-hero-pattern { position: absolute; inset: 0; opacity: .07; background-image: radial-gradient(circle at 80% 20%, var(--idp-gold-light) 0, transparent 25%), linear-gradient(rgba(255,255,255,.45) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.45) 1px, transparent 1px); background-size: auto, 70px 70px, 70px 70px; }
.idp-inner-hero-content,
.idp-page-hero-content { position: relative; z-index: 2; padding-top: 190px; padding-bottom: 78px; }
.idp-inner-hero h1,
.idp-page-hero h1 { max-width: 1050px; margin: 0; font-family: var(--idp-serif); font-size: clamp(3rem, 6vw, 6.8rem); font-weight: 500; line-height: .98; letter-spacing: -.04em; }
.idp-inner-hero-content > p:not(.idp-kicker) { max-width: 760px; margin: 25px 0 0; color: rgba(255,255,255,.76); font-size: 1.08rem; }
.idp-page-hero:not(.has-image) { color: #fff; }
.idp-page-hero-image { position: absolute; inset: 0; background-size: cover; background-position: center; }
.idp-page-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,16,32,.94), rgba(5,16,32,.52)); }
.idp-elementor-content { width: 100%; }
.idp-prose { max-width: 920px; }
.idp-prose > *:first-child { margin-top: 0; }
.idp-prose h2,
.idp-prose h3,
.idp-prose h4 { color: var(--idp-ink); font-family: var(--idp-serif); font-weight: 500; line-height: 1.15; }
.idp-prose h2 { margin: 2.2em 0 .7em; font-size: 2.6rem; }
.idp-prose h3 { margin: 1.8em 0 .6em; font-size: 2rem; }
.idp-prose p,
.idp-prose li { color: #465267; }
.idp-prose img { margin-block: 35px; }
.idp-featured-image { margin: 0 0 42px; }
.idp-featured-image img { width: 100%; }

/* Gallery page */
.idp-gallery-hero { position: relative; min-height: 720px; display: flex; align-items: flex-end; background: var(--idp-ink); color: #fff; }
.idp-gallery-hero-image { position: absolute; inset: 0; background-size: cover; background-position: center; }
.idp-gallery-hero-overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5,16,32,.88) 0%, rgba(5,16,32,.34) 65%, rgba(5,16,32,.48) 100%); }
.idp-gallery-hero-content { position: relative; z-index: 2; padding: 200px 0 84px; }
.idp-gallery-hero-content h1 { max-width: 980px; margin: 0; font-family: var(--idp-serif); font-size: clamp(3.2rem, 6.4vw, 7rem); font-weight: 500; line-height: .98; letter-spacing: -.045em; }
.idp-gallery-hero-content > p:not(.idp-kicker) { max-width: 760px; margin: 24px 0 0; color: rgba(255,255,255,.8); font-size: 1.08rem; }
.idp-gallery-content { background: var(--idp-ivory); }
.idp-gallery-toolbar { display: grid; grid-template-columns: 200px 1fr; gap: 60px; align-items: end; margin-bottom: 42px; padding-bottom: 24px; border-bottom: 1px solid #d7d0c2; }
.idp-gallery-toolbar > div { display: flex; align-items: baseline; gap: 12px; color: var(--idp-ink); font-size: .8rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.idp-gallery-toolbar strong { color: var(--idp-gold); font-family: var(--idp-serif); font-size: 2.2rem; font-weight: 500; }
.idp-gallery-toolbar p { max-width: 690px; justify-self: end; margin: 0; color: var(--idp-muted); }
.idp-gallery-grid { columns: 4 260px; column-gap: 16px; }
.idp-gallery-item { position: relative; width: 100%; margin: 0 0 16px; padding: 0; border: 0; break-inside: avoid; overflow: hidden; background: var(--idp-ink); }
.idp-gallery-item.is-gallery-hidden { display: none; }
.idp-gallery-item img { width: 100%; height: auto; min-height: 240px; object-fit: cover; transition: transform .45s ease, opacity .3s ease; }
.idp-gallery-item:nth-child(5n+1) img { min-height: 380px; }
.idp-gallery-item:hover img { transform: scale(1.035); opacity: .78; }
.idp-gallery-hover { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: space-between; padding: 18px; color: #fff; background: linear-gradient(0deg, rgba(5,16,32,.68), transparent 60%); opacity: 0; transition: opacity .25s ease; }
.idp-gallery-item:hover .idp-gallery-hover { opacity: 1; }
.idp-gallery-hover i { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; font-style: normal; }
.idp-gallery-hover b { font-size: .68rem; letter-spacing: .1em; }
.idp-gallery-more-wrap { display: flex; justify-content: center; margin-top: 44px; }

/* Lightbox */
.idp-lightbox[hidden] { display: none; }
.idp-lightbox { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 24px; }
.idp-lightbox-backdrop { position: absolute; inset: 0; border: 0; background: rgba(3,10,20,.94); }
.idp-lightbox-dialog { position: relative; z-index: 1; width: min(1180px, 100%); height: min(86vh, 850px); display: grid; grid-template-columns: 58px 1fr 58px; align-items: center; }
.idp-lightbox-dialog figure { margin: 0; height: 100%; display: grid; grid-template-rows: 1fr auto; align-items: center; justify-items: center; }
.idp-lightbox-dialog img { max-width: 100%; max-height: calc(86vh - 70px); object-fit: contain; }
.idp-lightbox-dialog figcaption { min-height: 34px; padding-top: 12px; color: rgba(255,255,255,.75); font-size: .84rem; text-align: center; }
.idp-lightbox-close,
.idp-lightbox-prev,
.idp-lightbox-next { border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.05); color: #fff; }
.idp-lightbox-close { position: absolute; right: 0; top: -4px; z-index: 2; width: 48px; height: 48px; font-size: 1.8rem; }
.idp-lightbox-prev,
.idp-lightbox-next { width: 48px; height: 48px; font-size: 1rem; }
.idp-lightbox-close:hover,
.idp-lightbox-prev:hover,
.idp-lightbox-next:hover { border-color: var(--idp-gold-light); background: var(--idp-gold); }

/* Contact page */
.idp-contact-grid-page { grid-template-columns: minmax(320px, .68fr) minmax(0, 1.32fr); }
.idp-contact-sidebar { position: sticky; top: 130px; }
.idp-contact-card { margin-top: 38px; border-top: 3px solid var(--idp-gold); background: var(--idp-ink); color: #fff; padding: 28px; }
.idp-contact-card > div { padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.idp-contact-card > div:last-child { border-bottom: 0; }
.idp-contact-card span { display: block; margin-bottom: 5px; color: var(--idp-gold-light); font-size: .66rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.idp-contact-card a,
.idp-contact-card strong { color: #fff; font-weight: 600; text-decoration: none; }

/* Footer */
.idp-site-footer { position: relative; background: #071426; color: rgba(255,255,255,.67); }
.idp-footer-accent { height: 5px; background: linear-gradient(90deg, var(--idp-gold), var(--idp-gold-light), var(--idp-blue)); }
.idp-footer-main { display: grid; grid-template-columns: 1.35fr .8fr 1fr .72fr; gap: 55px; padding-block: 80px; }
.idp-footer-wordmark { display: inline-block; color: #fff; font-family: var(--idp-serif); font-size: 2.1rem; text-decoration: none; }
.idp-footer-brand p { max-width: 360px; margin: 17px 0 24px; }
.idp-social-link { color: var(--idp-gold-light); font-size: .76rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.idp-footer-main h2 { margin: 7px 0 22px; color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.idp-footer-links,
.idp-footer-contact { margin: 0; padding: 0; list-style: none; }
.idp-footer-links li,
.idp-footer-contact li { margin: 0 0 10px; }
.idp-footer-links a,
.idp-footer-contact a { color: rgba(255,255,255,.72); text-decoration: none; }
.idp-footer-links a:hover,
.idp-footer-contact a:hover { color: var(--idp-gold-light); }
.idp-footer-main .idp-language-switcher { justify-content: flex-start; color: rgba(255,255,255,.72); }
.idp-footer-legal { margin-top: 24px; }
.idp-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); }
.idp-footer-bottom p { margin: 0; padding: 20px 0; font-size: .72rem; }

/* Error */
.idp-error-page { min-height: 760px; display: grid; place-items: center; background: var(--idp-ink); color: #fff; text-align: center; }
.idp-error-page span { display: block; color: rgba(255,255,255,.08); font-family: var(--idp-serif); font-size: 13rem; line-height: .8; }
.idp-error-page h1 { margin: 28px 0 15px; font-family: var(--idp-serif); font-size: 3.5rem; font-weight: 500; }
.idp-error-page p { margin: 0 auto 30px; max-width: 600px; color: rgba(255,255,255,.68); }

/* Reveal */
[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

/* Elementor compatibility */
.elementor-widget-container > :first-child { margin-top: 0; }
.idp-elementor-content .elementor-section-wrap,
.idp-elementor-content > .elementor { width: 100%; }
body.idp-elementor-active .elementor-page-title { display: none; }

/* Responsive */
@media (max-width: 1180px) {
  .idp-nav-list > li > a { padding-inline: 9px; font-size: .78rem; }
  .idp-nav-list > li > a::after { left: 9px; right: 9px; }
  .idp-header-cta { display: none; }
  .idp-hero-number { font-size: 9rem; }
  .idp-profile-grid { gap: 70px; }
  .idp-footer-main { grid-template-columns: 1.2fr 1fr 1fr; }
  .idp-footer-main > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 980px) {
  .idp-container { width: min(calc(100% - 36px), var(--idp-container)); }
  .idp-section { padding: 88px 0; }
  .idp-utility-inner p { display: none; }
  .idp-utility-inner { justify-content: flex-end; }
  .idp-utility-actions > a:first-child { display: none; }
  .idp-navigation-inner { min-height: 80px; }
  .idp-menu-toggle { display: inline-flex; margin-left: auto; }
  .idp-primary-nav {
    position: fixed; inset: 0 0 0 18%; z-index: 1400; margin: 0; padding: 120px 28px 40px;
    background: #fff; box-shadow: -20px 0 60px rgba(5,16,32,.18); transform: translateX(105%); transition: transform .28s ease; overflow-y: auto;
  }
  .idp-primary-nav.is-open { transform: translateX(0); }
  .idp-nav-list { display: block; }
  .idp-nav-list > li { border-bottom: 1px solid var(--idp-line); }
  .idp-nav-list > li > a,
  .idp-site-header.is-overlay .idp-nav-list > li > a { display: flex; min-height: 58px; padding: 0; color: var(--idp-ink); font-size: 1rem; }
  .idp-nav-list > li > a::after { display: none; }
  .idp-nav-list .sub-menu { position: static; display: block; visibility: visible; opacity: 1; transform: none; box-shadow: none; border: 0; padding: 0 0 10px 12px; }
  .idp-menu-toggle[aria-expanded="true"] { position: fixed; right: 25px; top: 25px; z-index: 1500; color: var(--idp-ink) !important; }
  .idp-menu-toggle[aria-expanded="true"] .idp-menu-icon i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .idp-menu-toggle[aria-expanded="true"] .idp-menu-icon i:nth-child(2) { opacity: 0; }
  .idp-menu-toggle[aria-expanded="true"] .idp-menu-icon i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .idp-hero { min-height: 820px; }
  .idp-hero-layout { grid-template-columns: 1fr; padding-top: 170px; }
  .idp-hero-number { display: none; }
  .idp-hero-copy h1 { max-width: 760px; }
  .idp-scroll-cue { display: none; }
  .idp-section-head-split { grid-template-columns: 1fr; gap: 25px; }
  .idp-profile-grid { grid-template-columns: .8fr 1.2fr; gap: 50px; }
  .idp-profile-image-frame,
  .idp-profile-image-frame img { min-height: 500px; }
  .idp-focus-grid { grid-template-columns: 1fr; }
  .idp-focus-card { min-height: 310px; }
  .idp-focus-icon { margin-bottom: 45px; }
  .idp-project-grid,
  .idp-news-grid { grid-template-columns: repeat(2, 1fr); }
  .idp-contact-grid,
  .idp-contact-grid-page { grid-template-columns: 1fr; gap: 55px; }
  .idp-contact-intro,
  .idp-contact-sidebar { position: static; }
  .idp-footer-main { grid-template-columns: 1fr 1fr; }
  .idp-footer-main > div:last-child { grid-column: auto; }
  .idp-gallery-grid { columns: 3 220px; }
}

@media (max-width: 720px) {
  body { font-size: 16px; }
  .idp-container { width: min(calc(100% - 28px), var(--idp-container)); }
  .idp-section { padding: 72px 0; }
  .idp-utility-actions > a { display: none; }
  .idp-utility-inner { min-height: 34px; }
  .idp-navigation-inner { min-height: 70px; }
  .idp-wordmark-main { font-size: 1.5rem; }
  .idp-wordmark-sub { font-size: .57rem; }
  .custom-logo { max-height: 52px; }
  .idp-primary-nav { left: 7%; }
  .idp-hero { height: 92svh; min-height: 720px; max-height: 880px; }
  .idp-hero-layout { padding-top: 145px; padding-bottom: 140px; }
  .idp-hero-copy h1 { font-size: clamp(2.65rem, 13vw, 4.2rem); }
  .idp-hero-lead { font-size: .96rem; }
  .idp-hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
  .idp-hero-controls { bottom: 26px; align-items: center; }
  .idp-hero-dots { gap: 10px; }
  .idp-hero-dot { grid-template-columns: auto 28px; gap: 6px; }
  .idp-hero-arrows button { width: 40px; height: 40px; }
  .idp-profile-grid { grid-template-columns: 1fr; gap: 62px; }
  .idp-profile-image { max-width: 500px; padding-right: 18px; }
  .idp-profile-seal { right: -4px; width: 118px; height: 118px; }
  .idp-profile-image-frame,
  .idp-profile-image-frame img { min-height: 470px; }
  .idp-section-head h2,
  .idp-profile-copy h2,
  .idp-contact-intro h2,
  .idp-contact-sidebar h2 { font-size: clamp(2.2rem, 11vw, 3.45rem); }
  .idp-meeting-collage { grid-template-columns: 1fr 1fr; grid-template-rows: 300px 220px 220px; }
  .idp-collage-1 { grid-column: 1 / 3; grid-row: 1; }
  .idp-collage-2 { grid-column: 1 / 3; grid-row: 2; }
  .idp-collage-3,
  .idp-collage-4 { grid-row: 3; }
  .idp-collage-5 { display: none; }
  .idp-project-grid,
  .idp-news-grid { grid-template-columns: 1fr; }
  .idp-ews-section { min-height: 620px; }
  .idp-ews-content h2 { font-size: clamp(2.6rem, 12vw, 4.2rem); }
  .idp-field-grid { grid-template-columns: 1fr; }
  .idp-field-wide { grid-column: auto; }
  .idp-form-shell { padding: 28px 20px; }
  .idp-security-row { grid-template-columns: 1fr; align-items: start; }
  .idp-math-field { width: 130px; }
  .idp-inner-hero,
  .idp-page-hero { min-height: 430px; }
  .idp-inner-hero-content,
  .idp-page-hero-content { padding-top: 155px; padding-bottom: 62px; }
  .idp-inner-hero h1,
  .idp-page-hero h1 { font-size: clamp(2.8rem, 14vw, 4.5rem); }
  .idp-gallery-hero { min-height: 610px; }
  .idp-gallery-hero-content { padding-top: 165px; padding-bottom: 58px; }
  .idp-gallery-hero-content h1 { font-size: clamp(2.7rem, 13vw, 4.5rem); }
  .idp-gallery-toolbar { grid-template-columns: 1fr; gap: 12px; }
  .idp-gallery-toolbar p { justify-self: start; }
  .idp-gallery-grid { columns: 2 150px; column-gap: 10px; }
  .idp-gallery-item { margin-bottom: 10px; }
  .idp-gallery-item img,
  .idp-gallery-item:nth-child(5n+1) img { min-height: 190px; }
  .idp-lightbox { padding: 12px; }
  .idp-lightbox-dialog { grid-template-columns: 42px 1fr 42px; }
  .idp-lightbox-prev,
  .idp-lightbox-next { width: 38px; height: 38px; }
  .idp-footer-main { grid-template-columns: 1fr; gap: 38px; padding-block: 60px; }
}

@media (max-width: 440px) {
  .idp-hero-controls { gap: 12px; }
  .idp-hero-dot { grid-template-columns: auto 20px; }
  .idp-meeting-collage { grid-template-columns: 1fr; grid-template-rows: 300px 220px 220px; }
  .idp-collage-1,
  .idp-collage-2,
  .idp-collage-3 { grid-column: 1; }
  .idp-collage-4,
  .idp-collage-5 { display: none; }
  .idp-gallery-grid { columns: 1; }
}

/* =========================================================
   Professional editorial sub-pages – v2.1
   ========================================================= */
.idp-editorial-page { background: var(--idp-paper); }
.idp-editorial-hero {
  position: relative; min-height: 720px; display: flex; align-items: flex-end; isolation: isolate;
  overflow: hidden; background: var(--idp-ink); color: #fff;
}
.idp-editorial-hero-image { position: absolute; inset: -3%; z-index: -4; background-size: cover; background-position: center; transform: scale(1.035); transition: transform .1s linear; }
.idp-editorial-hero-grid { position: absolute; inset: 0; z-index: -2; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px); background-size: 74px 74px; mask-image: linear-gradient(90deg, #000, transparent 80%); }
.idp-editorial-hero-shade { position: absolute; inset: 0; z-index: -3; background: linear-gradient(90deg, rgba(4,15,30,.96) 0%, rgba(7,25,48,.86) 42%, rgba(7,25,48,.34) 75%, rgba(7,25,48,.48) 100%), linear-gradient(0deg, rgba(4,15,30,.78), transparent 50%); }
.idp-editorial-hero-content { position: relative; z-index: 2; padding-top: 220px; padding-bottom: 105px; }
.idp-editorial-hero h1 { max-width: 980px; margin: 0 0 27px; font-family: var(--idp-serif); font-size: clamp(3.6rem, 7vw, 7.7rem); font-weight: 500; line-height: .94; letter-spacing: -.052em; }
.idp-editorial-lead { max-width: 810px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.75; }
.idp-hero-monogram { position: absolute; right: 4vw; bottom: -4.5rem; color: rgba(255,255,255,.07); font-family: var(--idp-serif); font-size: clamp(12rem, 29vw, 33rem); line-height: .8; letter-spacing: -.1em; pointer-events: none; }
.idp-orbit-mark { position: absolute; right: 7%; top: 45%; width: 260px; height: 260px; border: 1px solid rgba(231,207,153,.28); border-radius: 50%; animation: idp-orbit-spin 22s linear infinite; }
.idp-orbit-mark::before, .idp-orbit-mark::after { content: ""; position: absolute; border: 1px solid rgba(231,207,153,.2); border-radius: 50%; }
.idp-orbit-mark::before { inset: 32px; }
.idp-orbit-mark::after { inset: 78px; }
.idp-orbit-mark i { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--idp-gold-light); box-shadow: 0 0 30px rgba(231,207,153,.8); }
.idp-orbit-mark i:nth-child(1) { left: 21px; top: 52px; }.idp-orbit-mark i:nth-child(2) { right: 4px; top: 122px; }.idp-orbit-mark i:nth-child(3) { left: 112px; bottom: -6px; }
@keyframes idp-orbit-spin { to { transform: rotate(360deg); } }

.idp-editorial-split { display: grid; grid-template-columns: minmax(330px,.8fr) minmax(0,1.2fr); gap: clamp(60px, 8vw, 125px); align-items: center; }
.idp-editorial-portrait { position: relative; padding: 24px 30px 42px 0; }
.idp-editorial-portrait::before { content: ""; position: absolute; inset: 0 0 0 18%; border: 1px solid var(--idp-gold); transform: translate(0, 24px); }
.idp-editorial-portrait-frame { position: relative; overflow: hidden; min-height: 650px; background: var(--idp-mist); box-shadow: var(--idp-shadow); }
.idp-editorial-portrait-frame img { width: 100%; height: 100%; min-height: 650px; object-fit: cover; object-position: center top; transition: transform .75s ease; }
.idp-editorial-portrait:hover img { transform: scale(1.025); }
.idp-editorial-portrait-badge { position: absolute; right: -6px; bottom: 0; width: 155px; height: 155px; display: grid; place-content: center; text-align: center; background: var(--idp-gold); color: var(--idp-ink); border-radius: 50%; box-shadow: 0 20px 55px rgba(8,25,46,.2); }
.idp-editorial-portrait-badge strong { font-family: var(--idp-serif); font-size: 2.5rem; line-height: 1; }.idp-editorial-portrait-badge span { max-width: 90px; margin-top: 8px; font-size: .66rem; font-weight: 800; letter-spacing: .08em; line-height: 1.25; text-transform: uppercase; }
.idp-editorial-copy h2 { margin: 0 0 28px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2.5rem, 4.5vw, 5rem); font-weight: 500; line-height: 1.02; letter-spacing: -.04em; }
.idp-editorial-copy > p { color: var(--idp-muted); }.idp-editorial-copy .idp-lead-copy { color: var(--idp-text); font-size: 1.18rem; }
.idp-signature-quote { position: relative; margin: 45px 0 0; padding: 30px 0 0 38px; border-top: 1px solid var(--idp-line); }
.idp-signature-quote::before { content: "“"; position: absolute; left: 0; top: 22px; color: var(--idp-gold); font-family: var(--idp-serif); font-size: 3.5rem; line-height: 1; }
.idp-signature-quote p { margin: 0; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.35rem; line-height: 1.55; font-style: italic; }.idp-signature-quote cite { display: block; margin-top: 14px; color: var(--idp-gold); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.idp-timeline-section { background: var(--idp-mist); }
.idp-timeline { position: relative; max-width: 1080px; margin: 0 auto; }
.idp-timeline::before { content: ""; position: absolute; left: 174px; top: 0; bottom: 0; width: 1px; background: linear-gradient(var(--idp-gold), var(--idp-line)); }
.idp-timeline-item { position: relative; display: grid; grid-template-columns: 145px 58px 1fr; gap: 0; align-items: start; margin-bottom: 24px; }
.idp-timeline-year { padding-top: 34px; color: var(--idp-gold); font-family: var(--idp-serif); font-size: 1.1rem; text-align: right; }
.idp-timeline-node { position: relative; min-height: 100%; }.idp-timeline-node span { position: absolute; top: 40px; left: 50%; width: 13px; height: 13px; border: 3px solid var(--idp-mist); border-radius: 50%; background: var(--idp-gold); box-shadow: 0 0 0 1px var(--idp-gold); transform: translateX(-50%); }
.idp-timeline-card { position: relative; padding: 31px 34px 30px; background: #fff; border: 1px solid transparent; box-shadow: 0 12px 38px rgba(7,24,45,.05); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.idp-timeline-card:hover { transform: translateX(7px); border-color: rgba(199,163,90,.45); box-shadow: var(--idp-shadow-soft); }
.idp-card-number { position: absolute; right: 24px; top: 17px; color: rgba(11,23,41,.07); font-family: var(--idp-serif); font-size: 3.2rem; line-height: 1; }.idp-timeline-card h3 { position: relative; margin: 0 0 8px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.5rem; font-weight: 600; }.idp-timeline-card p { position: relative; margin: 0; color: var(--idp-muted); }
.idp-role-section { background: #fff; }
.idp-role-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.idp-role-card { position: relative; min-height: 340px; padding: 34px 28px; overflow: hidden; background: var(--idp-ink); color: #fff; border-top: 3px solid var(--idp-gold); transition: transform .3s ease, background .3s ease; }
.idp-role-card::after { content: ""; position: absolute; width: 170px; height: 170px; right: -90px; bottom: -90px; border: 1px solid rgba(231,207,153,.18); border-radius: 50%; transition: transform .4s ease; }.idp-role-card:hover { transform: translateY(-8px); background: var(--idp-navy); }.idp-role-card:hover::after { transform: scale(1.45); }
.idp-role-card > span { color: var(--idp-gold); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }.idp-role-card h3 { margin: 70px 0 10px; color: #fff; font-family: var(--idp-serif); font-size: 1.75rem; font-weight: 500; }.idp-role-card strong { color: var(--idp-gold-light); font-size: .76rem; letter-spacing: .04em; }.idp-role-card p { color: rgba(255,255,255,.65); }
.idp-vision-panel { position: relative; overflow: hidden; padding: 110px 0; background: linear-gradient(120deg,#071426,#0e2a4b); color: #fff; }
.idp-vision-glow { position: absolute; width: 600px; height: 600px; right: -200px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(199,163,90,.28), transparent 68%); }
.idp-vision-layout { position: relative; display: grid; grid-template-columns: 1.15fr .75fr; gap: 100px; align-items: center; }.idp-vision-layout h2 { margin: 0; color: #fff; font-family: var(--idp-serif); font-size: clamp(2.5rem,4.6vw,5.1rem); font-weight: 500; line-height: 1.02; }.idp-vision-layout p { color: rgba(255,255,255,.72); font-size: 1.08rem; }.idp-button-gold { border-color: var(--idp-gold); background: var(--idp-gold); color: var(--idp-ink); }.idp-button-gold:hover { background: var(--idp-gold-light); color: var(--idp-ink); }

/* Project portfolio */
.idp-projects-intro { background: var(--idp-paper); }
.idp-filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 42px; padding: 8px; background: var(--idp-mist); border: 1px solid var(--idp-line); }
.idp-filter-bar button { min-height: 44px; padding: 0 18px; border: 0; background: transparent; color: var(--idp-muted); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; transition: .2s ease; }.idp-filter-bar button:hover, .idp-filter-bar button.is-active { background: var(--idp-ink); color: #fff; }
.idp-project-showcase { display: grid; grid-template-columns: repeat(12,1fr); gap: 24px; }
.idp-project-showcase-card { grid-column: span 4; min-width: 0; background: #fff; border: 1px solid var(--idp-line); box-shadow: 0 15px 50px rgba(7,24,45,.06); transition: opacity .3s ease, transform .3s ease, box-shadow .3s ease; }.idp-project-showcase-card:nth-child(1), .idp-project-showcase-card:nth-child(5) { grid-column: span 8; }.idp-project-showcase-card.is-filtered-out { display: none; }.idp-project-showcase-card:hover { transform: translateY(-8px); box-shadow: var(--idp-shadow); }
.idp-project-showcase-media { position: relative; min-height: 320px; overflow: hidden; background-size: cover; background-position: center; }.idp-project-showcase-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(5,16,32,.75),transparent 55%); }.idp-project-showcase-media.is-placeholder { background: linear-gradient(135deg,var(--idp-navy),var(--idp-blue)); }.idp-project-showcase-media span { position: absolute; left: 25px; bottom: 20px; z-index: 1; color: #fff; font-family: var(--idp-serif); font-size: 2.4rem; }
.idp-project-showcase-body { padding: 28px 28px 31px; }.idp-project-meta { display: flex; align-items: center; gap: 12px; color: var(--idp-gold); font-size: .67rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.idp-project-meta i { flex: 1; height: 1px; background: var(--idp-line); }.idp-project-showcase-body h3 { margin: 20px 0 12px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 2rem; font-weight: 600; }.idp-project-showcase-body p { min-height: 82px; margin: 0 0 20px; color: var(--idp-muted); }.idp-project-showcase-body a { color: var(--idp-ink); font-size: .77rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; }.idp-project-showcase-body a span { color: var(--idp-gold); margin-left: 6px; }
.idp-mission-section { background: var(--idp-ivory); }.idp-mission-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid rgba(11,23,41,.15); }.idp-mission-grid article { position: relative; padding: 48px 44px 28px 0; }.idp-mission-grid article + article { padding-left: 44px; border-left: 1px solid rgba(11,23,41,.15); }.idp-mission-grid span { display: block; color: var(--idp-gold); font-size: .72rem; font-weight: 800; letter-spacing: .12em; }.idp-mission-grid h3 { margin: 65px 0 14px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 2rem; }.idp-mission-grid p { color: var(--idp-muted); }

/* COOODEX */
.idp-product-hero { position: relative; min-height: 820px; display: flex; align-items: center; overflow: hidden; isolation: isolate; background: radial-gradient(circle at 75% 45%, #1f6577 0, #123b51 22%, #081c30 58%, #04101e 100%); color: #fff; }
.idp-product-hero-noise { position: absolute; inset: 0; opacity: .16; background-image: radial-gradient(rgba(255,255,255,.7) .6px, transparent .6px); background-size: 7px 7px; mask-image: linear-gradient(90deg,transparent,#000); }.idp-product-hero-orb { position: absolute; right: 2%; top: 8%; width: 650px; height: 650px; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.018); }
.idp-product-hero-layout { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .75fr; gap: 80px; align-items: center; padding-top: 185px; padding-bottom: 105px; }.idp-product-hero-copy h1 { margin: 0 0 25px; font-family: var(--idp-serif); font-size: clamp(3.6rem,6vw,7rem); font-weight: 500; line-height: .95; letter-spacing: -.05em; }.idp-product-hero-copy > p { max-width: 740px; color: rgba(255,255,255,.72); font-size: 1.15rem; }.idp-product-stage { position: relative; min-height: 500px; display: grid; place-items: center; }.idp-product-stage img { position: relative; z-index: 2; max-height: 570px; width: auto; object-fit: contain; filter: drop-shadow(0 45px 55px rgba(0,0,0,.35)); animation: idp-product-float 5s ease-in-out infinite; }.idp-product-ring { position: absolute; width: 410px; height: 410px; border: 1px solid rgba(231,207,153,.45); border-radius: 50%; box-shadow: 0 0 0 36px rgba(231,207,153,.06), inset 0 0 70px rgba(231,207,153,.08); }.idp-product-o3 { position: absolute; right: -20px; bottom: 25px; color: rgba(255,255,255,.08); font-family: var(--idp-serif); font-size: 9rem; }.idp-product-o3 sub, .idp-product-boost-o sub { font-size: .4em; }
@keyframes idp-product-float { 50% { transform: translateY(-14px); } }
.idp-product-intro-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; align-items: center; }.idp-product-detail-media { position: relative; min-height: 590px; overflow: hidden; background: var(--idp-mist); }.idp-product-detail-media img { width: 100%; height: 100%; min-height: 590px; object-fit: cover; }.idp-product-detail-label { position: absolute; left: 0; bottom: 0; padding: 24px 31px; background: rgba(5,16,32,.9); color: #fff; font-family: var(--idp-serif); font-size: 1.6rem; backdrop-filter: blur(10px); }.idp-product-detail-label span { display: block; margin-top: 5px; color: var(--idp-gold-light); font-family: var(--idp-sans); font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.idp-formula-mark { display: inline-flex; align-items: center; gap: 18px; margin-top: 22px; padding: 18px 23px; border: 1px solid var(--idp-line); background: var(--idp-mist); }.idp-formula-mark > span { color: var(--idp-blue); font-family: var(--idp-serif); font-size: 2.4rem; }.idp-formula-mark strong, .idp-formula-mark small { display: block; }.idp-formula-mark small { color: var(--idp-muted); }
.idp-product-principles { background: var(--idp-mist); }.idp-principle-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }.idp-principle-grid article { position: relative; min-height: 390px; padding: 30px; overflow: hidden; background: #fff; border-bottom: 3px solid transparent; transition: .28s ease; }.idp-principle-grid article:hover { transform: translateY(-8px); border-bottom-color: var(--idp-gold); box-shadow: var(--idp-shadow-soft); }.idp-principle-grid article > span { color: var(--idp-gold); font-size: .7rem; font-weight: 800; }.idp-principle-icon { width: 82px; height: 82px; margin: 55px 0 32px; border: 1px solid var(--idp-gold); border-radius: 50%; position: relative; }.idp-principle-icon::before, .idp-principle-icon::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(199,163,90,.35); }.idp-principle-icon::before { inset: 12px; }.idp-principle-icon::after { width: 12px; height: 12px; right: -4px; top: 13px; background: var(--idp-gold); }.idp-principle-grid h3 { margin: 0 0 13px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.7rem; }.idp-principle-grid p { color: var(--idp-muted); }
.idp-product-boost { padding: 105px 0; background: linear-gradient(120deg,#071426,#10445e); color: #fff; }.idp-product-boost-layout { display: grid; grid-template-columns: .65fr 1.35fr; gap: 100px; align-items: center; }.idp-product-boost-o { display: block; color: var(--idp-gold-light); font-family: var(--idp-serif); font-size: clamp(8rem,18vw,16rem); line-height: .8; text-shadow: 0 0 60px rgba(231,207,153,.2); }.idp-product-boost h2 { margin: 0; color: #fff; font-family: var(--idp-serif); font-size: clamp(2.6rem,4.7vw,5.2rem); font-weight: 500; }.idp-product-boost p { max-width: 760px; color: rgba(255,255,255,.7); }.idp-product-notice { padding-top: 68px; padding-bottom: 68px; }.idp-notice-card { display: grid; grid-template-columns: 64px 1fr; gap: 25px; padding: 30px 34px; border: 1px solid #d9e3ec; background: #f8fafc; }.idp-notice-card > span { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid var(--idp-blue); border-radius: 50%; color: var(--idp-blue); font-family: var(--idp-serif); font-size: 1.5rem; }.idp-notice-card h2 { margin: 0 0 7px; color: var(--idp-ink); font-size: 1rem; }.idp-notice-card p { margin: 0; color: var(--idp-muted); font-size: .9rem; }

/* Press */
.idp-press-word { position: absolute; right: 2vw; bottom: -2.5rem; color: rgba(255,255,255,.06); font-size: clamp(8rem,18vw,19rem); font-weight: 900; letter-spacing: -.08em; pointer-events: none; }
.idp-press-featured-section { background: var(--idp-ivory); }.idp-press-featured { display: grid; grid-template-columns: .28fr 1.1fr .58fr; gap: 55px; align-items: start; padding: 62px; background: #fff; box-shadow: var(--idp-shadow); }.idp-press-featured-label { display: flex; align-items: center; gap: 14px; color: var(--idp-gold); font-size: .69rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }.idp-press-featured-label i { width: 1px; height: 90px; background: var(--idp-gold); }.idp-press-featured-copy h2 { margin: 0 0 22px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2.4rem,4vw,4.4rem); font-weight: 500; line-height: 1.03; }.idp-press-featured-copy > p { color: var(--idp-muted); }.idp-position-points { display: grid; grid-template-columns: 1fr 1fr; margin-top: 30px; border-top: 1px solid var(--idp-line); }.idp-position-points div { padding: 18px 14px 18px 0; color: var(--idp-ink); font-size: .88rem; font-weight: 700; }.idp-position-points div:nth-child(even) { padding-left: 18px; border-left: 1px solid var(--idp-line); }.idp-position-points span { margin-right: 9px; color: var(--idp-gold); font-size: .68rem; }.idp-press-quote { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding-left: 35px; border-left: 1px solid var(--idp-line); }.idp-press-quote blockquote { margin: 0; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.55rem; line-height: 1.45; font-style: italic; }.idp-press-quote cite { margin-top: 17px; color: var(--idp-gold); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.idp-media-coverage-section { background: #fff; }.idp-coverage-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 20px; }.idp-coverage-card { grid-column: span 4; position: relative; min-height: 410px; padding: 28px; overflow: hidden; border: 1px solid var(--idp-line); background: #fff; transition: .28s ease; }.idp-coverage-card:nth-child(1), .idp-coverage-card:nth-child(5) { grid-column: span 6; }.idp-coverage-card::after { content: ""; position: absolute; inset: auto -100px -100px auto; width: 210px; height: 210px; border: 1px solid rgba(199,163,90,.25); border-radius: 50%; transition: .35s ease; }.idp-coverage-card:hover { transform: translateY(-7px); border-color: rgba(199,163,90,.55); box-shadow: var(--idp-shadow-soft); }.idp-coverage-card:hover::after { transform: scale(1.3); }.idp-coverage-top { display: flex; justify-content: space-between; gap: 18px; color: var(--idp-gold); font-size: .67rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.idp-coverage-top time { color: var(--idp-muted); }.idp-coverage-index { margin: 45px 0 18px; color: rgba(11,23,41,.08); font-family: var(--idp-serif); font-size: 4.8rem; line-height: .75; }.idp-coverage-card h3 { margin: 0 0 15px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.65rem; line-height: 1.2; }.idp-coverage-card p { color: var(--idp-muted); font-size: .92rem; }.idp-coverage-card a { position: absolute; left: 28px; bottom: 27px; z-index: 2; color: var(--idp-ink); font-size: .73rem; font-weight: 800; text-decoration: none; text-transform: uppercase; }.idp-coverage-card a span { margin-left: 7px; color: var(--idp-gold); }.idp-press-cta { margin-top: 65px; display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 45px 50px; background: var(--idp-ink); color: #fff; }.idp-press-cta > div > span { color: var(--idp-gold-light); font-size: .69rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.idp-press-cta h2 { margin: 8px 0 0; color: #fff; font-family: var(--idp-serif); font-size: clamp(1.8rem,3vw,3rem); font-weight: 500; }

/* EWS */
.idp-europe-stars { position: absolute; right: 7%; top: 30%; width: 290px; height: 290px; border: 1px solid rgba(231,207,153,.18); border-radius: 50%; animation: idp-orbit-spin 42s linear infinite; }.idp-europe-stars i { position: absolute; left: calc(50% - 4px); top: calc(50% - 4px); width: 8px; height: 8px; background: var(--idp-gold-light); clip-path: polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 93%,50% 70%,21% 93%,32% 56%,2% 35%,39% 35%); transform: rotate(calc(var(--star-index,0) * 30deg)) translateY(-125px); transform-origin: 4px 129px; }.idp-europe-stars i:nth-child(1){--star-index:0}.idp-europe-stars i:nth-child(2){--star-index:1}.idp-europe-stars i:nth-child(3){--star-index:2}.idp-europe-stars i:nth-child(4){--star-index:3}.idp-europe-stars i:nth-child(5){--star-index:4}.idp-europe-stars i:nth-child(6){--star-index:5}.idp-europe-stars i:nth-child(7){--star-index:6}.idp-europe-stars i:nth-child(8){--star-index:7}.idp-europe-stars i:nth-child(9){--star-index:8}.idp-europe-stars i:nth-child(10){--star-index:9}.idp-europe-stars i:nth-child(11){--star-index:10}.idp-europe-stars i:nth-child(12){--star-index:11}
.idp-ews-intro-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 100px; align-items: center; }.idp-ews-emblem { position: relative; min-height: 480px; display: grid; place-items: center; background: var(--idp-ink); overflow: hidden; }.idp-ews-emblem::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at center,rgba(199,163,90,.15),transparent 58%); }.idp-ews-emblem img { position: relative; z-index: 2; max-width: 250px; max-height: 260px; object-fit: contain; }.idp-ews-emblem-ring { position: absolute; width: 330px; height: 330px; border: 1px solid rgba(231,207,153,.3); border-radius: 50%; box-shadow: 0 0 0 45px rgba(231,207,153,.025), 0 0 0 90px rgba(231,207,153,.015); }.idp-ews-emblem > span { position: absolute; bottom: 25px; color: rgba(255,255,255,.1); font-size: 3rem; font-weight: 900; letter-spacing: .28em; }.idp-text-link { display: inline-flex; gap: 8px; align-items: center; margin-top: 15px; color: var(--idp-ink); font-size: .77rem; font-weight: 800; text-decoration: none; text-transform: uppercase; }.idp-text-link span { color: var(--idp-gold); }
.idp-ews-values-section { background: var(--idp-mist); }.idp-ews-value-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }.idp-ews-value-grid article { min-height: 390px; padding: 38px 33px; background: #fff; border-top: 3px solid var(--idp-gold); box-shadow: 0 10px 35px rgba(7,24,45,.04); }.idp-value-symbol { width: 90px; height: 90px; display: grid; place-items: center; border: 1px solid var(--idp-line); border-radius: 50%; }.idp-value-symbol span { width: 56px; height: 56px; display: grid; place-items: center; border: 1px solid var(--idp-gold); border-radius: 50%; color: var(--idp-gold); font-family: var(--idp-serif); font-size: 1.5rem; }.idp-ews-value-grid h3 { margin: 75px 0 15px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 2rem; }.idp-ews-value-grid p { color: var(--idp-muted); }
.idp-ews-goals { padding: 115px 0; background: linear-gradient(120deg,#071426,#123760); color: #fff; }.idp-ews-goals-layout { display: grid; grid-template-columns: 1.1fr .8fr; gap: 100px; align-items: center; }.idp-ews-goals h2 { margin: 0 0 25px; color: #fff; font-family: var(--idp-serif); font-size: clamp(2.6rem,4.8vw,5.3rem); font-weight: 500; line-height: 1; }.idp-ews-goals p { color: rgba(255,255,255,.7); }.idp-ews-goal-lines > div { margin-bottom: 28px; }.idp-ews-goal-lines span { display: block; margin-bottom: 8px; color: rgba(255,255,255,.75); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.idp-ews-goal-lines i { position: relative; display: block; height: 5px; background: rgba(255,255,255,.13); }.idp-ews-goal-lines i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--progress); background: linear-gradient(90deg,var(--idp-gold),var(--idp-gold-light)); transform-origin: left; animation: idp-line-grow 1.5s ease both; }.idp-ews-goal-lines > div:nth-child(2) i::after { animation-delay:.15s }.idp-ews-goal-lines > div:nth-child(3) i::after { animation-delay:.3s }.idp-ews-goal-lines > div:nth-child(4) i::after { animation-delay:.45s } @keyframes idp-line-grow { from { transform: scaleX(0); } }
.idp-ews-presence-layout { display: grid; grid-template-columns: 1fr .9fr; gap: 100px; align-items: center; }.idp-europe-map { position: relative; min-height: 480px; background: var(--idp-ivory); overflow: hidden; }.idp-europe-map svg { position: absolute; inset: 30px; width: calc(100% - 60px); height: calc(100% - 60px); }.idp-europe-map path { fill: rgba(28,76,121,.08); stroke: rgba(28,76,121,.35); stroke-width: 2; }.idp-map-point { position: absolute; z-index: 2; display: flex; align-items: center; gap: 8px; color: var(--idp-ink); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }.idp-map-point i { width: 13px; height: 13px; border: 3px solid var(--idp-ivory); border-radius: 50%; background: var(--idp-gold); box-shadow: 0 0 0 1px var(--idp-gold),0 0 0 8px rgba(199,163,90,.15); animation: idp-pulse 2.4s ease infinite; }.idp-map-point.is-brussels { left: 38%; top: 40%; }.idp-map-point.is-berlin { left: 58%; top: 32%; }.idp-map-point.is-munich { left: 56%; top: 55%; } @keyframes idp-pulse { 50% { box-shadow: 0 0 0 1px var(--idp-gold),0 0 0 14px rgba(199,163,90,0); } }
.idp-ews-role { background: var(--idp-ivory); }.idp-ews-role-card { display: grid; grid-template-columns: 1.2fr .55fr; gap: 70px; align-items: center; padding: 60px; background: var(--idp-ink); color: #fff; }.idp-ews-role-card h2 { margin: 0 0 20px; color: #fff; font-family: var(--idp-serif); font-size: clamp(2.4rem,4vw,4.5rem); font-weight: 500; line-height: 1.02; }.idp-ews-role-card p { color: rgba(255,255,255,.68); }.idp-ews-role-actions { display: flex; flex-direction: column; gap: 12px; }.idp-button-ghost { border-color: rgba(255,255,255,.35); color: #fff; background: transparent; }.idp-button-ghost:hover { border-color: #fff; color: #fff; }

/* Contact pro */
.idp-contact-hero { position: relative; min-height: 660px; display: flex; align-items: flex-end; overflow: hidden; background: radial-gradient(circle at 82% 32%,#1b527b 0,#0d2d50 26%,#071426 64%); color: #fff; }.idp-contact-hero-grid { position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size: 82px 82px; }.idp-contact-hero-content { position: relative; z-index: 2; padding-top: 210px; padding-bottom: 100px; }.idp-contact-hero h1 { max-width: 970px; margin: 0 0 24px; font-family: var(--idp-serif); font-size: clamp(3.5rem,6.6vw,7.2rem); font-weight: 500; line-height: .95; }.idp-contact-hero p:last-child { max-width: 760px; color: rgba(255,255,255,.72); font-size: 1.16rem; }.idp-contact-orbit { position: absolute; right: 8%; top: 31%; width: 280px; height: 280px; border: 1px solid rgba(231,207,153,.22); border-radius: 50%; }.idp-contact-orbit::before,.idp-contact-orbit::after { content:"";position:absolute;border:1px solid rgba(231,207,153,.16);border-radius:50%; }.idp-contact-orbit::before{inset:40px}.idp-contact-orbit::after{inset:92px}.idp-contact-orbit i{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--idp-gold-light);box-shadow:0 0 24px var(--idp-gold)}.idp-contact-orbit i:nth-child(1){left:18px;top:62px}.idp-contact-orbit i:nth-child(2){right:13px;top:142px}.idp-contact-orbit i:nth-child(3){left:130px;bottom:-5px}
.idp-contact-paths { position: relative; z-index: 3; margin-top: -45px; }.idp-contact-path-grid { display: grid; grid-template-columns: repeat(3,1fr); box-shadow: var(--idp-shadow); }.idp-contact-path-grid article { min-height: 245px; padding: 31px; background: #fff; border-right: 1px solid var(--idp-line); }.idp-contact-path-grid article:last-child { border: 0; }.idp-contact-path-grid article > span { color: var(--idp-gold); font-size: .7rem; font-weight: 800; }.idp-contact-path-grid h2 { margin: 50px 0 12px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.75rem; }.idp-contact-path-grid p { margin: 0; color: var(--idp-muted); font-size: .92rem; }
.idp-contact-grid-page-pro { grid-template-columns: minmax(330px,.65fr) minmax(0,1.35fr); gap: 75px; align-items: start; }.idp-contact-sidebar-pro { position: sticky; top: 120px; }.idp-contact-sidebar-pro h2 { margin: 0 0 20px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2.4rem,4.2vw,4.5rem); font-weight: 500; line-height: 1.03; }.idp-contact-sidebar-pro > p { color: var(--idp-muted); }.idp-contact-card-pro { margin-top: 34px; background: var(--idp-ink); color: #fff; border-top: 3px solid var(--idp-gold); }.idp-contact-card-pro > div { padding: 22px 25px; border-bottom: 1px solid rgba(255,255,255,.12); }.idp-contact-card-pro > div:last-child { border-bottom: 0; }.idp-contact-card-pro span { display: block; margin-bottom: 6px; color: var(--idp-gold-light); font-size: .65rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }.idp-contact-card-pro a,.idp-contact-card-pro strong { color: #fff; font-weight: 600; text-decoration: none; }.idp-response-note { display: grid; grid-template-columns: 35px 1fr; gap: 13px; align-items: start; margin-top: 24px; padding: 17px; background: #eef7f2; border: 1px solid #d7eadf; }.idp-response-note > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--idp-green); color: #fff; font-size: .8rem; }.idp-response-note p { margin: 1px 0 0; color: #385c4d; font-size: .83rem; }.idp-contact-form-column .idp-form-shell { border-top: 4px solid var(--idp-gold); box-shadow: var(--idp-shadow); }

@media (max-width: 1120px) {
  .idp-role-grid, .idp-principle-grid { grid-template-columns: repeat(2,1fr); }
  .idp-project-showcase-card, .idp-project-showcase-card:nth-child(1), .idp-project-showcase-card:nth-child(5) { grid-column: span 6; }
  .idp-coverage-card, .idp-coverage-card:nth-child(1), .idp-coverage-card:nth-child(5) { grid-column: span 6; }
  .idp-press-featured { grid-template-columns: 60px 1fr; }.idp-press-quote { grid-column: 2; padding: 30px 0 0; border-left: 0; border-top: 1px solid var(--idp-line); }
  .idp-orbit-mark, .idp-europe-stars, .idp-contact-orbit { opacity: .55; transform: scale(.75); transform-origin: right center; }
}
@media (max-width: 900px) {
  .idp-editorial-hero { min-height: 620px; }.idp-editorial-hero-content { padding-top: 180px; padding-bottom: 80px; }
  .idp-editorial-split, .idp-product-intro-layout, .idp-ews-intro-layout, .idp-ews-presence-layout, .idp-vision-layout, .idp-product-boost-layout, .idp-ews-goals-layout, .idp-ews-role-card, .idp-contact-grid-page-pro { grid-template-columns: 1fr; gap: 55px; }
  .idp-editorial-portrait { max-width: 600px; }.idp-role-grid, .idp-ews-value-grid { grid-template-columns: repeat(2,1fr); }.idp-role-card { min-height: 300px; }
  .idp-project-showcase-card, .idp-project-showcase-card:nth-child(1), .idp-project-showcase-card:nth-child(5) { grid-column: span 12; }.idp-project-showcase-media { min-height: 390px; }
  .idp-mission-grid { grid-template-columns: 1fr; }.idp-mission-grid article, .idp-mission-grid article + article { padding: 32px 0; border-left: 0; border-bottom: 1px solid rgba(11,23,41,.15); }.idp-mission-grid h3 { margin-top: 30px; }
  .idp-product-hero-layout { grid-template-columns: 1fr; padding-top: 180px; }.idp-product-stage { min-height: 440px; }.idp-product-hero-orb { opacity:.5; }.idp-principle-grid { grid-template-columns: repeat(2,1fr); }
  .idp-ews-role-actions { flex-direction: row; flex-wrap: wrap; }.idp-contact-path-grid { grid-template-columns: 1fr; }.idp-contact-path-grid article { min-height: auto; border-right: 0; border-bottom: 1px solid var(--idp-line); }.idp-contact-path-grid h2 { margin-top: 25px; }.idp-contact-sidebar-pro { position: static; }
}
@media (max-width: 700px) {
  .idp-editorial-hero { min-height: 560px; }.idp-editorial-hero-content { padding-top: 155px; padding-bottom: 65px; }.idp-editorial-hero h1, .idp-contact-hero h1, .idp-product-hero-copy h1 { font-size: clamp(2.8rem,14vw,4.6rem); }.idp-editorial-lead { font-size: 1rem; }.idp-hero-monogram, .idp-orbit-mark, .idp-europe-stars, .idp-contact-orbit { display: none; }
  .idp-editorial-portrait-frame, .idp-editorial-portrait-frame img { min-height: 490px; }.idp-editorial-portrait-badge { width: 120px; height: 120px; }.idp-editorial-portrait-badge strong { font-size: 2rem; }
  .idp-timeline::before { left: 13px; }.idp-timeline-item { grid-template-columns: 27px 1fr; }.idp-timeline-year { grid-column: 2; padding: 0 0 9px; text-align: left; }.idp-timeline-node { grid-column: 1; grid-row: 1 / 3; }.idp-timeline-node span { top: 8px; }.idp-timeline-card { grid-column: 2; padding: 25px 22px; }
  .idp-role-grid, .idp-principle-grid, .idp-ews-value-grid { grid-template-columns: 1fr; }.idp-role-card { min-height: 270px; }.idp-role-card h3 { margin-top: 45px; }
  .idp-project-showcase-media { min-height: 280px; }.idp-filter-bar { display: grid; grid-template-columns: 1fr 1fr; }.idp-filter-bar button:first-child { grid-column: 1 / 3; }
  .idp-product-hero { min-height: auto; }.idp-product-hero-layout { padding-top: 150px; }.idp-product-stage { min-height: 350px; }.idp-product-stage img { max-height: 400px; }.idp-product-ring { width: 290px; height: 290px; }.idp-product-detail-media, .idp-product-detail-media img { min-height: 430px; }.idp-product-boost-o { font-size: 9rem; }.idp-notice-card { grid-template-columns: 1fr; }
  .idp-press-featured { grid-template-columns: 1fr; gap: 25px; padding: 30px 22px; }.idp-press-featured-label { writing-mode: horizontal-tb; transform: none; }.idp-press-featured-label i { width: 70px; height: 1px; }.idp-press-quote { grid-column: 1; }.idp-position-points { grid-template-columns: 1fr; }.idp-position-points div:nth-child(even) { padding-left: 0; border-left: 0; }.idp-coverage-card, .idp-coverage-card:nth-child(1), .idp-coverage-card:nth-child(5) { grid-column: span 12; }.idp-press-cta { align-items: flex-start; flex-direction: column; padding: 34px 25px; }
  .idp-ews-emblem { min-height: 390px; }.idp-ews-emblem-ring { width: 260px; height: 260px; }.idp-europe-map { min-height: 360px; }.idp-map-point span { display:none; }.idp-ews-role-card { padding: 35px 24px; }.idp-ews-role-actions { flex-direction: column; }.idp-contact-hero { min-height: 570px; }.idp-contact-hero-content { padding-top: 160px; padding-bottom: 80px; }.idp-contact-paths { margin-top: -25px; }
}

/* === Project & contact expansion 2.2.0 =================================== */
.idp-button-whatsapp{background:#18865b!important;border-color:#18865b!important;color:#fff!important}.idp-button-whatsapp:hover{background:#126c49!important;border-color:#126c49!important;color:#fff!important}.idp-button-whatsapp span{margin-left:10px}.idp-project-phone,.idp-project-external{color:rgba(255,255,255,.78);font-size:.82rem;font-weight:700;letter-spacing:.04em;text-decoration:none}.idp-project-phone:hover,.idp-project-external:hover{color:#fff}

/* Projects overview slider */
.idp-projects-hero-slider{min-height:780px}.idp-projects-hero-slider .idp-hero-slide{min-height:780px}.idp-projects-hero-slider .idp-hero-shade{background:linear-gradient(90deg,rgba(4,16,31,.94) 0%,rgba(5,22,42,.75) 48%,rgba(5,22,42,.22) 100%),linear-gradient(0deg,rgba(5,18,34,.8),transparent 48%)}.idp-projects-hero-pattern{position:absolute;inset:0;opacity:.1;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:88px 88px;mask-image:linear-gradient(90deg,#000,transparent 78%)}.idp-projects-slide-title{max-width:940px;margin:0 0 24px;color:#fff;font-family:var(--idp-serif);font-size:clamp(3.4rem,6.3vw,7rem);font-weight:500;line-height:.96;letter-spacing:-.035em}.idp-projects-manifesto{padding:105px 0;background:var(--idp-ivory)}.idp-projects-manifesto-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}.idp-projects-manifesto h2{margin:0;color:var(--idp-ink);font-family:var(--idp-serif);font-size:clamp(2.8rem,4.5vw,5rem);font-weight:500;line-height:1.02}.idp-projects-manifesto .idp-large-copy{margin-top:0}.idp-projects-manifesto-points{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.idp-projects-manifesto-points span{padding:10px 14px;border:1px solid rgba(11,27,52,.14);background:#fff;color:var(--idp-ink);font-size:.75rem;font-weight:800;letter-spacing:.04em}.idp-projects-portfolio-v2{background:#fff}.idp-project-editorial-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;margin-top:48px}.idp-project-editorial-card{grid-column:span 4;background:#fff;border:1px solid var(--idp-line);transition:transform .35s ease,box-shadow .35s ease}.idp-project-editorial-card:nth-child(1),.idp-project-editorial-card:nth-child(6){grid-column:span 8}.idp-project-editorial-card:hover{transform:translateY(-8px);box-shadow:0 28px 70px rgba(11,27,52,.14)}.idp-project-editorial-media{position:relative;display:block;min-height:330px;overflow:hidden;background:linear-gradient(135deg,#0c3158,#0a1b30)}.idp-project-editorial-card:nth-child(1) .idp-project-editorial-media,.idp-project-editorial-card:nth-child(6) .idp-project-editorial-media{min-height:440px}.idp-project-editorial-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.idp-project-editorial-card:hover img{transform:scale(1.055)}.idp-project-editorial-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,14,28,.8),transparent 58%)}.idp-project-editorial-number{position:absolute;top:22px;left:24px;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.12em}.idp-project-editorial-category{position:absolute;right:20px;bottom:20px;padding:8px 11px;background:rgba(8,24,43,.75);backdrop-filter:blur(12px);color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.idp-project-editorial-body{padding:28px 28px 30px}.idp-project-editorial-body h3{margin:0 0 13px;font-family:var(--idp-serif);font-size:2rem;font-weight:500}.idp-project-editorial-body h3 a{color:var(--idp-ink);text-decoration:none}.idp-project-editorial-body p{min-height:53px;margin:0 0 23px;color:var(--idp-muted)}.idp-projects-dolphins-feature{position:relative;overflow:hidden;padding:120px 0;background:linear-gradient(135deg,#062d43,#087778);color:#fff}.idp-projects-dolphins-feature::before{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 15% 55%,rgba(136,225,209,.2),transparent 28%),radial-gradient(circle at 90% 12%,rgba(231,207,153,.16),transparent 30%)}.idp-projects-dolphins-grid{position:relative;display:grid;grid-template-columns:.7fr 1.3fr;gap:90px;align-items:center}.idp-projects-dolphins-symbol{position:relative;min-height:390px;display:grid;place-items:center}.idp-projects-dolphins-symbol span{font-family:var(--idp-serif);font-size:13rem;line-height:1;color:rgba(255,255,255,.9);text-shadow:0 0 60px rgba(97,231,207,.26)}.idp-projects-dolphins-symbol i{position:absolute;border:1px solid rgba(255,255,255,.18);border-radius:50%;animation:idpOrbit 10s linear infinite}.idp-projects-dolphins-symbol i:nth-child(2){width:320px;height:320px}.idp-projects-dolphins-symbol i:nth-child(3){width:220px;height:220px;animation-direction:reverse}.idp-projects-dolphins-grid h2{margin:0 0 25px;color:#fff;font-family:var(--idp-serif);font-size:clamp(3rem,5.2vw,5.7rem);font-weight:500;line-height:.98}.idp-projects-dolphins-grid p{max-width:760px;color:rgba(255,255,255,.72);font-size:1.08rem}

/* Individual project pages */
.idp-project-detail-hero{position:relative;min-height:820px;display:flex;align-items:flex-end;overflow:hidden;background:#071426;color:#fff}.idp-project-detail-bg{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.03)}.idp-project-detail-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,15,29,.95) 0%,rgba(5,20,38,.76) 48%,rgba(5,20,38,.26) 100%),linear-gradient(0deg,rgba(4,15,29,.9),transparent 52%)}.idp-project-detail-grid{position:absolute;inset:0;opacity:.1;background-image:linear-gradient(rgba(255,255,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px);background-size:90px 90px;mask-image:linear-gradient(90deg,#000,transparent 80%)}.idp-project-detail-hero-layout{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr .45fr;gap:70px;align-items:end;padding-top:210px;padding-bottom:145px}.idp-project-detail-copy h1{max-width:1050px;margin:0 0 25px;font-family:var(--idp-serif);font-size:clamp(3.8rem,7vw,7.7rem);font-weight:500;line-height:.93;letter-spacing:-.045em}.idp-project-detail-lead{max-width:790px;margin:0;color:rgba(255,255,255,.76);font-size:1.17rem;line-height:1.75}.idp-project-detail-actions{display:flex;align-items:center;gap:28px;margin-top:38px}.idp-project-detail-emblem{position:relative;width:280px;height:280px;display:grid;place-items:center;justify-self:end;border:1px solid rgba(231,207,153,.32);border-radius:50%;background:rgba(6,24,44,.3);backdrop-filter:blur(10px)}.idp-project-detail-emblem::before,.idp-project-detail-emblem::after{content:"";position:absolute;border:1px solid rgba(231,207,153,.2);border-radius:50%}.idp-project-detail-emblem::before{inset:38px}.idp-project-detail-emblem::after{inset:82px}.idp-project-detail-emblem span{font-family:var(--idp-serif);font-size:4.2rem;color:var(--idp-gold-light)}.idp-project-detail-emblem i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--idp-gold-light);box-shadow:0 0 22px var(--idp-gold)}.idp-project-detail-emblem i:nth-child(2){top:28px;left:55px}.idp-project-detail-emblem i:nth-child(3){right:22px;bottom:77px}.idp-project-detail-highlights{position:absolute;z-index:3;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(3,1fr);transform:translateY(50%)}.idp-project-detail-highlights div{display:grid;grid-template-columns:44px 1fr;gap:15px;align-items:center;padding:24px 27px;background:#fff;border-right:1px solid var(--idp-line);box-shadow:0 20px 50px rgba(3,18,34,.14)}.idp-project-detail-highlights div:first-child{border-top:3px solid var(--idp-gold)}.idp-project-detail-highlights div:last-child{border-right:0}.idp-project-detail-highlights span{color:var(--idp-gold);font-size:.68rem;font-weight:800}.idp-project-detail-highlights strong{color:var(--idp-ink);font-size:.87rem}.idp-project-anchor-nav{position:sticky;z-index:20;top:86px;padding-top:72px;background:#fff;border-bottom:1px solid var(--idp-line)}.idp-project-anchor-nav .idp-container{display:flex;justify-content:space-between;gap:30px;align-items:center;min-height:65px}.idp-project-anchor-nav .idp-container>span{color:var(--idp-gold-dark);font-size:.69rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.idp-project-anchor-nav .idp-container>div{display:flex;gap:30px}.idp-project-anchor-nav a{position:relative;padding:23px 0;color:var(--idp-muted);font-size:.76rem;font-weight:800;text-decoration:none}.idp-project-anchor-nav a::after{content:"";position:absolute;right:0;bottom:-1px;left:0;height:2px;background:var(--idp-gold);transform:scaleX(0);transition:transform .25s}.idp-project-anchor-nav a:hover{color:var(--idp-ink)}.idp-project-anchor-nav a:hover::after{transform:scaleX(1)}.idp-project-story{padding-top:150px}.idp-project-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.idp-project-story-media{position:relative;min-height:660px}.idp-project-story-main{position:absolute;inset:0 80px 75px 0;overflow:hidden;background:#dce4e9}.idp-project-story-main img,.idp-project-story-small img{width:100%;height:100%;object-fit:cover}.idp-project-story-small{position:absolute;right:0;bottom:0;width:48%;height:310px;overflow:hidden;border:10px solid #fff;box-shadow:var(--idp-shadow)}.idp-project-story-label{position:absolute;top:38px;right:22px;width:185px;padding:22px;background:var(--idp-ink);color:#fff;border-top:3px solid var(--idp-gold)}.idp-project-story-label span{display:block;color:var(--idp-gold-light);font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.idp-project-story-label strong{display:block;margin-top:15px;font-family:var(--idp-serif);font-size:2rem}.idp-project-story-copy h2{margin:0 0 25px;color:var(--idp-ink);font-family:var(--idp-serif);font-size:clamp(2.8rem,4.5vw,5rem);font-weight:500;line-height:1.02}.idp-project-story-copy blockquote{position:relative;margin:36px 0 0;padding:28px 30px 28px 66px;background:var(--idp-ivory);border-left:3px solid var(--idp-gold);color:var(--idp-ink);font-family:var(--idp-serif);font-size:1.45rem;line-height:1.35}.idp-project-story-copy blockquote span{position:absolute;left:23px;top:7px;color:var(--idp-gold);font-size:4.7rem;line-height:1}.idp-project-features-section{background:var(--idp-ink);color:#fff}.idp-project-features-section .idp-section-head h2{color:#fff}.idp-project-features-section .idp-section-head>p{color:rgba(255,255,255,.65)}.idp-project-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:55px;border-top:1px solid rgba(255,255,255,.15);border-left:1px solid rgba(255,255,255,.15)}.idp-project-feature-grid article{position:relative;min-height:400px;padding:35px 30px;border-right:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);overflow:hidden;transition:background .3s,transform .3s}.idp-project-feature-grid article:hover{background:rgba(255,255,255,.06);transform:translateY(-5px)}.idp-project-feature-index{color:var(--idp-gold-light);font-size:.68rem;font-weight:800}.idp-project-feature-symbol{position:relative;width:80px;height:80px;margin:65px 0 42px;border:1px solid rgba(231,207,153,.35);border-radius:50%}.idp-project-feature-symbol::before{content:"";position:absolute;inset:18px;border:1px solid rgba(231,207,153,.24);border-radius:50%}.idp-project-feature-symbol i{position:absolute;background:var(--idp-gold-light)}.idp-project-feature-symbol i:first-child{width:26px;height:1px;left:27px;top:39px}.idp-project-feature-symbol i:last-child{width:1px;height:26px;left:39px;top:27px}.idp-project-feature-grid h3{margin:0 0 15px;color:#fff;font-family:var(--idp-serif);font-size:1.75rem;font-weight:500}.idp-project-feature-grid p{margin:0;color:rgba(255,255,255,.63);font-size:.93rem}.idp-project-process-section{background:var(--idp-ivory)}.idp-project-process-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:90px;align-items:center}.idp-project-process-copy h2{margin:0 0 40px;color:var(--idp-ink);font-family:var(--idp-serif);font-size:clamp(2.7rem,4.2vw,4.7rem);font-weight:500;line-height:1.04}.idp-project-process-copy ol{margin:0;padding:0;list-style:none;border-top:1px solid rgba(11,27,52,.16)}.idp-project-process-copy li{display:grid;grid-template-columns:55px 1fr;gap:18px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(11,27,52,.16)}.idp-project-process-copy li span{color:var(--idp-gold-dark);font-size:.7rem;font-weight:900}.idp-project-process-copy li strong{color:var(--idp-ink);font-size:.95rem}.idp-project-process-visual{position:relative;min-height:650px;overflow:hidden;background:#cad5dc}.idp-project-process-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.idp-project-process-overlay{position:absolute;right:28px;bottom:28px;left:28px;padding:24px;background:rgba(5,22,41,.88);backdrop-filter:blur(11px);color:#fff;border-left:3px solid var(--idp-gold)}.idp-project-process-overlay span{display:block;margin-bottom:7px;color:var(--idp-gold-light);font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.idp-project-process-overlay strong{font-family:var(--idp-serif);font-size:1.25rem;font-weight:500}.idp-project-gallery-band{padding-top:50px}.idp-project-gallery-strip{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:18px}.idp-project-gallery-strip figure{position:relative;min-height:410px;margin:0;overflow:hidden}.idp-project-gallery-strip figure:first-child{min-height:520px}.idp-project-gallery-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.idp-project-gallery-strip figure:hover img{transform:scale(1.04)}.idp-project-gallery-strip figcaption{position:absolute;right:0;bottom:0;left:0;display:flex;gap:16px;padding:22px;background:linear-gradient(0deg,rgba(4,17,32,.9),transparent);color:#fff;font-size:.8rem;font-weight:700}.idp-project-gallery-strip figcaption span{color:var(--idp-gold-light)}.idp-project-compliance{padding-top:35px}.idp-project-notice{display:grid;grid-template-columns:58px 1fr;gap:24px;align-items:start;padding:34px 38px;background:#f4f0e7;border:1px solid #e4d8bc}.idp-project-notice>span{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--idp-gold);color:#fff;font-family:var(--idp-serif);font-size:1.5rem}.idp-project-notice h2{margin:0 0 9px;color:var(--idp-ink);font-family:var(--idp-serif);font-size:1.75rem;font-weight:500}.idp-project-notice p{margin:0;color:#655d4e}.idp-project-cta{position:relative;overflow:hidden;padding:105px 0;background:linear-gradient(135deg,#071426,#0d3358);color:#fff}.idp-project-cta::before{content:"";position:absolute;right:-120px;top:-180px;width:520px;height:520px;border:1px solid rgba(231,207,153,.18);border-radius:50%;box-shadow:inset 0 0 0 80px rgba(231,207,153,.025),inset 0 0 0 160px rgba(231,207,153,.018)}.idp-project-cta-inner{position:relative;display:grid;grid-template-columns:1.2fr .55fr;gap:70px;align-items:center}.idp-project-cta h2{max-width:830px;margin:0 0 20px;color:#fff;font-family:var(--idp-serif);font-size:clamp(2.8rem,4.8vw,5.4rem);font-weight:500;line-height:1}.idp-project-cta p{max-width:760px;color:rgba(255,255,255,.67)}.idp-project-cta-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}.idp-project-cta-actions .idp-button{justify-content:space-between}

/* Per-project color accents */
.idp-project-detail-greenstab .idp-project-detail-shade{background:linear-gradient(90deg,rgba(6,28,25,.96),rgba(7,48,41,.74) 52%,rgba(7,48,41,.22)),linear-gradient(0deg,rgba(5,25,22,.88),transparent)}.idp-project-detail-greenstab .idp-project-features-section{background:#0b302b}.idp-project-detail-efo .idp-project-detail-shade{background:linear-gradient(90deg,rgba(7,19,36,.96),rgba(11,42,70,.72) 52%,rgba(11,42,70,.2)),linear-gradient(0deg,rgba(5,18,33,.9),transparent)}.idp-project-detail-curair .idp-project-detail-shade{background:linear-gradient(90deg,rgba(5,30,47,.96),rgba(5,75,91,.67) 52%,rgba(5,75,91,.16)),linear-gradient(0deg,rgba(4,24,39,.9),transparent)}.idp-project-detail-curair .idp-project-features-section{background:#073646}.idp-project-detail-dolphins .idp-project-detail-shade{background:linear-gradient(90deg,rgba(5,36,50,.95),rgba(5,102,104,.66) 52%,rgba(5,102,104,.16)),linear-gradient(0deg,rgba(4,27,39,.9),transparent)}.idp-project-detail-dolphins .idp-project-features-section{background:#07585b}.idp-project-detail-uyafa .idp-project-detail-shade{background:linear-gradient(90deg,rgba(22,17,35,.96),rgba(45,38,80,.7) 52%,rgba(45,38,80,.17)),linear-gradient(0deg,rgba(18,14,31,.9),transparent)}.idp-project-detail-uyafa .idp-project-features-section{background:#211d3d}

/* COOODEX 2.2 */
.idp-cooodex-hero{position:relative;min-height:820px;overflow:hidden;background:linear-gradient(135deg,#edf7f8 0%,#d9eeef 48%,#b9dde2 100%)}.idp-cooodex-hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 78% 36%,rgba(255,255,255,.9),transparent 25%),linear-gradient(120deg,transparent 55%,rgba(0,101,123,.08) 55%)}.idp-cooodex-bubbles i{position:absolute;border-radius:50%;border:1px solid rgba(14,111,132,.18);background:rgba(255,255,255,.25);animation:idpFloat 7s ease-in-out infinite}.idp-cooodex-bubbles i:nth-child(1){width:120px;height:120px;left:6%;top:20%}.idp-cooodex-bubbles i:nth-child(2){width:54px;height:54px;left:37%;bottom:17%;animation-delay:-2s}.idp-cooodex-bubbles i:nth-child(3){width:90px;height:90px;right:7%;top:15%;animation-delay:-3s}.idp-cooodex-bubbles i:nth-child(4){width:38px;height:38px;right:38%;top:28%;animation-delay:-4s}.idp-cooodex-hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center;padding-top:190px;padding-bottom:100px}.idp-cooodex-hero-copy .idp-kicker{color:#0b596c}.idp-cooodex-hero-copy .idp-kicker span{background:#0b778a}.idp-cooodex-hero-copy h1{max-width:800px;margin:0 0 25px;color:#0a2d3a;font-family:var(--idp-serif);font-size:clamp(3.8rem,6.5vw,7.2rem);font-weight:500;line-height:.94;letter-spacing:-.045em}.idp-cooodex-hero-copy>p{max-width:700px;color:#43646c;font-size:1.12rem;line-height:1.75}.idp-cooodex-hero-actions{display:flex;gap:25px;align-items:center;margin-top:35px}.idp-cooodex-hero .idp-hero-secondary{color:#0a4d5d}.idp-cooodex-trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.idp-cooodex-trust-row span{padding:9px 12px;border:1px solid rgba(10,77,93,.18);background:rgba(255,255,255,.45);color:#174f5d;font-size:.7rem;font-weight:800}.idp-cooodex-product-stage{position:relative;min-height:590px;display:grid;place-items:center}.idp-cooodex-product-stage img{position:relative;z-index:3;max-width:92%;max-height:590px;object-fit:contain;filter:drop-shadow(0 35px 40px rgba(12,77,91,.24))}.idp-cooodex-ring{position:absolute;width:490px;height:490px;border:1px solid rgba(5,101,121,.24);border-radius:50%;box-shadow:inset 0 0 0 75px rgba(255,255,255,.16),inset 0 0 0 150px rgba(255,255,255,.1)}.idp-cooodex-o3{position:absolute;right:0;top:50px;color:rgba(9,84,102,.14);font-family:var(--idp-serif);font-size:9rem}.idp-cooodex-o3 sub{font-size:.35em}.idp-cooodex-stage-label{position:absolute;z-index:4;right:10px;bottom:30px;padding:19px 22px;background:#073948;color:#fff;border-top:3px solid #76c8d2}.idp-cooodex-stage-label strong{display:block;font-family:var(--idp-serif);font-size:1.45rem}.idp-cooodex-stage-label span{display:block;margin-top:4px;color:#a9e0e4;font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.idp-cooodex-routine{background:#fff}.idp-cooodex-routine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:50px}.idp-cooodex-routine-grid article{min-height:360px;padding:30px;background:#f0f8f8;border:1px solid #dcecec;transition:transform .3s,box-shadow .3s}.idp-cooodex-routine-grid article:hover{transform:translateY(-7px);box-shadow:0 24px 60px rgba(9,76,90,.12)}.idp-cooodex-routine-grid>article>span{color:#118095;font-size:.7rem;font-weight:800}.idp-cooodex-routine-icon{width:78px;height:78px;margin:60px 0 35px;border:1px solid #85c8d0;border-radius:50%;position:relative}.idp-cooodex-routine-icon::before,.idp-cooodex-routine-icon::after{content:"";position:absolute;background:#2ca0b1}.idp-cooodex-routine-icon::before{width:28px;height:1px;left:24px;top:38px}.idp-cooodex-routine-icon::after{width:1px;height:28px;left:38px;top:24px}.idp-cooodex-routine-grid h3{margin:0 0 14px;color:#0a3442;font-family:var(--idp-serif);font-size:1.7rem;font-weight:500}.idp-cooodex-routine-grid p{color:#5c7379}.idp-cooodex-proof-band{padding:110px 0;background:linear-gradient(135deg,#063746,#0a6070);color:#fff}.idp-cooodex-proof-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:center}.idp-cooodex-proof-grid h2{margin:0 0 24px;color:#fff;font-family:var(--idp-serif);font-size:clamp(2.9rem,4.8vw,5.4rem);font-weight:500;line-height:1}.idp-cooodex-proof-grid p{color:rgba(255,255,255,.7)}.idp-cooodex-proof-cards{display:grid;grid-template-columns:repeat(3,1fr)}.idp-cooodex-proof-cards div{min-height:220px;padding:25px 20px;border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:flex-end}.idp-cooodex-proof-cards span{margin-bottom:auto;color:#8ed5dd;font-size:.65rem;font-weight:800}.idp-cooodex-proof-cards strong{font-family:var(--idp-serif);font-size:1.35rem}.idp-cooodex-proof-cards small{margin-top:7px;color:rgba(255,255,255,.55)}.idp-cooodex-comparison{background:#fff}.idp-cooodex-comparison-table{margin-top:45px;border-top:3px solid #13879a;box-shadow:var(--idp-shadow)}.idp-cooodex-comparison-table>div{display:grid;grid-template-columns:1.1fr 1fr 1fr;border-bottom:1px solid var(--idp-line)}.idp-cooodex-comparison-table span,.idp-cooodex-comparison-table strong{padding:18px 22px;border-right:1px solid var(--idp-line);font-size:.86rem}.idp-cooodex-comparison-table strong:last-child{border-right:0;color:var(--idp-muted);font-weight:600}.idp-cooodex-comparison-table .is-head{background:#083846;color:#fff}.idp-cooodex-comparison-table .is-head strong{color:#fff}.idp-cooodex-comparison-table>div:not(.is-head) strong:nth-child(2){color:#08778a;background:#f1fafb}

/* Contact 2.2 */
.idp-contact-hero-v2{min-height:720px}.idp-contact-hero-glow{position:absolute;right:-12%;top:-40%;width:760px;height:760px;border-radius:50%;background:radial-gradient(circle,rgba(47,143,179,.27),transparent 64%)}.idp-contact-topic-chip{display:inline-flex;margin-bottom:17px;padding:8px 12px;background:var(--idp-gold);color:#071426;font-size:.65rem;font-weight:900;letter-spacing:.14em}.idp-contact-hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:34px}.idp-contact-hero-phone{color:#fff;font-size:.83rem;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:4px}.idp-contact-path-grid article a{display:inline-block;margin-top:18px;color:var(--idp-gold-dark);font-size:.75rem;font-weight:800;text-decoration:none}.idp-contact-direct-band{background:var(--idp-ivory);padding:32px 0}.idp-contact-direct-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--idp-line)}.idp-contact-direct-grid>a{position:relative;display:flex;flex-direction:column;min-height:130px;padding:25px 28px;background:#fff;text-decoration:none;transition:background .3s}.idp-contact-direct-grid>a:hover{background:#f8f4ea}.idp-contact-direct-grid span{color:var(--idp-gold-dark);font-size:.64rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.idp-contact-direct-grid strong{margin-top:20px;color:var(--idp-ink);font-family:var(--idp-serif);font-size:1.4rem;font-weight:500}.idp-contact-direct-grid i{position:absolute;right:24px;bottom:22px;color:var(--idp-gold);font-style:normal}.idp-press-form-banner{display:grid;grid-template-columns:86px 1fr;gap:20px;align-items:center;margin:-10px -10px 28px;padding:20px 22px;background:#0b2441;color:#fff;border-left:4px solid var(--idp-gold)}.idp-press-form-banner>span{display:grid;place-items:center;height:58px;background:var(--idp-gold);color:#08182c;font-size:.68rem;font-weight:900;letter-spacing:.12em}.idp-press-form-banner strong{font-family:var(--idp-serif);font-size:1.35rem}.idp-press-form-banner p{margin:5px 0 0;color:rgba(255,255,255,.65);font-size:.82rem}.idp-press-fields{display:none;grid-template-columns:1fr 1fr;gap:18px;padding:20px;background:#f4f7fa;border:1px solid #dde5ec}.idp-press-fields.is-visible{display:grid}.idp-field small{display:block;margin-top:7px;color:var(--idp-muted);font-size:.72rem}.idp-form-submit-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:28px}.idp-form-submit-row p{margin:0;color:var(--idp-muted);font-size:.75rem}.idp-form-submit-row p span{display:inline-grid;place-items:center;width:20px;height:20px;margin-right:7px;border-radius:50%;background:#e5f3ec;color:#187454}.idp-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}

@keyframes idpFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes idpOrbit{from{transform:rotate(0)}to{transform:rotate(360deg)}}

@media(max-width:1120px){.idp-project-editorial-card,.idp-project-editorial-card:nth-child(1),.idp-project-editorial-card:nth-child(6){grid-column:span 6}.idp-project-detail-hero-layout{grid-template-columns:1fr .35fr}.idp-project-detail-emblem{width:220px;height:220px}.idp-project-feature-grid{grid-template-columns:repeat(2,1fr)}.idp-project-feature-grid article{min-height:340px}.idp-cooodex-hero-grid{grid-template-columns:1fr 1fr}.idp-cooodex-product-stage{min-height:500px}.idp-cooodex-ring{width:400px;height:400px}}
@media(max-width:900px){.idp-projects-manifesto-grid,.idp-projects-dolphins-grid,.idp-project-story-grid,.idp-project-process-grid,.idp-project-cta-inner,.idp-cooodex-hero-grid,.idp-cooodex-proof-grid{grid-template-columns:1fr}.idp-projects-dolphins-symbol{min-height:260px}.idp-projects-dolphins-symbol span{font-size:9rem}.idp-project-detail-hero-layout{grid-template-columns:1fr;padding-bottom:170px}.idp-project-detail-emblem{display:none}.idp-project-detail-highlights{grid-template-columns:1fr;transform:translateY(68%)}.idp-project-anchor-nav{padding-top:180px;top:72px}.idp-project-anchor-nav .idp-container>span{display:none}.idp-project-story{padding-top:110px}.idp-project-story-media{min-height:600px;max-width:680px}.idp-project-gallery-strip{grid-template-columns:1fr 1fr}.idp-project-gallery-strip figure:first-child{grid-column:1/3}.idp-project-cta-actions{max-width:480px}.idp-cooodex-hero-grid{padding-top:170px}.idp-cooodex-product-stage{min-height:480px}.idp-cooodex-proof-cards{max-width:650px}.idp-contact-direct-grid{grid-template-columns:1fr}.idp-contact-direct-grid>a{min-height:105px}}
@media(max-width:700px){.idp-projects-hero-slider,.idp-projects-hero-slider .idp-hero-slide{min-height:690px}.idp-projects-slide-title{font-size:clamp(2.8rem,13vw,4.4rem)}.idp-projects-manifesto{padding:75px 0}.idp-project-editorial-card,.idp-project-editorial-card:nth-child(1),.idp-project-editorial-card:nth-child(6){grid-column:span 12}.idp-project-editorial-media,.idp-project-editorial-card:nth-child(1) .idp-project-editorial-media,.idp-project-editorial-card:nth-child(6) .idp-project-editorial-media{min-height:310px}.idp-project-detail-hero{min-height:720px}.idp-project-detail-hero-layout{padding-top:160px;padding-bottom:175px}.idp-project-detail-copy h1{font-size:clamp(3rem,14vw,4.7rem)}.idp-project-detail-lead{font-size:1rem}.idp-project-detail-actions{align-items:flex-start;flex-direction:column}.idp-project-detail-highlights div{padding:17px 18px}.idp-project-anchor-nav{display:none}.idp-project-story{padding-top:220px}.idp-project-story-media{min-height:500px}.idp-project-story-main{inset:0 35px 55px 0}.idp-project-story-small{width:56%;height:230px;border-width:7px}.idp-project-story-label{top:20px;right:5px;width:145px}.idp-project-feature-grid{grid-template-columns:1fr}.idp-project-feature-grid article{min-height:300px}.idp-project-feature-symbol{margin:45px 0 30px}.idp-project-process-visual{min-height:460px}.idp-project-gallery-strip{grid-template-columns:1fr}.idp-project-gallery-strip figure,.idp-project-gallery-strip figure:first-child{grid-column:auto;min-height:330px}.idp-project-notice{grid-template-columns:1fr;padding:27px 24px}.idp-project-cta{padding:80px 0}.idp-cooodex-hero{min-height:auto}.idp-cooodex-hero-grid{padding-top:150px}.idp-cooodex-hero-copy h1{font-size:clamp(3rem,14vw,4.7rem)}.idp-cooodex-hero-actions{align-items:flex-start;flex-direction:column}.idp-cooodex-product-stage{min-height:390px}.idp-cooodex-product-stage img{max-height:410px}.idp-cooodex-ring{width:300px;height:300px}.idp-cooodex-o3{font-size:6rem}.idp-cooodex-routine-grid{grid-template-columns:1fr}.idp-cooodex-routine-grid article{min-height:290px}.idp-cooodex-routine-icon{margin:40px 0 28px}.idp-cooodex-proof-cards{grid-template-columns:1fr}.idp-cooodex-proof-cards div{min-height:140px}.idp-cooodex-comparison-table{overflow-x:auto}.idp-cooodex-comparison-table>div{min-width:700px}.idp-contact-hero-v2{min-height:650px}.idp-contact-hero-actions{align-items:flex-start;flex-direction:column}.idp-press-form-banner{grid-template-columns:1fr}.idp-press-form-banner>span{width:86px}.idp-press-fields{grid-template-columns:1fr}.idp-form-submit-row{align-items:flex-start;flex-direction:column}}

/* === Contact, legal notice and earthquake relief 2.3.0 =================== */
.idp-legal-page,
.idp-earthquake-page { background: #fff; }

/* Professional legal notice */
.idp-legal-hero {
  position: relative;
  min-height: 570px;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  background:
    radial-gradient(circle at 78% 22%, rgba(199,163,90,.24), transparent 24%),
    linear-gradient(135deg, #08182c 0%, #0c2a4b 55%, #102f51 100%);
  color: #fff;
}
.idp-legal-hero-grid {
  position: absolute; inset: 0; opacity: .12;
  background-image:
    linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px);
  background-size: 86px 86px;
  mask-image: linear-gradient(90deg, #000, transparent 86%);
}
.idp-legal-hero-glow {
  position: absolute; width: 570px; height: 570px; right: -110px; bottom: -270px;
  border: 1px solid rgba(231,207,153,.26); border-radius: 50%;
  box-shadow: 0 0 0 95px rgba(231,207,153,.045), 0 0 0 190px rgba(231,207,153,.025);
}
.idp-legal-hero-content { position: relative; z-index: 2; padding-top: 190px; padding-bottom: 88px; }
.idp-legal-hero h1 {
  max-width: 900px; margin: 0 0 24px; color: #fff; font-family: var(--idp-serif);
  font-size: clamp(4rem, 8vw, 8rem); font-weight: 500; line-height: .9; letter-spacing: -.05em;
}
.idp-legal-hero-content > p:last-child { max-width: 760px; margin: 0; color: rgba(255,255,255,.72); font-size: 1.08rem; }
.idp-legal-content { background: linear-gradient(180deg, #f5f2eb 0, #fff 420px); }
.idp-legal-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 72px; align-items: start; }
.idp-legal-index {
  position: sticky; top: 110px; display: flex; flex-direction: column; padding: 27px 0;
  border-top: 3px solid var(--idp-gold); border-bottom: 1px solid rgba(11,23,41,.14);
}
.idp-legal-index > span { margin-bottom: 18px; color: var(--idp-muted); font-size: .68rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.idp-legal-index a { padding: 11px 0; color: var(--idp-ink); font-size: .84rem; font-weight: 750; text-decoration: none; border-bottom: 1px solid rgba(11,23,41,.08); }
.idp-legal-index a:hover { color: var(--idp-gold); transform: translateX(4px); }
.idp-legal-sections { display: grid; gap: 25px; }
.idp-legal-card {
  display: grid; grid-template-columns: 86px minmax(0,1fr); gap: 32px; padding: 46px 50px;
  background: rgba(255,255,255,.96); border: 1px solid var(--idp-line); box-shadow: 0 14px 44px rgba(11,27,52,.055);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.idp-legal-card:hover { transform: translateY(-4px); border-color: rgba(199,163,90,.5); box-shadow: 0 26px 65px rgba(11,27,52,.1); }
.idp-legal-card-number { color: var(--idp-gold); font-family: var(--idp-serif); font-size: 2.25rem; line-height: 1; border-right: 1px solid var(--idp-line); }
.idp-legal-card h2 { margin: 0 0 22px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2rem,3vw,3.25rem); font-weight: 500; line-height: 1.05; }
.idp-legal-card h3 { margin: 30px 0 10px; color: var(--idp-ink); font-size: 1rem; }
.idp-legal-card p { color: var(--idp-muted); }
.idp-legal-card address { margin: 0 0 27px; color: var(--idp-text); font-style: normal; font-size: 1.04rem; }
.idp-legal-contact-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.idp-legal-contact-grid a { display: flex; flex-direction: column; padding: 17px 19px; background: var(--idp-mist); text-decoration: none; }
.idp-legal-contact-grid span { color: var(--idp-muted); font-size: .67rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.idp-legal-contact-grid strong { margin-top: 5px; color: var(--idp-ink); overflow-wrap: anywhere; }
.idp-legal-data { display: grid; grid-template-columns: minmax(170px,.52fr) 1fr; margin: 0; border-top: 1px solid var(--idp-line); }
.idp-legal-data dt,.idp-legal-data dd { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--idp-line); }
.idp-legal-data dt { color: var(--idp-muted); font-size: .78rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.idp-legal-data dd { color: var(--idp-ink); font-weight: 700; }
.idp-legal-review-note { display: grid; grid-template-columns: 48px 1fr; gap: 18px; align-items: center; padding: 22px 25px; background: #fff8e7; border: 1px solid #ecd69e; }
.idp-legal-review-note > span { display: grid; place-items: center; width: 42px; height: 42px; color: #694f13; border: 1px solid #d3ad4e; border-radius: 50%; font-weight: 900; }
.idp-legal-review-note p { margin: 0; color: #66562e; font-size: .82rem; }

/* Earthquake project */
.idp-earthquake-hero { position: relative; min-height: 790px; display: flex; align-items: stretch; overflow: hidden; background: #071629; color: #fff; }
.idp-earthquake-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.035); }
.idp-earthquake-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,16,30,.96) 0%,rgba(7,25,44,.83) 52%,rgba(8,27,47,.28) 100%),linear-gradient(0deg,rgba(4,13,25,.8),transparent 52%); }
.idp-earthquake-lines { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(120deg,transparent 44%,rgba(255,255,255,.35) 44.2%,transparent 44.4%),linear-gradient(60deg,transparent 65%,rgba(199,163,90,.7) 65.2%,transparent 65.4%); }
.idp-earthquake-hero-layout { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 70px; align-items: center; padding-top: 185px; padding-bottom: 110px; }
.idp-earthquake-hero h1 { max-width: 900px; margin: 0 0 28px; color: #fff; font-family: var(--idp-serif); font-size: clamp(4rem,7.3vw,8rem); font-weight: 500; line-height: .92; letter-spacing: -.045em; }
.idp-earthquake-lead { max-width: 790px; margin: 0; color: rgba(255,255,255,.75); font-size: clamp(1.05rem,1.7vw,1.3rem); }
.idp-earthquake-emblem { position: relative; display: grid; place-items: center; width: 315px; height: 315px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; animation: idpFloat 7s ease-in-out infinite; }
.idp-earthquake-emblem::before { content:""; position:absolute; inset:28px; border:1px solid rgba(199,163,90,.5); border-radius:50%; }
.idp-earthquake-emblem span { color: #fff; font-family: var(--idp-serif); font-size: 5rem; letter-spacing: -.08em; }
.idp-earthquake-emblem i { position:absolute; width:10px; height:10px; background:var(--idp-gold); border-radius:50%; box-shadow:0 0 25px rgba(199,163,90,.7); }
.idp-earthquake-emblem i:nth-child(2){top:18px;left:50%}.idp-earthquake-emblem i:nth-child(3){right:18px;top:50%}
.idp-earthquake-principles { position: relative; z-index: 4; margin-top: -64px; }
.idp-earthquake-principle-grid { display: grid; grid-template-columns: repeat(3,1fr); background: #fff; box-shadow: var(--idp-shadow); }
.idp-earthquake-principle-grid article { min-height: 250px; padding: 34px 35px; border-right: 1px solid var(--idp-line); }
.idp-earthquake-principle-grid article:last-child { border-right: 0; }
.idp-earthquake-principle-grid article > span { color: var(--idp-gold); font-size: .7rem; font-weight: 900; letter-spacing: .12em; }
.idp-earthquake-principle-grid h2 { margin: 48px 0 13px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: 1.75rem; font-weight: 500; }
.idp-earthquake-principle-grid p { margin: 0; color: var(--idp-muted); font-size: .87rem; }
.idp-earthquake-story { padding-top: 145px; background: linear-gradient(180deg,#fff,#f7f4ed); }
.idp-earthquake-story-grid { display: grid; grid-template-columns: minmax(0,.95fr) minmax(0,1.05fr); gap: 100px; align-items: center; }
.idp-earthquake-media { position: relative; min-height: 680px; }
.idp-earthquake-media figure { position: absolute; margin: 0; overflow: hidden; box-shadow: var(--idp-shadow); }
.idp-earthquake-media figure:first-child { inset: 0 110px 110px 0; }
.idp-earthquake-media figure:nth-child(2) { right: 0; bottom: 0; width: 53%; height: 48%; border: 10px solid #fff; }
.idp-earthquake-media img { width: 100%; height: 100%; object-fit: cover; }
.idp-earthquake-media > div { position: absolute; left: 25px; bottom: 28px; z-index: 3; display: flex; flex-direction: column; padding: 20px 24px; background: var(--idp-navy); color: #fff; }
.idp-earthquake-media > div strong { font-family: var(--idp-serif); font-size: 1.25rem; }
.idp-earthquake-media > div span { color: var(--idp-gold-light); font-size: .68rem; letter-spacing: .08em; }
.idp-earthquake-story h2,.idp-earthquake-partners h2 { margin: 0 0 25px; color: var(--idp-ink); font-family: var(--idp-serif); font-size: clamp(2.7rem,4.4vw,5rem); font-weight: 500; line-height: 1.02; }
.idp-earthquake-story blockquote { position: relative; margin: 34px 0 0; padding: 25px 0 0 65px; color: var(--idp-navy); font-family: var(--idp-serif); font-size: 1.4rem; line-height: 1.35; border-top: 1px solid var(--idp-line); }
.idp-earthquake-story blockquote span { position: absolute; left: 0; top: 15px; color: var(--idp-gold); font-size: 4.5rem; line-height: 1; }
.idp-earthquake-phases { background: linear-gradient(135deg,#08182c,#10375e); color:#fff; }
.idp-earthquake-phases .idp-section-head h2 { color:#fff; }
.idp-earthquake-phases .idp-section-head > p { color:rgba(255,255,255,.65); }
.idp-earthquake-phase-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:55px; border:1px solid rgba(255,255,255,.16); }
.idp-earthquake-phase-grid article { min-height:390px; padding:35px; border-right:1px solid rgba(255,255,255,.16); transition:background .3s ease; }
.idp-earthquake-phase-grid article:last-child { border-right:0; }
.idp-earthquake-phase-grid article:hover { background:rgba(255,255,255,.055); }
.idp-earthquake-phase-grid article > span { color:var(--idp-gold-light); font-size:.7rem; font-weight:900; letter-spacing:.12em; }
.idp-earthquake-phase-grid h3 { margin:135px 0 20px; color:#fff; font-family:var(--idp-serif); font-size:2rem; font-weight:500; }
.idp-earthquake-phase-grid p { color:rgba(255,255,255,.65); }
.idp-earthquake-partners { background:#fff; }
.idp-earthquake-partner-grid { display:grid; grid-template-columns:1fr .8fr; gap:95px; align-items:center; }
.idp-earthquake-checklist { padding:42px; background:var(--idp-ivory); border-top:4px solid var(--idp-gold); }
.idp-earthquake-checklist strong { display:block; margin-bottom:22px; color:var(--idp-ink); font-family:var(--idp-serif); font-size:1.55rem; }
.idp-earthquake-checklist ul { margin:0; padding:0; list-style:none; }
.idp-earthquake-checklist li { position:relative; padding:14px 0 14px 34px; border-bottom:1px solid rgba(11,23,41,.1); }
.idp-earthquake-checklist li::before { content:"✓"; position:absolute; left:0; color:var(--idp-green); font-weight:900; }

/* Prominent earthquake link on projects page */
.idp-earthquake-project-band { position:relative; overflow:hidden; padding:110px 0; background-image:var(--idp-earthquake-image); background-size:cover; background-position:center; color:#fff; }
.idp-earthquake-project-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,17,32,.96),rgba(7,28,49,.79) 62%,rgba(7,28,49,.5)); }
.idp-earthquake-project-content { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(270px,.55fr); gap:75px; align-items:end; }
.idp-earthquake-project-content h2 { max-width:880px; margin:0 0 24px; color:#fff; font-family:var(--idp-serif); font-size:clamp(3rem,5vw,5.8rem); font-weight:500; line-height:.98; }
.idp-earthquake-project-content p { max-width:820px; margin:0; color:rgba(255,255,255,.72); }
.idp-earthquake-project-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }

@media (max-width: 980px) {
  .idp-legal-layout { grid-template-columns: 1fr; }
  .idp-legal-index { position: static; display:grid; grid-template-columns:repeat(2,1fr); gap:0 24px; }
  .idp-legal-index > span { grid-column:1/-1; }
  .idp-earthquake-hero-layout { grid-template-columns:1fr; }
  .idp-earthquake-emblem { display:none; }
  .idp-earthquake-principle-grid { grid-template-columns:1fr; }
  .idp-earthquake-principle-grid article { min-height:auto; border-right:0; border-bottom:1px solid var(--idp-line); }
  .idp-earthquake-principle-grid h2 { margin-top:25px; }
  .idp-earthquake-story-grid,.idp-earthquake-partner-grid,.idp-earthquake-project-content { grid-template-columns:1fr; }
  .idp-earthquake-media { max-width:680px; }
  .idp-earthquake-phase-grid { grid-template-columns:1fr; }
  .idp-earthquake-phase-grid article { min-height:auto; border-right:0; border-bottom:1px solid rgba(255,255,255,.16); }
  .idp-earthquake-phase-grid h3 { margin-top:55px; }
}
@media (max-width: 700px) {
  .idp-legal-hero { min-height:500px; }
  .idp-legal-hero-content { padding-top:155px; padding-bottom:65px; }
  .idp-legal-hero h1 { font-size:clamp(3.3rem,17vw,5.3rem); }
  .idp-legal-index { grid-template-columns:1fr; }
  .idp-legal-card { grid-template-columns:1fr; gap:20px; padding:30px 23px; }
  .idp-legal-card-number { padding-bottom:15px; border-right:0; border-bottom:1px solid var(--idp-line); }
  .idp-legal-contact-grid,.idp-legal-data { grid-template-columns:1fr; }
  .idp-legal-data dd { padding-top:0; }
  .idp-earthquake-hero { min-height:700px; }
  .idp-earthquake-hero-layout { padding-top:160px; padding-bottom:95px; }
  .idp-earthquake-hero h1 { font-size:clamp(3.1rem,15vw,5.2rem); }
  .idp-earthquake-principles { margin-top:-35px; }
  .idp-earthquake-story { padding-top:100px; }
  .idp-earthquake-media { min-height:500px; }
  .idp-earthquake-media figure:first-child { inset:0 35px 55px 0; }
  .idp-earthquake-media figure:nth-child(2) { width:58%; height:42%; border-width:7px; }
  .idp-earthquake-media > div { left:12px; bottom:12px; padding:15px 17px; }
  .idp-earthquake-story blockquote { padding-left:48px; font-size:1.15rem; }
  .idp-earthquake-checklist { padding:30px 24px; }
  .idp-earthquake-project-band { padding:80px 0; }
  .idp-earthquake-project-content h2 { font-size:clamp(2.7rem,13vw,4.5rem); }
}

/* === Reliability and layout corrections 2.4.0 =========================== */
/* Keep important interactive elements above decorative slider layers. */
.idp-projects-hero-slider .idp-hero-layout,
.idp-projects-hero-slider .idp-hero-copy,
.idp-projects-hero-slider .idp-hero-actions,
.idp-project-detail-copy,
.idp-project-detail-actions,
.idp-contact-hero-content,
.idp-contact-form-column {
  position: relative;
  z-index: 25;
}
.idp-projects-hero-pattern,
.idp-project-detail-grid,
.idp-project-detail-shade,
.idp-contact-hero-grid,
.idp-contact-hero-glow,
.idp-contact-orbit {
  pointer-events: none;
}
.idp-projects-hero-slider .idp-hero-controls { z-index: 40; pointer-events: none; }
.idp-projects-hero-slider .idp-hero-controls button { pointer-events: auto; }
.idp-projects-hero-slider .idp-hero-copy { padding-bottom: 74px; }
.idp-projects-hero-slider .idp-hero-actions { display: flex; flex-wrap: wrap; gap: 16px 24px; }
.idp-projects-hero-slider .idp-hero-actions a,
.idp-project-detail-actions a { pointer-events: auto; }

/* Give the detailed project hero sufficient room so CTA buttons never collide
   with the lower highlight cards. */
.idp-project-detail-hero { min-height: 900px; }
.idp-project-detail-hero-layout { padding-top: 230px; padding-bottom: 225px; }
.idp-project-detail-copy { max-width: 920px; }
.idp-project-detail-actions { margin-top: 34px; }
.idp-project-detail-bg,
.idp-project-story-media img,
.idp-project-process-visual img,
.idp-project-gallery-strip img,
.idp-project-editorial-media img {
  image-rendering: auto;
  -ms-interpolation-mode: bicubic;
}

/* UYAFA uses a split-screen hero. Existing 1024px photos are therefore not
   stretched across a 1920px-wide canvas and remain visibly sharper. */
.idp-project-detail-uyafa .idp-project-detail-bg {
  left: 44%;
  width: 56%;
  transform: none;
  background-position: center center;
  background-size: cover;
}
.idp-project-detail-uyafa .idp-project-detail-shade {
  background:
    linear-gradient(90deg, #061426 0%, #07182c 43%, rgba(7,24,44,.88) 51%, rgba(7,24,44,.28) 78%, rgba(7,24,44,.16) 100%),
    linear-gradient(0deg, rgba(4,15,29,.82), transparent 55%);
}
.idp-project-detail-uyafa .idp-project-detail-copy { max-width: 760px; }
.idp-project-detail-uyafa .idp-project-detail-copy h1 { max-width: 760px; }

/* Critical content must not disappear when a cache/minifier delays theme.js. */
.idp-contact-page-v2 [data-reveal],
.idp-project-detail-uyafa .idp-project-detail-copy[data-reveal] {
  opacity: 1;
  transform: none;
}

/* Contact form: guaranteed visible, clearly separated and easy to use. */
.idp-contact-grid-page-pro { position: relative; }
.idp-contact-form-column { display: block; min-width: 0; opacity: 1 !important; transform: none !important; }
.idp-contact-form-column .idp-form-shell {
  display: block;
  background: #f7f9fc;
  border: 1px solid #dfe6ee;
  border-top: 5px solid var(--idp-gold);
  box-shadow: 0 30px 80px rgba(5,22,42,.14);
}
.idp-contact-form-column .idp-contact-form { display: block; }
.idp-contact-form-column .idp-button[type="submit"] {
  min-width: 230px;
  justify-content: center;
  border: 0;
  cursor: pointer;
}

@media (max-width: 1100px) {
  .idp-project-detail-hero { min-height: 860px; }
  .idp-project-detail-hero-layout { padding-top: 205px; padding-bottom: 220px; }
  .idp-project-detail-uyafa .idp-project-detail-bg { left: 39%; width: 61%; }
}

@media (max-width: 900px) {
  .idp-project-detail-hero {
    display: block;
    min-height: auto;
    overflow: hidden;
  }
  .idp-project-detail-hero-layout {
    min-height: 760px;
    padding-top: 185px;
    padding-bottom: 95px;
  }
  .idp-project-detail-highlights {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    transform: none;
    grid-template-columns: 1fr;
    width: 100%;
    padding-bottom: 0;
  }
  .idp-project-detail-highlights div { box-shadow: none; border-bottom: 1px solid var(--idp-line); }
  .idp-project-story { padding-top: 105px; }
  .idp-project-detail-uyafa .idp-project-detail-bg {
    inset: 0;
    width: auto;
    background-position: 58% center;
  }
  .idp-project-detail-uyafa .idp-project-detail-shade {
    background: linear-gradient(90deg, rgba(4,15,29,.95), rgba(5,20,38,.70)), linear-gradient(0deg, rgba(4,15,29,.88), transparent 55%);
  }
  .idp-contact-grid-page-pro { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 700px) {
  .idp-projects-hero-slider,
  .idp-projects-hero-slider .idp-hero-slide { min-height: 820px; }
  .idp-projects-hero-slider .idp-hero-layout {
    align-items: flex-start;
    padding-top: 175px;
    padding-bottom: 180px;
  }
  .idp-projects-hero-slider .idp-hero-copy { padding-bottom: 0; }
  .idp-projects-hero-slider .idp-hero-copy h1,
  .idp-projects-hero-slider .idp-projects-slide-title {
    font-size: clamp(2.55rem, 12vw, 4rem);
    line-height: 1;
  }
  .idp-projects-hero-slider .idp-hero-actions,
  .idp-project-detail-actions {
    width: 100%;
    align-items: stretch;
  }
  .idp-projects-hero-slider .idp-hero-actions .idp-button,
  .idp-projects-hero-slider .idp-hero-actions .idp-hero-secondary,
  .idp-project-detail-actions .idp-button,
  .idp-project-detail-actions .idp-hero-secondary {
    width: 100%;
    min-height: 50px;
    justify-content: center;
    text-align: center;
  }
  .idp-project-detail-hero-layout {
    min-height: 790px;
    padding-top: 165px;
    padding-bottom: 78px;
  }
  .idp-project-detail-copy h1 { font-size: clamp(2.75rem, 13vw, 4.25rem); }
  .idp-project-story { padding-top: 80px; }
  .idp-contact-form-column .idp-form-shell { padding: 28px 20px; }
  .idp-field-grid { grid-template-columns: 1fr; }
  .idp-field-wide { grid-column: auto; }
  .idp-security-row { grid-template-columns: 1fr; }
  .idp-form-submit-row { align-items: stretch; }
  .idp-contact-form-column .idp-button[type="submit"] { width: 100%; min-width: 0; }
}


/* === EFO and project-width corrections 2.4.1 ============================ */
/* The former 50% translate pushed the information cards outside the hero.
   They now remain entirely inside the hero and cannot be clipped. */
.idp-project-detail-hero {
  min-height: 820px;
  overflow: hidden;
}
.idp-project-detail-hero-layout {
  min-height: 820px;
  align-items: center;
  padding-top: 120px;
  padding-bottom: 165px;
}
.idp-project-detail-copy {
  width: min(100%, 980px);
  max-width: 980px;
}
.idp-project-detail-copy h1 {
  max-width: 940px;
  margin-bottom: 24px;
  font-size: clamp(3.25rem, 5.35vw, 6.25rem);
  line-height: .98;
  overflow-wrap: anywhere;
}
.idp-project-detail-lead {
  max-width: 850px;
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.65;
}
.idp-project-detail-actions {
  position: relative;
  z-index: 80;
  margin-top: 32px;
  padding-bottom: 4px;
}
.idp-project-detail-actions .idp-button,
.idp-project-detail-actions .idp-hero-secondary {
  position: relative;
  z-index: 81;
}
.idp-project-detail-highlights {
  z-index: 60;
  bottom: 26px;
  transform: none;
  gap: 0;
}
.idp-project-detail-highlights div {
  min-height: 82px;
  padding: 20px 25px;
  box-shadow: 0 16px 40px rgba(3,18,34,.16);
}
.idp-project-anchor-nav {
  z-index: 30;
  top: 86px;
  padding-top: 0;
}
.idp-project-anchor-nav .idp-container {
  min-height: 68px;
}
.idp-project-story {
  padding-top: 118px;
}
#ueberblick, #schwerpunkte, #vorgehen, #projekt-anfrage { scroll-margin-top: 165px; }

/* Make the call-to-action readable in every header state. */
.idp-site-header:not(.is-overlay) .idp-header-cta,
.idp-site-header.is-stuck .idp-header-cta,
.idp-site-header.is-stuck.is-overlay .idp-header-cta {
  min-width: 184px;
  justify-content: center;
  white-space: nowrap;
  color: #fff !important;
  background: var(--idp-ink);
  border-color: var(--idp-ink);
}
.idp-site-header:not(.is-overlay) .idp-header-cta:hover,
.idp-site-header.is-stuck .idp-header-cta:hover {
  color: var(--idp-ink) !important;
  background: var(--idp-gold-light);
  border-color: var(--idp-gold-light);
}

/* Projects overview: full-width page canvas with a wider editorial grid. */
.idp-projects-page-v2 {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  --idp-container: 1600px;
}
.idp-projects-page-v2 > section {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.idp-projects-page-v2 .idp-container {
  width: min(calc(100% - 32px), var(--idp-container));
  max-width: none;
}
.idp-projects-hero-slider .idp-hero-layout {
  grid-template-columns: minmax(0, 1060px) minmax(100px, 1fr);
}
.idp-projects-portfolio-v2 .idp-section-head-split {
  grid-template-columns: minmax(0, 1.2fr) minmax(360px, .7fr);
  gap: 70px;
}
.idp-project-editorial-grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}
.idp-project-editorial-card {
  min-width: 0;
}

@media (max-width: 1180px) {
  .idp-project-detail-hero,
  .idp-project-detail-hero-layout { min-height: 790px; }
  .idp-project-detail-hero-layout {
    padding-top: 105px;
    padding-bottom: 165px;
  }
  .idp-project-detail-copy h1 { font-size: clamp(3rem, 6vw, 5.45rem); }
  .idp-projects-page-v2 .idp-container { width: min(calc(100% - 28px), 1120px); }
  .idp-projects-portfolio-v2 .idp-section-head-split { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 900px) {
  .idp-project-detail-hero { min-height: auto; overflow: hidden; }
  .idp-project-detail-hero-layout {
    min-height: 700px;
    padding-top: 155px;
    padding-bottom: 80px;
  }
  .idp-project-detail-highlights {
    position: relative;
    inset: auto;
    width: 100%;
    transform: none;
  }
  .idp-project-detail-highlights div { min-height: 72px; box-shadow: none; }
  .idp-project-anchor-nav { top: 72px; }
  .idp-project-story { padding-top: 92px; }
  .idp-projects-page-v2 .idp-container { width: min(calc(100% - 28px), 860px); }
}

@media (max-width: 700px) {
  .idp-project-detail-hero-layout {
    min-height: 650px;
    padding-top: 135px;
    padding-bottom: 58px;
  }
  .idp-project-detail-copy h1 {
    font-size: clamp(2.55rem, 12vw, 4rem);
    line-height: 1;
  }
  .idp-project-detail-actions { gap: 14px; }
  .idp-project-detail-highlights div { padding: 17px 18px; }
  .idp-projects-page-v2 .idp-container { width: min(calc(100% - 22px), 680px); }
  .idp-projects-hero-slider .idp-hero-layout { grid-template-columns: 1fr; }
  .idp-project-editorial-grid { gap: 18px; }
}


/* === Project overview reliability and full-width correction 2.4.2 ======== */
/* Progressive enhancement: content remains visible if optimization/cache
   prevents the animation script from running. */
[data-reveal] {
  opacity: 1;
  transform: none;
}
html.idp-reveal-ready [data-reveal] {
  opacity: 0;
  transform: translateY(22px);
}
html.idp-reveal-ready [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}
/* The actual project cards are never animation-dependent. */
.idp-projects-page-v2 .idp-project-editorial-card,
.idp-projects-page-v2 .idp-project-editorial-card[data-reveal] {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

body.idp-route-projects {
  overflow-x: hidden;
}
body.idp-route-projects .idp-main,
body.idp-route-projects .idp-projects-page-v2 {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
}
body.idp-route-projects .idp-projects-page-v2 > section {
  width: 100% !important;
  max-width: none !important;
}
body.idp-route-projects .idp-projects-page-v2 .idp-container {
  width: calc(100% - clamp(32px, 5vw, 88px)) !important;
  max-width: 1720px !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* Wider, calmer two-column project portfolio instead of cramped cards. */
.idp-projects-page-v2 .idp-project-editorial-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(22px, 2.2vw, 38px) !important;
  width: 100% !important;
}
.idp-projects-page-v2 .idp-project-editorial-card,
.idp-projects-page-v2 .idp-project-editorial-card:nth-child(1),
.idp-projects-page-v2 .idp-project-editorial-card:nth-child(6) {
  grid-column: auto !important;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
}
.idp-projects-page-v2 .idp-project-editorial-media,
.idp-projects-page-v2 .idp-project-editorial-card:nth-child(1) .idp-project-editorial-media,
.idp-projects-page-v2 .idp-project-editorial-card:nth-child(6) .idp-project-editorial-media {
  min-height: clamp(330px, 34vw, 520px) !important;
}
.idp-projects-page-v2 .idp-project-editorial-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: clamp(24px, 2.2vw, 38px);
}
.idp-projects-page-v2 .idp-project-editorial-body p {
  min-height: 0;
}
.idp-projects-page-v2 .idp-project-editorial-body .idp-card-link {
  margin-top: auto;
}
.idp-projects-page-v2 .idp-project-editorial-card.is-filtered-out {
  display: none !important;
}

@media (max-width: 980px) {
  body.idp-route-projects .idp-projects-page-v2 .idp-container {
    width: calc(100% - 32px) !important;
  }
  .idp-projects-page-v2 .idp-project-editorial-grid {
    grid-template-columns: 1fr !important;
  }
  .idp-projects-page-v2 .idp-project-editorial-media,
  .idp-projects-page-v2 .idp-project-editorial-card:nth-child(1) .idp-project-editorial-media,
  .idp-projects-page-v2 .idp-project-editorial-card:nth-child(6) .idp-project-editorial-media {
    min-height: clamp(300px, 62vw, 500px) !important;
  }
}

@media (max-width: 700px) {
  body.idp-route-projects .idp-projects-page-v2 .idp-container {
    width: calc(100% - 22px) !important;
  }
  .idp-projects-page-v2 .idp-section {
    padding-block: 78px;
  }
  .idp-projects-page-v2 .idp-project-editorial-media,
  .idp-projects-page-v2 .idp-project-editorial-card:nth-child(1) .idp-project-editorial-media,
  .idp-projects-page-v2 .idp-project-editorial-card:nth-child(6) .idp-project-editorial-media {
    min-height: 290px !important;
  }
}


/* === Full viewport project route correction 2.4.3 =======================
   The complete route must remain fluid even when a legacy theme wrapper,
   browser zoom or a cached Elementor layout applies a narrow max-width. */
html:has(body.idp-route-projects),
body.idp-route-projects {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: clip !important;
}

/* Escape any inherited boxed page wrapper. */
body.idp-route-projects #page,
body.idp-route-projects .site,
body.idp-route-projects .site-content,
body.idp-route-projects .content-area,
body.idp-route-projects .site-main,
body.idp-route-projects .elementor-location-header,
body.idp-route-projects .elementor-location-footer,
body.idp-route-projects .idp-site-header,
body.idp-route-projects .idp-main,
body.idp-route-projects .idp-site-footer {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.idp-route-projects .idp-utility-bar,
body.idp-route-projects .idp-navigation-bar,
body.idp-route-projects .idp-projects-page-v2,
body.idp-route-projects .idp-projects-page-v2 > section,
body.idp-route-projects .idp-site-footer > * {
  width: 100% !important;
  max-width: none !important;
}

/* No desktop max-width on this route: the design uses the full viewport. */
body.idp-route-projects .idp-site-header .idp-container,
body.idp-route-projects .idp-projects-page-v2 .idp-container,
body.idp-route-projects .idp-site-footer .idp-container {
  width: calc(100% - clamp(32px, 5vw, 96px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
  padding-inline: 0 !important;
}

/* Keep branding, navigation and CTA inside the fluid header. */
body.idp-route-projects .idp-navigation-inner {
  display: grid !important;
  grid-template-columns: minmax(220px, auto) minmax(0, 1fr) auto !important;
  column-gap: clamp(18px, 2.2vw, 42px) !important;
  align-items: center !important;
}
body.idp-route-projects .idp-primary-nav {
  min-width: 0 !important;
  margin-left: 0 !important;
}
body.idp-route-projects .idp-nav-list {
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
}
body.idp-route-projects .idp-nav-list > li > a {
  padding-inline: clamp(8px, .8vw, 15px) !important;
  white-space: nowrap !important;
}
body.idp-route-projects .idp-header-cta {
  position: relative !important;
  inset: auto !important;
  min-width: 184px !important;
  margin: 0 !important;
  justify-self: end !important;
}

/* The slider and portfolio must fill the new fluid canvas. */
body.idp-route-projects .idp-projects-hero-slider,
body.idp-route-projects .idp-projects-hero-slider .idp-hero-slide,
body.idp-route-projects .idp-projects-hero-slider .idp-hero-image,
body.idp-route-projects .idp-projects-portfolio-v2,
body.idp-route-projects .idp-project-editorial-grid {
  width: 100% !important;
  max-width: none !important;
}
body.idp-route-projects .idp-projects-hero-slider .idp-hero-layout {
  grid-template-columns: minmax(0, 1fr) minmax(80px, 18vw) !important;
}
body.idp-route-projects .idp-projects-hero-slider .idp-hero-copy {
  max-width: min(1080px, 72vw) !important;
}

/* Legacy inline/customizer widths cannot box the project page again. */
body.idp-route-projects [style*="max-width"].idp-container,
body.idp-route-projects [style*="width"].idp-container {
  max-width: none !important;
}

@media (max-width: 1180px) {
  body.idp-route-projects .idp-navigation-inner {
    display: flex !important;
  }
  body.idp-route-projects .idp-primary-nav {
    margin-left: auto !important;
  }
}

@media (max-width: 980px) {
  body.idp-route-projects .idp-site-header .idp-container,
  body.idp-route-projects .idp-projects-page-v2 .idp-container,
  body.idp-route-projects .idp-site-footer .idp-container {
    width: calc(100% - 32px) !important;
  }
  body.idp-route-projects .idp-projects-hero-slider .idp-hero-layout {
    grid-template-columns: 1fr !important;
  }
  body.idp-route-projects .idp-projects-hero-slider .idp-hero-copy {
    max-width: 100% !important;
  }
}

@media (max-width: 700px) {
  body.idp-route-projects .idp-site-header .idp-container,
  body.idp-route-projects .idp-projects-page-v2 .idp-container,
  body.idp-route-projects .idp-site-footer .idp-container {
    width: calc(100% - 22px) !important;
  }
}


/* === German-first editorial system and global layout 2.5.1 ============= */
html {
  width: 100%;
  min-width: 0;
  background: var(--idp-paper);
}
body {
  width: 100%;
  min-width: 0;
  max-width: none;
  overflow-x: clip;
  font-size: clamp(16px, .18vw + 15.4px, 18px);
  line-height: 1.72;
}
body,
button,
input,
textarea,
select {
  font-kerning: normal;
  font-variant-ligatures: common-ligatures;
}
.idp-site-header,
.idp-main,
.idp-site-footer,
.idp-page-main,
.idp-elementor-content {
  width: 100%;
  max-width: none;
}
.idp-container {
  width: min(calc(100% - clamp(28px, 5vw, 96px)), 1480px);
  max-width: none;
}
.idp-section {
  padding-block: clamp(78px, 8vw, 126px);
}

/* Balanced headings and readable paragraphs across theme and Elementor. */
.idp-main h1,
.idp-main h2,
.idp-main h3,
.idp-site-footer h2,
.idp-site-footer h3,
.elementor-heading-title {
  text-wrap: balance;
  overflow-wrap: break-word;
  hyphens: auto;
}
.idp-main p,
.idp-main li,
.idp-site-footer p,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li {
  text-wrap: pretty;
  overflow-wrap: break-word;
  hyphens: auto;
}
.idp-section-head h2,
.idp-profile-copy h2,
.idp-contact-intro h2,
.idp-contact-sidebar h2 {
  font-size: clamp(2.35rem, 4.2vw, 4.65rem);
  line-height: 1.02;
  letter-spacing: -.032em;
}
.idp-page-hero h1,
.idp-editorial-hero h1,
.idp-project-detail-copy h1,
.idp-contact-hero h1,
.idp-legal-hero h1,
.idp-earthquake-hero h1 {
  font-size: clamp(3rem, 5.8vw, 6.35rem);
  line-height: .98;
  letter-spacing: -.038em;
}
.idp-hero-copy h1 {
  max-width: 1060px;
  font-size: clamp(3.15rem, 6.1vw, 6.75rem);
  line-height: .96;
}
.idp-hero-lead,
.idp-editorial-lead,
.idp-project-detail-lead,
.idp-contact-hero-lead {
  max-width: 780px;
  font-size: clamp(1.03rem, .45vw + .92rem, 1.28rem);
  line-height: 1.67;
}
.idp-section-head-split > p,
.idp-section-head-split > div:last-child,
.idp-editorial-copy > p,
.idp-project-story-copy > p,
.idp-vision-layout p {
  max-width: 74ch;
}

/* Professional standard-page typography. */
.idp-prose {
  width: min(100%, 940px);
  margin-inline: auto;
  color: var(--idp-text);
  font-size: 1.04rem;
}
.idp-prose > :first-child { margin-top: 0; }
.idp-prose > :last-child { margin-bottom: 0; }
.idp-prose p,
.idp-prose ul,
.idp-prose ol,
.idp-prose blockquote {
  max-width: 76ch;
  margin-inline: 0;
}
.idp-prose p { margin-block: 0 1.4em; }
.idp-prose h2 {
  margin: 2em 0 .65em;
  color: var(--idp-ink);
  font-family: var(--idp-serif);
  font-size: clamp(2rem, 3vw, 3.25rem);
  font-weight: 500;
  line-height: 1.08;
}
.idp-prose h3 {
  margin: 1.8em 0 .55em;
  color: var(--idp-ink);
  font-size: clamp(1.25rem, 1.7vw, 1.65rem);
  line-height: 1.2;
}
.idp-prose ul,
.idp-prose ol { padding-left: 1.3em; }
.idp-prose li { margin-bottom: .55em; }
.idp-prose blockquote {
  margin-block: 2.2em;
  padding: 1.4em 1.6em;
  background: var(--idp-ivory);
  border-left: 4px solid var(--idp-gold);
  color: var(--idp-navy);
  font-family: var(--idp-serif);
  font-size: 1.22rem;
}

/* Elementor legacy content remains full-width, but text stays readable. */
.idp-elementor-content .elementor-section,
.idp-elementor-content .e-con,
.idp-elementor-content .e-con-inner {
  max-width: none;
}
.idp-elementor-content .elementor-widget-text-editor,
.idp-elementor-content .elementor-widget-heading {
  text-wrap: pretty;
}
.idp-elementor-content .elementor-widget-text-editor p {
  line-height: 1.72;
}

/* Header navigation: stable, spacious and aligned on all desktop widths. */
.idp-navigation-inner {
  display: grid;
  grid-template-columns: minmax(235px, .72fr) minmax(0, 1.7fr) auto;
  column-gap: clamp(22px, 3vw, 58px);
  align-items: center;
}
.idp-primary-nav { min-width: 0; }
.idp-nav-list {
  justify-content: center;
  gap: clamp(16px, 1.65vw, 32px);
}
.idp-nav-list > li > a {
  white-space: nowrap;
  font-size: clamp(.76rem, .16vw + .72rem, .86rem);
}
.idp-header-cta {
  min-width: 184px;
  justify-content: center;
  white-space: nowrap;
}

/* Buttons and cards use a consistent modern rhythm. */
.idp-button,
.idp-header-cta,
.idp-hero-secondary {
  min-height: 52px;
  padding-inline: clamp(20px, 2vw, 30px);
  letter-spacing: .055em;
}
.idp-project-card,
.idp-news-card,
.idp-role-card,
.idp-legal-card,
.idp-project-editorial-card,
.idp-form-shell {
  border-radius: 2px;
}
.idp-project-body p,
.idp-news-body p,
.idp-role-card p,
.idp-project-editorial-body p {
  line-height: 1.65;
}

/* Avoid old boxed wrappers from previously active WordPress themes. */
body > #page,
body > .site,
body .site-content,
body .content-area,
body .site-main {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

@media (max-width: 1180px) {
  .idp-navigation-inner {
    grid-template-columns: minmax(210px, .72fr) minmax(0, 1fr) auto;
    column-gap: 22px;
  }
  .idp-nav-list { gap: 15px; }
  .idp-header-cta { min-width: 160px; padding-inline: 18px; }
}

@media (max-width: 1040px) {
  .idp-navigation-inner {
    display: flex;
    justify-content: space-between;
  }
  .idp-menu-toggle { display: inline-flex; }
  .idp-header-cta { display: none; }
}

@media (max-width: 760px) {
  .idp-container { width: calc(100% - 32px); }
  .idp-section { padding-block: 76px; }
  .idp-utility-inner > p { display: none; }
  .idp-utility-inner { justify-content: flex-end; }
  .idp-utility-actions > a:first-child { display: none; }
  .idp-page-hero-content { padding-top: 148px; padding-bottom: 58px; }
  .idp-page-hero h1,
  .idp-editorial-hero h1,
  .idp-project-detail-copy h1,
  .idp-contact-hero h1,
  .idp-legal-hero h1,
  .idp-earthquake-hero h1 {
    font-size: clamp(2.55rem, 12vw, 4.25rem);
  }
  .idp-section-head h2,
  .idp-profile-copy h2,
  .idp-contact-intro h2,
  .idp-contact-sidebar h2 {
    font-size: clamp(2.15rem, 10vw, 3.45rem);
  }
  .idp-field-grid,
  .idp-contact-grid,
  .idp-contact-grid-page-pro,
  .idp-section-head-split {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .idp-form-shell { padding: 28px 20px; }
}

/* === Privacy policy and XeonEurope attribution 2.6.1 =================== */
.idp-privacy-hero {
  min-height: 590px;
  background:
    radial-gradient(circle at 82% 18%, rgba(199,163,90,.2), transparent 28%),
    linear-gradient(135deg, #071426 0%, #102943 58%, #173b58 100%);
}
.idp-privacy-status {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 30px;
  padding: 10px 15px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(5,18,34,.35);
  backdrop-filter: blur(8px);
}
.idp-privacy-status span {
  color: rgba(255,255,255,.58);
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.idp-privacy-status strong { color: #fff; font-size: .82rem; }
.idp-privacy-card { scroll-margin-top: 150px; }
.idp-privacy-card p { max-width: 920px; }
.idp-privacy-note {
  margin-top: 24px;
  padding: 15px 18px;
  border-left: 3px solid var(--idp-gold);
  background: #f8f5ed;
  font-size: .86rem;
}
.idp-privacy-rights {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 11px 24px;
  margin: 24px 0 26px;
  padding: 0;
  list-style: none;
}
.idp-privacy-rights li {
  position: relative;
  padding: 15px 16px 15px 43px;
  color: var(--idp-text);
  background: var(--idp-mist);
  border: 1px solid rgba(11,23,41,.07);
}
.idp-privacy-rights li::before {
  content: "✓";
  position: absolute;
  left: 16px;
  top: 15px;
  color: var(--idp-gold);
  font-weight: 900;
}
.idp-xeon-card {
  color: rgba(255,255,255,.78);
  background:
    radial-gradient(circle at 92% 10%, rgba(199,163,90,.22), transparent 30%),
    linear-gradient(135deg, #08172b, #112d48);
  border-color: rgba(199,163,90,.35);
}
.idp-xeon-card .idp-legal-card-number { color: var(--idp-gold-light); border-color: rgba(255,255,255,.15); }
.idp-xeon-card .idp-kicker { color: var(--idp-gold-light); }
.idp-xeon-card h2 a { color: #fff; text-decoration: none; }
.idp-xeon-card h2 a span { color: var(--idp-gold-light); font-size: .45em; vertical-align: top; }
.idp-xeon-card p { color: rgba(255,255,255,.73); }
.idp-xeon-link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  margin-top: 10px;
  color: var(--idp-gold-light);
  font-size: .76rem;
  font-weight: 850;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}
.idp-xeon-link:hover { color: #fff; }
.idp-footer-bottom-inner {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: center;
}
.idp-footer-bottom-inner > p { flex: 0 1 auto; }
.idp-xeon-credit { text-align: right; }
.idp-xeon-credit a {
  color: var(--idp-gold-light);
  font-weight: 750;
  text-decoration: none;
}
.idp-xeon-credit a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) {
  .idp-privacy-rights { grid-template-columns: 1fr; }
  .idp-footer-bottom-inner { align-items: flex-start; flex-direction: column; gap: 0; }
  .idp-xeon-credit { padding-top: 0 !important; text-align: left; }
}
@media (max-width: 600px) {
  .idp-privacy-hero { min-height: 520px; }
  .idp-privacy-status { margin-top: 22px; }
}

/* COOODEX original product photography (v2.6.1) */
.idp-cooodex-story-product,
.idp-cooodex-story-product-small {
  background: linear-gradient(145deg, #fff 0%, #edf7fa 100%);
}
.idp-cooodex-story-product img,
.idp-cooodex-story-product-small img {
  object-fit: contain;
  padding: clamp(24px, 4vw, 54px);
}
.idp-cooodex-application {
  scroll-margin-top: 128px;
  background:
    radial-gradient(circle at 90% 8%, rgba(78,178,199,.13), transparent 28%),
    linear-gradient(180deg, #f5fbfc 0%, #fff 100%);
}
.idp-cooodex-product-head { margin-bottom: 42px; }
.idp-cooodex-product-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  margin-bottom: clamp(72px, 8vw, 120px);
}
.idp-cooodex-product-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 520px;
  flex-direction: column;
  overflow: hidden;
  color: #0a3442;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(13,101,120,.14);
  box-shadow: 0 26px 70px rgba(12,69,82,.09);
  text-decoration: none;
  transition: transform .32s ease, box-shadow .32s ease, border-color .32s ease;
}
.idp-cooodex-product-card::after {
  content: "↗";
  position: absolute;
  top: 20px;
  right: 22px;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  color: #0a6070;
  background: #fff;
  border: 1px solid rgba(13,101,120,.16);
  border-radius: 50%;
  font-size: .88rem;
  font-weight: 900;
}
.idp-cooodex-product-card:hover {
  transform: translateY(-8px);
  border-color: rgba(13,101,120,.3);
  box-shadow: 0 34px 90px rgba(12,69,82,.16);
}
.idp-cooodex-product-card.is-featured {
  border-top: 4px solid #168ca0;
}
.idp-cooodex-product-tag {
  position: absolute;
  z-index: 2;
  top: 22px;
  left: 22px;
  padding: 8px 11px;
  color: #0b596c;
  background: rgba(225,247,250,.92);
  border: 1px solid rgba(20,134,153,.2);
  font-size: .64rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.idp-cooodex-product-card img {
  display: block;
  width: 100%;
  height: 390px;
  padding: 54px 34px 24px;
  object-fit: contain;
  background: linear-gradient(180deg, #fff 0%, #f4fafb 100%);
}
.idp-cooodex-product-card > div {
  display: flex;
  min-height: 112px;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 23px 26px;
  border-top: 1px solid rgba(13,101,120,.1);
}
.idp-cooodex-product-card strong {
  color: #0a3442;
  font-family: var(--idp-serif);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  font-weight: 550;
}
.idp-cooodex-product-card small {
  color: #627b82;
  font-size: .78rem;
}
.idp-cooodex-process-grid { align-items: stretch; }
.idp-cooodex-process-grid .idp-project-process-copy .idp-button { margin-top: 28px; }
.idp-cooodex-water-visual { min-height: 650px; background: #dff3f7; }
.idp-cooodex-water-visual img { object-position: center; }
.idp-xeon-credit strong { color: rgba(255,255,255,.78); font-weight: 650; }

@media (max-width: 980px) {
  .idp-cooodex-product-gallery { grid-template-columns: 1fr 1fr; }
  .idp-cooodex-product-card:first-child { grid-column: 1 / -1; }
  .idp-cooodex-product-card:first-child img { height: 440px; }
}
@media (max-width: 680px) {
  .idp-cooodex-product-gallery { grid-template-columns: 1fr; }
  .idp-cooodex-product-card:first-child { grid-column: auto; }
  .idp-cooodex-product-card,
  .idp-cooodex-product-card:first-child { min-height: 0; }
  .idp-cooodex-product-card img,
  .idp-cooodex-product-card:first-child img { height: 340px; padding: 48px 22px 20px; }
  .idp-cooodex-water-visual { min-height: 470px; }
}
