/* Editorial design system. Existing markup and ad widgets remain compatible. */
:root { --tsw-paper:#faf8f4; --tsw-cream:#fffdf9; --tsw-ink:#242c32; --tsw-ink-soft:#414b53; --tsw-muted:#58636b; --tsw-line:#deddd6; --tsw-plum-deep:#612744; --tsw-shadow-sm:0 6px 20px rgb(36 44 50 / 5%); --tsw-shadow-md:0 15px 36px rgb(36 44 50 / 8%); --tsw-radius-md:18px; --tsw-radius-lg:26px; --tsw-shell:1240px; --tsw-sans:"Segoe UI",system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif; --tsw-serif:Georgia,"Times New Roman",serif; }
body { font-family:var(--tsw-sans); line-height:1.7; font-size:17px; }
h1,h2,h3,h4 { font-family:var(--tsw-sans); letter-spacing:-.045em; font-weight:650; line-height:1.16; text-wrap:balance; }
h1 { font-size:clamp(2.25rem,4.5vw,4.4rem); }
h2 { font-size:clamp(1.75rem,3vw,2.75rem); }
h3 { font-size:1.3rem; }
.tsw-shell { width:min(calc(100% - 64px),var(--tsw-shell)); }
.tsw-site-header { background:rgb(255 253 249 / 97%); }
.tsw-site-header__inner { width:min(calc(100% - 56px),1320px); min-height:82px; gap:20px; }
.tsw-brand__text strong { font-family:var(--tsw-sans); font-size:1.25rem; font-weight:750; letter-spacing:-.04em; }
.tsw-brand__text small { font-size:.61rem; letter-spacing:.08em; }
.tsw-brand__mark { width:44px; height:44px; box-shadow:none; }
.tsw-menu a { font-size:.86rem; font-weight:650; padding:12px 11px; }
.tsw-header-cta { border-radius:8px; font-weight:650; }
.tsw-kicker { letter-spacing:.12em; font-size:.71rem; font-weight:750; }
.tsw-button { border-radius:9px; min-height:48px; font-size:.92rem; font-weight:650; box-shadow:none; }
.tsw-button:hover { transform:none; }
.tsw-button--accent { background:var(--tsw-plum); color:#fff; box-shadow:none; }
.tsw-button--accent:hover { background:var(--tsw-plum-deep); color:#fff; box-shadow:none; }
.tsw-button--primary { background:#263d3c; box-shadow:none; }
.tsw-button--primary:hover { background:#182c2b; }
:focus-visible { outline-color:var(--tsw-plum); }
.tsw-home-hero { background:#f2eee6; color:var(--tsw-ink); border-bottom:1px solid var(--tsw-line); }
.tsw-home-hero::before { background:none; }
.tsw-home-hero__grid { min-height:0; grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr); gap:72px; padding-block:72px 62px; }
.tsw-home-hero h1 { color:var(--tsw-ink); font-size:clamp(2.8rem,4.7vw,4.45rem); line-height:1.12; letter-spacing:-.055em; margin-bottom:25px; }
.tsw-home-hero h1 em { font-family:var(--tsw-serif); font-weight:400; color:var(--tsw-plum); letter-spacing:-.055em; }
.tsw-home-hero__lead { max-width:560px; color:var(--tsw-ink-soft); font-family:var(--tsw-sans); font-size:1.08rem; line-height:1.7; }
.tsw-region-finder { padding:0; margin-top:28px; border:0; border-radius:0; background:transparent; box-shadow:none; }
.tsw-region-finder label { font-size:.83rem; color:var(--tsw-ink); margin-bottom:10px; }
.tsw-region-finder__row { gap:10px; grid-template-columns:minmax(0,1fr) auto; }
.tsw-region-finder select { border:1px solid #aeb2ab; border-radius:9px; min-height:52px; font-size:1rem; font-weight:500; padding-inline:14px; color:var(--tsw-ink); background-color:#fff; }
.tsw-region-finder p { color:var(--tsw-muted); font-size:.8rem; margin-top:12px; }
.tsw-region-finder p a { color:var(--tsw-plum); }
.tsw-home-hero__trust { background:#faf8f4; border-top:1px solid var(--tsw-line); }
.tsw-home-hero__trust .tsw-shell { min-height:65px; gap:16px 25px; }
.tsw-home-hero__trust span { color:var(--tsw-muted); font-size:.75rem; font-weight:500; }
.tsw-home-hero__trust i { color:#35635a; background:#e4eee7; }
.tsw-home-hero__trust a { color:var(--tsw-plum); }
.tsw-discovery { position:relative; background:#293f3d; color:#e4ebe6; padding:32px; border-radius:24px 24px 80px 24px; }
.tsw-discovery h2 { color:#fffaf1; font-size:clamp(1.8rem,2.4vw,2.3rem); letter-spacing:-.04em; margin-bottom:14px; }
.tsw-discovery > p:not(.tsw-kicker) { font-size:.87rem; line-height:1.6; }
.tsw-discovery > a { display:grid; grid-template-columns:28px minmax(0,1fr) 16px; gap:14px; padding:18px 0; border-top:1px solid #56706a; color:white; text-decoration:none; align-items:center; }
.tsw-discovery > a:hover strong { text-decoration:underline; text-underline-offset:4px; }
.tsw-discovery__number { color:#e8c7a9; font-size:.75rem; }
.tsw-discovery strong { display:block; font-size:.95rem; line-height:1.4; font-weight:650; }
.tsw-discovery small { display:block; color:#ccd9d2; font-size:.76rem; line-height:1.5; margin-top:3px; }
.tsw-discovery .tsw-discovery__foot { margin:15px 0 0; color:#d6e0da; font-size:.72rem !important; }
.tsw-section { margin-block:80px; }
.tsw-section-heading { margin-bottom:30px; }
.tsw-section-heading--split { gap:32px; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
.tsw-section-heading--split > p { font-size:.94rem; }
.tsw-section--tint { padding:40px; background:#efede7; border-radius:22px; margin-inline:0; }
.tsw-intro-grid { gap:64px; }
.tsw-intro-grid__copy { font-size:.95rem; }
.tsw-step-list { gap:16px; }
.tsw-step-list h3 { font-family:var(--tsw-sans); }
.tsw-school-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.tsw-school-card { border:1px solid #d7d9d3; border-radius:16px; box-shadow:none; }
.tsw-school-card:hover { transform:translateY(-2px); box-shadow:var(--tsw-shadow-sm); }
.tsw-school-card__top { padding:22px 22px 0; gap:10px; }
.tsw-school-card__monogram { border-radius:12px; background:#edf1ec; color:#3c5c52; font-family:var(--tsw-sans); font-size:1.1rem; }
.tsw-school-card__body { padding:20px 22px 24px; }
.tsw-school-card h3 { font-family:var(--tsw-sans); font-size:1.24rem; line-height:1.3; font-weight:650; letter-spacing:-.025em; }
.tsw-school-card__summary { color:var(--tsw-ink-soft); font-size:.88rem; line-height:1.65; }
.tsw-school-card__address { font-size:.8rem; }
.tsw-school-card__footer { padding:16px 22px; background:#fafbf8; }
.tsw-status { border-radius:6px; font-size:.7rem; font-weight:600; line-height:1.4; }
.tsw-region-grid--states,.tsw-region-grid--cities { gap:16px; }
.tsw-region-card { min-height:235px; padding:24px; border-radius:14px; }
.tsw-region-card:hover { transform:translateY(-2px); }
.tsw-region-card__index { display:none; }
.tsw-region-card__eyebrow { margin-bottom:16px; }
.tsw-region-card h3 { font-size:1.3rem; letter-spacing:-.025em; }
.tsw-region-card h3 a::after { inset:0; }
.tsw-guide-card { border-radius:16px; box-shadow:none; }
.tsw-guide-card:hover { transform:translateY(-2px); box-shadow:var(--tsw-shadow-sm); }
.tsw-guide-card__visual { aspect-ratio:2 / 1; }
.tsw-guide-card h3 { font-family:var(--tsw-sans); font-size:1.3rem; line-height:1.35; }
.tsw-guide-card__meta { font-size:.69rem; line-height:1.5; }
.tsw-archive-hero,.tsw-page-hero,.tsw-profile-hero,.tsw-article-hero,.tsw-guide-index-hero { background:#293f3d; color:#e4ebe6; }
.tsw-archive-hero::before,.tsw-profile-hero::after { display:none; }
.tsw-archive-hero__grid,.tsw-article-hero__grid,.tsw-guide-index-hero__grid { min-height:0; padding-block:52px; gap:48px; }
.tsw-archive-hero h1,.tsw-page-hero h1,.tsw-profile-hero h1,.tsw-article-hero h1,.tsw-guide-index-hero h1 { color:#fffaf1; font-size:clamp(2.15rem,4.2vw,4rem); line-height:1.14; }
.tsw-archive-hero p,.tsw-page-hero p,.tsw-article-hero__copy>p:not(.tsw-kicker),.tsw-profile-hero__copy>p:not(.tsw-kicker) { color:#dce6de; font-family:var(--tsw-sans); font-size:1.02rem; }
.tsw-profile-hero { padding-block:48px; }
.tsw-profile-hero__grid { gap:40px; grid-template-columns:minmax(0,1fr) 210px; align-items:center; }
.tsw-profile-hero__score { min-width:0; padding:22px; border-radius:12px; }
.tsw-profile-hero__score p,.tsw-article-byline { color:#d2ded5; }
.tsw-profile-hero__score strong { font-family:var(--tsw-sans); font-size:2.2rem; }
.tsw-profile-jumps { display:flex; flex-wrap:wrap; gap:12px 22px; margin-top:22px; }
.tsw-profile-jumps a { color:#f1cf92; font-size:.87rem; font-weight:600; }
.tsw-profile-layout { gap:48px; padding-top:52px; grid-template-columns:minmax(0,1fr) 340px; }
.tsw-profile-section { padding-bottom:36px; margin-bottom:36px; }
.tsw-profile-section h2 { font-size:clamp(1.65rem,2.5vw,2.2rem); }
.tsw-profile-facts { gap:10px; }
.tsw-profile-facts>div { padding:16px; border-radius:10px; background:#f1f3ed; }
.tsw-profile-facts p,.tsw-source-note { font-size:.82rem; line-height:1.7; color:#58636b; }
.tsw-profile-facts strong { font-size:.9rem; overflow-wrap:anywhere; }
.tsw-editorial-content { font-size:1rem; line-height:1.85; }
.tsw-editorial-content h3 { margin-top:20px; font-size:1.1rem; }
.tsw-editorial-content .tsw-source-note { padding:18px; background:#eef2eb; border-left:3px solid #698871; border-radius:0 10px 10px 0; }
.tsw-profile-sidebar { position:static; }
.tsw-profile-sidebar-ad,.tsw-contact-card { box-shadow:none; border-radius:14px; }
.tsw-profile-sidebar-ad { min-height:0; padding:16px; }
.tsw-contact-card { padding:24px; border-top:4px solid #8a2f5f; }
.tsw-contact-card h2 { font-size:1.5rem; }
.tsw-contact-card__note { font-size:.78rem; }
.tsw-profile-sidebar-ad .tanzschulenwelt-affiliate-ad { margin:0; }
.tsw-profile-sidebar-ad .tanzschulenwelt-affiliate-notice { color:#505d64; font-size:12px; }
.tsw-hours-table>div { padding:12px 16px; }
.tsw-article-hero__grid { grid-template-columns:minmax(0,1.4fr) minmax(0,.65fr); }
.tsw-article-hero__image { transform:none; border-radius:18px; box-shadow:none; }
.tsw-article-byline a { color:#f1cf92; }
.tsw-article-layout,.tsw-page-layout { padding-top:52px; gap:54px; grid-template-columns:minmax(0,780px) minmax(220px,1fr); }
.tsw-page-layout:has(>.tsw-prose:only-child) { grid-template-columns:minmax(0,860px); justify-content:center; }
.tsw-prose { font-size:1.04rem; line-height:1.85; }
.tsw-prose .tsw-lead { font-family:var(--tsw-sans); font-size:1.14rem; line-height:1.8; }
.tsw-prose h2 { font-size:clamp(1.5rem,2.4vw,2.1rem); margin-top:1.9em; line-height:1.25; }
.tsw-prose th { text-transform:none; letter-spacing:0; font-size:.88rem; background:#293f3d; }
.tsw-prose th,.tsw-prose td { padding:14px; }
.tsw-prose table { font-size:.91rem; border-radius:10px; }
.tsw-article-sidebar__card { background:#edf0e8; color:#414b53; border:1px solid #d8ddd1; border-radius:14px; }
.tsw-article-sidebar__card h2 { color:var(--tsw-ink); font-size:1.4rem; }
.tsw-article-sidebar__card .tsw-button { width:100%; }
.tsw-method-band { background:#293f3d; }
.tsw-faq summary { font-family:var(--tsw-sans); font-size:1.12rem; font-weight:600; letter-spacing:-.01em; line-height:1.5; }
.tsw-faq details>div { font-size:.95rem; }
.tsw-site-footer { margin-top:80px; background:#202f2e; }
.tsw-footer-main nav a { font-size:.85rem; color:#d4ded8; }
.tsw-footer-source,.tsw-footer-bottom p { color:#bdcbc3; font-size:.78rem; }
.tsw-footer-bottom a { color:#e8d4b6; }
.tsw-list-search { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; padding:16px 20px; border:1px solid #d3d9d1; border-radius:12px; background:#eef1e9; margin-bottom:24px; }
.tsw-list-search label { font-size:.85rem; font-weight:650; }
.tsw-list-search input { flex:1 1 220px; width:100%; min-width:0; min-height:48px; padding:10px 14px; background:white; border:1px solid #9ca59d; border-radius:7px; font-size:16px; }
.tsw-list-search [role=status] { font-size:.8rem; color:#48554a; }
.tsw-toc { padding:18px 22px; margin-bottom:30px; border:1px solid #d2dacf; border-radius:12px; background:#edf1e9; }
.tsw-toc summary { cursor:pointer; font-size:1rem; font-weight:650; }
.tsw-toc ol { margin:16px 0 0; font-size:.92rem; line-height:1.6; }
.tsw-toc a { font-weight:500; }
@media(max-width:1180px) {
  .tsw-header-panel { top:82px; }
  .tsw-home-hero__grid { gap:32px; }
  .tsw-region-finder__row { grid-template-columns:1fr; }
  .tsw-school-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tsw-article-layout { grid-template-columns:minmax(0,1fr) 260px; gap:32px; }
}
@media(max-width:900px) {
  .tsw-shell { width:calc(100% - 40px); }
  .tsw-home-hero__grid { grid-template-columns:1fr; padding-block:44px; gap:36px; }
  .tsw-home-hero h1 { font-size:clamp(2.8rem,7vw,4rem); }
  .tsw-region-finder__row { grid-template-columns:minmax(0,1fr) auto; }
  .tsw-discovery { max-width:none; padding:26px; border-radius:20px; }
  .tsw-discovery>a { padding-block:15px; }
  .tsw-intro-grid,.tsw-section-heading--split { grid-template-columns:1fr; gap:20px; }
  .tsw-profile-layout,.tsw-page-layout,.tsw-article-layout { grid-template-columns:1fr; gap:32px; }
  .tsw-profile-sidebar { order:initial; }
  .tsw-profile-hero__grid { grid-template-columns:1fr; gap:24px; }
  .tsw-profile-hero__score { width:auto; max-width:340px; padding:18px; }
  .tsw-article-hero__grid { grid-template-columns:minmax(0,1fr) 200px; gap:24px; }
  .tsw-article-sidebar { position:static; }
  .tsw-home-hero__trust .tsw-shell { padding-block:16px; }
  .tsw-home-hero__trust a { width:auto; margin-left:0; }
}
@media(max-width:620px) {
  body { font-size:16px; }
  .tsw-shell { width:calc(100% - 36px); }
  .tsw-site-header__inner { width:calc(100% - 32px); min-height:72px; gap:10px; }
  .tsw-brand { gap:9px; }
  .tsw-brand__text strong { font-size:1.12rem; }
  .tsw-brand__mark { flex:0 0 38px; width:38px; height:38px; }
  .tsw-brand__mark::before { top:6px; left:17px; }
  .tsw-brand__mark span:first-child { top:14px; left:20px; height:20px; }
  .tsw-brand__mark span:last-child { top:16px; left:7px; }
  .tsw-nav-toggle { flex:0 0 44px; width:44px; height:44px; border-radius:10px; }
  .tsw-header-panel { top:72px; inset-inline:12px; border-radius:14px; }
  .tsw-home-hero h1 { font-size:clamp(2.35rem,10.4vw,3.65rem); letter-spacing:-.055em; }
  .tsw-home-hero__lead { font-size:1rem; }
  .tsw-home-hero__grid { padding-block:36px; }
  .tsw-region-finder__row { grid-template-columns:1fr; }
  .tsw-region-finder { margin-top:24px; }
  .tsw-home-hero__trust .tsw-shell { display:grid; gap:10px; }
  .tsw-discovery { padding:24px; }
  .tsw-discovery h2 { font-size:1.6rem; }
  .tsw-section { margin-block:52px; }
  .tsw-section--tint { padding:24px 14px; }
  .tsw-school-grid,.tsw-region-grid--states,.tsw-region-grid--cities,.tsw-guide-grid { grid-template-columns:1fr; }
  .tsw-region-card { min-height:0; padding:22px; }
  .tsw-region-card .tsw-card-link { margin-top:18px; }
  .tsw-archive-hero__grid,.tsw-article-hero__grid,.tsw-guide-index-hero__grid { padding-block:36px; }
  .tsw-archive-hero h1,.tsw-page-hero h1,.tsw-profile-hero h1,.tsw-article-hero h1,.tsw-guide-index-hero h1 { font-size:clamp(2rem,8.2vw,3rem); }
  .tsw-profile-hero { padding-block:34px; }
  .tsw-profile-hero__score { width:100%; max-width:none; }
  .tsw-profile-hero__score strong { display:inline-block; margin:6px 12px 6px 0; }
  .tsw-profile-hero__score>span { display:block; }
  .tsw-profile-hero__score p { display:inline; }
  .tsw-profile-hero__score a { display:block; }
  .tsw-profile-layout,.tsw-page-layout,.tsw-article-layout { padding-top:34px; }
  .tsw-profile-facts { grid-template-columns:1fr; }
  .tsw-hours-table>div { grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:12px; }
  .tsw-hours-table span { text-align:right; overflow-wrap:anywhere; }
  .tsw-article-hero__grid { grid-template-columns:1fr; }
  .tsw-article-hero__image { max-width:100%; max-height:170px; }
  .tsw-article-hero__image img { height:170px; object-fit:cover; }
  .tsw-prose { font-size:1rem; }
  .tsw-prose table { display:table; table-layout:fixed; overflow-wrap:anywhere; }
  .tsw-prose th,.tsw-prose td { padding:9px 7px; font-size:.8rem; }
  .tsw-prose .tsw-lead { font-size:1.04rem; }
  .tsw-breadcrumbs li { font-size:.7rem; }
  .tsw-contact-card { padding:22px; }
  .tsw-list-search { padding:14px; display:grid; grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) { .tsw-school-card:hover,.tsw-guide-card:hover,.tsw-region-card:hover { transform:none; } }
