/* Shared SJH family roles, measured from the live Group site's type tokens.
   Brand colour, composition and wordmark remain Events-specific. */
.se26-home {
  --sjh-brand: #123f34;
  --sjh-paper: #faf8f4;
  --sjh-serif: 'Playfair Display', Georgia, serif;
  --sjh-sans: 'DM Sans', Arial, sans-serif;
  --type-h1: clamp(3rem,6.8vw,6.75rem);
  --type-h2: clamp(2.4rem,4.4vw,4.75rem);
  --type-h3: clamp(1.35rem,1.8vw,1.9rem);
  --type-body: clamp(1rem,.2vw + .96rem,1.125rem);
  --type-lead: clamp(1.4rem,1.9vw,2rem);
  --sjh-ease: cubic-bezier(.22,1,.36,1);
  font-family: var(--sjh-sans);
  font-size: var(--type-body);
  font-weight: 400;
}
.se26-home main h1,
.se26-home .se26-hero .se26-hero-copy h1 {
  font: 400 var(--type-h1)/1.04 var(--sjh-serif);
  letter-spacing: -.055em;
}
.se26-home main :is(h2,h3) { font-family: var(--sjh-serif); font-weight: 400; }
.se26-home main h2,
.se26-home .se26-intro h2,
.se26-home .se26-atmosphere-intro h2,
.se26-home .se26-partner-heading h2,
.se26-home .se26-contact h2 {
  font-size: var(--type-h2); line-height: 1.05; letter-spacing: -.045em;
}
.se26-home main h3,
.se26-home .se26-event-copy h3,
.se26-home .se26-journey-chapter h3 {
  font-size: var(--type-h3); line-height: 1.2; letter-spacing: -.025em;
}
.se26-home :is(.se26-intro,.se26-section-copy,.se26-journey-chapter,.se26-atmosphere-intro,.se26-contact-row,.se26-event-description) p:not(.se26-eyebrow) {
  font: 400 var(--type-body)/1.8 var(--sjh-sans);
  letter-spacing: normal;
}
.se26-home .se26-intro p:first-child:not(.se26-eyebrow) { font-size: var(--type-body); }
.se26-home .se26-eyebrow { font: 500 .6875rem/1.5 var(--sjh-sans); letter-spacing: .12em; }
.se26-home .se26-event-copy-bottom p { font: 400 .8125rem/1.6 var(--sjh-sans); }
.se26-home .se26-hero-copy { max-width: 100%; }
.se26-home .se26-hero-scene { margin-top: 0; }
/* Full-height film, including the space behind the overlay header. Stable on mobile. */
.se26-home .se26-hero {
  height: 100vh; height: 100svh; min-height: 0;
  padding-top: var(--se-header); padding-bottom: 80px;
}
.se26-home .se26-header { position: fixed; top: 0; left: 0; right: 0; width: 100%; }
.se26-home .se26-hero-rail { display: none; }
.se26-home .se26-hero .se26-hero-copy { padding-bottom: 2svh; }
.se26-home .se26-partner-layout { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(36px,6vw,96px); }
.se26-home .se26-partner-heading h2 { max-width: 8ch; }
/* Quotes are an editorial role, not normal paragraph text. Preserve the fixed-height fit. */
.se26-home .se26-testimonials blockquote > p { font-family: var(--sjh-serif); font-weight: 400; }

/* Group footer architecture: identity/address left, two link columns, social rail.
   No invented legal/vendor endorsement; retain the supplied Events content. */
.se26-home .se26-footer { padding: 40px clamp(24px,5.5vw,96px) 32px; background: var(--sjh-paper); }
.se26-family-footer .se26-footer-top {
  max-width: 88rem; margin-inline: auto;
  grid-template-columns: minmax(160px,.8fr) minmax(352px,1.5fr) auto;
  gap: clamp(32px,4vw,64px); padding-bottom: 24px;
}
.se26-family-footer .se26-footer-identity .se26-logo { width: 72px; height: 72px; }
.se26-family-footer .se26-footer-identity svg { width: 100%; height: 100%; display: block; mix-blend-mode: multiply; }
.se26-family-footer .se26-footer-identity address { margin-top: 20px; font: normal 400 14px/1.55 var(--sjh-sans); }
.se26-family-footer .se26-footer-copyright { margin-top: 24px; font: 400 12px/1.5 var(--sjh-sans); color: var(--se-muted); }
.se26-family-footer .se26-footer-explore h2 {
  margin: 0 0 24px; font: 400 24px/1.2 var(--sjh-serif); letter-spacing: -.02em; color: var(--sjh-brand); text-transform: none;
}
.se26-family-footer .se26-footer-link-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.se26-family-footer .se26-footer-column { gap: 0; }
.se26-family-footer .se26-footer-column h3 { margin: 0 0 12px; font: 500 11px/1.4 var(--sjh-sans); letter-spacing: .08em; color: var(--sjh-brand); }
.se26-family-footer .se26-footer-column a { min-height: 44px; font: 400 14px/1.4 var(--sjh-sans); color: var(--se-muted); }
.se26-family-footer .se26-footer-social { grid-column: auto; }
.se26-family-footer .se26-footer-social h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.se26-family-footer .se26-footer-social nav { display: flex; flex-direction: column; gap: 10px; padding-top: 49px; }
.se26-family-footer .se26-footer-social nav a { border: 1px solid rgba(18,63,52,.2); }
.se26-family-footer .se26-footer-bottom { max-width: 88rem; margin-inline: auto; border: 0; padding-top: 12px; justify-content: space-between; }
.se26-family-footer .se26-footer-bottom .se26-motion-preference { font-size: 12px; }

/* A short family signature, not a spinner or a dependency on media loading. */
.sjh-family-intro {
  --sjh-intro-duration: 3200ms;
  position: fixed; inset: 0; z-index: 2147483000;
  display: grid; place-items: center;
  background: radial-gradient(ellipse at 50% 42%,#e7eee7 0%,#faf8f4 68%);
  pointer-events: none; contain: layout paint;
  animation: sjh-intro-curtain 550ms 2650ms var(--sjh-ease,cubic-bezier(.22,1,.36,1)) both,
             sjh-intro-fail-open 1ms 3700ms forwards;
}
.sjh-family-lockup { --sjh-mark-size: clamp(36px,5vw,72px); --sjh-word-width: calc(var(--sjh-mark-size)*2.75); --sjh-lockup-gap: clamp(5px,.7vw,11px); display: flex; gap: var(--sjh-lockup-gap); align-items: center; transform: translateX(0); animation: sjh-intro-lift 400ms 2650ms cubic-bezier(.4,0,.2,1) both; }
/* Outrank the homepage's generic 20px SVG icon rules without changing icons. */
.sjh-family-intro .sjh-family-mark { display: block; width: var(--sjh-mark-size); max-width: none; flex: 0 0 auto; height: auto; aspect-ratio: 1; mix-blend-mode: multiply;
  animation: sjh-intro-mark 850ms 100ms var(--sjh-ease,cubic-bezier(.22,1,.36,1)) both; }
.sjh-family-intro .sjh-family-word { display: block; width: var(--sjh-word-width); max-width: none; flex: 0 0 auto; height: auto; mix-blend-mode: multiply;
  animation: sjh-intro-word 650ms 350ms var(--sjh-ease,cubic-bezier(.22,1,.36,1)) both; }
@keyframes sjh-intro-mark {
  0% { opacity: 0; transform: translateX(calc((var(--sjh-word-width) + var(--sjh-lockup-gap))/2)) scale(.96); }
  36% { opacity: 1; transform: translateX(calc((var(--sjh-word-width) + var(--sjh-lockup-gap))/2)) scale(1); }
  100% { opacity: 1; transform: translateX(0) scale(1); }
}
@keyframes sjh-intro-word { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-8px); } to { opacity: 1; clip-path: inset(0); transform: translateX(0); } }
@keyframes sjh-intro-curtain { from { opacity: 1; } to { opacity: 0; visibility: hidden; } }
@keyframes sjh-intro-lift { to { transform: translateY(-8px); } }
@keyframes sjh-intro-fail-open { to { opacity: 0; visibility: hidden; } }
@media (max-width: 980px) {
  .se26-family-footer .se26-footer-top { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
  .se26-family-footer .se26-footer-social { grid-column: 1 / -1; }
  .se26-family-footer .se26-footer-social nav { flex-direction: row; padding: 0; }
}
@media (max-width: 700px) {
  .se26-home .se26-hero { padding-bottom: 100px; }
  .se26-home .se26-hero .se26-hero-copy h1 { line-height: 1.08; }
  .se26-home .se26-partner-layout { grid-template-columns: 1fr; gap: 22px; }
  .se26-home .se26-partner-heading h2 { max-width: none; font-size: var(--type-h3); line-height: 1.12; }
  .se26-family-footer .se26-footer-top { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .se26-family-footer .se26-footer-identity { display: grid; grid-template-columns: 56px minmax(0,1fr); gap: 12px 20px; }
  .se26-family-footer .se26-footer-identity .se26-logo { width: 56px; height: 56px; }
  .se26-family-footer .se26-footer-identity address { margin: 0; }
  .se26-family-footer .se26-footer-copyright { grid-column: 2; margin: 0; }
  .se26-family-footer .se26-footer-explore h2 { font-size: 19px; margin-bottom: 18px; }
  .se26-family-footer .se26-footer-link-groups { gap: 20px; }
  .se26-family-footer .se26-footer-column a { font-size: 14px; }
  .sjh-family-lockup { --sjh-mark-size: clamp(26px,7.5vw,36px); --sjh-lockup-gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .sjh-family-intro { display: none; }
  .sjh-family-intro * { animation: none; }
}
