/*
 * Additive Phase 2 visual pilot.
 * Scoped to shared chrome and .pil-home so legacy pages and Contact remain intact.
 */
:root {
    --pil-ink: #273039;
    --pil-muted: #657078;
    --pil-ivory: #fcfaf6;
    --pil-paper: #ffffff;
    --pil-blush: #f3e9e4;
    --pil-periwinkle: #687aa7;
    --pil-periwinkle-deep: #485c87;
    --pil-champagne: #c7a975;
    --pil-line: #ded6cc;
    --pil-shell: 76rem;
    --pil-space-1: .5rem;
    --pil-space-2: 1rem;
    --pil-space-3: 1.5rem;
    --pil-space-4: 2.5rem;
    --pil-space-5: 4.5rem;
    --pil-space-6: 7rem;
    --pil-serif: Georgia, 'Times New Roman', serif;
    --pil-sans: 'Source Sans Pro', Arial, sans-serif;
}

html { scroll-behavior: smooth; }
/* A legacy SDK applies an inline 85px body offset; this single override keeps the shared header flush with the viewport. */
body.polleninlove { padding-top: 0 !important; background: var(--pil-ivory); color: var(--pil-ink); font-family: var(--pil-sans); font-size: 16px; line-height: 1.65; }
body.polleninlove a { color: inherit; }
body.polleninlove :focus-visible { outline: 3px solid var(--pil-champagne); outline-offset: 4px; }
/* Facebook's empty SDK mount must not reserve layout space above the site header. */
body.polleninlove #fb-root { display: none; }
/* The former full-page loader depended on the removed homepage carousel and could mask the page indefinitely. */
body.polleninlove .loading-screen { display: none; }
.pil-shell { width: min(100% - 3rem, var(--pil-shell)); margin-right: auto; margin-left: auto; }
.pil-eyebrow { margin: 0 0 var(--pil-space-2); color: var(--pil-periwinkle-deep); font-size: .73rem; font-weight: 700; letter-spacing: .16em; line-height: 1.4; text-transform: uppercase; }
.pil-section { padding: var(--pil-space-6) 0; }
.pil-section h2, .pil-home h1, .pil-site-footer h1 { font-family: var(--pil-serif); font-weight: 400; letter-spacing: -.035em; }
.pil-section h2 { margin: 0; font-size: clamp(2.2rem, 3.6vw, 3.8rem); line-height: 1.06; }
.pil-button { display: inline-flex; min-height: 3rem; align-items: center; justify-content: center; padding: .7rem 1.25rem; border: 1px solid transparent; font-size: .76rem; font-weight: 700; letter-spacing: .1em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.pil-button:hover { transform: translateY(-2px); text-decoration: none; }
.pil-button--solid { background: var(--pil-periwinkle-deep); color: #fff; }
.pil-button--solid:hover { background: var(--pil-ink); color: #fff; }
.pil-button--quiet { border-color: rgba(255,255,255,.75); color: #fff; }
.pil-button--quiet:hover { background: #fff; color: var(--pil-ink); }
.pil-text-link { display: inline-flex; gap: .6rem; align-items: center; color: var(--pil-periwinkle-deep); font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.pil-text-link span { font-size: 1.2em; transition: transform .2s ease; }
.pil-text-link:hover { color: var(--pil-ink); text-decoration: none; }
.pil-text-link:hover span { transform: translateX(4px); }

/* Shared header and navigation */
.pil-site-header { position: sticky; top: 0; z-index: 90; width: 100%; background: rgba(255,253,249,.98); border-bottom: 1px solid var(--pil-line); box-shadow: 0 2px 14px rgba(39,48,57,.06); }
.pil-site-nav { height: 4.5rem; min-height: 0; padding: 0; }
.pil-site-nav .pil-shell { position: relative; display: flex; height: 100%; align-items: center; justify-content: space-between; }
.pil-brand { display: inline-flex; width: clamp(13.5rem, 18vw, 17rem); flex: 0 0 auto; align-items: center; margin-right: 2rem; color: var(--pil-ink); line-height: 1; text-decoration: none; }
.pil-brand:hover { color: var(--pil-ink); text-decoration: none; }
.pil-brand__image { display: block; width: 100%; height: auto; max-height: 3.25rem; object-fit: contain; object-position: left center; }
.pil-nav-collapse { display: flex; flex: 1 1 auto; justify-content: flex-end; align-items: center; }
.pil-nav-list { display: flex; width: auto; gap: clamp(1rem, 2vw, 1.85rem); align-items: center; margin: 0 0 0 auto; padding: 0; list-style: none; }
.pil-nav-list a { position: relative; color: var(--pil-ink); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-decoration: none; text-transform: uppercase; }
.pil-nav-list a::after { position: absolute; right: 0; bottom: -.45rem; left: 0; height: 1px; background: var(--pil-champagne); content: ''; transform: scaleX(0); transform-origin: right; transition: transform .2s ease; }
.pil-nav-list a:hover { color: var(--pil-periwinkle-deep); text-decoration: none; }
.pil-nav-list a:hover::after { transform: scaleX(1); transform-origin: left; }
.pil-nav-list a.pil-nav-list__inquire { display: inline-flex; min-height: 2.45rem; align-items: center; padding: .45rem .8rem; border: 1px solid var(--pil-periwinkle-deep); color: var(--pil-periwinkle-deep); }
.pil-nav-list a.pil-nav-list__inquire:hover { color: #fff; background: var(--pil-periwinkle-deep); }
.pil-nav-list a.pil-nav-list__inquire::after { display: none; }
.pil-nav-toggle { display: none; width: 2.8rem; height: 2.8rem; padding: .65rem; border: 1px solid var(--pil-line); border-radius: 0; background: transparent; }
.pil-nav-toggle span { display: block; height: 1px; margin: .28rem 0; background: var(--pil-ink); }
/* Bootstrap's generic .collapse rule can otherwise hide this custom desktop nav. */
@media (min-width: 992px) {
    .pil-site-header .pil-nav-toggle { display: none; }
    .pil-site-header #topNav.pil-nav-collapse { display: flex; visibility: visible; height: auto; flex: 1 1 auto; justify-content: flex-end; align-items: center; }
}

/* Shared page banners: compact editorial treatment that supersedes the legacy breadcrumb height. */
.breadcrumb-area .top-breadcrumb-area { box-sizing: border-box; height: clamp(14rem, 18vw, 18rem); min-height: 0; padding: 2rem 1.5rem; background-position: center; }
.breadcrumb-area .top-breadcrumb-area .pil-page-hero__title { position: relative; z-index: 2; max-width: min(100%, 15ch); margin: 0; color: #fff; font-family: var(--pil-serif); font-size: clamp(2.35rem, 4vw, 3.85rem); font-weight: 400; letter-spacing: -.035em; line-height: 1; text-align: center; text-transform: none; text-shadow: 0 2px 20px rgba(20,27,29,.35); }

/* Homepage pilot */
.pil-home { overflow: hidden; }
.pil-home__hero { position: relative; display: grid; min-height: min(48rem, calc(100vh - 5.9rem)); align-items: center; isolation: isolate; color: #fff; background: var(--pil-ink); }
.pil-home__hero-image, .pil-home__hero-wash { position: absolute; inset: 0; width: 100%; height: 100%; }
.pil-home__hero-image { object-fit: cover; object-position: center 48%; }
.pil-home__hero-wash { z-index: 1; background: linear-gradient(90deg, rgba(24,29,29,.74), rgba(24,29,29,.41) 62%, rgba(24,29,29,.22)); }
.pil-home__hero-content { position: relative; z-index: 2; padding-top: var(--pil-space-6); padding-bottom: var(--pil-space-6); }
.pil-home__hero .pil-eyebrow { color: #f4dfbb; }
.pil-home h1 { max-width: none; margin: 0; color: #fff; font-size: clamp(2.75rem, 4.3vw, 5.25rem); line-height: 1; white-space: nowrap; }
.pil-home__hero-lead { max-width: 37rem; margin: 1.7rem 0 .65rem; font-family: var(--pil-serif); font-size: clamp(1.25rem, 1.8vw, 1.7rem); line-height: 1.3; }
.pil-home__hero-copy { max-width: 34rem; margin: 0; font-size: 1.04rem; }
.pil-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.15rem; }
.pil-home__availability { padding: .8rem 0; color: var(--pil-ink); background: var(--pil-blush); border-bottom: 1px solid var(--pil-line); }
.pil-home__availability p { margin: 0; font-size: .86rem; text-align: center; }
.pil-split { display: grid; grid-template-columns: minmax(0, .94fr) minmax(19rem, 1fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.pil-home__images { position: relative; min-height: 38rem; }
.pil-home__images figure { position: absolute; margin: 0; overflow: hidden; border: 10px solid var(--pil-paper); box-shadow: 0 18px 45px rgba(39,48,57,.12); }
.pil-home__images figure:first-child { top: 0; left: 0; width: 78%; height: 78%; }
.pil-home__images figure:last-child { right: 0; bottom: 0; width: 52%; height: 47%; }
.pil-home__images img { width: 100%; height: 100%; object-fit: cover; }
.pil-home__copy { max-width: 38rem; }
.pil-home__service-list { margin: 2.1rem 0 1.8rem; border-top: 1px solid var(--pil-line); }
.pil-home__service-list section { padding: 1.1rem 0; border-bottom: 1px solid var(--pil-line); }
.pil-home__service-list h3 { margin: 0 0 .25rem; color: var(--pil-ink); font-family: var(--pil-serif); font-size: 1.35rem; font-weight: 400; }
.pil-home__service-list p { margin: 0; color: var(--pil-muted); font-size: .97rem; }
.pil-home__service-list p a { color: var(--pil-periwinkle-deep); font-weight: 700; }
.pil-home__cta { padding: clamp(5rem, 11vw, 9rem) 0; color: #fff; text-align: center; background: linear-gradient(rgba(37,47,54,.77), rgba(37,47,54,.77)), url('/img/bg-img/jumbotron5.jpg') center/cover; }
.pil-home__cta .pil-shell { max-width: 54rem; }
.pil-home__cta .pil-eyebrow { color: #f4dfbb; }
.pil-home__cta h2 { margin-bottom: 2rem; color: #fff; }
.pil-home__explore { background: #f3eee7; }
.pil-section-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 2.5rem; }
.pil-home__explore-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(17rem, .65fr); gap: clamp(1.25rem, 2.5vw, 2.5rem); align-items: stretch; }
.pil-home__explore-grid--single { grid-template-columns: minmax(0, 42rem); }
.pil-image-link { position: relative; display: block; min-height: 29rem; overflow: hidden; color: #fff; text-decoration: none; background: var(--pil-ink); }
.pil-image-link--portrait { min-height: 29rem; }
.pil-image-link img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pil-image-link::after { position: absolute; inset: 0; background: linear-gradient(transparent 28%, rgba(16,22,27,.86)); content: ''; }
.pil-image-link span { position: absolute; z-index: 1; right: 1.75rem; bottom: 1.4rem; left: 1.75rem; display: flex; justify-content: space-between; align-items: center; color: #fff; font-family: var(--pil-serif); font-size: clamp(1.55rem, 2.8vw, 2.45rem); line-height: 1.05; text-shadow: 0 2px 10px rgba(0,0,0,.55); }
.pil-image-link i { color: #fff; font-family: var(--pil-sans); font-size: 1.5rem; font-style: normal; }
.pil-image-link:hover { color: #fff; text-decoration: none; }
.pil-image-link:hover img { transform: scale(1.045); }
.pil-home__social { max-width: 50rem; margin: var(--pil-space-6) auto 0; text-align: center; }
.pil-home__social h2 { margin-bottom: 2rem; font-size: clamp(2rem, 3.5vw, 3.5rem); }
.pil-home__social .fb-page, .pil-home__social .fb-page > span, .pil-home__social .fb-page iframe { max-width: 100%; }

/* Portfolio: config-driven editorial gallery. */
.pil-portfolio-page { background: var(--pil-ivory); }
.pil-portfolio-hero { position: relative; display: grid; min-height: clamp(15rem, 18vw, 20rem); align-items: end; overflow: hidden; color: #fff; background: var(--pil-ink); isolation: isolate; }
.pil-portfolio-hero > img, .pil-portfolio-hero__wash { position: absolute; inset: 0; width: 100%; height: 100%; }
.pil-portfolio-hero > img { object-fit: cover; object-position: center; }
.pil-portfolio-hero__wash { z-index: 1; background: linear-gradient(90deg, rgba(25,31,34,.72), rgba(25,31,34,.22)); }
.pil-portfolio-hero__content { position: relative; z-index: 2; padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(2rem, 4vw, 3.25rem); }
.pil-portfolio-hero .pil-eyebrow { color: #f4dfbb; }
.pil-portfolio-hero h1, .pil-portfolio-gallery h2, .pil-portfolio-cta h2 { margin: 0; font-family: var(--pil-serif); font-weight: 400; letter-spacing: -.04em; }
.pil-portfolio-hero h1 { color: #fff; font-size: clamp(3rem, 5vw, 4.75rem); line-height: .96; }
.pil-portfolio-gallery { padding: clamp(4rem, 6vw, 5.25rem) 0; background: #f4efe8; }
.pil-portfolio-gallery__intro { display: block; max-width: 48rem; margin-bottom: 2rem; }
.pil-portfolio-gallery__intro .pil-eyebrow { margin-bottom: .65rem; }
.pil-portfolio-gallery h2 { font-size: clamp(2.2rem, 3.3vw, 3.5rem); line-height: 1.02; }
.pil-portfolio-filters { display: flex; flex-wrap: wrap; gap: .7rem; margin-bottom: clamp(2.3rem, 5vw, 4.2rem); }
.pil-portfolio-filters a { display: inline-flex; min-height: 2.5rem; align-items: center; padding: .45rem 1.05rem; border: 1px solid rgba(72,92,135,.65); border-radius: 999px; color: var(--pil-ink); font-size: .72rem; font-weight: 700; letter-spacing: .11em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background-color .2s ease, border-color .2s ease; }
.pil-portfolio-filters a:hover, .pil-portfolio-filters a:focus-visible, .pil-portfolio-filters a.is-active { border-color: var(--pil-periwinkle-deep); color: #fff; background: var(--pil-periwinkle-deep); text-decoration: none; }
.pil-portfolio-featured { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .75fr); gap: clamp(1rem, 2.5vw, 2.2rem); margin-bottom: clamp(1.25rem, 3vw, 2.5rem); }
.pil-portfolio-card { position: relative; display: block; min-height: 22rem; overflow: hidden; color: #fff; background: var(--pil-ink); text-decoration: none; }
.pil-portfolio-card--wide, .pil-portfolio-card--tall { min-height: clamp(28rem, 43vw, 38rem); }
.pil-portfolio-card img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.pil-portfolio-card::after { position: absolute; inset: 0; background: linear-gradient(transparent 38%, rgba(23,26,34,.88)); content: ''; }
.pil-portfolio-card__overlay { position: absolute; z-index: 1; right: 1.45rem; bottom: 1.35rem; left: 1.45rem; display: grid; gap: .15rem; color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.6); }
.pil-portfolio-card__overlay small { font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.pil-portfolio-card__overlay strong { max-width: 85%; font-family: var(--pil-serif); font-size: clamp(1.55rem, 2.5vw, 2.4rem); font-weight: 400; line-height: 1.05; }
.pil-portfolio-card__overlay em { position: absolute; right: 0; bottom: .1rem; font-family: var(--pil-sans); font-size: 1.5rem; font-style: normal; }
.pil-portfolio-card:hover { color: #fff; text-decoration: none; }
.pil-portfolio-card:hover img { transform: scale(1.04); }
.pil-portfolio-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.6rem); }
.pil-portfolio-grid .pil-portfolio-card { aspect-ratio: 4 / 4.7; min-height: 0; }
.pil-portfolio-grid .pil-portfolio-card:nth-child(3n + 2) { aspect-ratio: 4 / 3.35; }
.pil-portfolio-grid .pil-portfolio-card__overlay { right: 1.1rem; bottom: 1rem; left: 1.1rem; }
.pil-portfolio-grid .pil-portfolio-card__overlay strong { font-size: clamp(1.35rem, 2vw, 1.85rem); }
.pil-portfolio-pagination { display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; justify-content: center; margin-top: 3.5rem; color: var(--pil-muted); font-size: .82rem; }
.pil-portfolio-pagination > a:not(.pil-button) { color: var(--pil-periwinkle-deep); font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.pil-button--outline { border-color: var(--pil-periwinkle-deep); color: var(--pil-periwinkle-deep); background: transparent; }
.pil-button--outline:hover { color: #fff; background: var(--pil-periwinkle-deep); }
.pil-portfolio-empty { padding: 3rem 0; color: var(--pil-muted); }
.pil-portfolio-cta { padding: clamp(5rem, 10vw, 8rem) 0; color: #fff; text-align: center; background: linear-gradient(rgba(37,47,54,.8), rgba(37,47,54,.8)), url('/img/bg-img/jumbotron5.jpg') center/cover; }
.pil-portfolio-cta .pil-shell { max-width: 52rem; }
.pil-portfolio-cta .pil-eyebrow { color: #f4dfbb; }
.pil-portfolio-cta h2 { margin-bottom: 2rem; color: #fff; font-size: clamp(2.4rem, 4vw, 4.3rem); line-height: 1.03; }

/* Shared footer */
.pil-site-footer { color: #e9e9e6; background: #29333b; }
.pil-site-footer .footer-info { padding: 4.5rem 0 3.2rem; background: transparent; }
.pil-footer-grid { row-gap: 2.5rem; }
.pil-site-footer .footer-logo { max-width: 10rem; margin-bottom: 1rem; }
.pil-site-footer .footer-logo img { width: 100%; height: auto; }
.pil-site-footer h1 { margin: 0 0 .8rem; color: #fff; font-size: 2rem; }
.pil-site-footer h6 { margin-bottom: 1rem; color: #f1d6a4; font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.pil-site-footer p, .pil-site-footer .footer-links { color: #d2d6d6; font-size: .93rem; line-height: 1.65; }
.pil-site-footer a { color: #fff; text-decoration-color: rgba(241,214,164,.65); text-underline-offset: .2em; }
.pil-site-footer a:hover { color: #f1d6a4; }
.pil-site-footer .social-info { display: flex; gap: .45rem; margin-top: 1.2rem; }
.pil-site-footer .social-info a { display: inline-grid; width: 2.3rem; height: 2.3rem; place-items: center; border: 1px solid rgba(255,255,255,.34); border-radius: 50%; text-decoration: none; }
.pil-site-footer .social-info a:hover { border-color: #f1d6a4; }
.pil-site-footer .footer-links li { margin-bottom: .4rem; }
.pil-site-footer .newsletter-input { border: 1px solid rgba(255,255,255,.35); border-radius: 0; background: transparent; color: #fff; }
.pil-site-footer .newsletter-input::placeholder { color: #c8cdce; }
.pil-site-footer .btn-primary { border: 1px solid var(--pil-champagne); border-radius: 0; background: var(--pil-champagne); color: var(--pil-ink); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.pil-site-footer .footer-copy { padding: 1.1rem 1rem; color: #cdd2d3; background: #20282e; font-size: .75rem; letter-spacing: .05em; text-align: center; }

@media (max-width: 991px) {
    .pil-site-nav { height: 4.75rem; }
    .pil-site-nav .pil-shell { min-height: 0; }
    .pil-brand { width: min(15.5rem, calc(100% - 4.5rem)); }
    .pil-nav-toggle { display: block; }
    .pil-site-header .pil-nav-collapse { position: absolute; z-index: 50; top: calc(100% + .55rem); right: 1.125rem; left: 1.125rem; display: block; padding: .45rem 1.25rem; color: var(--pil-ink); background: #fffdfa; border: 1px solid var(--pil-line); box-shadow: 0 16px 38px rgba(39,48,57,.18); }
    .pil-nav-collapse:not(.show) { display: none; }
    .pil-site-header .pil-nav-list { display: grid; grid-template-columns: 1fr; width: 100%; gap: 0; }
    .pil-nav-list li { border-bottom: 1px solid var(--pil-line); }
    .pil-nav-list li:last-child { border-bottom: 0; }
    .pil-site-header .pil-nav-list a { display: block; padding: .85rem .15rem; color: var(--pil-ink); font-size: .78rem; text-align: left; }
    .pil-nav-list a::after { display: none; }
    .pil-site-header .pil-nav-list a.pil-nav-list__inquire { display: block; min-height: 0; padding: .85rem .15rem; border: 0; color: var(--pil-periwinkle-deep); background: transparent; }
    .pil-split { grid-template-columns: 1fr; }
    .pil-home__images { max-width: 42rem; min-height: 32rem; }
}

@media (max-width: 767px) {
    .pil-shell { width: min(100% - 2.25rem, var(--pil-shell)); }
    .pil-section { padding: 4.5rem 0; }
    .pil-site-nav { height: 4.5rem; }
    .pil-brand { width: min(12.5rem, calc(100% - 4.75rem)); margin-right: 1rem; }
    .pil-brand__image { max-height: 3rem; }
    .polleninlove .phone-popup { width: calc(100% - 2rem); min-width: 0; padding: 1rem; }
    .pil-home__hero { min-height: 39rem; }
    .pil-home__hero-wash { background: linear-gradient(90deg, rgba(24,29,29,.7), rgba(24,29,29,.35)); }
    .pil-home h1 { max-width: 11ch; font-size: clamp(2.5rem, 12.5vw, 3.7rem); white-space: normal; }
    .pil-home__hero-lead { margin-top: 1.5rem; }
    .pil-home__hero-copy { font-size: .97rem; }
    .pil-actions { display: grid; grid-template-columns: 1fr; max-width: 17rem; }
    .pil-home__availability p { font-size: .78rem; }
    .pil-home__images { min-height: 26rem; }
    .pil-home__images figure { border-width: 6px; }
    .pil-home__images figure:first-child { width: 84%; height: 76%; }
    .pil-home__images figure:last-child { width: 55%; height: 46%; }
    .pil-section-heading { display: block; }
    .pil-section-heading .pil-eyebrow { margin-bottom: .7rem; }
    .pil-home__explore .pil-section-heading, .pil-home__explore .pil-section-heading h2 { text-align: left; }
    .pil-home__explore-grid, .pil-home__explore-grid--single { grid-template-columns: 1fr; }
    .pil-image-link { min-height: 20rem; }
    .pil-image-link span { right: 1.25rem; bottom: 1.15rem; left: 1.25rem; }
    .pil-portfolio-hero { min-height: 13rem; }
    .pil-portfolio-gallery__intro { display: block; margin-bottom: 1.8rem; text-align: left; }
    .pil-portfolio-gallery__intro .pil-eyebrow { margin-top: 0; }
    .pil-portfolio-gallery h2 { font-size: clamp(2.35rem, 11vw, 3.5rem); }
    .pil-portfolio-filters { flex-wrap: nowrap; margin-right: calc(var(--pil-space-3) * -1); padding-right: var(--pil-space-3); overflow-x: auto; scrollbar-width: thin; }
    .pil-portfolio-filters a { flex: 0 0 auto; }
    .pil-portfolio-featured { grid-template-columns: 1fr; }
    .pil-portfolio-card--wide, .pil-portfolio-card--tall { min-height: 25rem; }
    .pil-portfolio-grid { grid-template-columns: 1fr; }
    .pil-portfolio-grid .pil-portfolio-card, .pil-portfolio-grid .pil-portfolio-card:nth-child(3n + 2) { aspect-ratio: 4 / 4.3; }
    .pil-portfolio-pagination { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .pil-button, .pil-text-link span, .pil-image-link img { transition: none; }
    .pil-button:hover { transform: none; }
}
