/* Website application of RR / RE:IMAGINE Brand System 1.1.
   The source tokens and the supplied path-based logos are kept separately. */
:root {
  --ink: var(--rr-navy);
  --navy: var(--rr-navy);
  --paper: var(--rr-paper);
  --white: var(--rr-white);
  --accent: var(--rr-lavender);
  --blue: var(--rr-action);
  --dark-line: var(--rr-border);
  --focus: var(--rr-lavender);
}
body {font-family:var(--rr-font);font-size:var(--rr-body-size);line-height:var(--rr-body-leading)}
h1,h2,h3,h4 {font-family:var(--rr-font-heading)}
h2 {font-size:var(--rr-h2);line-height:var(--rr-h2-leading);font-weight:var(--rr-weight-section);letter-spacing:-.025em}
h2 em {color:var(--rr-editorialAccentLight)}
.wrap {width:min(var(--wrap),calc(100% - 128px))}
.site-header {height:96px;padding-inline:max(64px,calc((100vw - 1320px)/2));gap:24px}
.brand-logo,.brand-logo img,.footer-logo {display:block;width:200px;height:auto}
.site-header .brand {padding-block:12px}
.site-header nav {gap:24px}
.site-header nav a {min-height:44px;display:inline-flex;align-items:center}
.nav-contact,.menu-toggle,.button,.language-switch {border-radius:var(--rr-radius-control)}
.language-switch button {min-height:44px;min-width:44px;padding:8px;font-weight:600}
.language-switch {padding:3px}
.button {min-height:48px;font-size:14px;padding:14px 24px;transition:background var(--rr-motion-standard),color var(--rr-motion-standard);font-weight:600}
.button:hover {transform:none}
.button-dark {background:var(--rr-action)}
.button-dark:hover {background:var(--rr-navy)}
.button-accent:hover {background:white}
.button-light:hover {background:var(--rr-lavender)}
.text-link,.partner-links a {min-height:44px;display:inline-flex;align-items:center}
.text-link {padding-block:8px}
:where(a,button,summary):focus-visible {outline:3px solid var(--focus);outline-offset:3px}
.section-light,dialog {--focus:var(--rr-action)}
.section-light .text-link {color:var(--rr-action)}
.section-light .text-link:hover {color:var(--rr-navy);border-color:currentColor}

/* A programme with a clear, consistent agency endorsement. */
.hero {min-height:800px;background:var(--rr-navy)}
.hero-content {padding-top:48px;padding-bottom:48px}
.hero-art {background-position:center 58%;opacity:1}
.hero-art::after {background:linear-gradient(90deg,#0f1b2b 0%,#0f1b2b 30%,rgba(15,27,43,.88) 43%,rgba(15,27,43,.18) 73%,rgba(15,27,43,.05) 100%)}
.programme-brand img {display:block;width:100%;height:auto}
.programme-brand .programme-compact {display:none}
.hero-programme {width:320px;max-width:100%;margin-bottom:32px}
.hero h1 {font-size:var(--rr-h1);font-weight:600;line-height:1.1;letter-spacing:-.035em;max-width:850px;margin:0 0 24px}
.hero h1 em {font-size:1em;line-height:1.15;letter-spacing:-.025em;color:var(--rr-lavender)}
.hero-description {font-size:20px;line-height:1.6;max-width:600px;color:#d6deea}
.hero-actions {margin-top:32px;gap:32px;flex-wrap:wrap}
.hero-bottom {font-size:14px;line-height:1.5;padding-block:24px;gap:24px}
.hero-index {font-size:14px}

/* Readable panels and a shared spacing rhythm. */
.leadership-questions {background:#e9edf5;padding:48px 0 64px;border-color:var(--rr-border)}
.questions-heading {gap:64px;margin:24px 0 48px}
.questions-heading h2 {font-size:var(--rr-h2)}
.questions-heading>p {font-size:18px;line-height:1.6;color:var(--rr-textMuted)}
.questions-grid {gap:24px}
.leader-question {padding:24px;border-color:var(--rr-border);border-top-color:var(--rr-lavender);border-radius:var(--rr-radius-panel)}
.leader-question h3 {font-size:24px;font-weight:600;line-height:1.35;margin:16px 0 12px}
.leader-question>p {font-size:18px;line-height:1.6;color:var(--rr-textMuted)}
.question-number,.step-number {color:var(--rr-editorialAccentLight);font-size:14px}
.questions-footer {margin-top:32px;padding-top:24px;border-color:#cbd2de}
.questions-footer p {font-size:16px;color:var(--rr-textMuted)}
.intro {padding:96px 0 64px}
.intro-grid {gap:64px;grid-template-columns:1fr 2fr}
.large-copy {font-size:22px;line-height:1.55}
.muted-copy,.principles p,.service-content,.agent-basics details>p {font-size:18px;line-height:1.6;color:var(--rr-textMuted)}
.agent-basics summary {min-height:56px}
.principles {padding-bottom:96px}
.principles-grid {gap:48px}
.principles h3 {font-weight:600}
.intro-photography {border-radius:var(--rr-radius-panel)}
.sessions {background:var(--rr-navy);padding:96px 0 64px}
.section-kicker>span,.card-meta,.session-footnote>span {font-size:14px}
.session-heading {grid-template-columns:1.2fr 1fr;gap:64px;padding:48px 0;align-items:center}
.session-heading>* {min-width:0}
.session-heading h2.programme-brand {width:480px;max-width:100%;margin:0;font-size:inherit;line-height:1;letter-spacing:normal}
.session-preamble {max-width:400px;padding:0}
.serif-line {color:var(--rr-lavender);font-size:36px;line-height:1.25}
.session-preamble>p:last-child {font-size:18px;line-height:1.6;margin-top:24px}
.session-photography {border-radius:var(--rr-radius-panel);margin-bottom:32px}
.session-grid {border-radius:var(--rr-radius-panel)}
.session-card {padding:24px;transition:background var(--rr-motion-standard)}
.session-card:first-child {border-radius:var(--rr-radius-panel) 0 0 var(--rr-radius-panel)}
.session-card:last-child {border-radius:0 var(--rr-radius-panel) var(--rr-radius-panel) 0}
.session-card:hover {background:var(--rr-ink)}
.session-card.featured {background:var(--rr-ink);padding-top:21px}
.card-meta {flex-direction:column;gap:4px}
.session-card h3 {font-weight:550;font-size:25px;min-height:3.66em;margin:24px 0 16px}
.session-card>p {font-size:18px;line-height:1.6;margin-bottom:32px}
.detail-button {min-height:48px;padding-block:12px 0;font-size:14px}
.training-panel {background:var(--rr-ink);border-radius:var(--rr-radius-panel);padding:48px;gap:64px;margin-top:48px}
.training-intro>p:not(.eyebrow),.training-themes p {font-size:18px;line-height:1.6}
.training-intro h3 {font-weight:550}
.services {padding:96px 0}
.service-layout {gap:96px}
.service-list summary {font-size:22px;font-weight:550;padding-block:24px}
.service-facts {font-size:16px}
.service-note {font-size:14px!important;color:var(--rr-textMuted)}
.partners {padding-top:96px;background:var(--rr-navy)}
.partners-heading {gap:32px;margin-bottom:48px}
.partners-heading>p:last-child {font-size:18px;line-height:1.6}
.partner-grid {gap:64px}
.partner-portrait {border-radius:var(--rr-radius-panel)}
.partner-description,.partner-focus-copy {font-size:18px;line-height:1.6}
.partner .experience-list li>span {font-size:16px;line-height:1.6}
.belief {margin-top:64px;padding:48px 0 64px;gap:64px}
.belief>p {font-size:var(--rr-h2);font-weight:550}
.native-section {padding:96px 0 64px}
.native-grid {gap:64px}
.native-tags span {font-size:14px;border-radius:var(--rr-radius-control)}
.pulse-section {padding-bottom:96px}
.pulse-panel {background:#e9edff;border-radius:var(--rr-radius-panel);padding:48px;gap:64px}
.pulse-panel>div>p:last-child {font-size:18px;line-height:1.6;color:var(--rr-textMuted)}
.pulse-panel .eyebrow,.pulse-panel h2 em {color:var(--rr-editorialAccentLight)}
.pulse-aside dl {font-size:16px}
.pulse-aside .button {background:var(--rr-action)}
.pulse-aside .button:hover {background:var(--rr-navy)}
.pulse-aside>p {color:var(--rr-textMuted)}
.contact {background:var(--rr-ink);padding:96px 0}
.contact h2 {font-size:var(--rr-h2)}
.contact-grid>div>p:last-child {font-size:18px;line-height:1.6}
.site-footer {background:var(--rr-navy);padding:48px 0}
.footer-inner {gap:24px}
.footer-inner p,.footer-inner>span {font-size:14px}
dialog {background:var(--rr-paper);border-radius:var(--rr-radius-panel);box-shadow:var(--rr-shadow-overlay);padding:48px}
.dialog-close {width:44px;height:44px;border-radius:var(--rr-radius-control)}
dialog h2 {font-size:32px;font-weight:550}
#dialog-intro,#dialog-outcomes,.dialog-preparation p {font-size:18px;line-height:1.6;color:var(--rr-textMuted)}
.dialog-note {font-size:14px;color:var(--rr-textMuted)}
.dialog-facts dt {font-size:12px;color:var(--rr-textMuted)}

@media(max-width:1100px) {
  .site-header {padding-inline:64px}
  .session-heading {gap:48px}
  .session-heading h2.programme-brand {width:360px}
  .service-layout {gap:48px;grid-template-columns:1fr 1.3fr}
  .partners-heading {grid-template-columns:1fr 2fr}
  .partners-heading>p:last-child {grid-column:2;justify-self:start}
  .partner-grid,.pulse-panel,.native-grid {gap:48px}
  .session-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .session-card {padding:32px}
  .session-card.featured {padding-top:29px}
  .session-card h3 {min-height:2.44em}
  .session-card:nth-child(2) {border-right:0;border-radius:0 var(--rr-radius-panel) 0 0}
  .session-card:nth-child(-n+2) {border-bottom:1px solid #465269}
  .session-card:first-child {border-radius:var(--rr-radius-panel) 0 0 0}
  .session-card:nth-child(3) {border-radius:0 0 0 var(--rr-radius-panel)}
  .session-card:last-child {border-radius:0 0 var(--rr-radius-panel) 0}
  .card-meta {flex-direction:row}
}
@media(max-width:980px) {
  .site-header {height:88px}
  .site-header nav {top:87px;padding:24px 64px}
  .site-header nav a {display:flex;justify-content:flex-start}
  .site-header nav .nav-contact {justify-content:center}
  .hero h1 {max-width:730px}
  .intro-grid {gap:32px}
  .questions-heading {gap:32px}
  .questions-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .session-heading {gap:32px}
  .session-heading h2.programme-brand {width:320px}
  .serif-line {font-size:30px}
  .pulse-panel {gap:32px;padding:32px}
  .training-panel {gap:32px;padding:32px}
}
@media(max-width:760px) {
  .wrap {width:calc(100% - 48px)}
  .site-header {height:88px;padding-inline:24px;gap:16px}
  .site-header nav {padding:24px;top:87px}
  .header-controls {gap:8px}
  .hero {min-height:0}
  .hero-content {padding-top:32px;padding-bottom:40px}
  .hero-programme {width:320px;margin-bottom:32px}
  .hero h1 {font-size:clamp(40px,7vw,56px);line-height:1.12;letter-spacing:-.035em;max-width:100%;margin-bottom:24px}
  .hero h1 em {letter-spacing:-.025em}
  .hero-description {font-size:18px;line-height:1.55;max-width:540px}
  .hero-art {opacity:1;background-position:65% center}
  .hero-art::after {background:linear-gradient(90deg,#0f1b2b 0%,rgba(15,27,43,.97) 45%,rgba(15,27,43,.8) 100%)}
  .hero-actions {gap:16px;margin-top:24px}
  .hero-bottom {font-size:14px;padding-block:24px}
  .hero-index {display:none}
  .leadership-questions {padding:32px 0 48px}
  .questions-heading {grid-template-columns:1fr;gap:24px;margin:24px 0 32px}
  .questions-heading h2 {font-size:36px}
  .questions-heading>p {font-size:18px}
  .questions-grid {grid-template-columns:1fr;gap:24px}
  .leader-question {padding:24px}
  .leader-question h3 {font-size:24px}
  .questions-footer {gap:8px}
  .intro {padding:64px 0 48px}
  .intro-grid {grid-template-columns:1fr;gap:24px}
  .intro-copy h2 {font-size:34px}
  .intro-photography {margin:0}
  .large-copy {font-size:20px}
  .principles {padding-bottom:64px}
  .principles-grid {gap:32px}
  .sessions {padding:64px 0 48px}
  .session-heading {grid-template-columns:minmax(0,1fr);padding:32px 0;gap:32px}
  .session-heading h2.programme-brand {width:360px}
  .session-preamble {max-width:100%}
  .session-preamble>p:last-child {font-size:18px;margin-top:16px}
  .session-grid {grid-template-columns:1fr}
  .session-card {padding:24px}
  .session-card.featured {padding-top:21px}
  .session-card h3 {min-height:0;font-size:28px}
  .session-card:nth-child(n) {border-radius:0;border-right:0}
  .session-card:first-child {border-radius:var(--rr-radius-panel) var(--rr-radius-panel) 0 0}
  .session-card:last-child {border-radius:0 0 var(--rr-radius-panel) var(--rr-radius-panel)}
  .training-panel {grid-template-columns:1fr;padding:24px;gap:32px;margin-top:32px}
  .training-intro h3 {font-size:36px}
  .services {padding:64px 0}
  .service-layout {grid-template-columns:1fr;gap:32px}
  .service-list summary {font-size:20px;gap:8px}
  .service-content {padding-left:0}
  .service-facts {font-size:14px}
  .partners {padding-top:64px}
  .partners-heading {grid-template-columns:1fr;gap:24px;margin-bottom:32px}
  .partners-heading>p:last-child {grid-column:auto;font-size:18px}
  .partner-grid {gap:64px}
  .partner-name h3 {font-size:32px}
  .belief {margin-top:48px;padding:32px 0 48px;gap:24px}
  .belief>p {font-size:34px}
  .native-section {padding:64px 0 48px}
  .native-grid {gap:24px}
  .pulse-section {padding-bottom:64px}
  .pulse-panel {padding:24px;gap:24px}
  .pulse-panel h2 {font-size:32px}
  .pulse-name {font-size:24px}
  .contact {padding:64px 0}
  .contact-grid {gap:32px}
  .contact h2 {font-size:36px}
  .contact-details {padding-top:32px}
  .contact-details .button {width:100%;padding-inline:16px}
  .site-footer {padding:32px 0}
  .footer-inner {gap:24px}
  .footer-inner>span {font-size:14px}
  dialog {padding:40px 24px 24px}
  dialog h2 {font-size:28px}
}
@media(max-width:480px) {
  .brand-logo,.brand-logo img {width:56px;height:44px;object-fit:contain}
  .site-header .brand {padding:0}
  .site-header {gap:8px}
  .hero-actions .button {width:100%;padding-inline:16px}
  .hero-actions {align-items:stretch}
  .hero-actions .text-link {align-self:flex-start}
  .pulse-name {font-size:22px}
}
/* Below the 320px lock-up minimum, use readable, wrapping live type. */
@media(max-width:367px) {
  .programme-brand img {display:none}
  .programme-compact {display:block!important;font-family:var(--rr-font-heading);font-size:36px!important;line-height:1.15!important;font-weight:600;letter-spacing:-.035em!important;color:white!important}
  .programme-compact>span {display:block;color:var(--rr-lavender)}
  .programme-compact small {display:block;margin-top:16px;font-family:var(--rr-font);font-size:16px;font-weight:400;letter-spacing:0;line-height:1.45}
  .card-meta {flex-direction:column}
}
@media(prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  *,*::before,*::after {transition:none!important;animation:none!important;transform:none!important}
}
@media print {
  .hero-programme,.session-heading .programme-brand {display:none}
  .wrap {width:100%}
  .hero {min-height:0}
  .hero-content {padding:24px 0}
}
