.tr-foundation { font-family:var(--tr-font); color:var(--tr-text); font-size:var(--tr-body); line-height:var(--tr-body-line); }
.tr-foundation .tr-section { padding-block:var(--tr-landing-space); }
.tr-foundation .tr-section h2 { font-size:var(--tr-h2-compact); margin-bottom:var(--tr-content-gap); }
.tr-foundation .tr-hero { padding-block:var(--tr-hero-start) var(--tr-hero-end); background-color:var(--tr-surface); background-size:cover; background-position:center; }
.tr-foundation .tr-hero--image { color:#fff; }
.tr-foundation .tr-landing-title { font-size:var(--tr-landing-h1); line-height:var(--tr-heading-line); margin-block:var(--tr-heading-gap); }
.tr-foundation .tr-eyebrow { font-size:var(--tr-eyebrow); letter-spacing:.15em; font-weight:700; }
.tr-foundation .tr-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--tr-grid-gap); }
.tr-foundation :is(.tr-card,.tr-button,.tr-text-link) { text-decoration:none; }
.tr-foundation :is(.tr-card,.tr-panel) {
  --tr-card-motion:220ms;
  --tr-card-easing:ease-out;
  --tr-card-accent:var(--tr-accent);
  --tr-card-linked-bg:#e5f3f9;
  --tr-card-info-bg:#edf5fa;
  --tr-card-title-active:var(--tr-hover);
  --tr-card-overlay-tint:transparent;
  position:relative;
  transition:background-color var(--tr-card-motion) var(--tr-card-easing),border-color var(--tr-card-motion) var(--tr-card-easing),box-shadow var(--tr-card-motion) var(--tr-card-easing),transform var(--tr-card-motion) var(--tr-card-easing);
}
.tr-foundation .tr-card { display:flex; flex-direction:column; overflow:hidden; min-width:0; border:1px solid var(--tr-border); background:#fff; color:var(--tr-text); }
.tr-foundation .tr-panel { background:var(--tr-panel-base,var(--tr-surface)); }
/* One shared accent: a thin top edge, inside the component so geometry stays fixed. */
.tr-foundation :is(.tr-card,.tr-panel)::before { content:''; position:absolute; inset:0 0 auto; height:2px; background:var(--tr-card-accent); opacity:.15; z-index:3; pointer-events:none; border-start-start-radius:inherit; border-start-end-radius:inherit; transition:opacity var(--tr-card-motion) var(--tr-card-easing); }
.tr-foundation .tr-card-media { position:relative; aspect-ratio:2/1; overflow:hidden; background:var(--tr-surface); }
.tr-foundation .tr-card-media img { width:100%; height:100%; object-fit:cover; transition:transform var(--tr-card-motion) var(--tr-card-easing); }
.tr-foundation .tr-card-body { padding:var(--tr-card-padding); display:flex; flex-direction:column; gap:var(--tr-heading-gap); flex:1; }
.tr-foundation .tr-card-title { font-size:var(--tr-card-title); line-height:1.25; transition:color var(--tr-card-motion) var(--tr-card-easing); }
.tr-foundation .tr-card-entry { margin-top:auto; display:flex; align-items:center; gap:16px; }
.tr-foundation .tr-arrow { display:inline-block; transition:transform var(--tr-motion) var(--tr-easing); }
.tr-foundation .tr-card :is(.tr-arrow,.tr-card-icon,.tr-card-entry) { transition:transform var(--tr-card-motion) var(--tr-card-easing),color var(--tr-card-motion) var(--tr-card-easing),background-color var(--tr-card-motion) var(--tr-card-easing); }
.tr-foundation .tr-card--linked { cursor:pointer; }
.tr-foundation :is(.tr-card--information,.tr-panel--information) { --tr-card-motion:200ms; cursor:default; }
.tr-foundation :is(.tr-card--information,.tr-panel--information):is(:hover,:focus-within) { --tr-card-overlay-tint:rgb(0 143 190 / .18); background-color:var(--tr-card-info-bg); border-color:#80adc1; box-shadow:inset 0 0 0 1px rgb(0 143 190 / .2); transform:translateY(-1px); }
.tr-foundation :is(.tr-card--information,.tr-panel--information):is(:hover,:focus-within)::before { opacity:.7; }
.tr-foundation :is(.tr-card--information,.tr-panel--information):is(:hover,:focus-within) .tr-card-icon { color:var(--tr-card-accent); }
.tr-foundation .tr-card--linked:is(:hover,:focus-visible) { --tr-card-overlay-tint:rgb(0 143 190 / .3); background-color:var(--tr-card-linked-bg); border-color:var(--tr-accent); box-shadow:0 4px 12px rgb(16 22 64 / .12); transform:translateY(-2px); text-decoration:none; }
.tr-foundation .tr-card--linked:is(:hover,:focus-visible)::before { opacity:1; }
.tr-foundation .tr-card--linked:is(:hover,:focus-visible) :is(.tr-card-title,.tr-card-icon,.tr-card-entry) { color:var(--tr-card-title-active); }
.tr-foundation .tr-card--linked:is(:hover,:focus-visible) .tr-card-media img { transform:scale(1.025); }
.tr-foundation .tr-card--linked:is(:hover,:focus-visible) .tr-arrow { transform:translateX(5px); }
.tr-foundation .tr-card--linked:focus-visible { outline:3px solid var(--tr-card-accent); outline-offset:4px; }
.tr-foundation .tr-card :is(.tr-card-title,p,.tr-card-entry) { text-decoration:none; }
/* Overlay is a shared image-card variant. Template CSS controls only its geometry. */
.tr-foundation .tr-card--image-overlay { --tr-card-accent:#63d7f6; --tr-card-linked-bg:#173b55; --tr-card-info-bg:#18334e; --tr-card-title-active:#8be3ff; color:#fff; background:var(--tr-dark); }
.tr-foundation .tr-card--image-overlay .tr-card-media::after { content:''; position:absolute; inset:0; background-image:linear-gradient(180deg,rgba(16,22,64,.12),rgba(16,22,64,.94)); background-color:var(--tr-card-overlay-tint); pointer-events:none; transition:background-color var(--tr-card-motion) var(--tr-card-easing); }
.tr-foundation .tr-panel--dark { --tr-card-accent:#63d7f6; --tr-card-info-bg:#18334e; }
.tr-foundation :is(.tr-button,.tr-text-link):is(:hover,:focus-visible) .tr-arrow { transform:translateX(var(--tr-arrow-travel)); }
.tr-foundation .tr-button { display:inline-flex; align-items:center; justify-content:space-between; gap:20px; min-height:var(--tr-button-height); padding:var(--tr-button-padding); max-width:100%; border:1px solid var(--tr-accent); border-radius:4px; background:var(--tr-accent); color:#fff; font-size:12px; line-height:24px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; transition:color var(--tr-motion) var(--tr-easing),background-color var(--tr-motion) var(--tr-easing),border-color var(--tr-motion) var(--tr-easing); }
.tr-foundation .tr-button--secondary { background:transparent; color:var(--tr-accent); }
.tr-foundation .tr-button:is(:hover,:focus-visible) { background:var(--tr-hover); border-color:var(--tr-hover); color:#fff; text-decoration:none; }
.tr-foundation .tr-text-link { display:inline-flex; align-items:center; gap:16px; color:var(--tr-accent); font-weight:700; }
.tr-foundation .tr-text-link > span:first-child { position:relative; }
.tr-foundation .tr-text-link > span:first-child::after { content:''; position:absolute; bottom:-3px; inset-inline:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform var(--tr-motion) var(--tr-easing); }
.tr-foundation .tr-text-link:is(:hover,:focus-visible) > span:first-child::after { transform:scaleX(1); transform-origin:left; }
.tr-foundation .tr-actions { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.tr-foundation :focus-visible { outline:3px solid var(--tr-focus); outline-offset:4px; }
.tr-foundation .tr-note { font-size:var(--tr-small); padding-block:12px; }
@media(max-width:1024px) { .tr-foundation .tr-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .tr-foundation .tr-grid { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) {
  .tr-foundation { --tr-motion:0s; }
  .tr-foundation :is(.tr-card,.tr-panel) { --tr-card-motion:0s; }
  .tr-foundation :is(.tr-card--linked,.tr-card--information,.tr-panel--information):is(:hover,:focus-visible,:focus-within) { transform:none; }
  .tr-foundation .tr-card--linked:is(:hover,:focus-visible) .tr-card-media img,
  .tr-foundation .tr-card--linked:is(:hover,:focus-visible) img,
  .tr-foundation :is(.tr-card--linked,.tr-button,.tr-text-link):is(:hover,:focus-visible) .tr-arrow { transform:none; }
}
