/* Scoped to the merged service and case detail templates. */
.dih-content { --dih-purple:#7259ca; --dih-dark:#171632; --dih-pale:#f4f1fb; color:var(--dih-dark); line-height:1.65; }
.dih-content *, .dih-content *::before, .dih-content *::after { box-sizing:border-box; }
.dih-content [hidden] { display:none !important; }
.dih-container { width:min(1170px, calc(100% - 64px)); margin-inline:auto; }
.dih-section { padding-block:76px; scroll-margin-top:130px; }
.dih-content h1,.dih-content h2,.dih-content h3 { font-family:"alliance_no.1bold",sans-serif; color:var(--dih-dark); font-weight:normal; overflow-wrap:break-word; }
.dih-content h1 { font-size:clamp(32px,3.1vw,46px); line-height:1.14; letter-spacing:-1.1px; margin:0 0 25px; }
.dih-content h2 { font-size:clamp(26px,2.4vw,34px); line-height:1.25; margin:0 0 30px; letter-spacing:-.6px; }
.dih-content h3 { font-size:23px; line-height:1.32; margin:0 0 20px; }
.dih-content p { font-size:16px; line-height:1.65; color:inherit; }
.dih-content strong { font-family:"alliance_no.1bold",sans-serif; font-weight:normal; }
.dih-content a:focus-visible,.dih-content button:focus-visible,.dih-content summary:focus-visible,.dih-carousel-track:focus-visible { outline:3px solid #49308f; outline-offset:5px; }
.dih-prose p + p { margin-top:20px; }
.dih-content .dih-lead { color:var(--dih-purple); font-family:"alliance_no.1bold",sans-serif; font-size:21px; line-height:1.45; margin-bottom:25px; }
.dih-hero-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:64px; align-items:start; }
.dih-hero-image { height:100%; min-height:550px; max-height:790px; overflow:hidden; }
.dih-hero-image img { width:100%; height:100%; object-fit:cover; display:block; }
.dih-actions { display:flex; align-items:flex-start; flex-direction:column; gap:20px; margin-top:32px; }
.dih-content .dih-button { display:inline-flex; justify-content:space-between; align-items:center; gap:22px; background:var(--dih-purple); color:white; padding:16px 23px; min-height:52px; font-size:16px; line-height:1.45; font-family:"alliance_no.1bold",sans-serif; text-decoration:none; max-width:100%; transition:background .2s; }
.dih-button:hover { background:#554096; }
.dih-button span,.dih-text-link span { flex-shrink:0; font-size:23px; }
.dih-content .dih-text-link { display:inline-flex; align-items:center; gap:14px; color:#6045b3; font-family:"alliance_no.1bold",sans-serif; font-size:16px; line-height:1.5; text-decoration:none; }
.dih-text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.dih-service-blocks { background:#f7f7f8; }
.dih-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:46px 64px; }
.dih-service-grid article { border-top:1px solid #d9d4e6; padding-top:24px; }
.dih-number { display:block; color:var(--dih-purple); font-size:14px; margin-bottom:12px; font-family:"alliance_no.1bold",sans-serif; }
.dih-service-cta { margin-top:38px; text-align:center; }
.dih-service-cta .dih-button { min-width:240px; }
.dih-section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; }
.dih-funding-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:30px; }
.dih-funding-card { border-top:3px solid var(--dih-purple); padding:25px 24px; background:#faf9fc; display:flex; align-items:flex-start; flex-direction:column; gap:20px; }
.dih-funding-card h3 { margin:0; }
.dih-funding-card .dih-text-link { margin-top:auto; }
.dih-status { display:inline-block; color:#595361; background:#e9e6ef; font-size:12px; line-height:1.4; padding:5px 10px; }
.dih-funding-dates p { font-size:13px; line-height:1.65; }
.dih-agenda-section { background:var(--dih-pale); }
.dih-agenda-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; }
.dih-agenda-grid > div > .dih-text-link { margin-top:22px; }
.dih-event { background:#fff; padding:23px; border-left:3px solid #b8de00; margin-bottom:15px; }
.dih-event h3 { font-size:18px; margin:9px 0 0; }
.dih-event h3 a { color:inherit; }
.dih-event h3 a:hover { color:var(--dih-purple); }
.dih-content .dih-event-date { color:#645c72; font-size:13px; }
.dih-empty-events { background:#fff; border-left:3px solid var(--dih-purple); padding:28px; }
.dih-calendar { margin-top:32px; background:#fff; padding:20px; max-width:360px; }
.dih-calendar-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:20px; }
.dih-content button { cursor:pointer; font:inherit; }
.dih-calendar button { border:0; background:transparent; color:var(--dih-dark); min-width:36px; min-height:36px; }
.dih-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; gap:3px; }
.dih-calendar-grid > span { font-size:12px; color:#746b80; padding-block:5px; }
.dih-calendar-grid button { border-radius:50%; font-size:14px; }
.dih-calendar-grid button:disabled { cursor:default; opacity:.55; }
.dih-calendar-grid .has-event { background:#e6dff7; }
.dih-calendar-grid .is-today { box-shadow:inset 0 0 0 1px var(--dih-purple); }
.dih-calendar-grid [aria-pressed="true"] { background:var(--dih-purple); color:white; }
.dih-calendar .dih-calendar-reset { margin-top:12px; color:#6045b3; font-size:13px; text-decoration:underline; }
.dih-carousel { position:relative; }
.dih-carousel-toolbar { display:flex; justify-content:flex-end; align-items:center; gap:10px; margin-bottom:18px; }
.dih-carousel-toolbar button { width:46px; height:46px; border:1px solid var(--dih-purple); border-radius:50%; background:#fff; color:var(--dih-purple); font-size:24px; }
.dih-carousel-toolbar button:disabled { opacity:.3; cursor:default; }
.dih-carousel-status { margin-right:12px; color:#756783; font-size:14px; }
.dih-carousel-track { display:flex; gap:24px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#b3a3dc #f2eff7; padding-bottom:22px; overscroll-behavior-inline:contain; }
.dih-slide { flex:0 0 68%; min-width:0; scroll-snap-align:center; }
.dih-slide-image { overflow:hidden; aspect-ratio:16 / 9; background:var(--dih-pale); }
.dih-slide-image img { display:block; width:100%; height:100%; object-fit:cover; }
.dih-slide figcaption { color:var(--dih-purple); font-family:"alliance_no.1bold",sans-serif; font-size:15px; padding-top:15px; }
.dih-carousel--portrait .dih-carousel-track { align-items:flex-start; padding:12px 8px 25px; }
.dih-carousel--portrait .dih-slide { flex-basis:calc((100% - 48px) / 3); }
.dih-carousel--portrait .dih-slide-image { aspect-ratio: .803; }
.dih-carousel--portrait .dih-slide-image--full img { object-fit:contain; }
.dih-carousel--portrait .dih-slide-image--left img,.dih-carousel--portrait .dih-slide-image--right img { width:200%; max-width:none; object-fit:fill; }
.dih-carousel--portrait .dih-slide-image--right img { transform:translateX(-50%); }
.dih-slide details { font-size:14px; margin-top:8px; }
.dih-slide summary { cursor:pointer; color:#6045b3; padding-block:8px; }
.dih-slide details p { font-size:14px; }
.dih-breadcrumb { display:flex; gap:13px; padding-block:28px 38px; font-size:13px; color:#746b80; }
.dih-breadcrumb a { color:inherit; }
.dih-case-hero { display:grid; grid-template-columns:1.2fr 1fr; gap:45px; align-items:center; padding-block:0 48px; }
.dih-case-hero figure img { display:block; width:100%; height:auto; }
.dih-case-hero h1 { font-size:clamp(30px,3vw,42px); }
.dih-case-story { padding-block:10px 40px; max-width:1060px; }
.dih-case-details { margin-block:8px 40px; }
.dih-case-details h2 { font-size:25px; }
.dih-back { margin-bottom:65px; }
@media(min-width:1000px) { .dih-carousel--portrait .dih-slide.is-active .dih-slide-image { box-shadow:0 8px 20px #4e328c26; } }
@media(max-width:1000px) { .dih-hero-grid { gap:32px; grid-template-columns:1.15fr .85fr; } .dih-service-grid { gap:32px; } .dih-agenda-grid { gap:32px; } .dih-case-hero { gap:28px; } }
@media(max-width:767px) {
    .dih-container { width:calc(100% - 40px); }
    .dih-section { padding-block:44px; scroll-margin-top:90px; }
    .dih-content h1 { font-size:34px; letter-spacing:-.6px; }
    .dih-content h3 { font-size:22px; }
    .dih-hero-grid,.dih-service-grid,.dih-agenda-grid,.dih-case-hero { grid-template-columns:minmax(0,1fr); gap:32px; }
    .dih-hero-image { min-height:0; height:auto; max-height:none; }
    .dih-hero-image img { height:340px; object-position:center 56%; }
    .dih-section-heading { display:block; margin-bottom:28px; }
    .dih-section-heading h2 { margin-bottom:15px; }
    .dih-funding-card { padding:22px; }
    .dih-content .dih-button { padding:15px 20px; }
    .dih-calendar { max-width:100%; }
    .dih-slide { flex-basis:88%; }
    .dih-carousel--portrait .dih-slide { flex-basis:76%; }
    .dih-carousel-track { gap:16px; }
    .dih-case-hero { padding-bottom:30px; }
    .dih-breadcrumb { padding-block:22px; }
    .dih-case-hero h1 { font-size:32px; }
    .dih-content .dih-lead { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) { .dih-content * { scroll-behavior:auto !important; transition:none !important; } }

/* Editorial case above the existing, independently filtered catalogue. */
.dih-case-feature { padding-block:10px 40px; }
.dih-case-feature #casos-page-title { margin-bottom:40px; font-size:30px; }
.dih-content .dih-case-title { font-size:clamp(30px,3vw,42px); line-height:1.14; margin-bottom:25px; letter-spacing:-1.1px; }
.dih-case-feature .dih-case-details h3 { font-size:25px; }
#cataleg-casos { scroll-margin-top:145px; }
.dih-catalogue-title { font-family:"alliance_no.1bold",sans-serif; font-size:32px; line-height:1.3; margin-bottom:30px; }
@media(max-width:767px) {
    .dih-case-feature { padding-bottom:24px; }
    .dih-case-feature #casos-page-title { font-size:26px; margin-bottom:28px; }
    .dih-content .dih-case-title { font-size:32px; }
    #cataleg-casos { scroll-margin-top:120px; }
}

/* Word reviewer comments: standard rounded CTAs and unabridged rich text. */
.dih-content .dih-button { border-radius:25px; }
.dih-content em,.dih-content i { font-style:italic; }
.dih-content .dih-funding-details,
.oportunitats-lst-item-link a { text-decoration:underline; text-underline-offset:4px; }
.oportunitats-lst-item-content { display:block; overflow:visible; max-height:none; height:auto; -webkit-line-clamp:unset; line-clamp:unset; text-overflow:clip; }
.oportunitats-lst-item-content p + p { margin-top:18px; }
.dih-prose ul,.dih-prose ol { padding-left:24px; margin-block:16px; }

/* Centered cover/page with smaller, dimmed neighbours and lateral arrows. */
.dih-carousel--portrait { --dih-slide-width:350px; }
.dih-carousel--portrait .dih-carousel-track {
    padding-inline:calc((100% - var(--dih-slide-width)) / 2);
    padding-block:12px 28px;
    gap:24px;
}
.dih-carousel--portrait .dih-slide { flex:0 0 var(--dih-slide-width); }
.dih-carousel--portrait.is-enhanced .dih-slide-image { transform:scale(.82); opacity:.48; transition:transform .25s ease,opacity .25s ease; transform-origin:center; }
.dih-carousel--portrait.is-enhanced .dih-slide.is-active .dih-slide-image { transform:scale(1); opacity:1; }
.dih-carousel--portrait .dih-carousel-toolbar { justify-content:center; min-height:44px; }
.dih-carousel--portrait .dih-carousel-status { margin:0; }
.dih-carousel--portrait .dih-carousel-toolbar button {
    position:absolute; top:calc(var(--dih-slide-width) * .6227 + 58px); z-index:2;
    background:#fff; box-shadow:0 3px 16px #33235b20;
}
.dih-carousel--portrait [data-direction="-1"] { left:0; }
.dih-carousel--portrait [data-direction="1"] { right:0; }
.dih-carousel--portrait .dih-carousel-toolbar button:disabled { opacity:.55; }
@media(max-width:767px) {
    .dih-carousel--portrait { --dih-slide-width:calc(100vw - 128px); }
    .dih-carousel--portrait .dih-carousel-track { gap:16px; }
    .dih-carousel--portrait .dih-carousel-toolbar button { width:40px; height:40px; }
}
#cataleg-casos .filter-cas { display:grid; grid-template-columns:repeat(2,minmax(0,40%)) 44px; gap:24px; align-items:center; }
#cataleg-casos .filter-cas select { width:100%; min-width:0; box-sizing:border-box; height:46px; margin:0; }
#cataleg-casos .filter-btn { width:44px; height:44px; margin:0; }
#cataleg-casos .filter-btn img { width:20px; height:20px; }
.dih-pdf { max-width:960px; margin-inline:auto; }
.dih-pdf [hidden] { display:none !important; }
.dih-pdf-controls,.dih-pdf-navigation,.dih-pdf-zoom { display:flex; align-items:center; gap:12px; }
.dih-pdf-controls { justify-content:space-between; flex-wrap:wrap; margin-bottom:16px; }
.dih-pdf-controls button { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 12px; border:1px solid var(--dih-purple); border-radius:24px; background:#fff; color:var(--dih-purple); font-size:20px; cursor:pointer; }
.dih-pdf-controls button:disabled { opacity:.35; cursor:default; }
.dih-pdf-controls [data-pdf-fit] { min-width:72px; font-size:15px; }
.dih-pdf-counter { min-width:112px; text-align:center; font-size:15px; }
.dih-pdf-stage { display:flex; height:clamp(360px,70vh,800px); padding:16px; box-sizing:border-box; overflow:auto; background:#f3f0fa; border:1px solid #e7e0f1; border-radius:12px; overscroll-behavior-x:contain; }
.dih-pdf-stage:focus-visible { outline:3px solid #49308f; outline-offset:4px; }
.dih-pdf-stage canvas { display:block; flex:none; max-width:none; margin:auto; box-shadow:0 4px 18px #33235b25; }
.dih-pdf-text { margin-top:16px; }
.dih-pdf-text summary { cursor:pointer; color:var(--dih-purple); }
.dih-pdf-text p { white-space:pre-line; padding:16px; line-height:1.6; }
.dih-pdf-original { margin-top:20px; }
.dih-pdf-message { color:#49308f; }
@media(max-width:600px) {
    .dih-pdf-controls { justify-content:center; gap:10px; }
    .dih-pdf-navigation { width:100%; justify-content:space-between; }
    .dih-pdf-stage { height:clamp(360px,65vh,600px); }
}
.dih-carousel--portrait [role="button"] { cursor:pointer; }
.dih-carousel--portrait [role="button"]:focus-visible { outline:3px solid #49308f; outline-offset:3px; }
@media(max-width:767px) {
    #cataleg-casos .filter-cas { grid-template-columns:minmax(0,1fr) 44px; gap:12px; }
    #cataleg-casos #filter-cat { grid-column:1 / -1; }
}
