/* Filterable Portfolio (Hero + Pairs) */
:root {
  --fp-gap: 16px;
  --fp-radius: 0px;
  --fp-text: #0f172a;
  --fp-muted: #475569;
  --fp-bg: #ffffff;
  --fp-hero-title: clamp(1rem, 2rem, 2.5rem);
  --fp-card-title: clamp(18px, 22px, 22px);
  --fp-excerpt: clamp(14px, 1.6vw, 16px);
}

/* Global box-sizing to avoid rounding/overflow artifacts */
*, *::before, *::after { box-sizing: border-box; }

.fp-wrap { position: relative; }


button{color:#457f55 !important; border-radius: 0px;}
button:focus, button:hover {background-color: #457f55 !important;  color: #fff !important;}
.fp-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.fp-filter { appearance: none; border:1px solid #457f55; background:#fff; color:#f55; padding:8px 12px; cursor:pointer; transition: all .2s ease; }
.fp-filter:focus { outline: 3px solid #94a3b8; outline-offset:2px; }
.fp-filter.is-active { background:#457f55; color:#fff !important; border-color:#457f55; }

.fp-grid { display:flex; flex-direction: column; gap: var(--fp-gap); }
.fp-card__title-link{color:#457f55};

/* Layout A (All) with FLEX column wrapper */
.fp-grid.mode--all .fp-row { display:block; } 
.fp-grid.mode--all .fp-row--hero { overflow: hidden; }
.fp-grid.mode--all .fp-row--hero .fp-hero { display:grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: stretch; min-height: 50vh; }
.fp-grid.mode--all .fp-row--hero.is-left .fp-hero { flex-direction: row; }
.fp-grid.mode--all .fp-row--hero.is-right .fp-hero { flex-direction: row-reverse; }
.fp-grid.mode--all .fp-row--hero .fp-hero__media, .fp-grid.mode--all .fp-row--hero .fp-hero__content { flex: 0 0 50%; box-sizing: border-box; min-width: 0; }
.fp-grid.mode--all .fp-row--hero .fp-card__media, .fp-grid.mode--all .fp-row--hero .fp-card__video, .fp-grid.mode--all .fp-row--hero .fp-card__img { height: 100%; max-height: none; }
.fp-grid.mode--all .fp-row--hero .fp-hero__content { position: static; color: var(--fp-text); padding: clamp(16px, 2vw, 24px); display:flex; flex-direction: column; justify-content: center; }
.fp-grid.mode--all .fp-row--hero.is-left .fp-hero__content { padding-right: 0; padding-left: clamp(16px, 2vw, 24px); text-align: left; align-items: flex-start; }
.fp-grid.mode--all .fp-row--hero.is-right .fp-hero__content { padding-left: 0; padding-right: clamp(16px, 2vw, 24px); text-align: right; align-items: flex-end; }

/* Pair rows: use two-column feel by making cards inline-flex containers that wrap naturally */
.fp-grid.mode--all .fp-row--pair { display:flex;}
.fp-hero__content, article.fp-card.is-pair, .fp-hero__media {padding: 5px;}
.fp-grid.mode--all .fp-row--pair > .fp-card { flex: 0 0 50%; }
.fp-grid.mode--all .fp-row--pair .fp-card__body { display:flex; flex-direction: column; }
/* Ensure pair cards render text below media (override absolute default) */
.fp-grid.mode--all .fp-row--pair .fp-card__content { position: static; color: var(--fp-text); padding: 12px 12px 16px; }
/* Consistent typography for titles */
.fp-grid.mode--all .fp-row--hero .fp-card__title { font-size: var(--fp-hero-title); line-height:1.15; }
.fp-grid.mode--all .fp-row--pair .fp-card__title { font-size: var(--fp-card-title); line-height:1.25; }
/* Consistent media heights for pairs */
.fp-grid.mode--all .fp-row--pair .fp-card__media, .fp-grid.mode--all .fp-row--pair .fp-card__img, .fp-grid.mode--all .fp-row--pair .fp-card__video { height: 50vh;}

/* Layout B (Filtered) */
.fp-grid.mode--filtered { display:flex; flex-direction: row; flex-wrap: wrap; gap: var(--fp-gap); }
.fp-grid.mode--filtered .fp-card { flex: 0 0 calc(50% - var(--fp-gap)/2); display:flex; flex-direction: column; box-sizing: border-box; }
.fp-grid.mode--filtered .fp-hero { display:block; }
.fp-grid.mode--filtered .fp-hero__media, .fp-grid.mode--filtered .fp-hero__content { flex: none; width: auto; }
.fp-grid.mode--filtered .fp-hero__content { position: static; color: var(--fp-text); padding: 12px 0px 16px; }
.fp-grid.mode--filtered .fp-card__media, .fp-grid.mode--filtered .fp-card__video, .fp-grid.mode--filtered .fp-card__img { height: 50vh; max-height: 720px; }
.fp-grid.mode--filtered .fp-card__content { position: static; color: var(--fp-text); padding: 12px 0px 16px; }

/* Card */
.fp-card { position: relative; overflow: hidden; border-radius: var(--fp-radius); background: var(--fp-bg); }
.fp-card__link { display:block; color: inherit; text-decoration: none; height:100%; }
.fp-card__media { position: relative; margin:0; width:100%; overflow:hidden; }
.fp-card__img { width:100%; height:100%; display:block; object-fit: cover; object-position: center center; }
.fp-card__overlay-logo { position:absolute; left:50%; top:50%; transform: translate(-50%, -50%); max-width:55%; max-height:55%; height:auto; width:auto; z-index:2; pointer-events:none; object-fit: contain; filter: drop-shadow(0 4px 12px rgba(0,0,0,.35)); image-rendering: -webkit-optimize-contrast; }
/* Larger on hero */
.fp-grid.mode--all .fp-card.is-hero .fp-card__overlay-logo { max-width:55%; max-height:100%; }

/* Gradient overlay for hero cards */
.fp-grid.mode--all .fp-card.is-hero .fp-card__media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.45) 100%); pointer-events:none; }
/* Disable gradient for side-by-side hero */
.fp-grid.mode--all .fp-card.is-hero .fp-card__media::after { background:none; }

.fp-card__content { position: absolute; left: clamp(16px, 3vw, 36px); bottom: clamp(16px, 3vw, 36px); right: clamp(16px, 3vw, 36px); color:#fff; }
.fp-card__title { margin:0 0 0px; font-weight: 500; line-height:1.1; }
.fp-card__excerpt { margin:0; line-height:1.5; }
.fp-card__subtitle { margin:0; line-height:1.5; color: var(--fp-muted); }

/* Typography scale between hero vs small cards */
/* Removed nth-of-type based sizing; rely on .fp-row--hero and .is-hero */

.fp-grid.mode--all .fp-card.is-hero .fp-card__link { display:block; }
.fp-grid.mode--all .fp-card.is-hero .fp-card__content { position: static; color: var(--fp-text); padding: clamp(16px, 2vw, 24px); display:flex; flex-direction:column; justify-content:center; }
.fp-grid.mode--all .fp-card.is-hero .fp-card__title { font-size: var(--fp-hero-title); }
.fp-grid.mode--all .fp-card.is-hero .fp-card__excerpt { font-size: var(--fp-excerpt); }

.fp-grid.mode--filtered .fp-card .fp-card__content {
  position: static;
  color: var(--fp-text);
  padding-left: 5px;
}
.fp-grid.mode--filtered .fp-card .fp-card__title { font-size: var(--fp-card-title); padding-left: 5px;}

/* Responsive */
@media (max-width: 1024px) {
  .fp-grid.mode--all .fp-row--hero .fp-hero { grid-template-columns: 1fr; min-height: 40vh; }
  .fp-grid.mode--filtered .fp-card { flex: 0 0 50%; }
  /* Tablet hero heights */
  .fp-grid.mode--all .fp-row--hero .fp-card__media, .fp-grid.mode--all .fp-row--hero .fp-card__video, .fp-grid.mode--all .fp-row--hero .fp-card__img { height: 100%; }
  .fp-grid.mode--all .fp-row--pair .fp-card__media, .fp-grid.mode--all .fp-row--pair .fp-card__img, .fp-grid.mode--all .fp-row--pair .fp-card__video { height: 30vh; }

  .fp-card__content { position: static; color: var(--fp-text); padding: 12px 0px 16px; }
}

@media (max-width: 640px) {
  .fp-grid.mode--filtered .fp-card { flex: 0 0 100%; }
  /* Mobile hero heights */
  .fp-grid.mode--all .fp-row--hero .fp-hero { min-height: 32vh; }
  .fp-grid.mode--all .fp-row--hero .fp-card__media, .fp-grid.mode--all .fp-row--hero .fp-card__video, .fp-grid.mode--all .fp-row--hero .fp-card__img { height: 100%; }
  .fp-grid.mode--all .fp-row--pair .fp-card__media, .fp-grid.mode--all .fp-row--pair .fp-card__img, .fp-grid.mode--all .fp-row--pair .fp-card__video { height: 36vh; }

  /* Mobile filters: horizontal scroll with fade indicator */
  .fp-filters { overflow-x: auto; -webkit-overflow-scrolling: touch; position: relative; padding-bottom: 4px; }
  .fp-filters::-webkit-scrollbar { display: none; }
  .fp-filter { flex: 0 0 auto; }

  /* ALL mode: stack everything into one column on mobile */
  .fp-grid.mode--all .fp-row--pair { flex-direction: column; gap: var(--fp-gap); }
  .fp-grid.mode--all .fp-row--pair > .fp-card { flex: 0 0 100%; }

  /* Ensure hero always renders media above content regardless of side */
  .fp-grid.mode--all .fp-row--hero .fp-hero { display: grid; grid-template-columns: 1fr; grid-template-areas: "media" "content"; min-height: auto; }
  .fp-grid.mode--all .fp-row--hero .fp-hero__media { grid-area: media; }
  .fp-grid.mode--all .fp-row--hero .fp-hero__content { grid-area: content; text-align: left; align-items: flex-start; padding: 12px 0px 16px; }

  /* Normalize typography and alignment on mobile */
  .fp-grid.mode--all .fp-card .fp-card__title { font-size: var(--fp-card-title); line-height: 1.25; text-align: left; }
  .fp-grid.mode--all .fp-card .fp-card__subtitle { text-align: left; }
  .fp-grid.mode--all .fp-card .fp-card__content { position: static; color: var(--fp-text); padding: 12px 0px 16px; }

  .fp-row--hero.is-right .fp-hero__content{padding-right: 0; text-align: left; align-items: flex-start;}
  .fp-row--hero.is-left .fp-hero__content {padding-right: 0; padding-left: 0; text-align: left; align-items: flex-start;}
  .fp-card.is-hero .fp-card__title {  font-size: var(--fp-hero-title); }
  .fp-grid.mode--all .fp-row--hero.is-right .fp-hero__content{align-items: flex-start;font-size: var(--fp-card-title);}
  .fp-grid.mode--all .fp-card.is-hero .fp-card__title {align-items: flex-start;font-size: var(--fp-card-title);}
  .fp-grid.mode--all .fp-row--hero.is-left .fp-hero__content{padding-left: 5px;}
  .fp-grid.mode--filtered .fp-card .fp-card__title {font-size: var(--fp-card-title) !important; }
  .fp-grid.mode--filtered .fp-card__content{padding: 12px 0px 0px;}
  .fp-grid.mode--filtered .fp-card .fp-card__title{padding-left: 0px !important;}
  .fp-grid.mode--filtered .fp-card__img, .fp-grid.mode--filtered .fp-card__media, .fp-grid.mode--filtered .fp-card__video { height: 36vh; }
  .fp-grid.mode--all .fp-row--hero.is-right .fp-hero__content {
    align-items: flex-start;
    font-size: 16px;
    padding-left: 5px;
  }

}

/* Focus styles */
.fp-card a:focus-visible { outline: 3px solid var(--fp-accent, #22d3ee); outline-offset:2px; }

/* Video media */
.fp-card__video { width:100%; height:100%; display:block; object-fit: cover; object-position: center center; background:#000; }


/*Additional styles*/
.fp-grid.mode--all .fp-row--hero .fp-hero__media, .fp-grid.mode--all .fp-row--hero .fp-hero__content{
    display: flex;
    align-items: start;
    justify-content: center;
    flex-direction: column;
  }

/* Remove global image height override; media containers control height */
figure.fp-card__media img { height:auto; width:100%; object-fit: cover; object-position: center center; display:block; }
figure.fp-card__media video { height:100%; max-height: 50vh !important; width:100vw; object-fit: cover; object-position: center center; display:block; }
.fp-grid.mode--all .fp-row--hero .fp-card__video { width:100vw; }