/* Partner / association strip — the .tp-* block extracted from
   v3/tourpage-v3.css so the homepage stops loading that entire 225 KB
   stylesheet to style one below-the-fold section.

   Measured before extraction: tourpage-v3.css was ~48% of the homepage's
   render-blocking CSS, and almost none of it could match anything in the
   homepage DOM. The trip page still loads the full file and is untouched.

   The :root block below is LOAD-BEARING, not tidy-up. home.css uses
   var(--border) twice and var(--navy) three times with NO fallback, and
   among the sheets the homepage loads those two were defined ONLY in
   tourpage-v3.css. Dropping that file without carrying these forward makes
   both properties invalid at computed-value time — a silent visual
   regression that no .tp-* audit would have caught. Values copied verbatim
   from tourpage-v3.css:34,41.

   (--action is also defined only there, but home.css writes it as
   var(--action, #1B75E8) and the fallback equals the definition, so it does
   not need carrying. Kept here anyway so the three stay together.)

   Also note: home.css additionally consumes --amber, --muted, --serif,
   --soft and --text with no fallback, and NONE of those is defined by any
   stylesheet the homepage loads — they are already inert today. That is a
   pre-existing bug, unrelated to this extraction, and deliberately not
   changed here.

   The second group (--accent/--fg/--fg-muted) is consumed by the .tp-* rules
   BELOW, not by home.css — .tp-card-bar uses var(--accent), .tp-card-title
   and .tp-biz span use var(--fg), .tp-card-sub and .tp-rec-label use
   var(--fg-muted). They came free while the full sheet was loaded and would
   otherwise have gone undefined the moment it was dropped, silently
   flattening this section's own colours. Found by grepping every var() in
   the extracted output and checking each against a definition, rather than
   by looking at the page — .tp-card has no border, so the section still
   looked fine in a screenshot. */
:root {
  /* consumed by home.css, no fallback there */
  --navy: #1A4B89;
  --action: #1B75E8;
  --border: #e7e9ee;
  /* consumed by the .tp-* rules below */
  --accent: #FBA504;
  --fg: #16181c;
  --fg-muted: #5b6072;
}

.tp-full-wrap { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
.tp-root { padding: 48px 0 32px; border-top: 1px solid var(--border); margin-top: 40px; }
.tp-recommended { text-align: center; margin-bottom: 40px; }
.tp-rec-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; color: var(--fg-muted); margin-bottom: 20px; }
.tp-rec-logos { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 28px 40px; }
.tp-rec-logos img { height: 26px; width: auto; object-fit: contain; opacity: 1; }
.tp-rec-logos img:hover { opacity: .85; }
.tp-bottom { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.tp-card { background: #f7f9fc; border-radius: 14px; padding: 24px 24px 20px; }
.tp-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.tp-card-bar { width: 4px; height: 20px; background: var(--accent); border-radius: 2px; flex-shrink: 0; }
.tp-card-title { font-size: 16px; font-weight: 700; color: var(--fg); margin: 0; }
.tp-card-sub { font-size: 13px; color: var(--fg-muted); margin: 0 0 18px; line-height: 1.5; }
.tp-biz-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.tp-biz { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 10px 12px; background: #fff; border-radius: 10px; border: 1px solid var(--border); text-decoration: none; transition: box-shadow .15s; }
.tp-biz:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.tp-biz--nolink { cursor: default; }
.tp-biz--nolink:hover { box-shadow: none; }
.tp-biz img { width: 56px; height: 56px; object-fit: contain; border-radius: 50%; }
.tp-biz span { font-size: 11px; font-weight: 600; color: var(--fg); text-align: center; line-height: 1.3; }
.tp-assoc-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.tp-assoc-item { display: flex; align-items: center; justify-content: center; padding: 14px 10px; background: #fff; border-radius: 10px; border: 1px solid var(--border); }
.tp-assoc-item img { height: 52px; width: auto; max-width: 80px; object-fit: contain; }

@media (max-width: 768px) {
  .tp-full-wrap {padding: 0 16px;}
}
@media (max-width: 700px) {
  .tp-bottom {grid-template-columns: 1fr;}
}
@media (max-width: 900px) {
  .tp-biz-row {grid-template-columns: repeat(2, 1fr);}
}
@media (max-width: 900px) {
  .tp-assoc-row {grid-template-columns: repeat(2, 1fr);}
}
