/**
 * HOPE DESIGN STUDIO 1.6.0 · CENTRAL VISUAL CONTROL
 * One set of tokens and rules for the opt-in .hope-ds system and compatible
 * legacy .hr-* components. No WordPress templates, SEO, forms or footer change.
 * Tokens are supplied by the plugin's sanitized settings; CSS stays cacheable.
 */

/* BRAND + READABILITY : inherited by every .hope-ds page */
body .hope-ds {
  --hope-ds-yellow: var(--hrdc-accent, #ffd600);
  --hope-ds-dark: var(--hrdc-dark, #111714);
  --hope-ds-green: var(--hrdc-green, #214b39);
  --hope-ds-deep: var(--hrdc-green, #214b39);
  --hope-ds-ink: var(--hrdc-ink, #29342f);
  --hope-ds-light: var(--hrdc-surface, #f7f8f7);
  --hope-ds-muted: #526158;
  --hope-ds-max: var(--hrdc-max, 1220px);
  --hope-ds-reading: var(--hrdc-reading, 830px);
  --hope-ds-vspace: var(--hrdc-space, 78px);
  --hope-ds-radius: var(--hrdc-radius, 18px);
  color: var(--hrdc-ink, #29342f);
  font-size: var(--hrdc-body, 18px);
  line-height: 1.78;
}
body .hope-ds .hope-ds__container {
  width: min(var(--hrdc-max, 1220px), calc(100% - 44px));
  max-width: var(--hrdc-max, 1220px);
}
body .hope-ds .hope-ds__prose { max-width: var(--hrdc-reading, 830px); }
body .hope-ds .hope-ds__section { padding: var(--hope-ds-vspace) 0; }
body .hope-ds .hope-ds__section--light { background: var(--hrdc-surface, #f7f8f7); }
body .hope-ds .hope-ds__section--dark {
  background: var(--hrdc-dark, #111714);
}
body .hope-ds .hope-ds__section--green {
  background: var(--hrdc-green, #214b39);
}
body .hope-ds .hope-ds__hero {
  min-height: 0;
  padding: clamp(74px, 8vw, 110px) 0;
  background: linear-gradient(130deg, var(--hrdc-dark, #111714) 0%, var(--hrdc-green, #214b39) 100%);
  box-shadow: none;
}
body .hope-ds .hope-ds__hero::after { content: none; }
body .hope-ds .hope-ds__title {
  font-size: clamp(calc(42px * var(--hrdc-heading-scale, 1)), calc(5.4vw * var(--hrdc-heading-scale, 1)), calc(72px * var(--hrdc-heading-scale, 1)));
  line-height: 1.1;
  font-weight: 780;
  letter-spacing: -.033em;
  max-width: 1050px;
}
body .hope-ds .hope-ds__h2 {
  font-size: clamp(calc(32px * var(--hrdc-heading-scale, 1)), calc(3.8vw * var(--hrdc-heading-scale, 1)), calc(48px * var(--hrdc-heading-scale, 1)));
  line-height: 1.2;
  font-weight: 760;
  letter-spacing: -.023em;
}
body .hope-ds .hope-ds__h3 { font-size: clamp(calc(22px * var(--hrdc-heading-scale, 1)), calc(2.1vw * var(--hrdc-heading-scale, 1)), calc(27px * var(--hrdc-heading-scale, 1))); font-weight: 740; }
body .hope-ds .hope-ds__eyebrow {
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .085em;
}
body .hope-ds .hope-ds__p,
body .hope-ds .hope-ds__prose p,
body .hope-ds .hope-ds__section > .hope-ds__container > p:not(.hope-ds__eyebrow) {
  font-size: var(--hrdc-body, 18px);
  line-height: 1.8;
}
body .hope-ds .hope-ds__lead {
  font-size: clamp(19px, 1.8vw, 22px);
  line-height: 1.7;
}
body .hope-ds .hope-ds__card {
  min-height: 0;
  padding: var(--hrdc-card-pad, 27px);
  border: 1px solid #e3eae5;
  border-radius: var(--hrdc-radius, 18px);
  background: #fff;
  box-shadow: 0 10px 36px rgba(17, 23, 20, .025);
}
body .hope-ds .hope-ds__card--green {
  background: var(--hrdc-green, #214b39);
  border-color: transparent;
  color: #fff;
}
body .hope-ds .hope-ds__card--dark {
  background: var(--hrdc-dark, #111714);
  border-color: transparent;
  color: #fff;
}
body .hope-ds .hope-ds__card--yellow {
  background: var(--hrdc-accent, #ffd600);
  border-color: transparent;
  color: var(--hrdc-dark, #111714);
}
body .hope-ds .hope-ds__card .hope-ds__p,
body .hope-ds .hope-ds__card p {
  text-align: left;
  hyphens: none;
  -webkit-hyphens: none;
  word-break: normal;
}
body .hope-ds .hope-ds__grid { gap: clamp(16px, 2vw, 26px); }
body .hope-ds .hope-ds__cta {
  border-radius: var(--hrdc-button-radius, 28px);
  background: var(--hrdc-accent, #ffd600);
  color: var(--hrdc-dark, #111714) !important;
  font-size: 15px;
  line-height: 1.35;
  font-weight: 750;
  padding: 13px 23px;
  box-shadow: none;
  transform: none;
}
body .hope-ds .hope-ds__cta--secondary { background: var(--hrdc-green, #214b39); color: #fff !important; }
body .hope-ds .hope-ds__cta--dark { background: var(--hrdc-dark, #111714); color: #fff !important; }
body .hope-ds .hope-ds__cta--light { background: transparent; color: #fff !important; border: 1px solid rgba(255,255,255,.54); }
body .hope-ds .hope-ds__cta:focus-visible { outline: 3px solid var(--hrdc-accent, #ffd600); outline-offset: 3px; }
body .hope-ds .hope-ds__notice { border-radius: var(--hrdc-radius, 18px); padding: var(--hrdc-card-pad, 27px); }
body .hope-ds .hope-ds__quote { border-radius: var(--hrdc-radius, 18px); }

/* Typography is a central choice; by default Elementor/site globals win. */
body.hrdc-heading-editorial .hope-ds :is(.hope-ds__title,.hope-ds__h2,.hope-ds__h3) { font-family: Georgia, 'Times New Roman', serif; font-weight: 700; }
body.hrdc-heading-sans .hope-ds :is(.hope-ds__title,.hope-ds__h2,.hope-ds__h3) { font-family: system-ui, -apple-system, 'Segoe UI', sans-serif; }

/* EDItORIAL ACCORDION · native HTML, accessible without JS.
   Never uses large isolated tiles. Natural page rhythm, discreet separators. */
body .hope-ds .hope-ds__faq-intro { max-width: var(--hrdc-reading,830px); margin: 0 0 29px; }
body .hope-ds .hope-ds__faq-list { max-width: 950px; display: grid; grid-template-columns: minmax(0,1fr); gap: 0; margin: 0; }
body.hrdc-faq-double .hope-ds .hope-ds__faq-list {
  max-width: none;
  grid-template-columns: repeat(2,minmax(0,1fr));
  column-gap: clamp(28px, 4vw, 70px);
}
body .hope-ds .hope-ds__faq {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  border: 0;
  border-top: 1px solid #dce5de;
  border-radius: 0;
  box-shadow: none;
}
body .hope-ds .hope-ds__faq:last-child { border-bottom: 1px solid #dce5de; }
body .hope-ds .hope-ds__faq summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
  list-style: none;
  position: relative;
  padding: 21px 3px;
  margin: 0;
  cursor: pointer;
  color: var(--hrdc-dark,#111714);
  font-family: inherit;
  font-size: clamp(18px,1.5vw,21px);
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
}
body .hope-ds .hope-ds__faq summary::-webkit-details-marker { display: none; }
body .hope-ds .hope-ds__faq summary::after {
  content: '+';
  flex: 0 0 23px;
  margin-top: 0;
  color: var(--hrdc-green,#214b39);
  font-family: system-ui, sans-serif;
  font-size: 27px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
}
body .hope-ds .hope-ds__faq[open] summary::after { content: '−'; }
body .hope-ds .hope-ds__faq[open] summary { padding-bottom: 10px; }
body .hope-ds .hope-ds__faq summary:focus-visible { outline: 3px solid var(--hrdc-accent,#ffd600); outline-offset: 2px; }
body .hope-ds .hope-ds__faq-answer {
  max-width: 810px;
  padding: 0 50px 24px 3px;
  color: var(--hrdc-ink,#29342f);
}
body .hope-ds .hope-ds__faq-answer p,
body .hope-ds .hope-ds__faq-answer li {
  font-size: var(--hrdc-body,18px);
  line-height: 1.78;
  text-align: left;
  hyphens: none;
  -webkit-hyphens: none;
}
body .hope-ds .hope-ds__faq-answer p { margin: 0 0 .8em; }
body .hope-ds .hope-ds__faq-answer p:last-child { margin: 0; }
body .hope-ds .hope-ds__faq-answer ul { margin: 8px 0 0; padding-left: 23px; }
body .hope-ds .hope-ds__faq-answer a { color: #155c42; text-decoration: underline; text-underline-offset: .18em; }
body .hope-ds .hope-ds__faq-number { font-variant-numeric: tabular-nums; color: #65756a; font-size: 13px; font-weight: 650; letter-spacing: .02em; margin-right: 16px; }
body .hope-ds .hope-ds__faq-question { flex: 1 1 auto; }
body .hope-ds .hope-ds__faq-nav { display: flex; gap: 8px; flex-wrap: wrap; margin: 20px 0 0; }
body .hope-ds .hope-ds__faq-nav a { color: var(--hrdc-dark,#111714); border-bottom: 1px solid #c7d7cc; padding: 4px 0; margin: 0 16px 0 0; text-decoration: none; font-weight: 600; }
body .hope-ds .hope-ds__faq-nav a:hover { border-color: var(--hrdc-green,#214b39); }
body .hope-ds .hope-ds__edition-row { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 14px 0 0; font-size: 15px; line-height: 1.6; }
body .hope-ds .hope-ds__edition-row span { white-space: normal; }
body .hope-ds .hope-ds__edition-row strong { font-weight: 750; }
body .hope-ds .hope-ds__chapter-divider { height: 1px; background: #dce5de; margin-top: 18px; }

/* Design presets: all previous .hope-ds pages respond immediately. */
body.hrdc-preset-minimal .hope-ds .hope-ds__card {
  border-color: #ebefec;
  box-shadow: none;
  background: #fff;
}
body.hrdc-preset-minimal .hope-ds .hope-ds__card--green { background: var(--hrdc-green); color: #fff; }
body.hrdc-preset-minimal .hope-ds .hope-ds__card--dark { background: var(--hrdc-dark); color: #fff; }
body.hrdc-preset-minimal .hope-ds .hope-ds__card--yellow { background: var(--hrdc-accent); }
body.hrdc-preset-minimal .hope-ds .hope-ds__faq { border-color: #e6eae7; }
body.hrdc-preset-classic .hope-ds .hope-ds__card {
  border-color: #dbe3dd;
  box-shadow: 0 12px 35px rgba(17,23,20,.06);
}
body.hrdc-preset-classic .hope-ds .hope-ds__faq {
  margin-bottom: 14px;
  padding: 0 16px;
  border: 1px solid #dce5de;
  border-radius: var(--hrdc-radius);
  box-shadow: 0 6px 22px rgba(17,23,20,.03);
  background: #fff;
}

/* Optional compatibility: older .hr- component pages without rewriting HTML. */
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) {
  --hope-yellow: var(--hrdc-accent,#ffd600);
  --hope-green: var(--hrdc-green,#214b39);
  --hope-dark: var(--hrdc-dark,#111714);
  --hope-text: var(--hrdc-ink,#29342f);
  --hope-bg: var(--hrdc-surface,#f7f8f7);
  --hope-radius: var(--hrdc-radius,18px);
  --hope-radius-lg: var(--hrdc-radius,18px);
  --hope-max: var(--hrdc-max,1220px);
}
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) .hr-card {
  min-height: 0;
  border-radius: var(--hrdc-radius,18px);
  border-color: #e3eae5;
  padding: var(--hrdc-card-pad,27px);
  box-shadow: 0 10px 30px rgba(17,23,20,.035);
}
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) .hr-card p {
  font-size: max(16px, calc(var(--hrdc-body,18px) - 1px));
  text-align: left;
  hyphens: none;
}
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) .hr-copy {
  font-size: var(--hrdc-body,18px);
  line-height: 1.78;
}
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) .hr-band-dark {
  background: linear-gradient(130deg,var(--hrdc-dark),var(--hrdc-green));
  border-radius: var(--hrdc-radius,18px);
}
body.hrdc-legacy-on :is(.hr-projects-page,.hr-fabio-page,.hr-trail-showcase) .hr-btn {
  border-radius: var(--hrdc-button-radius,28px);
  font-size: max(14px,calc(var(--hrdc-body,18px) - 3px));
}

@media (max-width: 900px) {
  body.hrdc-faq-double .hope-ds .hope-ds__faq-list { grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 767px) {
  body .hope-ds .hope-ds__container { width: calc(100% - 32px); }
  body .hope-ds .hope-ds__section { padding: clamp(45px, 8vw, 64px) 0; }
  body .hope-ds .hope-ds__hero { padding: 68px 0 72px; }
  body .hope-ds .hope-ds__title { font-size: clamp(calc(38px * var(--hrdc-heading-scale, 1)), calc(8.9vw * var(--hrdc-heading-scale, 1)), calc(47px * var(--hrdc-heading-scale, 1))); }
  body .hope-ds .hope-ds__h2 { font-size: clamp(calc(30px * var(--hrdc-heading-scale, 1)), calc(7vw * var(--hrdc-heading-scale, 1)), calc(38px * var(--hrdc-heading-scale, 1))); }
  body .hope-ds .hope-ds__faq summary { font-size: 18px; padding: 18px 1px; gap: 12px; }
  body .hope-ds .hope-ds__faq-answer { padding-right: 0; }
  body .hope-ds .hope-ds__faq-number { margin-right: 10px; }
  body .hope-ds .hope-ds__p, body .hope-ds .hope-ds__prose p { text-align: left; hyphens: none; }
}
@media (prefers-reduced-motion:reduce) {
  body .hope-ds .hope-ds__cta { transition:none; transform:none!important; }
}


/* Hope Color 2026 · FAQ editoriale (Core 1.6.2)
   Based on the submitted .hope-ds page: keeps native accordion and the global
   Design Studio tokens. This does not affect other pages or the site footer. */
body #hope-color-faq-2026.hope-ds {
  --hcfq-space: clamp(38px, calc(var(--hrdc-space, 78px) * .72), 86px);
}
body #hope-color-faq-2026.hope-ds .hope-ds__section {
  padding-block: var(--hcfq-space);
}
body #hope-color-faq-2026.hope-ds .hope-ds__section--faq-index {
  padding-bottom: clamp(24px, calc(var(--hrdc-space,78px) * .4), 45px);
}
body #hope-color-faq-2026.hope-ds .hope-ds__section--faq-index + .hope-ds__section {
  padding-top: clamp(24px, calc(var(--hrdc-space,78px) * .35), 43px);
}
body #hope-color-faq-2026.hope-ds .hope-ds__h2 {
  max-width: 1000px;
  font-size: clamp(calc(29px * var(--hrdc-heading-scale,1)), calc(3.25vw * var(--hrdc-heading-scale,1)), calc(43px * var(--hrdc-heading-scale,1)));
  line-height: 1.2;
  margin-bottom: 14px;
}
body #hope-color-faq-2026.hope-ds .hope-ds__hero {
  padding-block: clamp(64px, 7vw, 94px);
}
body #hope-color-faq-2026.hope-ds .hope-ds__hero .hope-ds__title {
  max-width: 900px;
}
body #hope-color-faq-2026.hope-ds .hope-ds__hero .hope-ds__lead {
  max-width: min(780px, 100%);
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq-intro {
  margin-bottom: clamp(14px, 2vw, 21px);
  color: var(--hrdc-ink, #29342f);
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq-list {
  max-width: min(var(--hrdc-reading,830px), 100%);
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq {
  border-color: #dfe7e1;
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq summary {
  padding: clamp(15px, 1.7vw, 20px) 3px;
  font-size: clamp(17px, 1.38vw, 20px);
  line-height: 1.48;
  font-weight: 650;
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq[open] {
  background: linear-gradient(100deg, color-mix(in srgb, var(--hrdc-green,#214b39) 4%, white), transparent 68%);
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq[open] summary {
  color: var(--hrdc-green,#214b39);
}
body #hope-color-faq-2026.hope-ds .hope-ds__faq-answer {
  padding-bottom: 22px;
  max-width: min(800px,100%);
}
body #hope-color-faq-2026.hope-ds .hope-ds__edition-row {
  margin: 21px 0 0;
  gap: 11px 24px;
  font-size: clamp(15px, calc(var(--hrdc-body,18px) * .90), 18px);
}
body #hope-color-faq-2026.hope-ds .hope-ds__chapter-divider { margin: 23px 0; }
body #hope-color-faq-2026.hope-ds .hope-ds__faq-nav { gap: 6px 15px; }
body #hope-color-faq-2026.hope-ds .hope-ds__faq-nav a { margin: 0 8px 0 0; }
@media(max-width:650px) {
  body #hope-color-faq-2026.hope-ds { --hcfq-space: clamp(31px, calc(var(--hrdc-space,78px) * .52), 60px); }
  body #hope-color-faq-2026.hope-ds .hope-ds__h2 { line-height: 1.22; }
  body #hope-color-faq-2026.hope-ds .hope-ds__faq-answer { padding-right: 7px; }
  body #hope-color-faq-2026.hope-ds .hope-ds__faq summary { gap: 13px; }
  body #hope-color-faq-2026.hope-ds .hope-ds__faq-number { margin-right: 8px; }
}
