@import url('/assets/fonts/fonts.css');
.concept-root { --font-display: 'Literata', serif; --font-text: 'Literata', serif; --radius: 2px; background: #e7e1d6; }
.lo-site { --ink: #172e42; --paper: #fbf8f1; --line: #c5c3b6; --copper: #8b492f; color: var(--ink); font: 400 1rem/1.7 var(--font-text); padding-bottom: 2.5rem; }
.lo-site a { color: inherit; text-underline-offset: .25em; }
.lo-site :focus-visible { outline-color: var(--copper); outline-offset: 5px; }
.lo-site h1, .lo-site h2, .lo-site h3, .lo-site h4, .lo-site p { margin: 0; }
.lo-site h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); font-weight: 500; line-height: 1.35; letter-spacing: -.035em; }
.lo-demo-line { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; padding: .65rem max(1.25rem, calc((100vw - 1120px)/2)); font-size: .75rem; }
.lo-document { width: min(1240px, 100% - 3rem); margin: auto; padding: 0 clamp(1.25rem, 5vw, 4.5rem); background: var(--paper); border-top: 4px solid var(--ink); }
.lo-masthead { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 124px; border-bottom: 1px solid var(--ink); }
.lo-brand { display: flex; align-items: center; gap: .75rem; text-decoration: none; font-size: clamp(1rem, 2vw, 1.4rem); line-height: 1.25; font-weight: 600; }
.lo-brand-mark { font-size: 3rem; color: var(--copper); font-weight: 400; }
.lo-brand small { display: block; margin-top: .45rem; font-size: .7rem; letter-spacing: .04em; font-weight: 400; }
.lo-contact-link { white-space: nowrap; font-size: .9rem; }
.lo-layout { display: grid; grid-template-columns: 165px minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.8rem); }
.lo-index { align-self: start; position: sticky; top: 2rem; padding-top: 4.2rem; font-size: .75rem; }
.lo-index p { color: var(--copper); text-transform: uppercase; letter-spacing: .1em; }
.lo-index nav { display: grid; gap: 1rem; margin-top: 1.5rem; }
.lo-index a { display: flex; gap: .65rem; text-decoration: none; }
.lo-index a:hover { text-decoration: underline; }
.lo-index a span { color: var(--copper); font-size: .7rem; }
.lo-index-rule { display: block; width: 32px; height: 3px; margin-top: 2rem; background: var(--copper); }
.lo-reading { min-width: 0; }
.lo-opening { padding: 4rem 0 4.5rem; }
.lo-reference { color: var(--copper); font-size: .75rem; letter-spacing: .06em; }
.lo-opening h1 { margin: 1.6rem 0; font-size: clamp(2.5rem, 5.8vw, 4.7rem); font-weight: 400; line-height: 1.16; letter-spacing: -.055em; }
.lo-opening h1 span { display: block; color: var(--copper); }
.lo-lead { max-width: 45ch; font-size: 1rem; }
.lo-text-action { display: inline-flex; gap: 1.5rem; align-items: center; min-height: 44px; margin-top: 1.5rem; font-size: .9rem; }
.lo-text-action span { font-size: 1.4rem; }
.lo-topics { scroll-margin-top: 1.5rem; }
.lo-topics > p { max-width: 47ch; margin: 1rem 0 2rem; font-size: .95rem; }
.lo-topic { border-top: 1px solid var(--line); }
.lo-topic:last-child { border-bottom: 1px solid var(--line); }
.lo-topic summary { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 1.25rem; gap: .8rem; align-items: center; padding: 1.4rem 0; cursor: pointer; list-style: none; }
.lo-topic summary::-webkit-details-marker { display: none; }
.lo-topic-number { font-size: .75rem; color: var(--copper); }
.lo-topic h3 { font-size: clamp(1.1rem, 2vw, 1.4rem); font-weight: 500; line-height: 1.4; }
.lo-expand { position: relative; width: 16px; height: 16px; }
.lo-expand::before, .lo-expand::after { content: ''; position: absolute; top: 7px; left: 0; width: 16px; height: 1px; background: var(--ink); }
.lo-expand::after { transform: rotate(90deg); }
.lo-topic[open] .lo-expand::after { display: none; }
.lo-topic[open] { border-top-color: var(--ink); }
.lo-topic-content { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; padding: .2rem 0 1.8rem 2.8rem; font-size: .9rem; }
.lo-topic-content h4 { font-size: .8rem; font-weight: 600; }
.lo-topic-content ul { padding-left: 1rem; margin: .65rem 0 0; }
.lo-topic-content li + li { margin-top: .3rem; }
.lo-process { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .8rem; padding: 3rem 2rem; margin: 4rem -2rem; background: #e9edf0; scroll-margin-top: 1rem; }
.lo-section-number { padding-top: .35rem; color: var(--copper); font-size: .75rem; }
.lo-process ol { list-style: none; counter-reset: step; padding: 0; margin: 2rem 0; }
.lo-process li { counter-increment: step; position: relative; padding-left: 1.7rem; margin-top: 1.6rem; }
.lo-process li::before { content: counter(step) '.'; position: absolute; left: 0; top: 0; color: var(--copper); }
.lo-process h3 { font-size: .95rem; font-weight: 600; }
.lo-process li p { margin-top: .35rem; font-size: .9rem; }
.lo-process-note { border-top: 1px solid #bcc5cc; padding-top: 1rem; font-size: .75rem; }
.lo-contact { padding-bottom: 4rem; scroll-margin-top: 1.5rem; }
.lo-contact h2 { margin: 1rem 0; }
.lo-contact > p:not(.lo-reference) { max-width: 48ch; font-size: .95rem; }
.lo-form { margin-top: 2rem; }
.lo-form fieldset { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.3rem; padding: 0; margin: 0; border: 0; min-width: 0; }
.lo-form-legend { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
.lo-form label { display: grid; gap: .45rem; font-size: .7rem; }
.lo-form input, .lo-form select { width: 100%; min-width: 0; min-height: 48px; padding: .65rem; color: var(--ink); background: transparent; border: 1px solid #89949b; border-radius: var(--radius); font-size: .95rem; }
.lo-form-wide { grid-column: 1 / -1; }
.lo-form button { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; grid-column: 1 / -1; justify-self: start; min-height: 48px; padding: .8rem 1rem; border: 1px solid var(--ink); border-radius: var(--radius); background: var(--ink); color: var(--paper); font-size: .9rem; }
.lo-form button:hover { background: #294c66; }
.lo-form-note { margin-top: 1rem !important; font-size: .75rem; }
.lo-form-result { margin-top: 1rem !important; padding: 1rem; border-inline-start: 3px solid var(--copper); font-size: .9rem; background: #ede8df; }
.lo-footer { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--ink); padding: 1.5rem 0; font-size: .75rem; }
@media (max-width: 900px) { .lo-layout { grid-template-columns: 125px minmax(0,1fr); gap: 2rem; } .lo-topic-content { grid-template-columns: 1fr; gap: 1rem; } }
@media (max-width: 620px) {
 .lo-demo-line { font-size: .7rem; padding-inline: 1rem; }
 .lo-document { width: 100%; padding-inline: 1.25rem; }
 .lo-masthead { min-height: 98px; }
 .lo-brand { gap: .55rem; font-size: 1rem; } .lo-brand small { max-width: 23ch; line-height: 1.5; font-size: .7rem; }
 .lo-brand-mark { font-size: 2.4rem; } .lo-contact-link { font-size: .75rem; }
 .lo-layout { display: block; }
 .lo-index { position: static; padding-top: 1.2rem; }
 .lo-index p, .lo-index-rule { display: none; }
 .lo-index nav { display: flex; flex-wrap: wrap; gap: .6rem 1.1rem; margin: 0; font-size: .7rem; }
 .lo-index a { min-height: 44px; align-items: center; gap: .4rem; }
 .lo-opening { padding: 2rem 0 3rem; } .lo-opening h1 { font-size: clamp(2.25rem, 9.6vw, 3.5rem); }
 .lo-lead { font-size: .9rem; }
 .lo-topic summary { grid-template-columns: 1.3rem minmax(0,1fr) 1rem; gap: .5rem; }
 .lo-topic-content { padding-left: 1.8rem; }
 .lo-process { padding: 2rem 1.25rem; margin: 3rem -1.25rem; grid-template-columns: 1.3rem minmax(0,1fr); gap: .5rem; }
 .lo-form fieldset { grid-template-columns: 1fr; }
 .lo-footer { flex-direction: column; }
}

.lo-masthead{position:sticky;top:0;z-index:10;background:#fbf8f1}.lo-index{top:100px}.lo-topics,.lo-process,.lo-contact{scroll-margin-top:110px}
