:root {
  --ink: #1f2b36;
  --muted: #5d6971;
  --accent: #c55a56;
  --deep: #243f52;
  --soft-blue: #cbdce1;
  --soft-lilac: #e2dde6;
  --soft-sage: #d7e0d0;
  --soft-apricot: #efd7c7;
  --plum: #896e88;
  --gold: #b98255;
  --stone: #f2f0eb;
  --paper: #fdfcf9;
  --line: #cfd5d4;
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.shell { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.skip-link { position: absolute; left: -10000px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; padding: .7rem 1rem; background: var(--ink); color: white; }

.site-header { position: sticky; top: 0; z-index: 20; padding: 18px 0; background: var(--paper); border-bottom: 0; }
.site-header::after { position: absolute; bottom: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, var(--soft-blue), var(--accent), var(--soft-lilac), var(--plum), var(--gold), var(--soft-sage), var(--soft-apricot)); content: ""; }
html { scroll-padding-top: 190px; }
.skip-link:focus { position: fixed; z-index: 30; }
.navigation, .site-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; }
.brand-mark { width: 3.25rem; height: 3.25rem; flex: none; }
.wordmark { display: inline-flex; flex-direction: column; line-height: 1.1; }
.wordmark span { font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }
.wordmark small { margin-top: .3rem; color: var(--muted); font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; }
.navigation { display: flex; align-items: center; flex-wrap: nowrap; gap: 1.5rem; }
.navigation nav { margin-left: auto; flex-shrink: 0; }
.brand {
  --brand-name-size: clamp(1.8rem, 3.6vw, 3rem);
  --brand-subtitle-size: clamp(1rem, 1.5vw, 1.25rem);
  --brand-subtitle-gap: .6rem;
  --brand-height: calc(var(--brand-name-size) * 1.1 + var(--brand-subtitle-gap) + var(--brand-subtitle-size) * 2.9);
  max-width: 100%; gap: 1.15rem; flex-shrink: 0;
}
.brand .wordmark { min-width: 0; }
.brand .brand-mark { width: var(--brand-height); height: var(--brand-height); }
.brand .wordmark span, .brand .brand-name { margin: 0; font-family: var(--serif); font-size: var(--brand-name-size); font-weight: 500; line-height: 1.1; letter-spacing: normal; white-space: nowrap; }
.brand .wordmark small { max-width: none; margin-top: var(--brand-subtitle-gap); font-size: var(--brand-subtitle-size); line-height: 1.45; white-space: nowrap; }
nav ul { display: flex; align-items: center; gap: clamp(.5rem, 1vw, 1rem); margin: 0; padding: 0; list-style: none; }
nav a { display: inline-block; padding: 1rem .4rem; white-space: nowrap; color: var(--muted); font-size: .95rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; transition: color .2s ease; }
nav a:hover, nav a:focus-visible, nav .active { color: var(--ink); }

.hero { display: grid; grid-template-columns: .95fr 1.05fr; align-items: start; gap: clamp(3rem, 8vw, 8.5rem); padding: clamp(2rem, 4vw, 3.5rem) 0 clamp(5.5rem, 11vw, 9rem); }
.eyebrow { margin: 0 0 1.2rem; color: var(--accent); font-size: .68rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.14; letter-spacing: -.025em; }
h1 { max-width: 650px; margin-bottom: 1.7rem; font-size: clamp(2.8rem, 5.3vw, 4.8rem); }
.hero .intro { margin-bottom: 1.4rem; }
.hero-welcome { max-width: 535px; margin-bottom: 1.8rem; color: var(--ink); font-size: clamp(1.15rem, 1.7vw, 1.35rem); line-height: 1.75; }
.hero-welcome p { margin-bottom: 1.2rem; }
.hero-welcome p:last-child { margin-bottom: 0; }
h2 { margin-bottom: 0; font-size: clamp(2.1rem, 3.6vw, 3.25rem); }
.intro { max-width: 535px; margin-bottom: 2.25rem; color: var(--muted); font-size: 1.08rem; }
.button { display: inline-flex; align-items: center; gap: 1.7rem; padding: .9rem 1.25rem 1rem 1.4rem; background: var(--deep); color: white; font-size: .78rem; font-weight: 600; letter-spacing: .045em; transition: transform .2s, background .2s; }
.button:hover, .button:focus-visible { background: #b04c49; transform: translateY(-2px); }
.button span { font-size: 1.2rem; }

.hero-art { container-type: inline-size; position: relative; min-height: 465px; overflow: hidden; background: linear-gradient(142deg, var(--soft-blue) 0 55%, var(--soft-sage) 55% 100%); }
.hero-art::before { position: absolute; z-index: 2; top: 9%; right: 10%; width: 31%; aspect-ratio: 1; border-radius: 50%; background: var(--accent); content: ""; }
.hero-art::after { position: absolute; z-index: 1; right: 0; bottom: 0; left: 0; height: 24%; background: linear-gradient(90deg, var(--soft-lilac) 0 58%, var(--soft-apricot) 58% 100%); content: ""; }
.hero-art .arch { position: absolute; z-index: 3; right: 11%; bottom: 0; width: 46%; height: 74%; border: 1px solid rgba(31,43,54,.75); border-bottom: 0; border-radius: 50% 50% 0 0; }
.hero-art .sun { position: absolute; z-index: 3; top: 16%; left: 13%; width: 3px; height: 60%; background: var(--plum); }
.hero-art .shape { position: absolute; z-index: 2; }
.hero-art .shape-one { top: 16%; left: 17%; width: 23%; aspect-ratio: 1; border: 1px solid var(--plum); border-radius: 48% 52% 46% 54%; transform: rotate(16deg); }
.hero-art .shape-two { right: 31%; bottom: 16%; width: 20%; aspect-ratio: 1; border-radius: 50% 50% 44% 56%; background: var(--gold); opacity: .82; }
.hero-art p { position: absolute; z-index: 4; left: 13%; bottom: 4%; width: 40%; margin: 0; color: var(--deep); opacity: .72; font-family: var(--serif); font-size: clamp(1rem, 4cqw, 1.35rem); line-height: 1.2; }
/* Independent cycles meet for the first time about twelve seconds after loading.
   Width-relative coordinates keep their contact geometry consistent on mobile. */
.hero-art::before {
  --rest-x: 74.5%;
  --rest-y: calc(9% + 15.5cqw);
  --meet-x: 58%;
  --meet-y: calc(50% - 6cqw);
  --away-x: 68%;
  --away-y: calc(50% + 9cqw);
  --arrival-x: 12px;
  --arrival-y: -14px;
  animation: circle-arrive 2.6s ease-out both, coral-journey 23.7s ease-in-out 2.6s infinite;
}
.hero-art .shape-one {
  --rest-x: 28.5%;
  --rest-y: calc(16% + 11.5cqw);
  --meet-x: 40%;
  --meet-y: calc(50% - 4cqw);
  --away-x: 62%;
  --away-y: calc(50% - 18cqw);
  --arrival-x: -10px;
  --arrival-y: 12px;
  --rest-angle: 16deg;
  animation: circle-arrive 2.6s ease-out both, outline-journey 31.1s ease-in-out 2.6s infinite;
}
.hero-art .shape-two {
  --rest-x: 59%;
  --rest-y: calc(84% - 10cqw);
  --meet-x: 48%;
  --meet-y: calc(50% + 9cqw);
  --away-x: 27%;
  --away-y: calc(50% + 3cqw);
  --arrival-x: 10px;
  --arrival-y: 14px;
  animation: circle-arrive 2.6s ease-out both, gold-journey 37.9s ease-in-out 2.6s infinite;
}
.hero-art::before, .hero-art .shape {
  left: var(--rest-x);
  top: var(--rest-y);
  right: auto;
  bottom: auto;
  transform: translate(-50%, -50%) rotate(var(--rest-angle, 0deg));
}
@keyframes circle-arrive {
  from { transform: translate(calc(-50% + var(--arrival-x)), calc(-50% + var(--arrival-y))) rotate(var(--rest-angle, 0deg)); }
  to { transform: translate(-50%, -50%) rotate(var(--rest-angle, 0deg)); }
}
@keyframes coral-journey {
  0%, 100% { left: var(--rest-x); top: var(--rest-y); }
  39.66%, 43% { left: var(--meet-x); top: var(--meet-y); }
  72% { left: var(--away-x); top: var(--away-y); }
}
@keyframes outline-journey {
  0%, 100% { left: var(--rest-x); top: var(--rest-y); }
  30.23%, 33% { left: var(--meet-x); top: var(--meet-y); }
  68% { left: var(--away-x); top: var(--away-y); }
}
@keyframes gold-journey {
  0%, 100% { left: var(--rest-x); top: var(--rest-y); }
  24.8%, 27% { left: var(--meet-x); top: var(--meet-y); }
  64% { left: var(--away-x); top: var(--away-y); }
}
@media (prefers-reduced-motion: reduce) {
  .hero-art::before, .hero-art .shape { animation: none; }
}
.leaf { display: none; }

.note-section { position: relative; padding: clamp(4rem, 8vw, 7.5rem) 0; background: linear-gradient(105deg, var(--stone), #f5f0ea); }
.note-section::before { position: absolute; top: 0; left: 0; width: 31%; height: 5px; background: linear-gradient(90deg, var(--accent), var(--gold), var(--plum)); content: ""; }
.note { display: grid; grid-template-columns: 1fr 2fr; gap: 2rem; }
.note > p:last-child { max-width: 745px; margin-bottom: 0; font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.45rem); line-height: 1.3; }
.about { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(3rem, 10vw, 10rem); padding: clamp(5.5rem, 11vw, 10rem) 0; }
.body-copy { max-width: 465px; color: var(--muted); }
.body-copy p + p { margin-top: 1.2rem; }
.text-link { display: inline-flex; gap: .7rem; margin-top: .5rem; color: var(--ink); font-size: .88rem; font-weight: 600; }
.text-link span { transition: transform .2s; }.text-link:hover span { transform: translateX(4px); }
.page-intro { padding: clamp(4.5rem, 10vw, 8rem) 0 clamp(4rem, 8vw, 6.5rem); }
.page-intro h1 { margin-bottom: 1.35rem; }
.about-detail, .contact-details { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(3rem, 10vw, 10rem); padding: clamp(5.5rem, 10vw, 8.5rem) 0; }
.offerings-page { padding-top: 0; }
.offering-grid h2 { margin: 2.8rem 0 1rem; font-size: 1.55rem; }
.page-cta { padding: clamp(3.5rem, 7vw, 5.5rem) 0; text-align: center; }
.contact-page { padding: clamp(5rem, 11vw, 9rem) 0; }
.contact-page h1 { max-width: 540px; margin-bottom: 0; font-size: clamp(2.8rem, 5.3vw, 4.8rem); }
.contact-details { padding-bottom: clamp(5.5rem, 10vw, 8rem); }

.offerings { padding-bottom: clamp(5.5rem, 10vw, 9rem); }
.offering-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 1.8rem; border-top: 2px solid var(--ink); }
.offering-grid article { min-height: 250px; padding: 1.9rem clamp(1.25rem, 3vw, 2.5rem) 1.5rem 0; border-bottom: 1px solid var(--line); }
.offering-grid article + article { padding-left: clamp(1.25rem, 3vw, 2.5rem); border-left: 1px solid var(--line); }
.offering-grid span { color: var(--accent); font-size: .71rem; font-weight: 600; letter-spacing: .1em; }
.offering-grid article:nth-child(2) span { color: var(--plum); }.offering-grid article:nth-child(3) span { color: var(--gold); }
h3 { margin: 2.8rem 0 1rem; font-size: 1.55rem; }.offering-grid p { color: var(--muted); font-size: .92rem; }

.contact { position: relative; padding: clamp(4.5rem, 9vw, 7.5rem) 0; overflow: hidden; background: var(--deep); color: white; }
.contact::after { position: absolute; right: -4rem; bottom: -6rem; width: 19rem; height: 19rem; border: 1px solid rgba(239,215,199,.7); border-radius: 50%; content: ""; }
.contact-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: 4rem; }.contact .eyebrow { color: #c7d8dd; }.contact h2 { max-width: 540px; }.contact-copy { max-width: 410px; color: #e6edef; }.button-light { margin-top: 1rem; background: var(--soft-blue); color: var(--deep); }.button-light:hover, .button-light:focus-visible { background: white; }
.site-footer { min-height: 145px; color: var(--muted); font-size: .75rem; }.site-footer p { margin: 0; }.site-footer div { display: flex; gap: 1.25rem; }.site-footer a:hover { color: var(--accent); }

@media (min-width: 541px) and (max-width: 1000px) {
  nav ul { display: grid; grid-template-columns: repeat(2, auto); gap: .25rem .75rem; }
  nav a { padding: .55rem .25rem; font-size: .85rem; }
  .brand { --brand-name-size: clamp(1.5rem, 3.2vw, 2rem); --brand-subtitle-size: clamp(.7rem, 1.4vw, .9rem); }
}

@media (max-width: 720px) {
  .shell { width: min(100% - 32px, 1120px); }.site-header { padding: 12px 0; }.navigation { gap: .75rem; }
  .hero, .about, .contact-inner, .note, .about-detail, .contact-details { grid-template-columns: 1fr; gap: 2.4rem; }.hero { padding-top: 2rem; }.hero-art { min-height: 350px; }.note { gap: 0; }.about { padding: 5rem 0; }.about-detail, .contact-details { padding: 5rem 0; }
  .offering-grid { grid-template-columns: 1fr; }.offering-grid article { min-height: auto; padding: 1.6rem 0; }.offering-grid article + article { padding-left: 0; border-left: 0; }h3 { margin: 1.4rem 0 .6rem; }
  .site-footer { align-items: flex-start; flex-direction: column; gap: 1rem; padding: 2.5rem 0; }
}

@media (max-width: 540px) {
  .navigation { gap: .5rem; }
  .brand { --brand-name-size: 1.3rem; --brand-subtitle-size: .6rem; --brand-subtitle-gap: .4rem; gap: .5rem; }
  .brand .wordmark small { letter-spacing: .06em; }
  nav ul { flex-direction: column; align-items: flex-start; gap: 0; }
  nav a { padding: .3rem .1rem; font-size: .68rem; letter-spacing: .04em; }
  html { scroll-padding-top: 130px; }
}

/* Legal information uses the site's typography with a compact reading width. */
.legal-page { padding-top: clamp(3rem, 7vw, 6rem); padding-bottom: 4rem; }
.legal-page h1 { margin-bottom: 1rem; }
.legal-intro { color: var(--muted); margin-bottom: 2.5rem; }
.legal-page section { max-width: 760px; margin-bottom: 2rem; }
.legal-page h2 { margin-bottom: .75rem; font-size: clamp(1.35rem, 3vw, 1.8rem); }
.legal-page address { font-style: normal; margin-bottom: 1rem; }
.legal-page a { text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.legal-page ul { padding-left: 1.25rem; }
.legal-page li + li { margin-top: .6rem; }

.legal-todo { max-width: 760px; margin-bottom: 2.5rem; padding: 1.25rem 1.5rem; border: 2px solid #9a481d; border-left-width: 6px; background: #fff0d6; color: #572709; }
.legal-todo p { margin-bottom: 0; }

.legal-page h1 { overflow-wrap: anywhere; }

.relationship-caption > span { display: block; }
.relationship-word { position: relative; height: 1.2em; }
.relationship-word > span { position: absolute; inset: 0; }
.word-is { animation: relationship-is 8s linear infinite; }
.word-in { opacity: 0; animation: relationship-in 8s linear infinite; }
@keyframes relationship-is {
  0%, 37.5% { opacity: 1; }
  50%, 87.5% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes relationship-in {
  0%, 37.5% { opacity: 0; }
  50%, 87.5% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .word-is, .word-in { animation: none; }
  .word-is { opacity: 1; }
  .word-in { opacity: 0; }
}

.button-contact { padding: 1.1rem 1.65rem; font-size: 1rem; }
.approach-copy { max-width: 745px; font-size: clamp(1.1rem, 1.5vw, 1.25rem); line-height: 1.75; }
.approach-copy p { margin-bottom: 1.4rem; }
.approach-copy p:last-child { margin-bottom: 0; }
@media (max-width: 720px) {
  .approach { gap: 1.5rem; }
}

.profile-intro { padding-top: clamp(2rem, 4vw, 3.5rem); }
.profile-copy { max-width: 780px; color: var(--ink); font-size: clamp(1.1rem, 1.5vw, 1.25rem); line-height: 1.75; }
.profile-copy p { margin-bottom: 1.4rem; }
.profile-copy p:last-child { margin-bottom: 0; }
.profile-copy ul { margin-bottom: 0; padding-left: 1.25rem; }
.profile-copy li + li { margin-top: .75rem; }
@media (max-width: 720px) {
  .profile-education { gap: 1.5rem; }
}

.section-size-title { font-size: clamp(2.1rem, 3.6vw, 3.25rem); }

.profile-copy .seminar-link { margin-top: 1.8rem; }
.seminar-link .text-link { display: inline; font-size: 1rem; line-height: 1.6; text-decoration: underline; text-underline-offset: .2em; }
.profile-copy .seminar-list li { padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.seminar-todo { margin-top: 2.5rem; }
.seminar-todo ul { margin-top: 1rem; }

.fee-intro { margin-top: 1.5rem; }
.rate-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin: 2.5rem 0; }
.rate-cards article { display: flex; flex-direction: column; overflow: hidden; padding: 0 1.6rem 1.6rem; background: var(--paper); border: 1px solid rgba(36, 63, 82, .12); box-shadow: 0 8px 24px rgba(36, 63, 82, .05); }
.rate-cards h3 { margin: 1.6rem 0 1rem; font-family: var(--sans); font-size: 1.65rem; line-height: 1.35; letter-spacing: normal; }
.rate-cards p { font-size: 1rem; }
.rate-cards .rate-duration { margin-top: auto; margin-bottom: .55rem; padding-top: 1.5rem; color: var(--muted); border-top: 1px solid var(--line); }
.rate-cards .rate-price { margin-bottom: 0; font-family: var(--serif); font-size: 2.5rem; line-height: 1.15; color: var(--deep); }
.cancellation-section { padding-top: clamp(3rem, 6vw, 5rem); padding-bottom: clamp(3rem, 6vw, 5rem); }
.cancellation-section .profile-copy { margin-top: 1.5rem; margin-bottom: 2rem; }
@media (max-width: 720px) {
  .rate-cards { grid-template-columns: 1fr; }
}

.rate-art { position: relative; height: 130px; flex: none; overflow: hidden; margin: 0 -1.6rem; background: linear-gradient(145deg, var(--soft-blue) 0 60%, var(--soft-sage) 60%); }
.rate-art::before { position: absolute; content: ""; right: 17%; top: 20px; width: 62px; height: 62px; border-radius: 50%; background: var(--accent); }
.rate-art::after { position: absolute; content: ""; bottom: -1px; right: 10%; width: 108px; height: 96px; border: 1px solid var(--deep); border-bottom: 0; border-radius: 60px 60px 0 0; }
.rate-ring { position: absolute; top: 25px; left: 14%; width: 52px; height: 52px; border: 1px solid var(--plum); border-radius: 48% 52% 46% 54%; transform: rotate(16deg); }
.rate-circle { position: absolute; left: 42%; bottom: -16px; width: 60px; height: 60px; background: var(--gold); opacity: .8; border-radius: 50%; }
.rate-cards article:nth-child(2) .rate-art { background: linear-gradient(145deg, var(--soft-lilac) 0 60%, var(--soft-blue) 60%); }
.rate-cards article:nth-child(2) .rate-art::before { right: 36%; top: 28px; background: var(--plum); }
.rate-cards article:nth-child(2) .rate-ring { left: 35%; top: 46px; width: 66px; height: 66px; border-color: var(--deep); }
.rate-cards article:nth-child(2) .rate-circle { left: 17%; bottom: -20px; background: var(--accent); }
.rate-cards article:nth-child(3) .rate-art { background: linear-gradient(145deg, var(--soft-sage) 0 60%, var(--soft-apricot) 60%); }
.rate-cards article:nth-child(3) .rate-art::before { right: 20%; top: 34px; background: var(--gold); }
.rate-cards article:nth-child(3) .rate-ring { left: 19%; top: 24px; width: 70px; height: 70px; }
.rate-cards article:nth-child(3) .rate-circle { left: 39%; bottom: 4px; width: 56px; height: 56px; background: var(--accent); }

.rate-circle-extra { position: absolute; left: 62%; top: 15px; width: 43px; height: 43px; border-radius: 50%; background: var(--plum); }

.fee-details-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 2.5rem; }
.fee-contact { padding: 1.4rem 2rem; font-size: 1.15rem; }
@media (max-width: 720px) {
  .fee-details-row { grid-template-columns: 1fr; gap: 1.5rem; }
  .fee-contact { justify-self: start; }
}

.contact-page { background: linear-gradient(105deg, var(--stone), #f5f0ea); color: var(--ink); }

.contact-page::after { border-color: var(--plum); opacity: .35; pointer-events: none; }
.contact-page .eyebrow { color: var(--accent); }
.contact-page .contact-copy { color: var(--muted); }
.contact-page .button-light { background: var(--deep); color: white; }
.contact-page .button-light:hover, .contact-page .button-light:focus-visible { background: #b04c49; }

.contact-page { padding: clamp(1.75rem, 4vw, 3rem) 0; }
.contact-page h1 { max-width: 540px; font-size: clamp(1.8rem, 3vw, 2.5rem); }
.contact-page .contact-inner { align-items: center; gap: 2rem; }
.contact-page + .contact-details { padding-top: clamp(1.75rem, 4vw, 3rem); padding-bottom: clamp(1.75rem, 4vw, 3rem); gap: 2rem; }
.contact-page + .contact-details h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
.contact-page + .contact-details .eyebrow { margin-bottom: .65rem; }
@media (max-width: 720px) {
  .contact-page .contact-inner, .contact-page + .contact-details { gap: 1rem; }
}

.contact-booking h1 { margin-bottom: 1.5rem; }
.contact-location { padding-top: 2rem; padding-bottom: 2rem; font-size: 1.1rem; line-height: 1.65; }
.contact-location h2 { margin-bottom: 1rem; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.contact-location address { font-style: normal; }
.contact-location p { margin-top: .75rem; margin-bottom: 0; }
.contact-location .text-link { font-size: 1rem; }
.contact-online { font-family: var(--serif); font-size: 1.5rem; color: var(--deep); }

.contact-location-heading { display: flex; align-items: baseline; gap: clamp(2rem, 12vw, 10rem); margin-bottom: 1rem; }
.contact-location-heading h2, .contact-location-heading .contact-online { margin: 0; }
.contact-location-heading .contact-online { white-space: nowrap; }
@media (max-width: 420px) {
  .contact-location-heading { gap: 1rem; }
  .contact-location-heading h2 { font-size: 1.25rem; }
  .contact-location-heading .contact-online { font-size: 1.15rem; }
}

.legal-page h1.privacy-title { max-width: none; font-size: clamp(1.35rem, 4.4vw, 3.25rem); overflow-wrap: normal; white-space: nowrap; }

/* The main sections now share one page; keep the five links beside the brand. */
@media (min-width: 541px) and (max-width: 1200px) {
  nav ul { display: grid; grid-template-columns: repeat(2, auto); gap: .25rem .75rem; }
  nav a { padding: .45rem .25rem; font-size: .85rem; }
}
@media (min-width: 1201px) {
  nav ul { gap: .35rem; }
  nav a { padding: 1rem .2rem; font-size: .8rem; letter-spacing: .04em; }
}
#inhalt .profile-intro h2 { margin-bottom: 1.35rem; }
#ueber-mich, #angebot { padding-top: clamp(3rem, 6vw, 5rem); }
.contact-booking h2 { max-width: 540px; margin-bottom: 1.5rem; font-size: clamp(1.8rem, 3vw, 2.5rem); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
@media (max-width: 380px) {
  .brand { --brand-name-size: 1.15rem; --brand-subtitle-size: .5rem; }
  nav a { font-size: .62rem; letter-spacing: 0; }
}
@media (max-width: 540px) {
  #inhalt h2 { overflow-wrap: anywhere; hyphens: auto; }
}

#arbeitsweise::before { content: none; }

.fee-section::before { content: none; }

.fee-cancellation { margin-top: 2.5rem; }
.fee-cancellation h3 { margin: 0 0 1rem; font-size: clamp(1.4rem, 2.4vw, 1.8rem); overflow-wrap: anywhere; }

.education-section::before { content: none; }

.contact-booking { background: linear-gradient(105deg, var(--soft-blue), #e3e9e7); }

.fee-price-note { margin: 0 0 1.5rem; color: var(--muted); font-size: 1rem; }
@media (max-width: 540px) {
  .profile-intro h1 { overflow-wrap: anywhere; hyphens: auto; }
}

/* Compact mobile offers: artwork beside the text, duration beside the price. */
@media (max-width: 720px) {
  .rate-cards { gap: .5rem; margin: 1.5rem 0; }
  .rate-cards article {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) auto;
    column-gap: .75rem;
    row-gap: .35rem;
    padding: .75rem .75rem .75rem 0;
    align-items: start;
  }
  .rate-cards .rate-art {
    grid-column: 1;
    grid-row: 1 / 4;
    align-self: stretch;
    height: auto;
    min-height: 105px;
    margin: -.75rem 0;
  }
  .rate-cards h3 { grid-column: 2 / 4; margin: 0; font-size: 1.05rem; line-height: 1.3; }
  .rate-cards p { grid-column: 2 / 4; margin: 0; font-size: .875rem; line-height: 1.4; }
  .rate-cards .rate-duration { grid-column: 2; margin: 0; padding: .25rem 0 0; border: 0; align-self: end; }
  .rate-cards .rate-price { grid-column: 3; align-self: end; padding-top: .25rem; font-size: 1.4rem; white-space: nowrap; }
  .rate-cards .rate-art::before { width: 32px; height: 32px; top: 16px; right: 6px; }
  .rate-cards .rate-art::after { width: 44px; height: 80px; right: 6px; }
  .rate-cards .rate-circle { width: 34px; height: 34px; left: 5px; bottom: 8px; }
  .rate-cards article:nth-child(2) .rate-art::before { right: 7px; top: 15px; }
  .rate-cards article:nth-child(2) .rate-circle { left: 4px; bottom: 9px; }
  .rate-cards article:nth-child(3) .rate-art::before { right: 1px; top: 43px; }
  .rate-cards article:nth-child(3) .rate-ring { width: 33px; height: 33px; left: 3px; top: 18px; }
  .rate-cards article:nth-child(3) .rate-circle { width: 30px; height: 30px; left: 8px; bottom: 7px; }
  .rate-cards .rate-circle-extra { width: 23px; height: 23px; left: 36px; top: 5px; }
}
@media (max-width: 380px) {
  .rate-cards article { grid-template-columns: 52px minmax(0, 1fr) auto; column-gap: .5rem; }
}

@media (max-width: 720px) {
  .rate-cards article:first-child .rate-art::before {
    width: 24px;
    height: 24px;
    right: 16px;
    top: calc(100% - 64px);
  }
  .rate-cards article:first-child .rate-circle {
    width: 24px;
    height: 24px;
    left: auto;
    right: 16px;
    bottom: 8px;
  }
  .rate-cards article:nth-child(2) .rate-art::before {
    width: 26px;
    height: 26px;
    top: auto;
    right: 14px;
    bottom: 10px;
  }
  .rate-cards article:nth-child(2) .rate-circle {
    width: 28px;
    height: 28px;
    left: 2px;
    top: 4px;
    bottom: auto;
  }
}

.seminar-subtitle {
  display: block;
  margin-top: .5rem;
  color: var(--muted);
  font-family: var(--sans);
  font-size: clamp(1.1rem, 1.5vw, 1.25rem);
  line-height: 1.5;
  letter-spacing: normal;
}
.profile-copy .seminar-list-following { margin-top: 2.5rem; }
.profile-copy .seminar-list .seminar-pending {
  padding: 1rem 1.25rem;
  border: 2px solid #9a481d;
  border-left-width: 6px;
  background: #fff0d6;
  color: #572709;
}

@media (min-width: 721px) {
  .rate-cards article { padding-bottom: 1.25rem; }
  .rate-cards h3 { margin: 1.2rem 0 .75rem; }
  .rate-cards .rate-duration { padding-top: 1rem; }
}

.navigation-tools { display: flex; flex-direction: column; align-items: flex-end; flex-shrink: 0; gap: .25rem; }
.language-switch { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .75rem; line-height: 1.4; }
.language-switch a { display: inline-flex; align-items: center; min-height: 28px; padding: .15rem .1rem; }
.language-switch a:hover { color: var(--ink); }
.language-switch a[aria-current="page"] { color: var(--ink); font-weight: 600; text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 540px) {
  .language-switch { gap: .2rem; font-size: .65rem; }
  html[lang="en"] .brand { --brand-subtitle-size: .5rem; }
  html[lang="en"] .brand .wordmark small { letter-spacing: .035em; }
}
@media (max-width: 380px) {
  html[lang="en"] .brand { --brand-subtitle-size: .43rem; }
}

/* The visible caption is the single text alternative to the animation. */
.hero-figure { min-width: 0; margin: 0; }
.hero-figure figcaption { margin-top: 1rem; color: var(--ink); font-size: .95rem; line-height: 1.65; }
.animation-toggle { margin-top: .75rem; padding: .55rem .85rem; border: 1px solid var(--ink); border-radius: .25rem; background: var(--paper); color: var(--ink); font: inherit; cursor: pointer; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--deep); outline-offset: 4px; }
.hero-figure.animation-paused .hero-art::before,
.hero-figure.animation-paused .hero-art .shape,
.hero-figure.animation-paused .relationship-word > span { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.hero .hero-highlights {
  color: var(--ink);
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  font-weight: 600;
  line-height: 1.5;
}
.hero-highlights span { display: block; }
.hero-highlights span + span { margin-top: .2rem; }
.hero-highlights span:first-child { font-size: 1em; }
