:root { --link:#cc4125; --ink:#000; --line:#e5e5e5; --hand: 'Chelsea Market', cursive; }
  *,*::before,*::after { box-sizing: border-box; }
  html, body { margin:0; padding:0; background:#fff; color: #2E8FE0; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 18px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
  img { max-width:100%; display:block; }
  a { color: var(--link); text-decoration: underline; }
  a:hover { color: #a33b1f; }
  .wrap { max-width: 980px; margin: 0 auto; padding: 0 20px; }

  /* Top bar */
  .topbar { padding: 10px 20px; display: flex; justify-content: flex-end; }
  .topbar a { display: inline-block; }
  .topbar img { width: 30px; height: 30px; }

  /* Big headline at very top */
  .megaline { text-align: center; padding: 12px 20px 24px; font-family: var(--hand); font-weight: 400; line-height: 1.05; color: #F03405; }
  .megaline .brand, .megaline .tagline { -webkit-text-stroke: 1.5px #F03405; text-shadow: 0 0 1px #F03405; }
  .megaline .brand { display: block; font-size: clamp(48px, 11vw, 121px); letter-spacing: 0.01em; margin-bottom: 14px; }
  .megaline .tagline { display: block; font-size: clamp(48px, 11vw, 121px); letter-spacing: 0.01em; margin-bottom: 18px; }
  .megaline .sub { display: block; font-family: var(--hand); font-size: clamp(32px, 7vw, 76px); color: #2E8FE0; line-height: 1.1; }

  /* Row of circular images — horizontal scroll */
  .strip {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    padding: 24px 24px 36px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }
  .strip img {
    width: 240px;
    height: 240px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    scroll-snap-align: start;
  }
  @media (max-width: 720px) {
    .strip img { width: 170px; height: 170px; }
    .strip { gap: 16px; }
  }

  /* Horizontal nav menu */
  .navbar {
    position: relative;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    align-items: stretch;
    margin: 8px 0 32px;
    background: #fff;
    gap: 3px;
  }
  .navbar::before { display: none; }
  .navbar a {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    color: #F03405;
    font-family: 'Arial Narrow', 'Helvetica Neue Condensed', Arial, sans-serif;
    font-weight: 700;
    font-stretch: condensed;
    font-size: 15px;
    letter-spacing: 0.04em;
    white-space: nowrap;
    text-transform: uppercase;
    padding: 18px 8px;
    line-height: 1.1;
    background: #F4F4F4;
  }
  .navbar a.active {
    background: #000;
    color: #fff;
  }
  .navbar a:hover:not(.active) { background: #E8E8E8; }
  @media (max-width: 720px) {
    .navbar { grid-template-columns: 1fr 1fr; }
    .navbar a { font-size: 12px; padding: 14px 6px; }
  }

  /* Section spacing */
  section { padding: 32px 0; }
  section.tight { padding: 20px 0; }

  /* Section heading style */
  h1, h2, h3 { font-family: var(--hand); font-weight: 400; color: #F03405; margin: 0 0 14px; letter-spacing: 0.01em; }
  h2.section-title { font-size: 18px; text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.3; }
  h3.sub-title { font-size: 18px; text-transform: uppercase; }
  h3.q { font-size: 18px; text-transform: uppercase; margin-top: 32px; }

  p { margin: 0 0 1em; }

  /* Logo + intro two-col */
  .logo-row {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 32px;
    align-items: center;
    padding: 32px 0;
  }
  .logo-row img { width: 180px; height: auto; }
  .logo-row .intro h2 { font-size: 37px; margin-bottom: 8px; line-height: 1.1; }
  .logo-row .intro p { margin: 0; font-size: 22px; color: #2E8FE0; }
  @media (max-width: 720px) {
    .logo-row { grid-template-columns: 1fr; text-align: center; gap: 16px; }
    .logo-row img { margin: 0 auto; width: 150px; }
  }

  /* When+photo layout */
  .when-block {
    display: grid;
    grid-template-columns: 1.7fr 1fr;
    gap: 40px;
    align-items: start;
    margin: -48px 0 24px;
  }

  /* Poster-style When/Where band */
  .when-poster {
    margin: -16px 0 56px;
    padding: 32px 0;
    border-top: 3px solid #F03405;
    border-bottom: 3px solid #F03405;
    position: relative;
  }
  .poster-top {
    display: flex;
    justify-content: center;
    align-items: baseline;
    margin-bottom: 24px;
    gap: 20px;
    flex-wrap: wrap;
  }
  .poster-top .when-label { font-family: var(--hand); font-size: 36px; color: #F03405; line-height: 1; }
  .poster-top .poster-year { font-family: var(--hand); font-size: 30px; color: #2E8FE0; line-height: 1; }
  .poster-top .poster-hours { font-family: var(--hand); font-size: 22px; color: #2E8FE0; line-height: 1; }

  .poster-sessions {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 12px;
    margin: 0 0 16px;
    text-align: center;
  }
  .poster-session {
    text-decoration: none;
    color: inherit;
    border-right: 1px dashed rgba(0,0,0,0.18);
    padding: 8px 6px;
    display: block;
    transition: transform .15s ease-out;
  }
  .poster-session:last-child { border-right: 0; }
  .poster-session:hover { transform: translateY(-4px); }
  .poster-session .big-num {
    display: block;
    font-family: var(--hand);
    font-size: clamp(64px, 9vw, 110px);
    color: #F03405;
    line-height: 0.9;
    margin-bottom: 6px;
  }
  .poster-session .date-range {
    display: block;
    font-family: var(--hand);
    font-size: clamp(20px, 2.4vw, 28px);
    color: #2E8FE0;
    white-space: nowrap;
  }

  .poster-bottom {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin-top: 8px;
  }
  .poster-circle {
    height: 280px;
    width: 280px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
  }
  .poster-where { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; text-align: center; }
  .poster-where .where-photo { display: none; }
  .poster-where .where-label { font-family: var(--hand); font-size: 30px; color: #F03405; line-height: 1; }
  .poster-where a {
    font-family: var(--hand);
    font-size: 22px;
    color: #2E8FE0;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    line-height: 1;
  }
  .poster-where a:hover { border-bottom-color: #2E8FE0; }
  .poster-where .near { font-family: var(--hand); font-size: 22px; color: #2E8FE0; line-height: 1; }
  .poster-photo {
    width: 110px;
    height: 140px;
    object-fit: cover;
    box-shadow: 2px 4px 12px rgba(0,0,0,0.18);
    flex-shrink: 0;
  }
  @media (max-width: 720px) {
    .when-poster { padding: 24px 0; }
    .poster-circle { width: 100px; height: 100px; }
    .poster-top { flex-direction: column; align-items: center; gap: 6px; }
    .poster-sessions { grid-template-columns: 1fr; gap: 6px; }
    .poster-session { border-right: 0; border-bottom: 1px dashed rgba(0,0,0,0.18); padding: 14px 6px; }
    .poster-session:last-child { border-bottom: 0; }
    .poster-bottom { flex-direction: row; align-items: center; }
  }
  .when-block .when-where {
    margin: 0;
    grid-template-columns: 1.4fr 1fr;
    gap: 32px;
    padding: 32px 36px;
    background: #F4F4F4;
    box-shadow: 2px 6px 18px rgba(0,0,0,0.10);
    border-radius: 4px;
    align-self: center;
    transform: translateY(28px);
    position: relative;
    z-index: 1;
  }
  .when-block .when-where::before { display: none; }
  .when-block .when-photo {
    border-radius: 0;
    overflow: hidden;
    box-shadow: 2px 6px 18px rgba(0,0,0,0.10);
    align-self: start;
  }
  .when-block .when-photo img {
    width: 100%;
    aspect-ratio: 3/4;
    height: auto;
    object-fit: cover;
    display: block;
  }
  @media (max-width: 720px) {
    .when-block { grid-template-columns: 1fr; gap: 24px; }
    .when-block .when-where { grid-template-columns: 1fr; gap: 24px; margin-top: 0; }
    .when-block .when-photo img { aspect-ratio: 4/3; }
  }

  /* When+Where typography — all Chelsea */
  .when-where, .when-where h2, .when-where p, .when-where a, .when-where li, .when-where span {
    font-family: var(--hand) !important;
  }
  .when-where h2 { font-weight: 400 !important; font-size: 26px !important; text-transform: none !important; letter-spacing: 0 !important; color: #F03405 !important; }
  .when-where .hours-line { font-size: 22px; white-space: nowrap; }
  .when-where .sessions-list .num { font-size: 26px; min-width: 38px; }
  .when-where .sessions-list a.range { font-size: 20px; font-weight: 400; letter-spacing: 0; white-space: nowrap; color: #2E8FE0; }
  .when-where .where-card a.address { font-size: 26px; font-weight: 400; letter-spacing: 0; color: #2E8FE0; }
  .when-where .where-card .near { font-size: 20px; }

  /* When/Where two-column block */
  .when-where {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
    padding: 40px 44px;
    background: #FAF5EB;
    border-radius: 14px;
    position: relative;
    overflow: hidden;
  }
  .when-where::before {
    content: "";
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 6px;
    background: #F03405;
  }
  .when-where h2 { font-size: 18px; text-transform: uppercase; }
  .when-where h3 { font-size: 18px; margin-bottom: 8px; }
  .when-where ul { padding-left: 0; list-style: none; margin: 8px 0; }
  .when-where ul li { margin: 4px 0; }
  @media (max-width: 720px) { .when-where { grid-template-columns: 1fr; gap: 16px; padding: 28px 24px; } }

  /* Pretty session cards */
  .hours-line {
    font-family: var(--hand);
    font-size: 26px;
    color: #2E8FE0;
    margin: 4px 0 18px;
    line-height: 1.1;
  }
  .sessions-list { list-style: none; padding: 0; margin: 0; }
  .sessions-list li {
    display: flex; align-items: baseline; gap: 14px;
    padding: 6px 0;
  }
  .sessions-list .num {
    font-family: var(--hand);
    font-size: 30px;
    color: #F03405;
    line-height: 1;
    min-width: 48px;
  }
  .sessions-list a.range {
    font-family: Arial, sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #2E8FE0;
    text-decoration: none;
    border-bottom: 2px solid transparent;
    transition: border-color .15s, color .15s;
    letter-spacing: 0.01em;
  }
  .sessions-list a.range:hover {
    color: #F03405;
    border-bottom-color: #F03405;
  }

  /* Where block */
  .where-card a.address {
    display: inline-block;
    font-family: Arial, sans-serif;
    font-weight: 700;
    font-size: 26px;
    color: #2E8FE0;
    text-decoration: none;
    line-height: 1.15;
    border-bottom: 2px solid transparent;
    transition: border-color .15s, color .15s;
  }
  .where-card a.address:hover {
    color: #F03405;
    border-bottom-color: #F03405;
  }
  .where-card .near {
    font-family: var(--hand);
    font-size: 28px;
    color: #F03405;
    line-height: 1.1;
    margin: 6px 0 0;
    display: block;
    transform: rotate(-1.5deg);
    transform-origin: left center;
  }

  /* CTA link */
  .big-link { display: inline-block; font-size: clamp(22px, 3vw, 32px); font-weight: 700; color: var(--link); text-decoration: underline; margin: 16px 0; }

  /* Centered figure with caption */
  .figure { text-align: center; margin: 24px auto; }
  .figure img { margin: 0 auto; max-width: 380px; }
  .figure .caption { font-style: italic; margin-top: 8px; font-size: 15px; }

  /* 3-photo row */
  .photo-row-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 24px 0; }
  .photo-row-3 img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
  @media (max-width: 720px) { .photo-row-3 { grid-template-columns: 1fr; } }

  /* Body 2-col layout: text left, photo stack right */
  .body-grid {
    display: grid;
    grid-template-columns: 1.9fr 1fr;
    gap: 48px;
    align-items: start;
    margin-top: 16px;
  }
  .body-text section { padding: 24px 0; }
  .body-text .big-photo { width: 100%; margin: 24px 0; }
  .body-photos {
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: sticky;
    top: 0;
  }
  .body-photos > * { width: 100%; display: block; }
  .body-photos img { height: auto; }
  .body-photos .video-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 16/9;
    background: #f0f0f0;
  }
  .body-photos .video-wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
  }
  @media (max-width: 720px) {
    .body-grid { grid-template-columns: 1fr; gap: 24px; }
    .body-photos { position: static; }
  }

  /* Big single image */
  .big-photo { width: 100%; aspect-ratio: 16/9; object-fit: cover; margin: 24px 0; }

  /* Two-col with image right */
  .split { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; align-items: center; margin: 24px 0; }
  .split img { width: 100%; }
  @media (max-width: 720px) { .split { grid-template-columns: 1fr; } }

  /* Activities lists */
  .activities { padding: 24px 0; }
  .act-block { margin: 28px 0; }
  .act-block h3 { font-size: 18px; text-transform: uppercase; margin-bottom: 6px; color: #F03405; }
  .act-block .sub-line { font-style: italic; margin-bottom: 12px; color: #444; }
  .act-block ul { padding-left: 22px; margin: 0; }
  .act-block ul li { margin: 4px 0; }

  /* Testimonial */
  .testimonial { padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .testimonial h3 { font-size: 18px; text-transform: uppercase; margin-bottom: 16px; }
  .testimonial .quote { font-size: 17px; line-height: 1.6; max-width: 720px; margin: 0 auto 12px; }
  .testimonial .author { text-align: left; max-width: 720px; margin: 0 auto; font-style: italic; }
  .testimonial-photos { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 24px; }
  .testimonial-photos img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
  @media (max-width: 720px) { .testimonial-photos { grid-template-columns: repeat(2, 1fr); } }

  /* Testimonial in side column, in red */
  .testimonial-side { padding: 24px 0 12px; color: #F03405; }
  .testimonial-side h3 { font-family: var(--hand); font-weight: 400; font-size: 32px; color: #F03405; margin: 0 0 14px; letter-spacing: 0.01em; }
  .testimonial-side .quote { font-size: 15px; line-height: 1.55; color: #F03405; margin: 0 0 14px; font-style: italic; }
  .testimonial-side .author { font-family: 'Arial Narrow', Arial, sans-serif; font-size: 13px; color: #F03405; margin: 0; font-weight: 700; letter-spacing: 0.02em; }

  /* Contact form */
  .contact { padding: 24px 0; }
  .contact h2 { font-size: 18px; }
  .contact form { max-width: 560px; margin: 16px 0; }
  .contact label { display: block; font-size: 14px; margin: 12px 0 4px; }
  .contact input, .contact textarea {
    width: 100%; padding: 8px 10px; border: 1px solid #ccc; font: inherit; background: #fff;
  }
  .contact textarea { min-height: 100px; resize: vertical; }
  .contact button {
    margin-top: 14px; padding: 9px 22px; background: #000; color: #fff;
    border: 0; font: inherit; cursor: pointer; text-transform: lowercase; letter-spacing: 0.04em;
  }
  .contact button:hover { background: #333; }
  .contact .success { display: none; padding: 10px 14px; background: #f3f3f3; border: 1px solid #ddd; margin-top: 12px; font-size: 14px; }
  .contact .success.show { display: block; }

  .bottom-photo { width: 100%; height: auto; max-height: 560px; object-fit: cover; margin: 32px 0 0; }

  /* Footer nav */
  .site-footer, body > footer { padding: 32px 20px 60px; border-top: 1px solid var(--line); margin-top: 40px; }
  .site-footer ul, body > footer ul { list-style: none; padding: 0; margin: 0; display: flex; gap: 24px; flex-wrap: wrap; justify-content: center; font-size: 14px; }
  .site-footer ul a, body > footer ul a { color: #000; text-decoration: none; text-transform: uppercase; letter-spacing: 0.06em; }
  .site-footer ul a:hover, body > footer ul a:hover { color: var(--link); }
  .site-footer .more, body > footer .more { text-align: center; margin-top: 16px; font-size: 13px; color: #666; }