:root { --ink:#000; --muted:#000; --paper:#f8f3ed; --sage:#f4d9d2; --line:#000; --orange:#000; --cream:#fffaf5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; font-size:15px; }
a { color:inherit; text-decoration:none; }
.site-header { align-items:center; display:flex; justify-content:space-between; max-width:1260px; margin:auto; padding:30px 44px; }
.brand { align-items:center; display:flex; gap:11px; letter-spacing:.01em; }.brand-logo { display:block; height:48px; object-fit:contain; width:48px; }.brand-mark { align-items:center; background:var(--orange); border-radius:50%; color:#fff; display:flex; font-size:23px; height:40px; justify-content:center; width:40px; }.brand strong,.brand small { display:block; }.brand strong { font-size:14px; font-weight:600; }.brand small { color:var(--muted); font-size:10px; letter-spacing:.13em; margin-top:3px; text-transform:uppercase; }
.nav-links { align-items:center; display:flex; gap:36px; font-size:12px; }.nav-links a:not(.nav-book) { color:var(--muted); }.nav-book { border-bottom:1px solid var(--ink); padding-bottom:5px; }.nav-book span,.text-link span { color:var(--orange); margin-left:8px; }.menu-button { display:none; background:none; border:0; color:var(--ink); font-size:20px; }
.intro-section { display:grid; grid-template-columns:1fr 1fr; margin:25px auto 105px; max-width:1170px; min-height:460px; padding:0 44px; }.intro-copy { align-self:center; padding-bottom:25px; }.eyebrow { color:var(--orange); font-size:10px; font-weight:600; letter-spacing:.19em; margin:0 0 19px; text-transform:uppercase; }.intro-copy h1,h2 { font-family:'Playfair Display',serif; font-weight:500; letter-spacing:-.035em; line-height:1.05; margin:0; }.intro-copy h1 { font-size:clamp(42px,5.3vw,73px); }.intro-copy em,h2 em { color:var(--orange); font-weight:500; }.intro-text { color:var(--muted); line-height:1.7; margin:29px 0 27px; max-width:330px; }.text-link { border-bottom:1px solid var(--ink); display:inline-block; font-size:12px; padding-bottom:8px; }
.intro-art { background:var(--sage); height:460px; overflow:hidden; position:relative; }.sun-disc { background:#f3c59d; border-radius:50%; height:315px; left:23%; position:absolute; top:58px; width:315px; }.art-caption { color:#fff; font-family:'Playfair Display',serif; font-size:24px; font-style:italic; line-height:1.15; position:absolute; right:26px; top:29px; }.leaf { background:#799783; border-radius:100% 0 100% 0; height:175px; opacity:.9; position:absolute; transform:rotate(31deg); width:73px; }.leaf:after { background:#b8cdb8; content:''; height:1px; left:36px; position:absolute; top:0; transform:rotate(-26deg); transform-origin:bottom; width:155px; }.leaf-one { bottom:-25px; left:22%; transform:rotate(12deg); }.leaf-two { bottom:43px; left:40%; transform:rotate(44deg) scale(.75); }.leaf-three { bottom:-40px; right:5%; transform:rotate(73deg) scale(.8); }
.schedule-section { background:var(--cream); border-bottom:1px solid var(--line); border-top:1px solid var(--line); padding:74px max(44px, calc((100% - 1080px)/2)) 45px; }.section-heading { align-items:end; display:flex; justify-content:space-between; margin-bottom:39px; }.section-heading h2 { font-size:38px; }.week-controls { align-items:center; display:flex; gap:19px; }.week-controls span { color:var(--muted); font-size:11px; min-width:115px; text-align:center; }.week-controls button { background:none; border:0; color:var(--orange); cursor:pointer; font-size:20px; padding:3px; }.calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:9px; }.day-column { min-width:0; }.day-head { border-bottom:1px solid var(--line); margin-bottom:12px; padding:0 10px 13px; }.day-name { color:var(--muted); font-size:10px; letter-spacing:.16em; text-transform:uppercase; }.day-number { display:block; font-family:'Playfair Display',serif; font-size:26px; margin-top:5px; }.day-number.today { color:var(--orange); }.day-number.today:after { background:var(--orange); border-radius:50%; content:''; display:inline-block; height:4px; margin:0 0 5px 6px; width:4px; }.class-card { background:var(--sage); border:0; color:var(--ink); cursor:pointer; display:block; min-height:152px; padding:16px 14px; text-align:left; transition:background .2s,transform .2s; width:100%; }.class-card:hover { background:#cbdcca; transform:translateY(-3px); }.class-card.empty { background:transparent; cursor:default; }.class-time { font-size:11px; font-weight:600; }.class-type { font-family:'Playfair Display',serif; font-size:21px; line-height:1.05; margin-top:21px; }.class-level { color:var(--muted); font-size:10px; margin-top:10px; }.calendar-note { color:var(--muted); font-size:11px; margin:27px 0 0; }.dot { background:var(--orange); border-radius:50%; display:inline-block; height:6px; margin-right:8px; width:6px; }
.about-section { display:grid; gap:clamp(50px,10vw,145px); grid-template-columns:1.05fr .95fr; margin:auto; max-width:1000px; padding:120px 44px; }.about-photo { height:430px; position:relative; }.about-photo img { height:100%; object-fit:cover; width:100%; }.photo-tag { background:var(--orange); bottom:0; color:#fff; font-size:10px; left:0; letter-spacing:.13em; padding:11px 15px; position:absolute; text-transform:uppercase; }.about-copy { align-self:center; max-width:345px; }.about-copy h2 { font-size:54px; }.about-copy > p:not(.eyebrow):not(.signature) { color:var(--muted); line-height:1.75; margin-top:27px; }.signature { font-family:'Playfair Display',serif; font-size:15px; line-height:1.5; margin-top:30px; }.signature span { color:var(--orange); font-size:24px; font-style:italic; }
footer { border-top:1px solid var(--line); color:var(--muted); display:flex; font-size:10px; justify-content:space-between; letter-spacing:.11em; margin:0 44px; padding:25px 0 30px; text-transform:uppercase; }footer span:first-child { color:var(--ink); }
.class-dialog { background:var(--cream); border:0; box-shadow:0 22px 90px #263d3740; color:var(--ink); max-width:620px; padding:0; width:calc(100% - 35px); }.class-dialog::backdrop { background:#263d3766; }.close-dialog { background:var(--paper); border:0; border-radius:50%; color:var(--ink); cursor:pointer; font-size:23px; height:34px; line-height:1; position:absolute; right:16px; top:16px; width:34px; z-index:2; }.dialog-image { height:235px; }.dialog-image img { height:100%; object-fit:cover; width:100%; }.dialog-content { padding:27px 31px 30px; }.dialog-content h2 { font-size:37px; }.class-meta { color:var(--muted); display:flex; font-size:11px; gap:22px; margin:17px 0; }.class-meta span + span:before { color:var(--orange); content:'·'; margin-right:22px; }.dialog-content > p:not(.eyebrow):not(.spots) { color:var(--muted); line-height:1.65; margin:0 0 24px; }.email-label { color:var(--muted); display:block; font-size:10px; margin-bottom:7px; }.booking-row { display:flex; gap:8px; }.booking-row input { border:1px solid var(--line); color:var(--ink); flex:1; font:12px 'DM Sans',sans-serif; min-width:0; padding:0 12px; }.primary-button { background:var(--orange); border:0; color:#fff; cursor:pointer; font:600 11px 'DM Sans',sans-serif; letter-spacing:.06em; padding:15px 19px; text-transform:uppercase; }.primary-button span { margin-left:20px; }.spots { color:var(--muted); font-size:10px; margin:14px 0 0; }.toast { background:var(--ink); bottom:24px; color:#fff; font-size:12px; left:50%; opacity:0; padding:14px 20px; pointer-events:none; position:fixed; transform:translate(-50%,20px); transition:.3s; }.toast.visible { opacity:1; transform:translate(-50%,0); }
@media (max-width:700px) { .site-header { padding:22px 20px; }.nav-links { display:none; }.menu-button { display:block; }.intro-section { display:block; margin:25px auto 75px; padding:0 20px; }.intro-copy { padding:32px 0 55px; }.intro-copy h1 { font-size:47px; }.intro-art { height:330px; }.sun-disc { height:225px; left:19%; top:48px; width:225px; }.schedule-section { padding:55px 20px 38px; overflow-x:auto; }.section-heading { align-items:start; display:block; }.section-heading h2 { font-size:32px; }.week-controls { justify-content:space-between; margin-top:26px; }.calendar { gap:7px; min-width:650px; }.calendar-note { line-height:1.5; }.about-section { display:flex; flex-direction:column; gap:45px; padding:80px 20px; }.about-photo { height:340px; }.about-copy h2 { font-size:48px; }footer { align-items:flex-start; flex-direction:column; gap:12px; margin:0 20px; }.class-dialog { width:calc(100% - 24px); }.dialog-image { height:190px; }.dialog-content { padding:23px 22px 25px; }.dialog-content h2 { font-size:31px; }.booking-row { align-items:stretch; flex-direction:column; }.booking-row input { min-height:45px; } }
.class-time,.class-type,.class-level { display:block; }

/* Editorial opening */
.hero-editorial { height:min(78vh, 780px); min-height:560px; overflow:hidden; position:relative; }
.hero-editorial:after { background:linear-gradient(180deg, #21161608 35%, #211616a8 100%); content:''; inset:0; position:absolute; }
.hero-editorial img { height:100%; object-fit:cover; object-position:center 58%; width:100%; }
.hero-overlay { bottom:clamp(42px, 8vw, 108px); color:#fff; left:max(44px, calc((100% - 1180px)/2)); position:absolute; z-index:1; }
.hero-overlay .eyebrow { color:#fff; margin-bottom:20px; }
.hero-overlay h1 { font-family:'Rokkitt', Georgia, serif; font-size:clamp(58px, 9vw, 128px); font-weight:600; letter-spacing:0; line-height:.9; margin:0; }
.hero-overlay h1 em { color:var(--orange); font-style:normal; font-weight:700; }
.hero-link { border-bottom:1px solid #fff8; display:inline-block; font-size:11px; letter-spacing:.08em; margin-top:34px; padding-bottom:10px; text-transform:uppercase; }
.hero-link span { font-size:17px; margin-left:20px; }

/* Calendar-first layout */
body { background:#f7f5ef; }
.site-header { max-width:1180px; padding:28px 42px 18px; }
.location { color:var(--muted); font-size:11px; letter-spacing:.08em; }
.schedule-section { border:0; margin:auto; max-width:1180px; min-height:calc(100vh - 86px); padding:clamp(55px,10vh,110px) 42px 55px; }
.section-heading { align-items:end; margin-bottom:50px; }
.section-heading h1 { font-family:'Playfair Display',serif; font-size:clamp(54px,7vw,92px); font-weight:500; letter-spacing:-.045em; line-height:.98; margin:0; }
.section-heading h1 em { color:var(--orange); font-style:italic; font-weight:500; }
.calendar { gap:12px; }
.day-head { padding:0 12px 16px; }
.class-card { min-height:185px; padding:18px 16px; }
.class-type { font-size:24px; margin-top:28px; }
.calendar-note { margin-top:31px; }

@media (max-width:700px) { .site-header { padding:22px 20px 10px; }.location { font-size:9px; text-align:right; }.schedule-section { min-height:calc(100vh - 70px); padding:60px 20px 40px; }.section-heading { margin-bottom:38px; }.section-heading h1 { font-size:58px; }.week-controls { margin-top:32px; }.calendar { min-width:700px; }.class-card { min-height:170px; }.class-type { font-size:22px; } }

/* Monthly schedule */
.calendar { grid-template-columns:repeat(7, minmax(0, 1fr)); gap:2px; background:#fff; border:1px solid #fff; }
.day-column { background:#f4f4f2; min-height:166px; }
.day-column.outside { background:#fafaf8; }
.day-head { border-bottom:0; margin:0; min-height:53px; padding:13px 12px 7px; }
.day-name { display:block; font-size:8px; letter-spacing:.14em; }
.day-number { font-family:'DM Sans',sans-serif; font-size:11px; margin-top:10px; }
.day-number.today { color:var(--orange); font-weight:600; }
.day-number.today:after { height:4px; margin:0 0 1px 4px; width:4px; }
.class-card { background:#f1d6d0; min-height:112px; padding:13px 12px; }
.class-card:hover { background:#e8bcb5; transform:none; }
.class-card.empty { align-items:flex-end; background:transparent; color:#e4c9c4; display:flex; min-height:112px; }
.class-time { font-size:10px; }
.class-type { font-size:18px; margin-top:18px; }
.class-level { font-size:9px; margin-top:8px; }
.calendar-note { font-size:10px; }
.course-details { border-bottom:1px solid var(--line); border-top:1px solid var(--line); display:flex; gap:30px; margin:0 0 22px; padding:14px 0; }
.course-details span { display:flex; flex-direction:column; gap:4px; }
.course-details b { color:var(--muted); font-size:9px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.course-details strong { font-size:12px; font-weight:500; }

@media (max-width:700px) {
	.calendar { min-width:760px; }
	.day-column { min-height:142px; }
	.class-card, .class-card.empty { min-height:91px; }
	.class-type { font-size:16px; margin-top:13px; }
}

/* Weekly schedule */
.calendar { background:transparent; border:0; gap:12px; }
.day-column { background:var(--cream); border:1px solid var(--line); min-height:300px; }
.day-column.outside { display:none; }
.day-head { border-bottom:1px solid var(--line); min-height:72px; padding:15px 14px 10px; }
.day-name { color:var(--orange); font-size:9px; }
.day-number { font-size:22px; margin-top:8px; }
.class-card { margin:8px; min-height:102px; padding:12px 11px; width:calc(100% - 16px); }
.class-card:hover { background:#f1d6d0; transform:none; }
.class-type { font-size:17px; margin-top:15px; }
.week-controls span { min-width:185px; }

@media (max-width:700px) {
	.hero-editorial { height:72vh; min-height:520px; }
	.hero-overlay { bottom:42px; left:20px; }
	.hero-overlay h1 { font-size:64px; }
	.calendar { min-width:760px; }
	.day-column { min-height:280px; }
	.class-card { min-height:92px; }
}

/* Class detail content */
.dialog-image { background:var(--cream); height:480px; }
.dialog-image img { object-fit:contain; }
.dialog-content #dialogDescription { display:flex; flex-direction:column; gap:13px; }
.description-focus { color:var(--ink); font-size:12px; font-style:italic; font-weight:600; }
.description-energy { color:var(--orange); font-size:11px; letter-spacing:.04em; }
.description-tagline { color:var(--ink); font-family:'Playfair Display',serif; font-size:22px; font-weight:500; margin-top:4px; }

/* Vintage yoga lettering */
body { font-family:'DM Sans', sans-serif; }
.section-heading h1, .class-type, .dialog-content h2 { font-family:'Rokkitt', Georgia, serif; letter-spacing:0; }
.section-heading h1 { font-weight:600; }
.section-heading h1 em { font-style:normal; }
.hero-link, .eyebrow, .class-time, .class-level, .week-controls, .course-details b { letter-spacing:.08em; }

@media (max-width:700px) {
	.dialog-image { height:390px; }
}

/* Simple, clean type scale */
.hero-overlay h1 { font-family:'DM Sans', Arial, sans-serif; font-size:clamp(38px, 5.8vw, 78px); font-weight:600; letter-spacing:.01em; line-height:.98; }
.section-heading h1, .class-type, .dialog-content h2 { font-family:'DM Sans', Arial, sans-serif; letter-spacing:0; }
.hero-overlay h1 em { font-style:normal; }

@media (max-width:700px) {
	.hero-overlay h1 { font-size:38px; }
}

/* Planning inspired by a studio booking interface */
.schedule-section { background:var(--paper); padding-top:clamp(70px, 11vw, 140px); }
.section-heading { border-bottom:1px solid var(--ink); margin-bottom:0; padding-bottom:34px; }
.section-heading h1 { font-size:clamp(48px, 7vw, 88px); font-weight:500; }
.schedule-intro { color:var(--muted); font-size:13px; line-height:1.75; margin:4px 0 0; max-width:520px; }
.section-heading .schedule-intro { color:#fff; font-weight:400; opacity:.78; }
.description-element { color:var(--muted); font-size:12px; }

/* Plain editorial course description */
.dialog-content #dialogDescription { display:block; }
.dialog-content #dialogDescription p { color:var(--ink); font-family:'DM Sans',sans-serif; font-size:14px; line-height:1.65; margin:0 0 22px; }
.dialog-content #dialogDescription .description-keywords { font-size:12px; font-weight:600; letter-spacing:.05em; margin:3px 0 25px; }
.dialog-content #dialogDescription .description-summary { max-width:480px; }
.dialog-content #dialogDescription .description-note { color:var(--muted); font-size:11px; font-style:italic; margin:33px 0 28px; }
.course-details + .conditions { margin-top:25px; }
.dialog-content #dialogDescription h3, .conditions h3 { color:var(--ink); font-family:'DM Sans',sans-serif; font-size:20px; font-weight:500; margin:0 0 27px; }
.dialog-content #dialogDescription p { color:var(--ink); font-family:'DM Sans',sans-serif; font-size:14px; line-height:1.75; margin:0 0 24px; }
.dialog-content #dialogDescription .description-intro { margin-bottom:30px; }
.dialog-content #dialogDescription .description-focus { font-weight:600; }
.dialog-content #dialogDescription .description-energy { color:var(--orange); font-size:13px; }
.dialog-content #dialogDescription .description-tagline { font-family:'DM Sans',sans-serif; font-size:14px; font-weight:500; margin-top:28px; }
.dialog-content #dialogDescription .description-element { color:var(--ink); font-size:13px; font-style:italic; margin-bottom:0; }
.conditions { margin:52px 0 34px; }
.conditions h3 { margin-bottom:12px; }
.conditions ul { color:var(--ink); font-size:14px; line-height:1.75; margin:0; padding-left:22px; }
.conditions li + li { margin-top:5px; }
.calendar { border-bottom:1px solid var(--ink); gap:0; }
.day-column { background:transparent; border:0; border-left:1px solid var(--line); min-height:340px; }
.day-column:first-child { border-left:0; }
.day-head { border-bottom:1px solid var(--ink); min-height:82px; padding:17px 14px 12px; }
.day-name { color:var(--ink); font-size:10px; font-weight:600; }
.day-number { color:var(--muted); font-family:'DM Sans',sans-serif; font-size:12px; font-weight:400; margin-top:12px; }
.class-card { background:transparent; border-bottom:1px solid var(--line); border-radius:0; margin:0; min-height:120px; padding:17px 14px; width:100%; }
.class-card:hover { background:#f1d6d0; }
.class-card.empty { border-bottom:0; color:var(--line); min-height:120px; }
.class-time { color:var(--orange); font-size:11px; font-weight:600; }
.class-type { color:var(--ink); font-size:17px; font-weight:600; line-height:1.1; margin-top:18px; }
.class-level { color:var(--muted); font-size:10px; margin-top:9px; }
.week-controls button { color:var(--ink); }
.week-controls span { color:var(--ink); font-size:11px; }

@media (max-width:700px) {
	.section-heading { padding-bottom:25px; }
	.calendar { min-width:760px; }
}

/* Monochrome geometric editorial system */
body, button, input { font-family:'Outfit', Arial, sans-serif; }
body { color:#000; }
.hero-overlay h1, .hero-overlay h1 em { color:#fff; font-family:'Outfit', Arial, sans-serif; font-weight:800; }
.hero-overlay h1 em { font-style:normal; }
.concept-block, .current-courses { background:#000; color:#fff; margin:0 calc(max(44px, calc((100% - 1080px)/2)) * -1); padding:clamp(40px, 6vw, 78px) max(44px, calc((100% - 1080px)/2)); }
.concept-block h2, .current-courses h2 { color:#fff; font-family:'Outfit', Arial, sans-serif; font-size:clamp(30px, 4vw, 54px); font-weight:800; letter-spacing:.01em; line-height:1; margin:0 0 24px; }
.concept-block p, .current-courses-intro, .course-overview p { color:#fff; font-family:'Outfit', Arial, sans-serif; font-size:clamp(16px, 1.5vw, 22px); line-height:1.35; margin:0; max-width:900px; }
.current-courses { background:var(--paper); color:#000; padding-bottom:clamp(50px, 7vw, 90px); padding-top:clamp(65px, 9vw, 120px); }
.current-courses h2 { background:transparent; color:#000; display:block; padding:0; }
.current-courses-intro, .course-overview p { color:#000; }
.current-courses-intro { margin:5px 0 44px; max-width:760px; }
.course-overview { border-top:1px solid #000; display:grid; grid-template-columns:repeat(3, 1fr); }
.course-overview { align-items:start; width:100%; }
.course-overview article { min-width:0; }
.course-overview { border-top:0; }
.course-overview { column-gap:8px; }
.course-overview article, .course-overview article + article, .course-overview article:last-child { border:0; padding-left:0; padding-right:8px; }
.course-overview article:last-child { padding-right:0; }
.course-overview article { border-left:1px solid #000; padding:24px 24px 0 0; }
.course-overview article + article { padding-left:24px; }
.course-overview article:last-child { border-right:1px solid #000; padding-right:0; }
.course-overview h3 { background:#000; color:#fff; display:inline-block; font-family:'Outfit', Arial, sans-serif; font-size:18px; font-weight:800; margin:0 0 16px; padding:8px 11px 6px; }
.section-heading { background:#000; color:#fff; margin-top:0; padding:25px max(44px, calc((100% - 1080px)/2)); }
.section-heading h1 { color:#fff; font-family:'Outfit', Arial, sans-serif; font-size:clamp(30px, 4vw, 54px); font-weight:800; }
.week-controls, .week-controls span, .week-controls button { color:#fff; }
.class-time, .class-type, .class-level { color:#000; }
.class-time { font-weight:700; }
.class-card:hover { background:#e9e4d8; }
.description-keywords, .description-summary, .course-details strong, .conditions-block li { color:#000 !important; }
.primary-button { background:#000; }

@media (max-width:700px) {
	.concept-block, .current-courses { margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; }
	.course-overview { display:block; }
	.course-overview article, .course-overview article + article, .course-overview article:last-child { border-left:0; border-right:0; border-bottom:1px solid #000; padding:22px 0; }
	.section-heading { margin-left:-20px; margin-right:-20px; padding-left:20px; padding-right:20px; }
}

/* Course labels: one line, spaced, no table borders */
.course-overview { align-items:flex-start; border:0; display:flex; flex-wrap:nowrap; gap:16px; justify-content:flex-start; }
.course-overview article, .course-overview article + article, .course-overview article:last-child { border:0 !important; flex:0 0 auto; padding:0 !important; }
.course-overview h3 { margin:0; }
.overview-course { background:#000; border:0; color:#fff; cursor:pointer; font:800 18px 'Outfit', Arial, sans-serif; padding:8px 11px 6px; }
.overview-course:hover { background:#242424; }
.planning-link { background:#000; color:#fff; display:block; font:700 13px 'Outfit', Arial, sans-serif; letter-spacing:.06em; margin-top:34px; padding:14px 16px; text-align:center; text-decoration:none; }
.planning-link span { margin-left:18px; }
.is-hidden { display:none !important; }
.class-meta span + span:before { content:none !important; }
.class-dialog { overflow:auto; }
.close-dialog { position:sticky; float:right; margin:16px 16px -50px 0; top:16px; }
.reserve-button { background:#000; border:0; color:#fff; cursor:pointer; display:block; font:800 18px 'Outfit', Arial, sans-serif; letter-spacing:.04em; margin:32px 0 22px; padding:20px 24px; text-align:center; width:100%; }
.reserve-button span { margin-left:22px; }
.booking-form > input { border:1px solid #000; color:#000; font:500 15px 'Outfit', Arial, sans-serif; margin-bottom:16px; padding:13px 14px; width:100%; }
.booking-form .email-label { display:block; font-size:10px; font-weight:600; letter-spacing:.08em; margin-bottom:7px; text-transform:uppercase; }
.course-details { background:#000; border:0; color:#fff; padding:22px; }
.course-details b, .course-details strong, .conditions-block li { color:#fff !important; }
.course-details b { font-size:10px; }
.course-details strong, .conditions-block li, .conditions-block ul { font-size:13px; }
.conditions-block ul { color:#fff; }

.site-nav { align-items:center; display:flex; gap:28px; }
.site-nav a { color:#000; font-family:'Outfit', Arial, sans-serif; font-size:12px; font-weight:700; letter-spacing:.08em; }
.site-nav a:hover { text-decoration:underline; text-underline-offset:5px; }

@media (max-width:700px) {
	.course-overview { flex-direction:column; gap:8px; }
	.site-header { align-items:flex-start; }
	.site-nav { gap:14px; padding-top:2px; }
	.site-nav a { font-size:10px; }
}

/* One consistent type system for course sheets */
.class-dialog, .class-dialog * { font-family:'Outfit', Arial, sans-serif; }
.dialog-content .eyebrow { color:#000; font-size:18px; font-weight:600; letter-spacing:0; line-height:1.2; margin:0 0 24px; text-transform:uppercase; }
.dialog-content h2 { color:#000; font-size:34px; font-weight:700; letter-spacing:0; line-height:1.1; margin:0 0 24px; }
.class-meta { color:#000; font-size:18px; font-weight:600; gap:12px; line-height:1.2; margin:0 0 40px; }
.dialog-content #dialogDescription p { color:#000; font-size:18px; font-weight:500; letter-spacing:0; line-height:1.45; margin:0 0 28px; }
.dialog-content #dialogDescription .description-keywords { font-size:18px; font-weight:700; margin-bottom:32px; }
.dialog-content #dialogDescription .description-note { color:#000; font-size:14px; font-weight:400; line-height:1.4; margin:36px 0 34px; }
.course-details { gap:24px; }
.course-details b { color:#000; font-size:10px; font-weight:600; letter-spacing:.08em; }
.course-details strong, .conditions-block li, .conditions-block ul { color:#000; font-size:14px; font-weight:400; line-height:1.45; }
.conditions-block li + li { margin-top:4px; }

@media (max-width:700px) {
	.dialog-content .eyebrow { font-size:15px; }
	.dialog-content h2 { font-size:27px; }
	.class-meta, .dialog-content #dialogDescription p { font-size:16px; }
	.dialog-content #dialogDescription .description-keywords { font-size:16px; }
}

/* Not Yoga-inspired class sheet */
body, .class-dialog, .class-dialog input, .class-dialog button { font-family:Arial, Helvetica, sans-serif; }
.dialog-image { background:var(--cream); height:480px; }
.dialog-image img { object-fit:cover; }
.dialog-content .eyebrow { color:var(--muted); font-size:16px; letter-spacing:.01em; margin-bottom:20px; text-transform:none; }
.dialog-content h2 { font-size:28px; font-weight:600; line-height:1.1; }
.class-meta { align-items:center; color:var(--ink); font-size:16px; gap:12px; margin:18px 0 28px; }
.class-meta span + span:before { margin-right:12px; }
.dialog-content #dialogDescription .description-note { font-size:11px; font-style:italic; margin:30px 0 28px; }
.course-details + .conditions { margin-top:24px; }
.conditions { margin:0 0 30px; }
.conditions h3 { color:var(--muted); font-family:Arial, Helvetica, sans-serif; font-size:10px; font-weight:600; letter-spacing:.12em; margin:0 0 11px; text-transform:uppercase; }
.conditions ul { color:var(--muted); font-size:11px; line-height:1.6; margin:0; padding-left:17px; }
.conditions li + li { margin-top:3px; }

@media (max-width:700px) {
	.dialog-image { height:390px; }
	.dialog-content .eyebrow { font-size:14px; }
	.dialog-content h2 { font-size:24px; }
	.class-meta { font-size:14px; }
}

.conditions h3 { font-size:9px; }
.class-card .class-time { font-size:17px; line-height:1.1; }
.class-card .class-type { margin-top:8px; }

.course-details { align-items:start; display:grid; grid-template-columns:1.2fr .55fr 1.35fr; gap:24px; }
.course-details span { gap:7px; min-width:0; }
.course-details b { color:var(--muted); font-family:Arial, Helvetica, sans-serif; font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.course-details strong, .conditions-block li { color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:400; line-height:1.45; }
.conditions-block ul { color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:12px; line-height:1.45; margin:0; padding:0; list-style:none; }
.conditions-block li + li { margin-top:5px; }
.course-details + .conditions { display:none; }

.dialog-content .eyebrow, .class-meta, .dialog-content #dialogDescription .description-note { color:#000; }
.dialog-content .eyebrow, .class-meta, .dialog-content #dialogDescription p,
.course-details b, .course-details strong, .conditions-block li { font-family:'Outfit', Arial, sans-serif; }
.dialog-content .eyebrow { font-size:18px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.class-meta { font-size:18px; font-weight:600; }
.dialog-content #dialogDescription .description-keywords { font-family:'Outfit', Arial, sans-serif; font-size:18px; font-weight:800; letter-spacing:0; }
.dialog-content #dialogDescription .description-keywords { display:flex; flex-wrap:wrap; gap:0 18px; }
.dialog-content #dialogDescription .description-keywords span + span:before { content:' · '; margin:0; }
.dialog-content #dialogDescription .description-keywords .description-element { color:#555; font-size:16px; font-style:italic; font-weight:400; }
.dialog-content #dialogDescription .description-keywords .description-element:before { color:#000; font-style:normal; }
.dialog-content #dialogDescription .description-note { color:#000; display:block; font-size:14px; font-style:italic; font-weight:400; line-height:1.4; margin:34px 0 30px; }
.course-details { border-color:#000; }
.calendar, .calendar:before, .calendar { border-color:#000; }
.day-column, .day-head, .class-card { border-color:#000; }

@media (max-width:700px) {
	.course-details { grid-template-columns:1fr; gap:18px; }
}

.section-heading, .calendar { width:100%; }
.section-heading { border-bottom:0; }
.calendar { border-bottom:1px solid var(--ink); border-top:0; position:relative; }
.calendar:before { background:var(--ink); content:''; height:1px; left:0; position:absolute; right:0; top:0; }

.schedule-section { padding-top:0; }
.concept-block, .current-courses { margin-top:0; margin-bottom:0; }
.brand, .brand strong { font-family:'DM Sans', Arial, sans-serif; }

/* Keep the header and course sheets consistent with the first page */
.brand, .brand strong, .class-dialog, .class-dialog input, .class-dialog button,
.dialog-content #dialogDescription p, .dialog-content #dialogDescription h3,
.course-details b, .course-details strong, .conditions-block li, .conditions-block ul,
.conditions h3 { font-family:'Outfit', Arial, sans-serif; }

/* Final editorial refinements */
:root { --accent:#C73823; --orange:#000; }

/* One typography system across the site. */
body, button, input, select, textarea,
.brand, .brand strong,
.class-dialog, .class-dialog input, .class-dialog button { font-family:'Outfit', Arial, sans-serif; }

/* The display face is Outfit everywhere: it is the only headline family loaded. */
.hero-overlay h1,
.concept-block h2,
.current-courses h2,
.section-heading h1,
.dialog-content h2,
.class-type { font-family:'Outfit', Arial, sans-serif; }
.hero-overlay h1 .hero-accent { color:var(--accent); }

.site-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.brand { grid-column:1; justify-self:start; }
.site-nav { grid-column:2; justify-self:center; }
#planning { scroll-margin-top:92px; }

.site-header { background:#f7f5ef; position:sticky; top:0; z-index:20; }
.site-header { isolation:isolate; }
.site-header:before { background:#f7f5ef; content:''; inset:0 calc((1180px - 100vw) / 2); position:absolute; z-index:-1; }

.site-footer { background:#000; color:#fff; display:block; margin:clamp(70px, 10vw, 130px) 0 0; padding:38px 44px; }
.site-footer-inner { align-items:center; display:flex; justify-content:space-between; margin:0 auto; max-width:1080px; }
.site-footer strong, .footer-links a { font-family:'Outfit', Arial, sans-serif; font-size:15px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.footer-links { display:flex; gap:30px; }
.footer-links a:hover { color:#f1d6d0; }

.concept-block { padding-top:clamp(56px, 8vw, 100px); padding-bottom:clamp(56px, 8vw, 100px); }
.concept-block p + p { margin-top:1.25em; }
.concept-block { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); padding-left:max(44px, calc((100vw - 1080px) / 2)); padding-right:max(44px, calc((100vw - 1080px) / 2)); }

.overview-course { background:var(--accent); line-height:1.1; transition:background .2s, color .2s; }
.overview-course:hover { background:var(--accent); }
.overview-course span { display:block; font-size:11px; font-weight:500; letter-spacing:.04em; margin-top:6px; opacity:.78; }

.site-nav a,
.hero-link,
.planning-link,
.reserve-button,
.primary-button,
.overview-course,
.week-controls button,
.class-card { transition:background .2s, color .2s, border-color .2s; }
.site-nav a.active { color:var(--accent); }
.planning-link:hover,
.reserve-button:hover { background:var(--accent); color:#fff; }
.class-card:not(.empty):hover { background:var(--accent); color:#fff; }
.class-card:not(.empty):hover .class-time,
.class-card:not(.empty):hover .class-type,
.class-card:not(.empty):hover .class-level { color:#fff; }
.class-card.empty,
.class-card.empty:hover { background:var(--cream) !important; pointer-events:none; }
.day-column { background:var(--cream); }
.planning-link:hover span,
.reserve-button:hover span { color:#fff; }


/* More breathing room and comfortable touch targets in the weekly calendar. */
.calendar { gap:0; }
.day-column { height:430px; min-height:430px; }
.day-column { display:flex; flex-direction:column; }
.day-head { flex:0 0 92px; min-height:0; }
.class-card { flex:1 1 0; min-height:0; overflow:hidden; }
.class-card:last-child { border-bottom:0; }
.day-head { min-height:92px; padding:20px 16px 15px; }
.class-card { min-height:138px; padding:21px 16px; }
.class-card:hover { background:#f1d6d0; }
.class-card:focus-visible,
.overview-course:focus-visible,
.site-nav a:focus-visible,
.week-controls button:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }

.dialog-content #dialogDescription .description-keywords .description-element { color:#6e6e6e !important; }
.dialog-content #dialogDescription .description-keywords .description-element:before { color:#6e6e6e; }
.dialog-content #dialogDescription .description-keywords span + span:before { content:none; }
.dialog-content #dialogDescription .description-keywords .description-element { font-size:18px; font-style:italic; }
.dialog-content #dialogDescription .tag-separator { color:#000; font-size:18px; font-style:normal; font-weight:800; }
.dialog-content #dialogDescription .description-note { color:#6e6e6e !important; display:block; font-style:italic; }
.dialog-content .eyebrow#dialogDate { color:var(--accent); }
.course-details { background:var(--accent); }
.booking-submit { align-self:stretch; min-width:284px; }
.booking-form > input,
.booking-row input,
.booking-submit .primary-button { min-height:64px; }
.booking-submit .primary-button { width:100%; }
.booking-submit .booking-button-date { margin-left:7px; }
.booking-submit .booking-arrow { margin-left:16px; }
.promo-status { color:var(--accent); font-size:11px; font-weight:700; letter-spacing:.05em; margin:8px 0 0; min-height:16px; }
.reserve-offer-wrap { margin:32px 0 22px; position:relative; }
.reserve-offer-wrap .reserve-button { margin:0; }
.first-class-offer { bottom:calc(100% + 10px); color:#000; font-size:13px; font-style:italic; left:50%; letter-spacing:0; opacity:0; pointer-events:none; position:absolute; transform:translate(-50%, 5px); transition:opacity .2s, transform .2s; visibility:hidden; white-space:nowrap; z-index:3; }
.reserve-offer-wrap:hover .first-class-offer,
.reserve-offer-wrap:focus-within .first-class-offer { opacity:1; transform:translate(-50%, 0); visibility:visible; }

/* Pricing page */
.tariffs-page, .tariffs-page button, .tariffs-page input, .tariffs-page select, .tariffs-page textarea { font-family:'Outfit', Arial, sans-serif; }
.tariffs-title { background:#000; color:#fff; padding:clamp(46px, 7vw, 90px) max(44px, calc((100vw - 1080px) / 2)); }
.tariffs-title h1 { font-family:'Outfit', Arial, sans-serif; font-size:clamp(46px, 7vw, 92px); font-weight:800; letter-spacing:.01em; line-height:.95; margin:0; }
.tariffs-section { margin:0 auto; max-width:1080px; padding:clamp(60px, 9vw, 118px) 44px 0; }
.tariffs-section:last-child { padding-bottom:clamp(70px, 10vw, 130px); }
.tariffs-section h2 { color:#000; font-family:'Outfit', Arial, sans-serif; font-size:clamp(28px, 3.5vw, 48px); font-weight:800; letter-spacing:.01em; line-height:1; margin:0 0 38px; }
.pricing-cards { align-items:stretch; display:grid; gap:18px; grid-template-columns:repeat(3, 1fr); }
.pricing-card { display:flex; flex-direction:column; }
.pricing-card-head { align-items:center; border-bottom:2px solid #000; display:flex; justify-content:center; min-height:108px; padding:18px; text-align:center; }
.pricing-label { color:#000; font-size:22px; font-style:italic; font-weight:800; letter-spacing:.01em; line-height:1.05; margin:0; }
.pricing-card-frame { border:2px solid #000; display:flex; flex:1; flex-direction:column; height:300px; overflow:hidden; }
.pricing-card-offer { border-bottom:2px solid #000; padding:22px 20px; text-align:center; }
.course-count { color:#000; font-size:32px; font-weight:800; letter-spacing:-.04em; line-height:1; margin:0 0 12px; }
.price { color:#000; font-size:23px; font-weight:800; letter-spacing:-.03em; line-height:1; margin:0 0 7px; }
.price-per-class { color:#000; font-size:14px; font-weight:500; margin:0; }
.pricing-card-validity { align-items:center; display:flex; flex:1; justify-content:center; min-height:70px; padding:15px 20px; text-align:center; }
.price-note { color:#000; font-size:14px; font-style:normal; font-weight:600; margin:0; text-transform:uppercase; }
.cash-note { color:#6e6e6e; font-size:12px; font-style:italic; line-height:1.35; }
.pricing-card .cash-note { margin:8px 0 0; text-align:center; }
.pricing-cta { align-items:center; background:var(--accent); color:#fff; display:flex; font-size:12px; font-weight:800; justify-content:space-between; letter-spacing:.04em; margin-top:auto; padding:17px 16px; transition:background .2s; }
.pricing-card .pricing-cta { margin-top:0; }
.collective-cta { margin:28px 0 0; max-width:calc((100% - 36px) / 3); }
.collective-cash-note { margin:10px 0 0; }
.pricing-cta:hover { background:#000; }
.pricing-cta span { font-size:18px; line-height:0; }
.private-intro, .contact-section > div > p:last-child { color:#000; font-family:'Outfit', Arial, sans-serif; font-size:17px; font-weight:400; line-height:1.5; max-width:630px; }
.private-intro { margin:-12px 0 37px; }
.private-table { border-top:1px solid #000; }
.private-row { align-items:center; border-bottom:1px solid #000; display:grid; grid-template-columns:1fr auto; gap:25px; padding:19px 0; }
.private-row span { font-size:18px; }
.private-row strong { font-size:28px; font-weight:800; }
.private-head { padding:12px 0; }
.private-head span { color:#6e6e6e; font-size:10px; font-weight:700; letter-spacing:.08em; }
.private-cta { margin-top:30px; max-width:330px; }
.private-cash-note { margin:15px 0 0; }
.contact-section { display:grid; gap:50px; grid-template-columns:.8fr 1fr; margin:clamp(70px, 10vw, 130px) auto 0; max-width:1080px; padding:0 44px; scroll-margin-top:30px; }
.contact-section[hidden] { display:none; }
.contact-section h2 { color:#000; font-family:'Outfit', Arial, sans-serif; font-size:clamp(28px, 3.5vw, 48px); font-weight:800; letter-spacing:.01em; line-height:1; margin:18px 0; }
.contact-section > div > p:last-child { margin:0; max-width:360px; }
.private-contact-form { display:grid; gap:9px; }
.private-contact-form label { color:#6e6e6e; font-size:10px; font-weight:700; letter-spacing:.08em; margin-top:8px; text-transform:uppercase; }
.private-contact-form input, .private-contact-form select, .private-contact-form textarea { background:transparent; border:0; border-bottom:1px solid #000; border-radius:0; color:#000; font-family:'Outfit', Arial, sans-serif; font-size:15px; font-weight:400; padding:13px 0; width:100%; }
.private-contact-form textarea { resize:vertical; }
.contact-submit { border:0; cursor:pointer; font-family:'Outfit', Arial, sans-serif; margin-top:15px; width:100%; }
.contact-submit:disabled { cursor:wait; opacity:.7; }
.contact-status { font-size:14px; line-height:1.4; margin:5px 0 0; min-height:20px; }
.contact-status.is-error { color:#a52323; }
.course-details { grid-template-columns:1fr .55fr 1fr 1.35fr; }

@media (max-width:700px) {
  .tariffs-title { padding:52px 20px; }
  .tariffs-section { padding-left:20px; padding-right:20px; }
  .pricing-cards { grid-template-columns:1fr; }
  .pricing-card { min-height:0; }
  .collective-cta { max-width:none; }
  .private-row span { font-size:16px; }
  .private-row strong { font-size:24px; }
  .contact-section { display:block; margin-top:75px; padding:0 20px; }
  .private-contact-form { margin-top:35px; }
}

@media (max-width:700px) {
  .dialog-content #dialogDescription .description-keywords .description-element,
  .dialog-content #dialogDescription .tag-separator { font-size:16px; }
  #planning { scroll-margin-top:78px; }
  .booking-submit { min-width:0; width:100%; }
}

@media (max-width:700px) {
  .site-header { display:flex; align-items:flex-start; justify-content:space-between; }
  .site-nav { gap:12px; justify-content:flex-end; }
  .site-nav a { font-size:9px; }
  .calendar { gap:0; min-width:820px; }
  .day-column { height:352px; min-height:352px; }
  .day-head { flex-basis:88px; min-height:0; }
  .class-card { min-height:0; padding:20px 15px; }
  .concept-block { padding-top:58px; padding-bottom:58px; }
  .concept-block { margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); padding-left:20px; padding-right:20px; }
  .site-footer { margin-top:75px; padding:26px 20px; }
  .site-footer-inner { align-items:flex-start; flex-direction:column; gap:18px; }
  .footer-links { flex-direction:column; gap:10px; }
}

/* Simplified course sheets */
.dialog-content .eyebrow { color:#6e6e6e; font-size:12px; font-weight:600; letter-spacing:.06em; margin-bottom:14px; }
.dialog-content .eyebrow#dialogDate { font-size:16px; }
.dialog-content h2 { font-size:clamp(28px, 4vw, 38px); font-weight:800; margin-bottom:24px; }
.dialog-content #dialogDescription .description-keywords { color:#6e6e6e; display:flex; flex-wrap:wrap; font-size:13px; font-weight:400; gap:0 9px; line-height:1.4; margin:0 0 20px; }
.dialog-content #dialogDescription .description-keywords span { color:#6e6e6e; font-family:'Outfit', Arial, sans-serif; font-size:13px; font-style:normal; font-weight:400; }
.dialog-content #dialogDescription .description-keywords .description-element { color:#6e6e6e !important; font-size:13px; font-style:normal; font-weight:400; }
.dialog-content #dialogDescription .tag-separator { color:#6e6e6e; font-size:13px; font-weight:400; }
.dialog-content #dialogDescription .description-summary { color:#000; font-size:17px; font-weight:400; line-height:1.55; margin:0 0 28px; max-width:540px; }
.course-details { background:transparent; border-bottom:1px solid #000; border-top:1px solid #000; display:grid; gap:18px; grid-template-columns:repeat(3, minmax(0, 1fr)); margin:0 0 28px; padding:15px 0; }
.course-details > span { display:flex; flex-direction:column; gap:4px; min-width:0; width:100%; }
.course-details b { color:#6e6e6e !important; font-size:9px; font-weight:600; letter-spacing:.08em; }
.course-details strong { color:#000 !important; font-size:13px; font-weight:400; line-height:1.4; }
.reserve-offer-wrap { margin:0 0 18px; }
.spots { color:#6e6e6e; font-size:11px; margin-top:0; }

@media (max-width:700px) {
  .course-details { grid-template-columns:1fr; gap:13px; }
}
