:root { --ixp-blue:#1A4F8D; --ixp-cyan:#0593C7; --ixp-electric:#11E8FE; --ixp-terracotta:#B9583F; --ixp-ink:#101820; --ixp-gray:#66717C; --ixp-line:#DCE3E9; --ixp-paper:#F7F8F5; --ixp-pale:#EAF3F8; --ixp-white:#fff; --ixp-max:1380px; --ixp-display:"Montserrat","Helvetica Neue",Arial,sans-serif; --ixp-body:"DM Sans","Helvetica Neue",Arial,sans-serif; --ixp-serif:"Instrument Serif",Georgia,serif; }
  body:has(#ix-projects-page) { margin:0!important; padding:0!important; background:var(--ixp-paper)!important; color:var(--ixp-ink)!important; font-family:var(--ixp-body)!important; }
  body:has(#ix-projects-page) .wp-site-blocks, body:has(#ix-projects-page) .wp-block-post-content, body:has(#ix-projects-page) .entry-content, #ix-projects-page { width:100%!important; max-width:none!important; margin:0!important; padding:0!important; }
  #ix-projects-page, #ix-projects-page * { box-sizing:border-box; }
  #ix-projects-page { overflow:hidden; background:var(--ixp-paper); color:var(--ixp-ink); font-family:var(--ixp-body); line-height:1.45; }
  #ix-projects-page a { color:inherit; text-decoration:none; }
  #ix-projects-page img { display:block; width:100%; max-width:100%; object-fit:cover; }
  #ix-projects-page button, #ix-projects-page input, #ix-projects-page select, #ix-projects-page textarea { font:inherit; }
  #ix-projects-page h1, #ix-projects-page h2, #ix-projects-page h3, #ix-projects-page p { overflow-wrap:anywhere; }
  .ixp-wrap { width:min(var(--ixp-max),calc(100% - 80px)); margin:0 auto; }
  .ixp-section { padding:108px 0; }
  .ixp-kicker { display:flex; align-items:center; gap:11px; margin:0 0 18px; color:var(--ixp-cyan); font:700 11px/1 var(--ixp-body); letter-spacing:.12em; text-transform:uppercase; }
  .ixp-kicker::before { width:29px; height:2px; background:currentColor; content:""; }
  .ixp-title { max-width:900px; margin:0; font:700 clamp(40px,4.45vw,67px)/1.04 var(--ixp-display); letter-spacing:0; text-wrap:balance; }
  .ixp-copy { max-width:590px; margin:0; color:var(--ixp-gray); font-size:17px; line-height:1.62; }
  .ixp-serif { color:var(--ixp-cyan); font-family:var(--ixp-serif); font-style:italic; font-weight:400; }
  .ixp-btn { display:inline-flex; min-height:54px; align-items:center; justify-content:center; gap:12px; padding:0 23px; border:1px solid var(--ixp-terracotta); border-radius:0; background:var(--ixp-terracotta); color:#fff!important; cursor:pointer; font:700 12px/1 var(--ixp-body); letter-spacing:.01em; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
  .ixp-btn::after { content:"->"; font-size:15px; }
  .ixp-btn:hover { border-color:var(--ixp-terracotta); background:var(--ixp-terracotta); transform:translateY(-2px); }
  .ixp-btn-blue { border-color:var(--ixp-terracotta); background:var(--ixp-terracotta); }
  .ixp-btn-blue:hover { border-color:#92442f; background:#92442f; }
  .ixp-btn-outline { border-color:rgba(255,255,255,.52); background:transparent; }
  .ixp-btn-outline:hover { border-color:var(--ixp-electric); background:var(--ixp-electric); color:var(--ixp-ink)!important; }
  .ixp-utility { background:var(--ixp-blue); color:#fff; }
  .ixp-utility-inner { display:flex; min-height:44px; align-items:center; justify-content:space-between; gap:24px; font:700 12px/1.3 var(--ixp-body); letter-spacing:.04em; text-transform:uppercase; }
  .ixp-utility-links { display:flex; align-items:center; gap:22px; }
  .ixp-utility a { color:#fff!important; }
  .ixp-nav { position:sticky; top:0; z-index:70; border-bottom:1px solid var(--ixp-line); background:rgba(247,248,245,.97); backdrop-filter:blur(12px); }
  .ixp-nav-inner { display:flex; min-height:94px; align-items:center; gap:42px; }
  .ixp-logo { display:inline-flex; flex-shrink:0; align-items:center; }
  .ixp-logo img { width:255px; height:60px; object-fit:contain!important; object-position:left center; }
  .ixp-menu { display:flex; flex:1; align-items:center; justify-content:center; gap:32px; }
  .ixp-menu > a, .ixp-menu-group > a { display:inline-flex; min-height:94px; align-items:center; color:var(--ixp-ink); font:700 14px/1 var(--ixp-body); letter-spacing:.04em; text-transform:uppercase; }
  .ixp-menu > a[aria-current="page"] { color:var(--ixp-blue); }
  .ixp-menu-group { position:relative; display:flex; flex-shrink:0; align-items:center; }
  .ixp-menu-group > a { padding-right:5px; }
  .ixp-submenu-toggle { display:inline-grid; width:24px; min-height:94px; place-items:center; border:0; background:transparent; color:var(--ixp-ink); cursor:pointer; }
  .ixp-submenu-toggle::before { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; content:""; transform:rotate(45deg) translate(-2px,-2px); transition:transform .18s ease; }
  .ixp-menu-group.is-open .ixp-submenu-toggle::before { transform:rotate(225deg) translate(-1px,-1px); }
  .ixp-menu > a:hover, .ixp-menu-group > a:hover, .ixp-submenu-toggle:hover { color:var(--ixp-blue); }
  .ixp-submenu { position:absolute; top:calc(100% - 12px); left:-16px; z-index:80; display:grid; width:292px; padding:8px; border:1px solid var(--ixp-line); background:#fff; box-shadow:0 18px 35px rgba(16,24,32,.14); opacity:0; pointer-events:none; transform:translateY(-7px); transition:opacity .18s ease,transform .18s ease,visibility .18s ease; visibility:hidden; }
  .ixp-submenu a { display:block; min-height:0; padding:13px 14px; color:var(--ixp-ink); font:600 13px/1.35 var(--ixp-body); }
  .ixp-submenu a:hover, .ixp-submenu a:focus-visible { background:var(--ixp-pale); color:var(--ixp-blue); }
  .ixp-menu-group:hover .ixp-submenu, .ixp-menu-group:focus-within .ixp-submenu, .ixp-menu-group.is-open .ixp-submenu { opacity:1; pointer-events:auto; transform:translateY(0); visibility:visible; }
  .ixp-menu-toggle { display:none; min-width:46px; min-height:42px; margin-left:auto; border:1px solid var(--ixp-line); background:transparent; color:var(--ixp-ink); cursor:pointer; font:700 11px/1 var(--ixp-body); }
  .ixp-hero { padding:72px 0 0; background:var(--ixp-paper); }
  .ixp-hero-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:end; }
  .ixp-hero-copy { padding:52px 0 96px; }
  .ixp-hero h1 { max-width:700px; margin:0; font:700 clamp(49px,5.2vw,82px)/.98 var(--ixp-display); letter-spacing:0; text-wrap:balance; }
  .ixp-hero-lead { max-width:555px; margin:29px 0 35px; color:var(--ixp-gray); font-size:18px; line-height:1.62; }
  .ixp-hero-note { max-width:360px; padding:18px 19px; border-left:3px solid var(--ixp-cyan); background:var(--ixp-pale); color:var(--ixp-ink); font-size:14px; line-height:1.52; }
  .ixp-hero-mosaic { display:grid; grid-template-columns:1.1fr .9fr; grid-template-rows:270px 270px; gap:3px; min-height:543px; }
  .ixp-hero-mosaic figure { position:relative; min-height:0; margin:0; overflow:hidden; background:var(--ixp-ink); }
  .ixp-hero-mosaic figure:first-child { grid-row:1 / span 2; }
  .ixp-hero-mosaic img { height:100%; transition:transform .4s ease; }
  .ixp-hero-mosaic figure:hover img { transform:scale(1.035); }
  .ixp-hero-mosaic figcaption { position:absolute; right:0; bottom:0; left:0; padding:26px 18px 16px; background:linear-gradient(transparent,rgba(16,24,32,.82)); color:#fff; font:700 10px/1.35 var(--ixp-body); letter-spacing:.1em; text-transform:uppercase; }
  .ixp-work { background:var(--ixp-white); }
  .ixp-work-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:end; margin-bottom:47px; }
  .ixp-filter { display:flex; flex-wrap:wrap; gap:9px; padding:19px 0; border-top:1px solid var(--ixp-line); border-bottom:1px solid var(--ixp-line); }
  .ixp-filter button { min-height:38px; padding:0 15px; border:1px solid var(--ixp-line); border-radius:0; background:var(--ixp-paper); color:var(--ixp-ink); cursor:pointer; font:700 11px/1 var(--ixp-body); letter-spacing:.05em; text-transform:uppercase; transition:color .2s ease,background .2s ease,border-color .2s ease; }
  .ixp-filter button:hover, .ixp-filter button.is-active { border-color:var(--ixp-blue); background:var(--ixp-blue); color:#fff; }
  .ixp-project-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; margin-top:28px; }
  .ixp-project { position:relative; display:flex; min-height:390px; flex-direction:column; justify-content:end; grid-column:span 4; overflow:hidden; background:var(--ixp-ink); color:#fff; transition:opacity .18s ease,transform .18s ease; }
  .ixp-project:nth-child(1) { grid-column:span 6; min-height:522px; }
  .ixp-project:nth-child(2) { grid-column:span 6; min-height:522px; }
  .ixp-project:nth-child(5) { grid-column:span 12; min-height:400px; }
  .ixp-project.is-hidden { display:none; }
  .ixp-project img { position:absolute; inset:0; height:100%; transition:transform .45s ease; }
  .ixp-project::after { position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,24,32,.03) 28%,rgba(16,24,32,.88)); content:""; }
  .ixp-project:hover img { transform:scale(1.04); }
  .ixp-project-copy { position:relative; z-index:1; padding:26px 28px 27px; }
  .ixp-project-meta { margin:0 0 12px; color:var(--ixp-electric); font:700 10px/1.4 var(--ixp-body); letter-spacing:.095em; text-transform:uppercase; }
  .ixp-project h3 { max-width:580px; margin:0; color:#fff; font:700 clamp(25px,2.3vw,39px)/1.07 var(--ixp-display); text-wrap:balance; }
  .ixp-project-action { display:inline-flex; align-items:center; gap:9px; margin-top:18px; color:#fff!important; font:700 12px/1.2 var(--ixp-body); }
  .ixp-project-action::after { color:var(--ixp-electric); content:"->"; font-size:15px; }
  .ixp-project-action:hover { color:var(--ixp-electric)!important; }
  .ixp-evidence { background:var(--ixp-ink); color:#fff; }
  .ixp-evidence-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; align-items:center; }
  .ixp-evidence .ixp-kicker { color:var(--ixp-electric); }
  .ixp-evidence .ixp-title { color:#fff; }
  .ixp-evidence .ixp-copy { color:rgba(255,255,255,.69); }
  .ixp-evidence-list { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(255,255,255,.22); border-left:1px solid rgba(255,255,255,.22); }
  .ixp-evidence-list article { min-height:177px; padding:26px 25px; border-right:1px solid rgba(255,255,255,.22); border-bottom:1px solid rgba(255,255,255,.22); }
  .ixp-evidence-list b { display:block; margin-bottom:13px; color:var(--ixp-electric); font:700 11px/1 var(--ixp-display); letter-spacing:.08em; }
  .ixp-evidence-list p { margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1.55; }
  .ixp-contact { background:var(--ixp-blue); color:#fff; }
  .ixp-contact-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:84px; align-items:center; }
  .ixp-contact .ixp-kicker { color:var(--ixp-electric); }
  .ixp-contact h2 { max-width:655px; margin:0 0 27px; color:#fff; font:700 clamp(42px,4.25vw,66px)/1.04 var(--ixp-display); text-wrap:balance; }
  .ixp-contact h2 .ixp-serif { color:var(--ixp-electric); }
  .ixp-contact-copy > p { max-width:580px; margin:0 0 39px; color:rgba(255,255,255,.79); font-size:17px; line-height:1.62; }
  .ixp-contact-email { display:inline-block; padding-bottom:5px; border-bottom:2px solid var(--ixp-electric); color:#fff!important; font:700 16px/1.25 var(--ixp-display); }
  .ixp-contact-form { padding:39px 40px 36px; border:1px solid rgba(255,255,255,.42); background:rgba(247,248,245,.09); }
  .ixp-form-note { margin:0 0 16px; color:rgba(255,255,255,.78); font-size:13px; line-height:1.5; }
  .ixp-cf7-shell .wpcf7 { width:100%; }
  .ixp-cf7-shell .wpcf7-form { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
  .ixp-cf7-shell .wpcf7-form p { display:contents; }
  .ixp-cf7-shell .wpcf7-form label { display:grid; gap:8px; color:#fff; font:700 11px/1.15 var(--ixp-body); letter-spacing:.08em; text-transform:uppercase; }
  .ixp-cf7-shell .wpcf7-form label:has(textarea), .ixp-cf7-shell .wpcf7-form .wpcf7-textarea, .ixp-cf7-shell .wpcf7-form .wpcf7-spinner, .ixp-cf7-shell .wpcf7-form .wpcf7-response-output { grid-column:1 / -1; }
  .ixp-cf7-shell .wpcf7-form input:not([type="submit"]), .ixp-cf7-shell .wpcf7-form select, .ixp-cf7-shell .wpcf7-form textarea { width:100%; min-height:52px; padding:12px 14px; border:1px solid rgba(255,255,255,.55); border-radius:0; background:var(--ixp-white); color:var(--ixp-ink); box-shadow:none; font:500 15px/1.35 var(--ixp-body); text-transform:none; }
  .ixp-cf7-shell .wpcf7-form textarea { min-height:140px; resize:vertical; }
  .ixp-cf7-shell .wpcf7-form input:focus, .ixp-cf7-shell .wpcf7-form select:focus, .ixp-cf7-shell .wpcf7-form textarea:focus { outline:2px solid var(--ixp-electric); outline-offset:2px; }
  .ixp-cf7-shell .wpcf7-form .wpcf7-submit { min-height:54px; padding:0 23px; border:1px solid var(--ixp-terracotta); border-radius:0; background:var(--ixp-terracotta); color:#fff; cursor:pointer; font:700 13px/1 var(--ixp-body); transition:background .2s ease,border-color .2s ease; }
  .ixp-cf7-shell .wpcf7-form .wpcf7-submit:hover { border-color:var(--ixp-terracotta); background:var(--ixp-terracotta); }
  .ixp-cf7-shell .wpcf7-form .wpcf7-response-output { margin:0!important; padding:12px!important; border-color:var(--ixp-electric)!important; color:#fff; font-size:13px; }
  .ixp-footer { background:var(--ixp-ink); color:#fff; }
  .ixp-footer-top { display:grid; grid-template-columns:1.32fr .85fr .85fr .85fr; gap:45px; padding:79px 0 55px; }
  .ixp-footer-logo { width:235px!important; height:76px; object-fit:contain!important; object-position:left center; }
  .ixp-footer-about p { max-width:400px; margin:24px 0 0; color:rgba(255,255,255,.64); font-size:15px; line-height:1.62; }
  .ixp-footer h3 { margin:0 0 20px; color:#fff; font:700 13px/1 var(--ixp-display); letter-spacing:.06em; text-transform:uppercase; }
  .ixp-footer-links { display:grid; gap:12px; }
  .ixp-footer-links a, .ixp-footer-links span { color:rgba(255,255,255,.66); font-size:14px; line-height:1.4; }
  .ixp-footer-links a:hover { color:var(--ixp-electric); }
  .ixp-footer-bottom { display:flex; justify-content:space-between; gap:28px; padding:19px 0 24px; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.52); font-size:12px; }
  .ixp-back-to-top { position:fixed; right:24px; bottom:24px; z-index:90; display:grid; width:48px; height:48px; place-items:center; border:1px solid var(--ixp-blue); border-radius:0; background:var(--ixp-blue); color:#fff; cursor:pointer; opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .2s ease,transform .2s ease,background .2s ease; font:500 23px/1 var(--ixp-display); }
  .ixp-back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
  .ixp-back-to-top:hover { border-color:var(--ixp-terracotta); background:var(--ixp-terracotta); }
  @media (max-width:1160px) { .ixp-wrap { width:min(var(--ixp-max),calc(100% - 56px)); } .ixp-nav-inner { gap:24px; } .ixp-menu { gap:21px; } .ixp-menu > a, .ixp-menu-group > a { font-size:12px; } .ixp-hero-grid, .ixp-work-head, .ixp-evidence-grid, .ixp-contact-grid { gap:55px; } }
  @media (max-width:900px) { .ixp-utility-inner { min-height:38px; font-size:10px; } .ixp-nav-inner { min-height:76px; } .ixp-logo img { width:205px; height:50px; } .ixp-menu-toggle { display:inline-grid; place-items:center; } .ixp-menu { position:absolute; top:100%; right:0; left:0; display:none; padding:14px 28px 22px; border-bottom:1px solid var(--ixp-line); background:var(--ixp-paper); box-shadow:0 18px 35px rgba(16,24,32,.12); } .ixp-nav.is-open .ixp-menu { display:grid; justify-items:start; gap:0; } .ixp-menu > a, .ixp-menu-group > a { min-height:48px; font-size:13px; } .ixp-menu-group { width:100%; display:grid; grid-template-columns:auto 42px; } .ixp-submenu-toggle { min-height:48px; } .ixp-submenu { position:static; grid-column:1 / -1; width:auto; margin:0 0 9px; box-shadow:none; opacity:1; pointer-events:auto; transform:none; visibility:visible; } .ixp-menu-group:not(.is-open) .ixp-submenu { display:none; } .ixp-hero { padding-top:28px; } .ixp-hero-grid, .ixp-work-head, .ixp-evidence-grid, .ixp-contact-grid { grid-template-columns:1fr; } .ixp-hero-copy { padding:48px 0 58px; } .ixp-hero-mosaic { grid-template-rows:250px 250px; } .ixp-work-head { margin-bottom:38px; } .ixp-project:nth-child(n) { grid-column:span 6; min-height:425px; } .ixp-evidence-list { max-width:720px; } .ixp-footer-top { grid-template-columns:1.3fr 1fr 1fr; } .ixp-footer-about { grid-column:1 / -1; } }
  @media (max-width:620px) { .ixp-wrap { width:calc(100% - 32px); } .ixp-section { padding:72px 0; } .ixp-utility-inner { align-items:start; padding:10px 0; } .ixp-utility-inner > span { max-width:195px; } .ixp-utility-links { display:grid; gap:3px; text-align:right; } .ixp-logo img { width:170px; } .ixp-hero h1 { font-size:48px; } .ixp-hero-mosaic { grid-template-columns:1fr 1fr; grid-template-rows:190px 190px; } .ixp-hero-mosaic figcaption { padding:22px 11px 10px; font-size:8px; } .ixp-filter { gap:7px; } .ixp-filter button { padding:0 11px; font-size:10px; } .ixp-project-grid { grid-template-columns:1fr; gap:12px; } .ixp-project:nth-child(n) { min-height:365px; grid-column:1; } .ixp-project-copy { padding:20px; } .ixp-project h3 { font-size:29px; } .ixp-evidence-list { grid-template-columns:1fr; } .ixp-evidence-list article { min-height:0; } .ixp-contact-form { padding:26px 20px; } .ixp-cf7-shell .wpcf7-form { grid-template-columns:1fr; } .ixp-cf7-shell .wpcf7-form label, .ixp-cf7-shell .wpcf7-form .wpcf7-textarea, .ixp-cf7-shell .wpcf7-form .wpcf7-spinner, .ixp-cf7-shell .wpcf7-form .wpcf7-response-output { grid-column:auto; } .ixp-footer-top { grid-template-columns:1fr 1fr; gap:36px 24px; padding:58px 0 44px; } .ixp-footer-bottom { display:grid; } .ixp-back-to-top { right:16px; bottom:16px; width:44px; height:44px; } }
  /* CF7 now wraps the short fields in .ix-cf7-grid. */
  .ixp-cf7-shell .wpcf7-form br { display:none; }
  .ixp-cf7-shell .wpcf7-form .ix-cf7-grid { display:grid; grid-column:1 / -1; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
  .ixp-cf7-shell .wpcf7-form .ix-cf7-grid > p { display:contents; }
  .ixp-cf7-shell .wpcf7-form .wpcf7-submit { grid-column:1 / -1; justify-self:stretch; width:100%; }
  @media (max-width:620px) { .ixp-cf7-shell .wpcf7-form .ix-cf7-grid { grid-template-columns:1fr; } }

/* Gutenberg bridge: preserve the original page classes while every item remains editable. */
[id^="ix-"] .wp-block-group,
[id^="ix-"] .wp-block-image,
[id^="ix-"] .wp-block-buttons,
[id^="ix-"] .wp-block-button,
[id^="ix-"] .wp-block-details {
  max-width:none;
  margin-top:0;
  margin-bottom:0;
}
[id^="ix-"] .wp-block-image { margin:0; }
[id^="ix-"] .ix-native-direct-image {
  width:100%;
  height:100%;
}
[id^="ix-"] .ix-native-direct-image > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
[id^="ix-"] .ix-native-inline-container { margin:0; }
[id^="ix-"] .ix-native-link-block,
[id^="ix-"] .ix-native-action-block { display:contents; margin:0; }
[id^="ix-"] .ix-native-link-block > a { color:inherit; }
[id^="ix-"] .ix-native-action-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 15px;
  border:1px solid currentColor;
  border-radius:0;
  background:transparent;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
#ix-projects-page .ixp-filter .ix-native-action-link {
  border-color:var(--ixp-line);
  background:var(--ixp-paper);
  color:var(--ixp-ink);
  font:700 11px/1 var(--ixp-body);
  letter-spacing:.05em;
  text-transform:uppercase;
}
#ix-projects-page .ixp-filter .ix-native-action-link:hover,
#ix-projects-page .ixp-filter .ix-native-action-link.is-active {
  border-color:var(--ixp-blue);
  background:var(--ixp-blue);
  color:#fff;
}
[id^="ix-"] details[class*="-faq-item"] > summary {
  cursor:pointer;
  list-style:none;
}
[id^="ix-"] details[class*="-faq-item"] > summary::-webkit-details-marker { display:none; }

