/* New elements only. Your existing style.css is unchanged. */
.page-hero { position: relative; isolation: isolate; overflow: hidden; min-height: 22rem; margin-bottom: 2rem; border-radius: var(--card-radius, 16px); background: var(--secondary, #ad7424); color: #fff; }
.page-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.page-hero__placeholder { position: absolute; inset: 0; display: flex; justify-content: flex-end; align-items: flex-start; padding: 1rem; font-size: .85rem; color: #fff; z-index: -2; }
.page-hero__content { min-height: 22rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; padding: clamp(1.5rem, 5vw, 3rem); background: linear-gradient(0deg, #000c, #0004); }
.page-hero__title { margin: 0 0 .75rem; font-size: clamp(1.8rem, 5vw, 3rem); color: #fff; }
.page-hero__text { max-width: 42rem; margin: 0 0 1rem; color: #fff; }
.page-hero__button { margin-top: .25rem; }
.page-hero__button:focus-visible, .project-tile:focus-visible { outline: 3px solid var(--link, #ffe0a3); outline-offset: 4px; }
.project-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 1.25rem; margin-top: 2rem; }
.project-tile { display: flex; flex-direction: column; min-width: 0; overflow: hidden; text-decoration: none; color: var(--text, #fff); background: var(--page-background, #210e06); border-radius: var(--card-radius, 16px); box-shadow: var(--shadow); transition: transform var(--motion, 180ms ease), box-shadow var(--motion, 180ms ease); }
.project-tile__image, .project-tile__placeholder { display: block; width: 100%; aspect-ratio: 8 / 5; object-fit: cover; }
.project-tile__placeholder { display: grid; place-items: center; background: var(--secondary, #ad7424); color: #fff; }
.project-tile__body { padding: 1.25rem; }
.project-tile__title { margin: 0 0 .6rem; font-size: 1.45rem; }
.project-tile__description { margin: 0; font-size: 1rem; color: var(--muted, #e8dccb); }
.project-tile:hover { transform: translateY(-4px); box-shadow: 0 12px 24px #0005; }
@media (max-width: 480px) { .page-hero, .page-hero__content { min-height: 18rem; } }
@media (prefers-reduced-motion: reduce) { .project-tile:hover { transform: none; } }

/* Full hero: a new variant outside the main content container. */
.page-hero--full {
  flex: 0 0 auto;
  width: 100%;
  min-height: max(28rem, calc(100vh - var(--hero-header-height, 88px)));
  min-height: max(28rem, calc(100svh - var(--hero-header-height, 88px)));
  margin: 0;
  border-radius: 0;
}
.page-hero--full .page-hero__content {
  min-height: inherit;
  padding: clamp(2rem, 7vw, 7rem) max(1.5rem, calc((100% - var(--content-max, 900px)) / 2));
  justify-content: center;
}
.page-hero--full .page-hero__title { max-width: 18ch; font-size: clamp(2.5rem, 6vw, 5rem); }
.page-hero--full .page-hero__text { max-width: 42rem; font-size: clamp(1.1rem, 2vw, 1.4rem); }
/* New project breadcrumb component only. */
.project-breadcrumbs { margin: 0 0 1.5rem; font-size: .95rem; }
.project-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: .4rem .65rem; list-style: none; padding: 0; margin: 0; }
.project-breadcrumbs li { display: flex; align-items: baseline; gap: .65rem; margin: 0; }
.project-breadcrumbs li + li::before { content: "/"; opacity: .6; }
.project-breadcrumbs [aria-current="page"] { color: var(--muted, #e8dccb); }
.project-breadcrumbs a:focus-visible { outline: 3px solid var(--link, #ffe0a3); outline-offset: 4px; }
