/*
  G5.3B-A — Institutional Authenticity & Typography QA
  Purpose: canonical readability floor, responsive hierarchy, and layout cleanup
  after removal of decorative numbering from non-sequential institutional content.
*/

:root {
  --lt-type-body: clamp(1rem, .985rem + .10vw, 1.0625rem);      /* 16–17 px */
  --lt-type-small: clamp(0.9375rem, .925rem + .08vw, 1rem);     /* 15–16 px */
  --lt-type-label: .8125rem;                                    /* 13 px */
  --lt-type-lede: clamp(1.0625rem, 1rem + .45vw, 1.25rem);     /* 17–20 px */
  --lt-type-h1: clamp(2.5rem, 2.05rem + 2.25vw, 4rem);         /* 40–64 px */
  --lt-type-h2: clamp(2rem, 1.72rem + 1.45vw, 3rem);           /* 32–48 px */
  --lt-type-h3: clamp(1.125rem, 1.02rem + .48vw, 1.5rem);      /* 18–24 px */
  --lt-reading-measure: 70ch;
}

html { font-size: 100%; }
body { font-size: var(--lt-type-body); line-height: 1.65; }

h1, h2, h3 {
  text-wrap: balance;
  overflow-wrap: anywhere;
}
h1 { font-size: var(--lt-type-h1) !important; line-height: 1.06; }
h2 { font-size: var(--lt-type-h2) !important; line-height: 1.12; }
h3 { font-size: var(--lt-type-h3) !important; line-height: 1.24; }

main p:not(.eyebrow) {
  font-size: var(--lt-type-body) !important;
  line-height: 1.65;
  text-wrap: pretty;
  max-width: 70ch;
}
main li { font-size: var(--lt-type-body); line-height: 1.6; }
.lede {
  font-size: var(--lt-type-lede) !important;
  line-height: 1.6 !important;
  max-width: 62ch;
}

.eyebrow,
.breadcrumb,
.solutions-architecture__intro,
.segment-entry__brand,
.segment-entry__context > span,
.segment-entry__need > span,
.segment-entry__focus > span,
.solution-entry__problem > span,
.solution-entry__scope > span,
.solution-entry__result > span,
.business-capabilities__grid span,
.cybersecurity-prioritization__factors span {
  font-size: var(--lt-type-label) !important;
  line-height: 1.35;
}

.nav-link,
.dropdown-trigger,
.button,
.link-arrow { font-size: .9375rem !important; }
.dropdown-list a { font-size: .875rem; line-height: 1.45; }
.footer-copy,
.footer-links a { font-size: .875rem; line-height: 1.6; }
/* LODGETECH FOOTER TYPOGRAPHY FIX v1.0.0 START */
.site-footer .footer-title {
  font-size: .8125rem !important;
  line-height: 1.35;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
/* LODGETECH FOOTER TYPOGRAPHY FIX v1.0.0 END */
.footer-bottom { font-size: .8125rem; }

/* Secondary editorial copy may be slightly smaller than body, never tiny. */
.segment-card p,
.segment-entry__context p,
.segment-entry__need p,
.segment-entry__focus p,
.solution-entry__problem p,
.solution-entry__scope p,
.solution-entry__result p,
.integration-scenario p,
.experience-list li,
.related-capabilities em,
.business-maturity__dimensions p,
.business-roadmap__steps p,
.business-infrastructure__matrix p,
.cybersecurity-surface__grid p,
.cybersecurity-controls__matrix p,
.cybersecurity-maturity__scale p,
.cybersecurity-assessment__steps p,
.cybersecurity-roadmap__steps p,
.cybersecurity-plain-list li,
.infrastructure-symptoms__list p,
.infrastructure-architecture__matrix p,
.cftv-design__matrix p,
.integrations-friction__list p,
.integrations-interface__matrix p,
.software-gaps__grid p,
.support-prevention__grid p,
.home-network__matrix p,
.home-security__points p,
.home-installation__criteria p,
.home-needs__list p,
.tech-domain p,
.hospitality-impact p,
.outcome-row p {
  font-size: var(--lt-type-small) !important;
  line-height: 1.62 !important;
}

/* HOME — categories are not a ranked list. */
#problems .problem-row {
  grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr);
}
#capabilities .capability-item {
  grid-template-columns: minmax(250px, .85fr) minmax(0, 1.15fr) 36px;
}

/* SEGMENTOS — Hospitality / Business / Home have equal status. */
#segments-hero .segments-matrix__row {
  grid-template-columns: minmax(130px, .7fr) minmax(0, 1.3fr);
}
#segments-contexts .segment-entry__identity {
  grid-template-columns: 1fr;
}

/* SOLUÇÕES — six capabilities are peers, not a sequence. */
#solutions-hero .solutions-architecture__list li {
  grid-template-columns: 1fr;
}
#solutions-capabilities .solution-entry__identity {
  grid-template-columns: 1fr;
}
#solutions-integration .integration-scenario {
  grid-template-columns: minmax(0, 1.25fr) minmax(230px, .75fr);
}

/* TRANSFORMAÇÃO DIGITAL — signals/domains are categories, not steps. */
#maturity-signals .signal-row { grid-template-columns: 1fr; }
#assessment-scope .domain-item strong { margin-top: 0; }

/* HOSPITALITY — operational dimensions, domains, questions and related capabilities are peers. */
#hospitality-operation .hospitality-impact strong { margin-top: 0; }
#hospitality-ecosystem .tech-domain strong { margin-top: 0; }
#hospitality-cybersecurity .security-questions > div { grid-template-columns: 1fr; }
#hospitality-related .related-capabilities a {
  grid-template-columns: minmax(250px, .95fr) minmax(0, 1.05fr) 26px;
}

/* BUSINESS — maturity dimensions are parallel lenses. */
#business-maturity .business-maturity__dimensions strong { margin-top: 0; }

/* CYBERSECURITY — questions and attack surface domains are not ranked. */
#cybersecurity-questions .cybersecurity-question-list p { grid-template-columns: 1fr; }
#cybersecurity-surface .cybersecurity-surface__grid strong { margin-top: 0; }

/* INFRASTRUCTURE / CFTV — symptoms and architecture elements are peers. */
#infrastructure-symptoms .infrastructure-symptoms__list h3,
#infrastructure-architecture .infrastructure-architecture__matrix h3,
#cftv-design .cftv-design__matrix h3,
#integrations-friction .integrations-friction__list h3,
#integrations-interfaces .integrations-interface__matrix h3,
#software-gaps .software-gaps__grid h3,
#support-prevention .support-prevention__grid h3 {
  margin-top: 0;
}

/* SYSTEMS / INTEGRATIONS — patterns, principles and outcomes are parallel concepts. */
#integrations-outcomes .integrations-outcomes__list p,
#support-monitoring .support-monitoring__list p {
  grid-template-columns: 180px minmax(0, 1fr);
}

/* HOME segment — network/security/installation criteria are not ranked. */
#home-network .home-network__matrix > div,
#home-security .home-security__points > div {
  grid-template-columns: 190px minmax(0, 1fr);
}
#home-installation .home-installation__criteria strong { margin-top: 0; }

/* Preserve breathing room after removing visual index labels. */
#hospitality-operation .hospitality-impact > div,
#hospitality-ecosystem .tech-domain,
#cybersecurity-surface .cybersecurity-surface__grid > div,
#cftv-design .cftv-design__matrix article,
#infrastructure-symptoms .infrastructure-symptoms__list article,
#infrastructure-architecture .infrastructure-architecture__matrix article,
#integrations-friction .integrations-friction__list article,
#integrations-interfaces .integrations-interface__matrix article,
#software-gaps .software-gaps__grid article,
#support-prevention .support-prevention__grid article {
  padding-top: clamp(26px, 3vw, 34px);
}

@media (max-width: 720px) {
  :root {
    --lt-type-body: 1rem;
    --lt-type-small: .9375rem;
    --lt-type-lede: clamp(1.0625rem, 4.6vw, 1.1875rem);
    --lt-type-h1: clamp(2.35rem, 10.5vw, 2.8rem);
    --lt-type-h2: clamp(1.85rem, 8.4vw, 2.25rem);
    --lt-type-h3: clamp(1.125rem, 5.5vw, 1.375rem);
  }

  .section { padding-block: clamp(60px, 14vw, 82px); }

  #problems .problem-row { grid-template-columns: 1fr; gap: 8px; }
  #problems .problem-desc { grid-column: auto; }

  #capabilities .capability-item {
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 10px 14px;
  }
  #capabilities .capability-desc { grid-column: 1 / -1; }

  #segments-hero .segments-matrix__row { grid-template-columns: 1fr; gap: 6px; }
  #segments-hero .segments-matrix__row p { grid-column: auto; }

  #solutions-integration .integration-scenario { grid-template-columns: 1fr; }
  #solutions-integration .integration-scenario__stack { grid-column: auto; }

  #hospitality-related .related-capabilities a {
    grid-template-columns: minmax(0, 1fr) 22px;
  }
  #hospitality-related .related-capabilities em { grid-column: 1; }
  #hospitality-related .related-capabilities a::after { grid-column: 2; grid-row: 1; }

  #integrations-outcomes .integrations-outcomes__list p,
  #support-monitoring .support-monitoring__list p {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  #integrations-outcomes .integrations-outcomes__list p strong,
  #support-monitoring .support-monitoring__list p strong { grid-column: auto; }

  #home-network .home-network__matrix > div,
  #home-security .home-security__points > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  #home-network .home-network__matrix p,
  #home-security .home-security__points p { grid-column: auto; }
}

@media (min-width: 721px) and (max-width: 1024px) {
  h1 { max-width: 18ch; }
  h2 { max-width: 24ch; }
}

/* Readability refinements discovered during 200% text-resize QA. */
#method .method-steps {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
#method .method-step:nth-child(3n) { border-right: 0; }
#method .method-step:nth-child(-n+3) { border-bottom: 1px solid var(--lt-color-line-dark); }

#segments-contexts .segment-entry__link {
  white-space: normal !important;
  overflow-wrap: anywhere;
}

#assessment-scope .assessment-domains {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
#assessment-scope .domain-item:nth-child(4n) { border-right: 0; }
#assessment-scope .domain-item:nth-child(-n+4) { border-bottom: 1px solid var(--lt-color-line-dark); }

@media (max-width: 720px) {
  #method .method-steps { grid-template-columns: 1fr !important; }
  #method .method-step { border-right: 0; }
  #method .method-step:nth-child(-n+3) { border-bottom: 1px solid var(--lt-color-line-dark); }
  #assessment-scope .assessment-domains { grid-template-columns: 1fr !important; }
}

/* G5.4A — About page: preserve the approved typography scale and reading density. */
.about-hero__statement p,
.about-context > span { font-size: var(--lt-type-label) !important; }
.about-experience__item p,
.about-principle p,
.about-context p,
.about-method__steps p { font-size: var(--lt-type-small) !important; line-height: 1.62 !important; }


/* G5.4C-A — Legal typography refinement.
   Legal editorial headings use a restrained scale and must never split words. */
:is(body.legal-page, body.page-template-legal) .legal-hero h1 {
  font-size: clamp(2.35rem, 2.05rem + 1.4vw, 3.5rem) !important;
  line-height: 1.08;
  max-width: 14ch;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

:is(body.legal-page, body.page-template-legal) .legal-heading h2 {
  font-size: clamp(1.85rem, 1.6rem + 1vw, 2.625rem) !important;
  line-height: 1.14;
  max-width: none;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}
