:root {
  --ibrs-navy: #07366d;
  --ibrs-navy-deep: #052a57;
  --ibrs-green: #007d61;
  --ibrs-sky: #e7f4fb;
  --ibrs-sky-deep: #c7e7f7;
  --ibrs-ink: #172b4d;
  --ibrs-muted: #52657e;
  --ibrs-surface: #ffffff;
  --ibrs-line: #cde1ed;
  --ibrs-radius: 16px;
  --ibrs-shadow: 0 20px 60px rgb(7 54 109 / 0.12);
  --ibrs-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ibrs-surface);
  color: var(--ibrs-ink);
  font-family: Aptos, Avenir Next, Segoe UI, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--ibrs-navy); font-weight: 760; letter-spacing: -0.046em; line-height: 0.98; }
h1 { font-size: clamp(2.75rem, 5.6vw, 5.7rem); max-width: 11ch; }
h2 { font-size: clamp(2rem, 3.6vw, 3.65rem); max-width: 15ch; }
h3 { font-size: 1.35rem; }
p { max-width: 66ch; }
address { font-style: normal; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 100; padding: .75rem 1rem; background: var(--ibrs-navy); color: #fff; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.shell { width: min(100% - 3rem, 1240px); margin-inline: auto; }
.kicker { margin-bottom: 1rem; color: var(--ibrs-green); font-size: .73rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.1rem;
  padding: .75rem 1.3rem;
  border: 1px solid var(--ibrs-green);
  border-radius: 999px;
  background: var(--ibrs-green);
  color: #fff;
  font-size: .94rem;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;
  transition: transform .25s var(--ibrs-ease), background .25s var(--ibrs-ease), border-color .25s var(--ibrs-ease);
}
.button--small { min-height: 2.35rem; padding: .48rem 1.15rem; font-size: .84rem; }
.button:hover, .button:focus-visible { border-color: var(--ibrs-navy); background: var(--ibrs-navy); transform: translateY(-2px); }
.button:active { transform: translateY(0) scale(.98); }
.text-link { display: inline-flex; gap: .5rem; align-items: center; color: var(--ibrs-navy); font-weight: 760; text-decoration: none; }
.text-link::after { content: '→'; color: var(--ibrs-green); transition: transform .25s var(--ibrs-ease); }
.text-link:hover::after, .text-link:focus-visible::after { transform: translateX(4px); }

.site-header { position: sticky; top: 0; z-index: 20; border-bottom: 1px solid rgb(7 54 109 / 0.08); background: rgb(255 255 255 / 0.94); backdrop-filter: blur(14px); }
.site-header__inner { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 1.75rem; }
.site-brand { display: inline-flex; align-items: center; flex: 0 0 auto; text-decoration: none; }
.site-mark { display: inline-grid; line-height: 1; }
.site-mark__abbr { color: var(--ibrs-navy); font-size: 2rem; font-weight: 850; letter-spacing: -.09em; }
.site-mark__abbr::first-letter { color: var(--ibrs-green); }
.site-mark__name { margin-top: .18rem; color: var(--ibrs-green); font-size: .56rem; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.site-logo { display: block; width: auto; height: 46px; max-height: 48px; object-fit: contain; }
.site-brand--footer { display: inline-flex; align-items: center; padding: .5rem .85rem; border-radius: 8px; background: #ffffff; box-shadow: 0 4px 14px rgb(0 0 0 / .15); }
.site-brand--footer .site-logo { height: 38px; }
.site-nav__list { display: flex; align-items: center; gap: clamp(.85rem, 1.6vw, 1.5rem); margin: 0; padding: 0; list-style: none; }
.site-nav__list li { position: relative; }
.site-nav__list a { color: var(--ibrs-ink); font-size: .84rem; font-weight: 720; text-decoration: none; white-space: nowrap; }
.site-nav__list .current-menu-item > a, .site-nav__list a:hover, .site-nav__list a:focus-visible { color: var(--ibrs-green); }
.site-nav__list .current-menu-ancestor > a, .site-nav__list .current-menu-parent > a { color: var(--ibrs-green); }

/* Dropdown Sub-menu Desktop */
.site-nav__list .menu-item-has-children > a { display: inline-flex; align-items: center; gap: .35rem; }
.site-nav__list .menu-item-has-children > a::after { display: inline-block; width: 5px; height: 5px; margin-top: -2px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--ibrs-ease); content: ''; opacity: .75; }
.site-nav__list .menu-item-has-children:hover > a::after, .site-nav__list .menu-item-has-children:focus-within > a::after { transform: rotate(-135deg) translateY(-2px); opacity: 1; }

.site-nav__list .sub-menu { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(8px); min-width: 220px; margin: 0; padding: .45rem 0; list-style: none; background: #fff; border: 1px solid rgb(7 54 109 / .1); border-radius: 10px; box-shadow: 0 14px 34px rgb(7 54 109 / .12), 0 2px 6px rgb(7 54 109 / .04); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .22s var(--ibrs-ease), transform .22s var(--ibrs-ease), visibility .22s; z-index: 50; }
.site-nav__list .sub-menu::before { position: absolute; top: -16px; right: 0; left: 0; height: 16px; content: ''; }
.site-nav__list .menu-item-has-children:hover > .sub-menu, .site-nav__list .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }

.site-nav__list .sub-menu li { display: block; margin: 0; padding: 0; border: 0; }
.site-nav__list .sub-menu a { display: flex; align-items: center; padding: .65rem 1.15rem; color: var(--ibrs-ink); font-size: .84rem; font-weight: 680; line-height: 1.35; white-space: nowrap; border-radius: 6px; margin: 0 .35rem; transition: background .18s var(--ibrs-ease), color .18s var(--ibrs-ease), padding-left .18s var(--ibrs-ease); }
.site-nav__list .sub-menu a:hover, .site-nav__list .sub-menu a:focus-visible { background: #f0f7f6; color: var(--ibrs-green); padding-left: 1.35rem; }
.site-nav__list .sub-menu .current-menu-item > a { color: var(--ibrs-green); font-weight: 780; background: #edf6f5; }

.site-nav__action--mobile { display: none; }
.site-header__actions { display: flex; align-items: center; gap: .75rem; flex: 0 0 auto; }
.site-header__cta { font-size: .84rem; font-weight: 750; white-space: nowrap; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 0; border: 1px solid var(--ibrs-line); border-radius: 50%; background: #fff; cursor: pointer; }
.menu-toggle span:not(.screen-reader-text) { display: block; width: 17px; height: 2px; margin: 4px auto; background: var(--ibrs-navy); transition: transform .2s var(--ibrs-ease); }

.home-hero { position: relative; overflow: hidden; min-height: min(740px, calc(100dvh - 72px)); background: linear-gradient(135deg, #f9fcff 0%, var(--ibrs-sky) 100%); }
.home-hero::before { position: absolute; top: -35vw; right: -24vw; width: 72vw; height: 72vw; border: 35px solid rgb(0 125 97 / 0.14); border-radius: 50%; content: ''; pointer-events: none; }
.home-hero__grid { display: grid; min-height: inherit; grid-template-columns: minmax(0, .9fr) minmax(360px, .9fr); align-items: center; gap: clamp(3rem, 7vw, 8rem); padding-block: clamp(2.5rem, 4vw, 4rem); }
.home-hero__content { position: relative; z-index: 1; }
.home-hero__content h1 { margin-bottom: 1.5rem; }
.home-hero__content > p:not(.kicker) { margin-bottom: 2rem; color: var(--ibrs-muted); font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.home-hero__media { position: relative; z-index: 1; justify-self: end; width: min(100%, 550px); }
.home-hero__media::after { position: absolute; right: -1.1rem; bottom: -1.1rem; z-index: -1; width: 78%; height: 46%; border-radius: var(--ibrs-radius); background: var(--ibrs-green); content: ''; }
.home-hero__media img { aspect-ratio: 5 / 4; width: 100%; border-radius: var(--ibrs-radius); box-shadow: var(--ibrs-shadow); object-fit: cover; object-position: center; }

.section { padding-block: clamp(4.5rem, 9vw, 8.5rem); }
.section--tint { background: var(--ibrs-sky); }
.section-heading { max-width: 680px; margin-bottom: clamp(2.4rem, 5vw, 4.5rem); }
.section-heading h2 { margin-bottom: 0; }
.section-heading p:not(.kicker) { color: var(--ibrs-muted); }
.intro-layout { display: grid; grid-template-columns: minmax(260px, .76fr) minmax(0, 1fr); align-items: center; gap: clamp(2.5rem, 10vw, 11rem); }
.intro-layout__media { width: min(100%, 385px); }
.intro-layout__media img { aspect-ratio: 4 / 5; border-radius: 50% 50% var(--ibrs-radius) var(--ibrs-radius); object-fit: cover; }
.intro-layout__copy { max-width: 570px; }
.intro-layout__copy h2 { margin-bottom: 1.25rem; }
.intro-layout__copy p { margin-bottom: 2rem; color: var(--ibrs-muted); font-size: 1.12rem; }
.service-teaser-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.service-teaser { display: flex; min-height: 260px; flex-direction: column; justify-content: flex-end; padding: 1.45rem; border: 1px solid var(--ibrs-line); border-radius: var(--ibrs-radius); background: #fff; text-decoration: none; transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); }
.service-teaser:nth-child(3) { background: var(--ibrs-navy); color: #fff; }
.service-teaser--wide { grid-column: span 2; min-height: 200px; }
.service-teaser span { margin-bottom: auto; color: var(--ibrs-green); font-size: .78rem; font-weight: 800; letter-spacing: .08em; }
.service-teaser:nth-child(3) span { color: #a8e4d5; }
.service-teaser strong { margin-bottom: .5rem; font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.05; }
.service-teaser small { max-width: 27ch; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.4; }
.service-teaser:nth-child(3) small { color: #d7e5f5; }
.service-teaser:hover, .service-teaser:focus-visible { border-color: var(--ibrs-green); box-shadow: 0 14px 30px rgb(7 54 109 / .12); transform: translateY(-5px); }
.commitment__grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(270px, .65fr); gap: clamp(2rem, 10vw, 10rem); align-items: end; }
.commitment__heading h2 { margin-bottom: 0; }
.commitment__copy { padding-bottom: .3rem; }
.commitment__copy p { color: var(--ibrs-muted); font-size: 1.05rem; }

.page-hero { overflow: hidden; padding-block: clamp(4rem, 7vw, 7rem); background: linear-gradient(135deg, var(--ibrs-sky) 0%, #fff 75%); }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .82fr); gap: clamp(2.5rem, 8vw, 9rem); align-items: center; }
.page-hero__content h1 { margin-bottom: 1.5rem; }
.page-hero__summary { margin-bottom: 0; color: var(--ibrs-muted); font-size: 1.1rem; }
.page-hero__media { position: relative; }
.page-hero__media::before { position: absolute; top: -10%; left: -10%; z-index: 0; width: 68%; height: 68%; border: 26px solid var(--ibrs-green); border-radius: 50%; content: ''; }
.page-hero__media img { position: relative; z-index: 1; aspect-ratio: 5 / 4; width: 100%; border-radius: var(--ibrs-radius); box-shadow: var(--ibrs-shadow); object-fit: cover; }
.story-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(260px, .75fr); gap: clamp(2.5rem, 11vw, 12rem); }
.story-layout__lead h2 { margin-bottom: 0; }
.story-layout__text { color: var(--ibrs-muted); font-size: 1.1rem; }
.purpose-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 4vw, 4rem); align-items: start; }
.purpose-card { padding: clamp(1.5rem, 4vw, 3.25rem); border-radius: var(--ibrs-radius); background: #fff; }
.purpose-card--offset { margin-top: clamp(2rem, 8vw, 7rem); background: var(--ibrs-navy); }
.purpose-card--offset h2, .purpose-card--offset p { color: #fff; }
.purpose-card--offset .kicker { color: #a8e4d5; }
.purpose-card h2 { font-size: clamp(1.7rem, 3vw, 2.7rem); }
.purpose-card p:not(.kicker) { margin-bottom: 0; color: var(--ibrs-muted); }
.service-list { display: grid; gap: 0; }
.service-row { display: grid; grid-template-columns: 100px minmax(210px, .8fr) minmax(0, 1fr); gap: 2rem; align-items: start; padding-block: clamp(2rem, 4.5vw, 4.25rem); border-bottom: 1px solid var(--ibrs-line); }
.service-row:first-child { border-top: 1px solid var(--ibrs-line); }
.service-row__number { color: var(--ibrs-green); font-size: .8rem; font-weight: 800; letter-spacing: .1em; }
.service-row h2 { margin: 0; font-size: clamp(1.65rem, 3.1vw, 3rem); }
.service-row p { margin: .35rem 0 0; color: var(--ibrs-muted); }
.product-catalogue__grid { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(320px, 1fr); gap: clamp(2.5rem, 10vw, 10rem); }
.product-catalogue__intro h2 { margin-bottom: 0; }
.product-list { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem 2rem; margin: 0; padding: 0; list-style: none; }
.product-list li { padding: .55rem 0; border-bottom: 1px solid var(--ibrs-line); color: var(--ibrs-navy); font-size: 1.06rem; font-weight: 680; }
.product-showcase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); align-items: stretch; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.product-reference { display: grid; grid-template-columns: minmax(220px, .85fr) minmax(0, 1.15fr); overflow: hidden; border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 18px rgb(7 54 109 / .05); transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); }
.product-reference:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgb(7 54 109 / .1); border-color: rgb(0 125 97 / .3); }
.product-reference--pko,
.product-reference--cpo { background: var(--ibrs-navy); border-color: var(--ibrs-navy); }
.product-reference__media { min-height: 0; overflow: hidden; display: grid; place-items: center; background: #f5f9fa; }
.product-reference--pko .product-reference__media,
.product-reference--cpo .product-reference__media { background: #0c2b4d; }
.product-reference__media img { width: 100%; height: 100%; object-fit: contain; object-position: center; transition: transform .55s var(--ibrs-ease); }
.product-reference:hover .product-reference__media img { transform: scale(1.03); }
.product-reference__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(1.5rem, 2.5vw, 2.25rem); }
.product-reference__copy .kicker { margin-bottom: 1rem; }
.product-reference__copy h2 { margin: 0 0 .85rem; font-size: clamp(1.45rem, 2.2vw, 2rem); line-height: 1.15; }
.product-reference__copy p:not(.kicker) { margin: 0; color: var(--ibrs-muted); font-size: .95rem; line-height: 1.6; }
.product-reference--pko .product-reference__copy h2,
.product-reference--pko .product-reference__copy p:not(.kicker),
.product-reference--cpo .product-reference__copy h2,
.product-reference--cpo .product-reference__copy p:not(.kicker) { color: #fff; }
.product-reference--pko .product-reference__copy .kicker,
.product-reference--cpo .product-reference__copy .kicker { color: #55d6be; }

/* Our Commitment Block */
.our-commitment-block { margin-top: clamp(2rem, 4vw, 3.5rem); padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 20px rgb(7 54 109 / .04); text-align: center; }
.our-commitment-block__graphic img { width: 100%; max-width: 1050px; height: auto; margin: 0 auto; display: block; }
.advantage-layout { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(0, 1fr); gap: clamp(3rem, 11vw, 11rem); align-items: start; }
.advantage-layout__intro { position: sticky; top: 110px; }
.advantage-layout__intro p { color: var(--ibrs-muted); }
.advantage-list { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: advantage; }
.advantage-list li { display: grid; grid-template-columns: 3.2rem 1fr; gap: .75rem; align-items: baseline; padding: 1.15rem 0 1.15rem; border-bottom: 1px solid var(--ibrs-line); color: var(--ibrs-ink); font-size: clamp(1.05rem, 1.75vw, 1.35rem); font-weight: 680; }
.advantage-list li::before { content: counter(advantage, decimal-leading-zero); counter-increment: advantage; color: var(--ibrs-green); font-size: .73rem; font-weight: 800; letter-spacing: .1em; }
.gallery-section { padding-block: clamp(3rem, 6vw, 6rem); }
.gallery-intro { max-width: 680px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.gallery-intro h2 { max-width: 14ch; margin-bottom: 1rem; }
.gallery-intro p { margin: 0; color: var(--ibrs-muted); font-size: 1.05rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.gallery-item { margin: 0; overflow: hidden; border: 1px solid rgb(7 54 109 / .08); border-radius: var(--ibrs-radius); background: var(--ibrs-sky); box-shadow: 0 4px 18px rgb(7 54 109 / .06); transition: transform .35s var(--ibrs-ease), box-shadow .35s var(--ibrs-ease), border-color .35s var(--ibrs-ease); }
.gallery-item:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgb(7 54 109 / .12); border-color: rgb(0 125 97 / .28); }
.gallery-item a { display: block; width: 100%; height: 100%; overflow: hidden; }
.gallery-item img { display: block; width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center; transition: transform .6s var(--ibrs-ease); }
.gallery-item:hover img { transform: scale(1.04); }
.gallery-item--13 { grid-column: span 2; }
.gallery-item--13 img { aspect-ratio: auto; height: 100%; }
.document-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.document-card { overflow: hidden; border: 1px solid var(--ibrs-line); border-radius: var(--ibrs-radius); background: #fff; text-decoration: none; transition: transform .25s var(--ibrs-ease), box-shadow .25s var(--ibrs-ease); }
.document-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: top; }
.document-card span { display: block; padding: .85rem 1rem; color: var(--ibrs-navy); font-size: .84rem; font-weight: 750; }
.document-card:hover, .document-card:focus-visible { box-shadow: var(--ibrs-shadow); transform: translateY(-4px); }
.contact-grid { display: grid; grid-template-columns: minmax(230px, .75fr) minmax(360px, 1fr); gap: clamp(3rem, 10vw, 10rem); }
.contact-details h2 { margin-bottom: 1.5rem; }
.contact-details p, .contact-details address { color: var(--ibrs-muted); font-size: 1.06rem; }
.contact-details a { color: var(--ibrs-navy); font-weight: 710; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.contact-form-wrap { padding: clamp(1.5rem, 4vw, 3.25rem); border-radius: var(--ibrs-radius); background: var(--ibrs-sky); }
.contact-form p { margin-bottom: 1.25rem; }
.contact-form label { display: block; margin-bottom: .45rem; color: var(--ibrs-ink); font-size: .86rem; font-weight: 750; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid #91b4c7; border-radius: 8px; background: #fff; color: var(--ibrs-ink); font: inherit; }
.contact-form input { min-height: 3rem; padding: .65rem .75rem; }
.contact-form textarea { padding: .75rem; resize: vertical; }
.contact-form input:focus, .contact-form textarea:focus { outline: 3px solid rgb(0 125 97 / .24); outline-offset: 2px; border-color: var(--ibrs-green); }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-notice { padding: .85rem 1rem; border-left: 4px solid var(--ibrs-navy); background: #fff; color: var(--ibrs-ink); }
.form-notice--success { border-color: var(--ibrs-green); }

/* --- News Index & Single Post Layout System --- */
.page-hero--news { padding-block: clamp(3rem, 5.5vw, 5rem); }
.page-hero--news .page-hero__content h1 { max-width: 22ch; }
.news-hero__topics { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.5rem; }
.news-topic-pill { display: inline-flex; align-items: center; padding: .4rem .95rem; border: 1px solid rgb(7 54 109 / .14); border-radius: 999px; background: #fff; color: var(--ibrs-navy); font-size: .8rem; font-weight: 720; text-decoration: none; transition: border-color .2s var(--ibrs-ease), background .2s var(--ibrs-ease), color .2s var(--ibrs-ease); }
.news-topic-pill--active { border-color: var(--ibrs-green); background: var(--ibrs-green); color: #fff; }

.section--news-list { padding-top: clamp(2rem, 4vw, 3.5rem); }
.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); }
.post-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgb(7 54 109 / .09); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 18px rgb(7 54 109 / .05); transition: transform .35s var(--ibrs-ease), box-shadow .35s var(--ibrs-ease), border-color .35s var(--ibrs-ease); }
.post-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgb(7 54 109 / .12); border-color: rgb(0 125 97 / .32); }
.post-card__image { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; background: var(--ibrs-sky); }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .6s var(--ibrs-ease); }
.post-card:hover .post-card__image img { transform: scale(1.04); }
.post-card__category { position: absolute; top: .85rem; left: .85rem; z-index: 2; padding: .32rem .7rem; border-radius: 4px; background: var(--ibrs-navy); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.post-card__meta { display: flex; align-items: center; gap: .45rem; margin: 1.25rem 1.4rem .5rem; color: var(--ibrs-muted); font-size: .78rem; font-weight: 650; }
.post-card__date { color: var(--ibrs-green); font-weight: 780; }
.post-card__divider { opacity: .45; }
.post-card__title { max-width: none; margin: 0 1.4rem .65rem; font-size: clamp(1.18rem, 1.6vw, 1.35rem); font-weight: 780; line-height: 1.32; letter-spacing: -.02em; }
.post-card__title a { color: var(--ibrs-navy); text-decoration: none; transition: color .2s var(--ibrs-ease); }
.post-card__title a:hover, .post-card__title a:focus-visible { color: var(--ibrs-green); }
.post-card__excerpt { margin: 0 1.4rem 1.25rem; color: var(--ibrs-muted); font-size: .92rem; line-height: 1.55; }
.post-card__link { margin: auto 1.4rem 1.4rem; padding-top: .85rem; border-top: 1px solid rgb(7 54 109 / .06); font-size: .86rem; }

/* Single Post Page Layout */
.single-post__header { padding-block: clamp(3rem, 5.5vw, 5rem); border-bottom: 1px solid rgb(7 54 109 / .08); background: linear-gradient(180deg, var(--ibrs-tint) 0%, #fff 100%); }
.single-post__breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1.25rem; color: var(--ibrs-muted); font-size: .84rem; font-weight: 650; }
.single-post__breadcrumb a { color: var(--ibrs-navy); text-decoration: none; transition: color .2s var(--ibrs-ease); }
.single-post__breadcrumb a:hover, .single-post__breadcrumb a:focus-visible { color: var(--ibrs-green); }
.single-post__breadcrumb-current { color: var(--ibrs-green); font-weight: 720; }
.single-post__meta-top { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-bottom: 1rem; }
.single-post__category { display: inline-block; padding: .32rem .75rem; border-radius: 4px; background: var(--ibrs-navy); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.single-post__meta-item { color: var(--ibrs-muted); font-size: .84rem; font-weight: 680; }
.single-post__meta-divider { color: var(--ibrs-muted); opacity: .4; }
.single-post__title { max-width: none; margin: 0 0 1.25rem; color: var(--ibrs-navy); font-size: clamp(2rem, 3.8vw, 3.35rem); font-weight: 850; letter-spacing: -.038em; line-height: 1.14; }
.single-post__lead { max-width: 68ch; margin: 0; color: var(--ibrs-muted); font-size: clamp(1.08rem, 1.45vw, 1.28rem); line-height: 1.55; }

.single-post__media-wrap { margin-top: clamp(2rem, 4vw, 3.5rem); margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.single-post__featured-image { margin: 0; overflow: hidden; border-radius: var(--ibrs-radius); box-shadow: 0 20px 48px rgb(7 54 109 / .11); }
.single-post__featured-image img { display: block; width: 100%; max-height: 560px; object-fit: cover; object-position: center; }

.single-post__layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: clamp(2.5rem, 5.5vw, 5.5rem); align-items: start; padding-bottom: clamp(3rem, 6vw, 6rem); }
.single-post__main { min-width: 0; }

/* Rich Post Typography */
.entry-content { color: var(--ibrs-ink); font-size: 1.06rem; line-height: 1.76; }
.entry-content h2 { max-width: none; margin: 2.5rem 0 1rem; color: var(--ibrs-navy); font-size: clamp(1.5rem, 2.2vw, 2.05rem); font-weight: 800; letter-spacing: -.025em; line-height: 1.22; }
.entry-content h3 { max-width: none; margin: 2rem 0 .75rem; color: var(--ibrs-navy); font-size: clamp(1.2rem, 1.6vw, 1.45rem); font-weight: 760; line-height: 1.3; }
.entry-content h4 { max-width: none; margin: 1.5rem 0 .5rem; color: var(--ibrs-navy); font-weight: 750; }
.entry-content p { max-width: none; margin: 0 0 1.45rem; }
.entry-content ul, .entry-content ol { margin: 0 0 1.75rem; padding-left: 1.4rem; }
.entry-content li { margin-bottom: .6rem; }
.entry-content li::marker { color: var(--ibrs-green); }
.entry-content strong { color: var(--ibrs-navy); font-weight: 780; }
.entry-content a { color: var(--ibrs-green); text-decoration-thickness: 1.5px; text-underline-offset: .2em; font-weight: 680; }
.entry-content a:hover { color: var(--ibrs-navy); }

/* Key Takeaways Callout Box */
.post-callout { margin: 0 0 2.5rem; padding: 1.5rem 1.75rem; border-left: 4px solid var(--ibrs-green); border-radius: 0 var(--ibrs-radius) var(--ibrs-radius) 0; background: linear-gradient(135deg, #f0f8f6 0%, var(--ibrs-tint) 100%); }
.post-callout__badge { margin-bottom: .85rem; color: var(--ibrs-green); font-size: .75rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.post-callout ul { margin: 0; padding-left: 1.2rem; }
.post-callout li { margin-bottom: .5rem; color: var(--ibrs-navy); font-size: .96rem; line-height: 1.55; }
.post-callout li:last-child { margin-bottom: 0; }

/* Table styling */
.entry-content table { width: 100%; margin: 1.75rem 0 2.25rem; border-collapse: separate; border-spacing: 0; font-size: .92rem; border-radius: 8px; overflow: hidden; border: 1px solid var(--ibrs-line); box-shadow: 0 2px 10px rgb(7 54 109 / .05); display: table; }
.entry-content th { padding: .9rem 1.1rem; background: var(--ibrs-navy); color: #fff; text-align: left; font-weight: 750; font-size: .84rem; letter-spacing: .02em; border-bottom: 2px solid rgba(85, 214, 190, 0.4); }
.entry-content td { padding: .85rem 1.1rem; border-bottom: 1px solid var(--ibrs-line); background: #fff; vertical-align: middle; }
.entry-content tr:last-child td { border-bottom: none; }
.entry-content tr:nth-child(even) td { background: #f8fafc; }

/* Single Post FAQ section */
.post-faq { margin-top: 3rem; padding-top: 2rem; border-top: 2px solid var(--ibrs-line); }
.post-faq h2 { max-width: none; margin-bottom: 1.25rem; }
.post-faq__list { display: grid; gap: .75rem; }
.post-faq__item { border: 1px solid rgb(7 54 109 / .1); border-radius: 10px; background: #fff; overflow: hidden; transition: border-color .2s var(--ibrs-ease); }
.post-faq__item summary { padding: 1.15rem 1.35rem; color: var(--ibrs-navy); font-size: 1.05rem; font-weight: 750; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.post-faq__item summary::-webkit-details-marker { display: none; }
.post-faq__item summary::after { content: '+'; font-size: 1.35rem; font-weight: 700; color: var(--ibrs-green); transition: transform .25s var(--ibrs-ease); line-height: 1; }
.post-faq__item[open] summary::after { transform: rotate(45deg); }
.post-faq__item[open] summary { color: var(--ibrs-green); border-bottom: 1px solid rgb(7 54 109 / .06); background: #fbfdfe; }
.post-faq__answer { padding: 1.15rem 1.35rem; }
.post-faq__answer p { margin: 0; color: var(--ibrs-muted); font-size: .95rem; line-height: 1.6; }

/* In-Article CTA Box */
.post-article-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem; margin-top: 2.75rem; margin-bottom: 2rem; padding: clamp(1.6rem, 3vw, 2.25rem); border-radius: var(--ibrs-radius); background: linear-gradient(135deg, var(--ibrs-navy) 0%, var(--ibrs-navy-deep) 100%); color: #fff; box-shadow: 0 16px 36px rgb(7 54 109 / .16); }
.post-article-cta__content { max-width: 500px; }
.post-article-cta__kicker { margin: 0 0 .4rem; color: var(--ibrs-green); font-size: .74rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.post-article-cta h3 { max-width: none; margin: 0 0 .5rem; color: #fff !important; font-size: clamp(1.25rem, 1.8vw, 1.55rem); font-weight: 800; line-height: 1.25; }
.post-article-cta p { max-width: none; margin: 0; color: #d0e3f4 !important; font-size: .94rem; line-height: 1.5; }
.post-article-cta .button,
.post-article-cta a.button,
.post-article-cta .post-article-cta__button { flex-shrink: 0; border: 1px solid var(--ibrs-green) !important; background: var(--ibrs-green) !important; color: #ffffff !important; font-size: .92rem; font-weight: 750; text-decoration: none !important; box-shadow: 0 4px 14px rgb(0 125 97 / .28); }
.post-article-cta .button:hover,
.post-article-cta a.button:hover,
.post-article-cta .post-article-cta__button:hover,
.post-article-cta .button:focus-visible,
.post-article-cta a.button:focus-visible,
.post-article-cta .post-article-cta__button:focus-visible { border-color: #ffffff !important; background: #ffffff !important; color: var(--ibrs-navy) !important; transform: translateY(-2px); }

/* Author Box */
.single-post__author-card { display: flex; align-items: center; gap: 1.35rem; margin-top: 3rem; padding: 1.45rem 1.65rem; border: 1px solid rgb(7 54 109 / .09); border-radius: var(--ibrs-radius); background: var(--ibrs-sky); }
.single-post__author-avatar { width: 56px; height: 56px; border-radius: 50%; background: var(--ibrs-navy); color: #fff; display: grid; place-items: center; font-weight: 850; font-size: 1.05rem; letter-spacing: -.04em; flex-shrink: 0; }
.single-post__author-role { margin: 0 0 .2rem; color: var(--ibrs-green); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.single-post__author-info h3 { margin: 0 0 .35rem; font-size: 1.05rem; font-weight: 780; color: var(--ibrs-navy); }
.single-post__author-info p:not(.single-post__author-role) { margin: 0; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.45; }

/* Sticky Sidebar */
.post-sidebar__sticky { position: sticky; top: calc(var(--ibrs-header-h, 72px) + 2rem); display: grid; gap: 1.5rem; }
.post-sidebar-card { padding: 1.5rem; border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 18px rgb(7 54 109 / .05); }
.post-sidebar-card__kicker { margin: 0 0 1rem; color: var(--ibrs-green); font-size: .74rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.post-sidebar-card__list { margin: 0; padding: 0; list-style: none; display: grid; gap: .95rem; }
.post-sidebar-card__list li { display: flex; flex-direction: column; gap: .15rem; padding-bottom: .85rem; border-bottom: 1px solid var(--ibrs-line); }
.post-sidebar-card__list li:last-child { padding-bottom: 0; border-bottom: 0; }
.post-sidebar-card__list span { color: var(--ibrs-muted); font-size: .76rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.post-sidebar-card__list strong { color: var(--ibrs-navy); font-size: .92rem; font-weight: 750; line-height: 1.35; }

.post-sidebar-cta { padding: 1.65rem 1.5rem; border: 1px solid rgb(0 125 97 / .24); border-radius: var(--ibrs-radius); background: linear-gradient(145deg, #f3faf8 0%, #e6f4f1 100%); }
.post-sidebar-cta__kicker { margin: 0 0 .5rem; color: var(--ibrs-green); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.post-sidebar-cta h3 { margin: 0 0 .6rem; color: var(--ibrs-navy); font-size: 1.15rem; font-weight: 800; line-height: 1.25; }
.post-sidebar-cta p { margin: 0 0 1.2rem; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.5; }
.post-sidebar-cta .button { width: 100%; justify-content: center; }

/* Related Posts */
.section--related-posts { padding-block: clamp(3rem, 6vw, 5.5rem); border-top: 1px solid var(--ibrs-line); }
.post-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.empty-state { max-width: 680px; margin-inline: auto; padding: clamp(2rem, 6vw, 5rem); border-radius: var(--ibrs-radius); background: var(--ibrs-sky); text-align: center; }
.empty-state h1, .empty-state h2, .empty-state p { margin-inline: auto; }
.empty-state .button { margin-top: .5rem; }
.navigation.pagination { margin-top: 3rem; }

.site-footer { padding-top: clamp(3.5rem, 7vw, 6rem); background: var(--ibrs-navy-deep); color: #dceaf7; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr .65fr .8fr; gap: clamp(2rem, 6vw, 6rem); padding-bottom: 3.5rem; }
.site-footer .site-mark__abbr { color: #fff; }
.site-footer .site-mark__name, .site-footer .kicker { color: #8ed8c7; }
.site-footer p { color: #c0d4e8; }
.site-footer h2 { color: #fff; font-size: 1rem; letter-spacing: 0; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li + li { margin-top: .6rem; }
.site-footer a { color: #dceaf7; text-decoration-color: rgb(220 234 247 / .55); text-underline-offset: .2em; }
.site-footer a:hover, .site-footer a:focus-visible { color: #8ed8c7; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1.5rem; padding-block: 1.25rem; border-top: 1px solid rgb(220 234 247 / .24); color: #b4c9df; font-size: .78rem; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ibrs-ease), transform .7s var(--ibrs-ease); }
.reveal:not(.is-visible).reveal--late { transition-delay: .12s; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 960px) {
  .shell { width: min(100% - 2.5rem, 1240px); }
  .site-header__inner { min-height: 66px; }
  .site-header__cta--desktop { display: none; }
  .menu-toggle { display: block; position: relative; z-index: 2; }
  .site-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: grid; visibility: hidden; padding: 1rem 1.25rem 1.5rem; border-bottom: 1px solid var(--ibrs-line); background: #fff; opacity: 0; transform: translateY(-.5rem); transition: opacity .2s var(--ibrs-ease), transform .2s var(--ibrs-ease), visibility .2s; }
  .site-header.is-open .site-nav { visibility: visible; opacity: 1; transform: translateY(0); }
  .site-nav__list { display: grid; gap: 0; }
  .site-nav__list > li { border-bottom: 1px solid var(--ibrs-line); }
  .site-nav__list a { display: block; padding: .8rem 0; }
  .site-nav__list .menu-item-has-children > a { display: flex; justify-content: space-between; align-items: center; }
  .site-nav__list .menu-item-has-children > a::after { margin-right: .5rem; }
  .site-nav__list .sub-menu { position: static; top: auto; left: auto; transform: none; min-width: 0; margin: 0 0 .65rem 0; padding: .2rem 0 .2rem .85rem; border: 0; border-left: 2px solid rgb(0 125 97 / .28); border-radius: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; pointer-events: auto; display: grid; gap: 0; }
  .site-nav__list .sub-menu::before { display: none; }
  .site-nav__list .sub-menu li { border-bottom: 0; }
  .site-nav__list .sub-menu a { padding: .45rem 0 .45rem .5rem; margin: 0; font-size: .84rem; color: var(--ibrs-muted); font-weight: 640; border-radius: 0; }
  .site-nav__list .sub-menu a:hover, .site-nav__list .sub-menu a:focus-visible, .site-nav__list .sub-menu .current-menu-item > a { background: transparent; color: var(--ibrs-green); padding-left: .5rem; }
  .site-nav__action--mobile { display: block; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--ibrs-line); }
  .site-nav__action--mobile .button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 2.95rem; padding: .75rem 1.25rem; border: 1px solid var(--ibrs-green); border-radius: 999px; background: var(--ibrs-green); color: #fff; font-size: .94rem; font-weight: 750; line-height: 1; text-align: center; text-decoration: none; box-shadow: 0 4px 14px rgb(0 125 97 / .2); }
  .site-nav__action--mobile .button:hover, .site-nav__action--mobile .button:focus-visible { border-color: var(--ibrs-navy); background: var(--ibrs-navy); color: #fff; }
  .site-header.is-open .menu-toggle span:nth-of-type(2) { transform: translateY(3px) rotate(45deg); }
  .site-header.is-open .menu-toggle span:nth-of-type(3) { transform: translateY(-3px) rotate(-45deg); }
  .home-hero__grid, .page-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(300px, .75fr); gap: 2.5rem; }
  .home-hero__media { width: 100%; }
  .service-teaser-grid { grid-template-columns: repeat(2, 1fr); }
  .service-teaser, .service-teaser--wide { grid-column: auto; min-height: 220px; }
  .service-teaser--wide { grid-column: span 2; }
  .product-showcase { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); }
  .document-grid { grid-template-columns: repeat(3, 1fr); }
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .single-post__layout { grid-template-columns: 1fr; gap: 3rem; }
  .post-sidebar__sticky { position: static; }
}

@media (max-width: 720px) {
  html { scroll-behavior: auto; }
  .shell, .single-post__content { width: min(100% - 2rem, 1240px); }
  h1 { max-width: 11ch; font-size: clamp(2.55rem, 12vw, 4rem); }
  h2 { max-width: 17ch; }
  .post-grid, .post-grid--related { grid-template-columns: 1fr; }
  .single-post__title { max-width: none; }
  .single-post__author-card { flex-direction: column; text-align: center; gap: 1rem; }
  .post-article-cta { flex-direction: column; align-items: flex-start; }
  .post-article-cta .button { width: 100%; justify-content: center; }
  .home-hero { min-height: auto; }
  .home-hero__grid, .page-hero__grid, .intro-layout, .commitment__grid, .story-layout, .purpose-grid, .product-catalogue__grid, .advantage-layout, .contact-grid, .site-footer__grid { grid-template-columns: 1fr; }
  .home-hero__grid { padding-block: 3.5rem 3rem; }
  .home-hero__media { width: min(100%, 440px); justify-self: start; }
  .home-hero__media img { aspect-ratio: 5 / 4; }
  .page-hero__media { width: min(100%, 520px); }
  .intro-layout__media { width: min(100%, 380px); }
  .commitment__copy { max-width: 560px; }
  .purpose-card--offset { margin-top: 0; }
  .service-row { grid-template-columns: 3rem 1fr; gap: 1rem; }
  .service-row p { grid-column: 2; }
  .product-list { grid-template-columns: 1fr; }
  .product-showcase { grid-template-columns: 1fr; }
  .product-reference--derivatives, .product-reference--cpo, .product-reference--pko, .product-reference--stearine, .product-reference--glycerin, .product-reference--coconutoil { grid-template-columns: 1fr; grid-template-rows: minmax(220px, 300px) auto; }
  .product-reference--pko .product-reference__copy { grid-row: 2; }
  .product-reference--pko .product-reference__media { grid-row: 1; }
  .advantage-layout__intro { position: static; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .gallery-item { grid-column: auto; }
  .gallery-item--13 { grid-column: span 2; }
  .gallery-item img { aspect-ratio: 3 / 4; }
  .gallery-item--13 img { aspect-ratio: 16 / 9; }
  .document-grid { grid-template-columns: repeat(2, 1fr); }
  .post-grid { grid-template-columns: 1fr; }
  .site-footer__bottom { flex-direction: column; gap: .35rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Editorial refresh: documentary imagery and a quiet, light operational palette. */
.home-hero {
  isolation: isolate;
  min-height: min(800px, calc(100dvh - 72px));
  background: #f5faf9;
}
.home-hero::before {
  top: 2rem;
  right: 4.5vw;
  width: min(45vw, 660px);
  height: min(45vw, 660px);
  border: 1px solid rgb(0 125 97 / .22);
  border-radius: 0;
}
.home-hero::after {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: -1;
  width: 34%;
  height: 38%;
  background: var(--ibrs-sky);
  content: '';
}
.home-hero__grid { grid-template-columns: minmax(0, .85fr) minmax(470px, 1.1fr); gap: clamp(3rem, 6vw, 7rem); }
.home-hero__content h1 { max-width: 8.5ch; margin-bottom: 1.35rem; }
.home-hero__content > p:not(.kicker) { max-width: 43ch; }
.home-hero__visual { position: relative; z-index: 1; width: min(100%, 640px); min-height: 560px; justify-self: end; }
.home-hero__media { position: absolute; top: 0; right: 0; width: 83%; }
.home-hero__media::after { right: auto; bottom: -1.25rem; left: -1.25rem; width: 51%; height: 46%; border-radius: 0; background: var(--ibrs-green); }
.home-hero__media img { aspect-ratio: 4 / 5; border-radius: var(--ibrs-radius) var(--ibrs-radius) 3px var(--ibrs-radius); object-position: center; }
.home-hero__detail { position: absolute; bottom: 0; left: 0; z-index: 2; width: 44%; border: 8px solid #f5faf9; border-radius: var(--ibrs-radius); box-shadow: 0 18px 42px rgb(7 54 109 / .16); overflow: hidden; }
.home-hero__detail img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center; }

.section--intro { position: relative; overflow: hidden; }
.section--intro::after { position: absolute; right: 0; bottom: 12%; width: 28%; height: 1px; background: var(--ibrs-line); content: ''; }
.intro-layout { grid-template-columns: minmax(300px, .82fr) minmax(0, 1fr); gap: clamp(3.5rem, 10vw, 11rem); }
.intro-layout__media { position: relative; z-index: 1; width: min(100%, 440px); }
.intro-layout__media::before { position: absolute; top: 1.2rem; right: -1.2rem; width: 100%; height: 100%; border: 1px solid var(--ibrs-green); border-radius: var(--ibrs-radius); content: ''; }
.intro-layout__media img { position: relative; aspect-ratio: 4 / 4.8; border-radius: var(--ibrs-radius); box-shadow: 0 20px 45px rgb(7 54 109 / .1); object-position: center; }
.intro-layout__copy h2 { max-width: 11ch; }

.home-services { background: #eaf5f4; }
.home-section-heading { display: grid; grid-template-columns: minmax(0, .95fr) minmax(260px, .55fr); column-gap: clamp(2rem, 8vw, 9rem); max-width: none; align-items: end; }
.home-section-heading .kicker, .home-section-heading h2 { grid-column: 1; }
.home-section-heading p:not(.kicker) { grid-column: 2; grid-row: 2; margin: 0 0 .35rem; color: var(--ibrs-muted); }
.service-map { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.service-map__card { display: grid; overflow: hidden; min-height: 390px; border: 1px solid rgb(7 54 109 / .12); border-radius: var(--ibrs-radius); background: #fff; color: var(--ibrs-ink); text-decoration: none; transition: transform .35s var(--ibrs-ease), box-shadow .35s var(--ibrs-ease), border-color .35s var(--ibrs-ease); }
.service-map__card--1, .service-map__card--4 { grid-column: span 7; }
.service-map__card--2, .service-map__card--3 { grid-column: span 5; }
.service-map__card--1 { grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr); }
.service-map__card--4 { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); }
.service-map__card--4 .service-map__media { grid-column: 2; grid-row: 1; }
.service-map__card--4 .service-map__copy { grid-column: 1; grid-row: 1; }
.service-map__card--2, .service-map__card--3 { grid-template-rows: minmax(220px, 1fr) auto; }
.service-map__media { min-height: 0; overflow: hidden; background: var(--ibrs-navy); }
.service-map__media img { width: 100%; height: 100%; min-height: 230px; object-fit: cover; object-position: center; transition: transform .7s var(--ibrs-ease); }
.service-map__card--1 .service-map__media img { object-position: 50% 42%; }
.service-map__card--3 .service-map__media img { object-position: 50% 35%; }
.service-map__copy { position: relative; display: flex; min-height: 172px; flex-direction: column; padding: clamp(1.35rem, 2.5vw, 2rem); background: #fff; }
.service-map__copy > span, .home-products__stories span { margin-bottom: auto; color: var(--ibrs-green); font-size: .71rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.service-map__copy strong { max-width: 15ch; margin: 1.75rem 1.5rem .55rem 0; color: var(--ibrs-navy); font-size: clamp(1.35rem, 2.1vw, 2rem); font-weight: 760; letter-spacing: -.04em; line-height: 1.03; }
.service-map__copy small { max-width: 34ch; color: var(--ibrs-muted); font-size: .92rem; line-height: 1.45; }
.service-map__copy i { position: absolute; right: 1.4rem; bottom: 1.2rem; color: var(--ibrs-green); font-size: 1.2rem; font-style: normal; transition: transform .25s var(--ibrs-ease); }
.service-map__card:hover, .service-map__card:focus-visible { border-color: var(--ibrs-green); box-shadow: 0 18px 38px rgb(7 54 109 / .12); transform: translateY(-4px); }
.service-map__card:hover img, .service-map__card:focus-visible img { transform: scale(1.035); }
.service-map__card:hover i, .service-map__card:focus-visible i { transform: translateX(4px); }

.home-products { background: #fff; }
.home-products__grid { display: grid; grid-template-columns: minmax(220px, .74fr) minmax(250px, .64fr) minmax(260px, .84fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: stretch; }
.home-products__intro { display: flex; min-height: 430px; flex-direction: column; justify-content: space-between; padding: clamp(1.5rem, 3vw, 2.5rem) 0; }
.home-products__intro h2 { max-width: 9.5ch; }
.home-products__visual { overflow: hidden; border-radius: var(--ibrs-radius); background: var(--ibrs-sky); }
.home-products__visual img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; object-position: center; }
.home-products__stories { display: grid; align-content: center; gap: 0; }
.home-products__stories article { padding: clamp(1.3rem, 2.5vw, 2rem) 0; border-top: 1px solid var(--ibrs-line); }
.home-products__stories article:last-child { border-bottom: 1px solid var(--ibrs-line); }
.home-products__stories h3 { margin: .7rem 0; color: var(--ibrs-navy); font-size: clamp(1.4rem, 2vw, 1.8rem); }
.home-products__stories p { margin: 0; color: var(--ibrs-muted); font-size: .96rem; }

.home-flow { background: #f0f7fb; }
.home-flow__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .54fr); column-gap: clamp(2rem, 9vw, 10rem); margin-bottom: clamp(2.75rem, 5vw, 4.5rem); }
.home-flow__heading .kicker, .home-flow__heading h2 { grid-column: 1; }
.home-flow__heading h2 { margin-bottom: 0; max-width: 11ch; }
.home-flow__heading p:not(.kicker) { grid-column: 2; grid-row: 2; margin: 0 0 .35rem; color: var(--ibrs-muted); }
.home-flow__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; counter-reset: flow; }
.home-flow__list li { position: relative; min-height: 210px; padding: 1.4rem 1.1rem 1.2rem 0; border-top: 2px solid var(--ibrs-navy); counter-increment: flow; }
.home-flow__list li::before { display: block; margin-bottom: 2.5rem; color: var(--ibrs-green); content: '0' counter(flow); font-size: .72rem; font-weight: 800; letter-spacing: .11em; }
.home-flow__list strong { display: block; margin-bottom: .65rem; color: var(--ibrs-navy); font-size: 1.16rem; line-height: 1.15; }
.home-flow__list p { margin: 0; color: var(--ibrs-muted); font-size: .91rem; line-height: 1.48; }

.home-fieldwork { overflow: hidden; }
.home-fieldwork__heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 3rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.home-fieldwork__heading .kicker, .home-fieldwork__heading h2 { grid-column: 1; }
.home-fieldwork__heading h2 { margin-bottom: 0; max-width: 11ch; }
.home-fieldwork__heading .text-link { grid-column: 2; grid-row: 2; margin-bottom: .4rem; }
.home-fieldwork__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(220px, .75fr) minmax(220px, .75fr); gap: 1rem; align-items: end; }
.home-fieldwork__image { overflow: hidden; margin: 0; border-radius: var(--ibrs-radius); background: var(--ibrs-sky); }
.home-fieldwork__image img { width: 100%; height: 100%; object-fit: cover; }
.home-fieldwork__image--3 { height: 560px; }
.home-fieldwork__image--4 { height: 420px; }
.home-fieldwork__image--8 { height: 500px; }
.home-fieldwork__image--3 img { object-position: 52% center; }
.home-fieldwork__image--4 img { object-position: center; }
.home-fieldwork__image--8 img { object-position: 50% 45%; }
.commitment--callout { padding-block: clamp(4rem, 7vw, 7rem); background: #f9fbfa; }
.commitment--callout .commitment__grid { position: relative; padding: clamp(2rem, 4vw, 4rem); border: 1px solid rgb(0 125 97 / .26); border-radius: var(--ibrs-radius); background: #fff; }
.commitment--callout .commitment__grid::before { position: absolute; top: 0; right: 0; width: 24%; height: 100%; border-left: 1px solid rgb(0 125 97 / .22); background: #eaf5f4; content: ''; }
.commitment--callout .commitment__heading, .commitment--callout .commitment__copy { position: relative; z-index: 1; }

.page-hero { position: relative; overflow: hidden; padding-block: clamp(4rem, 7vw, 7.5rem); background: #f4f9fa; }
.page-hero::after { position: absolute; right: 0; bottom: 0; width: 38%; height: 37%; border-top: 1px solid rgb(0 125 97 / .25); border-left: 1px solid rgb(0 125 97 / .25); content: ''; }
.page-hero__grid { position: relative; z-index: 1; grid-template-columns: minmax(0, .95fr) minmax(420px, .85fr); gap: clamp(3rem, 7vw, 8rem); }
.page-hero__content h1 { max-width: 12.5ch; font-size: clamp(2.8rem, 4.6vw, 4.85rem); }
.page-hero__media { min-height: 460px; padding: 2.5rem 0 0 3rem; }
.page-hero__media::before { top: 0; left: 0; width: 68%; height: 65%; border: 1px solid var(--ibrs-green); border-radius: 0; }
.page-hero__primary { position: relative; z-index: 1; width: 84%; margin-left: auto; overflow: hidden; border-radius: var(--ibrs-radius); box-shadow: 0 20px 44px rgb(7 54 109 / .14); }
.page-hero__primary img { width: 100%; aspect-ratio: 4 / 3.7; object-fit: cover; object-position: center; }
.page-hero__detail { position: absolute; bottom: 0; left: 0; z-index: 2; width: 39%; overflow: hidden; border: 7px solid #f4f9fa; border-radius: var(--ibrs-radius); box-shadow: 0 14px 35px rgb(7 54 109 / .13); }
.page-hero__detail img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center; }

.service-list { display: grid; gap: 1.5rem; }
.service-row { grid-template-columns: minmax(240px, .72fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 6rem); align-items: center; padding: 0; border: 0; }
.service-row:first-child { border-top: 0; }
.service-row__media { overflow: hidden; border-radius: var(--ibrs-radius); background: var(--ibrs-sky); }
.service-row__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; transition: transform .55s var(--ibrs-ease); }
.service-row:nth-child(even) .service-row__media { order: 2; }
.service-row__copy { padding-block: clamp(1.5rem, 3vw, 3rem); }
.service-row__copy .kicker { margin-bottom: 1rem; }
.service-row__copy h2 { max-width: 12ch; margin-bottom: 1rem; }
.service-row__copy p:not(.kicker) { margin: 0; color: var(--ibrs-muted); font-size: 1.04rem; }
.service-row:hover img { transform: scale(1.035); }

.product-spotlight { border: 1px solid rgb(7 54 109 / .1); box-shadow: none; }
.product-spotlight--ink { border-color: var(--ibrs-navy); }

.site-footer { padding: clamp(3rem, 6vw, 5rem) 0 0; border-top: 1px solid var(--ibrs-line); background: #f8fbfc; color: var(--ibrs-ink); }
.button--light { border-color: #fff; background: #fff; color: var(--ibrs-navy); }
.button--light:hover, .button--light:focus-visible { border-color: #a8e4d5; background: #a8e4d5; color: var(--ibrs-navy); }
.site-footer__grid { grid-template-columns: minmax(230px, 1.45fr) repeat(3, minmax(130px, .62fr)); gap: clamp(2rem, 5vw, 5rem); padding-block: clamp(3rem, 6vw, 5rem); }
.site-footer .site-mark__abbr { color: var(--ibrs-navy); }
.site-footer .site-mark__name, .site-footer .kicker { color: var(--ibrs-green); }
.site-footer p, .site-footer address { color: var(--ibrs-muted); font-size: .93rem; }
.site-footer__brand > p { max-width: 33ch; margin: 1rem 0 1.5rem; }
.site-footer h2 { margin-bottom: 1rem; color: var(--ibrs-navy); font-size: .8rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.site-footer a { color: var(--ibrs-navy); text-decoration-color: rgb(7 54 109 / .35); }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--ibrs-green); }
.site-footer__bottom { border-top-color: var(--ibrs-line); color: var(--ibrs-muted); }

@media (max-width: 960px) {
  .home-hero__grid { grid-template-columns: minmax(0, .85fr) minmax(360px, .9fr); }
  .home-hero__visual { min-height: 500px; }
  .home-section-heading, .home-flow__heading { grid-template-columns: minmax(0, 1fr) minmax(220px, .6fr); }
  .service-map__card--1, .service-map__card--4 { grid-column: span 7; }
  .service-map__card--2, .service-map__card--3 { grid-column: span 5; }
  .service-map__card--1, .service-map__card--4 { grid-template-columns: 1fr; grid-template-rows: minmax(230px, 1fr) auto; }
  .service-map__card--4 .service-map__media, .service-map__card--4 .service-map__copy { grid-column: auto; grid-row: auto; }
  .home-products__grid { grid-template-columns: minmax(220px, .9fr) minmax(220px, .8fr); }
  .home-products__stories { grid-column: span 2; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .home-products__stories article:last-child { border-bottom: 0; }
  .home-flow__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-fieldwork__image--3 { height: 500px; }
  .site-footer__grid { grid-template-columns: minmax(230px, 1.2fr) repeat(2, minmax(130px, .7fr)); }
  .site-footer__grid > :last-child { grid-column: 2; }
}

@media (max-width: 720px) {
  .home-hero { min-height: auto; }
  .home-hero::before { top: 3.8rem; right: -4rem; width: 250px; height: 250px; }
  .home-hero::after { width: 58%; height: 27%; }
  .home-hero__grid, .page-hero__grid { grid-template-columns: 1fr; }
  .home-hero__grid { padding-block: 3.5rem; }
  .home-hero__visual { width: min(100%, 480px); min-height: 455px; justify-self: start; }
  .home-hero__media { width: 82%; }
  .home-hero__detail { width: 42%; border-width: 6px; }
  .section--intro::after { width: 48%; }
  .intro-layout__media { width: min(100%, 400px); }
  .home-section-heading, .home-flow__heading { display: block; }
  .home-section-heading p:not(.kicker), .home-flow__heading p:not(.kicker) { margin-top: 1.5rem; }
  .service-map { grid-template-columns: 1fr; }
  .service-map__card, .service-map__card--1, .service-map__card--2, .service-map__card--3, .service-map__card--4 { grid-column: auto; min-height: 0; grid-template-columns: 1fr; grid-template-rows: minmax(220px, 1fr) auto; }
  .service-map__media img { min-height: 250px; }
  .service-map__copy { min-height: 185px; }
  .home-products__grid { grid-template-columns: 1fr; }
  .home-products__intro { min-height: 0; gap: 2rem; padding-block: 0; }
  .home-products__visual img { min-height: 340px; max-height: 500px; }
  .home-products__stories { grid-column: auto; grid-template-columns: 1fr; gap: 0; }
  .home-products__stories article:last-child { border-bottom: 1px solid var(--ibrs-line); }
  .home-flow__list { grid-template-columns: 1fr; gap: 0; }
  .home-flow__list li { min-height: auto; padding: 1.25rem 0 1.5rem; }
  .home-flow__list li::before { margin-bottom: 1.6rem; }
  .home-fieldwork__heading { grid-template-columns: 1fr; gap: 1.25rem; }
  .home-fieldwork__heading .text-link { grid-column: 1; grid-row: auto; margin: 0; }
  .home-fieldwork__grid { grid-template-columns: 1fr 1fr; }
  .home-fieldwork__image--3 { grid-column: span 2; height: 420px; }
  .home-fieldwork__image--4, .home-fieldwork__image--8 { height: 270px; }
  .commitment--callout .commitment__grid { padding: 1.5rem; }
  .commitment--callout .commitment__grid::before { width: 26%; }
  .page-hero__media { width: min(100%, 520px); min-height: 390px; padding: 1.7rem 0 0 2rem; }
  .page-hero__primary { width: 86%; }
  .page-hero__detail { width: 41%; border-width: 5px; }
  .service-row { grid-template-columns: 1fr; gap: 0; }
  .service-row:nth-child(even) .service-row__media { order: 0; }
  .service-row__copy { padding-block: 1.5rem 2.5rem; }
  .site-footer__grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.5rem; }
  .site-footer__brand { grid-column: span 2; }
  .site-footer__grid > :last-child { grid-column: auto; }
}

/* Product samples are documentary assets. Keep the bottle and label in full view. */
.product-reference__media { display: grid; place-items: center; background: #f5f9fa; }
.product-reference__media img { width: 100%; height: 100%; min-height: 0; object-fit: contain; object-position: center; }
.product-reference:hover .product-reference__media img { transform: none; }

/* CPO, PKO, Stearine, and Glycerin are portrait product references; use full cover framing. */
.product-reference--cpo .product-reference__media img,
.product-reference--pko .product-reference__media img,
.product-reference--stearine .product-reference__media img,
.product-reference--glycerin .product-reference__media img,
.product-reference--coconutoil .product-reference__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.product-reference--coconutoil {
  grid-column: 1 / -1;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
}

/* Replace the isolated green panel with a single, intentional commitment rule. */
.commitment--callout { background: #f7fafb; }
.commitment--callout .commitment__grid { padding: 0; border: 0; border-radius: 0; background: transparent; }
.commitment--callout .commitment__grid::before { display: none; }

.home-faq { background: #eef6f8; }
.home-faq__layout { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1fr); gap: clamp(3rem, 10vw, 10rem); align-items: start; }
.home-faq__intro { max-width: 460px; }
.home-faq__intro h2 { max-width: 12ch; margin-bottom: 1rem; }
.home-faq__intro p { margin-bottom: 0; color: var(--ibrs-muted); font-size: 1.05rem; }
.home-faq__list { max-width: 920px; border-top: 1px solid var(--ibrs-line); }
.home-faq__item { border-bottom: 1px solid var(--ibrs-line); }
.home-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.35rem 0; color: var(--ibrs-navy); cursor: pointer; font-size: clamp(1.08rem, 1.8vw, 1.32rem); font-weight: 740; line-height: 1.32; }
.home-faq__item summary::marker { color: var(--ibrs-green); font-size: 1.1em; }
.home-faq__item[open] summary { color: var(--ibrs-green); }
.home-faq__answer { max-width: 66ch; padding: 0 1.5rem 1.45rem; }
.home-faq__answer p { margin: 0; color: var(--ibrs-muted); }

/* --- About Page Redesign: Executive hero badges, journey cards, 4 capabilities, balanced purpose --- */
.page-hero--about { background: linear-gradient(180deg, var(--ibrs-tint) 0%, #fff 96%); }
.about-hero__badges { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: clamp(1.5rem, 3vw, 2.25rem); }
.about-badge { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .95rem; border-radius: 999px; background: #fff; border: 1px solid rgb(7 54 109 / .12); color: var(--ibrs-navy); font-size: .82rem; font-weight: 700; box-shadow: 0 2px 8px rgb(7 54 109 / .04); }
.about-badge svg { color: var(--ibrs-green); flex-shrink: 0; }

.about-journey__grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(320px, 1.05fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.about-journey__story h2 { font-size: clamp(2.1rem, 3.8vw, 3.4rem); margin: .6rem 0 1.25rem; line-height: 1.15; }
.about-journey__lead { font-size: 1.1rem; color: var(--ibrs-muted); line-height: 1.68; margin: 0; }
.about-journey__timeline-header { margin-bottom: 1.5rem; }
.about-journey__timeline-header h3 { font-size: 1.35rem; color: var(--ibrs-navy); margin: 0 0 .35rem; }
.about-journey__timeline-header p { margin: 0; color: var(--ibrs-muted); font-size: .95rem; }
.about-journey__cards { position: relative; display: grid; gap: 1.2rem; }
.about-journey__cards::before { position: absolute; top: 2.2rem; bottom: 2.2rem; left: 1.65rem; width: 2px; background: linear-gradient(180deg, var(--ibrs-green), var(--ibrs-navy)); content: ''; z-index: 0; }
.about-journey__card { position: relative; z-index: 1; display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: 1.25rem; align-items: center; padding: 1.35rem 1.6rem; border-radius: var(--ibrs-radius); background: #fff; border: 1px solid rgb(7 54 109 / .1); box-shadow: 0 4px 16px rgb(7 54 109 / .04); transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); }
.about-journey__card:hover { transform: translateX(4px); box-shadow: 0 10px 28px rgb(7 54 109 / .08); border-color: rgb(0 125 97 / .3); }
.about-journey__card--2026 { background: linear-gradient(135deg, #fff 0%, #f0f8f6 100%); border-color: rgb(0 125 97 / .32); }
.about-journey__card-year { display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border-radius: 50%; background: var(--ibrs-tint); color: var(--ibrs-green); font-weight: 800; font-size: .84rem; border: 2px solid #fff; box-shadow: 0 2px 8px rgb(7 54 109 / .1); flex-shrink: 0; }
.about-journey__card--2026 .about-journey__card-year { background: var(--ibrs-green); color: #fff; }
.about-journey__card-body h4 { font-size: 1.15rem; color: var(--ibrs-navy); margin: 0 0 .3rem; font-weight: 750; }
.about-journey__card-body p { margin: 0; color: var(--ibrs-muted); font-size: .92rem; line-height: 1.52; }

.about-practice__intro { max-width: 680px; }
.about-practice__intro h2 { margin: .4rem 0 .9rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.about-practice__intro p { margin-bottom: 0; color: var(--ibrs-muted); font-size: 1.05rem; }
.about-practice__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: clamp(2rem, 4vw, 3rem); }
.about-practice__card { padding: clamp(1.6rem, 3vw, 2.25rem); border-radius: var(--ibrs-radius); background: #fff; border: 1px solid rgb(7 54 109 / .09); box-shadow: 0 4px 16px rgb(7 54 109 / .03); transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); }
.about-practice__card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgb(7 54 109 / .08); border-color: rgb(0 125 97 / .3); }
.about-practice__card-num { font-size: .88rem; font-weight: 800; color: var(--ibrs-green); letter-spacing: .08em; margin-bottom: .85rem; }
.about-practice__card h3 { font-size: clamp(1.25rem, 1.8vw, 1.55rem); color: var(--ibrs-navy); margin: 0 0 .6rem; }
.about-practice__card p { margin: 0; color: var(--ibrs-muted); font-size: .95rem; line-height: 1.6; }

.about-field__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.about-field__card { padding: clamp(1.5rem, 3.5vw, 2.75rem); border-radius: var(--ibrs-radius); background: #fff; border: 1px solid rgb(7 54 109 / .09); box-shadow: 0 10px 30px rgb(7 54 109 / .05); display: grid; place-items: center; }
.about-field__media { margin: 0; overflow: hidden; width: 100%; display: grid; place-items: center; }
.about-field__media img { width: 100%; max-height: 420px; object-fit: contain; }
.about-field__copy h2 { margin: .5rem 0 1rem; font-size: clamp(1.8rem, 3vw, 2.7rem); }
.about-field__copy p { margin-bottom: 1.6rem; color: var(--ibrs-muted); font-size: 1.05rem; line-height: 1.65; }

.about-purpose__heading { max-width: 720px; margin-bottom: clamp(2rem, 4vw, 3rem); }
.about-purpose__heading h2 { font-size: clamp(1.8rem, 3vw, 2.7rem); margin: .4rem 0 0; }
.purpose-grid--balanced { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); align-items: stretch; }
.purpose-card__badge { display: inline-block; font-size: .78rem; font-weight: 800; letter-spacing: .12em; margin-bottom: 1.1rem; }
.purpose-card--vision { padding: clamp(2rem, 3.5vw, 3rem); border-radius: var(--ibrs-radius); background: #fff; border: 1px solid rgb(7 54 109 / .1); box-shadow: 0 6px 20px rgb(7 54 109 / .04); }
.purpose-card--vision .purpose-card__badge { color: var(--ibrs-green); }
.purpose-card--vision h3 { font-size: clamp(1.5rem, 2.3vw, 2.1rem); color: var(--ibrs-navy); margin: 0 0 1rem; }
.purpose-card--vision p { margin: 0; color: var(--ibrs-muted); font-size: 1.05rem; line-height: 1.65; }
.purpose-card--mission { padding: clamp(2rem, 3.5vw, 3rem); border-radius: var(--ibrs-radius); background: var(--ibrs-navy); color: #fff; box-shadow: 0 12px 32px rgb(7 54 109 / .18); }
.purpose-card--mission .purpose-card__badge { color: #55d6be; }
.purpose-card--mission h3 { font-size: clamp(1.5rem, 2.3vw, 2.1rem); color: #fff !important; margin: 0 0 1rem; }
.purpose-card--mission p:not(.kicker),
.purpose-card--mission p { margin: 0; color: #fff !important; font-size: 1.05rem; line-height: 1.65; opacity: 1; }

.site-footer__grid > * { min-width: 0; }
.site-footer a { overflow-wrap: anywhere; }

.purpose-card--offset p:not(.kicker) { color: #dceaf7; }
.site-footer__address { margin-top: 1rem; color: var(--ibrs-muted); overflow-wrap: anywhere; }

.home-products__visual { display: grid; place-items: center; background: #f5f9fa; }
.home-products__visual img { width: 100%; min-height: 430px; padding: clamp(.75rem, 2vw, 1.5rem); object-fit: contain; object-position: center; }
.home-products__stories article { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 1rem; align-items: center; }
.home-products__story-media { overflow: hidden; border-radius: 10px; background: #f5f9fa; }
.home-products__story-media img { width: 100%; aspect-ratio: 1 / 1; min-height: 0; object-fit: contain; }
.home-products__stories article > div:last-child { min-width: 0; }

.home-faq__answer { height: auto; overflow: hidden; transition: height .32s var(--ibrs-ease); will-change: height; }

@media (min-width: 961px) {
  .service-map__card--2, .service-map__card--3 { grid-template-rows: 260px auto; min-height: 0; }
  .service-map__card--4 { grid-template-columns: 1fr; grid-template-rows: 260px auto; min-height: 0; }
  .service-map__card--4 .service-map__media, .service-map__card--4 .service-map__copy { grid-column: auto; grid-row: auto; }
}

@media (min-width: 721px) and (max-width: 960px) {
  .service-map__card--2, .service-map__card--3, .service-map__card--4 { grid-template-rows: 250px auto; min-height: 0; }
}

@media (max-width: 720px) {
  .commitment--callout .commitment__grid { padding-top: 0; }
  .home-faq__layout { grid-template-columns: 1fr; gap: 2.25rem; }
  .home-faq__answer { padding-right: 0; padding-left: 1.25rem; }
  .service-map__card--2, .service-map__card--3, .service-map__card--4 { grid-template-rows: 250px auto; }
  .home-products__visual img { min-height: 0; max-height: none; }
  .home-products__stories article { grid-template-columns: 88px minmax(0, 1fr); }
  .about-practice__list { grid-template-columns: 1fr; }
  .about-field__media img { aspect-ratio: 4 / 3; }
}

/* Commercial evidence layer: a denser editorial rhythm for the redesign. */
.home-proof { background: #f7fafb; }
.home-proof__intro { max-width: 620px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.home-proof__intro h2 { max-width: 11ch; margin-bottom: 1rem; }
.home-proof__intro p { max-width: 48ch; margin: 0; color: var(--ibrs-muted); font-size: 1.05rem; }
.home-proof__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.25rem; }
.home-proof__item { display: flex; min-height: 230px; flex-direction: column; justify-content: flex-end; grid-column: span 4; padding: clamp(1.5rem, 2.5vw, 2.2rem); border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 18px rgb(7 54 109 / .04); transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); transition-delay: 0s !important; }
.home-proof__item:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgb(7 54 109 / .1); border-color: rgb(0 125 97 / .3); }
.home-proof__item--feature { grid-column: span 5; background: var(--ibrs-navy); color: #fff; border-color: var(--ibrs-navy); }
.home-proof__item--feature:hover { border-color: var(--ibrs-navy-deep); box-shadow: 0 18px 40px rgb(7 54 109 / .2); }
.home-proof__item--commodity { grid-column: span 7; }
.home-proof__item--ink { background: #f0f7f6; }
.home-proof__item--support { background: #fff; }
.home-proof__value { margin-bottom: auto; color: var(--ibrs-green); font-size: .74rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.home-proof__item--feature .home-proof__value { color: #55d6be; }
.home-proof__item h3 { max-width: 18ch; margin: 1.5rem 0 .65rem; color: var(--ibrs-navy); font-size: clamp(1.3rem, 1.9vw, 1.7rem); font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
.home-proof__item p { margin: 0; color: var(--ibrs-muted); font-size: .94rem; line-height: 1.55; }
.home-proof__item--feature h3, .home-proof__item--feature p { color: #fff; }
.home-proof__item--feature p { color: #d0e2f2; }
.home-proof__item--feature .text-link { margin-top: 1.35rem; color: #55d6be; font-weight: 750; }
.home-proof__item--feature .text-link::after { color: #55d6be; }

.home-flow__list .home-flow__step.reveal { transition-delay: calc(var(--flow-index) * 140ms); }

.service-overview { background: #eaf5f4; }
.service-overview__grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.service-overview__copy h2 { max-width: 12ch; margin-bottom: 1rem; }
.service-overview__copy p { max-width: 42ch; margin: 0; color: var(--ibrs-muted); font-size: 1.04rem; }
.service-route { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.service-route::before { position: absolute; top: 1rem; right: 10%; left: 0; height: 1px; background: rgb(7 54 109 / .22); content: ''; }
.service-route li { position: relative; padding-top: 2.5rem; }
.service-route li::before { position: absolute; top: .5rem; left: 0; width: 1rem; height: 1rem; border: 2px solid var(--ibrs-green); border-radius: 50%; background: #eaf5f4; content: ''; }
.service-route span { color: var(--ibrs-green); font-size: .72rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.service-route strong { display: block; margin: .65rem 0 .45rem; color: var(--ibrs-navy); font-size: 1.1rem; line-height: 1.1; }
.service-route p { margin: 0; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.45; }
.service-row__details { display: grid; gap: .55rem; margin: 1.4rem 0 0; padding: 1.15rem 0 0 1.1rem; border-top: 1px solid var(--ibrs-line); color: var(--ibrs-muted); font-size: .93rem; }
.service-row__details li::marker { color: var(--ibrs-green); }
.service-next { padding-top: 0; }
.service-next__inner { display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding: clamp(1.5rem, 3vw, 2.5rem); border-radius: var(--ibrs-radius); background: var(--ibrs-navy); color: #fff; }
.service-next__inner h2 { max-width: 16ch; margin-bottom: .7rem; color: #fff; font-size: clamp(1.6rem, 3vw, 2.5rem); }
.service-next__inner p { max-width: 52ch; margin: 0; color: #dceaf7; }

.product-usecases { background: #f7fafb; }
.product-usecases__intro { max-width: 600px; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.product-usecases__intro h2 { max-width: 12ch; margin-bottom: 1rem; }
.product-usecases__intro p { margin: 0; color: var(--ibrs-muted); }
.product-usecases__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.product-usecase { min-height: 250px; padding: clamp(1.5rem, 3vw, 2.5rem); border-top: 2px solid var(--ibrs-navy); background: #fff; }
.product-usecase--tint { background: #eaf5f4; border-top-color: var(--ibrs-green); }
.product-usecase--ink { background: var(--ibrs-navy); border-top-color: var(--ibrs-navy); }
.product-usecase span { color: var(--ibrs-green); font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.product-usecase h3 { margin: 2.5rem 0 .8rem; color: var(--ibrs-navy); font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.05; }
.product-usecase p { margin: 0; color: var(--ibrs-muted); font-size: .94rem; }
.product-usecase--ink span { color: #a8e4d5; }
.product-usecase--ink h3, .product-usecase--ink p { color: #fff; }
.product-usecases__cta { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--ibrs-line); }
.product-usecases__cta p { margin: 0; color: var(--ibrs-muted); }

.lightbox[hidden] { display: none; }
.lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 2rem; background: rgb(7 54 109 / .9); }
.lightbox figure { width: min(100%, 1000px); margin: 0; }
.lightbox img { display: block; width: 100%; max-height: 78vh; border-radius: var(--ibrs-radius); background: #fff; object-fit: contain; }
.lightbox figcaption { margin-top: .8rem; color: #fff; text-align: center; }
.lightbox__close { position: absolute; top: 1.5rem; right: 1.5rem; min-height: 2.75rem; padding: .65rem 1rem; border: 1px solid rgb(255 255 255 / .6); border-radius: 999px; background: transparent; color: #fff; cursor: pointer; font: inherit; }
.lightbox__close:hover, .lightbox__close:focus-visible { border-color: #fff; background: #fff; color: var(--ibrs-navy); }
body.lightbox-open { overflow: hidden; }

.document-card small { display: block; padding: 0 1rem 1rem; color: var(--ibrs-muted); font-size: .78rem; }
.contact-details__hint { max-width: 37ch; color: var(--ibrs-muted); font-size: .96rem !important; }
.empty-state { display: grid; max-width: none; grid-template-columns: minmax(0, 1fr) minmax(220px, .65fr) auto; gap: 2rem; align-items: end; padding: clamp(1.5rem, 4vw, 3.5rem); border-radius: var(--ibrs-radius); background: #eaf5f4; text-align: left; }
.empty-state h2 { max-width: 13ch; margin-bottom: .9rem; }
.empty-state p:not(.kicker) { max-width: 48ch; margin: 0; color: var(--ibrs-muted); }
.empty-state__topics { display: grid; gap: .7rem; color: var(--ibrs-navy); font-size: .92rem; font-weight: 700; }
.blog-hero + .section { padding-top: clamp(2.5rem, 5vw, 5rem); }

/* --- Products & Derivatives Layout Enhancements --- */
.product-derivatives-gallery { background: #f7fafb; border-top: 1px solid var(--ibrs-line); border-bottom: 1px solid var(--ibrs-line); }
.product-derivatives-cards-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(1rem, 1.5vw, 1.35rem); margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.derivative-card-pdf { display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 18px rgb(7 54 109 / .05); transition: transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease); }
.derivative-card-pdf:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgb(7 54 109 / .12); border-color: rgb(0 125 97 / .35); }
.derivative-card-pdf__media { overflow: hidden; aspect-ratio: 3 / 4; background: #eef5f4; display: grid; place-items: center; }
.derivative-card-pdf__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s var(--ibrs-ease); }
.derivative-card-pdf:hover .derivative-card-pdf__media img { transform: scale(1.04); }
.derivative-card-pdf__body { display: flex; flex-direction: column; flex-grow: 1; padding: 1.25rem 1.15rem 1.4rem; }
.derivative-card-pdf__tag { margin-bottom: .5rem; color: var(--ibrs-green); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.derivative-card-pdf h3 { margin: 0 0 .45rem; color: var(--ibrs-navy); font-size: 1.12rem; font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
.derivative-card-pdf p { margin: 0; color: var(--ibrs-muted); font-size: .84rem; line-height: 1.48; }

.product-samples-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 2.5vw, 2rem); margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.product-sample-item { display: grid; grid-template-columns: 85px minmax(0, 1fr); gap: 1.25rem; align-items: center; padding: 1.25rem 1.5rem; border: 1px solid rgb(7 54 109 / .1); border-radius: var(--ibrs-radius); background: #fff; box-shadow: 0 4px 16px rgb(7 54 109 / .04); transition: border-color .3s var(--ibrs-ease), transform .3s var(--ibrs-ease), box-shadow .3s var(--ibrs-ease); }
.product-sample-item:hover { border-color: rgb(0 125 97 / .35); transform: translateY(-3px); box-shadow: 0 10px 24px rgb(7 54 109 / .08); }
.product-sample-item__media { overflow: hidden; height: 140px; display: grid; place-items: center; border-radius: 8px; background: #f4f8fa; padding: 0.4rem; }
.product-sample-item__media img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.product-sample-item__info { display: flex; flex-direction: column; }
.product-sample-item__info strong { color: var(--ibrs-navy); font-size: 1.15rem; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; }
.product-sample-item__info span { margin-top: .4rem; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.45; }

@media (max-width: 1100px) {
  .product-derivatives-cards-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .product-showcase { grid-template-columns: 1fr; }
  .product-reference { grid-template-columns: 1fr; }
  .product-derivatives-cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-samples-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .product-derivatives-cards-grid { grid-template-columns: 1fr; }
  .product-samples-row { grid-template-columns: 1fr; }
}

:is(a, button, input, textarea, summary):focus-visible { outline: 3px solid rgb(0 125 97 / .38); outline-offset: 3px; }
.reveal:not(.is-visible).reveal--late { transition-delay: .16s; }
.home-proof__item.reveal:not(.is-visible):nth-child(3) { transition-delay: .08s; }
.home-proof__item.reveal:not(.is-visible):nth-child(4) { transition-delay: .2s; }

@media (max-width: 960px) {
  .home-proof__item, .home-proof__item--feature { grid-column: span 6; }
  .home-proof__item--image { grid-column: span 12; }
  .service-overview__grid, .about-timeline__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .product-usecases__grid { grid-template-columns: 1fr 1fr; }
  .product-usecase:last-child { grid-column: span 2; }
  .empty-state { grid-template-columns: 1fr 1fr; }
  .empty-state .button { justify-self: start; }
}

@media (max-width: 720px) {
  .home-hero__visual { min-height: 360px; }
  .home-hero__media img { aspect-ratio: 4 / 3; }
  .home-proof__grid, .product-usecases__grid { grid-template-columns: 1fr; }
  .home-proof__item, .home-proof__item--feature, .home-proof__item--image, .product-usecase, .product-usecase:last-child { grid-column: auto; }
  .home-proof__item--image { grid-template-columns: 96px minmax(0, 1fr); }
  .home-proof__item--image img { min-height: 190px; }
  .home-proof__item--image > div { padding-right: 1rem; }
  .service-route { grid-template-columns: 1fr; gap: 1.5rem; }
  .service-route::before { top: 1rem; right: auto; bottom: 1rem; left: .45rem; width: 1px; height: auto; }
  .service-route li { padding: 0 0 0 2rem; }
  .service-route li::before { top: .1rem; left: 0; }
  .service-next__inner, .product-usecases__cta { align-items: flex-start; flex-direction: column; }
  .about-timeline__list li { grid-template-columns: 4.2rem 1fr; }
  .gallery-intro { margin-bottom: 2.25rem; }
  .lightbox { padding: 1rem; }
  .empty-state { grid-template-columns: 1fr; align-items: start; }
  .empty-state__topics { grid-template-columns: 1fr 1fr; }
}

/* Product focus uses one complete card per commodity so vertical product photography has room to read. */
.home-products__heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.home-products__heading h2 { max-width: 10ch; margin: 0; }
.home-products__showcase { display: grid; grid-template-columns: minmax(0, 1.25fr) repeat(2, minmax(0, .9fr)); gap: 1rem; align-items: stretch; }
.home-product-card { display: grid; min-width: 0; min-height: 100%; grid-template-rows: minmax(300px, 1fr) auto; overflow: hidden; border: 1px solid rgb(7 54 109 / .12); border-radius: var(--ibrs-radius); background: #fff; }
.home-product-card__media { min-height: 0; overflow: hidden; background: #f3f8fa; }
.home-product-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform .55s var(--ibrs-ease); }
.home-product-card__copy { padding: clamp(1.25rem, 2.4vw, 2rem); }
.home-product-card__type { margin: 0 0 1.55rem; color: var(--ibrs-green); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.home-product-card h3 { max-width: 12ch; margin: 0 0 .75rem; color: var(--ibrs-navy); font-size: clamp(1.45rem, 2.2vw, 2rem); letter-spacing: -.04em; line-height: 1.02; }
.home-product-card__copy > p:last-child { margin: 0; color: var(--ibrs-muted); font-size: .94rem; line-height: 1.5; }
.home-product-card--derivatives { grid-template-rows: minmax(355px, 1fr) auto; }
.home-product-card--derivatives .home-product-card__media { display: grid; place-items: center; }
.home-product-card--derivatives .home-product-card__media img { padding: clamp(1rem, 3vw, 2.5rem); object-fit: contain; }
.home-product-card--cpo .home-product-card__media, .home-product-card--pko .home-product-card__media { aspect-ratio: 4 / 5; }
.home-product-card--pko { background: var(--ibrs-navy); border-color: var(--ibrs-navy); }
.home-product-card--pko .home-product-card__copy { background: var(--ibrs-navy); }
.home-product-card--pko .home-product-card__type { color: #a8e4d5; }
.home-product-card--pko h3, .home-product-card--pko .home-product-card__copy > p:last-child { color: #fff; }
.home-product-card:hover .home-product-card__media img, .home-product-card:focus-within .home-product-card__media img { transform: scale(1.025); }

/* A focused horizontal sequence gives the operational gallery a clear browsing rhythm. */
.home-fieldwork { overflow: clip; }
.home-fieldwork__heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: clamp(2rem, 4vw, 3.25rem); }
.home-fieldwork__heading h2 { max-width: 11ch; margin: 0 0 .85rem; }
.home-fieldwork__heading p { max-width: 46ch; margin: 0; color: var(--ibrs-muted); }
.home-fieldwork__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 1rem 1.35rem; align-items: center; }
.media-rail__controls { display: flex; gap: .55rem; }
.media-rail__button { min-height: 2.6rem; padding: .55rem .9rem; border: 1px solid rgb(7 54 109 / .22); border-radius: 999px; background: #fff; color: var(--ibrs-navy); cursor: pointer; font: inherit; font-size: .88rem; font-weight: 760; transition: border-color .2s var(--ibrs-ease), background .2s var(--ibrs-ease), color .2s var(--ibrs-ease), transform .2s var(--ibrs-ease); }
.media-rail__button:hover, .media-rail__button:focus-visible { border-color: var(--ibrs-green); background: var(--ibrs-green); color: #fff; }
.media-rail__button:active { transform: translateY(1px); }
.media-rail__button:disabled { border-color: rgb(7 54 109 / .1); background: #f3f7f8; color: rgb(7 54 109 / .36); cursor: not-allowed; }
.media-rail__stage { --rail-progress: 0; position: relative; }
.media-rail { overflow-x: auto; overscroll-behavior-inline: contain; padding: .45rem .15rem 1.25rem; scroll-behavior: smooth; scroll-padding-inline: .15rem; scroll-snap-type: x proximity; scrollbar-width: none; }
.media-rail::-webkit-scrollbar { display: none; }
.media-rail__track { display: flex; min-width: min-content; gap: clamp(1rem, 2vw, 1.65rem); }
.media-rail__slide { display: grid; flex: 0 0 min(60vw, 740px); min-width: 0; grid-template-rows: minmax(440px, 1fr) auto; margin: 0; overflow: hidden; border: 1px solid rgb(7 54 109 / .1); border-radius: clamp(1.15rem, 2vw, 1.75rem); background: #fff; box-shadow: 0 1rem 2rem rgb(7 54 109 / .05); opacity: .58; scroll-snap-align: start; transform: scale(.955); transition: opacity .42s var(--ibrs-ease), transform .52s var(--ibrs-ease), box-shadow .42s var(--ibrs-ease); }
.media-rail__slide.reveal:not(.is-visible) { opacity: 0; transform: translate3d(0, 1rem, 0) scale(.955); }
.media-rail__slide.is-current { box-shadow: 0 1.45rem 2.8rem rgb(7 54 109 / .14); opacity: 1; transform: scale(1); }
.media-rail__slide img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; }
.media-rail__slide figcaption { min-height: 4rem; padding: .95rem 1rem 1.05rem; color: var(--ibrs-muted); font-size: .88rem; line-height: 1.45; }
.media-rail__progress { display: none; }

/* Grid-row transitions keep the accordion fluid without competing inline height animations. */
.home-faq__answer { display: grid; height: auto; grid-template-rows: 0fr; padding: 0 1.5rem; overflow: hidden; transition: grid-template-rows .34s var(--ibrs-ease); will-change: auto; }
.home-faq__answer p { min-height: 0; padding-bottom: 0; overflow: hidden; transition: padding-bottom .34s var(--ibrs-ease); }
.home-faq__item[open] .home-faq__answer { grid-template-rows: 1fr; }
.home-faq__item[open] .home-faq__answer p { padding-bottom: 1.45rem; }
.home-faq__item[open].is-closing .home-faq__answer { grid-template-rows: 0fr; }
.home-faq__item[open].is-closing .home-faq__answer p { padding-bottom: 0; }

@media (max-width: 960px) {
  .home-products__showcase { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-product-card--derivatives { grid-column: span 2; grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr); grid-template-rows: 1fr; }
  .home-product-card--derivatives .home-product-card__media { min-height: 330px; }
  .media-rail__slide { flex-basis: min(62vw, 520px); }
}

@media (max-width: 720px) {
  .home-products__heading, .home-fieldwork__heading { align-items: flex-start; flex-direction: column; }
  .home-products__showcase { grid-template-columns: 1fr; }
  .home-product-card--derivatives { display: grid; grid-column: auto; grid-template-columns: 1fr; grid-template-rows: minmax(280px, 1fr) auto; }
  .home-product-card--derivatives .home-product-card__media { min-height: 280px; }
  .home-product-card--cpo .home-product-card__media, .home-product-card--pko .home-product-card__media { min-height: 360px; aspect-ratio: 4 / 5; }
  .home-fieldwork__actions { justify-content: flex-start; }
  .media-rail__slide { flex-basis: 78vw; grid-template-rows: minmax(330px, 1fr) auto; }
  .home-faq__answer { padding-right: 0; padding-left: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .home-product-card__media img, .media-rail, .media-rail__slide img, .home-faq__answer, .home-faq__answer p { scroll-behavior: auto; transition: none; }
}

/* Supplied vector artwork is secondary to operational photography, but gives each section a recognisable subject. */
.service-map__media--illustration { display: grid; place-items: center; background: linear-gradient(145deg, #fafdff 0%, var(--ibrs-sky) 100%); }
.service-map__media--illustration img { width: 100%; height: 100%; min-height: 0; padding: clamp(.4rem, 1.2vw, .9rem); object-fit: contain; object-position: center; }
.about-field__media--illustration { display: grid; place-items: center; background: #fff; }
.about-field__media--illustration img { max-height: 460px; padding: clamp(1.25rem, 4vw, 3.5rem); object-fit: contain; object-position: center; }
.career-principles__media--illustration { display: grid; place-items: center; background: #fff; }
.career-principles__media--illustration img { position: static; height: auto; max-height: 100%; padding: clamp(1rem, 3vw, 2.5rem); object-fit: contain; }
.product-usecases__header { display: grid; grid-template-columns: minmax(0, .95fr) minmax(240px, .55fr); gap: clamp(2rem, 8vw, 7rem); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.product-usecases__header .product-usecases__intro { margin-bottom: 0; }
.product-usecases__illustration { width: min(100%, 330px); margin: 0; justify-self: end; padding: clamp(.8rem, 2vw, 1.35rem); border: 1px solid var(--ibrs-line); border-radius: var(--ibrs-radius); background: #fff; }
.product-usecases__illustration img { width: 100%; height: auto; }
.contact-details__illustration { width: min(100%, 390px); margin: 1.75rem 0 1.5rem; padding: 1rem; border: 1px solid var(--ibrs-line); border-radius: var(--ibrs-radius); background: #fff; }
.contact-details__illustration img { width: 100%; height: auto; }

/* The service CTA is the only direct CTA on this page, with a restrained geometry cue. */
.service-next__inner { position: relative; isolation: isolate; overflow: hidden; padding: clamp(2rem, 4vw, 3.25rem); }
.service-next__inner::before { position: absolute; top: -11rem; right: 11%; z-index: -1; width: min(28vw, 340px); aspect-ratio: 1; border: 1px solid rgb(255 255 255 / .28); border-radius: 50%; content: ''; }
.service-next__inner::after { position: absolute; right: 31%; bottom: -3.7rem; z-index: -1; width: 7.4rem; aspect-ratio: 1; border-radius: 50%; background: rgb(0 125 97 / .65); content: ''; }
.service-next__inner > * { position: relative; z-index: 1; }

/* Footer proportions reserve space for a readable company summary and contact details. */
.site-footer { padding: clamp(2.75rem, 5vw, 4.25rem) 0 0; }
.site-footer__grid { grid-template-columns: minmax(220px, .86fr) minmax(120px, .5fr) minmax(140px, .62fr) minmax(285px, 1.18fr); gap: clamp(1.35rem, 3.2vw, 3.5rem); padding: 0 0 clamp(3rem, 5vw, 4.5rem); }
.site-footer__brand > p { max-width: 34ch; margin-bottom: 0; }
.site-footer a { overflow-wrap: normal; }
.site-footer__contact { min-width: 0; }
.site-footer__contact p { white-space: nowrap; }
.site-footer__address { max-width: 36ch; overflow-wrap: normal; }

/* Career uses an editorial grid inspired by bento layouts, without inventing job claims. */
.career-hero { position: relative; overflow: hidden; padding-block: clamp(3.5rem, 7vw, 7.5rem); background: #eef6f8; }
.career-hero__grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(460px, 1.12fr); gap: clamp(3rem, 8vw, 9rem); align-items: center; }
.career-hero__content h1 { max-width: 10ch; margin-bottom: 1.35rem; }
.career-hero__content > p:not(.kicker) { max-width: 44ch; margin-bottom: 2rem; color: var(--ibrs-muted); font-size: clamp(1.05rem, 1.5vw, 1.2rem); }
.career-hero__media { position: relative; z-index: 1; margin: 0; }
.career-hero__media::before { position: absolute; top: -2rem; right: 2rem; bottom: 2rem; left: -2rem; z-index: -1; border: 1px solid rgb(0 125 97 / .25); content: ''; }
.career-hero__media::after { position: absolute; right: -1rem; bottom: -1rem; z-index: -1; width: 37%; height: 28%; background: var(--ibrs-green); content: ''; }
.career-hero__media img { width: 100%; aspect-ratio: 6 / 5; border-radius: var(--ibrs-radius) var(--ibrs-radius) 3px var(--ibrs-radius); box-shadow: var(--ibrs-shadow); object-fit: cover; object-position: center; }
.career-section-heading { display: grid; grid-template-columns: minmax(0, .68fr) minmax(280px, .78fr); gap: clamp(2rem, 8vw, 8rem); align-items: end; max-width: 1100px; margin-bottom: clamp(2.5rem, 5vw, 4.25rem); }
.career-section-heading h2 { max-width: 10ch; margin: 0; }
.career-section-heading p { max-width: 47ch; margin: 0; color: var(--ibrs-muted); font-size: 1.05rem; }
.career-principles__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.career-principle, .career-principles__media { min-width: 0; min-height: 240px; margin: 0; overflow: hidden; border: 1px solid rgb(7 54 109 / .12); border-radius: var(--ibrs-radius); }
.career-principle { display: flex; flex-direction: column; justify-content: flex-end; grid-column: span 4; padding: clamp(1.5rem, 3vw, 2.4rem); background: #fff; }
.career-principle--ink { min-height: 370px; grid-column: span 5; background: var(--ibrs-navy); }
.career-principle--3 { background: #e3f2ee; }
.career-principle span { color: var(--ibrs-green); font-size: .76rem; font-weight: 800; letter-spacing: .13em; }
.career-principle h3 { max-width: 16ch; margin: 2.7rem 0 .65rem; color: var(--ibrs-navy); font-size: clamp(1.35rem, 2.1vw, 1.85rem); letter-spacing: -.04em; line-height: 1.04; }
.career-principle p { max-width: 31ch; margin: 0; color: var(--ibrs-muted); font-size: .94rem; line-height: 1.5; }
.career-principle--ink span { color: #a8e4d5; }
.career-principle--ink h3, .career-principle--ink p { color: #fff; }
.career-principles__media { position: relative; height: 370px; min-height: 0; grid-column: span 7; background: var(--ibrs-sky); }
.career-principles__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.career-openings { background: #f7fafb; }
.career-openings__grid { display: grid; grid-template-columns: minmax(240px, .66fr) minmax(0, 1.34fr); gap: clamp(2rem, 8vw, 8rem); align-items: start; }
.career-openings__intro h2 { max-width: 10ch; margin: 0 0 1rem; }
.career-openings__intro > p:last-child { max-width: 39ch; margin: 0; color: var(--ibrs-muted); }
.career-openings__list { border-top: 1px solid var(--ibrs-line); }
.career-opening { display: grid; grid-template-columns: minmax(190px, .72fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: clamp(1.5rem, 3vw, 2.2rem) 0; border-bottom: 1px solid var(--ibrs-line); }
.career-opening span { color: var(--ibrs-green); font-size: .74rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.career-opening h3 { max-width: 16ch; margin: .65rem 0 0; color: var(--ibrs-navy); font-size: clamp(1.35rem, 2.2vw, 1.95rem); letter-spacing: -.04em; line-height: 1.05; }
.career-opening p { max-width: 42ch; margin: 0; align-self: end; color: var(--ibrs-muted); }
.career-application { padding-top: 0; }
.career-application__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; align-items: end; isolation: isolate; overflow: hidden; padding: clamp(2rem, 4vw, 4rem); border-radius: var(--ibrs-radius); background: var(--ibrs-navy); color: #fff; }
.career-application__inner::after { position: absolute; top: -42%; right: 10%; z-index: -1; width: min(25vw, 290px); aspect-ratio: 1; border: 1px solid rgb(255 255 255 / .3); border-radius: 50%; content: ''; }
.career-application__inner h2 { max-width: 13ch; margin: 0 0 .8rem; color: #fff; }
.career-application__inner > div > p:last-child { max-width: 54ch; margin: 0; color: #dceaf7; }
.career-application__inner .kicker { color: #9de0d1; }

@media (max-width: 960px) {
  .home-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .about-field > .shell { grid-template-columns: 1fr; gap: 2.25rem; }
  .about-field__media { grid-column: 1; grid-row: 1; height: min(56vw, 420px); }
  .about-field__copy { grid-column: 1; grid-row: 2; }
  .site-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(260px, 1fr); gap: 2.75rem 3.25rem; }
  .site-footer__grid > :last-child { grid-column: auto; }
  .career-hero__grid { grid-template-columns: minmax(0, .8fr) minmax(340px, 1fr); gap: 2.75rem; }
  .career-section-heading, .career-openings__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .career-principle--ink, .career-principles__media { grid-column: span 6; }
  .career-principle { grid-column: span 4; }
}

@media (max-width: 720px) {
  .home-hero { min-height: auto; }
  .home-hero__grid, .career-hero__grid { grid-template-columns: 1fr; padding-block: 3.5rem; }
  .home-hero__media::before, .career-hero__media::before { top: -1.25rem; right: 1.25rem; bottom: 1.25rem; left: -1.25rem; }
  .home-hero__media img { aspect-ratio: auto; border-radius: 2px 1.7rem 2px 1.7rem; }
  .product-usecases__header { grid-template-columns: 1fr; gap: 1.5rem; }
  .product-usecases__illustration { width: min(100%, 310px); justify-self: start; }
  .contact-details__illustration { width: min(100%, 340px); }
  .site-footer__grid { grid-template-columns: 1fr; gap: 2rem; }
  .site-footer__brand { grid-column: auto; }
  .site-footer__contact p { white-space: normal; }
  .career-hero { padding-block: 3.5rem 4rem; }
  .career-hero__media { width: min(100%, 560px); }
  .career-section-heading { display: block; }
  .career-section-heading h2 { margin-bottom: 1rem; }
  .career-principles__grid { grid-template-columns: 1fr; }
  .career-principle, .career-principle--ink, .career-principles__media { min-height: 250px; grid-column: auto; }
  .career-principles__media { height: 300px; min-height: 300px; }
  .career-opening { grid-template-columns: 1fr; gap: .9rem; }
  .career-application__inner { grid-template-columns: 1fr; align-items: start; }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero__media img, .career-hero__media img { transition: none; }
}

/* Square artwork keeps the third and fourth service cards balanced instead of stretching the illustrations into banners. */
@media (min-width: 961px) {
  .service-map__card--3, .service-map__card--4 { grid-column: span 6; }
  .service-map__card--3 { grid-template-columns: minmax(220px, .92fr) minmax(0, 1.08fr); grid-template-rows: minmax(0, 1fr); }
  .service-map__card--4 { grid-template-columns: minmax(0, 1.08fr) minmax(220px, .92fr); grid-template-rows: minmax(0, 1fr); }
  .service-map__card--3 .service-map__media { grid-column: 1; grid-row: 1; aspect-ratio: 1 / 1; }
  .service-map__card--3 .service-map__copy { grid-column: 2; grid-row: 1; }
  .service-map__card--4 .service-map__media { grid-column: 2; grid-row: 1; aspect-ratio: 1 / 1; }
  .service-map__card--4 .service-map__copy { grid-column: 1; grid-row: 1; }
}

@media (max-width: 960px) {
  .service-map__card--3, .service-map__card--4 { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
  .service-map__card--3 .service-map__media, .service-map__card--4 .service-map__media { aspect-ratio: 1 / 1; min-height: 0; }
  .service-map__card--3 .service-map__media img, .service-map__card--4 .service-map__media img { min-height: 0; }
}

/* ============================================================
   Executive refinement: unified surface rhythm, a photo-led hero,
   breadcrumb page headers, and a dependable gallery rail.
   ============================================================ */
:root { --ibrs-tint: #eef5f8; }

/* --- Surface rhythm: one tint alternating with white. --- */
.section--tint,
.home-services,
.home-products,
.home-fieldwork,
.home-faq,
.career-openings { background: var(--ibrs-tint); }
.home-proof,
.home-flow,
.commitment--callout,
.product-usecases,
.about-timeline { background: #fff; }
.service-overview { background: var(--ibrs-tint); }
.home-proof__item { box-shadow: 0 1px 2px rgb(7 54 109 / .05); }

/* --- Home hero: documentary photography with corporate framing. --- */
.home-hero { min-height: min(760px, calc(100dvh - 72px)); background: linear-gradient(118deg, #fbfdff 0%, #f2f8f6 55%, #e4f0ec 100%); }
.home-hero::before { top: -14rem; right: -12rem; width: min(46vw, 620px); height: auto; aspect-ratio: 1; border: 1px solid rgb(0 125 97 / .2); background: none; }
.home-hero::after { width: min(30vw, 420px); height: 30%; background: linear-gradient(135deg, rgb(0 125 97 / .1), rgb(7 54 109 / .03)); }
.home-hero__grid { grid-template-columns: minmax(0, .92fr) minmax(400px, 1.08fr); gap: clamp(2.75rem, 6vw, 6.5rem); align-items: center; }
.home-hero__visual { position: relative; z-index: 1; width: min(100%, 640px); min-height: 0; justify-self: end; }
.home-hero__visual::before { position: absolute; top: 22px; right: -16px; bottom: -16px; left: 22px; z-index: 0; border: 1px solid rgb(0 125 97 / .3); border-radius: var(--ibrs-radius); content: ''; }
.home-hero__photo { position: relative; z-index: 1; margin: 0; overflow: hidden; border: 1px solid rgb(7 54 109 / .08); border-radius: var(--ibrs-radius); background: var(--ibrs-sky); box-shadow: var(--ibrs-shadow); }
.home-hero__photo img { width: 100%; aspect-ratio: 5 / 5.6; object-fit: cover; object-position: center; }
.home-hero__credential { position: absolute; z-index: 2; bottom: -18px; left: -14px; display: flex; max-width: min(86%, 380px); align-items: center; gap: .9rem; padding: .9rem 1.2rem; border: 1px solid rgb(7 54 109 / .08); border-radius: 14px; background: #fff; box-shadow: 0 18px 40px rgb(7 54 109 / .14); }
.home-hero__credential-mark { display: grid; flex: 0 0 auto; place-items: center; min-width: 3.2rem; max-width: 3.2rem; aspect-ratio: 1; padding: .3rem; border-radius: 10px; background: var(--ibrs-green); color: #fff; font-size: .66rem; font-weight: 800; letter-spacing: .03em; line-height: 1.2; text-align: center; }
.home-hero__credential p { margin: 0; color: var(--ibrs-muted); font-size: .85rem; line-height: 1.35; }
.home-hero__actions { display: flex; flex-wrap: wrap; gap: .9rem; }
.button--ghost { border-color: rgb(7 54 109 / .3); background: transparent; color: var(--ibrs-navy); }
.button--ghost:hover, .button--ghost:focus-visible { border-color: var(--ibrs-navy); background: var(--ibrs-navy); color: #fff; }

/* --- Executive page header: dark navy theme, breadcrumb, statement, single accent rule. --- */
.page-hero,
.page-hero--about,
.career-hero,
.single-post__header,
.blog-hero {
  position: relative;
  overflow: clip;
  padding-block: clamp(4.5rem, 8vw, 7.25rem) clamp(4rem, 7vw, 6.5rem);
  background: linear-gradient(145deg, #062347 0%, var(--ibrs-navy) 60%, #031429 100%);
  color: #ffffff;
}
.page-hero::before,
.career-hero::before,
.single-post__header::before {
  position: absolute;
  top: -30%;
  right: -6%;
  width: min(40vw, 520px);
  aspect-ratio: 1;
  border: 1px solid rgb(85 214 190 / .12);
  border-radius: 50%;
  content: '';
  pointer-events: none;
}
.page-hero::after { width: 0; height: 0; border: 0; content: none; }
.page-hero__grid { position: relative; z-index: 1; display: block; }
.page-hero__content { max-width: 880px; }
.page-hero__breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: clamp(1.5rem, 3vw, 2.25rem); font-size: .78rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.page-hero__breadcrumb a { color: rgb(255 255 255 / .65); text-decoration: none; transition: color .2s var(--ibrs-ease); }
.page-hero__breadcrumb a:hover, .page-hero__breadcrumb a:focus-visible { color: #55d6be; }
.page-hero__breadcrumb span[aria-hidden] { color: rgb(255 255 255 / .3); }
.page-hero__breadcrumb-current { color: #55d6be; }
.page-hero__content h1 { max-width: 16ch; margin-bottom: 1.35rem; font-size: clamp(2.7rem, 4.8vw, 4.6rem); color: #ffffff; }
.page-hero__summary { max-width: 58ch; margin-bottom: 0; color: rgb(255 255 255 / .82); font-size: clamp(1.05rem, 1.4vw, 1.2rem); }
.page-hero__rule { width: 58px; height: 3px; margin-top: clamp(1.75rem, 3vw, 2.5rem); border-radius: 2px; background: #55d6be; }

/* Dark hero badges on About page */
.page-hero--about .about-badge {
  background: rgb(255 255 255 / .08);
  border-color: rgb(255 255 255 / .18);
  color: #ffffff;
  box-shadow: none;
  backdrop-filter: blur(8px);
}
.page-hero--about .about-badge svg {
  color: #55d6be;
}

/* Dark hero topics on News page */
.page-hero--news .news-topic-pill {
  border-color: rgb(255 255 255 / .2);
  background: rgb(255 255 255 / .08);
  color: rgb(255 255 255 / .8);
}
.page-hero--news .news-topic-pill:hover,
.page-hero--news .news-topic-pill--active {
  border-color: #55d6be;
  background: #55d6be;
  color: var(--ibrs-navy);
}

/* Dark hero on Career page */
.career-hero {
  padding-block: clamp(4.5rem, 8vw, 6.5rem);
}
.career-hero .kicker {
  color: #55d6be;
}
.career-hero h1 {
  color: #ffffff;
}
.career-hero p {
  color: rgb(255 255 255 / .85);
}
.career-hero__media img {
  border-radius: var(--ibrs-radius);
  border: 1px solid rgb(255 255 255 / .12);
  box-shadow: 0 16px 40px rgb(0 0 0 / .35);
}

/* Single post header dark mode */
.single-post__header {
  padding-block: clamp(4.5rem, 7.5vw, 6.5rem) clamp(3rem, 5vw, 4.5rem);
}
.single-post__header h1,
.single-post__title {
  color: #ffffff !important;
}
.single-post__lead {
  color: rgb(255 255 255 / .85) !important;
}
.single-post__breadcrumb {
  color: rgb(255 255 255 / .6);
}
.single-post__breadcrumb a {
  color: rgb(255 255 255 / .8) !important;
}
.single-post__breadcrumb a:hover,
.single-post__breadcrumb a:focus-visible {
  color: #55d6be !important;
}
.single-post__breadcrumb-current {
  color: #55d6be !important;
}
.single-post__category,
.single-post__meta-item--category {
  display: inline-block;
  padding: .35rem .85rem;
  border-radius: 999px;
  background: rgb(85 214 190 / .15) !important;
  color: #55d6be !important;
  border: 1px solid rgb(85 214 190 / .35) !important;
  font-size: .74rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.single-post__meta-item {
  color: rgb(255 255 255 / .75) !important;
}
.single-post__meta-divider {
  color: rgb(255 255 255 / .4) !important;
}

/* --- Gallery rail: native scroll, drag support, visible progress. --- */
.media-rail { cursor: grab; }
.media-rail.is-dragging { scroll-behavior: auto; cursor: grabbing; user-select: none; }
.media-rail__slide a { display: block; height: 100%; min-height: 0; overflow: hidden; }
.media-rail__slide img { height: 100%; }
.media-rail__progress { position: relative; display: block; height: 2px; margin-top: 1rem; border-radius: 2px; background: rgb(7 54 109 / .12); overflow: hidden; }
.media-rail__progress::before { position: absolute; inset: 0 auto 0 0; width: calc(var(--rail-progress, 0) * 100%); border-radius: inherit; background: var(--ibrs-green); content: ''; transition: width .15s linear; }

/* --- Scroll-driven pinned showcase (desktop, fine pointer):
       the stage sticks while page scroll translates the track. --- */
.home-fieldwork { position: relative; }
.home-fieldwork.is-scroll-driven { overflow: visible; padding-bottom: 0; }
.home-fieldwork.is-scroll-driven .shell { min-height: var(--rail-shell-h, calc(var(--rail-travel, 0px) + 100vh)); display: flex; flex-direction: column; }
.home-fieldwork.is-scroll-driven .media-rail__stage { position: sticky; top: calc(var(--ibrs-header-h, 72px) + 1.25rem); }
.home-fieldwork.is-scroll-driven .media-rail { overflow: hidden; padding-bottom: .75rem; scroll-snap-type: none; }
.home-fieldwork.is-scroll-driven .media-rail__track { will-change: transform; }
.home-fieldwork.is-scroll-driven .media-rail__slide { flex-basis: min(54vw, 700px); height: min(62svh, 580px); grid-template-rows: minmax(0, 1fr) auto; }

@media (prefers-reduced-motion: reduce) {
  .media-rail__progress::before { transition: none; }
}

@media (max-width: 960px) {
  .home-hero { min-height: auto; }
  .home-hero__grid { grid-template-columns: 1fr; gap: 2.5rem; padding-block: clamp(2.5rem, 5vw, 3.5rem); }
  .home-hero__content h1 { max-width: none; }
  .home-hero__visual { width: 100%; max-width: 540px; justify-self: start; }
  .about-journey__grid, .about-field__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .product-reference--derivatives { grid-column: auto; }
}

@media (max-width: 720px) {
  .home-hero { min-height: auto; }
  .home-hero__grid { gap: 2rem; padding-block: 2.25rem 2.75rem; }
  .home-hero__photo img { aspect-ratio: 4 / 3.2; }
  .home-hero__visual::before { top: 12px; right: -8px; bottom: -8px; left: 12px; }
  .home-hero__credential { right: .85rem; bottom: .85rem; left: .85rem; max-width: none; padding: .75rem 1rem; gap: .75rem; }
  .home-hero__credential-mark { min-width: 2.6rem; max-width: 2.6rem; font-size: .62rem; }
  .page-hero { padding-block: clamp(3.25rem, 7vw, 5.5rem) clamp(2.75rem, 6vw, 4.5rem); }
  .page-hero__breadcrumb { font-size: .72rem; }
  .page-hero__content h1 { font-size: clamp(2.1rem, 7.5vw, 3.8rem); word-break: break-word; }
  .page-hero__rule { margin-top: 1.5rem; }
  .about-practice__grid, .purpose-grid--balanced { grid-template-columns: 1fr; }
  .about-journey__card { grid-template-columns: 1fr; gap: .9rem; text-align: left; }
  .about-journey__cards::before { display: none; }
  .product-reference--derivatives, .product-reference--cpo, .product-reference--pko, .product-reference--stearine, .product-reference--glycerin, .product-reference--coconutoil { grid-template-columns: 1fr; grid-template-rows: minmax(220px, 300px) auto; }
  .product-reference--pko .product-reference__copy, .product-reference--glycerin .product-reference__copy, .product-reference--coconutoil .product-reference__copy { grid-row: 2; }
  .product-reference--pko .product-reference__media, .product-reference--glycerin .product-reference__media, .product-reference--coconutoil .product-reference__media { grid-row: 1; }
}

@media (max-width: 480px) {
  .home-hero__actions { flex-direction: column; width: 100%; }
  .home-hero__actions .button { width: 100%; }
  .document-grid { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .document-card span { padding: .65rem .75rem .2rem; font-size: .8rem; }
  .document-card small { padding: 0 .75rem .65rem; font-size: .72rem; }
  .contact-form input, .contact-form textarea { font-size: 16px; }
}

/* Floating WhatsApp Widget */
.floating-whatsapp {
  position: fixed;
  bottom: clamp(1.25rem, 3vw, 2rem);
  right: clamp(1.25rem, 3vw, 2rem);
  z-index: 999;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .6rem 1.05rem .6rem .6rem;
  border-radius: 999px;
  background: #25D366;
  color: #ffffff;
  text-decoration: none;
  font-weight: 750;
  font-size: .88rem;
  box-shadow: 0 8px 24px rgb(37 211 102 / .4), 0 2px 6px rgb(7 54 109 / .15);
  transition: transform .25s var(--ibrs-ease), box-shadow .25s var(--ibrs-ease), background .2s var(--ibrs-ease);
}
.floating-whatsapp:hover,
.floating-whatsapp:focus-visible {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 14px 32px rgb(37 211 102 / .5), 0 4px 10px rgb(7 54 109 / .2);
  background: #1eb956;
  color: #ffffff;
}
.floating-whatsapp:active {
  transform: translateY(0) scale(.98);
}
.floating-whatsapp__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #ffffff;
  color: #25D366;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgb(0 0 0 / .08);
}
.floating-whatsapp__label {
  padding-right: .3rem;
  white-space: nowrap;
  letter-spacing: -.01em;
}

@media (max-width: 600px) {
  .floating-whatsapp {
    padding: .4rem;
    gap: 0;
    bottom: 1.25rem;
    right: 1.25rem;
  }
  .floating-whatsapp__label {
    display: none;
  }
  .floating-whatsapp__icon {
    width: 48px;
    height: 48px;
  }
}

/* Service Sub-Links on /services/ */
.service-sublinks {
  margin-top: 1.6rem;
  padding-top: 1.35rem;
  border-top: 1px dashed var(--ibrs-line);
}
.service-sublinks__label {
  display: block;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ibrs-green);
  margin-bottom: .85rem;
}
.service-sublinks__grid {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.service-sublink-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 1.05rem;
  font-size: .88rem;
  font-weight: 700;
  color: var(--ibrs-navy);
  background: #fff;
  border: 1px solid rgb(7 54 109 / .16);
  border-radius: 999px;
  text-decoration: none;
  transition: all .25s var(--ibrs-ease);
  box-shadow: 0 2px 6px rgb(7 54 109 / .04);
}
.service-sublink-pill:hover,
.service-sublink-pill:focus-visible {
  background: var(--ibrs-navy);
  border-color: var(--ibrs-navy);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgb(7 54 109 / .12);
}
.service-sublink-pill__arrow {
  color: var(--ibrs-green);
  font-weight: 800;
  transition: transform .25s var(--ibrs-ease);
}
.service-sublink-pill:hover .service-sublink-pill__arrow {
  color: #a8e4d5;
  transform: translateX(3px);
}

/* Sub-Service Dedicated Page Layout */
.subservice-overview {
  display: grid;
  grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}
.subservice-overview__media {
  overflow: hidden;
  border-radius: var(--ibrs-radius);
  background: var(--ibrs-sky);
  box-shadow: var(--ibrs-shadow);
}
.subservice-overview__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
.subservice-overview__copy h2 {
  margin-top: 0;
  margin-bottom: 1rem;
  font-size: clamp(1.6rem, 2.5vw, 2.4rem);
  color: var(--ibrs-navy);
}
.subservice-overview__copy p {
  color: var(--ibrs-muted);
  font-size: 1.04rem;
  line-height: 1.65;
  margin-bottom: 1.5rem;
}
.subservice-capabilities {
  margin-top: 1.8rem;
  padding: 1.6rem;
  background: #f8fafc;
  border: 1px solid var(--ibrs-line);
  border-radius: var(--ibrs-radius);
}
.subservice-capabilities h3 {
  margin: 0 0 1rem;
  font-size: 1.1rem;
  color: var(--ibrs-navy);
}
.subservice-capabilities__list {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding: 0 0 0 1.25rem;
  color: var(--ibrs-body);
  font-size: .94rem;
  line-height: 1.5;
}
.subservice-capabilities__list li::marker {
  color: var(--ibrs-green);
}
.subservice-highlights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-top: 3.5rem;
}
.subservice-highlight-card {
  padding: 1.65rem;
  background: #fff;
  border: 1px solid var(--ibrs-line);
  border-radius: var(--ibrs-radius);
  box-shadow: 0 2px 10px rgb(7 54 109 / .03);
  transition: transform .3s var(--ibrs-ease), border-color .3s var(--ibrs-ease);
}
.subservice-highlight-card:hover {
  transform: translateY(-3px);
  border-color: var(--ibrs-green);
}
.subservice-highlight-card h4 {
  margin: 0 0 .5rem;
  font-size: 1.05rem;
  color: var(--ibrs-navy);
}
.subservice-highlight-card p {
  margin: 0;
  color: var(--ibrs-muted);
  font-size: .9rem;
  line-height: 1.55;
}
.subservice-nav {
  margin-top: 3.5rem;
  padding: 2rem;
  background: var(--ibrs-sky);
  border-radius: var(--ibrs-radius);
  border: 1px solid rgb(7 54 109 / .08);
}
.subservice-nav__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}
.subservice-nav__header h3 {
  margin: 0;
  font-size: 1.15rem;
  color: var(--ibrs-navy);
}
.subservice-nav__header a {
  color: var(--ibrs-green);
  font-weight: 700;
  font-size: .88rem;
  text-decoration: none;
}
.subservice-nav__header a:hover {
  text-decoration: underline;
}
.subservice-nav__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}
.subservice-nav__card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.15rem;
  background: #fff;
  border: 1px solid var(--ibrs-line);
  border-radius: calc(var(--ibrs-radius) * .8);
  text-decoration: none;
  color: var(--ibrs-navy);
  transition: all .25s var(--ibrs-ease);
}
.subservice-nav__card:hover {
  border-color: var(--ibrs-navy);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgb(7 54 109 / .08);
}
.subservice-nav__card.is-active {
  border-color: var(--ibrs-green);
  background: #f0fdf4;
}
.subservice-nav__card strong {
  font-size: .95rem;
  margin-bottom: .35rem;
}
.subservice-nav__card small {
  font-size: .78rem;
  color: var(--ibrs-muted);
}
@media (max-width: 960px) {
  .subservice-overview {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .subservice-highlights {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .subservice-nav__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .service-sublinks__grid {
    flex-direction: column;
  }
  .service-sublink-pill {
    width: 100%;
    justify-content: space-between;
  }
  .subservice-nav__grid {
    grid-template-columns: 1fr;
  }
  .subservice-nav__header {
    flex-direction: column;
    align-items: flex-start;
    gap: .5rem;
  }
}

/* Featured Certificate Card on /certification/ */
.featured-certificate {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  align-items: center;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  background: #fff;
  border: 1px solid rgb(7 54 109 / .12);
  border-radius: var(--ibrs-radius);
  box-shadow: 0 10px 30px rgb(7 54 109 / .06);
}
.featured-certificate__media {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--ibrs-radius) * .8);
  border: 1px solid rgb(7 54 109 / .15);
  background: #f8fafc;
  box-shadow: 0 6px 18px rgb(7 54 109 / .08);
}
.featured-certificate__media a {
  display: block;
  position: relative;
  text-decoration: none;
}
.featured-certificate__media img {
  width: 100%;
  height: auto;
  aspect-ratio: 1653 / 2339;
  object-fit: contain;
  display: block;
  transition: transform .35s var(--ibrs-ease);
}
.featured-certificate__media:hover img {
  transform: scale(1.02);
}
.featured-certificate__zoom {
  position: absolute;
  bottom: .75rem;
  left: 50%;
  transform: translateX(-50%);
  padding: .35rem .75rem;
  background: rgb(7 54 109 / .88);
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  border-radius: 999px;
  white-space: nowrap;
  pointer-events: none;
  backdrop-filter: blur(4px);
}
.featured-certificate__badge {
  display: inline-flex;
  margin-bottom: .85rem;
}
.featured-certificate__badge span {
  display: inline-block;
  padding: .35rem .85rem;
  background: #eaf7f3;
  color: var(--ibrs-green);
  border: 1px solid rgb(0 125 97 / .25);
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.featured-certificate__content h3 {
  margin: 0 0 .85rem;
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  color: var(--ibrs-navy);
}
.featured-certificate__content p {
  color: var(--ibrs-muted);
  font-size: .95rem;
  line-height: 1.6;
  margin: 0 0 1.5rem;
}
.featured-certificate__meta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1.5rem;
  margin: 0 0 1.75rem;
  padding: 1.25rem;
  background: #f8fafc;
  border: 1px solid var(--ibrs-line);
  border-radius: calc(var(--ibrs-radius) * .7);
}
.featured-certificate__meta dt {
  font-size: .74rem;
  font-weight: 750;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ibrs-muted);
  margin-bottom: .25rem;
}
.featured-certificate__meta dd {
  margin: 0;
  font-size: .9rem;
  color: var(--ibrs-navy);
}
.featured-certificate__meta code {
  font-size: .85rem;
  font-weight: 700;
  color: var(--ibrs-navy);
  background: #e2e8f0;
  padding: .15rem .35rem;
  border-radius: 4px;
}
.featured-certificate__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .85rem;
}
.section-subheading {
  margin-bottom: 1.75rem;
}
.section-subheading h3 {
  margin: 0 0 .4rem;
  font-size: 1.25rem;
  color: var(--ibrs-navy);
}
.section-subheading p {
  margin: 0;
  color: var(--ibrs-muted);
  font-size: .92rem;
}

@media (max-width: 860px) {
  .featured-certificate {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .featured-certificate__media {
    max-width: 320px;
    margin: 0 auto;
  }
  .featured-certificate__meta {
    grid-template-columns: 1fr;
    gap: .75rem;
  }
  .featured-certificate__actions {
    flex-direction: column;
  }
  .featured-certificate__actions .button {
    width: 100%;
    justify-content: center;
  }
}
