/* ==========================================================================
   Boxing Legacy — boxing history editorial
   Charcoal canvas, deep red and muted gold accents.
   ========================================================================== */

:root {
  /* Canvas */
  --void: #0c0b0a;
  --pedestal: #161412;
  --graphite: #121110;
  --plinth: #24201c;

  /* Ink */
  --chalk: #f4f0e8;
  --silver: #d2cbc0;
  --muted: #9a9286;
  --whisper: #7a7368;

  /* Brand — deep red / muted gold */
  --gold: #c4a35a;
  --gold-lit: #dbb96a;
  --accent: #9b1b2e;
  --accent-lit: #c4283d;
  --violet: #c4a35a;
  --violet-deep: #121110;
  --navy: #f4f0e8;

  /* Surfaces */
  --case: #161412;
  --case-lit: #1e1b17;
  --edge: #2e2a24;
  --edge-lit: #c4a35a;
  --hairline: linear-gradient(90deg, transparent, rgba(196, 163, 90, .28) 22%, rgba(155, 27, 46, .28) 78%, transparent);

  /* Depth */
  --lift: 0 14px 42px -18px rgba(0, 0, 0, .45);
  --glow: 0 0 0 1px rgba(196, 163, 90, .18), 0 18px 44px -22px rgba(0, 0, 0, .35);

  /* Lines & footer */
  --line: rgba(244, 240, 232, .08);
  --line-strong: rgba(244, 240, 232, .14);
  --footer-bg: #080706;
  --footer-text: rgba(255, 255, 255, .84);
  --footer-muted: rgba(255, 255, 255, .62);

  /* Geometry */
  --r-lg: 22px;
  --r-md: 16px;
  --r-sm: 10px;
  --r-pill: 999px;
  --max: 1240px;
  --gutter: clamp(20px, 5vw, 56px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: var(--font-body);
  color: var(--silver);
  background: var(--void);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-size: 17px;
  line-height: 1.68;
  letter-spacing: .004em;
  background:
    radial-gradient(1100px 620px at 88% -6%, rgba(196, 163, 90, .12), transparent 62%),
    radial-gradient(900px 500px at 6% 10%, rgba(155, 27, 46, .08), transparent 58%),
    var(--void);
  color: var(--silver);
}

::selection {
  background: rgba(196, 163, 90, .35);
  color: var(--chalk);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-optical-sizing: auto;
  color: var(--chalk);
  letter-spacing: -.01em;
  font-weight: 600;
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  text-decoration-color: rgba(196, 163, 90, .4);
  transition: color .22s ease, text-decoration-color .22s ease;
}

a:hover {
  color: var(--accent);
  text-decoration-color: var(--accent);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

button, input, select, textarea {
  font: inherit;
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

/* --------------------------------------------------------------------------
   Header — translucent glass rail
   -------------------------------------------------------------------------- */

.tirel-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, .94);
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  border-bottom: 1px solid var(--edge);
  box-shadow: 0 1px 0 rgba(58, 36, 40, .04);
}

.tirel-header__top {
  max-width: var(--max);
  margin: 0 auto;
  padding: 9px var(--gutter);
  display: flex;
  justify-content: space-between;
  gap: 24px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--whisper);
  border-bottom: 1px solid var(--line);
}

.tirel-header__utility,
.tirel-header__links {
  display: flex;
  gap: 22px;
  flex-wrap: wrap;
  align-items: center;
}

.tirel-header__contact,
.tirel-header__links a,
.tirel-header__action,
.visit-lead__button,
.appointment-band__button,
.contact-form__button {
  text-decoration: none;
}

.tirel-header__contact {
  color: var(--gold);
}

.tirel-header__links a:hover,
.tirel-header__contact:hover {
  color: var(--accent);
}

.tirel-header__zip::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 1px;
  margin-right: 10px;
  vertical-align: middle;
  background: var(--gold);
}

.tirel-header__bar {
  max-width: var(--max);
  margin: 0 auto;
  padding: 14px var(--gutter);
  display: flex;
  align-items: center;
  gap: 30px;
}

.tirel-header__brand {
  flex: 0 0 auto;
  line-height: 0;
}

.tirel-header__logo {
  width: auto;
  height: 78px;
  object-fit: contain;
}

.tirel-header__toggle {
  display: none;
  background: var(--case);
  border: 1px solid var(--edge);
  border-radius: var(--r-sm);
  padding: 9px 10px;
  color: var(--chalk);
  cursor: pointer;
}

.tirel-header__toggle-line {
  display: block;
  width: 22px;
  height: 1.5px;
  background: currentColor;
  margin: 4px 0;
  border-radius: 2px;
}

.tirel-header__toggle-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

/* Nav */

.main-nav {
  flex: 1;
}

.main-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  gap: 4px;
  align-items: center;
}

.main-nav__link {
  position: relative;
  display: inline-block;
  padding: 8px 14px;
  border-radius: var(--r-pill);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--silver);
  white-space: nowrap;
  transition: color .22s ease, background-color .22s ease;
}

.main-nav__link:hover {
  color: var(--chalk);
  background: var(--graphite);
}

.main-nav__link_active {
  color: var(--gold);
  background: rgba(155, 77, 92, .1);
  box-shadow: inset 0 0 0 1px rgba(155, 77, 92, .22);
}

/* Buttons */

.tirel-header__action,
.visit-lead__button,
.appointment-band__button,
.contact-form__button {
  display: inline-block;
  padding: 12px 24px;
  border: 1px solid var(--accent);
  border-radius: var(--r-pill);
  background: var(--accent);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: transform .24s ease, box-shadow .24s ease, background-color .24s ease, border-color .24s ease;
}

.tirel-header__action:hover,
.visit-lead__button:hover,
.appointment-band__button:hover,
.contact-form__button:hover {
  color: #FFFFFF;
  background: var(--accent-lit);
  border-color: var(--accent-lit);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px -14px rgba(196, 160, 122, .55);
}

.page-main {
  min-height: 60vh;
}

/* --------------------------------------------------------------------------
   Hero — full-bleed spotlight vitrine
   -------------------------------------------------------------------------- */

.visit-lead {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-items: center;
  min-height: clamp(560px, 72vh, 700px);
  color: var(--chalk);
  border-bottom: 1px solid var(--edge);
  background: var(--void);
}

.visit-lead__media {
  position: absolute;
  inset: 0;
  z-index: -2;
  overflow: hidden;
}

.visit-lead__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% center;
  animation: figures-soft-zoom 1.6s cubic-bezier(.2, .7, .2, 1) both;
}

.visit-lead::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(105deg, #080706 0%, rgba(12, 11, 10, .96) 34%, rgba(12, 11, 10, .82) 52%, rgba(12, 11, 10, .42) 74%, rgba(12, 11, 10, .18) 100%),
    radial-gradient(680px 380px at 18% 50%, rgba(155, 27, 46, .14), transparent 68%);
}

.visit-lead__content {
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(72px, 11vw, 132px) var(--gutter);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}

.visit-lead__kicker,
.service-matrix__kicker,
.symptom-board__kicker,
.page-intro__kicker {
  margin: 0 0 18px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
}

.visit-lead__kicker {
  color: #e8d9a8;
}

.visit-lead__kicker::before,
.service-matrix__kicker::before,
.symptom-board__kicker::before,
.page-intro__kicker::before {
  content: "";
  display: inline-block;
  width: 26px;
  height: 1px;
  margin-right: 12px;
  vertical-align: middle;
  background: linear-gradient(90deg, transparent, var(--gold));
}

.visit-lead h1 {
  font-size: clamp(38px, 5.6vw, 66px);
  line-height: 1.03;
  font-weight: 500;
  margin: 0 0 22px;
  max-width: 15ch;
  color: #f7f2e6;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .45);
}

.visit-lead__copy p:not(.visit-lead__kicker) {
  max-width: 56ch;
  color: #ece6da;
  font-size: clamp(16px, 1.35vw, 19px);
  margin: 0;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .4);
}

.visit-lead__button {
  margin-top: 30px;
}

.visit-lead__board {
  padding: 30px;
  border: 1px solid var(--edge);
  border-radius: var(--r-lg);
  background: var(--case);
  box-shadow: var(--lift);
  color: var(--silver);
}

.visit-lead__board h2 {
  margin: 0 0 6px;
  font-size: 13px;
  font-family: var(--font-body);
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
}

.visit-lead__board dl {
  margin: 0;
}

.visit-lead__board div {
  display: grid;
  gap: 4px;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
}

.visit-lead__board div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.visit-lead__board dt {
  color: var(--chalk);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.visit-lead__board dd {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}

/* --------------------------------------------------------------------------
   Section shell
   -------------------------------------------------------------------------- */

.service-matrix,
.inspect-check,
.symptom-board,
.season-calendar,
.storm-safety,
.pruning-matrix,
.property-route,
.field-resources,
.page-intro,
.about-route,
.about-decision,
.about-office,
.service-ledger,
.service-previsit,
.service-visual,
.storm-document,
.storm-review,
.resource-feature,
.resource-topics,
.faq-groups,
.faq-routes,
.faq-contact,
.contact-layout,
.contact-process,
.legal-intro,
.legal-copy,
.privacy-table,
.privacy-use,
.terms-process,
.terms-scope,
.cookie-board,
.cookie-control,
.dmca-checklist,
.dmca-process,
.refund-timeline,
.refund-note,
.legal-contact {
  max-width: var(--max);
  margin: 0 auto;
  padding: clamp(48px, 6vw, 84px) var(--gutter);
}

/* Section headings share one rhythm */

.inspect-check__text h2,
.symptom-board__content h2,
.season-calendar h2,
.storm-safety h2,
.pruning-matrix h2,
.property-route h2,
.field-resources h2,
.page-intro h1,
.about-route h2,
.about-decision h2,
.about-office h2,
.service-ledger h2,
.service-previsit h2,
.service-visual h2,
.storm-document h2,
.storm-review h2,
.resource-feature h2,
.resource-topics h2,
.faq-groups h2,
.faq-routes h2,
.faq-contact h2,
.contact-details h2,
.contact-process h2,
.legal-intro h1,
.privacy-table h2,
.privacy-use h2,
.terms-process h2,
.terms-scope h2,
.cookie-board h2,
.cookie-control h2,
.dmca-checklist h2,
.dmca-process h2,
.refund-timeline h2,
.refund-note h2,
.legal-contact h2 {
  margin-top: 0;
}

.inspect-check__text h2,
.page-intro h1,
.legal-intro h1 {
  font-size: clamp(32px, 4.2vw, 52px);
  line-height: 1.06;
  font-weight: 500;
}

.season-calendar h2,
.pruning-matrix h2,
.field-resources h2,
.storm-safety h2,
.property-route h2,
.about-route h2,
.about-decision h2,
.about-office h2,
.service-ledger h2,
.service-previsit h2,
.service-visual h2,
.storm-review h2,
.resource-feature h2,
.resource-topics h2,
.faq-groups h2,
.faq-routes h2,
.symptom-board__content h2,
.contact-process h2,
.privacy-table h2,
.terms-process h2 {
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.12;
  margin-bottom: 18px;
}

/* --------------------------------------------------------------------------
   Prose
   -------------------------------------------------------------------------- */

.legal-copy {
  padding-top: 10px;
  padding-bottom: 26px;
}

.legal-copy + .legal-copy {
  padding-top: 0;
}

.legal-copy h2 {
  margin: 0 0 16px;
  font-size: clamp(23px, 2.4vw, 30px);
}

.legal-copy h3 {
  margin: 30px 0 10px;
  font-size: 20px;
}

.legal-copy p,
.legal-copy li {
  font-size: 16.5px;
  line-height: 1.72;
  color: var(--silver);
}

.legal-copy p {
  margin: 0 0 16px;
  max-width: 78ch;
}

.legal-copy ul,
.legal-copy ol {
  margin: 0 0 18px;
  padding-left: 22px;
  max-width: 78ch;
}

.legal-copy li {
  margin-bottom: 10px;
}

.legal-copy li::marker,
.about-route__steps li::marker,
.contact-process ol li::marker,
.storm-review ol li::marker,
.terms-process ol li::marker,
.inspect-check__list li::marker {
  color: var(--gold);
}

.legal-updated {
  display: inline-block;
  margin: 0 0 14px;
  padding: 5px 14px;
  border: 1px solid var(--edge);
  border-radius: var(--r-pill);
  background: var(--case);
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Split heading block
   -------------------------------------------------------------------------- */

.service-matrix__head {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(24px, 4vw, 52px);
  align-items: end;
  margin-bottom: 38px;
}

.service-matrix__head h2 {
  grid-column: 1 / 2;
  font-size: clamp(26px, 3vw, 38px);
  line-height: 1.1;
  margin: 0;
}

.service-matrix__head p:last-child {
  grid-column: 2 / 3;
  font-size: 16.5px;
  color: var(--muted);
  margin: 0;
}

/* --------------------------------------------------------------------------
   Tables — borderless ledger
   -------------------------------------------------------------------------- */

.service-matrix__table-wrap {
  overflow: auto;
  border: 1px solid var(--edge);
  border-radius: var(--r-md);
  background: var(--case);
}

table {
  width: 100%;
  /* separate + zero spacing keeps rounded corners clipping correctly */
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
  font-size: 15.5px;
}

.season-calendar__table,
.service-ledger__table {
  border: 1px solid var(--edge);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--case);
}

th, td {
  text-align: left;
  padding: 16px 20px;
  vertical-align: top;
  border-bottom: 1px solid var(--line);
}

th {
  background: var(--graphite);
  color: var(--gold);
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .15em;
  text-transform: uppercase;
}

td {
  color: var(--silver);
}

tbody tr:last-child td {
  border-bottom: 0;
}

tbody tr {
  transition: background-color .2s ease;
}

tbody tr:hover {
  background: rgba(155, 77, 92, .04);
}

td a {
  color: var(--gold);
  font-weight: 600;
}

td a:hover {
  color: var(--accent);
}

/* --------------------------------------------------------------------------
   Two-column feature blocks
   -------------------------------------------------------------------------- */

.inspect-check {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
  gap: clamp(28px, 4.5vw, 60px);
  align-items: start;
}

.inspect-check__list {
  margin: 0;
  padding-left: 20px;
  font-size: 17px;
}

.inspect-check__list li {
  margin-bottom: 14px;
  padding-left: 6px;
  color: var(--silver);
}

.symptom-board,
.storm-safety,
.property-route,
.service-visual,
.storm-review,
.resource-feature,
.about-office {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 4.5vw, 58px);
  align-items: center;
}

.symptom-board__image,
.storm-safety__image,
.property-route__image,
.service-visual img,
.storm-review img,
.resource-feature img,
.about-office__image,
.contact-details img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: cover;
  border-radius: var(--r-lg);
  border: 1px solid var(--edge);
  box-shadow: var(--lift);
}

/* Full-bleed tinted bands */

.symptom-board,
.storm-safety,
.service-previsit {
  max-width: none;
  padding-left: max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  padding-right: max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  border-block: 1px solid var(--edge);
}

.symptom-board {
  background:
    radial-gradient(700px 380px at 80% 10%, rgba(155, 77, 92, .07), transparent 65%),
    var(--pedestal);
}

.storm-safety {
  background:
    radial-gradient(660px 360px at 12% 12%, rgba(196, 160, 122, .08), transparent 62%),
    var(--graphite);
}

.service-previsit {
  background: var(--pedestal);
}

.storm-safety__panel > a {
  display: inline-block;
  margin-top: 20px;
  color: var(--gold);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid rgba(155, 77, 92, .35);
  padding-bottom: 3px;
}

.storm-safety__panel > a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.storm-safety ol,
.property-route ul,
.service-previsit ul,
.resource-topics ul,
.faq-routes ul,
.dmca-checklist ul,
.about-route__steps,
.contact-process ol,
.storm-review ol,
.terms-process ol {
  margin: 0;
  padding-left: 20px;
}

.storm-safety li,
.property-route li,
.service-previsit li,
.resource-topics li,
.faq-routes li,
.dmca-checklist li,
.about-route__steps li,
.contact-process li,
.storm-review li,
.terms-process li {
  margin-bottom: 12px;
  padding-left: 4px;
}

/* --------------------------------------------------------------------------
   Vitrine cards
   -------------------------------------------------------------------------- */

.symptom-board__grid,
.pruning-matrix__rows,
.field-resources__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 30px;
}

/* Nested inside a half-width column: a stacked rule-list reads better than boxes */
.symptom-board__grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
}

.pruning-matrix__rows {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.symptom-board__grid article,
.pruning-matrix__rows article,
.field-resources__grid article {
  position: relative;
  overflow: hidden;
  padding: 26px;
  border: 1px solid var(--edge);
  border-radius: var(--r-lg);
  background: var(--case);
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease, background .3s ease;
}

.symptom-board__grid article::before,
.pruning-matrix__rows article::before,
.field-resources__grid article::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(155, 77, 92, .35), transparent);
  opacity: .5;
  transition: opacity .3s ease;
}

.symptom-board__grid article:hover,
.pruning-matrix__rows article:hover,
.field-resources__grid article:hover {
  transform: translateY(-5px);
  background: var(--case-lit);
  border-color: var(--edge-lit);
  box-shadow: var(--glow);
}

.symptom-board__grid article:hover::before,
.pruning-matrix__rows article:hover::before,
.field-resources__grid article:hover::before {
  opacity: 1;
}

.symptom-board__grid h3,
.pruning-matrix__rows h3,
.field-resources__grid h3 {
  margin: 0 0 12px;
  font-size: 20px;
}

.symptom-board__grid p,
.pruning-matrix__rows p,
.field-resources__grid p {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--muted);
}

/* Rule-list variant */
.symptom-board__grid article {
  padding: 20px 0 20px 24px;
  border: 0;
  border-left: 1px solid var(--edge);
  border-radius: 0;
  background: none;
}

.symptom-board__grid article::before {
  inset: 0 auto 0 0;
  width: 1px;
  height: auto;
  background: linear-gradient(180deg, var(--gold), transparent);
  opacity: 0;
}

.symptom-board__grid article:hover {
  transform: none;
  background: none;
  border-color: transparent;
  box-shadow: none;
}

.symptom-board__grid article:hover::before {
  opacity: 1;
}

.symptom-board__grid h3 {
  margin-bottom: 8px;
  font-size: 18px;
}

/* Resource cards carry either a leading image or a leading eyebrow label */

.field-resources__grid article {
  display: flex;
  flex-direction: column;
}

.field-resources__grid article img {
  width: calc(100% + 2 * 26px);
  max-width: none;
  height: 200px;
  margin: -26px -26px 22px;
  object-fit: cover;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.field-resources__grid article p {
  margin: 0 0 14px;
}

.field-resources__grid article p:last-child {
  margin-bottom: 0;
}

.field-resources__grid article > p:first-child {
  margin-bottom: 10px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--gold);
}

.field-resources__grid article > a {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 18px;
  color: var(--gold);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  text-decoration: none;
}

.field-resources__grid article > a:hover {
  color: var(--accent);
}

.field-resources__grid article > a::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 4px;
  background: rgba(155, 77, 92, .3);
  transition: background-color .24s ease;
}

.field-resources__grid article > a:hover::after {
  background: var(--accent);
}

.service-visual a + a {
  margin-left: 20px;
}

/* --------------------------------------------------------------------------
   Definition rows
   -------------------------------------------------------------------------- */

.about-decision__row,
.cookie-board__row,
.refund-timeline__row {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 30px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.about-decision__row:last-child,
.cookie-board__row:last-child,
.refund-timeline__row:last-child {
  border-bottom: 0;
}

.about-decision__row strong,
.cookie-board__row strong,
.refund-timeline__row strong {
  color: var(--chalk);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.about-decision__row span,
.cookie-board__row span,
.refund-timeline__row span {
  color: var(--muted);
}

/* --------------------------------------------------------------------------
   Callout panels
   -------------------------------------------------------------------------- */

.storm-document,
.privacy-use,
.terms-scope,
.cookie-control,
.dmca-process,
.refund-note,
.legal-contact,
.faq-contact {
  position: relative;
  border: 1px solid var(--edge);
  border-radius: var(--r-lg);
  background:
    radial-gradient(600px 300px at 4% 0%, rgba(155, 77, 92, .06), transparent 60%),
    var(--case);
  padding: clamp(30px, 3.6vw, 46px);
  margin-top: 24px;
  margin-bottom: 24px;
  max-width: min(var(--max), calc(100% - 2 * var(--gutter)));
}

.storm-document::before,
.privacy-use::before,
.terms-scope::before,
.cookie-control::before,
.dmca-process::before,
.refund-note::before,
.legal-contact::before,
.faq-contact::before {
  content: "";
  position: absolute;
  left: clamp(30px, 3.6vw, 46px);
  right: clamp(30px, 3.6vw, 46px);
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--gold), transparent);
}

.storm-document h2,
.privacy-use h2,
.terms-scope h2,
.cookie-control h2,
.dmca-process h2,
.refund-note h2,
.legal-contact h2,
.faq-contact h2 {
  font-size: clamp(21px, 2.2vw, 27px);
  margin-bottom: 16px;
}

.storm-document p,
.privacy-use p,
.terms-scope p,
.cookie-control p,
.dmca-process p,
.refund-note p,
.legal-contact p,
.faq-contact p {
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 82ch;
}

/* Direct child only — these blocks also carry inline links inside paragraphs */
.faq-contact > a {
  display: inline-block;
  margin-top: 12px;
  padding: 11px 22px;
  border: 1px solid var(--gold);
  border-radius: var(--r-pill);
  color: var(--gold);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  text-decoration: none;
}

.faq-contact > a:hover {
  background: var(--gold);
  color: #FFFFFF;
}

/* --------------------------------------------------------------------------
   Breadcrumbs & page intro
   -------------------------------------------------------------------------- */

.page-breadcrumbs {
  max-width: var(--max);
  margin: 0 auto;
  padding: 22px var(--gutter) 0;
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--whisper);
}

.page-breadcrumbs ol {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.page-breadcrumbs li + li::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 1px;
  margin-right: 10px;
  vertical-align: middle;
  background: var(--edge);
}

.page-breadcrumbs a {
  color: var(--muted);
  font-weight: 600;
  text-decoration: none;
}

.page-breadcrumbs a:hover {
  color: var(--accent);
}

.page-intro,
.legal-intro {
  position: relative;
  padding-bottom: clamp(36px, 4vw, 56px);
  border-bottom: 1px solid var(--line);
}

.page-intro p:not(.page-intro__kicker),
.legal-intro p {
  max-width: 72ch;
  font-size: clamp(16px, 1.35vw, 19px);
  color: var(--muted);
}

/* Per-section accent tint */

.page-intro_services::after,
.page-intro_resources::after,
.page-intro_storm::after,
.page-intro_about::after,
.page-intro_faq::after,
.page-intro_contact::after,
.legal-intro_privacy::after,
.legal-intro_terms::after,
.legal-intro_cookie::after,
.legal-intro_dmca::after,
.legal-intro_refund::after {
  content: "";
  position: absolute;
  left: var(--gutter);
  bottom: -1px;
  width: 120px;
  height: 2px;
  border-radius: 2px;
}

.page-intro_services::after,
.page-intro_resources::after {
  background: linear-gradient(90deg, var(--gold), transparent);
}

.page-intro_storm::after,
.page-intro_about::after {
  background: linear-gradient(90deg, var(--violet), transparent);
}

.page-intro_faq::after,
.page-intro_contact::after {
  background: linear-gradient(90deg, var(--accent), transparent);
}

.legal-intro_privacy::after,
.legal-intro_terms::after,
.legal-intro_cookie::after,
.legal-intro_dmca::after,
.legal-intro_refund::after {
  background: linear-gradient(90deg, var(--edge), transparent);
}

/* --------------------------------------------------------------------------
   Layout variants
   -------------------------------------------------------------------------- */

.about-route,
.service-previsit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .82fr);
  gap: clamp(28px, 4.5vw, 56px);
}

/* --------------------------------------------------------------------------
   FAQ accordion
   -------------------------------------------------------------------------- */

.faq-groups details {
  border: 1px solid var(--edge);
  border-radius: var(--r-md);
  background: var(--case);
  padding: 0;
  margin-bottom: 12px;
  transition: border-color .25s ease, background .25s ease;
}

.faq-groups details[open] {
  border-color: rgba(155, 77, 92, .28);
  background: var(--case-lit);
}

.faq-groups summary {
  position: relative;
  list-style: none;
  padding: 20px 58px 20px 24px;
  font-family: var(--font-heading);
  font-size: 18px;
  font-weight: 500;
  color: var(--chalk);
  cursor: pointer;
}

.faq-groups summary::-webkit-details-marker {
  display: none;
}

.faq-groups summary::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 50%;
  width: 11px;
  height: 11px;
  margin-top: -6px;
  border-right: 1.5px solid var(--gold);
  border-bottom: 1.5px solid var(--gold);
  transform: rotate(45deg);
  transition: transform .3s ease;
}

.faq-groups details[open] summary::after {
  transform: rotate(-135deg);
  margin-top: -2px;
}

.faq-groups summary:hover {
  color: var(--accent);
}

.faq-groups details p {
  margin: 0;
  padding: 0 24px 22px;
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--muted);
  max-width: 84ch;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 52px);
  align-items: start;
}

.contact-details {
  padding: 30px;
  border: 1px solid var(--edge);
  border-radius: var(--r-lg);
  background: var(--case);
}

.contact-details h2 {
  font-size: 22px;
  margin-bottom: 14px;
}

.contact-details ul {
  padding-left: 20px;
  margin: 0 0 20px;
}

.contact-details li {
  margin-bottom: 11px;
  color: var(--muted);
}

.contact-details li::marker {
  color: var(--gold);
}

.contact-details img {
  margin-top: 24px;
  max-height: 300px;
}

.contact-form {
  position: relative;
  padding: clamp(26px, 3vw, 38px);
  border: 1px solid var(--edge);
  border-radius: var(--r-lg);
  background:
    radial-gradient(600px 320px at 90% 0%, rgba(155, 77, 92, .06), transparent 62%),
    var(--case);
  box-shadow: var(--lift);
}

.contact-form__trap {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-form__row {
  margin-bottom: 18px;
}

.contact-form__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  /* keeps inputs on one line even when a sibling label wraps */
  align-items: end;
}

.contact-form__field {
  display: block;
  margin-bottom: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--muted);
}

.contact-form__input {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--edge);
  border-radius: var(--r-sm);
  background-color: var(--void);
  color: var(--chalk);
  transition: border-color .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.contact-form__input::placeholder {
  color: var(--whisper);
}

.contact-form__input:focus {
  outline: none;
  border-color: var(--gold);
  background-color: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(155, 77, 92, .12);
}

select.contact-form__input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%2328704F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  cursor: pointer;
}

select.contact-form__input option {
  background: var(--pedestal);
  color: var(--chalk);
}

.contact-form__input_textarea {
  resize: vertical;
  min-height: 150px;
}

.contact-form__consent {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin: 22px 0;
  font-size: 14.5px;
  color: var(--muted);
}

.contact-form__consent input {
  margin-top: 4px;
  accent-color: var(--gold);
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.contact-form__button {
  cursor: pointer;
}

.contact-form__button:disabled {
  opacity: .55;
  cursor: wait;
  transform: none;
}

.contact-form__status {
  min-height: 26px;
  margin: 14px 0 0;
  color: var(--gold);
  font-size: 14.5px;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   Closing band
   -------------------------------------------------------------------------- */

.appointment-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(28px, 4vw, 52px);
  align-items: center;
  padding: clamp(48px, 6vw, 80px) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  background:
    radial-gradient(800px 400px at 78% 50%, rgba(155, 77, 92, .1), transparent 65%),
    linear-gradient(180deg, var(--graphite), var(--pedestal));
  border-top: 1px solid var(--edge);
  color: var(--chalk);
}

.appointment-band h2 {
  margin: 0 0 14px;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.1;
}

.appointment-band p {
  margin: 0;
  max-width: 66ch;
  color: var(--muted);
  font-size: 16.5px;
}

.appointment-band__phone {
  color: var(--gold);
  font-family: var(--font-heading);
  font-size: clamp(20px, 2.2vw, 28px);
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 1px solid rgba(155, 77, 92, .35);
  padding-bottom: 5px;
  transition: border-color .25s ease, color .25s ease;
}

.appointment-band__phone:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.tirel-footer {
  position: relative;
  padding: clamp(48px, 5vw, 70px) max(var(--gutter), calc((100vw - var(--max)) / 2 + var(--gutter)));
  background: var(--footer-bg);
  border-top: 1px solid rgba(255, 255, 255, .1);
  color: var(--footer-muted);
  font-size: 15px;
}

.tirel-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 1px;
  background: var(--hairline);
}

.tirel-footer_home {
  background:
    radial-gradient(900px 420px at 50% 100%, rgba(196, 160, 122, .12), transparent 68%),
    var(--footer-bg);
}

.tirel-footer a {
  color: inherit;
  text-decoration: none;
}

.tirel-footer a:hover {
  color: #FFFFFF;
}

.tirel-footer__brand {
  line-height: 0;
}

.tirel-footer__logo {
  width: auto;
  height: 72px;
  object-fit: contain;
}

.tirel-footer p {
  margin: 0 0 12px;
  line-height: 1.65;
}

.tirel-footer__operations {
  display: grid;
  grid-template-columns: 220px repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 3.5vw, 44px);
  align-items: start;
}

.tirel-footer__operation h2 {
  margin: 0 0 14px;
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: rgba(196, 160, 122, .88);
}

.tirel-footer__contact-line a {
  color: var(--footer-text);
}

.tirel-footer__bottom-row,
.tirel-footer__legal-links {
  display: flex;
  gap: 14px 26px;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-top: 38px;
  padding-top: 22px;
  border-top: 1px solid rgba(255, 255, 255, .1);
  font-size: 13.5px;
}

.tirel-footer__legal-links {
  justify-content: flex-start;
  gap: 22px;
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
  font-size: 12.5px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Cookie strip
   -------------------------------------------------------------------------- */

.cookie-strip {
  position: fixed;
  left: max(16px, calc((100vw - var(--max)) / 2));
  right: max(16px, calc((100vw - var(--max)) / 2));
  bottom: 18px;
  z-index: 30;
  display: none;
  gap: 20px;
  justify-content: space-between;
  align-items: center;
  padding: 16px 22px;
  border: 1px solid var(--edge);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: var(--lift);
  color: var(--silver);
  font-size: 14.5px;
  animation: figures-fade-up .5s ease-out both;
}

.cookie-strip_active {
  display: flex;
}

.cookie-strip p {
  margin: 0;
}

.cookie-strip a {
  color: var(--gold);
}

.cookie-strip__button {
  flex: 0 0 auto;
  padding: 10px 22px;
  border: 1px solid var(--accent);
  border-radius: var(--r-pill);
  background: var(--accent);
  color: #FFFFFF;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .24s ease, border-color .24s ease;
}

.cookie-strip__button:hover {
  background: var(--accent-lit);
  border-color: var(--accent-lit);
  color: #FFFFFF;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 1100px) {
  .visit-lead__content {
    grid-template-columns: minmax(0, 1fr) 340px;
  }

  .pruning-matrix__rows {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tirel-footer__operations {
    grid-template-columns: 180px repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .tirel-header__bar {
    flex-wrap: wrap;
    gap: 16px;
  }

  .main-nav {
    order: 4;
    flex-basis: 100%;
  }

  .main-nav__list {
    flex-wrap: wrap;
    gap: 2px;
  }

  .tirel-header__action {
    margin-left: auto;
  }

  .symptom-board__grid,
  .field-resources__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  body {
    font-size: 16px;
  }

  .tirel-header {
    position: relative;
  }

  .tirel-header__top {
    display: none;
  }

  .tirel-header__bar {
    justify-content: space-between;
  }

  .tirel-header__toggle {
    display: block;
    order: 2;
  }

  .main-nav {
    display: none;
    order: 3;
    flex-basis: 100%;
  }

  .main-nav_open {
    display: block;
  }

  .main-nav__list {
    display: grid;
    gap: 0;
    padding-top: 8px;
    border-top: 1px solid rgba(255, 255, 255, .1);
  }

  .main-nav__link {
    display: block;
    padding: 13px 14px;
    border-radius: var(--r-sm);
  }

  .tirel-header__action {
    display: none;
  }

  /* Hero returns to a stacked layout */
  .visit-lead {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .visit-lead__media {
    position: relative;
    inset: auto;
    z-index: 0;
    height: 320px;
    order: -1;
  }

  /* The stacked hero fades the photo into the page instead of sitting behind text */
  .visit-lead::before {
    display: none;
  }

  .visit-lead__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10, 9, 18, .18) 0%, rgba(10, 9, 18, .55) 68%, var(--void) 100%);
  }

  .visit-lead__content,
  .service-matrix__head,
  .inspect-check,
  .symptom-board,
  .storm-safety,
  .property-route,
  .about-route,
  .about-office,
  .service-previsit,
  .service-visual,
  .storm-review,
  .resource-feature,
  .contact-layout,
  .tirel-footer__operations {
    grid-template-columns: minmax(0, 1fr);
  }

  .service-matrix__head h2,
  .service-matrix__head p:last-child {
    grid-column: auto;
  }

  .about-decision__row,
  .cookie-board__row,
  .refund-timeline__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .symptom-board__grid,
  .pruning-matrix__rows,
  .field-resources__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-form__split {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .appointment-band {
    grid-template-columns: minmax(0, 1fr);
  }

  .symptom-board__image,
  .storm-safety__image,
  .property-route__image,
  .about-office__image,
  .service-visual img,
  .storm-review img,
  .resource-feature img {
    max-height: 340px;
  }

  .cookie-strip {
    left: 12px;
    right: 12px;
    bottom: 12px;
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 560px) {
  .tirel-header__logo {
    height: 58px;
  }

  .tirel-footer__logo {
    height: 56px;
  }

  .visit-lead__media {
    height: 240px;
  }

  .visit-lead__board,
  .contact-details,
  .contact-form {
    padding: 22px;
  }

  th, td {
    padding: 13px 14px;
  }

  .storm-document,
  .privacy-use,
  .terms-scope,
  .cookie-control,
  .dmca-process,
  .refund-note,
  .legal-contact,
  .faq-contact {
    padding: 24px;
  }

  .storm-document::before,
  .privacy-use::before,
  .terms-scope::before,
  .cookie-control::before,
  .dmca-process::before,
  .refund-note::before,
  .legal-contact::before,
  .faq-contact::before {
    left: 24px;
    right: 24px;
  }

  .field-resources__grid article > p:first-child,
  .field-resources__grid article h3,
  .field-resources__grid article > p:not(:first-child) {
    margin-left: 22px;
    margin-right: 22px;
  }

  .field-resources__grid article a {
    margin-left: 22px;
    margin-right: 22px;
  }
}

/* --------------------------------------------------------------------------
   Motion
   -------------------------------------------------------------------------- */

@keyframes figures-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes figures-soft-zoom {
  from {
    transform: scale(1.08);
  }
  to {
    transform: scale(1);
  }
}

@keyframes figures-board-in {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.visit-lead__copy {
  animation: figures-fade-up .9s cubic-bezier(.2, .7, .2, 1) .1s both;
  padding: 28px 28px 32px;
  border-radius: var(--r-lg);
  background: rgba(10, 9, 18, .72);
  border: 1px solid rgba(240, 238, 248, .12);
  box-shadow: 0 18px 44px -22px rgba(0, 0, 0, .55);
}

.visit-lead__board {
  animation: figures-board-in .95s cubic-bezier(.2, .7, .2, 1) .26s both;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .visit-lead__image,
  .visit-lead__copy,
  .visit-lead__board,
  .cookie-strip {
    animation: none;
  }

  *,
  *::before,
  *::after {
    transition-duration: .01ms !important;
  }

  .tirel-header__action:hover,
  .visit-lead__button:hover,
  .appointment-band__button:hover,
  .contact-form__button:hover,
  .symptom-board__grid article:hover,
  .pruning-matrix__rows article:hover,
  .field-resources__grid article:hover {
    transform: none;
  }
}
