/* Portfolio index only: compact, aligned cards with the existing public identity. */
.dp-public[data-public-page="portfolio.index"] .dp-main>.dp-portfolio-hero:first-child:not(#hero) {
    min-height:0; padding:26px max(24px,calc((100% - 1180px)/2)); gap:28px;
    grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);
}
.dp-public[data-public-page="portfolio.index"] .dp-portfolio-hero .dp-page-motion { max-width:290px; }
.dp-public[data-public-page="portfolio.index"] .dp-main>.dp-portfolio-hero:first-child:not(#hero) h1 { font-size:clamp(30px,3.5vw,46px); font-weight:700; line-height:1.4; margin:10px 0 12px; letter-spacing:-.025em; }
.dp-public[data-public-page="portfolio.index"] .dp-main>.dp-portfolio-hero:first-child:not(#hero) p { font-size:14px; color:#63786b; margin:0; }
.dp-portfolio-eyebrow { color:#a16d06; font-size:12px; font-weight:600; }
.dp-public .dp-main>.dp-portfolio-section { padding:32px 24px 64px; background:#f8faf8; border-top:1px solid #e7ede8; }
.dp-portfolio-container { max-width:1180px; margin-inline:auto; }
.dp-portfolio-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.dp-portfolio-toolbar h2 { margin:0; font-size:20px; font-weight:700; color:#193e32; }
.dp-portfolio-count { display:flex; align-items:center; gap:9px; font-size:12px; color:#63786b; margin:0; }
.dp-portfolio-count strong { font-size:13px; font-weight:600; color:#244b3c; font-variant-numeric:tabular-nums; }
.dp-portfolio-filters { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:24px; }
.dp-portfolio-filters button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:42px; padding:8px 14px; border:1px solid #dce6df; border-radius:9px; background:#fff; color:#4e665a; font-size:12px; line-height:1.6; transition:background .18s,color .18s,border-color .18s; }
.dp-portfolio-filters button span { font-size:10px; color:inherit; opacity:.8; font-variant-numeric:tabular-nums; }
.dp-portfolio-filters button:hover { background:#edf5ef; border-color:#98bea8; }
.dp-portfolio-filters button[aria-pressed="true"] { background:#087e66; color:#fff; border-color:#087e66; }
.dp-portfolio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:stretch; }
.dp-portfolio-item { min-width:0; }
.dp-portfolio-card { display:flex; flex-direction:column; height:100%; overflow:hidden; border:1px solid #e0e9e2; border-radius:14px; background:#fff; color:#193e32; transition:border-color .2s,box-shadow .2s,transform .2s; }
.dp-portfolio-image { position:relative; aspect-ratio:16/9; overflow:hidden; background:#edf3ee; display:grid; place-items:center; }
.dp-portfolio-image picture,.dp-portfolio-image img { display:block; width:100%; height:100%; }
.dp-portfolio-image picture { position:absolute; inset:0; }
.dp-portfolio-image img { object-fit:cover; object-position:center; transition:transform .3s; }
.dp-portfolio-placeholder { width:64px; height:64px; color:#7ba58e; }
.dp-portfolio-category { position:absolute; inset-inline-start:12px; top:12px; max-width:calc(100% - 24px); padding:5px 10px; border:1px solid #ffffffb3; border-radius:6px; background:#fffffff2; color:#245440; font-size:10px; font-weight:600; line-height:1.6; }
.dp-portfolio-body { display:flex; flex-direction:column; flex:1; padding:17px 18px 12px; }
.dp-portfolio-body h3 { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:17px; line-height:1.55; font-weight:700; margin:0 0 7px; min-height:2lh; overflow-wrap:anywhere; }
.dp-portfolio-body>p { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; color:#687b70; font-size:12px; line-height:1.8; margin:0 0 12px; min-height:2lh; overflow-wrap:anywhere; }
.dp-portfolio-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:auto; padding-bottom:13px; min-height:34px; }
.dp-portfolio-tags span { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; line-height:1.6; color:#5c7264; background:#f3f6f3; border-radius:4px; padding:3px 7px; }
.dp-portfolio-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #eef2ee; padding-top:11px; color:#087e66; font-size:11px; font-weight:600; }
.dp-portfolio-card-footer svg { width:24px; height:24px; padding:3px; border-radius:50%; background:#eef6f0; }
[dir="ltr"] .dp-portfolio-card-footer svg { transform:rotate(180deg); }
.dp-portfolio-more { text-align:center; margin-top:28px; }
.dp-portfolio-empty { padding:48px 20px; text-align:center; color:#63786b; border:1px dashed #c9dacf; border-radius:12px; background:#fff; }
.dp-portfolio-cta { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:44px; padding:26px 30px; background:#edf5ef; border:1px solid #dce9df; border-radius:14px; }
.dp-portfolio-cta h2 { margin:0 0 6px; font-size:23px; font-weight:700; color:#193e32; }
.dp-portfolio-cta p { font-size:13px; color:#63786b; margin:0; }
.dp-portfolio-cta>a { flex-shrink:0; }
.dp-portfolio-section :is(button,a):focus-visible { outline:3px solid #ba8a1f; outline-offset:4px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
    .dp-portfolio-card:hover { transform:translateY(-4px); border-color:#a3c7b0; box-shadow:0 10px 26px #254f3510; }
    .dp-portfolio-card:hover img { transform:scale(1.025); }
}
@media(max-width:1023px) {
    .dp-portfolio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
}
@media(max-width:767px) {
    .dp-public[data-public-page="portfolio.index"] .dp-main>.dp-portfolio-hero:first-child:not(#hero) { grid-template-columns:minmax(0,1fr); padding:22px 20px 20px; gap:8px; }
    .dp-public[data-public-page="portfolio.index"] .dp-portfolio-hero .dp-page-motion { max-width:210px; }
    .dp-public[data-public-page="portfolio.index"] .dp-main>.dp-portfolio-hero:first-child:not(#hero) h1 { font-size:30px; margin:7px 0; }
    .dp-public[data-public-page="portfolio.index"] .dp-portfolio-hero .dp-page-motion figcaption { gap:5px 8px; }
    .dp-portfolio-hero .dp-page-motion-step { font-size:8px; gap:4px; }
    .dp-portfolio-hero .dp-page-motion-step i { width:17px; height:17px; }
    .dp-public .dp-main>.dp-portfolio-section { padding:24px 18px 40px; }
    .dp-portfolio-toolbar h2 { font-size:18px; }
    .dp-portfolio-filters { gap:6px; padding-bottom:20px; }
    .dp-portfolio-filters button { padding:8px 10px; gap:6px; font-size:11px; }
    .dp-portfolio-cta { flex-direction:column; text-align:center; padding:24px 18px; gap:18px; margin-top:30px; }
    .dp-portfolio-cta h2 { font-size:21px; }
}
@media(max-width:599px) {
    .dp-portfolio-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
    .dp-portfolio-body h3 { min-height:0; }
    .dp-portfolio-body { padding:15px 16px 12px; }
}
@media(prefers-reduced-motion:reduce) {
    .dp-portfolio-card,.dp-portfolio-image img,.dp-portfolio-filters button { transition:none; }
}
