/* Expanding content keeps the viewport in place instead of anchoring to a lower card. */
body:has(details),body:has([data-flow-role]){overflow-anchor:none}
utamita-participation-flow{display:block;min-width:0;scroll-margin-top:74px}
.participation-flow{--flow-color:var(--c-role-common);--flow-bg:var(--c-bg-soft);color:var(--c-role-common);display:flex;flex-direction:column;gap:var(--sp-12);padding:var(--sp-12);border:2px solid var(--c-border);border-radius:var(--radius-l);background:var(--c-white);scroll-margin-top:74px}
.participation-flow[id="creator"]{--flow-color:var(--c-role-creator);--flow-bg:var(--c-bg-pink)}
.participation-flow[id="viewer"]{--flow-color:var(--c-role-viewer);--flow-bg:var(--c-bg-aqua)}
.participation-flow[id="collaborator"]{--flow-color:var(--c-role-collaborator);--flow-bg:var(--c-bg-lilac)}
.participation-flow-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-8)}.participation-flow-heading h2{margin:0;font-family:var(--font-heading);font-size:var(--fs-ui-heading);font-weight:900}.participation-flow-edition{font-size:var(--fs-ui-meta);font-weight:800;color:var(--c-text-sub)}
.participation-flow-intro{margin:0;color:var(--c-text-sub);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed)}
.participation-flow-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}.participation-flow-switch button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:var(--control-h);padding:var(--sp-4);word-break:keep-all;border:1px solid var(--flow-tab-color);border-radius:var(--radius-m);background:var(--c-white);color:var(--flow-tab-color);font-family:inherit;font-size:var(--fs-ui-body);font-weight:800;line-height:var(--lh-normal);cursor:pointer;box-sizing:border-box}.participation-flow-switch button[data-flow-role='creator']{--flow-tab-color:var(--c-role-creator)}.participation-flow-switch button[data-flow-role='viewer']{--flow-tab-color:var(--c-role-viewer)}.participation-flow-switch button[aria-pressed='true']{background:var(--flow-tab-color);color:var(--c-white)}
.participation-flow-progress{display:flex;flex-direction:column;gap:var(--sp-8)}.participation-flow-progress p{display:flex;align-items:center;justify-content:space-between;margin:0;color:var(--c-text-sub);font-size:var(--fs-ui-meta);font-weight:700}.participation-flow-progress strong{color:var(--c-navy);font-size:var(--fs-ui-emphasis);font-weight:800;font-variant-numeric:tabular-nums}.participation-flow-progress-bar{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--c-bg-muted)}.participation-flow-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--c-success)}
.participation-flow-list{--flow-color:var(--c-role-creator);display:flex;flex-direction:column;gap:var(--sp-16);margin:var(--sp-2) 0 0;padding:0;list-style:none}.participation-flow-list[data-role='viewer']{--flow-color:var(--c-role-viewer)}.participation-flow-step{min-width:0}.participation-flow-stage{margin:0 0 var(--sp-12);color:var(--flow-color);font-family:var(--font-heading);font-size:var(--fs-ui-heading);font-weight:900;line-height:var(--lh-normal);font-variant-numeric:tabular-nums}
.participation-flow-row{/* 番号の丸をカードの見出しの1行目の中央に揃える（カードの上の余白＋枠1px＋見出しの行の高さの半分−番号の枠の高さの半分） */--flow-number-top:calc(var(--sp-12) + 1px + var(--fs-ui-body) * var(--lh-relaxed) / 2 - 18px);position:relative;min-width:0;padding-left:var(--sp-32)}.participation-flow-step:not(:last-child) .participation-flow-row::before{content:'';position:absolute;left:14px;top:calc(var(--flow-number-top) + 39px);bottom:-10px;width:1px;background:var(--c-border)}.participation-flow-step:not(:last-child) .participation-flow-row::after{content:'';position:absolute;left:11px;bottom:-10px;width:6px;height:6px;border-right:1px solid var(--c-border-input);border-bottom:1px solid var(--c-border-input);transform:rotate(45deg)}
.participation-flow-number{position:absolute;top:var(--flow-number-top);left:-6px;display:grid;place-items:center;width:40px;height:36px}.participation-flow-marker{display:grid;place-items:center;box-sizing:border-box;width:28px;height:28px;border:1px solid var(--flow-color);border-radius:50%;background:var(--c-white);color:var(--flow-color);font-size:var(--fs-ui-body);font-weight:800;pointer-events:none}.participation-flow-step[data-checked='true'] .participation-flow-marker{border-color:var(--c-success);background:var(--c-success);color:var(--c-white)}
.participation-flow-card{display:flex;flex-direction:column;gap:var(--sp-8);min-width:0;padding:var(--sp-12);border:1px solid var(--flow-color);border-radius:var(--radius-m);background:var(--flow-bg)}.participation-flow-card h3{margin:0;text-wrap:wrap;font-size:var(--fs-ui-body);font-weight:800;line-height:var(--lh-relaxed);overflow-wrap:anywhere}.participation-flow-step[data-checked='true'] .participation-flow-card{border-color:var(--c-success-border);background:var(--c-success-bg)}
.participation-flow-check-action{display:flex;align-items:center;gap:var(--sp-8);box-sizing:border-box;min-height:var(--control-h);margin-top:var(--sp-4);padding:var(--sp-8) var(--sp-8);border:2px solid var(--c-border-input);border-radius:var(--radius-m);background:var(--c-white);color:var(--c-navy);font-size:var(--fs-ui-body);font-weight:800;line-height:var(--lh-relaxed);cursor:pointer}.participation-flow-check-action input{flex:0 0 22px;width:22px;height:22px;margin:0;accent-color:var(--c-success);cursor:pointer;}.participation-flow-check-action:hover{background:var(--c-bg-soft)}.participation-flow-check-action:focus-within{outline:var(--focus-ring);outline-offset:var(--focus-offset)}.participation-flow-step[data-checked='true'] .participation-flow-check-action{border-color:var(--c-success);background:var(--c-success-bg);color:var(--c-success)}
.participation-flow-note{margin:0;color:var(--c-text-sub);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed);overflow-wrap:anywhere}.participation-flow-note strong{color:var(--flow-color);font-weight:800}.participation-flow-links{display:flex;flex-wrap:wrap;gap:var(--sp-4) var(--sp-12)}.participation-flow-links:empty{display:none}.participation-flow-links a{display:inline-flex;align-items:center;min-height:var(--control-h);font-size:var(--fs-ui-meta);font-weight:800;line-height:var(--lh-relaxed);text-underline-offset:3px}
.participation-flow-deadline{margin:0;padding-top:var(--sp-12);border-top:1px solid var(--c-border);color:var(--c-text-sub);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed)}.participation-flow-error{margin:0;padding:var(--sp-8);border-radius:var(--radius-m);background:var(--c-error-bg);color:var(--c-red);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed)}.participation-flow a:focus-visible,.participation-flow button:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}

.participation-flow-stage{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4) var(--sp-8)}
.participation-flow-phase{display:inline-flex;align-items:center;min-height:var(--tag-h);padding:0 var(--sp-8);border-radius:var(--radius-s);background:var(--c-yellow);color:var(--c-navy);font-size:var(--fs-ui-meta);font-weight:800}
.participation-flow-step{scroll-margin-top:74px}
.participation-flow-reservation{color:var(--c-role-creator);font-size:var(--fs-ui-emphasis);font-weight:800}
.participation-flow-card a{color:var(--flow-color);text-underline-offset:3px}
.participation-flow-card a:hover{color:var(--flow-color)}
.participation-flow-step[data-checked='true'] .participation-flow-card a:not(.participation-flow-action){color:var(--c-role-common)}
/* Inline padding enlarges the tap area without changing the text baseline or line height. */
.participation-flow-card h3 a,.participation-flow-url a{display:inline;padding-block:var(--sp-16);vertical-align:baseline;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.participation-flow-action{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:var(--control-h);padding:var(--sp-4) var(--sp-8);border:2px solid var(--flow-color);border-radius:var(--radius-m);background:var(--flow-color);font-size:var(--fs-ui-body);font-weight:800;line-height:var(--lh-normal);text-align:center;text-decoration:none}
.participation-flow-card .participation-flow-action{color:var(--c-white)}
.participation-flow-card .participation-flow-action:hover{background:var(--flow-color);color:var(--c-white);filter:brightness(1.08)}
.participation-flow-card .participation-flow-action:focus-visible{outline:var(--focus-ring-inverse);outline-offset:var(--focus-offset)}
.participation-flow-url,.participation-flow-hashtag{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0;padding:var(--sp-8);border:1px solid var(--c-pink-border);border-radius:var(--radius-m);background:var(--c-white);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed);overflow-wrap:anywhere}
.participation-flow-url{border:2px solid var(--c-pink-border)}
.participation-flow-url>span,.participation-flow-hashtag>span{font-size:var(--fs-ui-meta);color:var(--c-text-sub)}
.participation-flow-url>span{color:var(--c-role-creator);font-weight:800}
.participation-flow-url>strong,.participation-flow-hashtag>strong{color:var(--c-role-creator);font-size:var(--fs-ui-body);font-weight:800}
.participation-flow-url>strong{font-size:var(--fs-ui-body)}
.participation-flow-url p{margin:0;color:var(--c-text-sub)}
.participation-flow-deadline{display:flex;flex-direction:column;gap:var(--sp-4)}
.participation-flow-deadline strong{color:var(--flow-color);font-size:var(--fs-ui-body);font-weight:800}
.participation-flow-deadline p{margin:0}
.participation-flow-switch button[aria-pressed='true']:focus-visible{outline:var(--focus-ring-inverse);outline-offset:var(--focus-offset)}
.participation-flow-error[hidden]{display:none}
.participation-flow-link-part{white-space:nowrap}

.participation-flow-deadline time,.participation-flow-deadline .participation-flow-deadline-title{font-family:var(--font-heading);font-size:var(--fs-ui-heading);font-weight:900}
.participation-flow-deadline-note{white-space:nowrap}


/* The private checklist folds independently of the shared public instructions. */
.participation-flow:has(>.participation-flow-disclosure){padding:0;border-color:var(--c-navy)}
.participation-flow-disclosure{min-width:0}
.participation-flow-summary{min-height:var(--control-h);cursor:pointer;list-style:none}
.participation-flow-summary::-webkit-details-marker{display:none}
.participation-flow-summary{display:flex;flex-direction:row;align-items:center;gap:var(--sp-8);box-sizing:border-box;min-height:var(--control-h-lg);padding:var(--sp-16)}
.participation-flow-summary h2{flex:1;min-width:0;margin:0;font-family:var(--font-heading);font-size:var(--fs-ui-emphasis);font-weight:800;line-height:var(--lh-normal)}
.participation-flow-summary::after{content:'＋';flex-shrink:0;font-size:var(--fs-18);line-height:var(--lh-normal)}
.participation-flow-disclosure[open]>.participation-flow-summary::after{content:'−'}
.participation-flow-summary-count{grid-column:1;color:var(--c-text-sub);font-family:var(--font-body);font-size:var(--fs-ui-meta);font-weight:700;line-height:var(--lh-relaxed);font-variant-numeric:tabular-nums}
.participation-flow-summary svg{grid-column:2;grid-row:1/3;width:var(--fs-16);height:var(--fs-16);fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.participation-flow-disclosure[open] .participation-flow-summary svg{transform:rotate(180deg)}
.participation-flow-summary:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}
.participation-flow-disclosure-body{display:flex;flex-direction:column;gap:var(--sp-16);padding:var(--sp-16);border-top:1px solid var(--c-border);min-width:0}

.participation-flow-switch button[data-flow-role='collaborator']{--flow-tab-color:var(--c-role-collaborator)}
.participation-flow-list[data-role='collaborator']{--flow-color:var(--c-role-collaborator)}
/* 役割の切り替えは横一列。スマホは「〜として」「参加」の2行、PCは1行 */
@media (min-width: 960px){
.participation-flow-switch button{flex-direction:row}
.participation-flow-list{gap:var(--sp-24)}
.participation-flow-card{gap:var(--sp-12);padding:var(--sp-16)}
.participation-flow-row{--flow-number-top:calc(var(--sp-16) + 1px + var(--fs-ui-body) * var(--lh-relaxed) / 2 - 18px)}
.participation-flow-step:not(:last-child) .participation-flow-row::before,.participation-flow-step:not(:last-child) .participation-flow-row::after{bottom:calc(-1 * var(--sp-20))}
}
