/* Build 2: isolated content typography; no carousel or image sizing rules. */
.intro-copy { color: #bec1b4; font-size: 1rem; line-height: 1.45; }
.intro-copy p { margin-bottom: 24px; }
.intro-copy p:last-child { margin-bottom: 0; }
.session-summary { margin-top: 24px; color: var(--muted); }
.studio-note { margin-top: 24px; }
@media (min-width: 768px) {
  .intro-copy, .content-copy { font-size: 1.2rem; line-height: 1.55; }
  .intro-copy, .content-copy { max-width: 65ch; }
  .hero-copy .lead { font-size: clamp(1.08rem, 1.44vw, 1.44rem); }
  .hero-copy .dates { font-size: .96rem; }
  .hero-copy > p:has([data-price]) { font-size: 1.032rem; }
  .hero-copy .small { font-size: .912rem; }
  .hero-copy > .small { margin-bottom: 10px; }
  .sessions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session { padding: 28px 28px 40px; }
  .session:nth-child(odd) { padding-left: 0; border-left: 0; }
  .session:nth-child(n+3) { border-top: 1px solid var(--line); }
  .session h3 { font-size: 1.32rem; line-height: 1.25; }
  .session .date { font-size: .936rem; line-height: 1.5; }
  .session .eyebrow { font-size: .84rem; }
  .session .small, .session-summary { font-size: .912rem; }
  .session p:last-child { font-size: 1.02rem; line-height: 1.55; max-width: 48ch; }
  .take-home h2, .instructor h2, .details h2, .contact h2 { font-size: 1.44rem; }
  .instructor-name { font-size: 1.32rem; }
  .instructor-works-label { font-size: .912rem; }
  .details li, .contact > div > p:last-child { font-size: 1.02rem; line-height: 1.55; }
  .details .price, .details [data-location] { font-size: 1.2rem; }
  .details .eyebrow, .contact .eyebrow { font-size: .84rem; }
  .studio-note, .form-status, .reservation .small { font-size: .912rem; }
  .field label { font-size: .9rem; }
  .field label span { font-size: .84rem; }
  .field input, .field textarea { font-size: 1.2rem; }
  footer { font-size: .78rem; }
}
@media (max-width: 767px) {
  .intro-copy { font-size: 2rem; line-height: 1.45; }
}
/* Source component skin preserves the existing rectangular control geometry. */
.button[data-lego="rising-button"] {
  --lego-rb-fill: var(--workshop-accent); --lego-rb-fill-text: #10120f; --lego-rb-text: #151712;
  --lego-rb-bg: var(--paper); --lego-rb-border: var(--workshop-accent); --lego-rb-focus: var(--paper);
  --lego-rb-radius: 0; --lego-rb-height: auto; --lego-rb-padding: 14px 20px;
  background-color: var(--lego-rb-bg); gap: 20px; font-family: inherit;
  font-size: .72rem; font-weight: 700; letter-spacing: normal; line-height: 1.45;
}
.button.secondary[data-lego="rising-button"] { --lego-rb-fill: #d6d0c2; --lego-rb-border: #606457; }
.button .action-arrow { position: relative; z-index: 2; }
.button[data-lego="rising-button"]:focus-visible .lego-rb__fill { height: 100%; }
.button[data-lego="rising-button"]:focus-visible { color: var(--lego-rb-fill-text); }
.details [data-lego="underline-link"] { cursor: default; max-width: 100%; }
.details [data-lego="underline-link"]:focus-visible::before { transform-origin: left; transform: scaleX(1) rotate(0.001deg); }
@media (max-width: 767px) {
  .button[data-lego="rising-button"] { --lego-rb-padding: 16px 18px; gap: 12px; font-size: 1.15rem; line-height: 1.35; }
}
/* Exact Tombolo styles.css touch-state bridge; motion lives in the copied CSS. */
@media (hover: none) {
  [data-build2-interaction][data-lego="underline-link"]::before { transform-origin: left; }
  [data-build2-interaction][data-lego="underline-link"].is-touch-in::before { transform: scaleX(1) rotate(0.001deg); }
  [data-build2-interaction][data-lego="rising-button"].is-touch-in .lego-rb__fill { height: 100%; }
  [data-build2-interaction][data-lego="rising-button"].is-touch-in { color: var(--lego-rb-fill-text); }
}
