/* Page-scoped session introduction. */
.session-page main > section[id] { scroll-margin-top: 110px; }
.session-opening { padding: 2rem 0 4.5rem; background: #f7f3eb; overflow:hidden; }
.session-opening__inner { max-width:1280px; padding:0 3rem; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.session-breadcrumb { font-size:.75rem; color:#777265; margin:0 0 3rem; }
.session-breadcrumb span { margin:0 .8rem; }
.session-opening h1 { font-family:var(--font-serif); font-size:clamp(2.8rem,4.7vw,4.4rem); line-height:1.55; font-weight:400; letter-spacing:.06em; margin:0 0 1.6rem; }
.session-title-dot { color:#8f9b79; }
.session-opening__lead { font-family:var(--font-serif); font-size:1.4rem; margin-bottom:1rem; }
.session-opening__description { line-height:2; font-size:1rem; color:#64675b; }
.session-opening__visual { position:relative; align-self:stretch; margin:2rem 0 3rem; min-height:580px; }
.session-opening__visual > img { position:absolute; width:100%; height:100%; object-fit:cover; border-radius:180px 180px 4px 4px; object-position:55% center; }
.session-opening__visual::before { content:''; position:absolute; inset:-12px 14px 12px -12px; border:1px solid #cabda8; border-radius:180px 180px 4px 4px; }
.session-opening__caption { position:absolute; left:1.5rem; top:2.7rem; right:1.5rem; text-align:center; font:italic 1.7rem 'Cormorant Garamond',Georgia,serif; color:#fffaf0; text-shadow:0 1px 8px #3e382d99; }
.session-host { position:absolute; left:-2rem; right:2rem; bottom:-2.5rem; background:#fffcf6; padding:1.2rem 1.5rem; display:flex; align-items:center; gap:1.3rem; box-shadow:0 10px 35px #4b453010; }
.session-host img { width:72px; height:82px; object-fit:cover; object-position:center 25%; border-radius:40px 40px 2px 2px; }
.session-host p { margin:0; }
.session-host small,.session-host span,.session-host em { display:block; }
.session-host small { font-size:.75rem; color:#777265; }
.session-host span { font-family:var(--font-serif); font-size:1.3rem; margin:.2rem 0; }
.session-host em { font:italic 1.1rem 'Cormorant Garamond',Georgia,serif; color:#9a7558; }
.session-facts { display:flex; list-style:none; margin:2rem 0; padding:1.2rem 0; border-block:1px solid #d6d6c6; }
.session-facts li { flex:1; text-align:center; border-right:1px solid #d6d6c6; }
.session-facts li:last-child { border:0; }
.session-facts strong { display:block; font-family:var(--font-serif); font-weight:400; font-size:1.6rem; color:#536349; }
.session-facts strong span { font-size:1rem; }
.session-facts small { font-size:.7rem; color:#777265; }
.session-opening .btn { display:flex; justify-content:space-between; gap:1.5rem; background:#4e6148; border-color:#4e6148; }
.session-opening .btn:hover { background:#3d5037; }
.session-registration-note { font-size:.75rem; line-height:1.8; color:#696e60; margin:1rem 0 0; }
.session-chapters { max-width:1280px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding:1.5rem 3rem; }
.session-chapters a { display:flex; gap:.7rem; align-items:center; padding:1rem 0; border-bottom:1px solid #d6d2c7; color:#7a785f; font-size:.8rem; }
.session-chapters a span { flex:1; color:#454b3f; }
.session-intro > .container { display:grid; grid-template-columns:1fr 1.2fr; gap:5rem; align-items:start; }
.session-intro .prose { margin:0; text-align:left; }
.session-intro .section-heading { text-align:left; }
.session-details { background:#eaf0e3; }
.session-details .prose { margin:0; max-width:none; text-align:left; }
.session-entry { background:#eeeee5; }
.session-entry .flow__marker { background:#faf8f1; color:#6d7a60; border-color:#c4cbb9; }
@media(max-width:1000px) {
 .session-opening__inner { gap:2rem; padding-inline:2rem; }
 .session-opening__visual { min-height:550px; }
 .session-host { left:-1rem; right:0; }
 .session-chapters { padding-inline:2rem; gap:1rem; }
 .session-intro > .container,.session-details > .container,.session-faq > .container { gap:2rem; }
}
@media(max-width:700px) {
 .session-page main > section[id] { scroll-margin-top:80px; }
 .session-opening { padding:1.25rem 0 3.5rem; }
 .session-opening__inner { grid-template-columns:1fr; padding-inline:1.5rem; gap:2rem; }
 .session-breadcrumb { margin-bottom:2rem; font-size:.7rem; }
 .session-opening h1 { font-size:2.7rem; }
 .session-opening__lead { font-size:1.2rem; }
 .session-opening__description { font-size:.9375rem; }
 .session-opening__visual { min-height:340px; margin:0 .5rem 2.5rem; }
 .session-opening__visual > img,.session-opening__visual::before { border-radius:120px 120px 4px 4px; }
 .session-opening__caption { top:1.5rem; font-size:1.4rem; }
 .session-host { left:-.5rem; right:-.5rem; padding:1rem; }
 .session-host img { width:58px; height:66px; }
 .session-opening .btn { font-size:.9rem; padding:1.25rem; white-space:normal; }
 .session-chapters { grid-template-columns:1fr 1fr; padding:1rem 1.5rem; gap:.5rem 1rem; }
 .session-chapters a { font-size:.7rem; gap:.35rem; }
 .session-intro > .container,.session-details > .container,.session-faq > .container { grid-template-columns:1fr; gap:1.5rem; }
 .session-entry .flow__title { font-size:1.15rem; }
}
@media(max-width:700px) {
}
/* Give the invitation its own full-width pause below the two-column introduction. */
.session-intro .session-intro__message {
 grid-column:1 / -1; margin:0; padding:2.75rem 1.5rem;
 border:0; border-block:1px solid #d8ddce;
 background:linear-gradient(90deg,transparent,#e9eddf 30%,#e9eddf 70%,transparent);
 font-family:var(--font-serif); font-weight:400; font-size:clamp(1.4rem,2.2vw,1.9rem);
 line-height:2; letter-spacing:.06em; text-align:center; color:#506045;
}
.session-intro__message span { display:block; }
@media(max-width:700px) {
 .session-intro .session-intro__message { padding:1.75rem .5rem; font-size:clamp(1rem,4.2vw,1.3rem); letter-spacing:.025em; }
}
.session-intro > .container { max-width:1120px; width:100%; column-gap:4rem; row-gap:3rem; }
.session-intro .prose p:not(.eyebrow) br { display:none; }
@media(max-width:700px) { .session-intro > .container { gap:1.5rem; } }
/* A wide, single-column overview keeps labels and details easy to scan. */
.session-details > .container { display:grid; grid-template-columns:minmax(0,1fr); gap:2.5rem; max-width:1120px; width:100%; }
.session-details .section-heading { text-align:left; margin-bottom:0; }
.session-details .legal-table { width:100%; table-layout:fixed; margin:0; border-collapse:collapse; background:#fdfbf5; border-radius:4px; }
.session-details .legal-table tr { display:table-row; }
.session-details .legal-table th,.session-details .legal-table td { display:table-cell; vertical-align:top; padding:1.3rem 2rem; border-bottom:1px solid #d6ddcc; font-size:1rem; line-height:1.9; }
.session-details .legal-table th { width:22%; background:#f2f4eb; color:#4d6043; font-weight:500; }
.session-details .legal-table td { width:78%; color:#3f443a; }
.session-details .legal-table tr:last-child > * { border-bottom:0; }
.session-details__audience { padding-left:1.2em; margin:0; }
.session-details__audience li + li { margin-top:.55rem; }
.session-details__audience li::marker { color:#81946e; }
@media(max-width:600px) {
 .session-details > .container { gap:1.5rem; }
 .session-details .legal-table th,.session-details .legal-table td { padding:1rem .85rem; font-size:.875rem; }
 .session-details .legal-table th { width:30%; }
 .session-details .legal-table td { width:70%; }
 .session-details .legal-table tr:last-child { display:block; }
 .session-details .legal-table tbody { display:block; }
 .session-details .legal-table tr { display:table; width:100%; table-layout:fixed; }
 .session-details .legal-table tr:last-child > * { display:block; width:100%; }
}

@media(min-width:900px) { .session-entry .flow { grid-template-columns:repeat(3,minmax(0,1fr)); } }
/* FAQ: a single reading column with clear question/answer hierarchy. */
.session-faq > .container { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; width:100%; max-width:1080px; }
.session-faq .prose { position:static; margin:0; max-width:none; text-align:left; }
.session-faq .section-heading { text-align:left; margin-bottom:0; }
.session-faq .accordion { margin:0; max-width:none; width:100%; }
.session-faq .accordion__item { padding:0 2rem; margin:0 0 .75rem; background:#fffcf6; border:1px solid #dedfd4; border-radius:4px; }
.session-faq .accordion__item summary { position:relative; padding:1.4rem 0 1.4rem 2.5rem; font-size:1.0625rem; font-weight:400; line-height:1.8; gap:1.5rem; color:#363e31; }
.session-faq .accordion__item summary::before { content:'Q'; position:absolute; left:0; top:1.4rem; font:italic 1.3rem/1.45 'Cormorant Garamond',Georgia,serif; color:#728364; }
.session-faq .accordion__item summary::after { color:#657957; font-size:1.4rem; }
.session-faq .accordion__item[open] { border-color:#b8c5ab; }
.session-faq .accordion__item[open] summary { border-bottom:1px solid #e1e5da; }
.session-faq .accordion__body { margin:0; padding:1.3rem 2.5rem 1.6rem; font-size:1rem; line-height:1.95; color:#53594e; }
@media(max-width:600px) {
 .session-faq > .container { gap:1.5rem; }
 .session-faq .accordion__item { padding:0 1rem; }
 .session-faq .accordion__item summary { padding:1.1rem 0 1.1rem 1.7rem; font-size:.9375rem; gap:.75rem; }
 .session-faq .accordion__item summary::before { top:1.1rem; font-size:1.15rem; }
 .session-faq .accordion__body { padding:1rem 0 1.3rem; font-size:.9375rem; line-height:1.9; }
}
/* A personal letter from the session host. */
.session-message { background:#e5ebdd; padding:5.5rem 2rem; }
.session-letter { max-width:1120px; margin:auto; padding:4rem; background:#fffcf6; display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); align-items:center; gap:4.5rem; position:relative; }
.session-letter::after { content:''; position:absolute; inset:12px; border:1px solid #e3e3d6; pointer-events:none; }
.session-letter__portrait { margin:0; }
.session-letter__portrait img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:120px 120px 3px 3px; }
.session-letter__portrait figcaption { margin:1.3rem 0 0; font-family:var(--font-serif); font-size:1.15rem; letter-spacing:.08em; text-align:center; }
.session-letter__portrait figcaption span { display:block; font-family:var(--font-sans); font-size:.72rem; color:#6c7362; margin-bottom:.4rem; }
.session-letter__content .eyebrow { font-size:.75rem; margin-bottom:1.4rem; }
.session-letter__content h2 { font-family:var(--font-serif); font-weight:400; font-size:clamp(1.6rem,2.4vw,2.1rem); line-height:1.75; letter-spacing:.06em; margin:0 0 2rem; }
.session-letter__words { margin:0; padding:0; border:0; color:#4d5944; font-family:var(--font-serif); font-size:1.125rem; line-height:2; letter-spacing:.025em; }
.session-letter__words p { margin:0 0 1rem; }
.session-letter__phrase { white-space:nowrap; }
.session-letter__signature { margin:1.8rem 0 0; padding-top:1rem; border-top:1px solid #dcded1; font:italic 2rem 'Cormorant Garamond',Georgia,serif; text-align:right; color:#9a765b; }
@media(min-width:701px) and (max-width:1000px) {
 .session-letter { padding:3rem 2.5rem; gap:2.5rem; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); }
 .session-letter__words { font-size:1rem; }
 .session-letter__break { display:none; }
}
@media(max-width:700px) {
 .session-message { padding:3rem 1.25rem; }
 .session-letter { padding:2.5rem 1.5rem 2rem; grid-template-columns:minmax(0,1fr); gap:2rem; }
 .session-letter::after { inset:8px; }
 .session-letter__portrait { width:min(65%,190px); margin:auto; }
 .session-letter__portrait figcaption { font-size:1rem; margin-top:1rem; }
 .session-letter__content h2 { font-size:1.5rem; margin-bottom:1.5rem; }
 .session-letter__content .eyebrow { font-size:.625rem; letter-spacing:.13em; }
 .session-letter__words { font-size:1rem; letter-spacing:0; line-height:1.95; }
 .session-letter__break { display:none; }
 .session-letter__signature { font-size:1.8rem; margin-top:1.5rem; }
}
/* Closing invitation: message and LINE registration share one clear destination. */
.session-closing { background:#414f3d; color:#faf7ee; padding:6rem 2rem; }
.session-closing__inner { max-width:1120px; margin:auto; display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:5rem; }
.session-closing__message .eyebrow { color:#d8dfc8; display:flex; align-items:center; gap:1rem; }
.session-closing__message .eyebrow::before { content:''; width:32px; height:1px; background:#a8b794; }
.session-closing__message h2 { font-family:var(--font-serif); font-size:clamp(2rem,3.2vw,2.8rem); font-weight:400; line-height:1.8; letter-spacing:.04em; color:#faf7ee; margin:0 0 1.8rem; }
.session-closing__time { font-family:'Cormorant Garamond',Georgia,serif; font-size:1.7em; font-style:italic; line-height:1; }
.session-closing__time span { font-family:var(--font-serif); font-size:.46em; font-style:normal; }
.session-closing__lead { font-family:var(--font-serif); font-size:1.2rem; margin-bottom:1rem; }
.session-closing__body { font-size:1rem; line-height:2; color:#e3e8db; }
.session-closing__facts { display:flex; list-style:none; padding:1.3rem 0 0; margin:2rem 0 0; border-top:1px solid #7c8973; font-size:.875rem; color:#e3e8db; }
.session-closing__facts li { flex:1; text-align:center; border-right:1px solid #7c8973; }
.session-closing__facts li:last-child { border:0; }
.session-line-card { background:#faf8f0; color:#3b4934; padding:2.75rem 2.5rem 2rem; border-radius:5px; position:relative; box-shadow:12px 12px 0 #ffffff09; }
.session-line-card__mark { width:52px; height:52px; color:#6d825d; margin-bottom:1.2rem; }
.session-line-card__mark svg { display:block; width:100%; height:100%; }
.session-line-card .eyebrow { color:#7a805f; font-size:.75rem; margin-bottom:1rem; }
.session-line-card h3 { font-family:var(--font-serif); font-size:1.9rem; font-weight:400; line-height:1.65; margin:0 0 1.5rem; }
.session-line-card__description { font-size:.9375rem; line-height:1.95; color:#616757; margin-bottom:1.7rem; }
.session-line-card__button { display:flex; align-items:center; justify-content:space-between; gap:.7rem; background:#465c3b; color:#fffdf7; padding:1.25rem 1.2rem; border-radius:3px; font-size:.9375rem; transition:background .2s; }
.session-line-card__button:hover { background:#32472a; color:white; }
.session-line-card__note { font-size:.7rem; color:#6c7263; margin:.8rem 0 1.6rem; text-align:center; }
.session-line-card__steps { display:flex; list-style:none; align-items:center; justify-content:space-between; padding:1.3rem 0 0; margin:0; border-top:1px solid #d9dece; gap:.5rem; font-size:.75rem; color:#616c53; }
.session-line-card__steps span { display:block; font:italic 1.3rem 'Cormorant Garamond',Georgia,serif; margin-bottom:.4rem; color:#8a9779; }
@media(max-width:1000px) { .session-closing__inner { gap:2.5rem; } .session-line-card { padding:2rem 1.5rem; } }
@media(max-width:700px) {
 .session-closing { padding:3.5rem 1.5rem; }
 .session-closing__inner { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
 .session-closing__message h2 { font-size:2rem; }
 .session-closing__lead { font-size:1.1rem; }
 .session-closing__body { font-size:.9375rem; }
 .session-line-card { padding:2rem 1.3rem 1.5rem; box-shadow:6px 6px 0 #ffffff09; }
 .session-line-card h3 { font-size:1.65rem; }
 .session-line-card__button { font-size:.85rem; padding:1.2rem .85rem; }
 .session-line-card__steps { font-size:.7rem; }
}
