
body { background-color: var(--canvas); color: var(--ink); }

.guide-wrap {
    max-width: 820px;
    margin: 0 auto;
    padding: 1.5rem clamp(1rem, 4vw, 2rem) 4rem;
}

.guide-header { text-align: center; margin-bottom: 1.75rem; }
.guide-header h1 {
    font-family: 'Crimson Pro', serif;
    font-size: clamp(1.8rem, 4.5vw, 2.4rem);
    font-weight: 700; color: var(--info-strong);
    margin-bottom: 0.4rem;
}
.guide-header p { color: var(--ink-60);
    font-size: 1rem;
    max-width: 620px;
    margin: 0 auto;
}

.guide-section { background: var(--surface); border-radius: var(--r-sm);
    padding: 1.5rem clamp(1rem, 3vw, 1.75rem);
    margin-bottom: 1.25rem; box-shadow: none;
}

.guide-section h2 {
    font-family: 'Crimson Pro', serif;
    font-size: 1.35rem; color: var(--info-strong);
    margin: 0 0 0.85rem;
    padding-bottom: 0.5rem; border-bottom: 1px solid var(--rule);
}

.guide-section h3 {
    font-family: 'Work Sans', sans-serif;
    font-size: 1rem; color: var(--caution-deep);
    margin: 1.25rem 0 0.4rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.guide-section p { color: var(--ink-70);
    font-size: 0.95rem;
    line-height: 1.65;
    margin: 0 0 0.75rem;
}

.guide-section ul, .guide-section ol { color: var(--ink-70);
    font-size: 0.95rem;
    line-height: 1.65;
    padding-left: 1.25rem;
    margin: 0 0 0.75rem;
}

.guide-section li { margin-bottom: 0.35rem; }

.guide-section strong { color: var(--caution-deep); font-weight: 600; }
.guide-section code { background: var(--canvas); border: 1px solid var(--rule);
    border-radius: var(--r-sm);
    padding: 0.1em 0.4em;
    font-size: 0.85rem; color: var(--info-strong);
}
.guide-section a { color: var(--info-strong); }

/* Collapsible mode blocks */
.mode { background: var(--surface); border: 1px solid var(--rule); border-radius: var(--r-sm);
    margin-bottom: 0.75rem; box-shadow: none;
    overflow: hidden;
}
.mode > summary {
    list-style: none;
    cursor: pointer;
    padding: 1rem clamp(1rem, 3vw, 1.5rem);
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    transition: background 0.18s ease;
}
.mode > summary::-webkit-details-marker { display: none; }
.mode > summary:hover { background: var(--wash); }
.mode > summary::after {
    content: "+";
    margin-left: auto; color: var(--ink-60);
    font-size: 1.25rem;
    line-height: 1;
    flex-shrink: 0;
    transition: color 0.18s ease;
}
.mode[open] > summary::after { content: "\2013"; }
.mode > summary:hover::after { color: var(--info-strong); }
.mode-name {
    font-family: 'Crimson Pro', serif;
    font-size: 1.2rem;
    font-weight: 700; color: var(--info-strong);
}
.mode-sub {
    font-size: 0.85rem; color: var(--ink-60);
}
.mode-body {
    padding: 0 clamp(1rem, 3vw, 1.5rem) 1.35rem; border-top: 1px solid var(--rule);
    padding-top: 1rem;
}
.mode-body p, .mode-body ul, .mode-body ol { color: var(--ink-70);
    font-size: 0.95rem;
    line-height: 1.65;
    margin: 0 0 0.75rem;
}
.mode-body ul, .mode-body ol { padding-left: 1.25rem; }
.mode-body li { margin-bottom: 0.35rem; }
.mode-body h3 {
    font-family: 'Work Sans', sans-serif;
    font-size: 0.95rem; color: var(--caution-deep);
    margin: 1.15rem 0 0.4rem;
    font-weight: 600;
}
.mode-body strong { color: var(--caution-deep); font-weight: 600; }
.mode-body a { color: var(--info-strong); }
.mode-body code { background: var(--canvas); border: 1px solid var(--rule);
    border-radius: var(--r-sm);
    padding: 0.1em 0.4em;
    font-size: 0.85rem; color: var(--info-strong);
}

/* Field tables */
.field-table { width: 100%; border-collapse: collapse; margin: 0 0 0.9rem; font-size: 0.88rem; }
.field-table th {
    text-align: left; color: var(--ink-60);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    padding: 0 0.6rem 0.4rem 0; border-bottom: 1px solid var(--rule);
}
.field-table td {
    padding: 0.5rem 0.6rem 0.5rem 0;
    border-bottom: 1px solid var(--rule); color: var(--ink-70);
    line-height: 1.5;
    vertical-align: top;
}
.field-table td:first-child { color: var(--ink); font-weight: 600; white-space: nowrap; }
.field-table tr:last-child td { border-bottom: none; }

.callout { background: var(--canvas);
    border-left: 3px solid var(--caution-deep);
    border-radius: var(--r-sm);
    padding: 0.85rem 1rem;
    font-size: 0.9rem; color: var(--ink-60);
    line-height: 1.6;
    margin: 0.85rem 0;
}
.callout strong { color: var(--caution-deep); }
.callout.danger { border-left-color: var(--negative); }
.callout.danger strong { color: var(--negative); }
.callout.success { border-left-color: var(--positive); }
.callout.success strong { color: var(--positive); }

.steps { counter-reset: s; list-style: none; padding-left: 0; margin: 0; }
.steps li {
    counter-increment: s;
    position: relative;
    padding-left: 2.1rem;
    margin-bottom: 0.7rem; color: var(--ink-70);
    font-size: 0.95rem;
    line-height: 1.6;
}
.steps li::before {
    content: counter(s);
    position: absolute;
    left: 0;
    top: 0.05rem;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%; background: var(--ink); color: var(--surface);
    font-size: 0.8rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.section-label {
    font-size: 0.72rem; color: var(--ink-60);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin: 1.75rem 0 0.6rem;
}

.cta-row { text-align: center; margin-top: 1.75rem; }
.cta-btn {
    display: inline-block;
    padding: 0.85rem 2rem; background: var(--ink);
    color: white;
    text-decoration: none; border-radius: var(--r-sm);
    font-size: 1rem;
    font-weight: 600;
    transition: all 0.3s ease; box-shadow: none;
}
.cta-btn:hover { transform: translateY(-2px); box-shadow: none; }

@media (max-width: 560px) {
    .mode > summary { flex-direction: column; gap: 0.15rem; position: relative; padding-right: 2.5rem; }
    .mode > summary::after { position: absolute; right: 1rem; top: 1rem; margin-left: 0; }
}
