/* Pricing and FAQ only. Native cards and details retain their no-JS behaviour. */
body.consumer-info {
  --text: #3a1e10;
  --muted: #735d4c;
  --heat: #f08223;
  --heat-2: #994914;
  --line: #e4cfba;
  --panel: #fffaf4;
  --bg: #fcf9f5;
  --bg-soft: #f5e8da;
  background: #fcf9f5;
  color: #3a1e10;
  color-scheme: light;
}
.consumer-info .section-nav-consumer {
  position: static;
  top: auto;
  background: #fffbf6;
  border-color: #e4cfba;
  color: #735d4c;
  box-shadow: 0 8px 24px #3a1e1006;
}
.consumer-info .section-nav-label { color: #3a1e10; border-color: #e4cfba; }
.consumer-info .section-nav a:hover,
.consumer-info .section-nav a:focus-visible,
.consumer-info .section-nav a[aria-current=page] { color: #964914; border-bottom-color: #bd6422; }
.consumer-info .legal-page {
  width: min(1200px, calc(100% - 64px));
  max-width: 1200px;
  padding: 48px 0 76px;
}
.consumer-info .legal-page h1,
.consumer-info .legal-page h2 { color: #3a1e10; }
.consumer-info .legal-page h1 {
  max-width: 13ch;
  font: 400 clamp(3rem, 5.7vw, 5.1rem)/1.02 Georgia, 'Times New Roman', serif;
  letter-spacing: -.055em;
  margin: 15px 0 24px;
}
.consumer-info .legal-page > .eyebrow,
.consumer-info .inner-intro-grid .eyebrow {
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .15em;
  color: #a35118;
}
.consumer-info .price-lede { font-size: 1.02rem; line-height: 1.8; margin: 0; max-width: 55ch; }
.consumer-info .info-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.consumer-info .legal-page .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 21px;
  border-radius: 100px;
  font-size: .86rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
}
.consumer-info .legal-page .button.primary { background: #f08223; border-color: #f08223; color: #321a0e; }
.consumer-info .legal-page .button.primary:hover { background: #f69744; border-color: #f69744; transform: none; }
.consumer-info .legal-page .button.ghost { background: transparent; border-color: #d2b191; color: #663b20; }
.consumer-info .legal-page .button.ghost:hover { border-color: #a86834; background: #fff7ec; transform: none; }
.consumer-info .legal-page :where(a, summary):focus-visible { outline: 3px solid #b95a18; outline-offset: 5px; }
.consumer-info .legal-page .info-text-link { display: inline-flex; align-items: center; min-height: 44px; color: #934710; font-size: .85rem; font-weight: 600; text-underline-offset: 5px; }

.consumer-info .inner-intro-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); gap: 48px; margin-bottom: 58px; }
.consumer-info .price-visit-note {
  display: grid;
  grid-template-columns: 1fr .68fr;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 300px;
  padding: 28px 22px 28px 30px;
  border: 1px solid #e4cfb9;
  border-radius: 28px;
  background: radial-gradient(ellipse at 90% 60%, #f2cfaa 0, transparent 70%), #f7ebdc;
}
.consumer-info .price-visit-note h2 { font: 400 clamp(1.8rem, 2.6vw, 2.45rem)/1.1 Georgia, serif; letter-spacing: -.045em; margin: 19px 0 15px; }
.consumer-info .price-visit-note p:not(.eyebrow) { font-size: .81rem; line-height: 1.75; margin: 0; }
.consumer-info .price-visit-note img { display: block; width: 100%; height: 260px; object-fit: contain; filter: drop-shadow(0 12px 12px #58351618); }
.consumer-info .price-list { gap: 18px; margin: 0 0 40px; padding: 0; }
.consumer-info .price-row {
  padding: 30px;
  min-width: 0;
  margin: 0;
  border: 1px solid #e3cfba;
  border-radius: 25px;
  background: #fffdf9;
  gap: 32px;
  box-shadow: 0 8px 28px #48220b04;
}
.consumer-info .price-row.is-featured { border-color: #6d492e; background: radial-gradient(ellipse at 100% 0, #82502a77, transparent 75%), #3a1e10; }
.consumer-info .price-kind { display: block; margin-bottom: 26px; font-size: .65rem; font-weight: 600; line-height: 1.5; letter-spacing: .09em; text-transform: uppercase; color: #98501a; }
.consumer-info .price-row h2 { font: 400 clamp(1.8rem, 2.6vw, 2.3rem)/1.14 Georgia, serif; letter-spacing: -.035em; margin: 0 0 16px; }
.consumer-info .price-row-main p { font-size: .88rem; line-height: 1.7; }
.consumer-info .price-row-figure { border-top: 1px solid #e5d0b8; padding-top: 25px; gap: 11px; }
.consumer-info .price-amount { font: 400 clamp(3.2rem, 4.8vw, 4.3rem)/.96 Georgia, serif; letter-spacing: -.055em; color: #8c4617; }
.consumer-info .price-duration { font-size: .78rem; color: #78604b; }
.consumer-info .price-row.is-featured h2,
.consumer-info .price-row.is-featured .price-amount { color: #fff5e8; }
.consumer-info .price-row.is-featured .price-kind { color: #ffc18a; }
.consumer-info .price-row.is-featured p,
.consumer-info .price-row.is-featured .price-duration { color: #e7ceb6; }
.consumer-info .price-row.is-featured .price-row-figure { border-color: #8a6040; }
.consumer-info .price-addon { padding: 26px 30px; gap: 32px; background: #f5e9db; }
.consumer-info .price-addon .price-kind { margin-bottom: 11px; }
.consumer-info .price-addon h2 { font-size: 1.65rem; margin-bottom: 8px; }
.consumer-info .price-addon .price-row-main p { max-width: 65ch; }
.consumer-info .price-addon .price-row-figure { flex: 0 0 140px; border-top: 0; border-left: 1px solid #d9bfa4; padding: 8px 0 8px 28px; }
.consumer-info .price-addon .price-amount { font-size: 2.8rem; }
.consumer-info .price-membership { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: 38px; margin-bottom: 28px; padding: 36px; border-color: #e4ceb6; border-radius: 27px; background: #fffaf2; }
.consumer-info .price-membership .eyebrow { color: #a45219; font-size: .64rem; letter-spacing: .13em; margin: 0 0 16px; }
.consumer-info .price-membership h2 { font: 400 clamp(1.9rem, 3vw, 2.5rem)/1.1 Georgia, serif; letter-spacing: -.04em; margin: 0 0 25px; max-width: 15ch; }
.consumer-info .price-membership .price-pass-amount { color: #96501d; font: 400 clamp(3.1rem, 4.6vw, 4.3rem)/1 Georgia, serif; letter-spacing: -.045em; margin: 0 0 15px; }
.consumer-info .price-pass-amount span { font: 400 .77rem/1.5 Inter, system-ui, sans-serif; letter-spacing: 0; color: #765b44; }
.consumer-info .price-membership-intro > p:last-child { font-size: .84rem; line-height: 1.65; margin: 0; }
.consumer-info .price-membership-benefits { min-width: 0; display: grid; gap: 14px; }
.consumer-info .price-pass-highlights,.consumer-info .price-member-rates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.consumer-info .price-pass-highlight { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; padding: 20px; border: 1px solid #e5c9aa; border-radius: 18px; background: #f4e5d2; }
.consumer-info .price-pass-highlight > span { color: #87502b; font-size: .7rem; line-height: 1.45; }
.consumer-info .price-pass-highlight > strong { display: block; margin: 10px 0 8px; color: #754018; font: 400 clamp(2.4rem,3.5vw,3.25rem)/1 Georgia,serif; letter-spacing: -.045em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.consumer-info .price-membership .price-currency { font: 500 .36em/1.5 Inter,system-ui,sans-serif; letter-spacing: 0; margin-right: 3px; vertical-align: .3em; }
.consumer-info .price-pass-highlight small { font-size: .67rem; line-height: 1.5; color: #78573d; }
.consumer-info .price-pass-highlight.is-saving { background: #3a1e10; border-color: #61402a; }
.consumer-info .price-pass-highlight.is-saving > span { color: #ffc18a; }
.consumer-info .price-pass-highlight.is-saving > strong { color: #fff1df; }
.consumer-info .price-pass-highlight.is-saving small { color: #e9ceb5; }
.consumer-info .price-member-rate { min-width: 0; padding: 20px; border: 1px solid #e4cfb9; border-radius: 18px; background: #fffdf8; }
.consumer-info .price-member-rate h3 { color: #472814; font-size: .95rem; font-weight: 600; line-height: 1.4; margin: 0 0 3px; }
.consumer-info .price-member-rate .price-member-duration { color: #8a684d; font-size: .68rem; line-height: 1.5; margin: 0 0 18px; }
.consumer-info .price-member-rate dl { display: grid; gap: 12px; margin: 0; }
.consumer-info .price-member-rate dt { font-size: .65rem; line-height: 1.5; color: #85664f; margin: 0 0 3px; }
.consumer-info .price-member-rate dd { margin: 0; }
.consumer-info .price-normal-rate dd { color: #93765e; font-size: .94rem; line-height: 1.5; }
.consumer-info .price-normal-rate s { text-decoration-thickness: 1px; }
.consumer-info .price-discount-rate dd { color: #914313; font: 400 clamp(2.7rem,4vw,3.8rem)/1 Georgia,serif; letter-spacing: -.045em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.consumer-info .price-promise { border: 0; padding: 28px 0 33px; background: transparent; border-radius: 0; margin: 0; max-width: 760px; }
.consumer-info .price-promise h2 { font: 400 1.9rem/1.2 Georgia, serif; letter-spacing: -.035em; margin: 0 0 15px; }
.consumer-info .price-promise p { font-size: .95rem; line-height: 1.8; margin: 0 0 9px; }

.consumer-info .faq-layout { grid-template-columns: minmax(225px, .42fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 64px); margin-top: 46px; }
.consumer-info .faq-help { position: sticky; top: 112px; padding: 28px; border-color: #e2cbb3; border-radius: 25px; background: #f5e9dc; }
.consumer-info .faq-help h2 { margin: 0; font: 400 1.85rem/1.1 Georgia, serif; letter-spacing: -.035em; }
.consumer-info .faq-help nav { gap: 0; margin: 22px 0; }
.consumer-info .faq-help nav a { min-height: 48px; display: flex; align-items: center; border-color: #ddc5ab; padding: 14px 0; font-size: .84rem; line-height: 1.5; color: #65432c; text-decoration: none; }
.consumer-info .faq-help nav a:hover { color: #98450d; text-decoration: underline; text-underline-offset: 4px; }
.consumer-info .faq-help p { font-size: .81rem; line-height: 1.75; margin: 0; }
.consumer-info .faq-section { margin-bottom: 36px; scroll-margin-top: 180px; }
.consumer-info .faq-section h2 { color: #9f4e16; font: 600 .67rem/1.5 Inter, system-ui, sans-serif; letter-spacing: .12em; margin: 0 0 15px; }
.consumer-info .faq-item { margin: 10px 0; padding: 0; border: 1px solid #e7d7c6; border-radius: 17px; background: #fffdf9; transition: border-color .2s ease, background .2s ease; }
.consumer-info .faq-item summary { padding: 22px 64px 22px 24px; color: #442614; font-size: .95rem; font-weight: 550; line-height: 1.5; }
.consumer-info .faq-item summary::after { top: 20px; right: 21px; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 50%; background: #f7e8d7; color: #a5571e; font-size: 1.2rem; }
.consumer-info .faq-item[open] { background: #faf1e6; border-color: #d8b791; }
.consumer-info .faq-item p { padding: 0 24px 24px; margin: 0; font-size: .88rem; line-height: 1.85; max-width: 75ch; color: #725b47; }
.consumer-info .faq-guides { border-top: 1px solid #e4cfba; padding-top: 30px; margin: 12px 0 30px; }
.consumer-info .faq-guides-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.consumer-info .faq-guides-heading .eyebrow { color: #a35118; font-size: .67rem; letter-spacing: .12em; margin: 0 0 10px; }
.consumer-info .faq-guides h2 { font: 400 clamp(1.8rem, 2.6vw, 2.3rem)/1.12 Georgia, serif; letter-spacing: -.035em; margin: 0; }
.consumer-info .faq-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.consumer-info .faq-guide { min-width: 0; padding: 22px; border: 1px solid #e4cfba; border-radius: 20px; background: #fffaf4; color: #3a1e10; text-decoration: none; }
.consumer-info .faq-guide:hover { border-color: #c58a54; background: #f5e8da; }
.consumer-info .faq-guide > span { color: #98501a; font-size: .64rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.consumer-info .faq-guide h3 { font: 400 1.35rem/1.24 Georgia, serif; letter-spacing: -.025em; margin: 12px 0 0; overflow-wrap: anywhere; }
.consumer-info .info-contact { display: grid; grid-template-columns: 1fr auto; gap: 28px; align-items: center; margin-top: 22px; padding: 35px 36px; border: 1px solid #e1c6a9; border-radius: 27px; background: #f3e4d2; }
.consumer-info .info-contact h2 { font: 400 clamp(1.9rem, 2.9vw, 2.5rem)/1.1 Georgia, serif; letter-spacing: -.04em; margin: 0 0 13px; max-width: 21ch; }
.consumer-info .info-contact p { font-size: .87rem; line-height: 1.75; margin: 0; max-width: 52ch; }
.consumer-info .info-contact .info-actions { margin: 0; align-items: center; justify-content: flex-end; max-width: 380px; }

@media (max-width: 1050px) {
  .consumer-info .legal-page { width: calc(100% - 48px); }
  .consumer-info .inner-intro-grid { gap: 30px; }
  .consumer-info .price-visit-note { padding: 25px; grid-template-columns: 1fr .57fr; }
  .consumer-info .price-visit-note img { height: 230px; }
  .consumer-info .price-row { padding: 25px; }
  .consumer-info .price-membership { padding: 30px; gap: 30px; }
  .consumer-info .price-membership { grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); }
  .consumer-info .info-contact { grid-template-columns: 1fr; }
  .consumer-info .info-contact .info-actions { justify-content: flex-start; max-width: none; }
}
@media (max-width: 760px) {
  .consumer-info .legal-page { width: calc(100% - 36px); padding-block: 32px 48px; }
  .consumer-info .legal-page h1 { max-width: 13ch; font-size: clamp(2.85rem, 12vw, 4rem); }
  .consumer-info .price-lede { font-size: .96rem; }
  .consumer-info .inner-intro-grid { grid-template-columns: 1fr; gap: 30px; margin-bottom: 32px; }
  .consumer-info .price-visit-note { min-height: 260px; grid-template-columns: 1fr .68fr; padding: 26px; border-radius: 23px; }
  .consumer-info .price-visit-note img { height: 235px; }
  .consumer-info .price-visit-note h2 { font-size: 2rem; }
  .consumer-info .price-list { gap: 14px; }
  .consumer-info .price-row { padding: 28px; border-radius: 24px; gap: 27px; }
  .consumer-info .price-row h2 { font-size: 2.2rem; }
  .consumer-info .price-kind { margin-bottom: 21px; }
  .consumer-info .price-amount { font-size: 3.9rem; }
  .consumer-info .price-addon { flex-direction: row; gap: 20px; padding: 26px; }
  .consumer-info .price-addon h2 { font-size: 1.65rem; }
  .consumer-info .price-addon .price-row-figure { flex-basis: 100px; padding-left: 20px; }
  .consumer-info .price-addon .price-amount { font-size: 2.5rem; }
  .consumer-info .price-membership { grid-template-columns: 1fr; gap: 24px; padding: 24px; border-radius: 24px; }
  .consumer-info .price-membership h2 { font-size: 2rem; }
  .consumer-info .price-membership h2 { max-width: none; margin-bottom: 18px; }
  .consumer-info .price-membership-benefits { gap: 10px; }
  .consumer-info .price-pass-highlights,.consumer-info .price-member-rates { gap: 10px; }
  .consumer-info .price-pass-highlight,.consumer-info .price-member-rate { padding: 16px; border-radius: 15px; }
  .consumer-info .price-member-rate h3 { font-size: .87rem; }
  .consumer-info .price-discount-rate dd { font-size: clamp(2.65rem,8vw,3.8rem); }
  .consumer-info .price-promise { padding: 21px 4px 32px; }
  .consumer-info .faq-layout { grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
  .consumer-info .faq-help { position: static; padding: 25px; }
  .consumer-info .faq-help nav { grid-template-columns: 1fr 1fr; column-gap: 20px; margin-block: 18px; }
  .consumer-info .faq-help nav a { font-size: .78rem; }
  .consumer-info .faq-help h2 { font-size: 1.7rem; }
  .consumer-info .faq-section { margin-bottom: 32px; }
  .consumer-info .faq-item summary { padding: 21px 58px 21px 20px; font-size: .91rem; }
  .consumer-info .faq-item summary::after { right: 18px; top: 21px; width: 23px; height: 23px; }
  .consumer-info .faq-item p { padding: 0 20px 22px; font-size: .86rem; }
  .consumer-info .faq-guides-heading { display: block; margin-bottom: 16px; }
  .consumer-info .faq-guides-heading .info-text-link { margin-top: 10px; }
  .consumer-info .faq-guide-grid { grid-template-columns: 1fr; gap: 10px; }
  .consumer-info .faq-guide { padding: 20px; }
  .consumer-info .info-contact { padding: 29px 25px; gap: 24px; border-radius: 24px; }
  .consumer-info .info-contact .info-actions { width: 100%; }
  .consumer-info .info-actions .button { flex: 1 1 auto; }
}
@media (max-width: 580px) {
  .consumer-info .price-visit-note { display: none; }
}
@media (max-width: 390px) {
  .consumer-info .price-membership { padding: 20px; }
  .consumer-info .price-pass-highlights,.consumer-info .price-member-rates { gap: 8px; }
  .consumer-info .price-pass-highlight,.consumer-info .price-member-rate { padding: 13px 11px; }
  .consumer-info .price-pass-highlight > strong { font-size: 2.4rem; }
  .consumer-info .price-member-rate h3 { font-size: .81rem; }
  .consumer-info .price-member-rate dt { font-size: .62rem; }
  .consumer-info .price-discount-rate dd { font-size: 2.5rem; }
  .consumer-info .price-visit-note { padding: 24px; grid-template-columns: 1fr .53fr; }
  .consumer-info .price-visit-note h2 { font-size: 1.7rem; }
  .consumer-info .price-visit-note img { height: 220px; }
  .consumer-info .price-addon { flex-direction: column; align-items: stretch; }
  .consumer-info .price-addon .price-row-figure { flex-basis: auto; border-left: 0; border-top: 1px solid #d9bfa4; padding: 20px 0 0; }
}
@media (prefers-reduced-motion: reduce) {
  .consumer-info .faq-item,
  .consumer-info .legal-page .button { transition: none; }
}
