:root {
  --navy: #14395d;
  --navy-deep: #0c2945;
  --aqua: #82ced0;
  --aqua-deep: #4aa9ae;
  --cream: #f7f5ee;
  --paper: #fffefa;
  --ink: #2c2530;
  --muted: #5f6871;
  --coral: #df7d66;
  --line: rgba(20, 57, 93, 0.16);
  --shadow: 0 22px 55px rgba(20, 57, 93, 0.13);
  --radius: 1.75rem;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: ui-rounded, "Avenir Next", Avenir, "Segoe UI", system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.58;
}
a { color: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--aqua-deep); outline-offset: 4px; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 20; transform: translateY(-180%); background: var(--paper); padding: .65rem .9rem; border-radius: .7rem; }
.skip-link:focus { transform: translateY(0); }
.wrap { width: min(1120px, calc(100% - 2.5rem)); margin: 0 auto; }

.topline { background: var(--navy); color: #fff; text-align: center; font-size: .86rem; letter-spacing: .025em; padding: .52rem 1rem; }
.topline strong { color: var(--aqua); }
.masthead { background: rgba(247, 245, 238, .94); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(12px); }
.nav { min-height: 75px; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--navy); text-decoration: none; font-weight: 800; font-size: 1.35rem; letter-spacing: -.06em; white-space: nowrap; }
.brand em { font-style: normal; font-weight: 500; }
.brand-mark { display: grid; grid-template-columns: 11px 11px; align-items: end; gap: 4px; height: 33px; }
.brand-mark i { display: block; border-radius: 6px 6px 0 0; height: 33px; background: var(--navy); }
.brand-mark i:last-child { height: 21px; background: var(--aqua); }
.nav-links { display: flex; align-items: center; gap: 1.15rem; font-size: .92rem; font-weight: 700; color: var(--navy); }
.nav-links a { text-decoration: none; }
.nav-links a:hover { color: var(--aqua-deep); }

.hero { position: relative; overflow: hidden; padding: clamp(4rem, 9vw, 7.5rem) 0 clamp(4.75rem, 9vw, 7rem); background: radial-gradient(circle at 83% 18%, rgba(130,206,208,.44), transparent 25rem), linear-gradient(122deg, #fffefa 0%, #f7f5ee 68%, #e5f3f1 100%); }
.hero::after { content: ""; position: absolute; width: 36rem; height: 36rem; border: 1px dashed rgba(130,206,208,.55); border-radius: 50%; right: -19rem; bottom: -18rem; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(290px, .7fr); align-items: center; gap: clamp(2.5rem, 7vw, 6rem); }
.eyebrow { display: inline-flex; align-items: center; gap: .55rem; color: var(--navy); font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: .64rem; height: .64rem; border-radius: 50%; background: var(--aqua); box-shadow: 0 0 0 4px rgba(130,206,208,.2); }
h1, h2, h3 { color: var(--navy-deep); line-height: 1.02; letter-spacing: -.055em; margin: 0; }
h1 { max-width: 720px; margin-top: 1rem; font-size: clamp(3.1rem, 7.4vw, 6.3rem); }
h1 span { color: var(--navy); display: block; }
.lead { max-width: 610px; margin: 1.65rem 0 0; font-size: clamp(1.05rem, 1.8vw, 1.23rem); color: var(--muted); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 3.25rem; padding: .8rem 1.2rem; border-radius: 999px; border: 1px solid transparent; background: var(--navy); color: #fff; text-decoration: none; font-weight: 800; transition: transform .16s var(--ease-out), background .16s var(--ease-out); }
.button:hover { background: var(--navy-deep); transform: translateY(-2px); }
.button:active { transform: scale(.97); }
.button--quiet { background: transparent; border-color: var(--line); color: var(--navy); }
.button--quiet:hover { background: rgba(255,255,255,.72); color: var(--navy-deep); }
.audience { display: flex; flex-wrap: wrap; gap: .6rem 1.3rem; margin: 1.6rem 0 0; padding: 0; list-style: none; color: var(--navy); font-size: .91rem; font-weight: 700; }
.audience li::before { content: "✓"; color: var(--aqua-deep); padding-right: .4rem; }
.hero-photo { min-height: 360px; margin: 0; border-radius: 49% 49% 9% 9%; background: var(--navy); box-shadow: var(--shadow); position: relative; overflow: hidden; }
.hero-photo::after { content: "move"; position: absolute; right: 1.2rem; top: 1rem; display: grid; place-items: center; width: 73px; height: 73px; border-radius: 50%; background: var(--aqua); color: var(--navy); font-size: .84rem; font-weight: 900; letter-spacing: .12em; transform: rotate(10deg); }
.hero-photo img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; object-position: center 18%; display: block; }
.hero-card { position: absolute; z-index: 1; left: 1.35rem; bottom: 1.35rem; background: rgba(255,254,250,.96); width: min(calc(100% - 2.7rem), 250px); padding: 1.15rem; border-radius: 1.1rem; color: var(--navy-deep); box-shadow: 0 12px 25px rgba(5,30,55,.16); }
.hero-card small { display: block; color: var(--muted); font-weight: 650; }
.hero-card strong { display: block; font-size: 1.26rem; letter-spacing: -.04em; }

.section { padding: clamp(4.3rem, 9vw, 7rem) 0; }
.section--paper { background: var(--paper); }
.section--navy { background: var(--navy); color: #fff; }
.section--navy h2, .section--navy h3 { color: #fff; }
.section-title { max-width: 660px; }
.section-title h2 { margin-top: .85rem; font-size: clamp(2.3rem, 4.7vw, 4.4rem); }
.section-title p { max-width: 600px; margin: 1.1rem 0 0; color: var(--muted); }
.section--navy .section-title p { color: rgba(255,255,255,.8); }

.promise-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 2.5rem; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--line); }
.promise { min-height: 220px; padding: 1.65rem; background: var(--paper); }
.promise b { display: block; color: var(--aqua-deep); font-size: .82rem; letter-spacing: .12em; }
.promise h3 { margin-top: 2.7rem; font-size: 1.55rem; }
.promise p { color: var(--muted); margin: .65rem 0 0; }

.course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 2.5rem; }
.course { min-height: 300px; padding: 1.65rem; border-radius: var(--radius); position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: end; }
.course::before { content: ""; position: absolute; width: 160px; height: 160px; border-radius: 48% 52% 62% 38%; top: -50px; right: -30px; background: rgba(255,255,255,.2); }
.course small { position: relative; color: rgba(255,255,255,.76); font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.course h3 { position: relative; margin-top: .6rem; font-size: 2rem; }
.course p { position: relative; max-width: 300px; margin: .75rem 0 0; color: rgba(255,255,255,.88); }
.course--power { background: linear-gradient(145deg, #d77662, #bf5c59); }
.course--flow { background: linear-gradient(145deg, #5d999d, #346f79); }
.course--dance { background: linear-gradient(145deg, #254f75, #14395d); }

.start-offer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center; margin-top: 2.5rem; padding: clamp(1.35rem, 3vw, 2rem); border-radius: 1.25rem; background: linear-gradient(120deg, #f7e7ed, #eed7e5); color: var(--navy-deep); }
.start-offer .eyebrow { color: #6e3457; }
.start-offer .eyebrow::before { background: #a9557e; box-shadow: 0 0 0 4px rgba(169,85,126,.14); }
.start-offer h3 { margin-top: .65rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.start-offer p { max-width: 690px; margin: .55rem 0 0; color: #594b58; }
.start-offer > strong { display: grid; min-width: 126px; padding-left: 1.4rem; border-left: 1px solid rgba(110,52,87,.25); color: #6e3457; font-size: 2.35rem; line-height: .92; text-align: center; }
.start-offer > strong small, .start-offer > strong em { font-size: .7rem; font-style: normal; font-weight: 800; line-height: 1.3; text-transform: uppercase; letter-spacing: .08em; }
.start-offer > strong em { margin-top: .35rem; color: #715b6b; letter-spacing: 0; text-transform: none; }
.price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.price-card { display: flex; min-height: 210px; flex-direction: column; padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.1rem; background: #fff; }
.price-card__label { min-height: 2.8rem; margin: 0; color: var(--navy); font-size: .88rem; font-weight: 850; letter-spacing: .04em; text-transform: uppercase; }
.price { display: flex; align-items: center; gap: .8rem; margin-top: .75rem; }
.price > strong { color: var(--navy-deep); font-size: 2.25rem; letter-spacing: -.06em; }
.price > span { padding-left: .75rem; border-left: 1px solid var(--line); color: var(--muted); font-size: .78rem; line-height: 1.35; }
.price > span b { color: var(--navy-deep); }
.price-card > p:last-child { margin: auto 0 0; padding-top: 1rem; color: var(--muted); font-size: .9rem; }
.ten-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(115px, .35fr) minmax(210px, .75fr); gap: 1.5rem; align-items: center; margin-top: 1rem; padding: clamp(1.35rem, 3vw, 2rem); border-radius: 1.25rem; background: var(--navy); color: #fff; }
.ten-card .eyebrow { color: var(--aqua); }
.ten-card h3 { margin-top: .55rem; color: #fff; font-size: 2rem; }
.ten-card p { margin: .5rem 0 0; color: rgba(255,255,255,.77); }
.ten-card__price, .ten-card__welcome { display: grid; align-content: center; gap: .25rem; min-height: 105px; padding-left: 1.5rem; border-left: 1px solid rgba(255,255,255,.22); }
.ten-card__price span, .ten-card__welcome span { color: rgba(255,255,255,.7); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.ten-card__price strong, .ten-card__welcome strong { color: #fff; font-size: 2.15rem; letter-spacing: -.06em; line-height: 1; }
.ten-card__welcome { background: rgba(130,206,208,.16); margin: -.55rem; padding: 1.05rem 1.2rem; border: 0; border-radius: .85rem; }
.ten-card__welcome span { color: var(--aqua); }
.ten-card__welcome p { margin: .4rem 0 0; font-size: .78rem; line-height: 1.38; }
.price-footnote { max-width: 850px; margin: 1.2rem 0 0; color: var(--muted); font-size: .84rem; }

.studio-gallery { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(240px, .85fr); gap: 1rem; margin-top: 2.5rem; }
.studio-gallery__item { min-height: 330px; margin: 0; overflow: hidden; border-radius: var(--radius); background: var(--navy); position: relative; box-shadow: 0 12px 30px rgba(20,57,93,.09); }
.studio-gallery__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--ease-out); }
.studio-gallery__item:hover img { transform: scale(1.025); }
.studio-gallery__item--wide { min-height: 430px; }
.studio-gallery__item--wide img { object-position: center 48%; }
.studio-gallery__item:not(.studio-gallery__item--wide) img { object-position: center 56%; }
.studio-gallery figcaption { position: absolute; left: 1rem; bottom: 1rem; max-width: calc(100% - 2rem); padding: .6rem .78rem; border-radius: .7rem; background: rgba(12,41,69,.84); color: #fff; font-size: .88rem; font-weight: 700; backdrop-filter: blur(8px); }

.testweek { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(250px, .85fr); gap: 2rem; align-items: stretch; }
.testweek__copy { padding: clamp(1.7rem, 4vw, 3rem); border-radius: var(--radius); background: linear-gradient(135deg, #f4fbfa, #cdebed); }
.testweek__copy h2 { margin-top: .85rem; font-size: clamp(2.2rem, 4.5vw, 3.9rem); }
.date { display: inline-flex; align-items: center; gap: .55rem; margin-top: 1.5rem; padding: .75rem .9rem; border-radius: .85rem; color: var(--navy); background: rgba(255,255,255,.7); font-weight: 800; }
.date::before { content: "↗"; color: var(--coral); }
.closed-note { margin-top: 1.25rem; padding: 1rem; border-left: 4px solid var(--coral); background: rgba(255,254,250,.78); color: var(--navy-deep); font-weight: 650; }
.testweek__course-note { margin: 1rem 0 0; color: var(--navy-deep); font-size: .94rem; line-height: 1.55; }
.testweek__whatsapp { margin-top: 1.15rem; padding: 1.2rem; border-radius: 1rem; background: rgba(255,254,250,.78); border: 1px solid rgba(20,57,93,.14); }
.testweek__whatsapp h3 { margin: 0; font-size: 1.3rem; color: var(--navy-deep); }
.testweek__whatsapp p { margin: .5rem 0 0; color: var(--muted); font-size: .93rem; }
.whatsapp-course-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin-top: 1rem; }
.whatsapp-course-links a { display: flex; align-items: center; min-height: 3.15rem; padding: .7rem .8rem; border-radius: .75rem; background: var(--navy); color: #fff; font-size: .84rem; font-weight: 800; line-height: 1.25; text-decoration: none; transition: transform .16s var(--ease-out), background .16s var(--ease-out); }
.whatsapp-course-links a:hover { background: var(--navy-deep); transform: translateY(-1px); }
.testweek__whatsapp small { display: block; margin-top: .85rem; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.testweek__whatsapp small a { color: var(--navy); font-weight: 800; }
.testweek__schedule { display: grid; gap: .15rem; margin: 1.25rem 0 0; padding: 0; list-style: none; border-top: 1px solid rgba(20,57,93,.16); }
.testweek__schedule li { display: grid; grid-template-columns: minmax(6.3rem, .42fr) 1fr; gap: 1rem; padding: .72rem 0; border-bottom: 1px solid rgba(20,57,93,.12); color: var(--navy-deep); font-size: .94rem; }
.testweek__schedule b { color: var(--navy); }
.testweek__steps { display: grid; gap: .85rem; padding: 1.25rem; border: 1px solid rgba(255,255,255,.25); border-radius: var(--radius); background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.step { display: grid; grid-template-columns: 36px 1fr; gap: .9rem; padding: .85rem .55rem; align-items: start; }
.step b { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; background: var(--aqua); color: var(--navy-deep); font-size: .78rem; }
.step strong { display: block; }
.step p { margin: .22rem 0 0; color: rgba(255,255,255,.72); font-size: .93rem; }

.split { display: grid; grid-template-columns: .9fr 1.1fr; align-items: start; gap: clamp(2rem, 7vw, 7rem); }
.copy p { max-width: 640px; color: var(--muted); }
.contact-card { padding: clamp(1.65rem, 4vw, 2.5rem); border-radius: var(--radius); background: var(--navy); color: #fff; box-shadow: var(--shadow); }
.contact-card h3 { font-size: 2rem; }
.contact-card p { margin: .9rem 0 0; color: rgba(255,255,255,.8); }
.contact-card .button { margin-top: 1.2rem; background: var(--aqua); color: var(--navy-deep); }
.contact-card .button:hover { background: #a0dddd; }
.contact-card__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .95rem; margin-top: 1.2rem; }
.contact-card__actions .button { margin-top: 0; }
.contact-card small { display: block; margin-top: .9rem; color: rgba(255,255,255,.67); }
.location { margin-top: 1.5rem; padding: 1.3rem 0 0; border-top: 1px solid var(--line); }
.location b { display: block; color: var(--navy); }
.text-link { color: var(--navy); font-weight: 800; text-underline-offset: 3px; }
.text-link--light { color: rgba(255,255,255,.92); }
.route-page { min-height: 100vh; padding: 3rem 0 5rem; background: linear-gradient(135deg, #f7f5ee, #e5f3f1); }
.route-card { max-width: 700px; margin: 2rem auto 0; padding: clamp(1.5rem, 4vw, 3.25rem); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.route-card h1 { margin-top: .9rem; font-size: clamp(2.35rem, 5vw, 4.25rem); }
.route-card > p { max-width: 610px; color: var(--muted); }
.route-card__actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.75rem; }
.route-card .booking-note { margin-bottom: 0; }
.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.faq-item { padding: 1.55rem; border: 1px solid var(--line); border-radius: 1.1rem; background: var(--paper); }
.faq-item h3 { font-size: 1.35rem; }
.faq-item p { margin: .7rem 0 0; color: var(--muted); }

.footer { padding: 3rem 0 2rem; background: var(--navy-deep); color: #fff; }
.footer-grid { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.footer .brand { color: #fff; }
.footer .brand-mark i:last-child { background: var(--aqua); }
.footer p { color: rgba(255,255,255,.7); margin: .65rem 0 0; }
.footer nav { display: flex; flex-wrap: wrap; justify-content: end; gap: .8rem 1.1rem; }
.footer nav a { color: rgba(255,255,255,.82); font-size: .9rem; }
.footer nav a:hover { color: var(--aqua); }
.footer-bottom { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.55); font-size: .8rem; }

.legal-page { min-height: 100vh; padding: 3rem 0 5rem; }
.legal-card { max-width: 820px; margin: 2rem auto 0; padding: clamp(1.5rem, 4vw, 3.5rem); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.legal-card h1 { font-size: clamp(2.6rem, 6vw, 4.7rem); }
.legal-card h2 { margin: 2.5rem 0 .6rem; font-size: 1.3rem; letter-spacing: -.035em; }
.legal-card p, .legal-card li { color: #41515f; }
.legal-card ul { padding-left: 1.15rem; }
.legal-card a { color: var(--navy); font-weight: 750; text-underline-offset: 3px; }
.legal-meta { color: var(--muted); font-size: .9rem; }
.back { display: inline-flex; margin-bottom: 1rem; color: var(--navy); font-weight: 800; text-underline-offset: 3px; }
.booking-page { min-height: 100vh; padding: 3rem 0 5rem; background: linear-gradient(135deg, #f7f5ee, #e5f3f1); }
.booking-card { max-width: 760px; margin: 2rem auto 0; padding: clamp(1.5rem, 4vw, 3.5rem); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.booking-card h1 { margin-top: .9rem; font-size: clamp(2.6rem, 6vw, 4.7rem); }
.booking-card > p { max-width: 600px; color: var(--muted); }
.booking-card form { display: grid; gap: 1.15rem; margin-top: 2rem; }
.booking-card label:not(.check-row) { display: grid; gap: .45rem; color: var(--navy); font-weight: 800; }
.booking-card input:not([type="checkbox"]), .booking-card select { width: 100%; min-height: 3.05rem; border: 1px solid var(--line); border-radius: .75rem; padding: .65rem .75rem; background: #fff; color: var(--ink); font: inherit; }
.check-row { display: flex; align-items: flex-start; gap: .65rem; color: var(--ink); font-size: .92rem; }
.check-row input { flex: 0 0 auto; width: 1.15rem; height: 1.15rem; margin-top: .18rem; accent-color: var(--navy); }
.booking-note { margin-top: 1.5rem; padding: 1rem; border-left: 4px solid var(--aqua-deep); background: #eff9f8; color: var(--navy-deep) !important; font-weight: 650; }

.admin-page { min-height: 100vh; padding: 3rem 0 5rem; background: linear-gradient(135deg, #f7f5ee, #e5f3f1); }
.admin-card, .admin-section { max-width: 1080px; margin: 2rem auto 0; padding: clamp(1.5rem, 4vw, 3rem); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.admin-card { max-width: 620px; }
.admin-card h1, .admin-header h1 { margin-top: .9rem; font-size: clamp(2.4rem, 5.5vw, 4.5rem); }
.admin-card p, .admin-header p, .admin-intro { color: var(--muted); }
.admin-form { display: grid; gap: 1rem; margin-top: 2rem; }
.admin-form label { display: grid; gap: .45rem; color: var(--navy); font-weight: 800; }
.admin-form input { min-height: 3.05rem; border: 1px solid var(--line); border-radius: .75rem; padding: .65rem .75rem; background: #fff; color: var(--ink); font: inherit; }
.admin-error { padding: .85rem 1rem; border-left: 4px solid var(--coral); background: #fff1ee; color: var(--navy-deep) !important; font-weight: 700; }
.admin-header { max-width: 1080px; margin: 0 auto; display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.admin-header > form { margin: 0; }
.admin-header .button--quiet { background: rgba(255,254,250,.8); }
.admin-section h2 { font-size: 1.7rem; }
.admin-table-wrap { overflow-x: auto; margin-top: 1.2rem; border: 1px solid var(--line); border-radius: .85rem; }
.admin-table-wrap table { width: 100%; min-width: 650px; border-collapse: collapse; text-align: left; }
.admin-table-wrap th, .admin-table-wrap td { padding: .9rem 1rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.admin-table-wrap th { color: var(--navy); background: #eff9f8; font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; }
.admin-table-wrap tr:last-child td { border-bottom: 0; }
.admin-table-wrap small { color: var(--muted); }

.regular-page { min-height: 100vh; padding: 3rem 0 5rem; background: linear-gradient(135deg, #f7f5ee, #e5f3f1); }
.regular-header { max-width: 820px; margin: 1rem auto 2rem; }
.regular-header h1 { margin: .55rem 0 .75rem; font-size: clamp(2.4rem, 5.5vw, 4.5rem); }
.regular-header > p { max-width: 730px; color: var(--muted); }
.regular-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px, 1fr)); gap: 1.15rem; max-width: 1080px; margin: 0 auto; }
.regular-card { display: flex; min-height: 300px; flex-direction: column; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.regular-card h2 { margin: .25rem 0 .8rem; font-size: 1.35rem; letter-spacing: -.035em; }
.regular-card p:not(.eyebrow):not(.regular-price):not(.booking-note) { color: var(--muted); }
.regular-price { display: grid; gap: .2rem; margin: .25rem 0 1rem; color: var(--navy); }
.regular-price strong { font-size: 1.35rem; }
.regular-price span { color: var(--muted); font-size: .9rem; }
.regular-card .button { margin-top: auto; align-self: flex-start; }
.regular-schedule { max-width: 1080px; margin: 0 auto 2rem; padding: clamp(1.3rem, 3.5vw, 2.3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.regular-schedule__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .55fr); gap: 1.5rem; align-items: end; }
.regular-schedule h2 { margin-top: .55rem; font-size: clamp(1.8rem, 3.7vw, 2.75rem); }
.regular-schedule h3 { font-size: 1.22rem; letter-spacing: -.035em; }
.regular-schedule p { color: var(--muted); }
.regular-schedule__heading > div > p { max-width: 690px; margin: .65rem 0 0; }
.regular-schedule__heading .booking-note { margin: 0; }
.regular-schedule__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.15rem; margin: 1.65rem 0 0; padding: 0; list-style: none; }
.regular-schedule__item { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.regular-schedule__time { display: grid; align-content: start; gap: .15rem; color: var(--navy); font-size: .9rem; }
.regular-schedule__time strong { color: var(--navy-deep); }
.regular-schedule__time span { color: var(--muted); }
.regular-schedule__item p { margin: .4rem 0 0; font-size: .9rem; line-height: 1.45; }
.regular-schedule__access { margin: 1.45rem 0 0; padding: 1rem; border-radius: .85rem; background: #eff9f8; color: var(--navy-deep) !important; font-weight: 650; }
.regular-schedule--notice { max-width: 820px; margin-left: auto; margin-right: auto; }
.regular-schedule--notice > p:not(.booking-note) { max-width: 690px; margin: .8rem 0 0; }
.regular-schedule--notice .booking-note { margin-bottom: 0; }

@media (max-width: 720px) {
  .nav-links { display: none; }
  .hero-grid, .testweek, .split { grid-template-columns: 1fr; }
  .hero-photo { min-height: 270px; max-width: 470px; }
  .hero-photo img { min-height: 270px; }
  .promise-grid, .course-grid, .price-grid { grid-template-columns: 1fr; }
  .studio-gallery { grid-template-columns: 1fr; }
  .faq-grid { grid-template-columns: 1fr; }
  .studio-gallery__item, .studio-gallery__item--wide { min-height: 290px; }
  .testweek__schedule li { grid-template-columns: 1fr; gap: .15rem; }
  .whatsapp-course-links { grid-template-columns: 1fr; }
  .start-offer, .ten-card { grid-template-columns: 1fr; }
  .start-offer > strong, .ten-card__price, .ten-card__welcome { min-height: auto; margin: 0; padding: 1rem 0 0; border-top: 1px solid rgba(20,57,93,.18); border-left: 0; text-align: left; }
  .ten-card__price, .ten-card__welcome { border-color: rgba(255,255,255,.22); }
  .ten-card__welcome { padding: 1rem; }
  .promise { min-height: 160px; }
  .promise h3 { margin-top: 1rem; }
  .footer-grid { align-items: start; flex-direction: column; }
  .footer nav { justify-content: start; }
  .admin-header { align-items: start; flex-direction: column; }
  .regular-grid { grid-template-columns: 1fr; }
  .regular-schedule__heading, .regular-schedule__list { grid-template-columns: 1fr; }
  .regular-schedule__item { grid-template-columns: 1fr; gap: .35rem; }
}

@media (max-width: 480px) {
  .wrap { width: min(100% - 1.5rem, 1120px); }
  .nav { min-height: 64px; }
  .brand { font-size: 1.2rem; }
  .hero { padding-top: 3.5rem; }
  .button { width: 100%; }
  .contact-card__actions { align-items: stretch; }
  .hero-photo { min-height: 300px; }
  .hero-photo img { min-height: 300px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }


/* Pole Dance Erftstadt – host-scoped visual system. No external fonts or assets. */
.pole-body {
  --pole-ink: #24425e;
  --pole-blue: #3e72a6;
  --pole-magenta: #bd00aa;
  --pole-magenta-deep: #8e007e;
  --pole-aqua: #c9eff6;
  --pole-paper: #fafcf2;
  --pole-blush: #f8edf4;
  --pole-muted: #5a6d7d;
  --pole-line: rgba(36, 66, 94, .16);
  margin: 0;
  background: var(--pole-paper);
  color: var(--pole-ink);
  font-family: ui-serif, Georgia, Cambria, "Times New Roman", serif;
}
.pole-body .wrap { width: min(1120px, calc(100% - 2.5rem)); }
.pole-topline { padding: .58rem 1rem; background: var(--pole-ink); color: rgba(255,255,255,.85); text-align: center; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .78rem; letter-spacing: .09em; text-transform: uppercase; }
.pole-topline strong { color: var(--pole-aqua); }
.pole-header { position: sticky; top: 0; z-index: 10; border-bottom: 1px solid var(--pole-line); background: rgba(250,252,242,.94); backdrop-filter: blur(12px); }
.pole-nav { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 1rem; }
.pole-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--pole-ink); text-decoration: none; line-height: .88; }
.pole-brand__mark { display: grid; width: 2.28rem; height: 2.28rem; place-items: center; border-radius: 50% 50% 48% 48%; background: var(--pole-magenta); color: #fff; font-family: ui-serif, Georgia, serif; font-size: 1.35rem; font-weight: 700; transform: rotate(-9deg); }
.pole-brand small { display: block; margin-bottom: .22rem; color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .55rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.pole-brand strong { display: block; font-size: 1.07rem; letter-spacing: -.04em; }
.pole-nav__links { display: flex; gap: 1.3rem; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .86rem; font-weight: 750; }
.pole-nav__links a { color: var(--pole-ink); text-decoration: none; }
.pole-nav__links a:hover { color: var(--pole-magenta); }
.pole-site h1, .pole-site h2, .pole-site h3, .pole-legal h1, .pole-legal h2, .pole-legal h3 { color: var(--pole-ink); font-family: ui-serif, Georgia, Cambria, serif; }
.pole-hero { position: relative; overflow: hidden; padding: clamp(4.8rem, 9vw, 8rem) 0 clamp(5rem, 10vw, 8.5rem); background: radial-gradient(circle at 84% 28%, rgba(201,239,246,.8), transparent 24rem), linear-gradient(130deg, #fafcf2 0%, #f6f8ef 54%, #edf7fa 100%); }
.pole-hero::before { position: absolute; top: -12rem; right: -10rem; width: 32rem; height: 32rem; border: 1px solid rgba(189,0,170,.16); border-radius: 43% 57% 49% 51%; content: ""; transform: rotate(21deg); }
.pole-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(250px, .54fr); align-items: center; gap: clamp(2rem, 8vw, 7rem); }
.pole-kicker { display: inline-block; color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .73rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.pole-kicker::before { display: inline-block; width: .46rem; height: .46rem; margin-right: .55rem; border-radius: 50%; background: currentColor; content: ""; }
.pole-site h1 { max-width: 780px; margin: .85rem 0 0; font-size: clamp(3.35rem, 7.4vw, 6.8rem); font-weight: 600; letter-spacing: -.075em; line-height: .86; }
.pole-site h1 span { display: block; color: var(--pole-magenta); font-style: italic; }
.pole-lead { max-width: 610px; margin: 1.55rem 0 0; color: var(--pole-muted); font-size: clamp(1.05rem, 1.8vw, 1.22rem); line-height: 1.62; }
.pole-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.pole-button { display: inline-flex; min-height: 3.2rem; align-items: center; justify-content: center; padding: .78rem 1.25rem; border: 1px solid var(--pole-magenta); border-radius: 999px; background: var(--pole-magenta); color: #fff; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .88rem; font-weight: 800; text-align: center; text-decoration: none; transition: transform .16s var(--ease-out), background .16s var(--ease-out); }
.pole-button:hover { background: var(--pole-magenta-deep); transform: translateY(-2px); }
.pole-button:active { transform: scale(.97); }
.pole-button--quiet { background: transparent; color: var(--pole-ink); }
.pole-button--quiet:hover { background: rgba(255,255,255,.74); color: var(--pole-ink); }
.pole-trust { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: 1.45rem 0 0; padding: 0; color: var(--pole-ink); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .84rem; font-weight: 750; list-style: none; }
.pole-trust li::before { margin-right: .42rem; color: var(--pole-magenta); content: "✦"; }
.pole-hero__card { padding: clamp(1.45rem, 3vw, 2.25rem); border: 1px solid rgba(189,0,170,.17); border-radius: 2.2rem 2.2rem 2.2rem .6rem; background: rgba(255,255,255,.78); box-shadow: 0 22px 55px rgba(36,66,94,.13); }
.pole-hero__card > span { color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .72rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.pole-hero__card strong { display: block; margin-top: .85rem; color: var(--pole-ink); font-size: clamp(2.1rem, 4vw, 3rem); letter-spacing: -.065em; line-height: .92; }
.pole-hero__card p { margin: 1.25rem 0 0; color: var(--pole-muted); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .9rem; line-height: 1.55; }
.pole-hero__card p b { color: var(--pole-ink); }
.pole-hero__card a { display: block; margin-top: 1.55rem; color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .86rem; font-weight: 800; text-underline-offset: 4px; }
.pole-section { padding: clamp(4.5rem, 8vw, 7.5rem) 0; }
.pole-section--paper { background: var(--pole-paper); }
.pole-section--ink { background: linear-gradient(135deg, #24425e, #2f5677); color: #fff; }
.pole-section--blush { background: linear-gradient(120deg, #f8edf4, #f4f1f8); }
.pole-heading { max-width: 720px; }
.pole-heading h2 { margin: .75rem 0 0; font-size: clamp(2.55rem, 5vw, 4.65rem); font-weight: 600; letter-spacing: -.07em; line-height: .94; }
.pole-heading p { max-width: 650px; margin: 1.15rem 0 0; color: var(--pole-muted); font-size: 1.04rem; }
.pole-heading--light h2, .pole-heading--light p { color: #fff; }
.pole-heading--light p { color: rgba(255,255,255,.75); }
.pole-heading--light .pole-kicker { color: var(--pole-aqua); }
.pole-promise-grid, .pole-offer-grid, .pole-faq-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.pole-promise-grid article { min-height: 238px; padding: 1.5rem; border: 1px solid var(--pole-line); border-radius: 1.15rem; background: rgba(255,255,255,.6); }
.pole-promise-grid b { color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .77rem; letter-spacing: .12em; }
.pole-promise-grid h3, .pole-offer-grid h3, .pole-faq-grid h3 { margin: 2rem 0 .55rem; font-size: 1.65rem; letter-spacing: -.05em; }
.pole-promise-grid p, .pole-faq-grid p { margin: 0; color: var(--pole-muted); }
.pole-offer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pole-offer-grid article { display: flex; min-height: 300px; flex-direction: column; padding: 1.45rem; border: 1px solid rgba(255,255,255,.23); border-radius: 1.2rem; background: rgba(255,255,255,.08); }
.pole-offer-grid article:nth-child(2) { background: rgba(189,0,170,.26); }
.pole-offer-grid span { color: var(--pole-aqua); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.pole-offer-grid h3 { margin-top: 1.8rem; color: #fff; }
.pole-offer-grid p { margin: 0; color: rgba(255,255,255,.74); font-size: .95rem; }
.pole-offer-grid a { margin-top: auto; padding-top: 1.25rem; color: #fff; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .87rem; font-weight: 800; text-underline-offset: 4px; }
.pole-schedule__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 2.5rem; }
.pole-schedule__grid article { padding: 1.35rem; border-top: 3px solid var(--pole-magenta); background: rgba(255,255,255,.62); }
.pole-schedule__grid article > span { color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.pole-schedule__grid h3 { margin: 1.2rem 0 .18rem; font-size: 1.25rem; letter-spacing: -.04em; }
.pole-schedule__grid p { margin: 0; color: var(--pole-muted); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .86rem; line-height: 1.5; }
.pole-schedule__grid p b { color: var(--pole-ink); }
.pole-schedule__note { margin-top: 1.3rem !important; padding-top: 1rem; border-top: 1px solid var(--pole-line); }
.pole-schedule__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.1rem; margin-top: 2rem; }
.pole-text-link { color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .88rem; font-weight: 800; text-underline-offset: 4px; }
.pole-contact { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(250px, .6fr); gap: clamp(2rem, 7vw, 6rem); align-items: center; }
.pole-contact h2 { margin: .75rem 0 0; font-size: clamp(2.55rem, 5vw, 4.7rem); font-weight: 600; letter-spacing: -.075em; line-height: .92; }
.pole-contact > div > p { max-width: 650px; color: var(--pole-muted); font-size: 1.04rem; }
.pole-contact aside { padding: 1.65rem; border: 1px solid rgba(189,0,170,.2); border-radius: 1.4rem; background: rgba(255,255,255,.65); box-shadow: 0 18px 45px rgba(36,66,94,.09); }
.pole-contact aside strong { color: var(--pole-ink); font-size: 1.6rem; letter-spacing: -.05em; }
.pole-contact aside p { color: var(--pole-muted); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .92rem; }
.pole-contact aside a { color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .88rem; font-weight: 800; text-underline-offset: 4px; }
.pole-faq-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pole-faq-grid article { padding: 1.45rem; border: 1px solid var(--pole-line); border-radius: 1rem; background: rgba(255,255,255,.58); }
.pole-faq-grid h3 { margin: 0 0 .65rem; font-size: 1.35rem; }
.pole-footer { padding: 3.2rem 0 1.7rem; background: #1d354b; color: #fff; }
.pole-footer__grid { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.pole-brand--footer { color: #fff; }
.pole-brand--footer strong { color: #fff; }
.pole-footer p { max-width: 320px; margin: .75rem 0 0; color: rgba(255,255,255,.67); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .87rem; }
.pole-footer nav { display: flex; flex-wrap: wrap; justify-content: end; gap: .85rem 1.15rem; font-family: ui-sans-serif, system-ui, sans-serif; font-size: .84rem; }
.pole-footer nav a { color: rgba(255,255,255,.82); }
.pole-footer nav a:hover { color: var(--pole-aqua); }
.pole-footer__bottom { margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.52); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .76rem; }
.pole-legal { min-height: 100vh; padding: 3.2rem 0 5rem; background: linear-gradient(135deg, #fafcf2, #eef7fa); }
.pole-back { display: inline-block; color: var(--pole-magenta); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .88rem; font-weight: 800; text-underline-offset: 4px; }
.pole-legal__card, .pole-route-card { max-width: 850px; margin: 1.4rem auto 0; padding: clamp(1.6rem, 4vw, 3.5rem); border: 1px solid var(--pole-line); border-radius: 1.5rem; background: rgba(255,255,255,.8); box-shadow: 0 20px 55px rgba(36,66,94,.11); }
.pole-legal__card h1, .pole-route-card h1 { margin: .7rem 0 0; font-size: clamp(2.7rem, 6vw, 5rem); font-weight: 600; letter-spacing: -.075em; line-height: .92; }
.pole-legal__card h2 { margin: 2.3rem 0 .55rem; font-size: 1.38rem; letter-spacing: -.04em; }
.pole-legal__card p, .pole-route-card p { color: var(--pole-muted); font-family: ui-sans-serif, system-ui, sans-serif; line-height: 1.7; }
.pole-legal__card a, .pole-route-card a:not(.pole-button) { color: var(--pole-magenta); font-weight: 800; text-underline-offset: 3px; }
.pole-legal__meta { color: var(--pole-muted); font-family: ui-sans-serif, system-ui, sans-serif; font-size: .82rem; }
.pole-route-card { max-width: 720px; }
.pole-route-card__note { margin-top: 1.4rem !important; padding: 1rem; border-left: 3px solid var(--pole-magenta); background: var(--pole-blush); color: var(--pole-ink) !important; font-weight: 750; }
@media (max-width: 850px) {
  .pole-offer-grid, .pole-schedule__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pole-hero__grid, .pole-contact { grid-template-columns: 1fr; }
  .pole-hero__card { max-width: 420px; }
}
@media (max-width: 640px) {
  .pole-nav { min-height: 70px; }
  .pole-nav__links { display: none; }
  .pole-hero { padding-top: 4rem; }
  .pole-promise-grid, .pole-offer-grid, .pole-schedule__grid, .pole-faq-grid { grid-template-columns: 1fr; }
  .pole-footer__grid { align-items: start; flex-direction: column; }
  .pole-footer nav { justify-content: start; }
  .pole-button { width: 100%; }
  .pole-actions, .pole-schedule__actions { align-items: stretch; flex-direction: column; }
}
