/* ==========================================================================
   PUENTE LATINO ASSOCIATION — components.css
   Buttons, links, rules, cards, media, listings, quote, stats, CTA, footer.
   ========================================================================== */

/* ---------- Editorial CTAs + links ---------- */
.pk-cta{
  display:inline-flex;align-items:center;gap:12px;min-height:44px;
  font-size:13.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--puente-ink);
  border-bottom:2px solid var(--puente-orange);
  padding-bottom:5px;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.pk-cta:hover{color:var(--puente-orange);}
.pk-cta--quiet{border-bottom-color:var(--puente-rule-2);color:var(--puente-ink-3);}
.pk-cta--quiet:hover{border-bottom-color:var(--puente-orange);color:var(--puente-ink);}
.pk-cta--light{color:#fff;border-bottom-color:#fff;}
.pk-cta--light:hover{color:#fff;border-bottom-color:var(--puente-orange);}

.pk-btn{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:18px 30px;border:1px solid var(--puente-ink);background:var(--puente-ink);color:#fff;
  font-size:13.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.pk-btn:hover{background:#fff;color:var(--puente-ink);}
.pk-btn--accent{background:var(--puente-orange);border-color:var(--puente-orange);color:#fff;}
.pk-btn--accent:hover{background:var(--puente-orange-hover);border-color:var(--puente-orange-hover);color:#fff;}
.pk-btn--ghost{background:transparent;color:var(--puente-ink);}
.pk-btn--ghost:hover{background:var(--puente-ink);color:#fff;}

.pk-link-list{display:flex;flex-direction:column;}
.pk-link-list a{
  display:flex;align-items:baseline;justify-content:space-between;gap:24px;
  padding:28px 0;border-top:1px solid var(--puente-rule);
  font-size:clamp(1.3rem,3vw,2.125rem);font-weight:700;letter-spacing:var(--ls-display);line-height:1.1;
}
.pk-link-list a:last-child{border-bottom:1px solid var(--puente-rule);}
.pk-link-list a span{
  font-size:10px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--puente-ink-4);flex:0 0 auto;
}
.pk-link-list a:hover span{color:var(--puente-orange);}

/* ---------- Rules + section labels ---------- */
.pk-rule{height:1px;background:var(--puente-rule);border:0;margin:0;}
.pk-rule-accent{width:48px;height:2px;background:var(--puente-orange);margin-top:14px;}
.pk-sectionhead{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;
  gap:var(--space-md);margin-bottom:var(--space-xl);
}
.pk-sectionhead__label{margin-bottom:14px;}

/* ---------- Media ---------- */
.pk-media{position:relative;overflow:hidden;background:var(--puente-surface-3);}
.pk-media img,.pk-media video{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.pk-media--bleed{width:100%;}
.pk-media--wide{aspect-ratio:16/9;}
.pk-media--landscape{aspect-ratio:3/2;}
.pk-media--portrait{aspect-ratio:3/4;}
.pk-media--square{aspect-ratio:1/1;}
.pk-media--crop{aspect-ratio:21/9;}
.pk-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--puente-rule);}
@media (max-width:767px){.pk-media-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.pk-media__caption{
  margin-top:12px;font-size:var(--fs-caption);color:var(--puente-ink-3);max-width:var(--measure-narrow);
}

/* Image + text split */
.pk-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg);align-items:center;}
.pk-split--narrow-media{grid-template-columns:minmax(0,5fr) minmax(0,7fr);}
@media (max-width:767px){.pk-split,.pk-split--narrow-media{grid-template-columns:minmax(0,1fr);}}
.pk-split__text{display:flex;flex-direction:column;gap:var(--space-sm);}

/* ---------- Placeholders ---------- */
.media-placeholder,.pk-placeholder{
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--puente-surface-3);color:var(--puente-ink-4);
  font-size:10px;font-weight:700;letter-spacing:0.06em;line-height:1.45;
  padding:24px;overflow:hidden;
}
.pk-placeholder--block{width:100%;min-height:220px;}
.pk-note{
  border-top:1px solid var(--puente-rule);
  padding-top:16px;margin-top:var(--space-lg);
  font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--puente-ink-4);max-width:24em;
}

/* ---------- Editorial project card ---------- */
.pk-card{display:block;position:relative;background:#fff;}
.pk-card__media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--puente-surface-3);}
.pk-card__media img{width:100%;height:100%;object-fit:cover;transition:transform 300ms var(--ease);}
.pk-card:hover .pk-card__media img{transform:scale(1.02);}
.pk-card__body{padding-top:18px;}
.pk-card__title{font-size:clamp(2rem,3.4vw,2.6rem);font-weight:700;letter-spacing:var(--ls-heading);line-height:1.15;}
.pk-card__desc{margin-top:8px;font-size:var(--fs-body-sm);line-height:1.5;color:var(--puente-ink-2);max-width:24em;}
.pk-card__meta{
  display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:14px;
  font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--puente-ink-4);
}
.pk-card__cta{
  display:inline-block;margin-top:16px;
  font-size:11.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--puente-ink);
}
.pk-card:hover .pk-card__cta{color:var(--puente-orange);}

/* Project + event listings (rules, not boxes) */
.pk-listing{border-top:1px solid var(--puente-rule);}
.pk-listing__row{
  display:grid;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr);
  gap:var(--space-md);align-items:start;
  padding:26px 0;border-bottom:1px solid var(--puente-rule);
}
.pk-listing__row:hover .pk-listing__title{color:var(--puente-orange);}
.pk-listing__when{
  font-size:11px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--puente-ink-4);
  padding-top:8px;
}
.pk-listing__title{font-size:clamp(2.1rem,3.8vw,2.9rem);font-weight:700;letter-spacing:var(--ls-heading);line-height:1.2;transition:color var(--dur) var(--ease);}
.pk-listing__desc{margin-top:8px;font-size:var(--fs-body-sm);color:var(--puente-ink-2);max-width:32em;}
.pk-listing__aside{
  display:flex;flex-direction:column;gap:8px;align-items:flex-start;
  font-size:var(--fs-caption);color:var(--puente-ink-3);
}
@media (max-width:767px){
  .pk-listing__row{grid-template-columns:minmax(0,1fr);gap:12px;}
}

/* ---------- Quote ---------- */
.pk-quote{
  margin:0;padding-left:26px;border-left:2px solid var(--puente-orange);
  font-size:clamp(2rem,4.6vw,3rem);line-height:1.3;letter-spacing:-0.014em;color:var(--puente-ink);max-width:26em;
}
.pk-quote figcaption{
  margin-top:16px;font-size:11px;font-weight:700;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--puente-ink-4);
}

/* ---------- Large impact numbers ---------- */
.pk-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--puente-rule);}
.pk-stats--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.pk-stat{padding:24px 24px 24px 0;border-bottom:1px solid var(--puente-rule);}
.pk-stat__num{font-size:clamp(2.6rem,7vw,4.75rem);font-weight:700;letter-spacing:var(--ls-display);line-height:1;}
.pk-stat__label{
  margin-top:12px;font-size:12.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--puente-ink-3);
}
.pk-section--ink .pk-stats,.pk-section--ink .pk-stat{border-color:rgba(255,255,255,0.2);}
.pk-section--ink .pk-stat__label{color:rgba(255,255,255,0.65);}
@media (max-width:1024px){.pk-stats,.pk-stats--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:430px){.pk-stats,.pk-stats--4{grid-template-columns:minmax(0,1fr);}}

/* ---------- Approach labels ---------- */
.pk-approach{display:flex;flex-wrap:wrap;gap:10px;}
.pk-approach span,.pk-approach a{
  display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;
  border:1px solid var(--puente-rule-2);
  font-size:11.5px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--puente-ink-2);
}
.pk-approach a:hover{border-color:var(--puente-ink);color:var(--puente-ink);}

/* ---------- CTA block ---------- */
.pk-ctablock{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--space-lg);align-items:end;
  padding-block:var(--space-xl);
}
@media (max-width:767px){.pk-ctablock{grid-template-columns:minmax(0,1fr);}}
.pk-ctablock__actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;}

/* ---------- Footer ---------- */
.pk-footer{
  background:var(--puente-black);color:#fff;
  padding:var(--space-xl) var(--page-margin) 28px;
}
.pk-footer__grid{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);
  gap:var(--space-lg);padding-bottom:var(--space-lg);
}
@media (max-width:1400px){
  .pk-footer__grid{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));}
}
@media (max-width:1024px){.pk-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:600px){.pk-footer__grid{grid-template-columns:minmax(0,1fr);}}
.pk-footer__logo{height:62px;width:auto;margin-bottom:28px;}
.pk-footer__descriptor{font-size:15px;line-height:1.55;letter-spacing:-0.012em;color:rgba(255,255,255,0.78);max-width:22em;}
.pk-footer__address{margin-top:28px;font-size:13px;line-height:1.6;color:rgba(255,255,255,0.78);}
.pk-footer__label{
  font-size:11px;font-weight:700;letter-spacing:0.11em;text-transform:uppercase;
  color:rgba(255,255,255,0.6);padding-bottom:18px;margin-bottom:24px;
  border-bottom:1px solid rgba(255,255,255,0.15);
}
.pk-footer__links{display:flex;flex-direction:column;gap:18px;}
.pk-footer__links a,.pk-footer__links span{font-size:15px;font-weight:400;letter-spacing:-0.012em;line-height:1.2;color:#fff;}
.pk-footer__links a:hover{color:var(--puente-orange);}
.pk-footer__meta{
  border-top:1px solid rgba(255,255,255,0.15);padding-top:22px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;
  font-size:12px;line-height:1.5;color:rgba(255,255,255,0.55);
}
.pk-footer__meta a{color:rgba(255,255,255,0.55);font-size:12px;}
.pk-footer__meta a:hover{color:#fff;}
.pk-footer__meta-links{display:flex;flex-wrap:wrap;gap:32px;}

@media (max-width:600px){
  .pk-footer__logo{height:52px;}
}

/* ---------- Development-only placeholders ----------
   Every unfinished field carries data-development-placeholder so it is
   searchable before deployment and can never be mistaken for final copy. */
[data-development-placeholder]{
  color:var(--puente-ink-4);
  border-bottom:1px dashed var(--puente-orange);
  font-style:normal;
}
.media-placeholder[data-development-placeholder],
[data-development-placeholder].pk-note{border-bottom:0;}
[data-development-placeholder].pk-note{border-top:1px dashed var(--puente-orange);color:var(--puente-ink-3);}
