/* Portfolio: original photographs, a fluid grid and a native photo dialog. */
.portfolio-page { --section-paper: #eef5f7; --section-muted: #65717b; --section-space: clamp(40px,4.5vw,72px); }
.portfolio-page [hidden] { display: none !important; }
.portfolio-page .section-title { font-size: clamp(1.8rem,3.1vw,3.2rem); }
.portfolio-page .section-light :is(a,button):focus-visible { outline-color: #94672f; }
.portfolio-hero { padding-top: var(--header-h); background: #080e10; }
.portfolio-hero__scene { position: relative; isolation: isolate; overflow: hidden; }
.portfolio-hero__photo { position: absolute; z-index: -2; inset: 0 0 0 27%; margin: 0; }
.portfolio-hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }
.portfolio-hero__photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,#080e10 0%,#080e1099 18%,transparent 52%),linear-gradient(0deg,#080e1026,transparent 30%); }
.portfolio-hero__content { width: 49%; padding-block: clamp(30px,4vw,64px) clamp(48px,5vw,80px); }
.portfolio-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 38px; font-size: .8125rem; color: #b5c0c3; }
.portfolio-breadcrumbs a:hover { color: #edca8a; }
.portfolio-hero .eyebrow { color: #e6c689; font-size: .8125rem; letter-spacing: .1em; margin-bottom: 18px; }
.portfolio-hero .eyebrow::before { display: none; }
.portfolio-hero h1 { color: #f5f7f6; font-size: clamp(3.1rem,6.2vw,6.5rem); line-height: 1.05; letter-spacing: -.035em; font-weight: 400; text-transform: uppercase; }
.portfolio-hero h1 span { color: #edc98a; }
.portfolio-hero__lead { max-width: 570px; margin-top: 26px; color: #e0e4e3; font-size: clamp(1rem,1.35vw,1.3125rem); line-height: 1.75; }
.portfolio-hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 28px; margin-top: 34px; }
.portfolio-hero__actions .section-button { padding-inline: 24px; }
.portfolio-hero__actions .text-link { color: #eacb94; border-bottom: 1px solid #c5a367; gap: 12px; }
.portfolio-hero__caption { position: absolute; right: var(--pad-x); bottom: 24px; padding: 10px 15px; margin: 0; color: #f3f3ee; border: 1px solid #eee3b624; background: #080d0ddd; border-radius: 3px; font-size: .8125rem; }
/* Filters and project cards. All six cards remain readable without JavaScript. */
.portfolio-filters { display: grid; grid-template-columns: .8fr 1.2fr 1.2fr 1.35fr; margin-top: 26px; padding-bottom: 18px; border-bottom: 1px solid #afbec7; gap: 14px; }
.portfolio-filters button { position: relative; min-height: 50px; padding: 11px 14px; border: 1px solid transparent; border-radius: 4px; color: #56616c; font-size: .9375rem; line-height: 1.5; }
.portfolio-filters button + button::before { content: ''; position: absolute; height: 26px; width: 1px; background: #b7c3ca; top: 50%; left: -8px; transform: translateY(-50%); }
.portfolio-filters button[aria-pressed=true] { color: #eed297; background: #0c1416; border-color: #c69b50; }
.portfolio-filters button:hover:not([aria-pressed=true]) { background: #dde8ed; color: #263036; }
.portfolio-results { margin: 15px 0 20px; color: #66737d; font-size: .8125rem; }
.portfolio-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; margin-top: 24px; }
.portfolio-results:not([hidden]) + .portfolio-grid { margin-top: 0; }
.portfolio-card { min-width: 0; }
.portfolio-card__link { display: block; border-radius: 5px; }
.portfolio-card__media { position: relative; aspect-ratio: 1.66; overflow: hidden; background: #162124; border-radius: 5px; }
.portfolio-card__media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease,filter .35s ease; }
.portfolio-card__link:hover .portfolio-card__media > img { transform: scale(1.025); filter: brightness(1.05); }
.portfolio-card__expand { position: absolute; top: 12px; right: 12px; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid #e8e9df66; border-radius: 4px; background: #0b1010b8; color: #fff; }
.portfolio-card__expand svg { width: 23px; height: 23px; }
.portfolio-card__body { display: flex; align-items: center; justify-content: space-between; gap: 10px 24px; padding-top: 14px; }
.portfolio-card__category { display: block; font-size: .8125rem; color: var(--section-muted); }
.portfolio-card h3 { margin: 4px 0 0; font-size: clamp(1.2rem,1.65vw,1.625rem); font-weight: 500; line-height: 1.4; letter-spacing: -.025em; }
.portfolio-card .text-link { color: #946228; font-size: .8125rem; gap: 10px; flex-shrink: 0; }
.portfolio-more { display: flex; justify-content: center; margin-top: 32px; }
.portfolio-more .section-button { min-width: 265px; }
/* The viewer contains uncropped photos and accessible controls. */
.portfolio-dialog { width: min(1200px,calc(100% - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 1px solid #caa97070; border-radius: 8px; overflow: auto; background: #0a1012; color: #eef2f1; }
.portfolio-dialog::backdrop { background: #03080be8; backdrop-filter: blur(6px); }
.portfolio-dialog__heading { position: sticky; top: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 22px; background: #0a1012f5; padding: 18px 24px; border-bottom: 1px solid #c4b39538; }
.portfolio-dialog__heading p { font-size: .75rem; color: #b8c1c4; }
.portfolio-dialog h2 { font-size: clamp(1.125rem,2vw,1.75rem); font-weight: 500; line-height: 1.4; margin: 3px 0 0; }
.portfolio-dialog__close { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border: 1px solid #b4a58966; border-radius: 50%; }
.portfolio-dialog__close svg { width: 24px; height: 24px; }
.portfolio-dialog__figure { margin: 0; background: #060a0b; }
.portfolio-dialog__figure img { width: 100%; height: min(62dvh,680px); object-fit: contain; }
.portfolio-dialog__bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; padding: 18px 24px; border-top: 1px solid #c4b39538; }
.portfolio-dialog__controls { display: flex; align-items: center; gap: 16px; }
.portfolio-dialog__controls > span { min-width: 72px; text-align: center; color: #cfd5d5; font-size: .875rem; }
.portfolio-dialog__controls button { width: 44px; height: 44px; padding: 10px; border: 1px solid #b4a58966; border-radius: 50%; }
.portfolio-dialog__controls button:disabled { opacity: .3; cursor: default; }
.portfolio-dialog__bar > a { color: #efd099; padding-block: 12px; }
.portfolio-dialog__bar > a svg { width: 20px; }
.portfolio-dialog__error { margin: 0; padding: 24px; color: #edc98a; text-align: center; }
/* Consultation and the shared four-column footer. */
.portfolio-page .consultation .section-title { font-size: clamp(1.8rem,2.7vw,2.9rem); }
.portfolio-page .contact-form__fields { grid-template-columns: 1fr 1fr; }
.portfolio-page .contact-form__fields button { grid-column: 1/-1; }
.portfolio-choice { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; color: #ead2a9; font-size: .8125rem; }
.portfolio-choice button { padding: 8px; text-decoration: underline; color: #bfc6c7; }
.portfolio-footer { padding-block: 48px; }
.portfolio-footer__grid { display: grid; grid-template-columns: 1.15fr .8fr 1.2fr 1.4fr; gap: 30px; }
.portfolio-footer nav { display: flex; flex-direction: column; gap: 12px; padding-left: 25px; border-left: 1px solid #ffffff20; font-size: .8125rem; }
.portfolio-footer nav h2 { margin: 0 0 8px; font-size: 1rem; font-weight: 500; color: #e7bd77; }
.portfolio-footer [aria-current=page] { color: #e7bd77; }
.portfolio-footer__copyright { margin-top: 35px; margin-bottom: 12px; color: #8c979c; font-size: .75rem; line-height: 1.8; }
.portfolio-footer .inline-link { font-size: .75rem; color: #8c979c; }
@media (max-width: 1200px) {
 .portfolio-hero__content { width: 53%; }
 .portfolio-hero__photo { left: 24%; }
 .portfolio-hero__photo::after { background: linear-gradient(90deg,#080e10,#080e10e8 20%,#080e1044 50%,transparent 72%); }
 .portfolio-hero__lead { font-size: 1rem; }
 .portfolio-hero__actions { gap: 16px; }
 .portfolio-filters { gap: 10px; grid-template-columns: .8fr 1.15fr 1.15fr 1.3fr; }
 .portfolio-filters button { font-size: .8125rem; padding-inline: 10px; }
 .portfolio-filters button + button::before { left: -6px; }
 .portfolio-grid { gap: 28px 24px; }
 .portfolio-card__body { align-items: flex-start; flex-direction: column; gap: 0; }
 .portfolio-card .text-link { padding-block: 9px 0; }
 .portfolio-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; }
 .portfolio-footer nav { order: initial; width: auto; }
}
@media (max-width: 900px) {
 .portfolio-hero__scene { display: flex; flex-direction: column; }
 .portfolio-hero__content { width: 100%; padding-block: 28px 32px; }
 .portfolio-breadcrumbs { margin-bottom: 28px; }
 .portfolio-hero h1 { font-size: clamp(3rem,8vw,4.5rem); }
 .portfolio-hero__lead { max-width: 690px; margin-top: 22px; }
 .portfolio-hero__photo { position: relative; z-index: auto; inset: auto; order: 2; width: 100%; aspect-ratio: 1.9; }
 .portfolio-hero__photo::after { background: linear-gradient(0deg,#080e1055,transparent 40%); }
 .portfolio-hero__caption { z-index: 1; bottom: 18px; font-size: .75rem; }
 .portfolio-dialog__figure img { height: min(56dvh,620px); }
}
@media (max-width: 600px) {
 .portfolio-page .section-title { font-size: clamp(1.7rem,6.4vw,2.25rem); }
 .portfolio-hero__content { padding-top: 24px; }
 .portfolio-breadcrumbs { font-size: .75rem; margin-bottom: 26px; }
 .portfolio-hero .eyebrow { font-size: .6875rem; letter-spacing: .08em; }
 .portfolio-hero h1 { font-size: clamp(2.8rem,12vw,4.25rem); }
 .portfolio-hero__lead { font-size: .9375rem; line-height: 1.8; margin-top: 20px; }
 .portfolio-hero__actions { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 24px; }
 .portfolio-hero__actions .text-link { justify-self: center; }
 .portfolio-hero__photo { aspect-ratio: 1.4; }
 .portfolio-hero__caption { left: var(--pad-x); right: auto; bottom: 14px; font-size: .6875rem; padding: 8px 10px; }
 .portfolio-filters { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding-bottom: 16px; margin-top: 22px; }
 .portfolio-filters button { font-size: .75rem; line-height: 1.5; border-color: #cad6db; }
 .portfolio-filters button + button::before { display: none; }
 .portfolio-results { margin-block: 14px 18px; font-size: .75rem; }
 .portfolio-grid { grid-template-columns: 1fr; gap: 30px; }
 .portfolio-card__media { aspect-ratio: 1.5; }
 .portfolio-card__expand { top: 10px; right: 10px; width: 38px; height: 38px; }
 .portfolio-card__body { padding-top: 12px; }
 .portfolio-card h3 { font-size: 1.25rem; }
 .portfolio-card .text-link { min-height: 44px; }
 .portfolio-more { margin-top: 27px; }
 .portfolio-more .section-button { width: 100%; min-width: 0; }
 .portfolio-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); border-radius: 6px; }
 .portfolio-dialog__heading { padding: 12px 14px; gap: 12px; }
 .portfolio-dialog__figure img { height: 45dvh; }
 .portfolio-dialog__bar { padding: 14px; gap: 10px; justify-content: center; }
 .portfolio-dialog__bar > a { white-space: normal; text-align: center; justify-content: center; font-size: .8125rem; }
 .portfolio-page .contact-form__fields { grid-template-columns: 1fr; }
 .portfolio-footer__grid { grid-template-columns: 1fr; gap: 28px; }
 .portfolio-footer nav { padding: 22px 0 0; border-left: 0; border-top: 1px solid #ffffff20; }
 .portfolio-footer__copyright { margin-top: 24px; }
}
@media (prefers-reduced-motion: reduce) { .portfolio-card__media > img { transition: none; } }
