/* 1.8.1: "Đối tác đồng hành" page. Loaded only on /doi-tac-dong-hanh/ and scoped under body.gns-partners.
   Design language: flat surfaces, hairlines, square edges, one ground (cream), one ink (cellar), one accent (brass).
   Motion = transform/opacity only; reduced motion respected. Palette/fonts come from gn171-palette.css / site.css. */
body.gns-partners{
  --gp-ground:var(--gn-cream,#F2ECE2); --gp-ground-2:var(--gn-cream-2,#E8E0D3);
  --gp-ink:var(--gn-ink,#221A17); --gp-muted:var(--gn-muted,#655950);
  --gp-line:var(--gn-line,#D9CFC0); --gp-dark:var(--gn-cellar,#221A17); --gp-dark-2:var(--gn-cellar-2,#2E2420);
  --gp-brass:var(--gn-brass,#B8935A); --gp-brass-hi:var(--gn-brass-hi,#C9A56C); --gp-brass-ink:var(--gn-brass-ink,#7A5C2E);
  --gp-on-dark:var(--gn-on-dark,#F2ECE2); --gp-on-dark-2:var(--gn-on-dark-2,#B7AA9A);
  --gp-ease:cubic-bezier(.23,1,.32,1);
  --gp-y:clamp(56px,8vw,120px);
}
body.gns-partners .gp-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
body.gns-partners :where(.gp-hero,.gp-wall,.gp-about-gn,.gp-cta) :focus-visible{outline:3px solid var(--gp-brass);outline-offset:3px}
body.gns-partners .gp-wall :focus-visible,body.gns-partners .gp-about-gn :focus-visible{outline-color:var(--gp-ink)}

/* ---- hero ---- */
body.gns-partners .gp-hero{background:var(--gp-dark);color:var(--gp-on-dark);position:relative;overflow:hidden}
body.gns-partners .gp-hero::after{content:"";position:absolute;inset-inline:0;bottom:0;height:1px;background:var(--gp-brass);opacity:.55}
body.gns-partners .gp-hero-in{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;align-items:end;padding:clamp(104px,14vw,176px) 0 clamp(40px,6vw,80px)}
body.gns-partners .gp-h1{font-family:var(--display,inherit);font-weight:800;font-size:clamp(2.1rem,1.2rem + 4.6vw,4.6rem);line-height:1.05;letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance;max-width:15ch;margin:0;color:var(--gp-on-dark)}
body.gns-partners .gp-lead{font-size:clamp(1rem,.95rem + .35vw,1.2rem);line-height:1.65;max-width:46ch;margin:22px 0 0;color:var(--gp-on-dark-2)}
body.gns-partners .gp-count{margin:0;display:flex;align-items:baseline;gap:12px;border-top:1px solid rgba(242,236,226,.18);padding-top:14px;max-width:max-content}
body.gns-partners .gp-count b{font:800 clamp(2.6rem,2rem + 3vw,4.4rem)/1 var(--display,inherit);color:var(--gp-brass);font-variant-numeric:lining-nums}
body.gns-partners .gp-count span{font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gp-on-dark-2)}

/* ---- logo wall ---- */
body.gns-partners .gp-wall{background:var(--gp-ground);padding:var(--gp-y) 0}
body.gns-partners .gp-grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(16px,2.4vw,32px);grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
body.gns-partners .gp-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--gp-line);border-radius:6px;overflow:hidden;position:relative;animation:gp-rise .7s var(--gp-ease) both;animation-delay:calc(var(--i,0) * 90ms);transition:transform .35s var(--gp-ease),border-color .25s ease}
body.gns-partners .gp-tile{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;padding:clamp(24px,4vw,56px);border-bottom:1px solid var(--gp-line);overflow:hidden}
body.gns-partners .gp-tile-light{background:#fff}
body.gns-partners .gp-tile-dark{background:var(--gp-dark);border-bottom-color:var(--gp-dark)}
body.gns-partners .gp-tile img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:transform .5s var(--gp-ease)}
body.gns-partners .gp-tile-light img{max-height:100%}
body.gns-partners .gp-body{display:flex;flex-direction:column;flex:1;padding:clamp(20px,2.6vw,32px)}
body.gns-partners .gp-no{margin:0 0 10px;font:600 .8rem/1 var(--text,inherit);letter-spacing:.2em;color:var(--gp-brass-ink)}
body.gns-partners .gp-name{margin:0;font-family:var(--display,inherit);font-weight:800;font-size:clamp(1.6rem,1.3rem + 1.2vw,2.3rem);line-height:1.1;letter-spacing:0;color:var(--gp-ink);text-transform:none}
body.gns-partners .gp-full{margin:6px 0 0;font-weight:500;color:var(--gp-muted);font-size:.95rem}
body.gns-partners .gp-about{margin:16px 0 0;color:var(--gp-ink);line-height:1.65;max-width:44ch}
body.gns-partners .gp-src{margin:6px 0 0;font-size:.8rem;color:var(--gp-muted)}
body.gns-partners .gp-visit{margin:auto 0 0;padding-top:24px}
body.gns-partners .gp-link{display:flex;align-items:center;gap:12px;min-height:52px;padding:14px 10px;margin-inline:-10px;border-top:1px solid var(--gp-line);color:var(--gp-ink);text-decoration:none;font-weight:700}
body.gns-partners .gp-link::after{content:"";position:absolute;inset:0}               /* whole card is the click target */
body.gns-partners .gp-host{margin-inline-start:auto;font-weight:500;color:var(--gp-muted);font-size:.9rem}
body.gns-partners .gp-arrow{flex:none;transition:transform .3s var(--gp-ease)}
body.gns-partners .gp-link:focus-visible{outline:3px solid var(--gp-ink);outline-offset:-3px}
body.gns-partners .gp-card:focus-within{border-color:var(--gp-ink)}
@media (hover:hover) and (pointer:fine){
  body.gns-partners .gp-card:hover{transform:translateY(-4px);border-color:var(--gp-brass)}
  body.gns-partners .gp-card:hover .gp-tile img{transform:scale(1.04)}
  body.gns-partners .gp-card:hover .gp-arrow{transform:translate(3px,-3px)}
  body.gns-partners .gp-card:hover .gp-link{color:var(--gp-brass-ink)}
}
body.gns-partners .gp-empty{margin:0;color:var(--gp-muted)}

/* ---- about Gánh Ngon ---- */
body.gns-partners .gp-about-gn{background:var(--gp-ground-2);padding:clamp(48px,6vw,88px) 0}
body.gns-partners .gp-gn{display:grid;grid-template-columns:minmax(0,1fr);gap:28px 64px}
body.gns-partners .gp-h2{margin:0;font-family:var(--display,inherit);font-weight:800;font-size:clamp(1.7rem,1.3rem + 1.8vw,2.8rem);line-height:1.1;color:var(--gp-ink);text-transform:none}
body.gns-partners .gp-gn-text{margin:14px 0 0;max-width:40ch;line-height:1.65;color:var(--gp-ink)}
body.gns-partners .gp-facts{margin:0;display:grid;border-top:1px solid var(--gp-line)}
body.gns-partners .gp-facts>div{display:grid;grid-template-columns:minmax(90px,.35fr) 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--gp-line)}
body.gns-partners .gp-facts dt{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gp-muted);padding-top:3px}
body.gns-partners .gp-facts dd{margin:0;font-weight:600;color:var(--gp-ink)}
body.gns-partners .gp-facts a{color:var(--gp-ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}

/* ---- CTA ---- */
body.gns-partners .gp-cta{background:var(--gp-dark);color:var(--gp-on-dark);padding:var(--gp-y) 0}
body.gns-partners .gp-cta-in{display:grid;grid-template-columns:minmax(0,1fr);gap:32px;align-items:end}
body.gns-partners .gp-cta .gp-h2{color:var(--gp-on-dark);font-size:clamp(2rem,1.4rem + 2.6vw,3.6rem);text-transform:uppercase}
body.gns-partners .gp-cta-copy p{margin:16px 0 0;max-width:42ch;line-height:1.65;color:var(--gp-on-dark-2)}
body.gns-partners .gp-cta-act{display:flex;flex-direction:column;gap:12px}
body.gns-partners .gp-btn{display:flex;align-items:center;justify-content:center;gap:.4em;min-height:52px;padding:14px 26px;border:1px solid var(--gp-brass);border-radius:3px;font-weight:700;font-size:1.02rem;text-align:center;text-decoration:none;transition:transform .2s ease-out,background-color .2s ease,color .2s ease}
body.gns-partners .gp-btn:active{transform:scale(.97)}
body.gns-partners .gp-btn-fill{background:var(--gp-brass);color:var(--gp-dark)}
body.gns-partners .gp-btn-line{background:transparent;color:var(--gp-on-dark)}
@media (hover:hover){
  body.gns-partners .gp-btn-fill:hover{background:var(--gp-brass-hi);color:var(--gp-dark)}
  body.gns-partners .gp-btn-line:hover{background:rgba(242,236,226,.08);color:var(--gp-on-dark)}
}

/* ---- breakpoints ---- */
@media (min-width:768px){
  body.gns-partners .gp-hero-in{grid-template-columns:minmax(0,1fr) auto}
  body.gns-partners .gp-gn{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}
  body.gns-partners .gp-cta-act{flex-direction:row;flex-wrap:wrap}
  body.gns-partners .gp-btn{min-width:160px}
}
@media (min-width:1100px){
  body.gns-partners .gp-cta-in{grid-template-columns:minmax(0,1fr) auto}
  body.gns-partners .gp-cta-act{flex-wrap:nowrap}
  body.gns-partners .gp-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
}

@keyframes gp-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  body.gns-partners .gp-card{animation:none;transition:none}
  body.gns-partners .gp-tile img,body.gns-partners .gp-arrow,body.gns-partners .gp-btn{transition:none}
  body.gns-partners .gp-card:hover{transform:none}
}
