/* Karmacoma shares the service-page layout, with a readable photographic opening. */
.karmacoma-page .bodywork-hero{color:#fff4df}
.karmacoma-page .hero-picture{z-index:0}
.karmacoma-page .bodywork-hero::before{z-index:1;background:linear-gradient(180deg,rgba(22,27,24,.72),rgba(22,27,24,.64) 120px,transparent 42%),linear-gradient(90deg,rgba(22,27,24,.76),rgba(22,27,24,.70) 56%,rgba(22,27,24,.08) 88%)}
.karmacoma-page .hero-copy{z-index:2}
.karmacoma-page .hero-picture img{object-position:58% 55%}
.karmacoma-page .hero-copy .eyebrow{color:#fff4df;max-width:440px}
.karmacoma-page .hero-copy .button{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.karmacoma-page .hero-copy .button .icon{filter:none}
.karmacoma-page .hero-copy .button:hover{background:#fff;border-color:#fff}
.karmacoma-page #site-header:not(.is-docked):not(.menu-open){color:#fff4df}
.karmacoma-page #site-header:not(.is-docked):not(.menu-open) .nav-contact{background:rgba(244,239,225,.12);border-color:rgba(244,239,225,.75);color:#fff4df}
.karmacoma-page #site-header:not(.is-docked):not(.menu-open) .nav-contact:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.karmacoma-page #site-header:not(.is-docked):not(.menu-open) .menu-toggle .icon{filter:invert(1)}
.karmacoma-page #site-header:not(.is-docked):not(.menu-open) :focus-visible{outline-color:#fff4df}
.karmacoma-page .hero-copy :focus-visible{outline-color:#fff4df}
.karmacoma-page .karmacoma-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}
.karmacoma-page .karmacoma-about{grid-template-columns:repeat(2,minmax(0,1fr))}
.karmacoma-page .karmacoma-pace{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);row-gap:var(--space-4)}
.karmacoma-page .karmacoma-atmosphere{width:100%;min-width:0;padding:0;align-self:stretch}
.karmacoma-page .karmacoma-atmosphere picture{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius-media)}
.karmacoma-page .karmacoma-atmosphere img{display:block;width:100%;height:auto;aspect-ratio:3/2}
.karmacoma-page .karmacoma-intro-photo{max-width:460px;align-self:center;justify-self:end;margin-top:clamp(32px,6vw,88px)}
.karmacoma-page .karmacoma-about-photo{width:calc(100% - var(--space-4));margin-top:var(--space-5)}
.karmacoma-page .karmacoma-pace .session-heading{grid-column:2;grid-row:1}
.karmacoma-page .karmacoma-pace .session-copy{grid-column:2;grid-row:2}
.karmacoma-page .karmacoma-pace-photo{grid-column:1;grid-row:1/3;width:calc(100% - var(--space-4));align-self:center;justify-self:start;margin-top:var(--space-5)}
.karmacoma-page .facilitator-portrait{display:block;width:100%;height:auto;aspect-ratio:3/2;max-width:600px;margin:0 0 var(--space-4);border-radius:var(--radius-media)}
/* A quiet, three-step registration using the shared service-page form tokens. */
.karmacoma-page .practical-facts .signup-date-link{display:flex;width:fit-content;max-width:100%;gap:var(--space-1);margin-top:var(--space-4);padding:12px 16px;font-size:var(--type-small);letter-spacing:0}
.karmacoma-page .signup-date-link .icon{width:18px;height:18px}
#registration-form{scroll-margin-top:16px;box-shadow:0 12px 40px rgba(20,46,80,.035)}
.contact[data-forms-pending]{grid-template-columns:minmax(0,1fr)}
.contact[data-forms-pending] .contact-intro{max-width:720px}
#registration-pending-copy{overflow-wrap:anywhere}
#registration-form[hidden],#registration-help[hidden],#registration-pending-copy[hidden],#registration-faq-active[hidden],#registration-faq-pending[hidden],#registration-faq-active-link[hidden]{display:none!important}
#registration-faq-pending{overflow-wrap:anywhere}
#registration-form [hidden]{display:none!important}
#registration-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:0 0 var(--space-5);margin:0 0 var(--space-5);border-bottom:1px solid rgba(20,46,80,.12);list-style:none}
#registration-progress li{position:relative;min-width:0}
#registration-progress li:not(:last-child)::after{content:"";position:absolute;top:15px;left:calc(50% + 24px);right:calc(-50% + 12px);height:1px;background:var(--line)}
#registration-progress button{position:relative;z-index:1;display:grid;justify-items:center;gap:var(--space-1);width:100%;min-height:60px;padding:0;color:var(--ink);font-size:var(--type-caption);line-height:1.4;text-align:center}
.registration-progress-number{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:12px;line-height:1;transition:background .2s,border-color .2s,color .2s}
.registration-progress-label{min-width:0;overflow-wrap:anywhere}
#registration-progress button:disabled{cursor:default;color:var(--muted)}
#registration-progress button:disabled .registration-progress-number{background:var(--panel);color:var(--muted)}
#registration-progress [aria-current="step"] .registration-progress-number{border-color:var(--ink);background:var(--ink);color:var(--surface)}
#registration-progress [aria-current="step"] .registration-progress-label{color:var(--ink);font-weight:500}
#registration-progress button:not(:disabled):not([aria-current="step"]):hover .registration-progress-number{border-color:var(--copper);color:var(--copper)}
#registration-progress button:focus-visible{border-radius:var(--radius-field);outline:2px solid var(--copper);outline-offset:5px}
.registration-step-count{margin:0 0 var(--space-2);color:var(--copper);font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.1em;text-transform:uppercase}
.registration-step{min-width:0}
.registration-step+.registration-step{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--line)}
#registration-form[data-current-step] .registration-step{margin-top:0;padding-top:0;border-top:0}
.registration-step-title{font-size:32px;line-height:1.12;letter-spacing:-.025em;outline-offset:6px}
.registration-step-intro{margin:var(--space-2) 0 var(--space-4);max-width:42ch;color:var(--muted);font-size:var(--type-small);line-height:1.75}
.registration-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);min-width:0;margin:0;padding:0;border:0}
.registration-dates legend{float:left;width:100%;padding:0;margin:0 0 var(--space-3);font-size:var(--type-small);font-weight:500;line-height:1.5}
.registration-dates legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.registration-dates legend+*{clear:both}
.registration-date-option{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 18px;grid-template-rows:auto auto auto 1fr;align-content:start;column-gap:var(--space-1);min-width:0;margin:0;padding:18px 16px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);color:var(--ink);font-weight:400;line-height:1.5;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s}
.registration-date-option:hover{border-color:var(--mineral);background:var(--panel)}
.registration-date-option:has(input:checked){border-color:var(--ink);background:#eef1ef;box-shadow:inset 0 0 0 1px var(--ink)}
#registration-form .registration-date-option input[type="radio"]{grid-column:2;grid-row:1;align-self:center;flex:none;width:18px;height:18px;margin:0;padding:0;border:0;background:transparent;accent-color:var(--ink)}
.registration-date-weekday{grid-column:1;grid-row:1;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:.045em;text-transform:uppercase}
.registration-date-number{grid-column:1/-1;grid-row:2;margin-top:var(--space-2);font:400 54px/.95 var(--serif);letter-spacing:-.045em}
.registration-date-month{grid-column:1/-1;grid-row:3;margin-top:4px;font-size:var(--type-small);font-weight:500;line-height:1.5}
.registration-date-meta{grid-column:1/-1;grid-row:4;margin-top:var(--space-2);color:var(--muted);font-size:11px;line-height:1.6}
.registration-date-option:focus-within{outline:2px solid var(--copper);outline-offset:4px}
.registration-step-note{margin-top:var(--space-3);color:var(--muted);font-size:12px;line-height:1.7}
.field-optional{color:var(--muted);font:400 var(--type-caption)/1.5 var(--sans)}
#registration-help a,.registration-fallback p a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
#registration-form .form-field:last-child{margin-bottom:0}
.registration-invoice{min-width:0;margin:var(--space-5) 0 var(--space-4);padding-top:var(--space-4);border-top:1px solid rgba(20,46,80,.12)}
.registration-invoice h4{font-family:var(--sans);font-size:var(--type-body);font-weight:500;line-height:1.5}
.registration-invoice-toggle{display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:52px;margin:var(--space-2) 0 0;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-field);background:var(--surface);color:var(--ink);font-size:var(--type-small);line-height:1.5;cursor:pointer}
.registration-invoice-toggle:hover{border-color:var(--mineral);background:var(--panel)}
.registration-invoice-toggle:has(input:checked){border-color:var(--ink);background:#eef1ef}
.registration-invoice-toggle:focus-within{outline:2px solid var(--copper);outline-offset:4px}
#registration-form .registration-invoice-toggle input[type="checkbox"]{flex:none;width:20px;height:20px;margin:0;padding:0;border:0;border-radius:3px;background:transparent;accent-color:var(--ink)}
.registration-invoice-toggle span{min-width:0;overflow-wrap:anywhere}
#registration-invoice-fields{min-width:0;margin-top:var(--space-3)}
#registration-invoice-fields>p{margin:0 0 var(--space-3);color:var(--muted);font-size:var(--type-small);line-height:1.7;overflow-wrap:anywhere}
.registration-invoice .form-field:last-child{margin-bottom:0}
#registration-message{min-height:112px}
.registration-review{margin-top:var(--space-4)}
.registration-review>div{min-width:0;padding-block:var(--space-3);border-bottom:1px solid rgba(20,46,80,.12)}
.registration-review>div:first-child{padding-top:0}
.registration-review dt{margin-bottom:4px;color:var(--muted);font-size:12px;line-height:1.6}
.registration-review dd{color:var(--ink);font-size:var(--type-body);line-height:1.65;overflow-wrap:anywhere;white-space:pre-line}
.registration-review .registration-review-subline{margin-top:4px;color:var(--muted);font-size:var(--type-caption);line-height:1.7}
.registration-edit{display:inline-flex;align-items:center;min-height:44px;margin:var(--space-1) var(--space-3) 0 0;padding:0;color:var(--ink);font-size:var(--type-caption);line-height:1.5;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.registration-edit:hover{color:var(--copper)}
.registration-review-delivery{margin-top:var(--space-3);padding:var(--space-3);border-radius:var(--radius-field);background:var(--panel);color:var(--muted);font-size:var(--type-small);line-height:1.7}
.registration-review-delivery p+p{margin-top:var(--space-2)}
.registration-review-delivery a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.registration-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid rgba(20,46,80,.12)}
.registration-back{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:48px;padding:8px 4px;color:var(--muted);font-size:var(--type-small);line-height:1.5}
.registration-back .icon{width:18px;height:18px;transform:rotate(180deg)}
.registration-back:hover{color:var(--ink)}
#registration-next{margin-left:auto}
#registration-actions .button{min-width:0;max-width:100%;padding-inline:20px;text-align:center}
#submit-registration{flex:1 1 100%;width:100%}
.form-sent{display:grid;justify-items:start;align-content:center;gap:var(--space-3);min-width:0;min-height:310px;padding:clamp(24px,5vw,48px);border:1px solid var(--line);border-radius:var(--radius-field);background:var(--panel);animation:karmacoma-sent-enter .45s ease-out both}
.form-sent-mark{display:block;width:80px;height:80px;max-width:100%;margin-bottom:var(--space-2)}
.form-sent-mark circle{stroke:var(--copper);stroke-width:2;stroke-dasharray:189;animation:karmacoma-sent-ring .7s ease-out both}
.form-sent-mark path{stroke:var(--ink);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:42;animation:karmacoma-sent-check .4s .55s ease-out both}
.form-sent-title{font-size:var(--type-subheading);line-height:1.15;overflow-wrap:anywhere}
.form-sent p{max-width:42ch;color:var(--muted);font-size:var(--type-small);line-height:1.7;overflow-wrap:anywhere}
#registration-form[data-sent="true"] #registration-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes karmacoma-sent-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes karmacoma-sent-ring{from{stroke-dashoffset:189}to{stroke-dashoffset:0}}
@keyframes karmacoma-sent-check{from{stroke-dashoffset:42}to{stroke-dashoffset:0}}
.registration-fallback{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line)}
.registration-fallback>p{margin-bottom:var(--space-3);font-size:var(--type-small);line-height:1.7;color:var(--muted)}
#registration-copy{min-height:180px;font-size:var(--type-small);line-height:1.65}
.registration-fallback-actions{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);font-size:var(--type-small)}
.karmacoma-page .footer-location>a[href^="mailto:"]{overflow-wrap:anywhere}
@media(max-width:540px){
  #registration-progress{gap:var(--space-1);padding-bottom:var(--space-4);margin-bottom:var(--space-4)}
  #registration-progress button{font-size:12px}
  .registration-step-title{font-size:30px}
  .registration-date-option{padding:16px 12px}
  .registration-date-number{font-size:50px}
  #registration-actions .button{padding-inline:16px}
}
@media(max-width:360px){.registration-dates{gap:var(--space-1)}.registration-date-option{column-gap:4px;padding-inline:10px}.registration-date-weekday{font-size:10px}.registration-date-meta{font-size:10px}.registration-progress-label{font-size:11px}}
@media(max-width:540px){.form-sent{min-height:260px;padding:var(--space-4)}.form-sent-mark{width:68px;height:68px}}
@media(prefers-reduced-motion:reduce){.registration-progress-number,.registration-date-option{transition:none}.form-sent,.form-sent-mark circle,.form-sent-mark path{animation:none}}
body.reduced-motion .form-sent,body.reduced-motion .form-sent-mark circle,body.reduced-motion .form-sent-mark path{animation:none}
/* Three stops along one quiet, winding route; the original copy stays readable. */
.karmacoma-page .day-journey{border-top:1px solid var(--line);padding-block:var(--section-space)}
.karmacoma-page .day-journey-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--section-gap);align-items:start}
.karmacoma-page .day-journey-heading h2{margin:0}
.karmacoma-page .day-journey-heading>p{color:var(--muted);max-width:58ch}
.karmacoma-page .day-route-stage{position:relative;isolation:isolate;margin-top:var(--space-6)}
.karmacoma-page .day-route{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0;pointer-events:none}
.karmacoma-page .route-ready>.day-route{display:block}
.karmacoma-page .day-route-track{stroke:var(--line);stroke-width:1.5;stroke-linecap:round}
.karmacoma-page .day-route-progress{stroke:var(--copper);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.karmacoma-page .day-steps{position:relative;z-index:1;list-style:none;padding:0;margin:0}
.karmacoma-page .day-step{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 96px minmax(0,1fr);align-items:start;padding-bottom:var(--space-6)}
.karmacoma-page .day-step:last-child{padding-bottom:0}
.karmacoma-page .day-step:not(:last-child)::after{content:"";position:absolute;left:50%;top:22px;bottom:-22px;width:1px;background:var(--line);z-index:0}
.karmacoma-page .route-ready .day-step::after{display:none}
.karmacoma-page .day-step-number{grid-column:2;grid-row:1;position:relative;z-index:2;display:grid;place-items:center;justify-self:center;width:44px;height:44px;border:1px solid var(--copper);border-radius:50%;background:var(--paper);color:var(--copper);font:500 12px/1 var(--sans);letter-spacing:.04em}
.karmacoma-page .day-step:nth-child(2) .day-step-number{left:10px}
.karmacoma-page .day-step-copy{grid-column:3;grid-row:1;position:relative;z-index:1;min-width:0}
.karmacoma-page .day-step:nth-child(even) .day-step-copy{grid-column:1}
.karmacoma-page .day-step-copy h3{margin:0 0 var(--space-4)}
.karmacoma-page .day-step-copy p{font-size:var(--type-body);line-height:1.75;color:var(--muted)}
.karmacoma-page .day-step-copy p+p{margin-top:var(--prose-gap)}
body.reduced-motion .day-route-progress{stroke-dashoffset:0!important}
@media(prefers-reduced-motion:reduce){.karmacoma-page .day-route-progress{stroke-dashoffset:0!important}}
@media(max-width:900px){
  .karmacoma-page .day-step{grid-template-columns:44px minmax(0,1fr);column-gap:var(--space-4)}
  .karmacoma-page .day-step-number{grid-column:1}
  .karmacoma-page .day-step:nth-child(2) .day-step-number{left:0}
  .karmacoma-page .day-step-copy,.karmacoma-page .day-step:nth-child(even) .day-step-copy{grid-column:2}
  .karmacoma-page .day-step:not(:last-child)::after{left:22px}
}
@media print{.karmacoma-page .day-route-progress{stroke-dashoffset:0!important}.karmacoma-page .day-step{break-inside:avoid}}
@media(max-width:1100px){
  .karmacoma-page .day-journey-heading{grid-template-columns:1fr}
  .karmacoma-page .hero-picture img{object-position:68% 50%}
}
@media(max-width:900px){
  .karmacoma-page .karmacoma-intro,.karmacoma-page .karmacoma-about,.karmacoma-page .karmacoma-pace{grid-template-columns:minmax(0,1fr)}
  .karmacoma-page .karmacoma-pace{row-gap:var(--section-gap)}
  .karmacoma-page .karmacoma-intro-photo,.karmacoma-page .karmacoma-about-photo,.karmacoma-page .karmacoma-pace-photo{width:100%;max-width:none;margin:0;align-self:stretch;justify-self:stretch;grid-column:auto;grid-row:auto}
  .karmacoma-page .karmacoma-about-photo{margin-top:var(--space-5)}
  .karmacoma-page .karmacoma-pace .session-heading,.karmacoma-page .karmacoma-pace .session-copy{grid-column:auto;grid-row:auto}
}
@media(max-width:720px){.karmacoma-page .hero-picture img{object-position:72% 50%}.karmacoma-page .bodywork-hero::before{background:linear-gradient(180deg,rgba(22,27,24,.68),rgba(22,27,24,.68) 70%,rgba(22,27,24,.30))}}
@media print{.karmacoma-page .bodywork-hero{color:var(--ink)}.karmacoma-page .bodywork-hero::before{display:none}.karmacoma-page .hero-copy .eyebrow{color:var(--copper)}.karmacoma-page .karmacoma-atmosphere{break-inside:avoid}}
