/* ============================================================
   Thermosticks Rebrand 2026 — design system
   Fonts: Archivo (UI/headings) · Newsreader italic (accents) · Space Mono (data)
   Loaded by snippets/tsr-assets.liquid. Used by sections/tsr-*.liquid.
   ============================================================ */

:root {
  --tsr-ink: #1C1F1A;
  --tsr-body: #3A3E37;
  --tsr-muted: #6A6E64;
  --tsr-paper: #F5F6EF;
  --tsr-tint: #EDEFE7;
  --tsr-green: #32483A;
  --tsr-green-deep: #263629;
  --tsr-green-footer: #1E2C23;
  --tsr-olive: #6A7053;
  --tsr-honey: #B07C46;
  --tsr-honey-deep: #7A4E28;
  --tsr-rule: #E5E7DE;
  --tsr-light: #F1F6F6;
  --tsr-sage: #C6D4CB;
  --tsr-sage-dim: #C2C6AC;
  --tsr-track: #DBDECB;
  --tsr-ph-bg: #E4ECE7;
  --tsr-ph-line: #9DB3A4;
  --tsr-ph-ink: #4C6955;
  --tsr-font-sans: 'Archivo', system-ui, sans-serif;
  --tsr-font-serif: 'Newsreader', Georgia, serif;
  --tsr-font-mono: 'Space Mono', ui-monospace, monospace;
  --tsr-radius: 14px;
}

.tsr { font-family: var(--tsr-font-sans); color: var(--tsr-ink); background: var(--tsr-paper); -webkit-font-smoothing: antialiased; }
.tsr * { box-sizing: border-box; }
.tsr a { color: var(--tsr-green); }
.tsr-wrap { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.tsr-section { padding: 88px 0; }
.tsr--tint { background: var(--tsr-tint); }
.tsr--dark { background: var(--tsr-green-deep); color: var(--tsr-light); }
.tsr--dark p { color: var(--tsr-sage); }

/* Type */
.tsr-eyebrow { font: 600 12px var(--tsr-font-sans); letter-spacing: .22em; text-transform: uppercase; color: var(--tsr-olive); margin: 0 0 14px; }
.tsr--dark .tsr-eyebrow, .tsr-eyebrow--light { color: var(--tsr-sage-dim); }
.tsr h1, .tsr-h1 { margin: 0 0 18px; font: 700 clamp(38px, 4vw, 56px)/1.06 var(--tsr-font-sans); letter-spacing: -.02em; color: var(--tsr-ink); }
.tsr h2, .tsr-h2 { margin: 0 0 18px; font: 700 clamp(28px, 3vw, 38px)/1.12 var(--tsr-font-sans); letter-spacing: -.02em; color: var(--tsr-ink); }
.tsr h3, .tsr-h3 { margin: 0 0 10px; font: 700 21px/1.25 var(--tsr-font-sans); color: var(--tsr-ink); }
.tsr--dark h1, .tsr--dark h2, .tsr--dark h3 { color: var(--tsr-light); }
.tsr h1 em, .tsr h2 em, .tsr h3 em, .tsr em.tsr-acc { font-family: var(--tsr-font-serif); font-style: italic; font-weight: 500; }
.tsr-lead { margin: 0; font: 400 19px/1.6 var(--tsr-font-sans); color: var(--tsr-muted); max-width: 62ch; }
.tsr p { font: 400 16px/1.65 var(--tsr-font-sans); color: var(--tsr-body); }
.tsr-muted { color: var(--tsr-muted); }
.tsr-mono { font-family: var(--tsr-font-mono); }
.tsr-honey { color: var(--tsr-honey); }

/* Buttons */
.tsr-btn { display: inline-flex; align-items: center; justify-content: center; font: 600 15px var(--tsr-font-sans); border-radius: 4px; padding: 13px 24px; text-decoration: none; transition: all .15s ease-out; cursor: pointer; border: 0; }
.tsr-btn--primary { background: var(--tsr-green); color: var(--tsr-light); }
.tsr-btn--primary:hover { background: var(--tsr-green-deep); }
.tsr-btn--wood { background: var(--tsr-honey); color: #fff; }
.tsr-btn--wood:hover { background: var(--tsr-honey-deep); }
.tsr-btn--outline { border: 1.5px solid var(--tsr-green); color: var(--tsr-green); background: transparent; }
.tsr-btn--outline:hover { background: var(--tsr-green); color: var(--tsr-light); }
.tsr-btn--outline-inv { border: 1.5px solid rgba(241,246,246,.7); color: var(--tsr-light); background: transparent; }
.tsr-btn--outline-inv:hover { background: rgba(241,246,246,.12); }
.tsr-btn-row { display: flex; gap: 14px; flex-wrap: wrap; }

/* Grids */
.tsr-grid2 { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 64px; align-items: center; }
.tsr-grid2--top { align-items: start; }
.tsr-grid-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.tsr-grid-feat { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px 36px; }

/* Cards */
.tsr-card { background: #fff; border: 1px solid var(--tsr-rule); border-radius: var(--tsr-radius); padding: 30px; }
a.tsr-card { text-decoration: none; display: flex; flex-direction: column; transition: border-color .15s ease-out, transform .15s ease-out; }
a.tsr-card:hover { border-color: var(--tsr-honey); transform: translateY(-2px); }
.tsr-card__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 18px; }
.tsr-card__num { font: 400 14px var(--tsr-font-mono); color: var(--tsr-honey); }
.tsr-card__badge { display: inline-block; font: 700 10px var(--tsr-font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--tsr-green); background: var(--tsr-tint); border-radius: 3px; padding: 4px 8px; margin-bottom: 14px; align-self: flex-start; }
.tsr-card__meta { font: 400 13px var(--tsr-font-mono); color: var(--tsr-honey); margin-top: auto; padding-top: 14px; }
.tsr-card p { font-size: 14px; color: var(--tsr-muted); margin: 0 0 4px; }
.tsr-card h3 { font-size: 22px; }
.tsr-card__img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; margin-bottom: 18px; display: block; }

/* Feature blocks */
.tsr-feat__kicker { font: 600 11px var(--tsr-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--tsr-olive); margin: 0 0 8px; }
.tsr-feat h3 { font-size: 19px; }
.tsr-feat p { font-size: 15px; color: var(--tsr-muted); margin: 0; }

/* Spec table */
.tsr-spec { background: #fff; border: 1px solid var(--tsr-rule); border-radius: var(--tsr-radius); padding: 26px 28px; }
.tsr-spec h4 { margin: 0 0 16px; font: 600 11px var(--tsr-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--tsr-olive); }
.tsr-spec table { width: 100%; border-collapse: collapse; }
.tsr-spec td { padding: 10px 0; border-bottom: 1px solid var(--tsr-rule); font: 400 14px var(--tsr-font-sans); color: var(--tsr-body); }
.tsr-spec td:last-child { text-align: right; font-family: var(--tsr-font-mono); color: var(--tsr-ink); white-space: nowrap; padding-left: 12px; }
.tsr-spec tr:last-child td { border-bottom: none; }

/* Images & placeholders */
.tsr-ph { display: flex; align-items: center; justify-content: center; background: var(--tsr-ph-bg); border: 1.5px dashed var(--tsr-ph-line); border-radius: var(--tsr-radius); color: var(--tsr-ph-ink); font: 500 14px var(--tsr-font-sans); text-align: center; padding: 16px; min-height: 280px; }
.tsr-img-full { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: var(--tsr-radius); }
.tsr-caption { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; font: 400 13px var(--tsr-font-mono); color: var(--tsr-muted); }

/* Hero */
.tsr-hero { position: relative; display: flex; align-items: flex-end; overflow: hidden; padding: 0; min-height: 600px; }
.tsr-hero--short { min-height: 0; }
.tsr-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tsr-hero__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(20,28,22,.82), rgba(20,28,22,.08)); }
.tsr-hero__content { position: relative; width: 100%; padding-top: 120px; padding-bottom: 72px; }
.tsr-hero--image h1 { color: var(--tsr-light); max-width: 15ch; font-size: clamp(44px, 5.2vw, 68px); }
.tsr-hero--image .tsr-lead { color: rgba(241,246,246,.85); }
.tsr-hero--plain { min-height: 0; background: var(--tsr-paper); }
.tsr-hero--plain .tsr-hero__content { padding-top: 96px; padding-bottom: 24px; }

/* Trust bar */
.tsr-trust { background: var(--tsr-green); padding: 20px 0; }
.tsr-trust .tsr-wrap { display: flex; flex-wrap: wrap; gap: 14px 40px; justify-content: center; font: 600 12px var(--tsr-font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--tsr-sage); }

/* Price bars */
.tsr-bar { margin-bottom: 22px; }
.tsr-bar__row { display: flex; justify-content: space-between; gap: 12px; font: 600 14px var(--tsr-font-sans); }
.tsr-bar__tag { font: 400 11px var(--tsr-font-mono); color: var(--tsr-honey); margin-left: 6px; }
.tsr-bar__sub { font: 400 12px var(--tsr-font-sans); color: var(--tsr-muted); margin: 2px 0 6px; }
.tsr-bar__track { height: 10px; background: var(--tsr-track); border-radius: 3px; }
.tsr-bar__fill { height: 100%; background: var(--tsr-green); border-radius: 3px; }
.tsr-bar--hl .tsr-bar__fill { background: var(--tsr-honey); }

/* Process steps */
.tsr-step { background: #fff; border: 1px solid var(--tsr-rule); border-radius: var(--tsr-radius); padding: 26px; }
.tsr-step__num { font: 400 14px var(--tsr-font-mono); color: var(--tsr-honey); display: block; margin-bottom: 12px; }
.tsr-step h3 { font-size: 18px; }
.tsr-step p { font-size: 14.5px; color: var(--tsr-muted); margin: 0; }

/* CTA band */
.tsr-cta-band { background: var(--tsr-green-deep); padding: 56px 0; }
.tsr-cta-band .tsr-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.tsr-cta-band p { margin: 0; font-size: 18px; max-width: 56ch; color: var(--tsr-sage); }

/* Quote / forms */
.tsr-form label { display: block; font: 600 12px var(--tsr-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--tsr-body); margin-top: 18px; }
.tsr-form input, .tsr-form select, .tsr-form textarea { width: 100%; margin-top: 8px; border: 1px solid #D6D8CF; border-radius: 6px; padding: 12px 14px; font: 400 15px var(--tsr-font-sans); background: var(--tsr-paper); color: var(--tsr-ink); }
.tsr-form textarea { line-height: 1.5; resize: vertical; }
.tsr-form input:focus, .tsr-form select:focus, .tsr-form textarea:focus { outline: 2px solid var(--tsr-green); outline-offset: 0; border-color: var(--tsr-green); }
.tsr-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.tsr-form__micro { font: 400 13px var(--tsr-font-sans); color: var(--tsr-muted); margin-top: 12px; }
.tsr-form__success { background: var(--tsr-tint); border: 1px solid var(--tsr-green); border-radius: 8px; padding: 16px 18px; font: 500 15px var(--tsr-font-sans); color: var(--tsr-green-deep); margin-bottom: 20px; }
.tsr-form__errors { background: #FBF1EC; border: 1px solid var(--tsr-honey-deep); border-radius: 8px; padding: 16px 18px; font: 400 14px var(--tsr-font-sans); color: var(--tsr-honey-deep); margin-bottom: 20px; }
.tsr-facts { display: flex; flex-direction: column; gap: 14px; }
.tsr-facts__row { display: flex; gap: 10px; font: 400 14px var(--tsr-font-mono); color: var(--tsr-body); }
.tsr-facts__label { color: var(--tsr-olive); min-width: 96px; text-transform: uppercase; font-size: 12px; padding-top: 2px; }
.tsr-contact-info { border-top: 1px solid var(--tsr-rule); margin-top: 32px; padding-top: 24px; display: flex; flex-direction: column; gap: 8px; font: 400 14px var(--tsr-font-sans); color: var(--tsr-body); }
.tsr-contact-info a { text-decoration: none; font-weight: 600; }

/* Footer */
.tsr-footer { background: var(--tsr-green-footer); color: var(--tsr-light); padding: 64px 0 40px; font-family: var(--tsr-font-sans); }
.tsr-footer__grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); gap: 40px; }
.tsr-footer__brand { display: inline-flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.tsr-footer__brand img { width: 53px; display: block; }
.tsr-footer__wordmark { font: 400 22px var(--tsr-font-sans); letter-spacing: .18em; white-space: nowrap; line-height: 1; color: var(--tsr-light); }
.tsr-footer__wordmark b { font-weight: 700; }
.tsr-footer__tagline { margin: 0; font: italic 500 20px/1.35 var(--tsr-font-serif); color: var(--tsr-sage-dim); max-width: 320px; }
.tsr-footer__provenance { margin: 16px 0 0; font-size: 13.5px; line-height: 1.6; color: rgba(241,246,246,.66); max-width: 340px; }
.tsr-footer__heading { font: 700 12px var(--tsr-font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--tsr-ph-line); margin: 0 0 16px; }
.tsr-footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 11px; }
.tsr-footer ul a { font-size: 14px; color: rgba(241,246,246,.78); text-decoration: none; }
.tsr-footer ul a:hover { color: var(--tsr-light); }
.tsr-footer__bottom { border-top: 1px solid rgba(241,246,246,.14); margin-top: 48px; padding-top: 22px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px; font: 400 12px var(--tsr-font-mono); color: rgba(241,246,246,.55); }

/* Responsive */
@media (max-width: 990px) {
  .tsr-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 820px) {
  .tsr-section { padding: 64px 0; }
  .tsr-grid2 { grid-template-columns: 1fr; gap: 36px; }
  .tsr-form__grid { grid-template-columns: 1fr; }
  .tsr-hero__content { padding-top: 96px; padding-bottom: 56px; }
}
@media (max-width: 560px) {
  .tsr-wrap { padding: 0 20px; }
  .tsr-footer__grid { grid-template-columns: 1fr; }
}


/* Mobile pass 2026-08-13: smaller type, tighter sections, CTA emphasis */
@media (max-width: 749px) {
.tsr h1, .tsr-h1, .tsr-hero--image h1 { font-size: 30px; line-height: 1.15; }
.tsr h2, .tsr-h2 { font-size: 23px; }
.tsr-eyebrow { font-size: 10px; letter-spacing: .16em; margin-bottom: 10px; }
.tsr-lead { font-size: 15px; line-height: 1.55; }
.tsr-hero { min-height: 480px; }
.tsr-hero__content { padding-top: 76px; padding-bottom: 36px; }
.tsr-section { padding: 48px 0; }
.tsr-card { padding: 22px; }
.tsr-card h3 { font-size: 19px; }
.tsr-card p { font-size: 13.5px; }
.tsr-trust .tsr-wrap { font-size: 10px; letter-spacing: .12em; gap: 8px 20px; }
.tsr-btn-row { flex-direction: column; align-items: stretch; gap: 10px; }
.tsr-btn { width: 100%; padding: 15px 20px; font-size: 16px; }
.tsr-hero .tsr-btn--wood { box-shadow: 0 8px 24px rgba(20, 28, 22, .35); }
}
/* Site pass 2026-08-13: white hero text, opaque buttons, footer white, table + caption fixes */
.tsr-eyebrow--light { color: #fff; }
.tsr-hero--image .tsr-lead { color: #fff; }
.tsr-hero--image h1, .tsr-hero--image .tsr-lead, .tsr-eyebrow--light { text-shadow: 0 1px 12px rgba(20,28,22,.45); }
.tsr-hero .tsr-btn { padding: 15px 30px; font-size: 16px; }
.tsr-btn--outline-inv { background: var(--tsr-light); border-color: var(--tsr-light); color: var(--tsr-green-deep); }
.tsr-btn--outline-inv:hover { background: #fff; color: var(--tsr-green-deep); }
.tsr-footer__tagline, .tsr-footer__provenance, .tsr-footer__heading, .tsr-footer ul a, .tsr-footer__bottom { color: #fff; }
.tsr-spec td:last-child { white-space: normal; overflow-wrap: anywhere; }
.tsr-caption { flex-wrap: wrap; row-gap: 2px; }

/* ============================================================
   WordPress adaptation layer (v5 WP port, 2026-11)
   ============================================================ */

/* Base document */
body { margin: 0; font-family: var(--tsr-font-sans); color: var(--tsr-ink); background: var(--tsr-paper); -webkit-font-smoothing: antialiased; }

.tsr figure { margin: 0; }

/* Buttons — core button block mapped to tsr-btn */
.tsr .wp-block-button__link, .tsr-form .wpcf7-submit {
  display: inline-flex; align-items: center; justify-content: center;
  font: 600 15px var(--tsr-font-sans); border-radius: 4px; padding: 13px 24px;
  text-decoration: none; transition: all .15s ease-out; cursor: pointer; border: 0;
  background: var(--tsr-green); color: var(--tsr-light);
}
.tsr .wp-block-button__link:hover { background: var(--tsr-green-deep); color: var(--tsr-light); }
.tsr .wp-block-button.is-wood .wp-block-button__link, .tsr-form .wpcf7-submit { background: var(--tsr-honey); color: #fff; }
.tsr .wp-block-button.is-wood .wp-block-button__link:hover, .tsr-form .wpcf7-submit:hover { background: var(--tsr-honey-deep); color: #fff; }
.tsr .wp-block-button.is-outline .wp-block-button__link { border: 1.5px solid var(--tsr-green); color: var(--tsr-green); background: transparent; }
.tsr .wp-block-button.is-outline .wp-block-button__link:hover { background: var(--tsr-green); color: var(--tsr-light); }
.tsr .wp-block-button.is-outline-inv .wp-block-button__link { background: var(--tsr-light); border: 1.5px solid var(--tsr-light); color: var(--tsr-green-deep); }
.tsr .wp-block-button.is-outline-inv .wp-block-button__link:hover { background: #fff; color: var(--tsr-green-deep); }
.tsr .wp-block-buttons { gap: 14px; }

/* Hero — core cover block */
.wp-block-cover.tsr-hero { display: flex; align-items: flex-end; padding: 0; min-height: 600px; }
.wp-block-cover.tsr-hero .wp-block-cover__background { background: linear-gradient(to top, rgba(20,28,22,.82), rgba(20,28,22,.08)) !important; opacity: 1 !important; }
.wp-block-cover.tsr-hero .wp-block-cover__inner-container { width: 100%; max-width: 1240px; margin: 0 auto; padding: 120px 32px 72px; }
.wp-block-cover.tsr-hero h1 { color: var(--tsr-light); max-width: 15ch; font-size: clamp(44px, 5.2vw, 68px); text-shadow: 0 1px 12px rgba(20,28,22,.45); }
.wp-block-cover.tsr-hero .tsr-lead { color: #fff; text-shadow: 0 1px 12px rgba(20,28,22,.45); }
.wp-block-cover.tsr-hero .tsr-eyebrow { color: #fff; text-shadow: 0 1px 12px rgba(20,28,22,.45); }
.wp-block-cover.tsr-hero .wp-block-button__link { padding: 15px 30px; font-size: 16px; }
.wp-block-cover.tsr-hero.tsr-hero--short { min-height: 420px; }
.tsr-hero--plainwp { background: var(--tsr-paper); padding: 96px 0 24px; }

/* Header / nav */
.tsr-announce { background: var(--tsr-green-footer); color: var(--tsr-paper); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; text-align: center; padding: 10px 24px; font-family: var(--tsr-font-sans); }
.tsr-announce p { margin: 0; font-size: 12px; color: var(--tsr-paper); }
.tsr-nav { position: sticky; top: 0; z-index: 100; background: var(--tsr-paper); border-bottom: 1px solid var(--tsr-rule); }
.tsr-nav__inner { display: flex; align-items: center; justify-content: space-between; min-height: 76px; max-width: 1400px; margin: 0 auto; padding: 0 48px; gap: 24px; }
.tsr-nav__logo img { height: 52px; width: auto; display: block; }
.tsr-nav .wp-block-navigation a { font-size: 14px; font-weight: 500; color: var(--tsr-ink); text-decoration: none; }
.tsr-nav .wp-block-navigation a:hover { opacity: .6; }
.tsr-nav .wp-block-navigation { gap: 36px; }
.tsr-nav__cta .wp-block-button__link { font-size: 13px; padding: 12px 22px; }
@media (max-width: 900px) {
  .tsr-nav__inner { padding: 0 20px; }
  .tsr-nav__cta { display: none; }
}

/* Spec table block */
.tsr-spec.wp-block-table, .tsr-spec .wp-block-table { border: 0; }
.tsr-spec h4 { margin: 0 0 16px; font: 600 11px var(--tsr-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--tsr-olive); }
.tsr-spec table { border: 0; }
.tsr-spec td { border-left: 0; border-right: 0; border-top: 0; }

/* Profile grid (quote-driven: cards link to /quote) */
.tsr-profiles { padding: 56px 0 64px; }
.tsr-profiles .tsr-profiles__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.tsr-profiles__card { display: flex; flex-direction: column; gap: 4px; color: inherit; border: 1px solid rgba(0,0,0,.14); padding: 14px; transition: border-color .15s, transform .15s; background: #fff; }
.tsr-profiles__card:hover { border-color: var(--tsr-honey); transform: translateY(-2px); }
.tsr-profiles__plate { display: flex; align-items: center; justify-content: center; background: #fff; border: 1px solid rgba(0,0,0,.08); aspect-ratio: 1/1; margin-bottom: 10px; }
.tsr-profiles__plate img { width: 88%; height: 88%; object-fit: contain; }
.tsr-profiles__name { font-weight: 600; font-size: 17px; margin: 0; }
.tsr-profiles__spec { font-size: 13px; opacity: .7; line-height: 1.4; margin: 0; }
.tsr-profiles__cta { font-size: 13px; margin: 8px 0 0; }
.tsr-profiles__cta a { color: inherit; text-underline-offset: 3px; }
@media (max-width: 749px) { .tsr-profiles .tsr-profiles__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }

/* Forms — Contact Form 7 inside .tsr-form card */
.tsr-form p { margin: 0; }
.tsr-form .wpcf7-form label { display: block; font: 600 12px var(--tsr-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--tsr-body); margin-top: 18px; }
.tsr-form .wpcf7-form input:not([type=submit]), .tsr-form .wpcf7-form select, .tsr-form .wpcf7-form textarea { width: 100%; margin-top: 8px; border: 1px solid #D6D8CF; border-radius: 6px; padding: 12px 14px; font: 400 15px var(--tsr-font-sans); background: var(--tsr-paper); color: var(--tsr-ink); box-sizing: border-box; }
.tsr-form .wpcf7-form input:focus, .tsr-form .wpcf7-form select:focus, .tsr-form .wpcf7-form textarea:focus { outline: 2px solid var(--tsr-green); outline-offset: 0; border-color: var(--tsr-green); }
.tsr-form .wpcf7-submit { width: 100%; margin-top: 24px; }
.tsr-form .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 16px 18px; border-radius: 8px; font: 500 15px var(--tsr-font-sans); }
.tsr-form .wpcf7 form.sent .wpcf7-response-output { background: var(--tsr-tint); border: 1px solid var(--tsr-green); color: var(--tsr-green-deep); }
.tsr-form .wpcf7 form.invalid .wpcf7-response-output, .tsr-form .wpcf7 form.failed .wpcf7-response-output { background: #FBF1EC; border: 1px solid var(--tsr-honey-deep); color: var(--tsr-honey-deep); }
.tsr-form .wpcf7-not-valid-tip { font: 400 13px var(--tsr-font-sans); color: var(--tsr-honey-deep); margin-top: 4px; }

/* Gallery figure captions */
.tsr figure.tsr-gallery-item img, .tsr figure.tsr-gallery-item video { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: var(--tsr-radius); }
.tsr figure.tsr-gallery-item figcaption { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; font: 400 13px var(--tsr-font-mono); color: var(--tsr-muted); flex-wrap: wrap; }

/* Footer link lists */
.tsr-footer .wp-block-columns { gap: 40px; }
.tsr-footer ul { list-style: none; padding: 0; margin: 0; }
.tsr-footer ul li { margin: 0 0 11px; }
.tsr-footer ul a { font-size: 14px; color: #fff; text-decoration: none; }
.tsr-footer p { font-family: var(--tsr-font-sans); }

/* Price bars (custom HTML block) already covered by .tsr-bar rules above. */

/* Core alignment helpers inside tsr sections */
.tsr .alignfull { width: 100%; }
.tsr-section .wp-block-columns { gap: 64px; }
@media (max-width: 820px) { .tsr-section .wp-block-columns { gap: 36px; } }

/* Editor niceties */
.editor-styles-wrapper { font-family: var(--tsr-font-sans); }

/* Generator support classes */
.tsr-compact { padding-top: 0 !important; }
.tsr-gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; }
.tsr-grid-steps { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.tsr .wp-block-image.tsr-card__img-wrap img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; margin-bottom: 18px; display: block; }
.tsr .wp-block-image.tsr-img-wrap img { width: 100%; object-fit: cover; display: block; border-radius: var(--tsr-radius); min-height: 420px; }
.tsr .wp-block-image.tsr-gallery-item img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; border-radius: var(--tsr-radius); }
.tsr .tsr-gallery-item figcaption { font: 400 13px var(--tsr-font-mono); color: var(--tsr-muted); margin-top: 10px; text-align: left; }
.tsr-card { display: flex; flex-direction: column; }
.tsr-card .tsr-card__meta { margin-top: auto; }
.tsr-card__meta a { color: var(--tsr-honey); text-decoration: none; }
.tsr-cta-band .tsr-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.tsr-hero--plainwp .tsr-eyebrow { color: var(--tsr-olive); }
.tsr-hero--plainwp h1 { margin: 0 0 18px; font: 700 clamp(38px, 4vw, 56px)/1.06 var(--tsr-font-sans); letter-spacing: -.02em; color: var(--tsr-ink); }
.tsr-profiles__plate .wp-block-image img { width: 88%; height: 88%; object-fit: contain; aspect-ratio: auto; }
.tsr-facts__row .tsr-facts__label { color: var(--tsr-olive); text-transform: uppercase; font-size: 12px; display: inline-block; min-width: 96px; }

/* ============================================================
   v2 · Premium polish layer (2026-11)
   Quiet luxury: more air, finer rules, deeper imagery, motion.
   ============================================================ */

:root {
  --tsr-shadow-soft: 0 1px 2px rgba(28,31,26,.05), 0 8px 24px rgba(28,31,26,.06);
  --tsr-shadow-lift: 0 2px 4px rgba(28,31,26,.06), 0 18px 44px rgba(28,31,26,.13);
  --tsr-ease: cubic-bezier(.22,.61,.36,1);
}

/* --- Rhythm: more air between movements --- */
.tsr-section { padding: 112px 0; }
.tsr-wrap { max-width: 1280px; }
.tsr-compact { padding-top: 0 !important; }

/* --- Type: tighter display, calmer body --- */
.tsr h1, .tsr-h1 { letter-spacing: -.025em; }
.tsr h2, .tsr-h2 { font-size: clamp(30px, 3.2vw, 44px); letter-spacing: -.022em; margin-bottom: 22px; }
.tsr-lead { font-size: 19px; line-height: 1.65; }
.tsr-eyebrow { display: flex; align-items: center; gap: 12px; letter-spacing: .26em; }
.tsr-eyebrow::before { content: ""; display: inline-block; width: 28px; height: 1px; background: var(--tsr-honey); flex: none; }
.wp-block-cover.tsr-hero .tsr-eyebrow::before, .tsr-hero--plainwp .tsr-eyebrow::before { background: var(--tsr-honey); }

/* --- Trust bar: legible, deliberate (fixes dark-text-on-green) --- */
.tsr-trust { padding: 22px 0; border-top: 1px solid rgba(241,246,246,.08); }
.tsr-trust p, .tsr-trust span { font: 600 12px var(--tsr-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--tsr-sage) !important; margin: 0; text-align: center; }
.tsr-trust .tsr-wrap { display: flex; justify-content: center; }

/* --- Hero: taller, cinematic, slow drift --- */
.wp-block-cover.tsr-hero { min-height: min(86vh, 860px); }
.wp-block-cover.tsr-hero.tsr-hero--short { min-height: min(56vh, 560px); }
.wp-block-cover.tsr-hero .wp-block-cover__background { background: linear-gradient(to top, rgba(16,24,18,.86) 0%, rgba(16,24,18,.28) 45%, rgba(16,24,18,.10) 100%) !important; }
.wp-block-cover.tsr-hero .wp-block-cover__image-background { animation: tsr-drift 24s var(--tsr-ease) both; transform-origin: 60% 40%; }
@keyframes tsr-drift { from { transform: scale(1.07); } to { transform: scale(1); } }
.wp-block-cover.tsr-hero h1 { font-size: clamp(46px, 5.6vw, 76px); line-height: 1.04; }
.wp-block-cover.tsr-hero .tsr-lead { font-size: 20px; }
.wp-block-cover.tsr-hero .wp-block-cover__inner-container { padding-bottom: 88px; }

/* --- Plain hero pages: grander opening --- */
.tsr-hero--plainwp { padding: 128px 0 40px; }
.tsr-hero--plainwp h1 { font-size: clamp(42px, 4.6vw, 64px); }

/* --- Origin band: the brand statement --- */
.tsr-origin { background: var(--tsr-tint); border-top: 1px solid var(--tsr-rule); border-bottom: 1px solid var(--tsr-rule); }
.tsr-origin .tsr-wrap { padding-top: 96px; padding-bottom: 96px; text-align: center; }
.tsr-origin__line { font: italic 500 clamp(26px, 3vw, 40px)/1.3 var(--tsr-font-serif); color: var(--tsr-green-deep); max-width: 24ch; margin: 0 auto 22px; }
.tsr-origin__line b, .tsr-origin__line strong { font-family: var(--tsr-font-sans); font-style: normal; font-weight: 700; letter-spacing: -.02em; }
.tsr-origin p { max-width: 62ch; margin-left: auto; margin-right: auto; }
.tsr-origin .tsr-eyebrow { justify-content: center; }
.tsr-origin .tsr-eyebrow::after { content: ""; display: inline-block; width: 28px; height: 1px; background: var(--tsr-honey); flex: none; }

/* --- Cards: borders out, light in --- */
.tsr-card { border: 1px solid transparent; border-radius: 16px; box-shadow: var(--tsr-shadow-soft); transition: box-shadow .45s var(--tsr-ease), transform .45s var(--tsr-ease); }
.tsr-card:hover { box-shadow: var(--tsr-shadow-lift); transform: translateY(-4px); border-color: transparent; }
.tsr .wp-block-image.tsr-card__img-wrap { overflow: hidden; border-radius: 10px; margin-bottom: 18px; }
.tsr .wp-block-image.tsr-card__img-wrap img { margin-bottom: 0; transition: transform .8s var(--tsr-ease); }
.tsr-card:hover .tsr-card__img-wrap img { transform: scale(1.045); }
.tsr-step { border: 1px solid transparent; border-radius: 16px; box-shadow: var(--tsr-shadow-soft); }
.tsr-spec { border: 1px solid var(--tsr-rule); border-radius: 16px; box-shadow: var(--tsr-shadow-soft); }

/* --- Imagery: full-bleed feel, slow zoom on hover --- */
.tsr .wp-block-image.tsr-img-wrap, .tsr .wp-block-image.tsr-gallery-item { overflow: hidden; border-radius: var(--tsr-radius); }
.tsr .wp-block-image.tsr-img-wrap img, .tsr .wp-block-image.tsr-gallery-item img { transition: transform 1.1s var(--tsr-ease); }
.tsr .wp-block-image.tsr-img-wrap:hover img, .tsr .wp-block-image.tsr-gallery-item:hover img { transform: scale(1.035); }
.tsr .tsr-gallery-item figcaption { letter-spacing: .04em; }

/* --- Buttons: unhurried confidence --- */
.tsr .wp-block-button__link, .tsr-form .wpcf7-submit, .tsr-btnlike {
  padding: 15px 30px; border-radius: 3px; letter-spacing: .01em;
  transition: background .3s var(--tsr-ease), transform .3s var(--tsr-ease), box-shadow .3s var(--tsr-ease);
}
.tsr .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgba(28,31,26,.16); }

/* --- Profile plates: gallery objects, not thumbnails --- */
.tsr-profiles { padding: 72px 0 88px; }
.tsr-profiles__card { border: 1px solid var(--tsr-rule); border-radius: 12px; background: #fff; box-shadow: none; transition: box-shadow .45s var(--tsr-ease), transform .45s var(--tsr-ease); }
.tsr-profiles__card:hover { border-color: var(--tsr-rule); box-shadow: var(--tsr-shadow-lift); transform: translateY(-4px); }
.tsr-profiles__plate { border: 0; border-bottom: 1px solid var(--tsr-rule); border-radius: 0; }
.tsr-profiles__cta a { color: var(--tsr-honey); text-decoration: none; font-weight: 600; }
.tsr-profiles__cta a { display: inline-block; transition: transform .3s var(--tsr-ease); }
.tsr-profiles__card:hover .tsr-profiles__cta a { transform: translateX(3px); }

/* --- CTA band: full dark movement --- */
.tsr-cta-band { padding: 72px 0; }
.tsr-cta-band p { font-size: 20px; line-height: 1.55; }

/* --- Footer: quiet, architectural --- */
.tsr-footer { padding: 88px 0 44px; }
.tsr-footer__wordmark { font-size: 24px; letter-spacing: .2em; }
.tsr-footer__heading { color: var(--tsr-sage-dim) !important; }
.tsr-footer ul a { color: rgba(241,246,246,.78) !important; transition: color .25s; }
.tsr-footer ul a:hover { color: #fff !important; }
.tsr-footer__tagline { color: var(--tsr-sage-dim) !important; }
.tsr-footer__provenance { color: rgba(241,246,246,.6) !important; }
.tsr-footer__bottom { color: rgba(241,246,246,.5) !important; }
.tsr-footer__bottom p { font: 400 12px var(--tsr-font-mono); color: rgba(241,246,246,.5); margin: 0; }

/* --- Header: hairline, roomy --- */
.tsr-nav { background: rgba(245,246,239,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.tsr-nav__inner { min-height: 84px; }
.tsr-nav .wp-block-navigation a, .tsr-nav__links a { letter-spacing: .02em; transition: opacity .25s; }
.tsr-announce { letter-spacing: .12em; }

/* --- Scroll reveal (JS adds .tsr-reveal; .is-in shows) --- */
.tsr-reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s var(--tsr-ease), transform .8s var(--tsr-ease); transition-delay: var(--tsr-delay, 0ms); }
.tsr-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .tsr-reveal { opacity: 1; transform: none; transition: none; }
  .wp-block-cover.tsr-hero .wp-block-cover__image-background { animation: none; }
}

/* --- Responsive refinements --- */
@media (max-width: 820px) {
  .tsr-section { padding: 72px 0; }
  .tsr-origin .tsr-wrap { padding-top: 72px; padding-bottom: 72px; }
  .wp-block-cover.tsr-hero { min-height: 72vh; }
}
@media (max-width: 749px) {
  .wp-block-cover.tsr-hero h1 { font-size: 34px; }
  .wp-block-cover.tsr-hero .wp-block-cover__inner-container { padding-bottom: 48px; }
  .tsr-origin__line { font-size: 24px; }
  .tsr-trust p { font-size: 10px; letter-spacing: .12em; }
  .tsr-cta-band p { font-size: 17px; }
  .tsr-footer { padding: 64px 0 36px; }
}

/* --- Specificity corrections: paragraph-based display type must beat `.tsr p` --- */
.tsr p.tsr-eyebrow { font: 600 12px var(--tsr-font-sans); letter-spacing: .26em; text-transform: uppercase; color: var(--tsr-olive); margin: 0 0 14px; }
.tsr .tsr--dark p.tsr-eyebrow { color: var(--tsr-sage-dim); }
.tsr p.tsr-lead { font: 400 19px/1.65 var(--tsr-font-sans); color: var(--tsr-muted); max-width: 62ch; }
.tsr p.tsr-origin__line { font: italic 500 clamp(26px, 3vw, 40px)/1.3 var(--tsr-font-serif); color: var(--tsr-green-deep); max-width: 24ch; margin: 0 auto 22px; }
.tsr p.tsr-origin__line b { font-family: var(--tsr-font-sans); font-style: normal; font-weight: 700; letter-spacing: -.02em; }
.tsr p.tsr-feat__kicker { font: 600 11px var(--tsr-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--tsr-olive); margin: 0 0 8px; }
.tsr p.tsr-step__num, .tsr p.tsr-card__num { font: 400 14px var(--tsr-font-mono); color: var(--tsr-honey); margin: 0 0 12px; }
.tsr p.tsr-card__badge { display: inline-block; font: 700 10px var(--tsr-font-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--tsr-green); background: var(--tsr-tint); border-radius: 3px; padding: 4px 8px; margin: 0 0 14px; align-self: flex-start; }
.tsr p.tsr-card__meta { font: 400 13px var(--tsr-font-mono); margin-top: auto; padding-top: 14px; }
.tsr p.tsr-profiles__name { font: 600 17px var(--tsr-font-sans); margin: 0; color: var(--tsr-ink); }
.tsr p.tsr-profiles__spec { font: 400 13px/1.4 var(--tsr-font-sans); color: var(--tsr-muted); margin: 0; }
.tsr p.tsr-profiles__cta { font: 600 13px var(--tsr-font-sans); margin: 8px 0 0; }
.tsr p.tsr-profiles__note { font: 400 14px var(--tsr-font-sans); color: var(--tsr-body); margin-top: 28px; }
.tsr p.tsr-facts__row { font: 400 14px var(--tsr-font-mono); color: var(--tsr-body); margin: 0 0 14px; }
.tsr p.tsr-form__micro { font: 400 13px var(--tsr-font-sans); color: var(--tsr-muted); margin-top: 12px; text-align: center; }
.tsr-footer p.tsr-footer__wordmark { font: 400 24px var(--tsr-font-sans); letter-spacing: .2em; color: var(--tsr-light); margin: 0 0 18px; }
.tsr-footer p.tsr-footer__tagline { font: italic 500 20px/1.35 var(--tsr-font-serif); max-width: 320px; margin: 0; }
.tsr-footer p.tsr-footer__provenance { font: 400 13.5px/1.6 var(--tsr-font-sans); max-width: 340px; margin: 16px 0 0; }
.tsr-footer p.tsr-footer__heading { font: 700 12px var(--tsr-font-sans); letter-spacing: .14em; text-transform: uppercase; margin: 0 0 16px; }
.tsr .tsr-cta-band p { color: var(--tsr-sage); }
.tsr .tsr-origin p { color: var(--tsr-body); }

/* ============================================================
   v3 · Audit pass: accessibility, micro-interaction, finish
   ============================================================ */

/* Selection + focus: branded, visible, never removed */
::selection { background: var(--tsr-sage); color: var(--tsr-green-deep); }
:focus-visible { outline: 2px solid var(--tsr-honey); outline-offset: 2px; border-radius: 2px; }
.tsr a:focus-visible, .tsr .wp-block-button__link:focus-visible { outline: 2px solid var(--tsr-honey); outline-offset: 3px; }

/* Skip link */
.tsr-skip-link { position: absolute; left: -9999px; top: 0; z-index: 999; background: var(--tsr-green-deep); color: var(--tsr-light); padding: 12px 20px; font: 600 14px var(--tsr-font-sans); border-radius: 0 0 6px 0; text-decoration: none; }
.tsr-skip-link:focus { left: 0; }

/* Smooth anchors */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Header: hairline shadow once content scrolls under it */
.tsr-nav { box-shadow: 0 1px 0 var(--tsr-rule); }

/* Price bars: fills sweep in on reveal */
.tsr-bar.tsr-reveal .tsr-bar__fill { transform: scaleX(0); transform-origin: left center; transition: transform 1.1s var(--tsr-ease) .15s; }
.tsr-bar.tsr-reveal.is-in .tsr-bar__fill { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { .tsr-bar .tsr-bar__fill { transform: none; transition: none; } }

/* Facts rows: strong = label */
.tsr p.tsr-facts__row strong { font: 600 12px var(--tsr-font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--tsr-olive); margin-right: 6px; }

/* Body links: refined default */
.tsr p a:not(.wp-block-button__link) { color: var(--tsr-green); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.tsr p a:not(.wp-block-button__link):hover { color: var(--tsr-honey-deep); }

/* Tables: zebra-free, airy */
.tsr-spec td { font-size: 14.5px; padding: 11px 0; }

/* Mobile: single-column columns get breathing room between stacked halves */
@media (max-width: 781px) {
  .tsr-section .wp-block-columns { gap: 36px; }
  .wp-block-cover.tsr-hero { min-height: 68vh; }
}
