:root {
  --hal-paper: #f2eee4;
  --hal-light: #fbf9f3;
  --hal-ink: #111517;
  --hal-soft: #535c5e;
  --hal-mineral: #17384a;
  --hal-deep: #071d33;
  --hal-pale: #c7d7da;
  --hal-amber: #b97627;
  --hal-line: rgba(17, 21, 23, 0.18);
  --hal-blue-line: rgba(199, 215, 218, 0.28);
  --hal-light-line: rgba(251, 249, 243, 0.22);
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scrollbar-color: var(--hal-mineral) var(--hal-paper);
}

body.halitose-design-preview {
  margin: 0;
  overflow-x: hidden;
  color: var(--hal-ink);
  background: var(--hal-paper);
  font-family: "Manrope", Arial, sans-serif;
}

body.halitose-design-preview ::selection {
  color: var(--hal-light);
  background: var(--hal-mineral);
}

body.halitose-design-preview > .irp-halitose-v1 {
  width: 100%;
  min-height: 0;
  padding: 0 !important;
}

.irp-halitose-v1,
.irp-halitose-v1 a,
.irp-halitose-v1 button { font-family: "Manrope", Arial, sans-serif; }

.irp-halitose-v1 h1,
.irp-halitose-v1 h2,
.irp-halitose-v1 h3,
.irp-halitose-v1 p,
.irp-halitose-v1 figure,
.irp-halitose-v1 dl,
.irp-halitose-v1 dd,
.irp-halitose-v1 ol,
.irp-halitose-v1 ul { margin: 0; }

.irp-halitose-v1 h1,
.irp-halitose-v1 h2,
.irp-halitose-v1 h3,
.irp-halitose-v1 dt {
  font-family: "Bodoni Moda", "Bodoni 72", Didot, serif;
  font-weight: 400;
}

.irp-halitose-v1 h2 {
  max-width: 12ch;
  font-size: clamp(52px, 6vw, 86px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.irp-halitose-v1 h3 {
  font-size: clamp(28px, 2.7vw, 42px);
  line-height: 1.03;
  letter-spacing: -0.025em;
}

.irp-halitose-v1 p,
.irp-halitose-v1 li,
.irp-halitose-v1 dd {
  font-size: 17px;
  line-height: 1.68;
}

.irp-halitose-v1 p > a,
.irp-halitose-v1 li > a,
.irp-halitose-v1 dd > a {
  margin-left: 0.18em;
  color: var(--hal-amber);
  font-size: 0.72em;
  font-weight: 700;
  text-underline-offset: 0.22em;
}

.irp-halitose-v1 [id] { scroll-margin-top: 86px; }

.irp-halitose-v1 a:focus-visible,
.irp-halitose-v1 summary:focus-visible {
  outline: 3px solid var(--hal-amber);
  outline-offset: 4px;
}

.hal-action {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  align-self: flex-start;
  min-height: 54px;
  padding: 0 22px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 180ms ease-out, background 180ms ease-out, transform 180ms ease-out;
}

.hal-action i {
  position: relative;
  width: 24px;
  height: 12px;
  margin-left: 24px;
}

.hal-action i::before,
.hal-action i::after {
  position: absolute;
  right: 0;
  content: "";
}

.hal-action i::before {
  top: 5px;
  width: 24px;
  border-top: 1px solid currentColor;
}

.hal-action i::after {
  top: 2px;
  width: 7px;
  height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}

.hal-action:hover { transform: translateY(-2px); }

.hal-action--mineral {
  color: var(--hal-light);
  background: var(--hal-mineral);
}

.hal-action--mineral:hover {
  color: var(--hal-ink);
  background: var(--hal-amber);
}

.hal-action--amber {
  color: var(--hal-ink);
  background: var(--hal-amber);
}

.hal-action--amber:hover {
  color: var(--hal-deep);
  background: var(--hal-light);
}

/* A primeira dobra preserva literalmente a composição A aprovada. */
.hal-hero {
  display: grid;
  grid-template-columns: minmax(0, 55%) minmax(430px, 45%);
  height: max(760px, calc(100svh - 65px));
  min-height: max(760px, calc(100svh - 65px));
  overflow: hidden;
  background: var(--hal-light);
}

.hal-hero__figure {
  position: relative;
  min-width: 0;
  min-height: inherit;
  overflow: hidden;
  background: var(--hal-deep);
}

.hal-hero__figure picture,
.hal-hero__figure img {
  display: block;
  width: 100%;
  height: 100%;
}

.hal-hero__figure img {
  object-fit: cover;
  object-position: 49% 50%;
}

.hal-hero__figure figcaption,
.hal-map__figure figcaption,
.hal-dialogue__figure figcaption {
  position: absolute;
  right: 22px;
  bottom: 16px;
  left: 22px;
  color: rgba(251, 249, 243, 0.9);
  font-size: 11px;
  line-height: 1.45;
  text-align: right;
  text-shadow: 0 1px 14px rgba(0, 0, 0, 0.8);
}

.hal-hero__copy {
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 70px max(58px, calc((100vw - 1360px) / 2)) 50px max(52px, calc((100vw - 1360px) / 2));
}

.hal-hero h1 {
  max-width: 11.5ch;
  font-size: clamp(48px, 4.2vw, 72px);
  line-height: 0.97;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.hal-hero__copy > p:not(.hal-hero__note) {
  max-width: 49ch;
  margin-top: 28px;
  color: var(--hal-soft);
  font-size: clamp(17px, 1.16vw, 20px);
  line-height: 1.58;
}

.hal-hero .hal-action { margin-top: 32px; }

.hal-hero__note {
  margin-top: auto !important;
  padding-top: 38px;
  color: var(--hal-soft);
  font-size: 12px !important;
  line-height: 1.45 !important;
}

.hal-hero__note strong {
  display: block;
  margin-bottom: 4px;
  color: var(--hal-amber);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: 25px;
  font-weight: 400;
}

.hal-hero__note span { display: block; }

.hal-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  min-height: 62px;
  padding: 0 max(68px, calc((100vw - 1360px) / 2));
  color: rgba(251, 249, 243, 0.62);
  background: var(--hal-mineral);
  font-size: 12px;
}

.hal-breadcrumb a {
  color: var(--hal-light);
  text-decoration-color: rgba(251, 249, 243, 0.34);
  text-underline-offset: 4px;
}

.hal-answer {
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  background: var(--hal-paper);
}

.hal-answer > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: end;
}

.hal-answer > header h2 { max-width: 11.5ch; }

.hal-answer > header p {
  max-width: 50ch;
  padding-bottom: 10px;
  color: var(--hal-soft);
}

.hal-answer__contrast {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: clamp(86px, 9vw, 130px);
  border-top: 1px solid var(--hal-line);
  border-bottom: 1px solid var(--hal-line);
}

.hal-answer__contrast > div {
  min-height: 300px;
  padding: 42px clamp(26px, 4vw, 56px);
}

.hal-answer__contrast > div + div { border-left: 1px solid var(--hal-line); }

.hal-answer__contrast dt {
  color: var(--hal-mineral);
  font-size: clamp(34px, 3.4vw, 50px);
  line-height: 1;
}

.hal-answer__contrast dd {
  max-width: 37ch;
  margin-top: 22px;
  color: var(--hal-soft);
}

.hal-map {
  display: grid;
  grid-template-columns: minmax(430px, 44%) minmax(0, 56%);
  min-height: 940px;
  color: var(--hal-light);
  background: var(--hal-deep);
}

.hal-map__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(84px, 9vw, 136px) clamp(54px, 7vw, 104px) clamp(84px, 9vw, 136px) max(68px, calc((100vw - 1360px) / 2));
}

.hal-map__copy h2 { max-width: 8.5ch; }

.hal-map__copy > p {
  max-width: 47ch;
  margin-top: 30px;
  color: rgba(251, 249, 243, 0.76);
}

.hal-map__copy dl {
  margin-top: clamp(62px, 7vw, 96px);
  border-top: 1px solid var(--hal-light-line);
}

.hal-map__copy dl > div {
  padding: 24px 0;
  border-bottom: 1px solid var(--hal-light-line);
}

.hal-map__copy dt {
  color: var(--hal-amber);
  font-size: 27px;
}

.hal-map__copy dd {
  margin-top: 7px;
  color: rgba(251, 249, 243, 0.72);
}

.hal-map__figure,
.hal-dialogue__figure {
  position: relative;
  min-width: 0;
  min-height: 640px;
  overflow: hidden;
}

.hal-map__figure picture,
.hal-map__figure img,
.hal-dialogue__figure picture,
.hal-dialogue__figure img {
  display: block;
  width: 100%;
  height: 100%;
}

.hal-map__figure img,
.hal-dialogue__figure img {
  object-fit: cover;
}

.hal-map__figure img { object-position: 52% 50%; }

.hal-evaluation {
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  background: var(--hal-light);
}

.hal-evaluation > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.82fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: end;
}

.hal-evaluation > header h2 { max-width: 11.5ch; }

.hal-evaluation > header p {
  max-width: 49ch;
  padding-bottom: 10px;
  color: var(--hal-soft);
}

.hal-evaluation__field {
  position: relative;
  margin-top: clamp(90px, 10vw, 150px);
  padding: 0 clamp(12px, 5vw, 72px);
}

.hal-evaluation__axis {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--hal-mineral);
  transform: scaleY(1);
  transform-origin: top;
}

.hal-evaluation__axis::before,
.hal-evaluation__axis::after {
  position: absolute;
  left: 50%;
  width: 10px;
  height: 10px;
  border: 2px solid var(--hal-light);
  border-radius: 50%;
  background: var(--hal-amber);
  content: "";
  transform: translateX(-50%);
}

.hal-evaluation__axis::before { top: -2px; }
.hal-evaluation__axis::after { bottom: -2px; }

.hal-evaluation__field dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 clamp(92px, 12vw, 180px);
}

.hal-evaluation__field dl > div {
  position: relative;
  min-height: 176px;
  padding: 32px 0 38px;
  border-top: 1px solid var(--hal-line);
}

.hal-evaluation__field dl > div::after {
  position: absolute;
  top: 39px;
  width: clamp(46px, 6vw, 86px);
  border-top: 1px solid var(--hal-mineral);
  content: "";
}

.hal-evaluation__field dl > div:nth-child(odd)::after { right: calc(clamp(92px, 12vw, 180px) / -2); }
.hal-evaluation__field dl > div:nth-child(even)::after { left: calc(clamp(92px, 12vw, 180px) / -2); }

.hal-evaluation__field dt {
  color: var(--hal-mineral);
  font-size: clamp(30px, 3vw, 46px);
  line-height: 1;
}

.hal-evaluation__field dd {
  max-width: 37ch;
  margin-top: 14px;
  color: var(--hal-soft);
}

.hal-evaluation__field dl > div:nth-child(odd) { text-align: right; }
.hal-evaluation__field dl > div:nth-child(odd) dd { margin-left: auto; }

.hal-evaluation__statement {
  max-width: 22ch;
  margin: clamp(70px, 8vw, 116px) auto 0 !important;
  color: var(--hal-mineral);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(38px, 4.3vw, 64px) !important;
  line-height: 1.03 !important;
  text-align: center;
  text-wrap: balance;
}

.hal-motion-ready .hal-evaluation__axis { transform: scaleY(0); }
.hal-motion-ready .hal-evaluation__axis.is-visible { animation: hal-draw-axis 1100ms cubic-bezier(0.16, 1, 0.3, 1) forwards; }

@keyframes hal-draw-axis { to { transform: scaleY(1); } }

.hal-treatment {
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  color: var(--hal-light);
  background: var(--hal-mineral);
}

.hal-treatment > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: end;
}

.hal-treatment > header h2 { max-width: 9ch; }

.hal-treatment > header p {
  max-width: 46ch;
  padding-bottom: 10px;
  color: rgba(251, 249, 243, 0.74);
}

.hal-treatment__rows {
  margin-top: clamp(80px, 9vw, 128px);
  border-top: 1px solid var(--hal-light-line);
}

.hal-treatment__rows article {
  display: grid;
  grid-template-columns: minmax(250px, 0.68fr) minmax(360px, 1fr) minmax(260px, 0.72fr);
  gap: clamp(36px, 6vw, 90px);
  align-items: center;
  min-height: 190px;
  padding: 34px 0;
  border-bottom: 1px solid var(--hal-light-line);
}

.hal-treatment__rows article p { color: rgba(251, 249, 243, 0.74); }

.hal-treatment__rows article strong {
  color: var(--hal-pale);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(24px, 2.3vw, 36px);
  font-weight: 400;
  line-height: 1.08;
}

.hal-dialogue {
  display: grid;
  grid-template-columns: minmax(0, 56%) minmax(430px, 44%);
  min-height: 980px;
  background: var(--hal-paper);
}

.hal-dialogue__figure img { object-position: 50% 53%; }

.hal-dialogue__copy {
  padding: clamp(86px, 9vw, 138px) max(68px, calc((100vw - 1360px) / 2)) clamp(86px, 9vw, 138px) clamp(54px, 7vw, 104px);
}

.hal-dialogue__copy h2 { max-width: 10ch; }

.hal-dialogue__copy > p {
  max-width: 47ch;
  margin-top: 30px;
  color: var(--hal-soft);
}

.hal-dialogue__copy ol {
  margin-top: clamp(64px, 7vw, 98px);
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--hal-line);
}

.hal-dialogue__copy li {
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 22px;
  padding: 25px 0;
  border-bottom: 1px solid var(--hal-line);
}

.hal-dialogue__copy li > span {
  padding-top: 5px;
  color: var(--hal-amber);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: 30px;
}

.hal-dialogue__copy li h3 { font-size: 30px; }
.hal-dialogue__copy li p { margin-top: 7px; color: var(--hal-soft); }

.hal-boundary {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(390px, 0.96fr);
  gap: clamp(58px, 9vw, 150px);
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  color: var(--hal-light);
  background: var(--hal-deep);
}

.hal-boundary h2 { max-width: 9ch; }

.hal-boundary > div > p {
  max-width: 50ch;
  margin-top: 32px;
  color: rgba(251, 249, 243, 0.75);
}

.hal-boundary ul {
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--hal-light-line);
}

.hal-boundary li {
  padding: 27px 0;
  color: var(--hal-pale);
  border-bottom: 1px solid var(--hal-light-line);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(25px, 2.5vw, 38px);
  line-height: 1.08;
}

.hal-referral {
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  background: var(--hal-light);
}

.hal-referral > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(400px, 0.92fr);
  gap: clamp(60px, 9vw, 150px);
  align-items: end;
}

.hal-referral > header h2 { max-width: 10ch; }

.hal-referral > header p {
  max-width: 52ch;
  padding-bottom: 10px;
  color: var(--hal-soft);
}

.hal-referral__statement {
  max-width: 23ch;
  margin: clamp(88px, 10vw, 146px) auto 0 !important;
  color: var(--hal-mineral);
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(40px, 5vw, 72px) !important;
  line-height: 1.04 !important;
  text-align: center;
  text-wrap: balance;
}

.hal-routes {
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  color: var(--hal-light);
  background: var(--hal-mineral);
}

.hal-routes > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(350px, 0.76fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: end;
}

.hal-routes > header p {
  max-width: 45ch;
  padding-bottom: 10px;
  color: rgba(251, 249, 243, 0.74);
}

.hal-routes nav {
  margin-top: clamp(78px, 9vw, 128px);
  border-top: 1px solid var(--hal-light-line);
}

.hal-routes nav a {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
  min-height: 150px;
  padding: 28px 0;
  color: var(--hal-light);
  border-bottom: 1px solid var(--hal-light-line);
  text-decoration: none;
}

.hal-routes nav span {
  display: block;
  margin-bottom: 7px;
  color: rgba(251, 249, 243, 0.62);
  font-size: 13px;
}

.hal-routes nav strong {
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(30px, 3.5vw, 52px);
  font-weight: 400;
  line-height: 1.03;
}

.hal-routes nav i {
  position: relative;
  flex: 0 0 56px;
  height: 24px;
  color: var(--hal-amber);
}

.hal-routes nav i::before,
.hal-routes nav i::after {
  position: absolute;
  right: 0;
  content: "";
}

.hal-routes nav i::before { top: 11px; width: 56px; border-top: 1px solid currentColor; }
.hal-routes nav i::after { top: 4px; width: 15px; height: 15px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }

.hal-faq {
  display: grid;
  grid-template-columns: minmax(330px, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(72px, 10vw, 160px);
  padding: clamp(110px, 12vw, 180px) max(68px, calc((100vw - 1360px) / 2));
  background: var(--hal-light);
}

.hal-faq h2 {
  position: sticky;
  top: 96px;
  align-self: start;
  max-width: 7ch;
}

.hal-faq__list { border-top: 1px solid var(--hal-line); }
.hal-faq details { border-bottom: 1px solid var(--hal-line); }

.hal-faq summary {
  position: relative;
  padding: 30px 58px 30px 0;
  color: var(--hal-ink);
  cursor: pointer;
  font-family: "Bodoni Moda", Didot, serif;
  font-size: clamp(25px, 2.4vw, 36px);
  line-height: 1.12;
  list-style: none;
}

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

.hal-faq summary::before,
.hal-faq summary::after {
  position: absolute;
  top: 50%;
  right: 8px;
  width: 24px;
  border-top: 1px solid var(--hal-mineral);
  content: "";
  transition: transform 180ms ease-out;
}

.hal-faq summary::after { transform: rotate(90deg); }
.hal-faq details[open] summary::after { transform: rotate(0deg); }

.hal-faq details p {
  max-width: 64ch;
  padding: 0 58px 30px 0;
  color: var(--hal-soft);
}

.hal-closing {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 72px;
  align-items: end;
  padding: clamp(100px, 11vw, 160px) max(68px, calc((100vw - 1360px) / 2));
  color: var(--hal-light);
  background: var(--hal-deep);
}

.hal-closing h2 { max-width: 14ch; }

.hal-closing p {
  max-width: 52ch;
  margin-top: 30px;
  color: rgba(251, 249, 243, 0.74);
}

.hal-references {
  padding: clamp(90px, 10vw, 140px) max(68px, calc((100vw - 1360px) / 2));
  background: var(--hal-paper);
}

.hal-references > header {
  display: grid;
  grid-template-columns: minmax(0, 0.76fr) minmax(380px, 1.24fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: end;
}

.hal-references h2 {
  max-width: 10ch;
  font-size: clamp(42px, 5vw, 70px);
}

.hal-references > header p {
  max-width: 54ch;
  padding-bottom: 8px;
  color: var(--hal-soft);
}

.hal-references__review {
  margin-top: 64px !important;
  padding: 18px 0;
  color: var(--hal-mineral);
  border-top: 1px solid var(--hal-line);
  border-bottom: 1px solid var(--hal-line);
  font-weight: 700;
}

.hal-references ol {
  margin-top: 40px;
  padding-left: 24px;
}

.hal-references li {
  max-width: 92ch;
  padding: 12px 0 12px 12px;
  color: var(--hal-soft);
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

@media (max-width: 900px) {
  .irp-halitose-v1 h2 { font-size: clamp(43px, 11.5vw, 59px); }

  .hal-hero {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(500px, 68svh);
    height: auto;
    min-height: calc(100svh - 65px);
    overflow: visible;
  }

  .hal-hero__copy {
    grid-row: 1;
    align-items: stretch;
    padding: 62px 24px 46px;
  }

  .hal-hero__figure {
    grid-row: 2;
    min-height: 0;
  }

  .hal-hero__figure img { object-position: 49% 50%; }

  .hal-hero h1 {
    max-width: 11.5ch;
    font-size: clamp(42px, 11vw, 56px);
    line-height: 0.98;
  }

  .hal-hero__copy > p:not(.hal-hero__note) {
    max-width: 40ch;
    margin-top: 24px;
    font-size: 17px;
    line-height: 1.55;
  }

  .hal-hero .hal-action { width: min(100%, 330px); margin-top: 28px; }
  .hal-hero__note { display: none; }

  .hal-hero__figure figcaption,
  .hal-map__figure figcaption,
  .hal-dialogue__figure figcaption { text-align: center; }

  .hal-breadcrumb { padding: 0 24px; }

  .hal-answer,
  .hal-evaluation,
  .hal-treatment,
  .hal-referral,
  .hal-routes,
  .hal-references { padding: 92px 24px; }

  .hal-answer > header,
  .hal-evaluation > header,
  .hal-treatment > header,
  .hal-referral > header,
  .hal-routes > header,
  .hal-references > header {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .hal-answer > header p,
  .hal-evaluation > header p,
  .hal-treatment > header p,
  .hal-referral > header p,
  .hal-routes > header p,
  .hal-references > header p { padding-bottom: 0; }

  .hal-answer__contrast {
    grid-template-columns: 1fr;
    margin-top: 64px;
  }

  .hal-answer__contrast > div {
    min-height: 0;
    padding: 34px 0;
  }

  .hal-answer__contrast > div + div {
    border-top: 1px solid var(--hal-line);
    border-left: 0;
  }

  .hal-map,
  .hal-dialogue {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .hal-map__copy { padding: 92px 24px; }
  .hal-map__figure { min-height: 690px; }
  .hal-map__figure img { object-position: 51% 50%; }

  .hal-evaluation__field { margin-top: 64px; padding: 0; }
  .hal-evaluation__axis { left: 12px; }

  .hal-evaluation__field dl {
    grid-template-columns: 1fr;
    gap: 0;
    padding-left: 42px;
  }

  .hal-evaluation__field dl > div {
    min-height: 0;
    padding: 26px 0 30px;
    text-align: left !important;
  }

  .hal-evaluation__field dl > div::after {
    top: 34px;
    left: -30px !important;
    right: auto !important;
    width: 30px;
  }

  .hal-evaluation__field dl > div dd { margin-left: 0 !important; }
  .hal-evaluation__statement { margin-top: 64px !important; text-align: left; }

  .hal-treatment__rows { margin-top: 64px; }

  .hal-treatment__rows article {
    grid-template-columns: 1fr;
    gap: 20px;
    min-height: 0;
    padding: 34px 0;
  }

  .hal-dialogue__figure {
    grid-row: 2;
    min-height: 690px;
  }

  .hal-dialogue__copy {
    grid-row: 1;
    padding: 92px 24px;
  }

  .hal-dialogue__copy ol { margin-top: 58px; }

  .hal-boundary {
    grid-template-columns: 1fr;
    gap: 64px;
    padding: 92px 24px;
  }

  .hal-referral__statement {
    margin-top: 68px !important;
    text-align: left;
  }

  .hal-routes nav { margin-top: 64px; }
  .hal-routes nav a { min-height: 130px; }
  .hal-routes nav i { flex-basis: 36px; }
  .hal-routes nav i::before { width: 36px; }

  .hal-faq {
    grid-template-columns: 1fr;
    gap: 54px;
    padding: 92px 24px;
  }

  .hal-faq h2 { position: static; }

  .hal-closing {
    grid-template-columns: 1fr;
    gap: 48px;
    padding: 92px 24px;
  }

  .hal-closing .hal-action { width: min(100%, 330px); }
  .hal-references__review { margin-top: 44px !important; }
}

@media (max-width: 520px) {
  .irp-halitose-v1 p,
  .irp-halitose-v1 li,
  .irp-halitose-v1 dd { font-size: 16px; line-height: 1.62; }

  .hal-hero { grid-template-rows: auto 540px; }
  .hal-hero__copy { padding-top: 52px; }
  .hal-hero h1 { font-size: clamp(40px, 11.6vw, 51px); }
  .hal-hero__figure img { object-position: 49% 48%; }

  .hal-breadcrumb {
    gap: 7px;
    min-height: 68px;
    padding-top: 12px;
    padding-bottom: 12px;
    font-size: 11px;
  }

  .hal-answer,
  .hal-evaluation,
  .hal-treatment,
  .hal-referral,
  .hal-routes,
  .hal-faq,
  .hal-references,
  .hal-map__copy,
  .hal-dialogue__copy,
  .hal-boundary,
  .hal-closing { padding-top: 78px; padding-bottom: 78px; }

  .hal-map__figure,
  .hal-dialogue__figure { min-height: 610px; }

  .hal-evaluation__statement,
  .hal-referral__statement { font-size: 39px !important; }

  .hal-treatment__rows article strong { font-size: 27px; }

  .hal-dialogue__copy li {
    grid-template-columns: 48px 1fr;
    gap: 14px;
  }

  .hal-dialogue__copy li h3 { font-size: 28px; }

  .hal-boundary li { font-size: 27px; }

  .hal-routes nav a { gap: 18px; }
  .hal-routes nav strong { font-size: 30px; }
  .hal-routes nav i { display: none; }

  .hal-faq summary {
    padding-right: 45px;
    font-size: 25px;
  }

  .hal-faq details p { padding-right: 0; }

  .hal-references ol { padding-left: 20px; }
  .hal-references li { padding-left: 6px; font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .hal-action { transition: none; }
  .hal-motion-ready .hal-evaluation__axis { transform: scaleY(1); }
}
