/* Tessier & Santamaria: service/editorial alignment with approved home B 0.1.8.
 * Load AFTER seller.css, rental.css, valuation.css and/or buyer-guide.css.
 * Integration supplies body.ts26-service or body.ts26-guide-page and loads
 * shared fonts ONCE. No font imports, shell/navigation rules or form logic here.
 * Existing layouts, photographs, field grids and state visibility are retained.
 */

body.ts26-service,
body.ts26-guide-page {
  --ts-brand: #76861c;
  --ts-olive: #697526;
  --ts-deep: #303923;
  --ts-ink: #252a23;
  --ts-muted: #62675e;
  --ts-line: #dce0d5;
  --ts-paper: #f4f5ef;
  --ts26-section-space: 88px;
  --ts26-anchor-offset: 125px;
}

body.ts26-service .ts-sell {
  --ts-soft: var(--ts-paper);
  font-family: Roboto, Arial, sans-serif;
  font-weight: 400;
}

body.ts26-guide-page .tbg-article {
  --tbg-olive: var(--ts-olive);
  --tbg-deep: var(--ts-deep);
  --tbg-ink: var(--ts-ink);
  --tbg-muted: var(--ts-muted);
  --tbg-line: var(--ts-line);
  --tbg-soft: var(--ts-paper);
  font-family: Roboto, Arial, sans-serif;
  font-weight: 400;
}

/* Use actual installed weights; retain existing responsive type sizes. */
body.ts26-service .ts-sell :is(h1, h2, h3),
body.ts26-service .ts-sell :is(.ts-number, .ts-step, .ts-year),
body.ts26-guide-page .tbg-article :is(h1, h2, h3) {
  font-family: Poppins, Arial, sans-serif;
  font-weight: 500;
}

body.ts26-service .ts-sell :is(strong, b, .ts-outcome, .ts-text-link),
body.ts26-service .ts-sell .tv-data-list :is(dt, p:not(.ts-small)),
body.ts26-guide-page .tbg-article :is(strong, b) {
  font-weight: 500;
}

body.ts26-service .ts-sell :is(.ts-kicker, .ts-case-category),
body.ts26-guide-page .tbg-article .tbg-kicker {
  font-family: Poppins, Arial, sans-serif;
  font-weight: 500;
}

body.ts26-service .ts-sell .ts-number {
  color: var(--ts-olive);
}

/* Service width and article reading width remain 1180px and 760px respectively.
 * Only outer gutters and ordinary section spacing follow the shared rhythm. */
body.ts26-service .ts-sell .ts-wrap,
body.ts26-guide-page .tbg-article .tbg-wrap {
  width: min(1180px, calc(100% - 80px));
}

body.ts26-service .ts-sell .ts-section {
  padding-block: var(--ts26-section-space);
}

/* Trust items are columns/rows, not consecutive prose paragraphs. Remove the
 * seller.css p + p margin while retaining its responsive padding and borders. */
body.ts26-service .ts-sell:is(#vender-inmueble, #alquilar-inmueble) > .ts-trust > .ts-wrap > p {
  margin: 0;
}

body.ts26-service .ts-sell .ts-section,
body.ts26-service .ts-sell.tv-valuation #form,
body.ts26-guide-page .tbg-article .tbg-content :is(h2[id], h3[id]) {
  scroll-margin-top: calc(var(--ts26-anchor-offset) + var(--wp-admin--admin-bar--height, 0px));
}

body.ts26-service .ts-sell :is(.ts-cases, .tr-support) {
  background: var(--ts-paper);
}

body.ts26-service .ts-sell .ts-contact {
  background: #e9eddd;
}

/* Preserve option-card font sizes and padding: they are selectors, not CTAs.
 * !important is limited to properties already marked important in seller.css. */
body.ts26-service .ts-sell .ts-button {
  min-height: 54px;
  border-radius: 2px;
  font-family: Poppins, Arial, sans-serif !important;
  font-weight: 500 !important;
}

body.ts26-service .ts-sell .ts-button:not(.ts-button-light) {
  background: var(--ts-deep);
  border-color: var(--ts-deep);
}

body.ts26-service .ts-sell .ts-button:not(.ts-button-light):hover {
  background: var(--ts-olive);
  border-color: var(--ts-olive);
}

body.ts26-service .ts-sell .ts-button-light {
  background: #fff;
  border-color: #fff;
  color: var(--ts-deep) !important;
}

body.ts26-service .ts-sell .ts-button-light:hover {
  background: #edf0e3;
  border-color: #edf0e3;
}

body.ts26-service .ts-sell .tv-operation-options .ts-button {
  background: var(--ts-paper);
  border-color: var(--ts-line);
  color: var(--ts-olive) !important;
}

body.ts26-service .ts-sell .tv-operation-options .ts-button:hover,
body.ts26-service .ts-sell .tv-operation-options .ts-button.is-selected {
  background: var(--ts-deep);
  border-color: var(--ts-deep);
  color: #fff !important;
}

body.ts26-guide-page .tbg-article .tbg-button {
  min-height: 54px;
  border-radius: 2px;
  background: var(--ts-deep);
  border-color: var(--ts-deep);
  font-family: Poppins, Arial, sans-serif;
  font-weight: 500;
}

body.ts26-guide-page .tbg-article .tbg-button:hover {
  background: var(--ts-olive);
  border-color: var(--ts-olive);
}

body.ts26-guide-page .tbg-article :is(.tbg-cta, .tbg-final-cta) .tbg-button {
  background: #fff;
  border-color: #fff;
  color: var(--ts-deep);
}

body.ts26-guide-page .tbg-article :is(.tbg-cta, .tbg-final-cta) .tbg-button:hover {
  background: #edf0e3;
  border-color: #edf0e3;
}

body.ts26-service .ts-sell .ts-text-link {
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

body.ts26-guide-page .tbg-article .tbg-content a:not(.tbg-button) {
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

/* Contrast is functional: brand green is never substituted for a focus ring.
 * Leave validation borders, disabled opacity and consent states in source CSS. */
body.ts26-service .ts-sell :is(a, button, input, select, textarea, summary):focus-visible,
body.ts26-guide-page .tbg-article a:focus-visible {
  outline: 3px solid var(--ts-olive);
  outline-offset: 5px;
}

body.ts26-service .ts-sell :is(.ts-hero, .ts-team-band, .tr-decision-note) :is(a, button):focus-visible,
body.ts26-guide-page .tbg-article :is(.tbg-cta, .tbg-final-cta) a:focus-visible {
  outline-color: #fff;
}

/* B: small decorative strokes. Do not prefix kickers on dark surfaces. */
body.ts26-service .ts-sell .ts-signature-line {
  background: var(--ts-brand);
}

body.ts26-service .ts-sell .tv-price-card {
  border-top-color: var(--ts-brand);
}

body.ts26-service .ts-sell .ts-hero-figure::before {
  border-color: var(--ts-brand);
}

body.ts26-service .ts-sell .ts-step {
  border-color: var(--ts-brand);
}

body.ts26-service .ts-sell .ts-text-link .ts-arrow {
  color: var(--ts-brand);
}

body.ts26-service .ts-sell .ts-intro .ts-kicker::before,
body.ts26-service .ts-sell .ts-showcase-copy > .ts-kicker::before,
body.ts26-service .ts-sell .ts-faq-layout > div > .ts-kicker::before,
body.ts26-service .ts-sell .ts-contact-copy > .ts-kicker::before,
body.ts26-service .ts-sell .tv-data-copy > .ts-kicker::before,
body.ts26-service .ts-sell .tr-support-grid > div > .ts-kicker::before,
body.ts26-guide-page .tbg-article .tbg-hero-copy > .tbg-kicker::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 2px;
  margin-right: 10px;
  vertical-align: middle;
  background: var(--ts-brand);
}

body.ts26-guide-page .tbg-article .tbg-byline,
body.ts26-guide-page .tbg-article .tbg-content :is(blockquote, .tbg-note) {
  border-left-color: var(--ts-brand);
}

body.ts26-guide-page .tbg-article .tbg-reference-grid > div {
  border-top-color: var(--ts-brand);
}

@media (min-width: 801px) {
  body.ts26-guide-page .tbg-sidebar-inner {
    top: calc(var(--ts26-anchor-offset) + var(--wp-admin--admin-bar--height, 0px));
  }
}

/* Existing fixed action bar keeps its visibility and safe-area logic. */
body.ts26-service .ts-sell .ts-mobile-cta a {
  border-color: var(--ts-deep);
  color: var(--ts-deep);
}

body.ts26-service .ts-sell .ts-mobile-cta a:last-child {
  background: var(--ts-deep);
  color: #fff;
}

body.ts26-service .ts-sell .ts-mobile-cta a:last-child:hover {
  background: var(--ts-olive);
  border-color: var(--ts-olive);
}

@media (max-width: 1100px) {
  body.ts26-service,
  body.ts26-guide-page {
    --ts26-anchor-offset: 110px;
  }
}

@media (max-width: 800px) {
  body.ts26-service,
  body.ts26-guide-page {
    --ts26-section-space: 64px;
  }

  body.ts26-service .ts-sell .ts-wrap,
  body.ts26-guide-page .tbg-article .tbg-wrap {
    width: calc(100% - 40px);
  }
}

@media (max-width: 767px) {
  body.ts26-service,
  body.ts26-guide-page {
    --ts26-anchor-offset: 100px;
  }
}

@media (max-width: 680px) {
  body.ts26-service {
    --ts26-section-space: 56px;
  }
}
