.sd-portfolio-category-grid,.sd-portfolio-featured-categories,.sd-portfolio-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,2rem);align-items:start}.sd-portfolio-category-card,.sd-portfolio-project-card{display:flex;flex-direction:column;min-width:0;color:inherit;text-decoration:none;border:1px solid var(--sd-color-border,rgba(0,0,0,.15));background:var(--sd-color-surface,#fff);overflow:hidden}.sd-portfolio-category-card__media,.sd-portfolio-project-card__media{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;overflow:hidden;background:var(--sd-color-background-alt,#eee)}.sd-portfolio-category-card__image{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform .25s ease}.sd-portfolio-project-card__image{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .25s ease}.sd-portfolio-category-card:hover .sd-portfolio-category-card__image,.sd-portfolio-project-card:hover .sd-portfolio-project-card__image{transform:scale(1.015)}.sd-portfolio-category-card__body,.sd-portfolio-project-card__body{padding:1rem}.sd-portfolio-category-card__title,.sd-portfolio-project-card h2{margin:0 0 .45rem}.sd-portfolio-category-card__meta,.sd-portfolio-project-card__category{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--sd-color-muted,currentColor)}.sd-portfolio-controls{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:0 0 1.25rem}.sd-portfolio-controls button,.sd-portfolio-load-more{border:1px solid var(--sd-color-border,currentColor);background:transparent;color:inherit;padding:.55rem .85rem;cursor:pointer}.sd-portfolio-controls button.is-active{background:var(--sd-color-accent,currentColor);color:var(--sd-color-accent-contrast,#fff)}.sd-portfolio-load-more{display:block;margin:2rem auto 0}.sd-portfolio-latest{margin-top:clamp(3rem,6vw,6rem)}

/* Wide presentation area. This deliberately breaks out of a constrained block parent
   while retaining the theme's normal side padding. */
.sd-portfolio-wide{
  position:relative;
  left:50%;
  width:min(calc(100vw - 2rem),var(--wp--style--global--wide-size,var(--sd-wide,min(80vw,1560px))))!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  transform:translateX(-50%);
}
.sd-portfolio-directory,.sd-portfolio-latest,.sd-portfolio-browser{margin-block-inline:auto}
body.single-portfolio_project .dc-project-detail>.sd-entry-header,body.single-portfolio_project .dc-project-detail>.wp-block-post-content{
  position:relative;
  left:50%;
  width:min(calc(100vw - 2rem),var(--wp--style--global--wide-size,var(--sd-wide,min(80vw,1560px))))!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  transform:translateX(-50%);
}

/* Homepage showcase: categories may contain 3–9 cards. The wide rail belongs
   to the theme; count-specific rules only control grid geometry. */
.sd-portfolio-featured-wrap{margin-block:0}
.sd-portfolio-featured-categories{max-width:var(--wp--style--global--wide-size,var(--sd-wide,min(80vw,1560px)));margin-inline:auto;grid-template-columns:repeat(6,minmax(0,1fr))}
.sd-portfolio-featured-categories>.sd-portfolio-category-card{grid-column:span 2}
.sd-portfolio-home-latest{margin-block:0}

/* Shared link presentation consumes Theme Core palette tokens. */
.sd-portfolio-category-card,.sd-portfolio-project-card{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.sd-portfolio-category-card:hover,.sd-portfolio-category-card:focus-visible,.sd-portfolio-project-card:hover,.sd-portfolio-project-card:focus-within{border-color:var(--sd-color-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--sd-color-accent) 28%,transparent)}
.sd-portfolio-category-card{color:inherit;text-decoration:none}
.sd-portfolio-category-card__title,.sd-portfolio-project-card h2 a,.sd-portfolio-project-card__link,.sd-project-context-nav a,.sd-portfolio-empty__cta{color:var(--sd-color-link);transition:color .18s ease,border-color .18s ease;text-decoration:none}
.sd-portfolio-category-card:hover .sd-portfolio-category-card__title,.sd-portfolio-category-card:focus-visible .sd-portfolio-category-card__title,.sd-portfolio-project-card h2 a:hover,.sd-portfolio-project-card h2 a:focus-visible,.sd-portfolio-project-card__link:hover,.sd-portfolio-project-card__link:focus-visible,.sd-project-context-nav a:hover,.sd-project-context-nav a:focus-visible,.sd-portfolio-empty__cta:hover,.sd-portfolio-empty__cta:focus-visible{color:var(--sd-color-link-hover)}
.sd-portfolio-project-card__link,.sd-portfolio-empty__cta{border-bottom:1px solid var(--sd-color-link-decoration)}
.sd-portfolio-project-card__link:hover,.sd-portfolio-project-card__link:focus-visible,.sd-portfolio-empty__cta:hover,.sd-portfolio-empty__cta:focus-visible{border-bottom-color:currentColor}
.sd-project-context-nav a{border-bottom:0;text-decoration:none}
.single-portfolio_project .wp-block-post-terms a{text-decoration:none}
.sd-portfolio-empty{padding:clamp(2rem,5vw,4rem);text-align:center;border:1px solid var(--sd-color-border);background:var(--sd-color-surface,transparent)}
.sd-portfolio-empty__image{display:block;width:auto;max-width:100%;max-height:60vh;object-fit:contain;margin:0 auto 1.5rem}

.sd-project-artwork{margin-block:clamp(1.5rem,4vw,3rem);text-align:center}
.sd-project-artwork__image{display:block;width:auto;max-width:min(100%,820px);max-height:78vh;height:auto;object-fit:contain;margin-inline:auto}
.sd-project-context-nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:clamp(1rem,4vw,3rem);align-items:start;margin-block:3rem!important}
.sd-project-context-nav__prev,.sd-project-context-nav__next{display:flex;flex-direction:column;gap:.25rem}.sd-project-context-nav__next{text-align:right}.sd-project-context-nav__category{text-align:center}.sd-project-context-nav__empty{display:block}.sd-project-context-nav.is-single{grid-template-columns:1fr;justify-items:center}

@media(max-width:1050px){
  .sd-portfolio-featured-categories,.sd-portfolio-home-latest .sd-portfolio-project-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:var(--wp--style--global--wide-size,var(--sd-wide,min(80vw,1560px)))}
  .sd-portfolio-featured-categories>.sd-portfolio-category-card{grid-column:auto}
  .sd-portfolio-featured-categories.is-odd>.sd-portfolio-category-card:last-child{grid-column:1/-1;max-width:calc(50% - .5rem);width:100%;justify-self:center}
}
@media(max-width:900px){.sd-portfolio-category-grid,.sd-portfolio-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.sd-project-context-nav{grid-template-columns:1fr}.sd-project-context-nav__category{grid-row:1;text-align:left}.sd-project-context-nav__next{text-align:left}.sd-project-context-nav__empty{display:none}.sd-project-artwork__image{max-width:100%;max-height:none}}
@media(max-width:620px){
  .sd-portfolio-category-grid,.sd-portfolio-featured-categories,.sd-portfolio-project-grid,.sd-portfolio-home-latest .sd-portfolio-project-grid{grid-template-columns:1fr}
  .sd-portfolio-featured-categories>.sd-portfolio-category-card,.sd-portfolio-featured-categories.is-odd>.sd-portfolio-category-card:last-child{grid-column:auto;max-width:none;width:100%;justify-self:stretch}
  .sd-portfolio-category-card,.sd-portfolio-project-card{display:flex;flex-direction:column}
  .sd-portfolio-category-card__media,.sd-portfolio-project-card__media{aspect-ratio:4/5}
  .sd-portfolio-wide{width:min(calc(100vw - 1.25rem),var(--wp--style--global--wide-size,var(--sd-wide,min(80vw,1560px))))!important}
}

/* Portfolio directory is a browsing surface, not a homepage showcase. */
.sd-portfolio-category-grid--directory{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.85rem,1.6vw,1.4rem)}
.sd-portfolio-directory .sd-portfolio-category-card__media{aspect-ratio:4/3}
.sd-portfolio-directory .sd-portfolio-category-card__body{padding:.8rem .9rem}
.sd-portfolio-directory .sd-portfolio-category-card__title{font-size:clamp(1.05rem,1.3vw,1.35rem);margin-bottom:.3rem}
.sd-portfolio-directory .sd-portfolio-category-card__body>p:not(.sd-portfolio-category-card__meta){font-size:.9rem;line-height:1.4;margin:.35rem 0}
.sd-portfolio-directory .sd-portfolio-category-card__meta{margin:.45rem 0 0}

/* Explicit Portfolio views. */
.sd-portfolio-view-nav{display:flex;gap:.65rem;align-items:center;margin-block:1.25rem 2rem!important}
.sd-portfolio-view-nav__link{display:inline-block;padding:.55rem .8rem;border:1px solid var(--sd-color-border,currentColor);color:var(--sd-color-link);text-decoration:none}
.sd-portfolio-view-nav__link:hover,.sd-portfolio-view-nav__link:focus-visible{color:var(--sd-color-link-hover);border-color:currentColor}
.sd-portfolio-view-nav__link.is-active{background:var(--sd-color-accent,currentColor);color:var(--sd-color-accent-contrast,#fff);border-color:var(--sd-color-accent,currentColor)}

/* Latest Work is intentionally a chronological feed rather than a gallery.
   It uses an editorial rail, not the site's broader directory/showcase rail. */
.sd-portfolio-latest-rail{width:min(calc(100vw - 2rem),72vw,1120px);max-width:1120px;margin-inline:auto!important}
.sd-portfolio-latest-page .sd-entry-header.sd-portfolio-latest-rail{max-width:1120px}
.sd-portfolio-latest-feed{display:flex;flex-direction:column;gap:clamp(1rem,2vw,1.5rem)}
.sd-portfolio-feed-item{display:grid;grid-template-columns:minmax(190px,320px) minmax(0,1fr);gap:clamp(1rem,2.5vw,2rem);align-items:stretch;border:1px solid var(--sd-color-border,rgba(0,0,0,.15));background:var(--sd-color-surface,#fff);overflow:hidden}
.sd-portfolio-feed-item__media{display:block;min-height:190px;background:var(--sd-color-background-alt,#eee);overflow:hidden}
.sd-portfolio-feed-item__image{display:block;width:100%;height:100%;min-height:190px;object-fit:cover;object-position:top left}
.sd-portfolio-feed-item__body{padding:clamp(1rem,2vw,1.5rem) clamp(1rem,2.5vw,2rem) clamp(1rem,2vw,1.5rem) 0;align-self:center}
.sd-portfolio-feed-item__categories{margin:0 0 .45rem;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--sd-color-muted,currentColor)}
.sd-portfolio-feed-item__categories a,.sd-portfolio-feed-item h2 a,.sd-portfolio-feed-item__link{color:var(--sd-color-link);text-decoration:none}
.sd-portfolio-feed-item__categories a:hover,.sd-portfolio-feed-item__categories a:focus-visible,.sd-portfolio-feed-item h2 a:hover,.sd-portfolio-feed-item h2 a:focus-visible,.sd-portfolio-feed-item__link:hover,.sd-portfolio-feed-item__link:focus-visible{color:var(--sd-color-link-hover)}
.sd-portfolio-feed-item h2{margin:.15rem 0 .65rem}
.sd-portfolio-feed-item__excerpt{margin:.45rem 0 1rem;line-height:1.6}
.sd-portfolio-feed-item__link{border-bottom:1px solid var(--sd-color-link-decoration)}
.sd-portfolio-feed-item__link:hover,.sd-portfolio-feed-item__link:focus-visible{border-bottom-color:currentColor}

/* Homepage completion link keeps the showcase intentionally finite. */
.sd-portfolio-home-more{text-align:center;margin:clamp(1.5rem,3vw,2.25rem) 0 0}
.sd-portfolio-home-more a{color:var(--sd-color-link);text-decoration:none;border-bottom:1px solid var(--sd-color-link-decoration)}
.sd-portfolio-home-more a:hover,.sd-portfolio-home-more a:focus-visible{color:var(--sd-color-link-hover);border-bottom-color:currentColor}

/* Seven cards would naturally orphan one card. Rebalance 3 | 2 | 2. */
@media(min-width:1051px){
  .sd-portfolio-featured-categories.is-count-4{max-width:1040px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .sd-portfolio-featured-categories.is-count-4>.sd-portfolio-category-card{grid-column:auto}
  .sd-portfolio-featured-categories:not(.is-count-4).is-last-row-1>.sd-portfolio-category-card:last-child{grid-column:3/span 2}
  .sd-portfolio-featured-categories:not(.is-count-4).is-last-row-2>.sd-portfolio-category-card:nth-last-child(2){grid-column:2/span 2}
  .sd-portfolio-featured-categories:not(.is-count-4).is-last-row-2>.sd-portfolio-category-card:last-child{grid-column:4/span 2}
  .sd-portfolio-featured-categories.is-layout-3-2-2>.sd-portfolio-category-card:nth-child(4){grid-row:2;grid-column:2/span 2}
  .sd-portfolio-featured-categories.is-layout-3-2-2>.sd-portfolio-category-card:nth-child(5){grid-row:2;grid-column:4/span 2}
  .sd-portfolio-featured-categories.is-layout-3-2-2>.sd-portfolio-category-card:nth-child(6){grid-row:3;grid-column:2/span 2}
  .sd-portfolio-featured-categories.is-layout-3-2-2>.sd-portfolio-category-card:nth-child(7){grid-row:3;grid-column:4/span 2}
}

@media(max-width:1200px) and (min-width:901px){.sd-portfolio-category-grid--directory{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.sd-portfolio-feed-item{grid-template-columns:1fr}.sd-portfolio-feed-item__media{min-height:0;aspect-ratio:16/10}.sd-portfolio-feed-item__image{min-height:0}.sd-portfolio-feed-item__body{padding:1rem}.sd-portfolio-view-nav{flex-wrap:wrap}}
@media(max-width:900px){.sd-portfolio-category-grid--directory{grid-template-columns:repeat(2,minmax(0,1fr))}.sd-portfolio-latest-rail{width:calc(100vw - 2rem)}}
@media(max-width:620px){.sd-portfolio-category-grid--directory{grid-template-columns:1fr}.sd-portfolio-latest-rail{width:calc(100vw - 1.25rem)}}
