.welcome-banner { margin:22px 0 28px; padding:14px 0; border-block:1px solid #d7b58c70; min-width:0; }
.welcome-window,.welcome-track,.welcome-track > span { display:block; width:100%; }
.welcome-track img { display:block; width:100%; height:auto; object-fit:contain; }
#welcome-text-fallback { font-size:32px; font-weight:800; color:var(--deep); }
.catalog-heading { display:flex; align-items:center; gap:14px; padding:0 0 18px; border-bottom:1px solid #ded5ca; font-weight:700; font-size:20px; color:var(--deep); }
.catalog-heading span { border-radius:5px; background:#eee3d5; padding:4px 9px; font-size:12px; color:#87624c; }
.stats-grid { max-width:1260px; grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px; }
.overview-strip span { line-height:1.7; }
.service-path { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:28px 0; margin:0 0 36px; gap:48px; border-block:1px solid #e6ddd3; }
.service-path li { position:relative; min-width:0; }
.service-path li:not(:last-child)::after { content:'→'; position:absolute; right:-34px; top:0; color:#b36d41; font-size:24px; line-height:1.4; }
.service-path h3 { margin:0 0 10px; font-size:22px; font-weight:700; line-height:1.4; }
.service-path p { margin:0; color:var(--muted); font-size:14px; line-height:1.9; }
@media(max-width:980px) { .stats-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 18px; } .service-path { grid-template-columns:1fr; gap:42px; } .service-path li:not(:last-child)::after { content:'↓'; right:auto; left:0; top:auto; bottom:-32px; font-size:21px; } }
@media(max-width:600px) { .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .service-path h3 { font-size:20px; } }
.learning-heading,.showcase-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; }
.learning-heading>p,.showcase-heading>p { max-width:400px; font-size:15px; color:var(--muted); margin:0 0 8px; }
.showcase-heading small { color:#8b7b70; }
.learning-tabs { display:flex; gap:8px; padding-bottom:18px; border-bottom:1px solid #ded5ca; }
.learning-tabs button { font:inherit; font-weight:700; padding:12px 22px; border:1px solid transparent; border-radius:8px; background:transparent; color:#72665d; cursor:pointer; }
.learning-tabs button[aria-selected=true] { background:var(--deep); color:#fffaf3; }
.learning-tabs button span { margin-left:12px; font-size:12px; opacity:.75; }
.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; }
.catalog-toolbar p { color:#7c6c60; font-size:14px; margin:0; }
.catalog-toolbar input { width:300px; max-width:100%; font:inherit; font-size:14px; padding:11px 15px; border:1px solid #ded5ca; border-radius:7px; background:#fffdf9; }
#chapter-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:20px; }
.chapter { border:1px solid #e4dbd0; border-radius:10px; overflow:hidden; background:#fffdf9; }
.chapter summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px 12px; padding:16px; list-style:none; cursor:pointer; }
.chapter summary::-webkit-details-marker { display:none; }
.chapter summary img { grid-column:1/-1; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:6px; background:#f1e6d6; }
.chapter-heading { min-width:0; flex:1; }
.chapter-index { font-size:10px; letter-spacing:.15em; color:#ad6950; font-weight:700; }
.chapter-heading h3 { margin:4px 0 7px; font-size:20px; }
.chapter-heading p { color:#8b7b70; font-size:13px; line-height:1.65; min-height:43px; margin:0; }
.chapter-count { color:#89796d; font-size:13px; white-space:nowrap; }
.chapter-chevron { display:inline-block; font-size:22px; margin-left:6px; }
.chapter[open] .chapter-chevron { transform:rotate(180deg); }
.planned-lessons { list-style:none; margin:0; padding:0 16px 12px; }
.planned-lessons li { border-top:1px solid #eee7de; }
.planned-lesson { border:0; background:none; color:var(--ink); font:inherit; width:100%; padding:16px 0; display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:8px; text-align:left; cursor:pointer; }
.planned-lesson:hover { background:#f9f0e5; }
.lesson-number { font-size:12px; font-variant-numeric:tabular-nums; color:#b6a08b; }
.lesson-title { font-size:14px; }
.lesson-access { font-size:10px; color:#ab6b40; white-space:nowrap; }
.lesson-access>span { margin-left:15px; }
:is(#product-showcase-grid,#case-showcase-grid) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.showcase-product { padding:28px; border:1px solid #e8dfd5; border-radius:12px; background:#fff; min-width:0; }

.product-topline { display:flex; justify-content:space-between; font-size:10px; letter-spacing:.08em; color:#ad8570; gap:16px; }
.showcase-product h3 { margin:14px 0 9px; font-size:25px; color:var(--deep); }
.product-description { color:#7d7066; font-size:14px; min-height:46px; margin:0 0 22px; }
.product-images { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.product-image-button { position:relative; display:block; border:1px solid #e7ded4; padding:0; background:#f4eee8; border-radius:7px; overflow:hidden; cursor:zoom-in; min-width:0; text-align:left; color:#7d6658; }
.product-image-button img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; transition:transform .25s; }
.product-image-button:hover img { transform:scale(1.025); }
.product-image-button>span { display:flex; justify-content:space-between; padding:9px 12px; font-size:11px; background:#fffdf9; }
.product-viewer { width:min(1440px,96vw); max-width:96vw; max-height:94vh; padding:0; border:0; border-radius:12px; color:#f5ede5; background:#201c1b; box-shadow:0 25px 100px #0005; }
dialog::backdrop { background:#191514c9; backdrop-filter:blur(6px); }
.product-viewer header { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; gap:20px; }
.product-viewer header p { margin:0; font-size:11px; color:#c3a895; }
.product-viewer h2 { margin:3px 0 0; font-size:20px; color:inherit; }
.product-viewer button { background:transparent; color:inherit; border:1px solid #ffffff30; border-radius:5px; padding:9px 14px; font:inherit; cursor:pointer; }
.product-viewer [data-close-viewer] { font-size:28px; border:0; }
.viewer-stage { background:#100f0e; display:grid; place-items:center; }
.viewer-stage img { max-width:100%; width:auto; max-height:70vh; height:auto; display:block; object-fit:contain; }
.product-viewer footer { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:20px; padding:14px; font-size:13px; }
.membership-dialog { width:min(480px,calc(100vw - 32px)); border:0; border-radius:14px; padding:38px; background:var(--paper); color:var(--ink); }
.membership-dialog h2 { font-size:26px; line-height:1.4; margin:12px 0 20px; }
.membership-close { position:absolute; top:10px; right:14px; border:0; background:transparent; font-size:26px; cursor:pointer; }
.membership-note { font-size:13px; color:var(--muted); margin:12px 0 26px; }
:is(.planned-lesson,.product-image-button,.chapter summary,.learning-tabs button):focus-visible { outline:3px solid #ca6838; outline-offset:-3px; }
@media(max-width:980px) { #chapter-list { grid-template-columns:repeat(2,minmax(0,1fr)); } .learning-heading,.showcase-heading { flex-direction:column; align-items:flex-start; gap:10px; } :is(#product-showcase-grid,#case-showcase-grid) { grid-template-columns:1fr; } .showcase-product:last-child { grid-column:auto; } }
@media(max-width:600px) {
 .learning-tabs button { padding:11px 12px; font-size:14px; }
 .catalog-toolbar { flex-direction:column; align-items:stretch; gap:12px; } .catalog-toolbar input { width:100%; }
 #chapter-list { grid-template-columns:1fr; } .chapter summary { padding:14px; gap:14px; } .chapter-heading h3 { font-size:20px; } .chapter-count { font-size:12px; }
 .planned-lessons { padding:0 14px 8px; } .planned-lesson { grid-template-columns:25px minmax(0,1fr) auto; gap:6px; } .lesson-title { font-size:13px; } .lesson-access { font-size:10px; } .lesson-access>span { display:none; }
 .showcase-product { padding:20px; } .showcase-product h3 { font-size:22px; } .product-description { min-height:0; } .product-images { gap:8px; }
 .product-viewer header { padding:12px 16px; } .product-viewer h2 { font-size:17px; } .product-viewer footer { gap:12px; font-size:12px; }
 .membership-dialog { padding:32px 24px; }
}
@media(prefers-reduced-motion:reduce) { .product-image-button img { transition:none; } }

.learning-heading>div { flex:1; min-width:0; }
.learning-intro > span { display:block; }
.learning-heading h2 { font-size:clamp(26px,3vw,40px); line-height:1.4; }

.chapter-cover-pending { grid-column:1/-1; display:grid; place-items:center; width:100%; aspect-ratio:16/9; border-radius:6px; background:#f2e6d8; color:#b49374; font-size:28px; font-family:Georgia,serif; }
.product-image-pending { display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:145px; aspect-ratio:16/10; background:#f6f1eb; border:1px dashed #ddcdbb; border-radius:7px; color:#a38b78; gap:8px; font-size:11px; }
.product-image-pending strong { font-weight:400; font-size:13px; }
@media(max-width:600px) { .product-image-pending { min-height:100px; } }
.learning-heading,.showcase-heading { max-width:none; }
.learning-heading h2 { text-wrap:balance; }
@media(min-width:981px) { .learning-heading>p { flex:0 1 330px; } }
.hero-copy { min-width:0; width:100%; }
@media(max-width:980px) { .hero { grid-template-columns:minmax(0,1fr); } }
.product-images { grid-template-columns:minmax(0,1fr); }
.product-image-pending { min-width:0; min-height:0; }

