/* Case template 4961. Native blocks share these styles with the editor canvas. */
.d030-portfolio-case { background:#111112; overflow-x:clip; }
:is(.d030-case-hero,.d030-case-detail,.d030-case-body,.d030-portfolio-related-section,.d030-case-team) {
  font-family:"Work Sans",sans-serif; font-weight:500; font-size:16px; line-height:1.65;
  color:#111112; margin:0; max-width:none;
}
:is(.d030-case-hero,.d030-case-detail,.d030-case-body,.d030-case-team) :where(h1,h2,h3,p,figure,ul,.wp-block-group,.wp-block-buttons) { margin-block:0; }
/* Flex section gaps replace WordPress prose-flow margins in these layout groups. */
:is(.d030-case-hero,.d030-case-detail,.d030-case-body,.d030-case-team) .wp-block-group.is-layout-flow > * { margin-block:0; }
.d030-case-detail.d030-case-detail > * { margin-block:0; }
.d030-case-hero { background:#f6f6f8; border-radius:0 0 90px 90px; padding:32px 32px 333px; text-align:center; }
.d030-case-hero-inner { max-width:550px; margin-inline:auto; }
.d030-case-hero .d030-case-title { width:fit-content; max-width:100%; margin-inline:auto; color:#111112; font-size:72px; font-weight:700; line-height:normal; letter-spacing:0; }
/* Source OMGF has no 600 face: its computed 600 resolves to Work-Sans-Bold.
   Keep this visual fallback scoped to case content, preserving shared font mappings. */
:is(.d030-case-detail,.d030-portfolio-related-section) :is(.d030-portfolio-facts__term,.d030-case-intro-title,.d030-case-related-title,.d030-portfolio-related__labels li,.d030-portfolio-related__title) { font-variation-settings:"wght" 700; }
.d030-case-hero .d030-case-hero-inner.is-layout-flow > .d030-case-excerpt { margin-top:12px; color:#5e5e5e; font-size:14px; line-height:1.65; }
.d030-case-excerpt p { margin:0; }
.d030-case-detail { padding-inline:16px; background:#111112; color:#f6f6f8; display:flex; flex-direction:column; gap:20px; }
.d030-case-featured { position:relative; padding:0; width:100%; text-align:center; }
.d030-case-featured img { display:block; width:100%; max-width:1312px; height:auto; margin:-285px auto 0; border-radius:96px; }
.d030-case-intro { width:100%; max-width:1320px; margin-inline:auto; padding-top:48px; display:flex; gap:0; }
.d030-case-facts-column { width:50%; min-width:0; padding-right:48px; }
.d030-portfolio-facts { display:flex; flex-direction:column; gap:32px; }
.d030-portfolio-facts .d030-portfolio-facts__label { font-size:14px; font-weight:400; line-height:normal; color:#d1d1d1; margin:0; }
.d030-portfolio-facts__terms { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.d030-portfolio-facts__term { display:flex; align-items:center; justify-content:center; padding:14px 24px; border:1px solid #f6f6f8; border-radius:1000px; font-size:16px; font-weight:600; line-height:normal; color:#fff; }
.d030-case-intro-copy { width:50%; min-width:0; display:flex; flex-direction:column; gap:42px; }
.d030-case-intro-copy .d030-case-intro-title { color:#f6f6f8; font-size:32px; font-weight:600; line-height:normal; letter-spacing:0; }
.d030-case-intro-copy .d030-case-intro-text { color:#d1d1d1; font-size:16px; line-height:1.6; }
.d030-case-intro-image img { display:block; width:100%; height:auto; border-radius:24px; }
.d030-case-featured img,.d030-case-intro-image img { box-shadow:0 0 30px rgba(0,0,0,.15); }
.d030-case-body { padding:0 16px 96px; color:#f6f6f8; background:#111112; }
.d030-case-body-inner { max-width:1320px; margin-inline:auto; }
/* Rich case bodies retain the source's full-bleed images and native columns.
   Empty-body cases keep the already verified shell above. */
.d030-case-body--rich .d030-case-body-inner { display:flow-root; max-width:none; color:#d1d1d1; font-size:16px; font-weight:500; line-height:1.6; }
.d030-case-body--rich .d030-case-body-inner > .wp-block-columns { max-width:1320px; margin:96px auto; gap:48px; }
.d030-case-body--rich .d030-case-body-inner > .wp-block-image { width:100vw; max-width:none; height:60vh; margin:96px 0 96px -16px; }
.d030-case-body--rich .d030-case-body-inner > .wp-block-image img { display:block; width:100%; height:100%; object-fit:cover; }
.d030-case-body--rich .wp-block-column { min-width:0; }
.d030-case-body--rich .wp-block-column > * { margin-block:0; }
.d030-case-body--rich .wp-block-column > * + * { margin-block-start:24px; }
.d030-case-body--rich .wp-block-columns img { display:block; width:100%; height:auto; border-radius:24px; }
.d030-case-body--rich h2 { font-size:30px; font-weight:700; line-height:1.3; color:#fff; letter-spacing:normal; }
.d030-case-body--rich .d030-case-body-heading-wrap { display:block; }
.d030-case-body--rich .d030-case-body-inner .d030-case-body-heading { margin:45px 0 19px; }
.d030-case-body--rich .wp-block-list { margin-left:48px; padding:0; list-style:disc; }
.d030-case-body--rich .wp-block-list li { margin:0; }
.d030-case-body--rich strong { font-weight:700; }
@media (max-width:1024px) {
  .d030-case-body--rich .d030-case-body-inner > .wp-block-columns { margin-block:32px; gap:24px; }
  .d030-case-body--rich .d030-case-body-inner > .wp-block-image { height:40vh; margin-block:32px; }
}
@media (max-width:921px) {
  .d030-case-body--rich h2 { font-size:25px; }
  .d030-case-body--rich .d030-case-body-inner .d030-case-body-heading { margin-top:37.5px; margin-bottom:17.5px; }
}
@media (max-width:544px) {
  .d030-case-body--rich .wp-block-column:not(:last-child) { margin-bottom:20px; }
}
.d030-portfolio-related-section { background:#111112; color:#fff; padding:0 max(0px,calc((100% - 1320px)/2)) 64px; }
.d030-portfolio-related-section .d030-case-related-title { color:#fff; font-size:48px; font-weight:600; line-height:1.3; letter-spacing:0; text-align:center; margin:0 0 20px; }
.d030-portfolio-related-section > .d030-portfolio-related { margin-block:0; }
/* The original empty related loop retains its 60px box and 20px section gap. */
.d030-portfolio-related-section:not(:has(.d030-portfolio-related__card))::after { content:""; display:block; height:80px; }
.d030-case-team { padding:80px 20px; border-radius:90px 90px 0 0; background:#f6f6f8; }
.d030-case-team-inner { max-width:1320px; margin-inline:auto; display:flex; flex-direction:column; gap:20px; }
.d030-case-team .d030-case-team-title { font-size:48px; font-weight:700; line-height:1.3; color:#111112; text-align:center; letter-spacing:0; }
.d030-case-team-layout { display:flex; align-items:center; justify-content:space-between; gap:0; }
.d030-case-team-image { width:100%; min-width:0; flex-shrink:1; }
.d030-case-team-image img { display:block; width:100%; height:auto; border-radius:20px; }
.d030-case-team-copy { width:100%; min-width:0; flex-shrink:1; padding-left:72px; display:flex; flex-direction:column; gap:24px; }
.d030-case-team .d030-case-team-subtitle { font-size:32px; font-weight:700; line-height:1.3; color:#111112; letter-spacing:0; }
.d030-case-team-text { padding-right:30px; }
.d030-case-team .d030-case-team-text.is-layout-flow > p { margin:0 0 12px; }
.d030-case-team .d030-case-team-text.is-layout-flow > p:last-child { margin-bottom:0; }
.d030-case-team .d030-case-team-text.is-layout-flow > ul { margin:0 0 1.5em 3em; padding:0; list-style:disc; }
.d030-case-team-text li { margin:0; }
.d030-case-team-text strong { font-weight:700; }
.d030-case-team .d030-case-team-button { width:300px; max-width:100%; display:block; padding-bottom:8.4px; }
.d030-case-team-button .wp-block-button { width:100%; display:block; }
.d030-case-team-button .wp-block-button__link { display:block; position:relative; overflow:hidden; width:100%; background:#111112; color:#fff; border:0; border-radius:100px; padding:20px 16px; font-size:16px; font-weight:700; line-height:1; text-decoration:none; transition:background .2s,color .2s; }
.d030-case-team-button .wp-block-button__link:hover { background:#cdf7ad; color:#111112; }
.d030-case-team-button .wp-block-button__link { box-shadow:0 3px 8px rgba(5,10,57,.45); }
.d030-case-team-button .wp-block-button__link::after { content:""; position:absolute; inset:-70% auto -70% -60%; width:25%; background:linear-gradient(90deg,transparent,#ffffff70,transparent); transform:rotate(25deg); transition:left .6s; pointer-events:none; }
.d030-case-team-button .wp-block-button__link:hover::after { left:135%; }
.d030-case-observed { opacity:0; }
.d030-case-observed.d030-case-visible { opacity:1; animation:d030-case-fade 1.25s ease both; }
.d030-case-facts-column.d030-case-visible { animation-name:d030-case-left; }
.d030-case-intro-copy.d030-case-visible { animation-name:d030-case-right; }
.d030-case-team-inner.d030-case-visible { animation-name:d030-case-up; }
@keyframes d030-case-fade { from {opacity:0} to {opacity:1} }
@keyframes d030-case-left { from {opacity:0;transform:translateX(-100%)} to {opacity:1;transform:none} }
@keyframes d030-case-right { from {opacity:0;transform:translateX(100%)} to {opacity:1;transform:none} }
@keyframes d030-case-up { from {opacity:0;transform:translateY(100%)} to {opacity:1;transform:none} }
@media (max-width:1024px) {
  .d030-case-hero { position:relative; padding:48px 36px; border-radius:0; background:transparent; }
  .d030-case-hero::before { content:""; position:absolute; inset:0 16px; border-radius:48px 48px 0 0; background:#f6f6f8; }
  .d030-case-hero-inner { position:relative; max-width:320px; }
  .d030-case-hero .d030-case-title { font-size:32px; }
  .d030-case-featured img { margin-top:0; border-radius:0 0 48px 48px; }
  .d030-case-intro { flex-direction:column; }
  .d030-case-facts-column { width:100%; padding:0 0 32px; }
  .d030-case-intro-copy { width:100%; gap:14px; }
  .d030-case-intro-copy .d030-case-intro-title { font-size:28px; }
  .d030-case-intro-image { padding-top:18px; }
  .d030-portfolio-related-section { padding:0 16px 50px; }
  .d030-portfolio-related-section .d030-case-related-title { font-size:32px; }
  .d030-case-team { border-radius:48px 48px 0 0; }
  .d030-case-team .d030-case-team-title { font-size:24px; }
  .d030-case-team-layout { flex-direction:column; gap:24px; }
  .d030-case-team-copy { padding-left:0; }
  .d030-case-team .d030-case-team-subtitle { font-size:22px; }
  .d030-case-team .d030-case-team-button { width:50%; }
  .d030-case-hero-inner.d030-case-observed { opacity:1; animation:none; }
}
@media (max-width:921px) {
  .d030-case-team { font-size:14.592px; }
  .d030-case-team .d030-case-team-button { padding-bottom:7.08px; }
}
@media (max-width:767px) {
  .d030-case-intro .d030-case-observed { opacity:1; animation:none; }
  .d030-case-team { padding-block:48px; }
  .d030-case-team-copy { align-items:center; }
  .d030-case-team-subtitle,.d030-case-team-text { text-align:center; }
  .d030-case-team .d030-case-team-button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  .d030-case-observed { opacity:1; transform:none; animation:none; }
  .d030-case-team-button .wp-block-button__link::after { display:none; }
}
