/* WordPress-specific additions to the design (site.css). */

/* Editor content: readable measure, wide blocks break out */
.entry > * { max-width: 68ch; margin-block: 0; }
.entry > * + * { margin-top: 1.1em; }
.entry > .block-wide, .entry > .oys-checkout, .entry > .oys-account, .entry > .oys-schedule, .entry > .oys-pricing,
.entry > .oys-gifts, .entry > form, .entry > .oys-card, .entry > .oys-notice, .entry > .oys-intro, .entry > .offer-grid, .layout--studio .entry > * { max-width: none; }
.entry > .block-wide { margin-block: 2.25rem; }
.entry > h2 { font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.8rem); margin-top: 1.7em; }
.entry > h2:first-child { margin-top: 0; }
.entry > h3 { margin-top: 1.6em; }
.entry ul, .entry ol { padding-left: 0; list-style: none; }
.entry ul:not([class]) li { position: relative; padding-left: 1.6rem; margin: .55rem 0; }
.entry ul:not([class]) li::before { content: ""; position: absolute; left: .1rem; top: .78em; width: 12px; height: 1.5px; background: var(--orchid); border-radius: 2px; }
.entry ol:not([class]) { counter-reset: o; }
.entry ol:not([class]) li { counter-increment: o; position: relative; padding-left: 3rem; margin: 1rem 0; }
.entry ol:not([class]) li::before { content: "0" counter(o); position: absolute; left: 0; top: -.15em; font-family: var(--f-display); color: var(--orchid); font-size: 1.6rem; line-height: 1; }
.entry blockquote { margin: 2.4rem 0; padding: 1.75rem 2rem; background: var(--lilac-soft); border-left: 3px solid var(--orchid); border-radius: 0 var(--radius) var(--radius) 0; font-family: var(--f-display); text-transform: uppercase; font-size: var(--step-2); line-height: 1.12; color: var(--ink); }
.entry blockquote p { margin: 0; }
.entry strong { color: var(--ink); }
.entry img { height: auto; border-radius: var(--radius-sm); }
.entry figure { margin-inline: 0; }
.entry .wp-block-image img, .entry .entry-art img { width: 100%; max-width: 560px; }
.entry .btn-row { margin-top: 1.75rem; }
.layout--studio { padding-top: clamp(36px, 5vw, 64px); }

/* Offer cards in page copy (private yoga: prenatal, massage…) */
.offer-grid { display: grid; gap: 1.1rem; grid-template-columns: 1fr; margin: 2rem 0 !important; }
@media (min-width: 560px) { .offer-grid { grid-template-columns: repeat(2, 1fr); } }
.offer { background: var(--card); border-radius: var(--radius); padding: 1.4rem 1.4rem 1.5rem; box-shadow: 0 1px 0 var(--line); }
.offer h3 { margin: .9rem 0 .4rem; }
.offer p { margin: 0; color: var(--muted); font-size: .96rem; line-height: 1.6; }
.offer .picto { margin-left: -6px; }

/* Menus from Appearance → Menus */
.nav .menu-item-has-children { position: relative; }
.nav .sub-menu {
	position: absolute; left: -1rem; top: calc(100% + 18px); min-width: 250px; list-style: none; margin: 0; padding: .55rem; z-index: 5;
	background: var(--card); border-radius: var(--radius-sm); box-shadow: 0 24px 50px -26px rgba(18, 35, 26, .55), inset 0 0 0 1px var(--line);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility 0s .2s;
}
.nav .sub-menu a { display: block; padding: .6rem .8rem; border-radius: 8px; }
.nav .sub-menu a:hover { background: var(--lilac-soft); text-decoration: none; }
.nav .menu-item-has-children:hover > .sub-menu, .nav .menu-item-has-children:focus-within > .sub-menu, .nav .menu-item-has-children.is-open > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.nav .current-menu-item > a, .nav .current-menu-ancestor > a, .nav .current_page_parent > a { text-decoration: underline; text-decoration-color: var(--orchid); text-decoration-thickness: 2px; text-underline-offset: .55em; }
.drawer .sub-menu { list-style: none; margin: .2rem 0 .6rem; padding: 0; }
.drawer .sub-menu a { font-family: var(--f-text) !important; text-transform: none !important; font-size: 1rem !important; color: var(--sage) !important; padding: .15rem 0 .15rem 1rem !important; }
.drawer .sub-toggle { display: none; }

.header-account { display: none; align-items: center; gap: .4rem; text-decoration: none; color: var(--ink); font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.header-account .icon { width: 20px; height: 20px; }
.header-account:hover { color: var(--orchid); }
@media (min-width: 760px) { .header-account { display: inline-flex; } }
@media (max-width: 1279px) { .langs--header { margin-left: auto; } .brand { margin-right: 0; } .site-header__inner { gap: 1rem; } }
@media (min-width: 1280px) { .nav > ul { gap: 1.15rem; } }

/* Logged-in admins: keep the sticky header under the admin bar */
.admin-bar .site-header { top: calc(32px + env(safe-area-inset-top, 0px)); }
@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

/* Events list on a light page */
.oy-events-dark { background: var(--moss); color: #D7E1D2; border-radius: var(--radius); padding: 1rem clamp(1.1rem, 3vw, 2rem) 1.4rem; }
.oy-events-dark .events { border-top: 0; }
.oy-events-dark .oys-empty { color: var(--sage); margin: .5rem 0; }

/* Pagination */
.pagination .nav-links { display: flex; gap: .5rem; margin-top: 2.5rem; flex-wrap: wrap; }
.pagination .page-numbers { padding: .55rem .95rem; border-radius: 999px; text-decoration: none; color: var(--ink); font-weight: 700; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.pagination .page-numbers.current { background: var(--ink); color: var(--paper); }

/* Contact form error notice */
.form__notice.oys-notice--error { background: var(--pink-soft); color: var(--ink); }

/* Header fits at laptop widths */
.nav a, .header-cta, .brand__name { white-space: nowrap; }
@media (min-width: 1280px) and (max-width: 1439px) {
	.brand__sub { display: none; }
	.nav > ul { gap: .85rem; }
	.nav a { font-size: .86rem; }
	.header-account span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.langs a { padding: .3rem .38rem; }
}

/* Hathaflow demo: a thin bar on every page that says it is a sample studio */
.demo-bar { margin: 0; padding: .45rem var(--gutter, 20px); background: var(--ink, #12231A); color: var(--paper, #F3F2EC); font-size: .82rem; font-weight: 600; letter-spacing: .02em; text-align: center; }
