/* THE PERIDOT HOTELS — compact, code-managed partner promotion section.
   3:2 and 1:1 artwork: image LEFT, editorial copy RIGHT on tablet/desktop.
   9.2:1 artwork: full-width compact banner on desktop only.
   No artificially equal-height image slots or stretched layout. */
.ph-partners.ph-section {
  padding-block:clamp(40px,5vw,72px);
  border-block:1px solid #e0e9dc;
  background:linear-gradient(180deg,#f5f8f3,#fafbf8);
}
.ph-partners__heading {
  display:flex;align-items:end;justify-content:space-between;
  gap:18px 45px;margin:0 0 clamp(22px,3vw,36px);
}
.ph-partners__heading .ph-eyebrow {margin:0;color:var(--ph-mid)}
.ph-partners__heading h2 {
  margin:8px 0 0;font-family:var(--ph-font-serif);
  font-size:clamp(22px,2.4vw,33px);line-height:1.5;
  color:var(--ph-primary);
}
.ph-partners__heading>p {max-width:345px;margin:0;color:var(--ph-muted);font-size:13px}
.ph-partners__grid {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(18px,2.4vw,32px);
}
.ph-partner-card {
  min-width:0;min-height:0;
  border:1px solid #dce6d8;border-top:3px solid #255d3d;
  background:#fff;box-shadow:0 12px 30px #0d230d09;
  padding:clamp(20px,3vw,34px);
  display:grid;grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  grid-template-areas:"media copy";
  gap:clamp(24px,4.2vw,56px);
  align-items:center;
}
.ph-partner-card--white{border-top-color:#d3dfd0}
.ph-partner-card--wide{grid-column:1/-1}
.ph-partner-card--card{
  grid-template-columns:1fr;grid-template-areas:"media" "copy";
  gap:19px;
}
.ph-partners__grid--single>.ph-partner-card--card{
  grid-column:1/-1;max-width:800px;width:100%;margin-inline:auto;
  grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
  grid-template-areas:"media copy";
}
.ph-partner-card__media-link{
  grid-area:media;min-width:0;min-height:0;width:100%;max-width:480px;
  display:block;margin-inline:auto;
  text-decoration:none;line-height:0;
  overflow:hidden;
}
.ph-partner-card__picture{display:block;width:100%;height:auto;line-height:0}
.ph-partner-card__image {
  display:block;max-width:100%;width:100%;height:auto;
  object-fit:contain;margin:0;
  /* The selected picture source supplies its own width/height dimensions. */
  transition:filter .2s ease;
}
.ph-partner-card__media-link:hover .ph-partner-card__image {filter:saturate(1.08)}
.ph-partner-card__copy{
  grid-area:copy;min-width:0;max-width:540px;
  display:flex;flex-direction:column;
  justify-content:center;align-items:flex-start;
  text-align:left;
}
.ph-partner-card__copy .ph-eyebrow{
  color:#376547;letter-spacing:.20em;
  font-size:10px;font-weight:700;margin:0 0 10px;
}
.ph-partner-card__copy h2,
.ph-partner-card__copy h3{
  color:var(--ph-primary);
  font-family:var(--ph-font-serif);
  font-size:clamp(21px,2.4vw,31px);
  line-height:1.55;letter-spacing:.035em;font-weight:700;
  margin:0 0 13px;
}
.ph-partner-card__description{
  color:var(--ph-muted);
  font-size:clamp(12px,1.1vw,14px);
  line-height:1.95;margin:0;
}
.ph-partner-card__cta {
  display:inline-flex;align-items:center;gap:17px;
  margin-top:clamp(20px,2.4vw,28px);padding-bottom:8px;
  border-bottom:1px solid var(--ph-primary);
  color:var(--ph-primary);text-decoration:none;
  font-size:13px;font-weight:700;line-height:1.5;
  transition:gap .18s ease;
}
.ph-partner-card__cta span{font-size:18px;font-weight:400}
.ph-partner-card__cta:hover{gap:23px}
.ph-partner-card__cta:focus-visible,
.ph-partner-card__media-link:focus-visible{outline-offset:4px}

/* Large desktop + 9.2:1 artwork: the intrinsically short image determines
   card height. No empty 1:1 fallback reservation, large gutters, or min-height. */
@media(min-width:1200px){
  .ph-partner-card--wide.ph-partner-card--has-wide{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"media" "copy";
    justify-items:center;gap:clamp(15px,2vw,25px);
    padding-block:clamp(24px,3vw,38px);
  }
  .ph-partner-card--has-wide .ph-partner-card__media-link{
    max-width:920px;width:100%;
  }
  .ph-partner-card--has-wide .ph-partner-card__copy{
    max-width:820px;text-align:center;align-items:center;
  }
  .ph-partner-card--has-wide .ph-partner-card__copy h2,
  .ph-partner-card--has-wide .ph-partner-card__copy h3{margin-bottom:8px}
  .ph-partner-card--has-wide .ph-partner-card__cta{margin-top:14px}
}

/* On landscape/portrait tablets the 3:2/1:1 versions share a two-column row.
   Small 300px green artwork stays close to its intended resolution. */
@media(min-width:768px) and (max-width:1199px){
  .ph-partner-card--green .ph-partner-card__media-link {max-width:360px}
  .ph-partner-card--white .ph-partner-card__media-link {max-width:470px}
  .ph-partner-card__copy h2,.ph-partner-card__copy h3 {
    font-size:clamp(20px,2.7vw,27px);
  }
}

/* On smartphones image and copy stack naturally; no second column overflow.
   Keep the entire banner visible, including STAYNAVI's embedded CTA. */
@media(max-width:767px){
  .ph-partners.ph-section{padding-block:40px 50px}
  .ph-partners__heading {display:block;margin-bottom:23px}
  .ph-partners__heading>p {max-width:none;margin-top:10px;font-size:12px}
  .ph-partners__grid {grid-template-columns:minmax(0,1fr);gap:18px}
  .ph-partner-card,.ph-partners__grid--single>.ph-partner-card--card{
    grid-column:1/-1;grid-template-columns:minmax(0,1fr);
    grid-template-areas:"media" "copy";
    gap:19px;padding:clamp(17px,5vw,24px);
  }
  .ph-partner-card__media-link {max-width:360px}
  .ph-partner-card--white .ph-partner-card__media-link{max-width:460px}
  .ph-partner-card__copy{max-width:none}
  .ph-partner-card__copy h2,.ph-partner-card__copy h3{font-size:clamp(21px,5.4vw,26px)}
  .ph-partner-card__description{font-size:12px}
  .ph-partner-card__cta{margin-top:20px}
}
@media(prefers-reduced-motion:reduce){
  .ph-partner-card__image,.ph-partner-card__cta{transition:none!important}
}
