/* Carnaby & Oak — One public-site typography and alignment system.
   This sheet is deliberately loaded LAST on all eight pages, after individual
   page styles. It does not style navigation, interactive controls, photos,
   scripts or admin.  No redesign or font substitution. */
body.compact-rhythm {
  --co-hero: clamp(76px, 8.4vw, 120px);
  --co-section-title: clamp(46px, 5.2vw, 75px);
  --co-card-title: clamp(32px, 3vw, 43px);
  --co-paragraph: 16px;
  --co-small-copy: 14px;
  --co-line: 1.48;
  --co-text-measure: 620px;
  --co-section-space: clamp(40px, 3vw, 48px);
  --co-title-to-body: 16px;
  --co-eyebrow-to-title: 10px;
  --co-head-to-content: 28px;
}
/* Standard brand font hierarchy. Distinct roles, identical styles in each role. */
body.compact-rhythm main :is(h1,h2,h3) {
  font-family: 'Instrument Serif', serif;
  font-weight: 400;
  text-align: left;
  font-style: normal;
}
body.compact-rhythm main :is(.hero h1,.page-hero h1,.classes-colour-inner h1,.whats-latest-copy h1,.birthday-landing-copy h1) {
  font-family:'Instrument Serif',serif !important;
  font-size:var(--co-hero) !important;
  line-height:.85 !important;
  font-weight:400 !important;
  letter-spacing:-.05em !important;
  text-align:left !important;
  margin:0 0 var(--co-title-to-body) !important;
  max-width:920px;
}
body.compact-rhythm main :is(.section-title,.hour-title,.play-worlds-head h2,.play-games-head h2,.class-worlds-intro h2,.class-faq-head h2,.whatson-section-head h2,.whatson-split-head h2,.parlor-hours h2,.join-section-head h2,.site-faq-head h2,.join-copy h2,.enquiry-copy h2,.membership-feature-copy h2,.club-split-copy h2,.class-host-copy h1,.birthday-details-head h2,.birthday-final-inner h2) {
  font-family:'Instrument Serif',serif !important;
  font-size:var(--co-section-title) !important;
  font-weight:400 !important;
  line-height:.91 !important;
  letter-spacing:-.044em !important;
  text-align:left !important;
  margin:0 !important;
  max-width:980px;
}
/* One treatment for all handwriting inside editorial headings: no surprise
   font sizes, left shifts, different rotations or incompatible weights. */
body.compact-rhythm main :is(h1,h2,h3) :is(.hand,span.co-hand),
body.compact-rhythm main :is(.join-copy h2,.classes-colour-inner h1) > span {
  font-family:'Gochi Hand',cursive !important;
  font-size:.52em !important;
  line-height:1.08 !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  font-style:normal !important;
  display:inline-block !important;
  vertical-align:baseline;
  text-align:left !important;
  margin-left:0 !important;
  transform:rotate(-2deg) !important;
  text-transform:none !important;
}
body.compact-rhythm main :is(.hero h1,.page-hero h1,.birthday-landing-copy h1) .hand {
  display:block !important;
  margin-left:0 !important;
}
body.compact-rhythm main :is(.hero h1,.page-hero h1,.birthday-landing-copy h1) {
  overflow:visible;
}
/* Eyebrows, supporting copy and text measure are consistent site wide. */
body.compact-rhythm main :is(.eyebrow,.kicker) {
  font-family:'DM Sans',Arial,sans-serif !important;
  font-size:10px !important;
  font-weight:600 !important;
  line-height:1.35 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase;
  text-align:left !important;
  padding:0 !important;
  margin:0 !important;
}
body.compact-rhythm main :is(.hero-lead,.page-hero > p,.classes-colour-inner > p,.whats-latest-copy > p,.birthday-landing-copy > p,.section-copy,.play-worlds-head > p,.play-games-intro,.whatson-section-head p,.join-section-head p,.site-faq-head p,.membership-feature-copy > p,.club-split-copy > p,.enquiry-copy > p,.join-copy > p,.class-host-copy > p,.parlor-hours-list > p) {
  font-family:'DM Sans',Arial,sans-serif !important;
  font-size:var(--co-paragraph) !important;
  font-weight:400 !important;
  line-height:var(--co-line) !important;
  letter-spacing:0 !important;
  text-align:left !important;
  max-width:var(--co-text-measure) !important;
  margin:var(--co-title-to-body) 0 0 !important;
  width:auto;
}
/* Consistent left gutter and consistent top/bottom section spacing. */
body.compact-rhythm main > .section {
  padding-left:var(--pad) !important;
  padding-right:var(--pad) !important;
  padding-top:var(--co-section-space) !important;
  padding-bottom:var(--co-section-space) !important;
}
body.compact-rhythm main :is(.classes-colour-intro,.whats-latest-hero,.birthday-landing-hero) {
  padding-left:var(--pad) !important;
  padding-right:var(--pad) !important;
}
body.compact-rhythm main :is(.section-head,.whatson-section-head,.whatson-split-head,.join-section-head,.class-faq-head,.site-faq-head,.birthday-details-head) {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:var(--co-eyebrow-to-title) !important;
  text-align:left !important;
  margin:0 0 var(--co-head-to-content) !important;
  width:100%;
  min-width:0;
}
body.compact-rhythm main :is(.section-head,.whatson-section-head,.whatson-split-head,.join-section-head,.class-faq-head,.site-faq-head,.birthday-details-head) > div {
  width:100%;
  min-width:0;
  text-align:left !important;
}
body.compact-rhythm main .section-head .section-copy,
body.compact-rhythm main :is(.whatson-section-head,.join-section-head,.site-faq-head) p {
  margin:var(--co-title-to-body) 0 0 !important;
}
/* Sections that previously placed heading at 28–35% across the page. */
body.compact-rhythm main .play-worlds-head {
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:'heading controls' 'description controls' !important;
  column-gap:24px !important;
  row-gap:var(--co-title-to-body) !important;
  align-items:start !important;
  justify-content:start !important;
  margin:0 0 var(--co-head-to-content) !important;
  text-align:left !important;
}
body.compact-rhythm main .play-worlds-head > div:first-child {grid-area:heading;min-width:0}
body.compact-rhythm main .play-worlds-head > p {grid-area:description;margin:0 !important}
body.compact-rhythm main .play-worlds-head > .play-worlds-toolbar {grid-area:controls;align-self:end}
body.compact-rhythm main .play-games-head {text-align:left !important}
body.compact-rhythm main .play-games-head > div:first-child {text-align:left !important}
body.compact-rhythm main .play-games-head .play-games-intro {margin-top:var(--co-title-to-body) !important}
body.compact-rhythm main .class-worlds-intro {margin-bottom:var(--co-head-to-content) !important;min-height:0 !important}
body.compact-rhythm main .class-worlds-intro > div:first-child {text-align:left !important}
body.compact-rhythm main .class-faq-list {margin-left:0 !important}
body.compact-rhythm main .parlor-hours {align-items:start}
body.compact-rhythm main .parlor-hours h2 {margin-top:0 !important}
body.compact-rhythm main .whats-new-section .whatson-new-grid {margin-left:0 !important;width:100%}
body.compact-rhythm main .birthday-final-inner {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:var(--co-eyebrow-to-title) !important;
  text-align:left !important;
}
body.compact-rhythm main .birthday-final-inner a {align-self:flex-start}
/* The home clock heading is now its own intro above the interactive clock,
   rather than a tiny right-aligned label inside the clock storytelling column. */
body.compact-rhythm main #everyday-carnaby .hour-intro {
  display:block;
  width:100%;
  margin:0 0 var(--co-head-to-content) !important;
  text-align:left;
}
body.compact-rhythm main #everyday-carnaby .hour-intro .hour-title {
  position:static !important;
  inset:auto !important;
  display:block;
  width:auto !important;
  max-width:980px !important;
  text-align:left !important;
  margin:0 !important;
}
body.compact-rhythm main #everyday-carnaby .hour-layout {min-height:0}
/* Closing membership panels and editorial cards have the same heading/body
   spacing even though their coloured backgrounds and image layouts differ. */
body.compact-rhythm main :is(.join-copy,.club-split-copy,.enquiry-copy,.membership-feature-copy,.class-host-copy) {
  text-align:left !important;
}
body.compact-rhythm main :is(.join-copy,.club-split-copy,.enquiry-copy,.membership-feature-copy,.class-host-copy) > .eyebrow {
  display:block;
  margin-bottom:var(--co-eyebrow-to-title) !important;
}
body.compact-rhythm main :is(.story-block h2,.whatson-new-card h3,.club-card h3,.birthday-detail-grid h3,.why-carnaby-card h3,.class-world-copy h3,.play-world-copy h3,.play-game-card h3) {
  font-family:'Instrument Serif',serif !important;
  font-size:var(--co-card-title) !important;
  font-weight:400 !important;
  letter-spacing:-.035em !important;
  line-height:1.02 !important;
  text-align:left !important;
}
body.compact-rhythm main :is(.story-block p,.whatson-new-card p,.club-card p,.birthday-detail-grid p,.why-carnaby-card p,.class-world-copy p:not(.class-world-punch),.play-world-copy p,.play-game-card p) {
  font-family:'DM Sans',Arial,sans-serif !important;
  font-size:var(--co-small-copy) !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  line-height:var(--co-line) !important;
  text-align:left !important;
  max-width:var(--co-text-measure) !important;
}
body.compact-rhythm main .class-world-copy {text-align:left !important}
body.compact-rhythm main .class-world-copy > :is(h3,p) {text-align:left !important}
body.compact-rhythm main .story-block > h2 {margin:12px 0 !important}
body.compact-rhythm main :is(.whatson-new-card,.club-card-copy,.birthday-detail-grid article,.why-carnaby-card) h3 {margin-top:12px !important;margin-bottom:10px !important}
body.compact-rhythm main .class-form-top h2 {
  font-family:'Instrument Serif',serif !important;
  font-weight:400 !important;
  font-size:var(--co-card-title) !important;
  line-height:1.02 !important;
  letter-spacing:-.035em !important;
  text-align:left !important;
}
/* Identical pull quote typography and Gochi proportions for repeated panels. */
body.compact-rhythm main .pull {padding:var(--co-section-space) var(--pad) !important}
body.compact-rhythm main .pull p {
  font-family:'Instrument Serif',serif !important;
  font-size:clamp(44px,5.3vw,74px) !important;
  font-weight:400 !important;
  line-height:.98 !important;
  letter-spacing:-.043em !important;
  text-align:left !important;
  max-width:1180px;
}
body.compact-rhythm main .pull p .hand {
  font-family:'Gochi Hand',cursive !important;
  font-weight:400 !important;
  font-size:.52em !important;
  letter-spacing:0 !important;
  line-height:1.08 !important;
}
/* On desktops every class card puts its copy in the same first column. */
@media(min-width:1081px) {
  body.compact-rhythm main .class-worlds .class-world:nth-child(even) .class-world-copy {order:0 !important}
  body.compact-rhythm main .class-worlds .class-world:nth-child(even) .class-world-play {order:1 !important}
  body.compact-rhythm main .class-worlds .class-world:nth-child(even) {grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important}
}
@media(max-width:760px) {
  body.compact-rhythm {
    --co-hero:clamp(62px,16vw,82px);
    --co-section-title:clamp(42px,10.8vw,56px);
    --co-card-title:clamp(29px,8vw,36px);
    --co-paragraph:15px;
    --co-small-copy:13px;
    --co-section-space:40px;
    --co-head-to-content:22px;
    --co-title-to-body:14px;
    --co-eyebrow-to-title:8px;
  }
  body.compact-rhythm main .play-worlds-head {
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-areas:'heading' 'description' 'controls' !important;
    row-gap:var(--co-title-to-body) !important;
  }
  body.compact-rhythm main .play-worlds-head > .play-worlds-toolbar {justify-self:start;align-self:start}
  body.compact-rhythm main :is(.hero h1,.page-hero h1,.classes-colour-inner h1,.whats-latest-copy h1,.birthday-landing-copy h1) {max-width:100%;}
  body.compact-rhythm main :is(.classes-colour-inner,.whats-latest-copy,.birthday-landing-copy) {text-align:left !important}
  body.compact-rhythm main .classes-colour-inner {display:flex;flex-direction:column;align-items:flex-start;gap:0}
  body.compact-rhythm main .class-worlds .class-world-copy {text-align:left !important}
  body.compact-rhythm main .birthday-final-inner {align-items:flex-start !important}
}
/* Audit corrections for late legacy rules carrying !important and IDs. */
body.compact-rhythm main .classes-colour-inner {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  gap:0 !important;
  text-align:left !important;
}
body.compact-rhythm main .classes-colour-inner > p {
  align-self:flex-start !important;
  margin:var(--co-title-to-body) 0 0 !important;
  max-width:var(--co-text-measure) !important;
  width:100% !important;
}
body.compact-rhythm main #everyday-carnaby.hour-section {
  padding-left:var(--pad) !important;
  padding-right:var(--pad) !important;
  padding-top:var(--co-section-space) !important;
  padding-bottom:var(--co-section-space) !important;
}
body.compact-rhythm main #everyday-carnaby .hour-intro h2.hour-title {
  font-family:'Instrument Serif',serif !important;
  font-size:var(--co-section-title) !important;
  font-weight:400 !important;
  line-height:.91 !important;
  letter-spacing:-.044em !important;
  text-align:left !important;
  width:100% !important;
  max-width:980px !important;
  margin:0 !important;
  align-self:flex-start !important;
  order:initial !important;
}
body.compact-rhythm main #everyday-carnaby .hour-intro h2.hour-title .hand {
  font-size:.52em !important;
  margin:0 !important;
  line-height:1.08 !important;
}
/* The Play intro has numerous old desktop and mobile inline grid rules.
   Explicitly put *both lines of editorial copy* in column one. */
@media(min-width:761px) {
  body.compact-rhythm main .play-worlds-head > div:first-child {
    grid-area:auto!important;grid-column:1!important;grid-row:1!important;
    width:100%!important;
  }
  body.compact-rhythm main .play-worlds-head > p {
    grid-area:auto!important;grid-column:1!important;grid-row:2!important;
    justify-self:start!important;align-self:start!important;
    margin:0!important;max-width:var(--co-text-measure)!important;
  }
  body.compact-rhythm main .play-worlds-head > .play-worlds-toolbar {
    grid-area:auto!important;grid-column:2!important;grid-row:1/3!important;
  }
}
@media(max-width:760px) {
  body.compact-rhythm main .play-worlds-head {
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:var(--co-title-to-body)!important;
    padding:0!important;
    width:100%!important;
  }
  body.compact-rhythm main .play-worlds-head > div:first-child,
  body.compact-rhythm main .play-worlds-head > p {
    width:100%!important;grid-column:auto!important;grid-row:auto!important;
    justify-self:start!important;align-self:flex-start!important;
    margin:0!important;max-width:var(--co-text-measure)!important;
  }
  body.compact-rhythm main .play-worlds-head > .play-worlds-toolbar {
    grid-column:auto!important;grid-row:auto!important;
    justify-content:flex-end!important;align-self:flex-end!important;
    margin:0!important;
  }
  body.compact-rhythm main #everyday-carnaby .hour-intro h2.hour-title {
    position:static!important;
    margin:0!important;
    font-size:var(--co-section-title)!important;
  }
}
/* Prevent browser-simulated bold/italic handwriting across pages. */
body.compact-rhythm :is(.hand,.hero-scribble,.hero-note,.birthday-note,.enquiry-note,.class-world-punch,.class-world-tip,.club-sticker,.event-note,.diary-note) {
  font-family:'Gochi Hand',cursive !important;
  font-weight:400 !important;
  font-synthesis:none !important;
  letter-spacing:0 !important;
}
