.sv-workshops .spoon-hero { padding-block: clamp(48px, 7vw, 88px) 0; }
.sv-workshops .spoon-hero h1 { font-size: clamp(54px, 6.5vw, 88px); margin-bottom: 25px; }
.sv-workshops .spoon-summary { max-width: 700px; margin-bottom: 42px; }
.sv-workshops .spoon-hero-photo img { width: 100%; height: auto; aspect-ratio: 2.35; object-fit: cover; object-position: center 58%; border-radius: var(--radius); }
.sv-workshops .spoon-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: clamp(40px, 5vw, 76px); padding-top: 72px; align-items: start; }
.sv-workshops .spoon-story { min-width: 0; }
.sv-workshops .spoon-section { margin-bottom: 75px; }
.sv-workshops .prose { max-width: none; font-size: 16px; }
.sv-workshops .spoon-summary { max-width: 700px; font-size: 17px; }
.sv-workshops .spoon-hero .eyebrow a:hover { text-decoration: underline; }
.sv-workshops .spoon-practical { margin: 0; }
.sv-workshops .spoon-practical > div { display: grid; grid-template-columns: 160px 1fr; gap: 25px; border-top: 1px solid var(--line); padding-block: 20px; font-size: 14px; }
.sv-workshops .spoon-practical dt { font-weight: 500; }
.sv-workshops .spoon-practical dd { margin: 0; color: var(--muted); }
.sv-workshops .spoon-booking { position: sticky; top: 30px; }
.sv-workshops .spoon-booking-inner { padding: 30px; background: var(--paper); border-radius: 14px; }
.sv-workshops .spoon-booking h2 { font-size: 38px; margin-bottom: 18px; }
.sv-workshops .sv-custom-workshop { margin: 22px 0 0; color: var(--muted); font-size: 14px; }
.sv-workshops .sv-custom-workshop a { color: var(--charcoal); text-decoration: underline; text-underline-offset: 3px; }
.sv-workshops .spoon-booking a:focus-visible { outline: 2px solid #93482f; outline-offset: 4px; }
.sv-workshops .sv-session { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 24px; }
.sv-workshops .sv-session-picker label { display: block; font-size: 13px; margin-bottom: 7px; }
.sv-workshops .sv-session-picker select { width: 100%; min-height: 44px; padding: 12px; color: var(--charcoal); background: var(--parchment); border: 1px solid var(--line); border-radius: 6px; font: inherit; font-size: 14px; }
.sv-workshops .sv-session-picker select:focus-visible { outline: 2px solid #93482f; outline-offset: 2px; }
.sv-workshops .sv-session-load { margin-top: 12px; }
.sv-workshops .sv-session h3 { font-size: 26px; }
.sv-workshops .sv-session dl { margin-block: 20px; }
.sv-workshops .sv-session dl > div { display: flex; justify-content: space-between; gap: 18px; padding-block: 10px; border-bottom: 1px solid var(--line); font-size: 12px; }
.sv-workshops .sv-session dd { margin: 0; text-align: right; }
.sv-workshops .sv-session dt { color: var(--muted); }
.sv-workshops .sv-remaining { color: var(--forest, #292f29); font-size: 18px; }
.sv-workshops .sv-pending-policy, .sv-workshops .sv-privacy { font-size: 12px; line-height: 1.7; }
.sv-workshops .sv-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.sv-workshops .sv-privacy a:focus-visible { outline: 2px solid var(--forest); outline-offset: 3px; }
.sv-workshops .sv-registration-form { margin-top: 24px; }
.sv-workshops .sv-registration-form label { display: block; font-size: 13px; margin-bottom: 7px; }
.sv-workshops .sv-registration-form input:not([type=hidden]), .sv-workshops .sv-registration-form textarea { width: 100%; min-height: 44px; margin-bottom: 18px; padding: 12px; background: var(--parchment); border: 1px solid var(--line); border-radius: 6px; font: inherit; font-size: 14px; color: var(--charcoal); box-sizing: border-box; }
.sv-workshops .sv-registration-form input:focus, .sv-workshops .sv-registration-form textarea:focus { outline: 2px solid #93482f; outline-offset: 2px; }
.sv-workshops .sv-register-details summary { cursor: pointer; list-style: none; }
.sv-workshops .sv-register-details summary::-webkit-details-marker { display: none; }
.sv-workshops .sv-register-details .button, .sv-workshops .sv-registration-form .button { width: 100%; }
.sv-workshops .sv-form-message { border-left: 3px solid #93482f; padding-left: 14px; font-size: 14px; }
.sv-workshops .sv-booking-receipt h3 { font: inherit; font-weight: 600; margin: 0 0 10px; }
.sv-workshops .sv-booking-receipt p { font-size: inherit; margin: 0 0 10px; }
.sv-workshops .sv-booking-receipt .sv-receipt-secondary { color: var(--muted); font-size: 12px; margin-bottom: 0; }
.sv-workshops .sv-honeypot { display: none; }
.sv-workshops .spoon-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 35px; }
.sv-workshops .spoon-gallery img { width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; border-radius: 14px; }
.sv-workshops .spoon-related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sv-workshops .sv-workshop-image { display: block; overflow: hidden; }
.sv-workshops .sv-workshop-image img { width: 100%; height: 100%; object-fit: cover; }
.sv-workshops .sv-next-date { font-size: 12px; color: var(--muted); }
.sv-workshop-archive .sv-archive-intro { margin-bottom: 42px; }
.sv-workshop-archive .sv-archive-intro h1 { font-size: clamp(44px, 5vw, 68px); margin-bottom: 28px; }
.sv-workshop-archive .sv-archive-intro .prose { margin-bottom: 0; }
.sv-workshop-archive .sv-next-date { margin: 0 0 20px; line-height: 1.8; }
.sv-workshops .sv-session-capacity { font-size: 12px; color: var(--muted); }
.sv-workshops .spoon-community { margin-bottom: 78px; }
.sv-workshops .spoon-community img, .sv-workshops .spoon-stage-photo img { width: 100%; height: auto; border-radius: 14px; }
.sv-workshops .spoon-community img { aspect-ratio: 1.7; object-fit: cover; }
.sv-workshops .spoon-stages { list-style: none; padding: 0; margin: 0; }
.sv-workshops .spoon-stages > li:not(.spoon-stage-photo) { display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 18px; padding-block: 26px; border-top: 1px solid var(--line); }
.sv-workshops .spoon-stage-number { font-size: 12px; color: #93482f; padding-top: 5px; }
.sv-workshops .spoon-stages h3 { font-size: 29px; margin-bottom: 15px; }
.sv-workshops .spoon-stages p { font-size: 15px; color: var(--muted); line-height: 1.85; margin-bottom: 0; }
.sv-workshops .spoon-stage-photo { margin-block: 22px 36px; }
.sv-workshops .spoon-faq details { border-bottom: 1px solid var(--line); padding-block: 20px; }
.sv-workshops .spoon-faq details:first-child { border-top: 1px solid var(--line); }
.sv-workshops .spoon-faq summary { cursor: pointer; font-weight: 500; font-size: 15px; }
.sv-workshops .spoon-faq p { color: var(--muted); font-size: 14px; margin: 15px 0 0; }
.sv-workshops .spoon-gallery-section { padding-top: 25px; }
.sv-workshops .spoon-invitation { text-align: center; background: var(--moss); }
.sv-workshops .spoon-faq summary:focus-visible { outline: 2px solid #93482f; outline-offset: 5px; }
.sv-workshops .workshop h2 { font-size: 23px; margin-bottom: 13px; }
.sv-workshops .workshop h2 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.sv-workshops .sv-pagination { margin-top: 55px; }
.sv-workshops .sv-pagination .page-numbers { padding: 10px; }
.sv-workshops .sv-workshop-body img { max-width: 100%; height: auto; border-radius: 14px; }
@media (max-width: 900px) { .sv-workshops .spoon-layout { grid-template-columns: minmax(0, 1.6fr) minmax(255px, 1fr); gap: 30px; } .sv-workshops .spoon-booking-inner { padding: 22px; } .sv-workshops .spoon-practical > div { grid-template-columns: 1fr; gap: 8px; } .sv-workshops .sv-catalogue { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .sv-workshops .spoon-layout { display: flex; flex-direction: column; gap: 48px; padding-top: 35px; } .sv-workshops .spoon-booking { position: static; order: -1; width: 100%; } .sv-workshops .spoon-story { width: 100%; } .sv-workshops .spoon-hero-photo img { aspect-ratio: 1.5; } .sv-workshops .spoon-summary { margin-bottom: 30px; } .sv-workshops .spoon-section { margin-bottom: 55px; } .sv-workshops .spoon-gallery { gap: 24px 16px; } .sv-workshops .spoon-related, .sv-workshops .sv-catalogue { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .sv-workshops .spoon-gallery { grid-template-columns: 1fr; } }
/* Selected-session registration: normal-flow fallback, native top-layer modal enhancement. */
html.sv-registration-open, body.sv-registration-open { overflow: hidden; }
.sv-workshops .sv-sidebar-policy { margin: 16px 0 0; color: var(--muted); }
.sv-workshops .sv-session > .button { width: 100%; }
.sv-workshops .sv-registration-panel { width: min(620px, calc(100% - 44px)); margin: 64px auto; padding: 24px 32px; background: var(--parchment); border-radius: 18px; }
.sv-workshops .sv-registration-panel > .eyebrow { margin-bottom: 10px; }
.sv-workshops .sv-registration-panel h2 { font-size: clamp(34px, 4vw, 44px); margin-bottom: 8px; overflow-wrap: anywhere; }
.sv-workshops .sv-registration-panel .sv-modal-session { color: var(--muted); font-size: 14px; margin-bottom: 16px; }
.sv-workshops .sv-registration-panel .sv-registration-form { margin-top: 0; }
.sv-workshops .sv-registration-panel .sv-registration-form > label { margin-bottom: 5px; }
.sv-workshops .sv-registration-panel .sv-registration-form > input:not([type=hidden]), .sv-workshops .sv-registration-panel .sv-registration-form > textarea { margin-bottom: 12px; padding: 10px 12px; }
.sv-workshops .sv-registration-panel .sv-registration-form > textarea { line-height: 1.5; resize: vertical; }
.sv-workshops .sv-registration-panel .sv-registration-form > .sv-pending-policy, .sv-workshops .sv-registration-panel .sv-registration-form > .sv-privacy { margin-bottom: 12px; }
.sv-workshops .sv-registration-panel .sv-registration-form > .button { width: 100%; }
.sv-workshops dialog.sv-registration-dialog { width: min(620px, calc(100% - 32px)); max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 0; border: 0; border-radius: 18px; overflow-y: auto; overscroll-behavior: contain; background: var(--parchment); color: var(--charcoal); }
.sv-workshops .sv-registration-dialog::backdrop { background: rgba(41,47,41,.45); backdrop-filter: blur(2px); }
.sv-workshops .sv-registration-dialog .sv-registration-panel { width: 100%; margin: 0; padding: 24px 32px; }
.sv-workshops .sv-modal-close { position: sticky; top: 0; z-index: 1; float: right; display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px; border-radius: 999px; background: var(--parchment); font-size: 12px; }
.sv-workshops .sv-modal-close span { font-size: 24px; line-height: 1; }
.sv-workshops .sv-validation-message { color: #74371f; border-left: 3px solid #93482f; padding-left: 14px; font-size: 14px; }
.sv-workshops .sv-dismiss-confirmation > p { margin-bottom: 18px; }
.sv-workshops .sv-dismiss-confirmation > .button { margin: 0 10px 10px 0; min-height: 44px; }
@media (max-width:640px) {
  .sv-workshops dialog.sv-registration-dialog { width: calc(100% - 16px); max-width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .sv-workshops .sv-registration-dialog .sv-registration-panel { padding: 24px 22px; }
}
