/* Izzy Spa theme — layout, header/footer, block styles. Tokens come from theme.json presets. */
:root {
	/* --izzy-r, --izzy-r-s, --izzy-shadow and the colour aliases are defined once, by the izzyspa-core plugin */
	--izzy-header-h: 76px;
}
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
body { overflow-x: clip; }
img { height: auto; }
h1, h2, h3, h4 { text-wrap: balance; }
a:focus-visible, button:focus-visible { outline: 2px solid var(--wp--preset--color--plum); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* ---------- spacing & column utilities ----------
 * Block markup carries these classes instead of inline padding/margin/flex-basis styles.
 * !important mirrors the precedence the inline styles had; more specific !important overrides later in this file still win.
 * Below 782px core's own flex-basis: 100% !important (higher specificity) stacks the columns. */
.izzy-pt-0 { padding-top: 0 !important; }
.izzy-pt-40 { padding-top: var(--wp--preset--spacing--40) !important; }
.izzy-pt-50 { padding-top: var(--wp--preset--spacing--50) !important; }
.izzy-pt-60 { padding-top: var(--wp--preset--spacing--60) !important; }
.izzy-pb-40 { padding-bottom: var(--wp--preset--spacing--40) !important; }
.izzy-pb-50 { padding-bottom: var(--wp--preset--spacing--50) !important; }
.izzy-pb-60 { padding-bottom: var(--wp--preset--spacing--60) !important; }
.izzy-mt-20 { margin-top: var(--wp--preset--spacing--20) !important; }
.izzy-mt-30 { margin-top: var(--wp--preset--spacing--30) !important; }
.izzy-mt-40 { margin-top: var(--wp--preset--spacing--40) !important; }
.izzy-mt-50 { margin-top: var(--wp--preset--spacing--50) !important; }
.izzy-mt-60 { margin-top: var(--wp--preset--spacing--60) !important; }
.izzy-col-22 { flex-basis: 22% !important; } .izzy-col-28 { flex-basis: 28% !important; } .izzy-col-38 { flex-basis: 38% !important; } .izzy-col-40 { flex-basis: 40% !important; } .izzy-col-42 { flex-basis: 42% !important; } .izzy-col-45 { flex-basis: 45% !important; }
.izzy-col-48 { flex-basis: 48% !important; } .izzy-col-50 { flex-basis: 50% !important; } .izzy-col-52 { flex-basis: 52% !important; } .izzy-col-55 { flex-basis: 55% !important; } .izzy-col-58 { flex-basis: 58% !important; } .izzy-col-60 { flex-basis: 60% !important; } .izzy-col-62 { flex-basis: 62% !important; }
/* Same as core does for inline widths: fixed columns stop growing from 782px (or always when not stacked); below that core stacks them at 100%. */
@media (min-width: 782px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[class*="izzy-col-"] { flex-grow: 0; } }
.wp-block-columns.is-not-stacked-on-mobile > .wp-block-column[class*="izzy-col-"] { flex-grow: 0; }
/* Sections with izzy-pt-0 are meant to continue a section on the same background; after a coloured band they need their top padding back. */
:is(.izzy-section-blush, .izzy-section-peach, .has-background) + .izzy-pt-0 { padding-top: var(--wp--preset--spacing--60) !important; }

.wp-block-post-featured-image img { object-fit: cover; }

/* Offer band (cover block): shape and overlay live here, not in block attributes. */
.wp-block-cover.izzy-offer { border-radius: 24px; padding: clamp(40px, 6vw, 72px) clamp(24px, 6vw, 72px); overflow: hidden; }
.wp-block-cover.izzy-offer > .wp-block-cover__background { background: linear-gradient(90deg, rgba(74, 16, 57, .92), rgba(74, 16, 57, .55)); opacity: 1; }

/* ---------- header ---------- */
.wp-site-blocks > header.wp-block-template-part:has(> .izzy-header) { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 40; }
.izzy-header {
	position: relative; z-index: 40; background: color-mix(in srgb, var(--wp--preset--color--ivory) 86%, transparent);
	backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid var(--wp--preset--color--line);
	transition: box-shadow .3s;
}
.izzy-header.is-scrolled { box-shadow: 0 10px 30px -20px rgba(74, 16, 57, .35); }
.izzy-header { --izzy-gutter: clamp(16px, 4vw, 48px); } /* side gutter of the header row; the mobile overlay reuses it so logo and close button land where logo and burger are */
.izzy-header__inner { box-sizing: border-box; max-width: calc(1240px + 2 * clamp(16px, 4vw, 48px)); margin-inline: auto; padding-inline: var(--izzy-gutter); min-height: var(--izzy-header-h); display: flex; align-items: center; gap: 22px; }
.izzy-header__inner > * { margin-block: 0; }
.izzy-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--wp--preset--color--plum); }
.izzy-logo .izzy-mark { height: 44px; width: auto; flex-shrink: 0; transition: transform .5s cubic-bezier(.2, .8, .2, 1); }
.izzy-logo:hover .izzy-mark { transform: rotate(-8deg) scale(1.06); }
.izzy-logo__text { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-s); letter-spacing: .08em; line-height: 1; white-space: nowrap; text-transform: uppercase; }
.izzy-logo__text em { font-style: italic; text-transform: none; font-weight: 400; }
.izzy-logo__tag { display: block; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--xs); letter-spacing: .14em; color: var(--wp--preset--color--muted); text-transform: uppercase; margin-top: 3px; }
.izzy-header .wp-block-navigation { margin-inline: auto; }
.izzy-header .wp-block-navigation .wp-block-navigation-item__content { position: relative; padding: 6px 0; text-decoration: none; white-space: nowrap; }
.izzy-header .wp-block-navigation .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; background: var(--wp--preset--color--plum); transform: scaleX(0); transform-origin: left; transition: transform .3s; }
.izzy-header .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.izzy-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.izzy-header__cta { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.izzy-header__tel { font-size: var(--wp--preset--font-size--s); font-weight: 600; color: var(--wp--preset--color--plum); white-space: nowrap; }
.izzy-lang { font-size: var(--wp--custom--text--caption); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; display: inline-flex; align-items: center; gap: 2px; }
.izzy-lang .wp-block-navigation-item__content { padding: 4px 6px; }
.izzy-lang .current-lang .wp-block-navigation-item__content { color: var(--wp--preset--color--plum); }
/* Header budget (measured): logo 238 + nav 647 + lang/tel/book 361 + gaps 44 + padding 96 = 1386px.
   ≥1400 everything · 1280–1399 phone hidden · 1200–1279 phone hidden + compact nav + tighter padding · <1200 burger. */
@media (max-width: 1399px) { .izzy-header__tel { display: none; } }
@media (max-width: 1279px) { .izzy-header .wp-block-navigation { font-size: var(--wp--preset--font-size--s); } .izzy-header .wp-block-navigation.wp-block-navigation, .izzy-header .wp-block-navigation .wp-block-navigation__container { gap: 16px; } .izzy-header { --izzy-gutter: 28px; } .izzy-header__inner { gap: 16px; } }
.izzy-header__inner > * { min-width: 0; } .izzy-header__cta, .izzy-logo { flex-shrink: 0; }
/* Collapse the main menu into the burger below 1200px (core only collapses at 600px); the prototype hides the nav at 980px but our menu is wider. */
@media (min-width: 600px) and (max-width: 1199px) {
	.izzy-header .wp-block-navigation .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.izzy-header .wp-block-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: grid; }
	.izzy-header .wp-block-navigation { margin-left: auto; margin-right: 0; }
}
@media (max-width: 600px) { .izzy-logo__tag { display: none; } .izzy-logo .izzy-mark { height: 38px; } .izzy-logo__text { font-size: var(--wp--custom--text--body-plus); line-height: 1.05; } .izzy-logo__text em { display: block; } /* phones: IZZY over Spa & Studio, so the mark keeps its size next to the language switch */ .izzy-header .izzy-book { display: none; } }

/* ---------- footer ---------- */
.izzy-footer { background: var(--wp--preset--color--plum-deep); color: var(--wp--preset--color--on-dark); }
/* the footer meets the last section directly: no root block gap or margin strip of page background above it */
footer.wp-block-template-part:has(> .izzy-footer) { margin-block-start: 0; }
.izzy-footer a { color: inherit; text-decoration: none; }
.izzy-footer a:hover { color: #fff; }
.izzy-footer h2, .izzy-footer h3, .izzy-footer h4 { color: #fff; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); letter-spacing: .16em; text-transform: uppercase; margin: 0 0 14px; font-weight: 600; }
.izzy-footer__top { padding-block: 64px 48px; }
.izzy-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: var(--wp--preset--font-size--s); }
.izzy-footer .wp-block-navigation { font-size: var(--wp--preset--font-size--s); }
.izzy-footer .wp-block-navigation .wp-block-navigation__container { gap: 8px; }
.izzy-footer__brand p { max-width: 34ch; font-size: var(--wp--preset--font-size--s); opacity: .85; }
.izzy-footer__brand img { width: auto; }
.izzy-footer .izzy-contact--icons .izzy-contact__item { border-color: rgba(255, 255, 255, .3); color: #fff; }
.izzy-footer .izzy-addr { background: transparent; border: 0; padding: 0; color: inherit; }
.izzy-footer .izzy-addr h2, .izzy-footer .izzy-addr h3, .izzy-footer .izzy-addr h4, .izzy-footer .izzy-addr__h { font-family: var(--wp--preset--font-family--display); text-transform: none; letter-spacing: 0; font-size: var(--wp--custom--text--lead); margin: 6px 0 4px; }
.izzy-footer .izzy-addr p { color: var(--wp--preset--color--on-dark); opacity: .85; }
.izzy-footer .izzy-addr__links a { color: #fff; }
.izzy-footer .izzy-addr--footer h2, .izzy-footer .izzy-addr--footer h3, .izzy-footer .izzy-addr--footer h4 { color: #fff; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); letter-spacing: .16em; text-transform: uppercase; margin: 0 0 14px; font-weight: 600; }
.izzy-footer .izzy-addr--footer ul { color: var(--wp--preset--color--on-dark); opacity: .9; }
.izzy-footer .izzy-addr--footer a { color: #fff; }
.izzy-footer .izzy-chip { background: rgba(255, 255, 255, .12); color: #fff; }
.izzy-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .14); padding-block: 20px; opacity: .8; display: flex; flex-wrap: wrap; justify-content: space-between; }
.izzy-footer__bottom .wp-block-navigation { font-size: inherit; }

/* ---------- sticky mobile CTA ---------- */
.izzy-sticky { display: none !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45; gap: 10px; padding: 10px clamp(16px, 4vw, 48px) calc(10px + env(safe-area-inset-bottom, 0px)); background: color-mix(in srgb, #fff 92%, transparent); backdrop-filter: blur(12px); border-top: 1px solid var(--wp--preset--color--line); }
.izzy-sticky .izzy-book, .izzy-sticky .izzy-contact { display: contents; }
.izzy-sticky .izzy-btn, .izzy-sticky .izzy-contact__item { flex: 1; justify-content: center; padding: 13px 10px; }
.izzy-sticky .izzy-contact__item { border: 1.5px solid var(--wp--preset--color--plum); border-radius: 999px; color: var(--wp--preset--color--plum); font-weight: 600; font-size: var(--wp--preset--font-size--s); }
@media (max-width: 760px) { .izzy-sticky { display: flex !important; } body:has(.izzy-sticky) { padding-bottom: 70px; } }
/* Tucked away while a booking button of the page itself is on screen (e.g. the hero), so the two never stack. */
.izzy-sticky { transition: transform .45s var(--izzy-ease), opacity .3s; }
.izzy-sticky.is-tucked { transform: translateY(110%); opacity: 0; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .izzy-sticky { transition: none; } }

@keyframes izzy-float { 0%, 100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-16px) rotate(2deg); } }
.izzy-trust { display: flex; flex-wrap: wrap; gap: 12px 28px; align-items: center; font-size: var(--wp--preset--font-size--s); color: rgba(255, 255, 255, .92); }
.izzy-trust b { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-s); font-weight: 500; margin-right: 6px; }

/* ---------- block styles ---------- */
.is-style-izzy-eyebrow { font-family: var(--wp--preset--font-family--body); text-transform: uppercase; color: var(--wp--preset--color--plum-soft); margin-bottom: .5rem; }
.is-style-izzy-lead { color: var(--wp--preset--color--muted); max-width: 60ch; }
.wp-block-group.is-style-izzy-card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--izzy-r); padding: 26px 28px; box-shadow: var(--izzy-shadow); }
.wp-block-group.is-style-izzy-band { background: var(--wp--preset--color--plum); color: #fff; border-radius: var(--izzy-r); padding: clamp(36px, 6vw, 64px); position: relative; overflow: hidden; }
.wp-block-group.is-style-izzy-band h1, .wp-block-group.is-style-izzy-band h2, .wp-block-group.is-style-izzy-band h3 { color: #fff; }
.wp-block-group.is-style-izzy-band p { color: rgba(255, 255, 255, .85); }
.wp-block-group.is-style-izzy-band .is-style-izzy-eyebrow { color: var(--wp--preset--color--on-dark); }
.wp-block-group.is-style-izzy-band::after, .wp-block-group.is-style-izzy-watermark::after { content: ""; position: absolute; right: -40px; top: -40px; width: 320px; aspect-ratio: 312 / 344; background: url("../img/mark-white.svg") no-repeat center / contain; opacity: .12; pointer-events: none; }
.wp-block-group.is-style-izzy-watermark { position: relative; overflow: hidden; }
.wp-block-group.is-style-izzy-watermark::after { background-image: url("../img/mark.svg"); opacity: .06; width: 420px; right: -60px; top: auto; bottom: -80px; }
.wp-block-image.is-style-izzy-rounded img { border-radius: var(--izzy-r); }
.wp-block-button.is-style-izzy-ghost .wp-block-button__link { background: transparent; color: var(--wp--preset--color--plum); border-color: currentColor; }
.wp-block-button.is-style-izzy-light .wp-block-button__link { background: #fff; color: var(--wp--preset--color--plum-deep); border-color: #fff; }
.wp-block-button.is-style-izzy-studio .wp-block-button__link { background: var(--wp--preset--color--studio-btn); border-color: var(--wp--preset--color--studio-btn); color: #fff; }
.wp-block-button.is-style-izzy-studio .wp-block-button__link:hover { background: var(--wp--preset--color--studio-text); border-color: var(--wp--preset--color--studio-text); color: #fff; }
.wp-block-button .wp-block-button__link { transition: transform .25s, box-shadow .25s, background .25s; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: var(--izzy-shadow); }
ul.is-style-izzy-benefits { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
ul.is-style-izzy-benefits li { display: flex; gap: 10px; align-items: flex-start; color: var(--wp--preset--color--muted); }
ul.is-style-izzy-benefits li::before { color: var(--wp--preset--color--gold); flex: none; }
@media (max-width: 600px) { ul.is-style-izzy-benefits { grid-template-columns: 1fr; } }
ol.is-style-izzy-steps { list-style: none; padding: 0; counter-reset: s; display: grid; gap: 14px; }
ol.is-style-izzy-steps li { position: relative; padding-left: 62px; min-height: 44px; color: var(--wp--preset--color--muted); }
ol.is-style-izzy-steps li::before { counter-increment: s; content: counter(s, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-m); border: 1px solid var(--wp--preset--color--line); border-radius: 50%; width: 46px; height: 46px; display: grid; place-items: center; box-sizing: border-box; line-height: 1; font-variant-numeric: lining-nums tabular-nums; padding-bottom: .1em; }
/* Playfair's default old-style figures sit ~3px low (and the 4 descends); lining figures + .1em bottom padding put the digits on the optical centre of the circle. */
ol.is-style-izzy-steps li strong { display: block; color: var(--wp--preset--color--ink); }

/* ---------- mark ---------- */
.izzy-mark-wrap { display: inline-block; line-height: 0; }
.izzy-mark-wrap.aligncenter { display: block; text-align: center; }
.izzy-mark-wrap .izzy-mark { height: var(--mark-size, 48px); width: auto; opacity: var(--mark-opacity, 1); }

/* ---------- treatment body ---------- */
.izzy-treatment-body { gap: 56px; }
.izzy-treatment-body > .wp-block-column { min-width: 0; }
.izzy-treatment-body h2 { font-size: var(--wp--preset--font-size--xl); margin-top: 1.6em; }
.izzy-treatment-body > .wp-block-column:first-child > p { color: var(--wp--preset--color--muted); }
.izzy-treatment-body > .wp-block-column:first-child > :is(p, ul, ol), .izzy-treatment-body .schema-faq-answer { max-width: 58ch; } /* ch is a digit's width: 58ch ≈ 70 characters of Raleway text a line */
@media (max-width: 900px) { .izzy-treatment-body { gap: 32px; } }

/* ---------- category / location heroes ---------- */

/* ---------- blog cards (query loop) ---------- */
.izzy-posts .wp-block-post { display: grid; gap: 12px; }
/* One tap anywhere on a journal card opens the article (the title link is stretched over it); the category link stays on top. */
.izzy-posts .wp-block-post { position: relative; }
.izzy-posts .wp-block-post-title a { position: static; } /* beats the touch hit-area rule's position: relative, so ::after spans the card */
.izzy-posts .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.izzy-posts .wp-block-post-terms a { position: relative; z-index: 2; }
.izzy-posts .wp-block-post-featured-image img { border-radius: var(--izzy-r-s); aspect-ratio: 16 / 10; object-fit: cover; transition: transform 1s; }
.izzy-posts .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.04); }
.izzy-posts .wp-block-post-featured-image { overflow: hidden; border-radius: var(--izzy-r-s); }
.izzy-posts .wp-block-post-date, .izzy-posts .wp-block-post-terms { font-size: var(--wp--custom--text--caption); letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted); }

/* ---------- misc ---------- */
.izzy-section-blush { background: var(--wp--preset--color--blush); }
.izzy-section-peach { background: var(--wp--preset--color--peach); }
.wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.entry-content p a:not(.izzy-btn), .entry-content li a:not(.izzy-crumbs a) { text-decoration: underline; text-underline-offset: .15em; }

/* ---------- Yoast FAQ block styled as the Izzy accordion ---------- */
.schema-faq { display: grid; gap: 10px; }
.schema-faq-section { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--izzy-r-s); padding: 0 22px; }
.schema-faq-question { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 0; font-weight: 600; cursor: pointer; }
.schema-faq-question::after { content: "+"; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-m); color: var(--wp--preset--color--plum); line-height: 1; flex: none; }
.schema-faq-section.is-open .schema-faq-question::after { transform: rotate(45deg); }
.schema-faq-answer { margin: 0; padding: 0 0 18px; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--s); }
/* smooth accordion: the JS wraps the answer in .schema-faq-body (grid rows 0fr → 1fr) */
.schema-faq.is-accordion .schema-faq-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--izzy-ease-out, cubic-bezier(.2, .7, .2, 1)); }
.schema-faq.is-accordion .schema-faq-section.is-open .schema-faq-body { grid-template-rows: 1fr; }
.schema-faq.is-accordion .schema-faq-body__in { min-height: 0; overflow: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .4s ease, transform .5s var(--izzy-ease-out, ease); }
.schema-faq.is-accordion .schema-faq-section.is-open .schema-faq-body__in { opacity: 1; transform: none; transition-delay: .08s; }
.schema-faq-section { transition: border-color .35s ease, background-color .35s ease, box-shadow .35s ease; }
.schema-faq-question { transition: color .3s ease; }
.schema-faq-question::after { transition: transform .45s var(--izzy-ease-out, ease), color .3s ease; }
.schema-faq-section:hover { border-color: var(--wp--preset--color--plum-soft); background: color-mix(in srgb, var(--wp--preset--color--plum-tint) 45%, #fff); }
.schema-faq-section:hover .schema-faq-question { color: var(--wp--preset--color--plum); }
.schema-faq-section:hover .schema-faq-question::after { transform: scale(1.3); }
.schema-faq-section.is-open:hover .schema-faq-question::after { transform: rotate(45deg) scale(1.3); }
.schema-faq-section.is-open { border-color: var(--wp--preset--color--plum-soft); }
.schema-faq-h { margin: 0; font: inherit; letter-spacing: inherit; text-transform: none; color: inherit; }
.schema-faq-btn { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.schema-faq-btn:focus-visible { outline: 2px solid var(--wp--preset--color--plum); outline-offset: 2px; border-radius: 4px; }
.schema-faq-section img { border-radius: var(--izzy-r-s); margin-bottom: 12px; }

/* ---------- home sections ---------- */
.wp-block-group.izzy-today, .izzy-today { min-width: 270px; max-width: 320px; margin: 0; background: rgba(255, 255, 255, .14); backdrop-filter: blur(12px); border: 1px solid rgba(255, 255, 255, .3); border-radius: 18px; padding: 16px 20px; display: grid; gap: 8px; font-size: var(--wp--custom--text--small); color: #fff; }
.izzy-today .izzy-status { flex-direction: column; gap: 6px; }
.izzy-today .izzy-open { display: flex; align-items: center; gap: 10px; width: 100%; font-weight: 500; }
.izzy-today .izzy-open b { margin-right: auto; font-weight: 500; color: #fff; opacity: 1; }
.izzy-today .izzy-open, .izzy-today .izzy-open.is-closed, .izzy-today .izzy-open.is-open { opacity: 1; }
.izzy-today .izzy-open.is-open { font-weight: 600; }
.izzy-today .izzy-open.is-open { color: var(--wp--preset--color--open-on-dark); } .izzy-today .izzy-open.is-closed { color: rgba(255, 255, 255, .75); }
.izzy-today p { margin: 0; color: rgba(255, 255, 255, .8); }
.izzy-trust p { margin: 0; }
.izzy-trust .izzy-stars { margin-inline: 0 2px; }
.wp-block-button.is-style-outline-light .wp-block-button__link { background: transparent; border-color: rgba(255, 255, 255, .7); color: #fff; }
.izzy-sec-head > .wp-block-group > * { margin: 0; }
.izzy-sec-head h2 { max-width: 22ch; }
.izzy-philo__ph .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.izzy-philo__badge { position: absolute; left: -18px; bottom: 36px; background: #fff; border-radius: 18px; padding: 18px 22px; box-shadow: var(--izzy-shadow); max-width: 240px; }
.izzy-philo__badge p { margin: 0; display: grid; gap: 2px; }
.izzy-philo__badge b { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-l); font-weight: 500; color: var(--wp--preset--color--plum); }
.izzy-philo__badge span { font-size: var(--wp--custom--text--small); color: var(--wp--preset--color--muted); }
.izzy-pillar { gap: 16px; }
.izzy-pillar__i { flex: none; display: grid; place-items: center; color: var(--wp--preset--color--plum); }
.izzy-pillar__i svg { width: 24px; height: 24px; }
.izzy-pillar h3, .izzy-pillar h4 { font-family: var(--wp--preset--font-family--body); font-weight: 700; font-size: var(--wp--preset--font-size--m); margin: 0 0 4px; }
.izzy-pillar p { color: var(--wp--preset--color--muted); margin: 0; }
@media (max-width: 860px) { .izzy-philo__badge { left: 16px; } }
.izzy-offer .izzy-chip { margin-bottom: 8px; }
/* price paragraphs (block styles "Price: label" / "Price" / "Price: former price"); colour follows the surface */
.is-style-izzy-price-label { margin: 0 0 8px; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .85; }
.is-style-izzy-price { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1; }
.is-style-izzy-price-was { margin: 10px 0 0; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--s); letter-spacing: .02em; opacity: .85; }
.izzy-offer__price p { color: #fff; }
.izzy-offer__bigprice { font-family: var(--wp--preset--font-family--display); color: var(--wp--preset--color--plum); margin: 10px 0; }
.izzy-offer__bigprice + .is-style-izzy-price-was { margin-top: -2px; color: var(--wp--preset--color--muted); opacity: 1; }
@media (max-width: 760px) { .izzy-offer__price p, .izzy-offer__price p.has-text-align-right { text-align: left; } }
ul.is-style-izzy-benefits.is-style-izzy-benefits-1col { grid-template-columns: 1fr; }
.is-style-izzy-card h3 { margin-top: 0; }

/* ---------- contact / forms (Ninja Forms) ---------- */
.izzy-contact-card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--izzy-r); padding: 28px; box-shadow: var(--izzy-shadow); }
.nf-form-cont .nf-form-fields-required { display: none; }
.nf-form-cont .nf-field-label label { font-size: var(--wp--custom--text--caption); letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--muted); }
.nf-form-cont .nf-field-element input:not([type=submit]):not([type=checkbox]), .nf-form-cont .nf-field-element textarea, .nf-form-cont .nf-field-element select { width: 100%; border: 1px solid var(--wp--preset--color--line-strong, #9C8794); border-radius: 12px; padding: 13px 16px; font: inherit; background: var(--wp--preset--color--ivory); color: var(--wp--preset--color--ink); transition: border-color .2s, box-shadow .2s; }
.nf-form-cont .nf-field-element input:focus, .nf-form-cont .nf-field-element textarea:focus, .nf-form-cont .nf-field-element select:focus { outline: none; border-color: var(--wp--preset--color--plum); box-shadow: 0 0 0 3px var(--wp--preset--color--plum-tint); }
.nf-form-cont .nf-field-element input[type=submit], .nf-form-cont .nf-field-element input[type=button] { background: var(--wp--preset--color--plum); color: #fff; border: 1.5px solid var(--wp--preset--color--plum); border-radius: 999px; padding: 14px 26px; font-weight: 600; font-size: var(--wp--preset--font-size--s); letter-spacing: .02em; cursor: pointer; font-family: var(--wp--preset--font-family--body); transition: transform .25s, box-shadow .25s, background .25s; }
.nf-form-cont .nf-field-element input[type=submit]:hover { background: var(--wp--preset--color--plum-deep); transform: translateY(-2px); box-shadow: var(--izzy-shadow); }
.nf-form-cont .nf-field-container { margin-bottom: 18px; }
/* Same specificity as the base field rule above (its :not() selectors count), so text inputs turn red too, not only the textarea. */
.nf-form-cont .nf-error .nf-field-element input:not([type=submit]):not([type=checkbox]), .nf-form-cont .nf-error .nf-field-element textarea, .nf-form-cont .nf-error .nf-field-element select { border-color: var(--wp--preset--color--error); }
.nf-form-cont .nf-error-msg, .nf-form-cont .ninja-forms-req-symbol { color: var(--wp--preset--color--error); }
.nf-form-cont .nf-response-msg { background: var(--wp--preset--color--plum-tint); border-radius: 14px; padding: 18px 22px; color: var(--wp--preset--color--plum-deep); }
.nf-form-cont .nf-response-msg p { margin: 0; }

/* ---------- editor canvas parity ---------- */
.editor-styles-wrapper .izzy-header { position: static; }
.editor-styles-wrapper .izzy-sticky { display: none !important; }
.editor-styles-wrapper .izzy-media, .editor-styles-wrapper .izzy-hero2__img.izzy-media { clip-path: none; } .editor-styles-wrapper .izzy-media img { transform: none; } .editor-styles-wrapper .izzy-split .izzy-w__i { transform: none; } /* no scroll-reveal script in the editor */
.editor-styles-wrapper .izzy-marquee__track { animation: none; }
.editor-styles-wrapper .izzy-notice { font-style: italic; }

/* ---------- no gaps around full-width sections (hero, marquee, bands) ---------- */
.wp-site-blocks > main { margin-block-start: 0; }
.wp-block-post-content > .alignfull, .wp-block-post-content > .izzy-marquee { margin-block: 0; }
.editor-styles-wrapper .wp-block-post-content > .alignfull { margin-block: 0 !important; }

/* ---------- link hover motion (site-wide) ----------
   One family of gestures instead of the usual underline: inline links get a plum-tint marker that rises from the
   baseline; utility links get a small gold butterfly that lands in front of the word; menu items roll into an
   italic Playfair version; buttons lift. */
a, button, .izzy-btn, .wp-block-button__link, .izzy-chip, .izzy-tag, .izzy-contact__item, .izzy-addr__links a, .izzy-crumbs a {
	transition: color .3s ease, background-color .3s ease, border-color .3s ease, opacity .3s ease, transform .3s ease, box-shadow .3s ease, background-size .45s var(--izzy-ease);
}
/* Inline text links: marker highlight rising from the baseline. */
.entry-content p a:not(.izzy-btn):not(.wp-block-button__link), .entry-content li a:not(.izzy-crumbs a):not(.wp-block-navigation-item__content), .izzy-footer__brand p a, .nf-form-cont a, .schema-faq-answer a, .izzy-good p a, .izzy-rev a, .izzy-addr--ask a {
	text-decoration: none; color: var(--wp--preset--color--plum); padding: 0 .12em; margin: 0 -.12em; border-radius: 3px;
	background-image: linear-gradient(var(--wp--preset--color--plum-tint), var(--wp--preset--color--plum-tint)); background-repeat: no-repeat; background-position: 0 100%; background-size: 100% .18em;
}
.entry-content p a:not(.izzy-btn):not(.wp-block-button__link):hover, .entry-content li a:not(.izzy-crumbs a):not(.wp-block-navigation-item__content):hover, .izzy-footer__brand p a:hover, .nf-form-cont a:hover, .schema-faq-answer a:hover, .izzy-good p a:hover, .izzy-rev a:hover, .izzy-addr--ask a:hover { background-size: 100% 100%; color: var(--wp--preset--color--plum-deep); }
/* Utility links (footer, breadcrumbs, address links): nothing moves. A gold hairline draws itself under the word from
   left to right and the colour warms; no pseudo-element outside the box, so neighbours and separators never shift. */
.izzy-addr__links a, .izzy-footer ul a, .izzy-footer .wp-block-navigation-item__content, .izzy-footer__bottom a, .izzy-crumbs a, .izzy-footer .izzy-addr__contact a {
	position: relative; display: inline; text-decoration: none; background: none; transform: none;
	background-image: linear-gradient(var(--wp--preset--color--gold), var(--wp--preset--color--gold)); background-repeat: no-repeat; background-position: 0 calc(100% - .05em); background-size: 0% 1.5px; transition: color .3s ease, background-size .5s var(--izzy-ease-out);
}
.izzy-addr__links a:hover, .izzy-footer ul a:hover, .izzy-footer .wp-block-navigation-item__content:hover, .izzy-footer__bottom a:hover, .izzy-crumbs a:hover, .izzy-footer .izzy-addr__contact a:hover,
.izzy-addr__links a:focus-visible, .izzy-footer ul a:focus-visible, .izzy-footer .wp-block-navigation-item__content:focus-visible, .izzy-footer__bottom a:focus-visible, .izzy-crumbs a:focus-visible, .izzy-footer .izzy-addr__contact a:focus-visible { background-size: 100% 1.5px !important; }
.izzy-crumbs a:hover, .izzy-addr__links a:hover { color: var(--wp--preset--color--plum-deep); }
.izzy-footer ul a:hover, .izzy-footer .wp-block-navigation-item__content:hover, .izzy-footer__bottom a:hover, .izzy-footer .izzy-addr__contact a:hover { color: var(--wp--preset--color--gold); }
/* Card titles, blog titles and the logo: colour shift only. */
.izzy-card__title a, .izzy-loccard :is(h2, h3, h4) a, .izzy-posts .wp-block-post-title a { transition: color .3s ease; }
.izzy-card__title a:hover, .izzy-loccard :is(h2, h3, h4) a:hover, .izzy-posts .wp-block-post-title a:hover { color: var(--wp--preset--color--plum); }
.izzy-logo__text { transition: color .3s ease; }
.izzy-logo:hover .izzy-logo__text { color: var(--wp--preset--color--plum-deep); }
/* Contact channel rows slide slightly; icon circles fill. */
.izzy-contact--list .izzy-contact__item:hover { transform: translateX(4px); }
.izzy-contact--icons .izzy-contact__item:hover, .izzy-footer .izzy-contact--icons .izzy-contact__item:hover { background: var(--wp--preset--color--plum); color: #fff; border-color: var(--wp--preset--color--plum); }
.izzy-footer .izzy-contact--icons .izzy-contact__item:hover { background: #fff; color: var(--wp--preset--color--plum-deep); border-color: #fff; }
/* Chips / tags that are links. */
a.izzy-chip:hover, a.izzy-tag:hover { transform: translateY(-1px); box-shadow: 0 6px 14px -8px rgba(74, 16, 57, .4); }
.izzy-map__pin:hover .izzy-map__dot { transform: rotate(-45deg) scale(1.12); }
.izzy-map__dot { transition: transform .3s ease; }
/* Language switcher & phone: colour shift. */
.izzy-lang a, .izzy-header__tel { text-decoration: none; background: none; }

/* Header menu: the label rolls up and an italic Playfair twin rolls in (data-text is set by theme.js). */
.izzy-header .wp-block-navigation .wp-block-navigation-item__content { overflow: visible; }
.izzy-header .wp-block-navigation .wp-block-navigation-item__content::after { display: none; } /* retire the old underline */
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation-item__label { position: relative; display: inline-block; overflow: hidden; vertical-align: top; line-height: 1.3; }
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation-item__label > span { display: inline-block; transition: transform .55s var(--izzy-ease), opacity .4s; }
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation-item__label::after { content: attr(data-text); position: absolute; left: 0; top: 0; transform: translateY(110%); display: inline-block; font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: 0; font-size: 1.28em; line-height: 1; color: var(--wp--preset--color--plum); white-space: nowrap; transition: transform .55s var(--izzy-ease); }
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content .wp-block-navigation-item__label > span { transform: translateY(-110%); }
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content .wp-block-navigation-item__label::after { transform: translateY(0); }
/* current page: a small gold butterfly under the label */
.izzy-header .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::before, .izzy-header .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::before { content: ""; position: absolute; left: 50%; bottom: -8px; width: 12px; height: 11px; margin-left: -6px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; }
/* Submenu: a soft card that fades and floats in; items get a plum-tint sweep and a butterfly bullet. */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container { background: rgba(255, 251, 248, .96) !important; -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border: 1px solid var(--wp--preset--color--line) !important; border-radius: 18px; padding: 10px !important; min-width: 280px; box-shadow: 0 30px 60px -30px rgba(74, 16, 57, .45); margin-top: 14px; opacity: 0; visibility: hidden; transform: translateY(10px) scale(.98); transform-origin: top left; transition: opacity .35s var(--izzy-ease) .18s, transform .45s var(--izzy-ease) .18s, visibility 0s linear .63s !important; } /* closing waits .18s: a pointer that slips off for a moment finds the card still there */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:hover > .wp-block-navigation__submenu-container, .izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:focus-within > .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; transform: none; transition-delay: 0s !important; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; } /* hover bridge */
/* a second bridge on the item itself: it does not move with the card's float-in transform, so the path label → card never has a hole */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child { position: relative; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .has-child:hover::after { content: ""; position: absolute; left: -10px; top: 100%; width: max(calc(100% + 20px), 300px); height: 20px; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: block; padding: 10px 14px 10px 32px !important; border-radius: 10px; position: relative; color: var(--wp--preset--color--ink); transition: background .3s, color .3s, padding-left .4s var(--izzy-ease); }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { content: ""; position: absolute; left: 12px; top: 50%; width: 12px; height: 11px; margin-top: -5px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; opacity: 0; transform: translateX(-6px) rotate(-25deg); transition: opacity .3s, transform .45s var(--izzy-ease); }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--plum-tint); color: var(--wp--preset--color--plum-deep); padding-left: 36px !important; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover::before { opacity: 1; transform: none; }
/* chevron: only the svg turns (core already flips it on aria-expanded; rotating the button too made a 360° spin) */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon { transform: none !important; justify-content: center; } /* centred in its 24px target = 6px from the label */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon svg { transition: transform .35s var(--izzy-ease); }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-icon svg, .izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle[aria-expanded=true] > svg { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { a, .izzy-btn, .izzy-contact__item { transition: none !important; } }

/* ---------- cookie banner (Kansleri) in the Izzy look ---------- */
.kncc-banner--corner { left: auto; right: 1rem; bottom: 1rem; max-width: 420px; }
.kncc-banner--corner .kncc-inner { border-radius: var(--izzy-r); padding: 26px 28px 24px; box-shadow: 0 24px 60px -24px rgba(74, 16, 57, .45); border: 1px solid var(--wp--preset--color--line); }
#kncc-banner .kncc-heading, .kncc-banner .kncc-heading { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: var(--wp--custom--text--title-s); line-height: 1.2; letter-spacing: -.01em; margin: 0 0 8px; }
.kncc-banner .kncc-desc { font-size: var(--wp--preset--font-size--s); line-height: 1.55; }
.kncc-banner .kncc-btn { border-radius: 999px; font-weight: 600; font-size: var(--wp--custom--text--small); letter-spacing: .02em; padding: 11px 20px; transition: transform .25s ease, box-shadow .25s ease, background .25s; }
.kncc-banner .kncc-btn:hover { transform: translateY(-2px); box-shadow: var(--izzy-shadow); }
.kncc-banner .kncc-btn--link { padding-inline: 4px; text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size .3s ease; }
.kncc-banner .kncc-btn--link:hover { background-size: 100% 1px; transform: none; box-shadow: none; }
.kncc-banner .kncc-policy-link { color: var(--wp--preset--color--plum); }
.kncc-banner .kncc-category__toggle input:checked + *, .kncc-banner .kncc-category__check:checked { accent-color: var(--wp--preset--color--plum); }
.kncc-banner .kncc-details { border-top: 1px dashed var(--wp--preset--color--line); margin-top: 14px; padding-top: 14px; }
/* The banner never grows past the screen: with "Personnaliser" open it scrolls inside instead of pushing the heading and × off the top. */
.kncc-banner--corner .kncc-inner { max-height: calc(100dvh - 2rem); overflow-y: auto; overscroll-behavior: contain; }
.kncc-banner .kncc-banner-close { min-width: 44px; min-height: 44px; display: grid; place-items: center; }
.kncc-banner .kncc-btn { min-height: 44px; }
@media (max-width: 600px) {
	.kncc-banner--corner { left: .5rem; right: .5rem; max-width: none; }
	.izzy-sticky ~ #kncc-banner, body:has(.izzy-sticky) .kncc-banner--corner { bottom: 84px; }
	body:has(.izzy-sticky) .kncc-banner--corner .kncc-inner { max-height: calc(100dvh - 84px - 1.5rem - env(safe-area-inset-top, 0px)); }
	.kncc-banner--corner .kncc-inner { padding: 22px 20px 18px; }
	#kncc-banner .kncc-heading, .kncc-banner .kncc-heading { font-size: var(--wp--custom--text--lead); padding-right: 36px; }
	.kncc-banner .kncc-desc { font-size: var(--wp--custom--text--small); line-height: 1.5; }
}

/* ======================================================================
   v2 — editorial layer: large type, numbered sections, scroll reveals,
   grain, cursor. (Playfair Display + Raleway remain the brand voice.)
   ====================================================================== */
:root { --izzy-ease: cubic-bezier(.2, .8, .2, 1); --izzy-ease-out: cubic-bezier(.16, 1, .3, 1); }

/* ---------- type scale ---------- */
h1.wp-block-heading, .wp-block-post-title { letter-spacing: -.02em; line-height: 1.02; }
main h2.wp-block-heading, .izzy-sec-head h2, .izzy-related h2 { font-size: clamp(2.1rem, 3.9vw, 3.4rem); line-height: 1.04; letter-spacing: -.018em; }
main h2.wp-block-heading em, .izzy-hero2__title em, .izzy-footer__big em { font-style: italic; font-weight: 400; color: var(--wp--preset--color--plum); }
.is-style-izzy-eyebrow { font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; font-weight: 600; }
.is-style-izzy-lead { font-size: var(--wp--custom--text--lead); line-height: 1.6; }
/* numbered section labels (01 — Our locations …): counted on the page's top-level sections */
.wp-block-post-content { counter-reset: izzy-sec; }
/* only sections that actually show a number are counted, so the sequence never skips (01, 02, 03…) */
.wp-block-post-content > section:has(.izzy-sec-head .is-style-izzy-eyebrow, > .wp-block-group > .is-style-izzy-eyebrow:first-child) { counter-increment: izzy-sec; }
.wp-block-post-content > section .izzy-sec-head .is-style-izzy-eyebrow::before,
.wp-block-post-content > section > .wp-block-group > .is-style-izzy-eyebrow:first-child::before { content: counter(izzy-sec, decimal-leading-zero) "  —  "; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--gold); letter-spacing: .1em; }
.izzy-sec-head { position: relative; padding-top: 26px; margin-bottom: 48px; }
.izzy-sec-head::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 1px; background: linear-gradient(90deg, var(--wp--preset--color--plum) 0 64px, var(--wp--preset--color--line) 64px); }
.izzy-sec-head > .wp-block-group > .is-style-izzy-eyebrow { margin-bottom: 14px; }
.izzy-sec-head .is-style-izzy-lead { max-width: 42ch; }

/* ---------- grain + selection ---------- */
body::after { content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: .045;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
::selection { background: var(--wp--preset--color--plum); color: #fff; }

/* ---------- header refinements ---------- */
.izzy-header .wp-block-navigation .wp-block-navigation-item__content { font-size: var(--wp--custom--text--caption); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; }
.izzy-header .wp-block-navigation .wp-block-navigation-item__content::after { height: 1px; bottom: 2px; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content { text-transform: none; letter-spacing: 0; font-size: var(--wp--preset--font-size--s); font-weight: 500; }
.izzy-header__tel { font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.izzy-header.is-scrolled { --izzy-header-h: 64px; }
.izzy-header__inner { transition: min-height .4s var(--izzy-ease); }

/* ---------- hero v2 : split editorial ---------- */
.izzy-hero2 { position: relative; overflow: clip; background: var(--wp--preset--color--ivory); padding-block: 0; }
.izzy-hero2::before { content: ""; position: absolute; left: max(-6vw, -120px); top: 6%; width: min(46vw, 560px); aspect-ratio: 312 / 344; background: url("../img/mark.svg") no-repeat center / contain; opacity: .07; animation: izzy-float 11s ease-in-out infinite; pointer-events: none; }
.izzy-hero2 .izzy-hero2__grid { min-height: calc(100vh - var(--izzy-header-h) - 32px); max-height: 920px; align-items: stretch !important; margin-block: 0; }
.izzy-hero2__media.wp-block-column { align-self: stretch; }
.izzy-hero2__copy.wp-block-column { align-self: center; }
.izzy-hero2__copy { position: relative; z-index: 1; display: grid; align-content: center; gap: 24px; padding: clamp(56px, 9vh, 120px) clamp(28px, 5vw, 84px) clamp(56px, 9vh, 120px) 0; }
.izzy-hero2__copy > * { margin: 0; }
.izzy-hero2__eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--wp--preset--color--plum-soft); }
.izzy-hero2__eyebrow::before { content: ""; width: 22px; height: 24px; background: var(--wp--preset--color--plum); -webkit-mask: url("../img/mark.svg") no-repeat center / contain; mask: url("../img/mark.svg") no-repeat center / contain; flex: none; }
.izzy-hero2__title { font-size: clamp(2.9rem, 6.1vw, 5.7rem); line-height: .98; letter-spacing: -.025em; max-width: 9em; text-wrap: balance; }
.izzy-hero2__lead { max-width: 42ch; color: var(--wp--preset--color--muted); }
.izzy-hero2__cta { gap: 28px; align-items: center; margin-top: 8px; }
.izzy-hero2__trust { color: var(--wp--preset--color--muted); font-size: var(--wp--custom--text--small); margin-top: 10px; padding-top: 22px; border-top: 1px solid var(--wp--preset--color--line); width: 100%; }
.izzy-hero2__trust b { color: var(--wp--preset--color--ink); }
.izzy-hero2__media { position: relative; margin-right: calc(50% - 50vw) !important; min-height: 520px; }
/* the photo column bleeds to the right edge of the window: widen it by the same amount as its negative margin */
@media (min-width: 901px) { .izzy-hero2 .izzy-hero2__grid > .izzy-hero2__media.izzy-col-48 { flex-basis: calc(48% + (100vw - 100%) / 2) !important; } }
.izzy-hero2__img { position: absolute; inset: 0; margin: 0; border-radius: var(--izzy-r) 0 0 var(--izzy-r); overflow: hidden; }
.izzy-hero2__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; display: block; transform: translateY(var(--py, 0)) scale(1.08); }
.izzy-hero2 .izzy-today { position: absolute; left: clamp(20px, 3vw, 40px); bottom: clamp(24px, 4vh, 44px); z-index: 2; background: rgba(43, 26, 38, .55); border-color: rgba(255, 255, 255, .22); }
/* arrow text link (hero secondary action) */
.izzy-arrow-link { margin: 0; }
.izzy-arrow-link a { display: inline-flex; align-items: center; gap: 12px; font-weight: 600; font-size: var(--wp--preset--font-size--s); letter-spacing: .02em; color: var(--wp--preset--color--plum); text-decoration: none; background: none !important; }
.izzy-arrow-link a::after { content: ""; width: 36px; height: 1px; background: currentColor; transition: width .4s var(--izzy-ease); }
.izzy-arrow-link a:hover::after { width: 56px; }
@media (max-width: 900px) {
	.izzy-hero2 .izzy-hero2__grid { min-height: 0; max-height: none; }
	.izzy-hero2__media { order: -1; } /* photo first; (column-reverse would let flex-basis:100% zero the height) */
	.izzy-hero2__media { margin-inline: calc(50% - 50vw) !important; min-height: 0; height: clamp(300px, 72vw, 560px); flex-basis: 100vw !important; }
	.izzy-hero2__img { border-radius: 0; }
	.izzy-hero2__copy { padding: 16px 0 48px; }
	.izzy-hero2__title { font-size: clamp(2.4rem, 11vw, 3.6rem); }
	.izzy-hero2 .izzy-today { left: 16px; right: 16px; bottom: 16px; max-width: none; }
	.izzy-hero2::before { display: none; }
}

/* ---------- reveal system ---------- */
.izzy-split .izzy-w { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .08em; margin-bottom: -.08em; }
.izzy-split .izzy-w__i { display: inline-block; transform: translateY(110%) rotate(2deg); transform-origin: left bottom; }
.izzy-split.is-in .izzy-w__i, .izzy-no-motion .izzy-w__i { transform: none; transition: transform 1s var(--izzy-ease-out); transition-delay: calc(var(--i, 0) * 55ms + var(--d, 0ms)); }
.izzy-media { clip-path: inset(0 0 100% 0); transition: clip-path 1.2s var(--izzy-ease-out); transition-delay: var(--d, 0ms); }
.izzy-media img { transform: scale(1.12); transition: transform 1.6s var(--izzy-ease-out); transition-delay: var(--d, 0ms); }
.izzy-media.is-in, .izzy-no-motion .izzy-media { clip-path: inset(0 0 0 0); }
.izzy-media.is-in img, .izzy-no-motion .izzy-media img { transform: translateY(var(--py, 0)) scale(1.001); }
.izzy-hero2__img.izzy-media { clip-path: none; } /* hero photos are the LCP: visible from the first paint (only the gentle zoom-out remains) */
.izzy-hero2__img.izzy-media.is-in img { transform: translateY(var(--py, 0)) scale(1.02); transition: transform 2s var(--izzy-ease-out); }
.izzy-cat.izzy-media img { transition-duration: 1.4s; }
.izzy-cat.izzy-media.is-in img { transform: scale(1.001); }
@media (hover: hover) { .izzy-cat.izzy-media.is-in:hover img { transform: scale(1.07); transition-duration: 1.1s; } }
.izzy-card__ph.izzy-media.is-in img { transform: scale(1.001); } @media (hover: hover) { .izzy-card:hover .izzy-card__ph.izzy-media.is-in img { transform: scale(1.06); transition-duration: 1s; } }
.izzy-loccard__ph.izzy-media.is-in img { transform: scale(1.001); } .izzy-loccard:hover .izzy-loccard__ph.izzy-media.is-in img { transform: scale(1.06); transition-duration: 1.2s; }
.izzy-fade { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--izzy-ease-out), transform .9s var(--izzy-ease-out); transition-delay: var(--d, 0ms); }
.izzy-fade.is-in, .izzy-no-motion .izzy-fade { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .izzy-media, .izzy-media img, .izzy-fade, .izzy-split .izzy-w__i { clip-path: none !important; transform: none !important; opacity: 1 !important; transition: none !important; } .izzy-hero2::before { animation: none; } }

/* ---------- cursor + magnetic buttons ---------- */
/* Companion butterfly: the logo's butterfly (without its circle) glides a little behind the native pointer.
   Body and the two wings are separate layers; each wing folds around the body axis (3D rotate3d, perspective
   centred on the body) in opposite phase, so the wings really beat. Turns gold and slow over links; perches on a still pointer. Desktop only. */
.izzy-cursor { position: fixed; left: 0; top: 0; width: 44px; height: 40px; margin: -20px 0 0 -22px; pointer-events: none; z-index: 10000; opacity: 0; transition: opacity .4s; }
.izzy-cursor.is-on { opacity: 1; }
.izzy-cursor__bob { position: relative; width: 100%; height: 100%; perspective: 170px; perspective-origin: 63% 73%; transform-style: preserve-3d; transition: scale .5s var(--izzy-ease); filter: drop-shadow(0 0 1.5px rgba(255, 251, 248, .95)) drop-shadow(0 8px 12px rgba(74, 16, 57, .22)); }
.izzy-cursor__part { position: absolute; inset: 0; background: var(--wp--preset--color--plum); -webkit-mask: var(--m) no-repeat center / contain; mask: var(--m) no-repeat center / contain; transform-origin: 63% 73%; transform-style: preserve-3d; transition: background .35s; }
.izzy-cursor__part--body { --m: url("../img/butterfly-body.svg"); }
.izzy-cursor__part--l { --m: url("../img/butterfly-wing-l.svg"); animation: izzy-wing-l var(--flap, 1.05s) ease-in-out infinite; }
.izzy-cursor__part--r { --m: url("../img/butterfly-wing-r.svg"); animation: izzy-wing-r var(--flap, 1.05s) ease-in-out infinite; }
.izzy-cursor:not(.is-on) .izzy-cursor__part { animation-play-state: paused; }
/* Landing: slower, shallower beats. Perched on the pointer: wings folded upright (side view), now and then opened
   slowly as if basking, then folded again. Startled: a few frantic beats as it takes off. */
.izzy-cursor.is-landing { --flap: .8s; }
.izzy-cursor.is-perched .izzy-cursor__part--l { animation: izzy-rest-l 7s ease-in-out infinite; }
.izzy-cursor.is-perched .izzy-cursor__part--r { animation: izzy-rest-r 7s ease-in-out infinite; }
.izzy-cursor.is-startled { --flap: .22s; }
@keyframes izzy-rest-l { 0% { transform: rotate3d(.6, .8, 0, -40deg); } 8%, 52% { transform: rotate3d(.6, .8, 0, -74deg); } 64%, 72% { transform: rotate3d(.6, .8, 0, -22deg); } 84%, 100% { transform: rotate3d(.6, .8, 0, -74deg); } }
@keyframes izzy-rest-r { 0% { transform: rotate3d(.6, .8, 0, 40deg); } 8%, 52% { transform: rotate3d(.6, .8, 0, 74deg); } 64%, 72% { transform: rotate3d(.6, .8, 0, 22deg); } 84%, 100% { transform: rotate3d(.6, .8, 0, 74deg); } }
.izzy-cursor.is-fast { --flap: .55s; }
.izzy-cursor.is-hover { --flap: 3s; }
.izzy-cursor.is-hover .izzy-cursor__bob { scale: 1.3; }
.izzy-cursor.is-hover .izzy-cursor__part { background: var(--wp--preset--color--gold); }
.izzy-cursor.is-down { --flap: .3s; }
.izzy-cursor.is-down .izzy-cursor__bob { scale: .85; }
/* the wing hinge is the body line (≈53° in the artwork): rotate3d around that in-plane axis, mirrored per wing */
@keyframes izzy-wing-l { 0%, 100% { transform: rotate3d(.6, .8, 0, -62deg); } 50% { transform: rotate3d(.6, .8, 0, 38deg); } }
@keyframes izzy-wing-r { 0%, 100% { transform: rotate3d(.6, .8, 0, 62deg); } 50% { transform: rotate3d(.6, .8, 0, -38deg); } }
@media (pointer: fine) { .izzy-btn, .wp-block-button__link { transform: translate(var(--mx, 0), var(--my, 0)); transition: transform .3s var(--izzy-ease), box-shadow .3s, background .3s, color .3s !important; } .izzy-btn:hover, .wp-block-button__link:hover { transform: translate(var(--mx, 0), calc(var(--my, 0) - 2px)); } }

/* ---------- marquee as an editorial band ---------- */
.izzy-marquee { padding-block: 22px; font-size: clamp(1.1rem, 1.6vw, 1.45rem); background: var(--wp--preset--color--ivory); border-color: var(--wp--preset--color--line); }
.izzy-marquee__track { gap: 64px; animation-duration: 70s; }
.izzy-marquee__track span::after { content: ""; display: inline-block; width: .9em; height: 1em; margin-left: 64px; vertical-align: -.15em; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/mark.svg") no-repeat center / contain; mask: url("../img/mark.svg") no-repeat center / contain; }
.izzy-marquee.is-paused .izzy-marquee__track { animation-play-state: paused; }

/* ---------- cards : more editorial ---------- */
.izzy-cat { border-radius: 18px; }
.izzy-cat .izzy-cat__h { font-size: clamp(1.4rem, 1.9vw, 1.9rem); letter-spacing: -.01em; }
.izzy-cat.is-big .izzy-cat__h { font-size: clamp(1.7rem, 2.4vw, 2.4rem); }
.izzy-cat .izzy-cat__t { padding: 26px 28px; transition: transform .6s var(--izzy-ease); }
@media (hover: hover) { .izzy-cat:hover .izzy-cat__t { transform: translateY(-4px); } }
.izzy-cat::before { content: "→"; position: absolute; right: 18px; bottom: 20px; z-index: 1; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .5); display: grid; place-items: center; color: #fff; font-size: var(--wp--custom--text--body-plus); opacity: 0; transform: translate(-10px, 0) rotate(-45deg); transition: opacity .45s var(--izzy-ease), transform .6s var(--izzy-ease); }
/* The arrow fades in on hover; touch screens (no hover) show it all the time. Revealing it on :hover made iOS spend the first tap on the hover. */
@media (hover: hover) { .izzy-cat:hover::before { opacity: 1; transform: none; } }
@media (hover: none) { .izzy-cat::before { opacity: 1; transform: none; } }
.izzy-card { border-radius: 18px; }
.izzy-card .izzy-card__title { font-size: var(--wp--custom--text--title-s); letter-spacing: -.01em; }
.izzy-card .izzy-card__price { font-size: var(--wp--custom--text--title-m); }
.izzy-loccard { border-radius: var(--izzy-r); }
.izzy-loccard :is(h2, h3, h4) { font-size: clamp(1.8rem, 2.4vw, 2.3rem); letter-spacing: -.015em; }
.izzy-rev blockquote { font-size: var(--wp--custom--text--lead); line-height: 1.45; font-style: italic; }
.izzy-rev::before { font-size: 6rem; }
.izzy-member .izzy-member__name { font-size: clamp(1.4rem, 1.8vw, 1.7rem); }

/* ---------- philosophy : sticky image, numbered pillars ---------- */
.izzy-philo { align-items: flex-start !important; }
.izzy-philo__ph { position: sticky; top: calc(var(--izzy-header-h) + 32px); }
.izzy-pillars { counter-reset: pillar; }
.izzy-pillar { counter-increment: pillar; padding: 18px 0; border-top: 1px solid var(--wp--preset--color--line); }
.izzy-pillar:last-child { border-bottom: 1px solid var(--wp--preset--color--line); }
.izzy-pillar__i { background: transparent; border: 1px solid var(--wp--preset--color--line); border-radius: 50%; width: 48px; height: 48px; }
.izzy-pillar h3 { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: var(--wp--custom--text--title-s); letter-spacing: -.01em; }
.izzy-pillar h3::before { content: none; /* the section already carries the page's 01 — numbering */ font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--xs); letter-spacing: .16em; color: var(--wp--preset--color--gold); vertical-align: .35em; margin-right: 6px; }

/* ---------- footer : brand line ---------- */
.izzy-footer__big { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.6rem, 7.5vw, 6.4rem); line-height: .95; letter-spacing: -.025em; color: #fff; margin: 0 0 clamp(40px, 6vw, 72px); max-width: 14ch; text-wrap: balance; }
.izzy-footer__big em { color: var(--wp--preset--color--on-dark); }
.izzy-footer__top { padding-top: clamp(64px, 8vw, 104px); }
/* footer logo: the header lockup in white (mark + IZZY Spa & Studio) */
.izzy-footer__brand .izzy-footer__logo { display: flex; align-items: center; gap: 14px; margin: 0; max-width: none; opacity: 1; color: #fff; font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-s); letter-spacing: .08em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.izzy-footer__brand .izzy-footer__logo img { height: 56px; width: auto; flex-shrink: 0; }
.izzy-footer__brand .izzy-footer__logo em { font-style: italic; text-transform: none; letter-spacing: .04em; }
/* Verbier tourist office listing: the destination logo stays in its own red, as a small badge under the contact icons. */
.izzy-footer__partner { display: inline-flex; align-items: center; gap: 12px; margin-top: var(--wp--preset--spacing--30); min-height: 44px; font-size: var(--wp--custom--text--caption); letter-spacing: .12em; text-transform: uppercase; opacity: .85; transition: opacity .2s; }
.izzy-footer__partner:hover, .izzy-footer__partner:focus-visible { opacity: 1; color: inherit; }
.izzy-footer__brand .izzy-footer__partner img { height: 32px; width: auto; display: block; }

/* blog cards: clean titles (no drawn underline), colour shift on hover */
.izzy-posts .wp-block-post-title a, .wp-block-post-title a { background: none !important; text-decoration: none; color: var(--wp--preset--color--ink); transition: color .3s; }
.izzy-posts .wp-block-post:hover .wp-block-post-title a, .wp-block-post-title a:hover { color: var(--wp--preset--color--plum); }
.izzy-posts .wp-block-post-title { font-size: var(--wp--custom--text--title-s); letter-spacing: -.01em; line-height: 1.2; }
.izzy-posts .wp-block-post-terms a { background: none !important; }

/* ---------- polish round 3 (client feedback) ---------- */
/* 1. category tiles: text stays white on hover; the veil deepens instead of recolouring the title */
.izzy-cat:hover .izzy-cat__h, .izzy-cat:hover .izzy-cat__t small, .izzy-cat:hover .izzy-cat__n { color: #fff !important; }
.izzy-cat::after { background: linear-gradient(to top, rgba(var(--izzy-scrim), .94), rgba(var(--izzy-scrim), .38) 55%, rgba(var(--izzy-scrim), .1)); opacity: .82; transition: opacity .7s var(--izzy-ease); }
@media (hover: hover) { .izzy-cat:hover::after { opacity: 1; } }
.izzy-cat .izzy-cat__t { text-shadow: 0 1px 2px rgba(var(--izzy-scrim), .35); }
/* 2. location cards: a brand veil on the photo, plum for the Spa, a light terracotta for the Studio */
.izzy-loccard .izzy-loccard__ph { position: relative; }
.izzy-loccard .izzy-loccard__ph::after { content: ""; position: absolute; inset: 0; pointer-events: none; mix-blend-mode: multiply; transition: opacity .6s var(--izzy-ease); }
.izzy-loccard.izzy-loc--spa .izzy-loccard__ph::after { background: linear-gradient(180deg, rgba(113, 27, 87, .55), rgba(74, 16, 57, .7)); opacity: .9; }
.izzy-loccard.izzy-loc--studio .izzy-loccard__ph::after { background: linear-gradient(180deg, rgba(173, 90, 58, .22), rgba(173, 90, 58, .4)); opacity: .9; }
@media (hover: hover) { .izzy-loccard:hover .izzy-loccard__ph::after { opacity: .7; } }
/* 3. treatment cards: lift and shadow ease in together */
.izzy-card { transition: transform .55s var(--izzy-ease), box-shadow .55s var(--izzy-ease), border-color .4s; box-shadow: 0 0 0 rgba(74, 16, 57, 0); }
@media (hover: hover) { .izzy-card:hover { box-shadow: 0 26px 48px -26px rgba(74, 16, 57, .45); border-color: transparent; } }
/* 4. outline buttons on photos/dark bands: frosted, matte glass */
.izzy-btn--outline-light, .wp-block-cover .wp-block-button.is-style-outline-light .wp-block-button__link, .wp-block-cover .izzy-btn--ghost, .is-style-izzy-band .izzy-btn--ghost, .is-style-izzy-band .wp-block-button.is-style-izzy-ghost .wp-block-button__link, .izzy-offer .wp-block-button.is-style-izzy-ghost .wp-block-button__link {
	background: rgba(255, 255, 255, .14); -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2); border-color: rgba(255, 255, 255, .55); color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25);
}
.izzy-btn--outline-light:hover, .wp-block-cover .wp-block-button.is-style-outline-light .wp-block-button__link:hover, .wp-block-cover .izzy-btn--ghost:hover, .is-style-izzy-band .izzy-btn--ghost:hover, .is-style-izzy-band .wp-block-button.is-style-izzy-ghost .wp-block-button__link:hover, .izzy-offer .wp-block-button.is-style-izzy-ghost .wp-block-button__link:hover { background: rgba(255, 255, 255, .28) !important; border-color: rgba(255, 255, 255, .85) !important; color: #fff; }
/* the map's "load interactive map" and other light buttons on photos get the same frosted treatment */
.izzy-map .izzy-btn--light, .izzy-cat__n { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

/* ---------- footer: location blocks & credit ---------- */
.izzy-footer .izzy-addr--footer { display: grid; gap: 14px; align-content: start; }
.izzy-footer .izzy-addr--footer h2, .izzy-footer .izzy-addr--footer h3 { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-m); letter-spacing: -.01em; text-transform: none; margin: 0; color: #fff; display: flex; align-items: center; gap: 10px; }
.izzy-footer .izzy-addr--footer h2::before, .izzy-footer .izzy-addr--footer h3::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--plum-soft); box-shadow: 0 0 0 4px rgba(255, 255, 255, .08); }
.izzy-footer .izzy-addr--footer.izzy-loc--studio :is(h2, h3)::before { background: var(--wp--preset--color--studio); }
.izzy-footer .izzy-addr--footer p { margin: 0; }
.izzy-footer .izzy-addr__lines { color: var(--wp--preset--color--on-dark); opacity: .92; line-height: 1.55; font-size: var(--wp--preset--font-size--s); }
.izzy-footer .izzy-addr__hours { margin: 0; display: grid; gap: 4px; font-size: var(--wp--custom--text--small); border-top: 1px solid rgba(255, 255, 255, .12); border-bottom: 1px solid rgba(255, 255, 255, .12); padding: 10px 0; }
.izzy-footer .izzy-addr__hours > div { justify-content: space-between; }
.izzy-footer .izzy-addr__hours dt { color: var(--wp--preset--color--on-dark); opacity: .8; } .izzy-footer .izzy-addr__hours dd { margin: 0; color: #fff; font-variant-numeric: tabular-nums; text-align: right; }
.izzy-footer .izzy-addr__contact { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: var(--wp--preset--font-size--s); }
.izzy-footer .izzy-addr__contact a { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; }
.izzy-footer .izzy-addr--footer .izzy-addr__links { gap: 18px; font-size: var(--wp--custom--text--small); margin-top: -12px; } /* the 44px tap boxes add ~12px of air above the words */
.izzy-footer .izzy-addr--footer .izzy-addr__links a { color: var(--wp--preset--color--gold); }
.izzy-footer__bottom-left { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
.izzy-footer__credit a { color: #fff; font-weight: 600; }

.izzy-footer .izzy-addr__hours > div { display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; align-items: start; }
.izzy-footer .izzy-addr__hours dt { white-space: nowrap; }
@media (max-width: 480px) { .izzy-footer .izzy-addr__hours dt, .izzy-footer .izzy-addr__hours dd { white-space: normal !important; } }
.izzy-footer .izzy-addr__hours dd { line-height: 1.45; }
.izzy-footer .izzy-legal-nav .wp-block-navigation__container { display: flex; flex-direction: row; flex-wrap: wrap; gap: 6px 18px; justify-content: flex-end; }
.izzy-footer__bottom { align-items: center; gap: 12px 24px; font-size: var(--wp--custom--text--caption); }
.izzy-footer__bottom p { margin: 0; }

/* ======================================================================
   v2 — inner pages: treatment & location
   ====================================================================== */
/* numbered sections also outside post content (templates) */
main { counter-reset: izzy-sec; }
main > .izzy-sec, main > .wp-block-group > .izzy-sec { counter-increment: izzy-sec; }
.izzy-sec .izzy-sec-head .is-style-izzy-eyebrow::before { content: counter(izzy-sec, decimal-leading-zero) "  —  "; font-variant-numeric: tabular-nums; color: var(--wp--preset--color--gold); letter-spacing: .1em; }
.izzy-sec-head--plain::before { display: none; } .izzy-sec-head--plain { padding-top: 0; }
.izzy-sec-head--plain .is-style-izzy-eyebrow::before { content: none !important; }

/* ---------- treatment hero: photo bleeding to the left, big title, frosted price ---------- */
.izzy-thero { padding-top: 0; }
.izzy-thero .izzy-thero__grid { grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 5vw, 80px); align-items: stretch; padding-block: 0 clamp(40px, 6vw, 72px); min-height: min(78vh, 720px); }
/* bleed the photo to the viewport's left edge: the column's offset is (100vw − content width) / 2 */
.izzy-thero__ph { margin: 0; position: relative; margin-left: calc(-1 * (100vw - min(1240px, 100vw - 2 * clamp(16px, 4vw, 48px))) / 2); overflow: hidden; border-radius: 0 var(--izzy-r) var(--izzy-r) 0; }
.izzy-thero__ph img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; object-fit: cover; object-position: 50% 40%; transform: translateY(var(--py, 0)) scale(1.02); }
.izzy-thero__media.izzy-media { clip-path: none; }
.izzy-thero__badge { position: absolute; top: 22px; right: 22px; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); background: rgba(247, 239, 221, .9); }
.izzy-thero__body { display: grid; align-content: center; gap: 18px; padding-block: clamp(32px, 5vw, 64px) 0; }
.izzy-thero__body > * { margin: 0; }
.izzy-thero__eyebrow { display: flex; flex-wrap: wrap; gap: 6px; color: var(--wp--preset--color--plum-soft); }
.izzy-thero__eyebrow a { color: inherit; text-decoration: none; background: none !important; padding: 0; margin: 0; }
.izzy-thero__eyebrow a:hover { color: var(--wp--preset--color--plum); }
.izzy-thero__title { font-size: clamp(2.4rem, 4.6vw, 4.4rem); line-height: 1; letter-spacing: -.025em; max-width: 12ch; text-wrap: balance; }
.izzy-thero .izzy-lead { font-size: var(--wp--custom--text--lead); line-height: 1.55; color: var(--wp--preset--color--muted); max-width: 46ch; }
.izzy-thero__cta { margin-top: 6px; }
@media (max-width: 900px) {
	.izzy-thero .izzy-thero__grid { min-height: 0; grid-template-columns: 1fr; gap: 20px; }
	.izzy-thero__ph { margin-inline: calc(50% - 50vw); height: 56vw; min-height: 220px; border-radius: 0; }
	.izzy-thero__body > .wp-block-izzy-treatment-meta { order: 10; } /* the facts row follows the address list on phones */
	.izzy-thero__body { padding-block: 8px 0; }
}

/* ---------- treatment body: numbered chapters, lead paragraph, butterfly bullets, sticky aside ---------- */
.izzy-treatment-body { counter-reset: chap; }
.izzy-treatment-body .wp-block-column:first-child > p:first-child { font-size: var(--wp--custom--text--lead); line-height: 1.6; color: var(--wp--preset--color--ink); }
.izzy-treatment-body .wp-block-column:first-child > p:first-child::first-letter { font-family: var(--wp--preset--font-family--display); font-size: 3.6em; line-height: .8; float: left; margin: .08em .12em 0 0; color: var(--wp--preset--color--plum); }
.izzy-treatment-body .wp-block-column:first-child > h2, .izzy-treatment-body .wp-block-column:first-child > .izzy-prices > h2 { counter-increment: chap; position: relative; padding-top: 22px; margin-top: 56px; font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.izzy-treatment-body .wp-block-column:first-child > h2::before, .izzy-treatment-body .wp-block-column:first-child > .izzy-prices > h2::before { content: counter(chap, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); letter-spacing: .12em; color: var(--wp--preset--color--gold-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.izzy-treatment-body .wp-block-column:first-child > h2::after, .izzy-treatment-body .wp-block-column:first-child > .izzy-prices > h2::after { content: ""; position: absolute; left: 0; top: 10px; width: 100%; height: 1px; background: linear-gradient(90deg, var(--wp--preset--color--plum) 0 40px, var(--wp--preset--color--line) 40px); }
ul.is-style-izzy-benefits li::before { content: ""; width: .95em; height: .9em; margin-top: .18em; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; }
ol.is-style-izzy-steps li::before { color: var(--wp--preset--color--gold-text); } /* numerals are text: readable gold */
@media (min-width: 901px) and (min-height: 760px) { .izzy-aside { position: sticky; top: calc(var(--izzy-header-h) + 24px); } }
.izzy-related { padding-block: var(--wp--preset--spacing--60); }
.izzy-related .izzy-sec-head .izzy-eyebrow { font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--plum-soft); display: block; margin-bottom: 14px; }

/* ---------- location hero (reuses the home split hero) ---------- */
.izzy-hero2--loc .izzy-hero2__copy { gap: 20px; }
.izzy-hero2--loc .izzy-crumbs { margin-bottom: 6px; }
.izzy-loc-eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--wp--preset--color--plum-soft); }
.izzy-loc-eyebrow__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--wp--preset--color--plum); box-shadow: 0 0 0 4px var(--wp--preset--color--plum-tint); }
.izzy-loc--studio .izzy-loc-eyebrow__dot, .izzy-loc-eyebrow.izzy-loc--studio .izzy-loc-eyebrow__dot { background: var(--wp--preset--color--studio); box-shadow: 0 0 0 4px var(--wp--preset--color--studio-tint); }
.izzy-hero2--loc .izzy-hero2__title { font-size: clamp(3rem, 7vw, 6.4rem); }
.izzy-hero2__trust--loc { align-items: center; gap: 10px 28px; }
.izzy-hero2__trust--loc .izzy-status { gap: 10px; }
.izzy-loc-rating { margin: 0; display: inline-flex; align-items: center; gap: 8px; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--s); }
.izzy-loc-rating b { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--title-s); font-weight: 500; color: var(--wp--preset--color--ink); }
.izzy-today--loc { max-width: 360px; }
.izzy-today--loc .izzy-hours { font-size: var(--wp--custom--text--small); color: #fff; }
.izzy-today--loc .izzy-hours h3, .izzy-today--loc .izzy-hours h4 { display: none; }
.izzy-today--loc .izzy-hours__r { border-color: rgba(255, 255, 255, .18); }
.izzy-today--loc .izzy-hours__r dd { color: rgba(255, 255, 255, .85); }
.izzy-today--loc .izzy-hours__note { color: rgba(255, 255, 255, .7); }
/* intro + facts */
.izzy-loc-intro__text .wp-block-post-content > p:first-child { font-size: var(--wp--custom--text--lead); line-height: 1.6; }
.izzy-loc-intro__text .wp-block-post-content > p:first-child::first-letter { font-family: var(--wp--preset--font-family--display); font-size: 3.6em; line-height: .8; float: left; margin: .08em .12em 0 0; color: var(--wp--preset--color--plum); }
.izzy-loc-facts { display: grid; gap: 22px; position: sticky; top: calc(var(--izzy-header-h) + 24px); }
.izzy-loc-facts .izzy-addr { background: transparent; border: 0; padding: 0; }
.izzy-loc-facts .izzy-contact--list { border-top: 1px solid var(--wp--preset--color--line); padding-top: 18px; }
.izzy-amenities h3, .izzy-amenities__t { margin: 0 0 10px; font-weight: 600; } .izzy-amenities h3, .izzy-amenities__t { font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--xs); letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--plum-soft); margin: 0 0 10px; }
/* gallery strip */
.izzy-gallery { display: grid; grid-template-columns: 1.6fr 1fr 1fr; grid-auto-rows: clamp(200px, 26vw, 360px); gap: 18px; }
.izzy-gallery--n2 { grid-template-columns: 1fr 1fr; } .izzy-gallery--n3 { grid-template-columns: 1.6fr 1fr; } .izzy-gallery--n3 .izzy-gallery__item:first-child { grid-row: span 2; } .izzy-gallery--n4 .izzy-gallery__item:first-child { grid-row: span 2; } .izzy-gallery--n4 .izzy-gallery__item:nth-child(4) { grid-column: 2 / 4; } .izzy-gallery--n5 .izzy-gallery__item:first-child { grid-row: span 2; } .izzy-gallery--n6 { grid-template-columns: 1.6fr 1fr 1fr; } /* n5 = big + 2×2; n6 = two rows of three, the wide first column takes landscape shots */
.izzy-gallery__item { margin: 0; overflow: hidden; border-radius: 18px; position: relative; }
.izzy-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1.2s var(--izzy-ease); }
.izzy-gallery__item:hover img { transform: scale(1.05); }
.izzy-gallery__item::after { content: ""; position: absolute; inset: 0; mix-blend-mode: multiply; background: linear-gradient(180deg, rgba(113, 27, 87, 0), rgba(74, 16, 57, .35)); opacity: .6; pointer-events: none; }
.izzy-loc--studio .izzy-gallery__item::after { background: linear-gradient(180deg, rgba(173, 90, 58, 0), rgba(173, 90, 58, .3)); }
@media (max-width: 900px) { .izzy-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 42vw; } .izzy-gallery--n4 .izzy-gallery__item:first-child, .izzy-gallery--n3 .izzy-gallery__item:first-child { grid-row: auto; grid-column: span 2; } .izzy-gallery--n3 { grid-template-columns: 1fr 1fr; } .izzy-gallery--n4 .izzy-gallery__item:nth-child(4) { grid-column: span 2; } .izzy-gallery--n5 .izzy-gallery__item:first-child { grid-row: auto; grid-column: span 2; } .izzy-gallery--n6 { grid-template-columns: 1fr 1fr; } .izzy-gallery--n6 .izzy-gallery__item:nth-child(3n+1) { grid-column: span 2; } .izzy-loc-facts { position: static; } }
.izzy-location .izzy-mapwrap { margin-top: 0; }

/* section heads that hold the eyebrow and title directly (no inner group): stack them */
.izzy-sec-head > .is-style-izzy-eyebrow { flex-basis: 100%; margin-bottom: 14px; }
.izzy-sec-head--plain { display: block; }

/* ======================================================================
   v2 — categories, archive, offers, about, journal
   ====================================================================== */
/* text-only hero (archives, journal) */
.izzy-hero2--text { padding-block: clamp(40px, 7vh, 96px) clamp(32px, 6vh, 72px); }
.izzy-hero2--text .izzy-hero2__copy--text { display: grid; gap: 22px; max-width: 880px; }
.izzy-hero2--text .izzy-hero2__copy--text > * { margin: 0; }
.izzy-hero2--text .izzy-hero2__title { font-size: clamp(2.8rem, 6.4vw, 6rem); max-width: 12ch; }
.izzy-hero2--text .izzy-crumbs { margin-bottom: 10px; }
.izzy-hero2--text::before { top: -10%; }
/* category hero: badge on the photo */
.izzy-cat-badge { position: absolute; left: clamp(20px, 3vw, 40px); bottom: clamp(24px, 4vh, 44px); z-index: 2; display: flex; align-items: baseline; gap: 10px; background: rgba(43, 26, 38, .55); color: #fff; }
.izzy-cat-badge b { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--display-s); font-weight: 500; line-height: 1; }
.izzy-cat-badge span { font-size: var(--wp--custom--text--caption); letter-spacing: .06em; opacity: .9; }
.izzy-hero2--cat .izzy-crumbs { margin-bottom: 8px; }
.izzy-hero2--cat .wp-block-query-title { margin: 0; }
.izzy-hero2--cat .izzy-hero2__title { font-size: clamp(3rem, 7vw, 6.4rem); }
.izzy-hero2--cat .wp-block-term-description p { margin: 0; }
/* filters: pill tabs in the editorial voice */
.izzy-tabs { margin-bottom: 32px; }
.izzy-tabs button { font-size: var(--wp--custom--text--caption); letter-spacing: .12em; text-transform: uppercase; padding: 10px 18px; }

/* ---------- offer / landing pages ---------- */
.izzy-hero2--offer .izzy-hero2__copy { gap: 18px; }
.izzy-hero2--offer .izzy-hero2__title { font-size: clamp(2.6rem, 5.4vw, 5rem); max-width: 14ch; }
.izzy-hero2--offer .izzy-crumbs { margin-bottom: 8px; }
.izzy-hero2--offer .izzy-chip { align-self: flex-start; }
.izzy-offer-price { position: absolute; left: clamp(20px, 3vw, 40px); bottom: clamp(24px, 4vh, 44px); z-index: 2; background: rgba(43, 26, 38, .55); color: #fff; display: grid; gap: 2px; min-width: 0 !important; }
.izzy-offer-price > p { margin: 0; color: #fff; }
.izzy-offer-price .is-style-izzy-price-label { font-size: var(--wp--preset--font-size--xs); letter-spacing: .16em; }
.izzy-offer-price .is-style-izzy-price { font-size: clamp(2rem, 3.4vw, 2.8rem); }
.izzy-offer-price .is-style-izzy-price-was { margin-top: 2px; font-size: var(--wp--custom--text--caption); }
.izzy-offer-body { counter-reset: chap; }
.izzy-offer-body .wp-block-column:first-child > p:first-of-type { font-size: var(--wp--custom--text--lead); line-height: 1.6; }
.izzy-offer-body .wp-block-column:first-child > p:first-of-type::first-letter { font-family: var(--wp--preset--font-family--display); font-size: 3.6em; line-height: .8; float: left; margin: .08em .12em 0 0; color: var(--wp--preset--color--plum); }
.izzy-offer-body .wp-block-column:first-child > h2 { counter-increment: chap; position: relative; padding-top: 22px; margin-top: 48px; font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.izzy-offer-body .wp-block-column:first-child > h2:first-child { margin-top: 0; }
.izzy-offer-body .wp-block-column:first-child > h2::before { content: counter(chap, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); letter-spacing: .12em; color: var(--wp--preset--color--gold-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.izzy-offer-body .wp-block-column:first-child > h2::after { content: ""; position: absolute; left: 0; top: 10px; width: 100%; height: 1px; background: linear-gradient(90deg, var(--wp--preset--color--plum) 0 40px, var(--wp--preset--color--line) 40px); }
.izzy-offer-body .izzy-offer__aside { position: sticky; top: calc(var(--izzy-header-h) + 24px); }
.izzy-offer__bigprice { font-size: var(--wp--custom--text--display-s); }

/* ---------- about: story spread ---------- */
.izzy-story { align-items: flex-start; }
.izzy-story__quote { position: sticky; top: calc(var(--izzy-header-h) + 32px); }
.izzy-story__quote .wp-block-quote { border: 0; padding: 0; margin: 0; }
.izzy-story__quote .wp-block-quote p { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(1.6rem, 2.6vw, 2.3rem); line-height: 1.25; letter-spacing: -.01em; color: var(--wp--preset--color--plum); }
.izzy-story__quote .wp-block-quote p::before { content: "“"; display: block; font-size: 5rem; line-height: .6; color: var(--wp--preset--color--plum-tint); margin-bottom: 10px; font-style: normal; }
.izzy-story__quote cite { display: block; margin-top: 16px; font-style: normal; font-size: var(--wp--custom--text--caption); letter-spacing: .18em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.izzy-story__text > p:first-child { font-size: var(--wp--custom--text--lead); line-height: 1.6; }
.izzy-story__text > p:first-child::first-letter { font-family: var(--wp--preset--font-family--display); font-size: 3.6em; line-height: .8; float: left; margin: .08em .12em 0 0; color: var(--wp--preset--color--plum); }
.izzy-story__sign { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: var(--wp--custom--text--title-m); color: var(--wp--preset--color--plum); margin-top: 28px; }
.izzy-story__facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--wp--preset--color--line); }
.izzy-story__facts p { margin: 0; display: grid; gap: 4px; }
.izzy-story__facts b { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--custom--text--display-s); font-weight: 500; line-height: 1; color: var(--wp--preset--color--plum); }
.izzy-story__facts span { font-size: var(--wp--custom--text--small); color: var(--wp--preset--color--muted); }
@media (max-width: 900px) { .izzy-story__quote { position: static; } }
/* Three short figures stay on one row even on phones (stacked they took ~260px); only the number shrinks. */
@media (max-width: 600px) { .izzy-story__facts { gap: 14px; margin-top: 36px; padding-top: 22px; } .izzy-story__facts b { font-size: var(--wp--custom--text--title-l); } .izzy-story__facts span { font-size: var(--wp--custom--text--caption); line-height: 1.35; } }

/* ---------- journal ---------- */
.izzy-posts--journal .wp-block-post-template { gap: 40px 28px; }
.izzy-post-card__meta { gap: 6px 14px; align-items: center; margin: 2px 0; }
.izzy-post-card__meta .wp-block-post-terms, .izzy-post-card__meta .wp-block-post-date { font-size: var(--wp--preset--font-size--xs); letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--plum-soft); margin: 0; }
.izzy-post-card__meta .wp-block-post-date { color: var(--wp--preset--color--muted); font-weight: 500; }
.izzy-post-card__meta .wp-block-post-date::before { content: "·"; margin-right: 14px; }
.izzy-posts--journal .wp-block-post-title { font-size: var(--wp--custom--text--title-m); }
.izzy-posts--journal .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--s); }
.izzy-posts--journal .wp-block-post-excerpt__more-text { display: none; }
/* first article on the first page spans the row as an editorial lead */
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1.15fr 1fr; gap: 20px clamp(24px, 4vw, 56px); align-items: center; }
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .izzy-post-card__ph { grid-row: 1 / span 4; }
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .izzy-post-card__ph img { aspect-ratio: 4 / 3; }
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .wp-block-post-title { font-size: clamp(1.8rem, 3vw, 2.6rem); max-width: 16ch; }
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .wp-block-post-excerpt { font-size: var(--wp--custom--text--body-plus); }
.izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child > * { align-self: start; }
@media (max-width: 760px) { .izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child { grid-template-columns: 1fr; } .izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .izzy-post-card__ph { grid-row: auto; } }
.wp-block-query-pagination { margin-top: 48px; font-size: var(--wp--preset--font-size--s); }
/* ---------- single post ---------- */
.izzy-post__hero { padding-top: clamp(24px, 4vh, 48px); }
.izzy-post__head { max-width: 860px; display: grid; gap: 18px; margin-bottom: clamp(32px, 5vw, 56px); }
.izzy-post__head > * { margin: 0; }
.izzy-post__meta { gap: 8px 18px; }
.izzy-post__meta .is-style-izzy-eyebrow { margin: 0; color: var(--wp--preset--color--plum-soft); }
.izzy-post__meta .wp-block-post-date { color: var(--wp--preset--color--muted); }
.izzy-post__meta .wp-block-post-terms a { color: inherit; text-decoration: none; background: none; }
.izzy-post__title { font-size: clamp(2.4rem, 5vw, 4.4rem); line-height: 1; letter-spacing: -.025em; max-width: 16ch; text-wrap: balance; }
.izzy-post__lead { max-width: 56ch; }
.izzy-post__media { margin: 0; border-radius: var(--izzy-r); overflow: hidden; }
.izzy-post__media img { aspect-ratio: 21 / 9; object-fit: cover; width: 100%; display: block; }
.izzy-post__body { counter-reset: chap; font-size: var(--wp--preset--font-size--m); line-height: 1.7; }
.izzy-post__body > p:first-child { font-size: var(--wp--custom--text--lead); line-height: 1.6; }
.izzy-post__body > p:first-child::first-letter { font-family: var(--wp--preset--font-family--display); font-size: 3.6em; line-height: .8; float: left; margin: .08em .12em 0 0; color: var(--wp--preset--color--plum); }
.izzy-post__body > h2 { counter-increment: chap; position: relative; padding-top: 22px; margin-top: 56px; font-size: clamp(1.7rem, 2.6vw, 2.3rem); }
.izzy-post__body > h2::before { content: counter(chap, decimal-leading-zero); position: absolute; left: 0; top: 0; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--custom--text--caption); letter-spacing: .12em; color: var(--wp--preset--color--gold-text); font-weight: 700; font-variant-numeric: tabular-nums; }
.izzy-post__body > h2::after { content: ""; position: absolute; left: 0; top: 10px; width: 100%; height: 1px; background: linear-gradient(90deg, var(--wp--preset--color--plum) 0 40px, var(--wp--preset--color--line) 40px); }
.izzy-post__body ul:not([class]) { padding-left: 0; list-style: none; display: grid; gap: 10px; }
.izzy-post__body ul:not([class]) li { position: relative; padding-left: 28px; }
.izzy-post__body ul:not([class]) li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 15px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; }
.izzy-post .is-style-izzy-band { margin-top: var(--wp--preset--spacing--60); }
.izzy-posts--related .wp-block-post-title { font-size: var(--wp--custom--text--title-s); }

/* ======================================================================
   header polish: arrows, current items, language/phone, mobile overlay
   ====================================================================== */
/* submenu arrows sit on the text baseline */
.izzy-header .wp-block-navigation-item__content { display: inline-flex !important; align-items: center; gap: 6px; }
.izzy-header .wp-block-navigation__submenu-icon { display: inline-flex !important; align-items: center; margin: 0; height: auto; width: auto; padding: 0; background: none; border: 0; color: inherit; cursor: pointer; }
.izzy-header .wp-block-navigation__submenu-icon svg { display: block; width: 12px; height: 12px; stroke: currentColor; }
/* current page: plum label + small gold butterfly; current ancestor (e.g. "Treatments" on a treatment page) the same */
.izzy-header .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content,
.izzy-header .wp-block-navigation__container > .is-current-ancestor > .wp-block-navigation-item__content,
.izzy-header .wp-block-navigation__container > .is-current > .wp-block-navigation-item__content { color: var(--wp--preset--color--plum); }
.izzy-header .wp-block-navigation__container > .is-current > .wp-block-navigation-item__content::before, .izzy-header .wp-block-navigation__container > .is-current-ancestor > .wp-block-navigation-item__content::before { content: ""; position: absolute; left: 50%; bottom: -9px; width: 13px; height: 12px; margin-left: -6px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content,
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .is-current > .wp-block-navigation-item__content { background: var(--wp--preset--color--plum-tint); color: var(--wp--preset--color--plum-deep); }
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content::before,
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .is-current > .wp-block-navigation-item__content::before { opacity: 1; transform: none; }
/* language switcher + phone: marker highlight on hover, filled for the active language */
.izzy-lang a, .izzy-header__tel { padding: 3px 6px; margin: 0 -2px; border-radius: 6px; background-image: linear-gradient(var(--wp--preset--color--plum-tint), var(--wp--preset--color--plum-tint)); background-repeat: no-repeat; background-position: 0 100%; background-size: 100% 0; transition: background-size .4s var(--izzy-ease), color .3s !important; }
.izzy-lang a:hover, .izzy-header__tel:hover { background-size: 100% 100% !important; color: var(--wp--preset--color--plum-deep); }
.izzy-lang .is-current { padding: 3px 6px; margin: 0 -2px; border-radius: 6px; color: var(--wp--preset--color--plum); background: var(--wp--preset--color--plum-tint); font-weight: 700; cursor: default; }
.izzy-lang .izzy-lang__sep { opacity: .5; margin: 0 2px; }
/* ---------- mobile / tablet overlay (burger) ---------- */
.izzy-header:has(.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; } /* a backdrop-filter would trap the fixed overlay inside the header */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open { position: fixed; inset: 0; z-index: 1000; background: var(--wp--preset--color--ivory) !important; padding: 0 !important; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; align-items: stretch; } /* overflow-x: the decorative mark below bleeds past the right edge on purpose */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open::before { content: ""; position: absolute; right: -14vw; top: 30%; width: 70vw; aspect-ratio: 312 / 344; background: url("../img/mark.svg") no-repeat center / contain; opacity: .06; pointer-events: none; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close { width: 100%; max-width: none; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open { --izzy-ov-top: calc((var(--izzy-header-h) - 44px) / 2); } /* = vertical position of the burger in the header */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { padding: 0 var(--izzy-gutter) 48px; min-height: 100%; display: flex; flex-direction: column; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child { padding-top: 0 !important; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:first-child > .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }
/* core adds its own top padding and vertical centring to the overlay content: neutralise both so the menu starts right under the close button */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; justify-content: flex-start !important; margin: 0 !important; }
/* Close button: sticky (not fixed) in the same scroller as the sticky top bar, pulled up onto the bar's line with negative
   margins. iOS Safari painted a position:fixed button inside the scrolling overlay under the sticky bar: invisible, yet
   still tappable (it flashed on :active and the menu closed). */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { position: sticky; top: var(--izzy-ov-top); right: auto; left: auto; align-self: flex-end; flex: none; margin: calc(var(--izzy-ov-top) - var(--izzy-header-h) - 12px - 16px) 0 calc(var(--izzy-header-h) / 2 - 10px) auto; /* 12px = bar margin, 16px = dialog gap */ width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); background: #fff; color: var(--wp--preset--color--plum); display: grid; place-items: center; padding: 0; z-index: 6; -webkit-transform: translateZ(0); }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: grid !important; gap: 6px; width: 100%; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { display: block; width: 100%; border-bottom: 1px solid var(--wp--preset--color--line); padding: 14px 0; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.7rem, 6vw, 2.4rem); letter-spacing: -.01em; text-transform: none; font-weight: 500; color: var(--wp--preset--color--ink); padding: 0; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label::after { display: none !important; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label > span { transform: none !important; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none !important; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { display: grid !important; gap: 2px; padding: 10px 0 4px 2px !important; margin: 0; border: 0 !important; background: none !important; box-shadow: none; position: static; opacity: 1; visibility: visible; transform: none; width: 100%; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: var(--wp--preset--font-size--m); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--wp--preset--color--muted); padding: 6px 0 6px 22px !important; position: relative; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before { content: ""; position: absolute; left: 0; top: 50%; width: 12px; height: 11px; margin-top: -5px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; opacity: .55; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content, .izzy-header .wp-block-navigation__responsive-container.is-menu-open .is-current > .wp-block-navigation-item__content { color: var(--wp--preset--color--plum) !important; }
/* Overlay top bar: the logo (home link) sits where it sits in the header, on one line with the close button; the list starts below it. */
.izzy-overlay-bar { display: none; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .izzy-overlay-bar { display: flex; align-items: center; position: sticky; top: 0; z-index: 5; height: var(--izzy-header-h); margin: 0 calc(-1 * var(--izzy-gutter)) 12px; padding-inline: var(--izzy-gutter); background: var(--wp--preset--color--ivory); }
.izzy-overlay-extras { display: none; gap: 18px; margin-top: 28px; padding-top: 24px; justify-items: center; text-align: center; margin-inline: auto; width: 100%; max-width: 420px; }
.izzy-overlay-extras .izzy-lang { font-size: var(--wp--preset--font-size--s); }
.izzy-overlay-extras .izzy-header__tel { display: inline-block; font-size: var(--wp--custom--text--body-plus); }
.izzy-overlay-extras .izzy-book { display: flex; justify-content: center; width: 100%; }
.izzy-overlay-extras .izzy-btn { width: 100%; justify-content: center; }
@media (max-width: 1199px) { .izzy-header nav.wp-block-navigation { order: 3; margin-left: 12px; margin-right: 0; } .izzy-header__cta { margin-left: auto; } }
@media (max-width: 600px) { .izzy-header__inner { gap: 12px; } .izzy-lang { font-size: var(--wp--preset--font-size--xs); } }

/* ---------- about: founders ---------- */
.izzy-founders { background: var(--wp--preset--color--peach); }
.izzy-founders__ph { position: relative; }
.izzy-founders__ph img { aspect-ratio: 1; object-fit: cover; width: 100%; border-radius: var(--izzy-r); }
.izzy-founders__ph::after { content: ""; position: absolute; right: -18px; bottom: -18px; width: 120px; aspect-ratio: 312 / 283; background: var(--wp--preset--color--plum); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; opacity: .18; pointer-events: none; animation: izzy-float 9s ease-in-out infinite; }
.izzy-founders .izzy-sec-head { margin-bottom: 22px; }

/* overlay: no focus ring on the auto-focused first item; stacked hero between 782 and 900px */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus { outline: none; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { outline-offset: 4px; }
@media (max-width: 900px) { .izzy-hero2 .izzy-hero2__grid { flex-wrap: wrap !important; } .izzy-hero2__copy.wp-block-column { flex-basis: 100% !important; } }
/* overlay: left-aligned submenu lists; keyboard focus gets a visible plum ring */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container, .izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; justify-items: start !important; text-align: left; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item { width: 100%; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible { outline: 2px solid var(--wp--preset--color--plum); outline-offset: 4px; border-radius: 4px; color: var(--wp--preset--color--plum); }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; justify-content: flex-start !important; }
body:has(.wp-block-navigation__responsive-container.is-menu-open) .izzy-sticky, body:has(.wp-block-navigation__responsive-container.is-menu-open) #kncc-banner { display: none !important; }
/* phones: stack the two footer location cards, and pin the header to the top once WP's mobile admin bar stops being fixed */
@media (max-width: 600px) {
	.izzy-footer .izzy-locgrid--footer { grid-template-columns: 1fr; gap: 32px; }
	.izzy-footer .izzy-addr--footer { padding-bottom: 28px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.izzy-footer .izzy-locgrid--footer > :last-child .izzy-addr--footer { padding-bottom: 0; border-bottom: 0; }
	.admin-bar .wp-site-blocks > header.wp-block-template-part:has(> .izzy-header) { top: 0; }
}
/* the reveal scale on images must never widen the page */
.izzy-media, .izzy-thero__media, .izzy-founders__ph figure { overflow: hidden; }
@media (max-width: 600px) {
	.izzy-btn { white-space: normal; max-width: 100%; text-align: center; }
	.izzy-sec-head > .izzy-btn, .izzy-sec-head > .izzy-arrow-link { flex: 1 1 100%; }
}
.izzy-founders { overflow: clip; }
@media (max-width: 600px) { .izzy-founders__ph::after { right: 12px; bottom: 12px; width: 84px; } }
@media (prefers-reduced-motion: reduce) { .izzy-founders__ph::after { animation: none; } }
/* the cloned lang / phone / book block exists only for the open overlay */
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .izzy-overlay-extras { display: grid; }
/* footer on tablets (782–1199): the two location cards get a full-width row; brand + navigation share the first row */
@media (min-width: 782px) and (max-width: 1199px) {
	.izzy-footer__top .wp-block-columns { flex-wrap: wrap !important; row-gap: 48px; }
	.izzy-footer__top .wp-block-columns > .izzy-footer__brand { flex-basis: calc(62% - 40px) !important; }
	.izzy-footer__top .wp-block-columns > .wp-block-column:nth-child(3) { flex-basis: 38% !important; }
	.izzy-footer__top .wp-block-columns > .wp-block-column:nth-child(2) { flex-basis: 100% !important; order: 3; }
	.izzy-footer .izzy-locgrid--footer { grid-template-columns: 1fr 1fr; gap: 48px; }
}
.izzy-footer .izzy-addr__hours dd { white-space: nowrap; }
/* inner sections: tablet/phone fixes from the section sweep (2026-10-10) */
.izzy-split .izzy-w { padding-right: .08em; margin-right: -.08em; }   /* italic overhang must not be clipped by the word mask */
@media (max-width: 1000px) {
	/* location page: street view + reviews side by side left 80px-wide review cards */
	.izzy-location .wp-block-columns:has(.izzy-sv) { flex-wrap: wrap !important; }
	.izzy-location .wp-block-columns:has(.izzy-sv) > .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 600px) {
	/* long "All “…” treatments" pill in the related-treatments head becomes a plain link */
	.izzy-related .izzy-sec-head > .izzy-btn--ghost { min-height: 44px; display: inline-flex; align-items: center; border: 0; padding: 0; background: none; backdrop-filter: none; justify-content: flex-start; text-align: left; color: var(--wp--preset--color--plum); text-decoration: underline; text-underline-offset: 4px; text-wrap: pretty; }
}
/* location page: the full treatment menu (≈20 cards) becomes a compact two-column list on phones instead of one 9000px column */
@media (max-width: 560px) {
	/* long treatment menus (location pages, offer landings, the full treatments archive) become a compact two-column list */
	.izzy-location .izzy-tgrid .izzy-grid, .page-template-page-offer .izzy-tgrid .izzy-grid, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-grid { --cols: 2 !important; gap: 12px; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__ph, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__ph, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__ph { display: none; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__body, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__body, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__body { padding: 16px 14px; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__title, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__title, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__title { font-size: var(--wp--preset--font-size--m); line-height: 1.25; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__d, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__d, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__d { display: none; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__meta, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__meta, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__meta { margin-top: 10px; padding-top: 10px; flex-wrap: wrap; gap: 4px 10px; }
	.izzy-location .izzy-tgrid .izzy-card--treatment .izzy-card__price, .page-template-page-offer .izzy-tgrid .izzy-card--treatment .izzy-card__price, .post-type-archive-izzy_treatment .izzy-tgrid .izzy-card--treatment .izzy-card__price { font-size: var(--wp--custom--text--body-plus); }
}
/* offer pages: text + sticky price aside side by side only from 1000px; below that the aside sits after the text */
@media (max-width: 1000px) {
	.izzy-offer-body { flex-wrap: wrap !important; }
	.izzy-offer-body > .wp-block-column { flex-basis: 100% !important; }
	.izzy-offer-body .izzy-offer__aside { position: static; max-width: 560px; }
}
/* Header slack: the EN menu (Treatments / Izzy Studio / Journal …) needs 1336px at gap 26 + .12em tracking, exactly the header's max width.
   Tighter gap + tracking bring the full header (with phone) down to ~1280px so there is ≥50px of slack on every browser's font metrics. */
.izzy-header .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { letter-spacing: .08em; font-size: var(--wp--preset--font-size--xs); }
@media (min-width: 1280px) { .izzy-header .wp-block-navigation.wp-block-navigation, .izzy-header .wp-block-navigation .wp-block-navigation__container { gap: 18px; } .izzy-header__cta { gap: 12px; } .izzy-header__inner { gap: 18px; } .izzy-header__tel { font-size: var(--wp--custom--text--small); } }
/* adaptive guard (theme.js): if the menu still collides with the right-hand block on this browser's font metrics, drop the phone, then tighten gaps */
.izzy-header--tight .izzy-header__tel { display: none !important; }
.izzy-header--tighter .wp-block-navigation.wp-block-navigation, .izzy-header--tighter .wp-block-navigation .wp-block-navigation__container { gap: 12px !important; }
.izzy-header--tighter .izzy-header__inner { gap: 12px !important; }
/* buttons are border-box, so a full-width button never spills out of its card (Available-at card on treatment pages) */
.izzy-btn { box-sizing: border-box; }
.izzy-btn--full { width: 100%; }
/* ---------- home: "Spa & wellness in Verbier" editorial section + CTA cards ---------- */
.izzy-wellness__grid { align-items: flex-start !important; }
.izzy-wellness__side { position: sticky; top: calc(var(--izzy-header-h) + 24px); }
.izzy-wellness__side .is-style-izzy-lead { font-size: var(--wp--custom--text--body-plus); }
.izzy-why { margin-top: 28px; }
.izzy-why h3 { font-size: var(--wp--custom--text--lead); margin-bottom: 14px; }
.izzy-why__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.izzy-why__list li { position: relative; padding-left: 28px; font-size: var(--wp--preset--font-size--s); line-height: 1.5; }
.izzy-why__list li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 16px; background: var(--wp--preset--color--gold); -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; }
.izzy-wellness__text > h3 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); margin: 36px 0 12px; line-height: 1.15; }
.izzy-wellness__text > h3:first-child { margin-top: 0; }
.izzy-wellness__text > p { line-height: 1.7; color: var(--wp--preset--color--ink, #2B1A26); }
.izzy-cta-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: clamp(40px, 5vw, 64px); gap: 24px; }
@media (max-width: 700px) { .izzy-cta-cards { grid-template-columns: 1fr; } }
/* the offer band right after the wellness section: tighten the gap between the CTA cards and the band */
.izzy-wellness + section { padding-top: var(--wp--preset--spacing--30) !important; }
.izzy-cta-card { padding: clamp(24px, 3vw, 40px); border-radius: var(--izzy-r); background: var(--wp--preset--color--blush); position: relative; overflow: hidden; }
.izzy-cta-card:nth-child(2) { background: var(--wp--preset--color--peach); }
.izzy-cta-card::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 180px; aspect-ratio: 312 / 283; background: #fff; opacity: .35; -webkit-mask: url("../img/butterfly.svg") no-repeat center / contain; mask: url("../img/butterfly.svg") no-repeat center / contain; pointer-events: none; }
.izzy-cta-card > * { position: relative; z-index: 1; }
.izzy-cta-card h3 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.1; margin: 8px 0 12px; }
.izzy-cta-card p:not(.is-style-izzy-eyebrow) { margin-bottom: 20px; }
@media (max-width: 900px) { .izzy-wellness__side { position: static; } }

/* ---------- burger + close button hover animations ---------- */
.izzy-header .wp-block-navigation__responsive-container-open { width: 44px; height: 44px; border-radius: 50%; place-items: center; justify-content: center; align-items: center; color: var(--wp--preset--color--ink); background: transparent; transition: background .35s var(--izzy-ease), color .35s var(--izzy-ease), transform .35s var(--izzy-ease); }
.izzy-header .wp-block-navigation__responsive-container-open svg { transition: transform .45s var(--izzy-ease-out); }
.izzy-header .wp-block-navigation__responsive-container-open:hover, .izzy-header .wp-block-navigation__responsive-container-open:focus-visible { background: var(--wp--preset--color--plum-tint); color: var(--wp--preset--color--plum); transform: scale(1.06); }
.izzy-header .wp-block-navigation__responsive-container-open:hover svg { transform: scaleX(.82) translateX(1px); }
.izzy-header .wp-block-navigation__responsive-container-open:active { transform: scale(.94); }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { transition: background .35s var(--izzy-ease), color .35s var(--izzy-ease), border-color .35s var(--izzy-ease), transform .45s var(--izzy-ease-out), box-shadow .35s; }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:hover, .izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:focus-visible { background: var(--wp--preset--color--plum); border-color: var(--wp--preset--color--plum); color: #fff; transform: rotate(90deg) scale(1.06); box-shadow: 0 10px 24px -12px rgba(74, 16, 57, .5); }
.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close:active { transform: rotate(90deg) scale(.94); }
@media (prefers-reduced-motion: reduce) { .izzy-header .wp-block-navigation__responsive-container-open, .izzy-header .wp-block-navigation__responsive-container-open svg, .izzy-header .wp-block-navigation__responsive-container-close { transition: none; } }
/* "A question?" under the map's location cards: plain text on the section background, no card chrome */
.izzy-mapwrap__side .izzy-addr--ask { background: transparent; border: 0; box-shadow: none; border-radius: 0; padding: 14px 6px 0; }
.izzy-mapwrap__side .izzy-addr--ask p { margin: 0; line-height: 1.7; }
.izzy-mapwrap__side .izzy-addr--ask b { font-family: var(--wp--preset--font-family--display); font-weight: 500; font-size: var(--wp--custom--text--lead); display: block; margin-bottom: 4px; }

/* Category pages on phones: horizontal treatment cards (square thumbnail left, title / excerpt / price right)
   instead of full-width 4:3 cards — the Massages list drops from ~3 900 px to about a third. Location chips are left out:
   the "All / Izzy Spa / Izzy Studio" filter above the list carries that information. */
@media (max-width: 560px) {
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-grid { gap: 12px; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment { grid-template-columns: 116px minmax(0, 1fr); grid-template-rows: none; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__ph { aspect-ratio: auto; height: 100%; min-height: 132px; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__locs { display: none; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__body { padding: 12px 14px; gap: 6px; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__title { font-size: var(--wp--custom--text--body-plus); line-height: 1.2; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__d { font-size: var(--wp--custom--text--small); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__meta { padding-top: 8px; margin-top: 2px; }
	.tax-izzy_treatment_cat .izzy-tgrid .izzy-card--treatment .izzy-card__price { font-size: var(--wp--custom--text--body-plus); }
}

/* Home on phones: "Soins signature" and the journal become swipe rows (80% cards, next one peeking)
   instead of 4 + 3 full-height cards (~3 800 px together). */
@media (max-width: 560px) {
	.izzy-tgrid--featured .izzy-grid,
	.home .izzy-posts .wp-block-post-template.wp-block-post-template { position: relative; /* clips absolutely positioned screen-reader text inside the cards */ display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--wp--style--root--padding-left, 16px)); padding: 4px var(--wp--style--root--padding-left, 16px) 12px; scroll-padding-inline: var(--wp--style--root--padding-left, 16px); max-width: none; }
	.izzy-tgrid--featured .izzy-grid::-webkit-scrollbar, .home .izzy-posts .wp-block-post-template::-webkit-scrollbar { display: none; }
	.izzy-tgrid--featured .izzy-grid > *, .home .izzy-posts .wp-block-post-template > * { flex: 0 0 80%; min-width: 0; scroll-snap-align: start; }
}
/* Two-word CTA labels must stay on one line; on narrow cards the button takes the full width and drops its icon. */
.izzy-btn--nowrap { white-space: nowrap; }
@media (max-width: 480px) {
	.izzy-cta-card .izzy-btn { width: 100%; justify-content: center; padding-inline: 18px; white-space: nowrap; }
}
@media (max-width: 400px) { .izzy-cta-card .izzy-btn svg { display: none; } }

/* Journal on phones: card parts sit on the card's own 12px rhythm (heading margins added ~50px of air per card),
   one title size for all cards, and "Read also" under an article is a swipe row like on the home page. */
@media (max-width: 600px) {
	.izzy-posts .wp-block-post > *, .izzy-posts .wp-block-post > .wp-block-group > * { margin-block: 0; }
	.izzy-posts .wp-block-post .wp-block-post-title, .izzy-posts--journal .wp-block-post-template > .wp-block-post:first-child .wp-block-post-title { font-size: var(--wp--custom--text--title-m); max-width: none; }
	.izzy-posts--journal .wp-block-post-template { gap: 36px; }
}
@media (max-width: 560px) {
	.single-post .izzy-posts .wp-block-post-template.wp-block-post-template { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; margin-inline: calc(-1 * var(--wp--style--root--padding-left, 16px)); padding: 4px var(--wp--style--root--padding-left, 16px) 12px; scroll-padding-inline: var(--wp--style--root--padding-left, 16px); max-width: none; }
	.single-post .izzy-posts .wp-block-post-template::-webkit-scrollbar { display: none; }
	.single-post .izzy-posts .wp-block-post-template > * { flex: 0 0 80%; min-width: 0; scroll-snap-align: start; }
}
/* Text heroes (journal, journal categories, treatments archive) on phones: the split-hero copy padding (40 / 56px)
   stacked on the section padding left ~95px above the breadcrumbs and ~160px under the title. */
@media (max-width: 600px) {
	.izzy-hero2--text { padding-block: 8px 28px; }
	.izzy-hero2--text .izzy-hero2__copy--text { padding: 0; gap: 16px; }
	.izzy-hero2--text .izzy-crumbs { margin-bottom: 0; }
	.izzy-hero2--text + .izzy-pt-50 { padding-top: 16px !important; }
}

/* Search field (404, search results): pill input matching the round button; was the browser's square grey box. */
main .wp-block-search__inside-wrapper { gap: 10px; }
main .wp-block-search__input { min-height: 52px; padding: 0 22px; border: 1px solid var(--wp--preset--color--line); border-radius: 999px; background: #fff; font-size: var(--wp--preset--font-size--m); color: var(--wp--preset--color--ink); transition: border-color .25s ease, box-shadow .25s ease; }
main .wp-block-search__input::placeholder { color: var(--wp--preset--color--muted); opacity: 1; }
main .wp-block-search__input:focus { outline: none; border-color: var(--wp--preset--color--plum); box-shadow: 0 0 0 3px var(--wp--preset--color--plum-tint); }
.error404 main .wp-block-search { max-width: 520px; margin-inline: auto; }

/* Search results on phones: one compact row per result (thumbnail left, title + two lines right) instead of full-width cards. */
@media (max-width: 600px) {
	.search .izzy-posts .wp-block-post-template { gap: 14px; }
	.search .izzy-posts .wp-block-post { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 14px; row-gap: 4px; align-items: start; padding-bottom: 14px; border-bottom: 1px solid var(--wp--preset--color--line); }
	.search .izzy-posts .wp-block-post > * { margin: 0; }
	.search .izzy-posts .wp-block-post-featured-image { grid-row: 1 / 3; }
	.search .izzy-posts .wp-block-post-featured-image img { aspect-ratio: 1; border-radius: var(--izzy-r-s); }
	.search .izzy-posts .wp-block-post-title { font-size: var(--wp--custom--text--body-plus); line-height: 1.25; }
	.search .izzy-posts .wp-block-post-excerpt { font-size: var(--wp--custom--text--small); line-height: 1.45; color: var(--wp--preset--color--muted); }
	.search .izzy-posts .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 0; }
	.search .izzy-posts .wp-block-post-excerpt__more-text { display: none; }
	.search main .wp-block-query-title { font-size: clamp(1.9rem, 8vw, 2.4rem); }
}


/* ---------- Phones in landscape (short screens, 601–1199px wide) ----------
   The stacked mobile heroes put a 300–560px photo first, so the first screen showed no title at all.
   Here the photo goes back beside the text, titles scale with the screen height, and the bottom
   booking bar is dropped (the header shows its own "Réserver" button at these widths). */
@media (orientation: landscape) and (max-height: 520px) and (min-width: 601px) and (max-width: 1199px) {
	.izzy-sticky { display: none !important; }
	body:has(.izzy-sticky) { padding-bottom: 0; }

	.izzy-hero2 .wp-block-columns.izzy-hero2__grid { flex-wrap: nowrap !important; min-height: calc(100svh - var(--izzy-header-h)); max-height: none; }
	.izzy-hero2 .izzy-hero2__grid > .wp-block-column.izzy-hero2__copy { flex-basis: 56% !important; flex-grow: 0 !important; padding: 16px 28px 20px 0; gap: 12px; }
	.izzy-hero2 .izzy-hero2__grid > .wp-block-column.izzy-hero2__media { order: 0; flex-basis: 44% !important; flex-grow: 0 !important; height: auto; min-height: 0; margin-inline: 0 calc(50% - 50vw) !important; }
	.izzy-hero2__img { border-radius: var(--izzy-r) 0 0 var(--izzy-r); }
	.izzy-hero2__title, .izzy-hero2--offer .izzy-hero2__title { font-size: clamp(1.9rem, 10vh, 2.8rem); }
	.izzy-hero2__lead { font-size: var(--wp--preset--font-size--s); line-height: 1.5; }
	.izzy-hero2__cta { gap: 18px !important; margin-top: 4px !important; }
	.izzy-hero2 .izzy-today { left: 12px; right: 12px; bottom: 12px; }

	.izzy-thero .izzy-thero__grid { grid-template-columns: 44% minmax(0, 1fr); gap: 28px; min-height: calc(100svh - var(--izzy-header-h)); }
	.izzy-thero__ph { margin-inline: calc(-1 * clamp(16px, 4vw, 48px)) 0; height: auto; min-height: 0; border-radius: 0 var(--izzy-r) var(--izzy-r) 0; }
	.izzy-thero__body { padding-block: 16px 0; gap: 12px; }
	.izzy-thero .izzy-crumbs li:last-child:nth-child(n+3) { display: none; } /* current page = the title right below */
	.izzy-thero__title { font-size: clamp(1.9rem, 10vh, 2.8rem) !important; }
	.izzy-thero .izzy-lead { font-size: var(--wp--preset--font-size--m); }

	.izzy-hero2--text { padding-block: 8px 24px !important; }
	.izzy-hero2--text .izzy-hero2__copy--text { padding: 0; gap: 14px; }
	.izzy-hero2--text .izzy-hero2__title { font-size: clamp(2rem, 11vh, 3rem); }
	.izzy-hero2--text + .izzy-pt-50 { padding-top: 16px !important; }

	/* The first screen is only ~300px tall here: breadcrumbs and the season chip give way to the title. */
	main .izzy-crumbs { display: none !important; }
	.izzy-hero2__copy > p:has(> .izzy-chip:only-child) { display: none !important; }
}

/* An h2 that looks like an h3 (keeps the heading order h1 → h2 where the design wants a small title). */
main h2.wp-block-heading.izzy-h3 { font-size: var(--wp--preset--font-size--xl); line-height: 1.2; letter-spacing: 0; }

/* ---------- touch targets (≥44px for standalone links; links inside running text are exempt) ---------- */
.izzy-addr__links { gap: 0 18px; }
/* A 44px-tall link box would put the gold hairline (anchored to the box bottom) far under the word, so on these
   the hairline is anchored to the vertically centred text instead; padded links measure it from the content box. */
.izzy-addr__links a { display: inline-flex; align-items: center; min-height: 44px; background-position: 0 calc(50% + .62em); }
@media (max-width: 782px) {
	.izzy-addr__contact a, .izzy-footer .izzy-addr__contact a { display: inline-flex; align-items: center; min-height: 44px; background-position: 0 calc(50% + .62em); }
	.izzy-addr > p:not(.izzy-addr__contact) > a:is([href^="tel:"], [href*="wa.me"], [href^="mailto:"]) { display: inline-block; padding-block: 12px; margin-block: -12px; line-height: 1.25; background-origin: content-box; }
	.izzy-footer .izzy-footer-nav .wp-block-navigation__container { gap: 0; }
	.izzy-footer .izzy-footer-nav .wp-block-navigation-item__content, .izzy-footer .izzy-legal-nav .wp-block-navigation-item__content { display: inline-flex; align-items: center; min-height: 44px; background-position: 0 calc(50% + .62em); }
	.izzy-footer .izzy-legal-nav .wp-block-navigation__container { row-gap: 0; }
	main .wp-block-post-terms a { display: inline-block; padding-block: 10px !important; margin-block: -10px; }
	.izzy-footer__credit a { display: inline-block; padding-block: 12px; margin-block: -12px; background-origin: content-box; }
}
@media (max-width: 520px) {
	.izzy-cat .izzy-cat__t { padding: 14px 16px; }
	.izzy-cat:not(.is-big) .izzy-cat__h { font-size: var(--wp--custom--text--body-plus); }
	.izzy-cat:not(.is-big) .izzy-cat__t small { display: none; }
	.izzy-cat:not(.is-big) .izzy-cat__n { top: 10px; right: 10px; padding: 3px 8px; font-size: var(--wp--preset--font-size--xs); }
	.izzy-cat::before { display: none; }
}

/* ---------- home: wellness section, short lead + "Read more" (the long form stays in the page for search engines) ---------- */
.izzy-wellness__lead { max-width: 62ch; }
.wp-block-details.izzy-more { margin-top: 28px; border-top: 1px solid var(--wp--preset--color--line); }
.wp-block-details.izzy-more > summary {
	display: flex; align-items: center; gap: 12px; min-height: 52px; padding-block: 12px; cursor: pointer; list-style: none;
	font-weight: 600; font-size: var(--wp--preset--font-size--s); letter-spacing: .02em; color: var(--wp--preset--color--plum);
}
.wp-block-details.izzy-more > summary::-webkit-details-marker { display: none; }
.wp-block-details.izzy-more > summary::after {
	content: ""; width: 9px; height: 9px; margin-top: -4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .35s var(--izzy-ease), margin .35s var(--izzy-ease);
}
.wp-block-details.izzy-more[open] > summary::after { transform: rotate(-135deg); margin-top: 4px; }
.wp-block-details.izzy-more > summary:hover { color: var(--wp--preset--color--plum-deep); }
.wp-block-details.izzy-more > summary:focus-visible { outline: 2px solid var(--wp--preset--color--plum); outline-offset: 3px; border-radius: 4px; }
.wp-block-details.izzy-more > .izzy-wellness__grid { margin-top: 18px; }
.wp-block-details.izzy-more p { max-width: 68ch; }
@media (prefers-reduced-motion: reduce) { .wp-block-details.izzy-more > summary::after { transition: none; } }
.izzy-wellness > .izzy-wellness__lead { margin-left: max(0px, (100% - 1240px) / 2) !important; margin-right: auto !important; }

/* ---------- polish after the home critique ---------- */
/* today panel footnote: readable size */
.izzy-today .has-xs-font-size { font-size: var(--wp--custom--text--caption); }
/* cookie banner: "Refuse" carries the same weight as "Accept all" */
.kncc-banner .kncc-btn.kncc-btn--secondary, .kncc-banner .kncc-btn.kncc-btn--secondary:focus { background: var(--wp--preset--color--plum-deep); color: #fff; }
.kncc-banner .kncc-btn.kncc-btn--secondary:hover { background: var(--wp--preset--color--plum); color: #fff; }
/* amenities are facts, not buttons: plain text with dots instead of pills */
.izzy-tags { gap: 4px 16px; }
.izzy-tag { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; border-radius: 0; background: none; font-size: var(--wp--custom--text--small); color: var(--wp--preset--color--muted); }
.izzy-tag::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: .7; }
/* journal teaser: date + category, then a short excerpt */
.izzy-posts__meta { gap: 4px 14px; margin: 0; }
.izzy-posts__meta > * { margin: 0; }
.izzy-posts .wp-block-post-excerpt { margin: 0; }
.izzy-posts .wp-block-post-excerpt__excerpt { margin: 0; font-size: var(--wp--preset--font-size--s); line-height: 1.55; color: var(--wp--preset--color--muted); }
.izzy-posts .wp-block-post-excerpt__more-text { display: none; }

/* ---------- home hero, two addresses: copy left, the two real rooms stacked right (each with its name, street and live status) ---------- */
.izzy-hero2__note { font-size: var(--wp--custom--text--small); color: var(--wp--preset--color--muted); margin-top: -8px; }
.izzy-hero2--duo .izzy-duo { display: grid; grid-template-rows: 1fr 1fr; gap: 12px; padding-block: clamp(16px, 3vh, 28px); }
.izzy-duo__item { position: relative; margin: 0; min-height: 0; border-radius: var(--izzy-r) 0 0 var(--izzy-r); overflow: hidden; isolation: isolate; }
.izzy-duo__item .izzy-hero2__img img { object-position: 50% 50%; }
.izzy-duo__item::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(to top, rgba(var(--izzy-scrim), .78), rgba(var(--izzy-scrim), .18) 52%, rgba(var(--izzy-scrim), 0) 75%); }
.izzy-duo__item { display: grid; align-content: end; padding: clamp(16px, 2.2vw, 26px) 18px clamp(16px, 2.2vw, 26px) clamp(18px, 2.4vw, 32px); }
.izzy-duo__item .izzy-hero2__img { z-index: -2; }
.izzy-duo__item::after { z-index: -1; }
.izzy-duo__cap { position: static; display: grid; gap: 3px; margin: 0; color: #fff; }
.izzy-duo__cap > * { margin: 0; }
.izzy-duo__name { display: flex; align-items: center; gap: 10px; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.35rem, 1.9vw, 1.85rem); line-height: 1.1; }
.izzy-duo__name::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--on-dark); }
.izzy-loc--studio .izzy-duo__name::before { background: var(--wp--preset--color--studio); }
.izzy-duo__cap .izzy-duo__name a { color: #fff !important; text-decoration: none; background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0 1px !important; padding: 0 !important; transition: background-size .35s var(--izzy-ease); }
.izzy-duo__cap .izzy-duo__name a:hover, .izzy-duo__cap .izzy-duo__name a:focus-visible, .izzy-duo__item:hover .izzy-duo__name a { background-size: 100% 1px !important; }
.izzy-duo__name a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.izzy-duo__name a:focus-visible { outline: none; }
.izzy-duo__name a:focus-visible::after { box-shadow: inset 0 0 0 3px var(--wp--preset--color--on-dark); border-radius: inherit; }
.izzy-duo__name a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.izzy-duo__addr { padding-left: 19px; font-size: var(--wp--custom--text--small); color: rgba(255, 255, 255, .86); }
.izzy-duo__cap .izzy-status { margin: 8px 0 0 19px; }
.izzy-duo__cap .izzy-open { padding: 5px 12px; border-radius: 999px; background: rgba(43, 26, 38, .5); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font-size: var(--wp--custom--text--caption); font-weight: 600; }
.izzy-duo__cap .izzy-open.is-open { color: var(--wp--preset--color--open-on-dark); }
.izzy-duo__cap .izzy-open.is-closed { color: #fff; }
.izzy-duo__cap .izzy-open.is-closed::before { background: rgba(255, 255, 255, .7); }
/* no scroll parallax in the pair (it uncovered the frame edge), only the hover zoom; clip-path keeps the rounded corners even while the photo is transformed */
.izzy-duo__item { clip-path: inset(0 round var(--izzy-r) 0 0 var(--izzy-r)); }
.izzy-duo__item .izzy-hero2__img img, .izzy-duo__item .izzy-hero2__img.izzy-media.is-in img { transform: none; will-change: auto; transition: transform 1.2s var(--izzy-ease); }
.izzy-duo__item:hover .izzy-hero2__img img, .izzy-duo__item:hover .izzy-hero2__img.izzy-media.is-in img { transform: scale(1.04); }
@media (max-width: 900px) {
	/* phones: the promise and the booking button first, then the two rooms side by side */
	/* the copy column dissolves so the two rooms can sit between the booking button and the ratings */
	.izzy-hero2--duo .izzy-hero2__grid { flex-direction: column; flex-wrap: nowrap !important; gap: 22px; padding-block: 26px 36px; }
	.izzy-hero2--duo .izzy-hero2__copy { display: contents; }
	.izzy-hero2--duo .izzy-hero2__grid > * , .izzy-hero2--duo .izzy-hero2__copy > * { order: 1; }
	.izzy-hero2--duo .izzy-hero2__copy > .izzy-hero2__note { margin-top: -10px; }
	.izzy-hero2--duo .izzy-hero2__media { order: 2; height: auto; min-height: 0; grid-template-columns: 1fr 1fr; grid-template-rows: none; gap: 10px; padding: 4px 0 0; margin-inline: 0 !important; flex-basis: auto !important; }
	.izzy-hero2--duo .izzy-hero2__copy > .izzy-hero2__trust { order: 3; margin-top: 0; }
	.izzy-duo__item { aspect-ratio: 4 / 5; border-radius: 18px; clip-path: inset(0 round 18px); }
	.izzy-duo__item { padding: 12px 10px 12px 12px; }
	.izzy-duo__name { font-size: var(--wp--custom--text--body-plus); gap: 7px; }
	.izzy-duo__name::before { width: 7px; height: 7px; }
	.izzy-duo__addr { display: none; }
	.izzy-duo__cap .izzy-status { margin: 6px 0 0; }
	.izzy-duo__cap .izzy-open { padding: 4px 9px; font-size: var(--wp--preset--font-size--xs); gap: 6px; }
	.izzy-duo__cap .izzy-open::before { width: 7px; height: 7px; }
}
@media (prefers-reduced-motion: reduce) { .izzy-duo__item .izzy-hero2__img img { transition: none; } }
.izzy-hero2--duo .izzy-hero2__title { font-size: clamp(2.6rem, 5.3vw, 5.1rem); }
@media (min-width: 601px) { .izzy-hero2__title em { white-space: nowrap; } } /* "Retrouvez-vous." keeps its hyphen together on wide screens */
.izzy-split .izzy-w { max-width: 100%; }

/* ---------- second critique round ---------- */
/* marquee pause button (small, at the right end of the band) */
.izzy-marquee { position: relative; }
.izzy-marquee__pause { position: absolute; right: clamp(8px, 2vw, 24px); top: 50%; transform: translateY(-50%); z-index: 2; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--ivory); color: var(--wp--preset--color--plum); cursor: pointer; display: grid; place-items: center; }
.izzy-marquee__pause::before { content: ""; width: 10px; height: 12px; border-inline: 3px solid currentColor; box-sizing: border-box; }
.izzy-marquee__pause[aria-pressed="true"]::before { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 3px; }
.izzy-marquee__pause:hover, .izzy-marquee__pause:focus-visible { background: var(--wp--preset--color--plum); color: #fff; border-color: var(--wp--preset--color--plum); }
.izzy-marquee__pause::after { content: ""; position: absolute; inset: -4px; } /* 44px touch area */
@media (prefers-reduced-motion: reduce) { .izzy-marquee__pause { display: none; } }
/* the "01 —" counter is read as text: Old Brass on light grounds (Readable Accent Rule), a pale gold on plum */
.wp-block-post-content > section .izzy-sec-head .is-style-izzy-eyebrow::before,
.wp-block-post-content > section > .wp-block-group > .is-style-izzy-eyebrow:first-child::before,
.izzy-sec .izzy-sec-head .is-style-izzy-eyebrow::before { color: var(--izzy-gold-text, #74571A); }
.is-style-izzy-band .is-style-izzy-eyebrow::before { color: var(--wp--preset--color--on-dark); }
/* offer band on phones: the price comes before the button that acts on it */
@media (max-width: 781px) {
	.izzy-offer .wp-block-columns { display: flex; flex-direction: column; }
	.izzy-offer .wp-block-columns > .wp-block-column:first-child { display: contents; }
	.izzy-offer .wp-block-columns > .wp-block-column:first-child > * { order: 1; }
	.izzy-offer .wp-block-columns > .wp-block-column:first-child > .wp-block-buttons { order: 3; margin-top: 18px; }
	.izzy-offer .wp-block-columns > .izzy-offer__price { order: 2; flex-basis: auto !important; margin-top: 4px; }
}
/* founders photo: on phones the experience badge sits under the photo instead of over their faces */
@media (max-width: 781px) {
	.izzy-philo__ph { display: grid; gap: 12px; }
	.izzy-philo__badge { position: static; max-width: none; justify-self: start; }
}
/* cookie banner on phones: compact, so the page title and button stay visible behind it */
@media (max-width: 600px) {
	.kncc-banner--corner .kncc-inner { padding: 16px 16px 14px; }
	#kncc-banner .kncc-heading, .kncc-banner .kncc-heading { font-size: var(--wp--preset--font-size--m); margin-bottom: 4px; }
	.kncc-banner .kncc-desc { font-size: var(--wp--custom--text--caption); line-height: 1.45; }
	.kncc-banner .kncc-btn { padding: 9px 14px; font-size: var(--wp--custom--text--small); }
}

/* landscape phones: the two-address hero goes back to side by side (copy left, the two rooms stacked right) and fits one screen */
@media (orientation: landscape) and (max-height: 520px) and (min-width: 601px) and (max-width: 1199px) {
	.izzy-hero2--duo .izzy-hero2__grid { flex-direction: row !important; gap: 0; padding-block: 0; }
	.izzy-hero2--duo .izzy-hero2__grid > .izzy-hero2__copy { display: grid !important; order: 0 !important; align-content: center; }
	.izzy-hero2--duo .izzy-hero2__copy > .izzy-hero2__trust, .izzy-hero2--duo .izzy-hero2__copy > .izzy-hero2__eyebrow { display: none !important; }
	.izzy-hero2--duo .izzy-hero2__copy > .izzy-hero2__note { margin-top: -4px !important; }
	.izzy-hero2--duo .izzy-hero2__grid > .wp-block-column.izzy-hero2__media { order: 1 !important; display: grid !important; grid-template-columns: none; grid-template-rows: 1fr 1fr; gap: 8px; padding: 10px 0; }
	.izzy-hero2--duo .izzy-duo__item { aspect-ratio: auto; border-radius: 16px 0 0 16px; clip-path: inset(0 round 16px 0 0 16px); }
	.izzy-hero2--duo .izzy-duo__item { padding: 10px 12px 10px 14px; }
	.izzy-hero2--duo .izzy-duo__name { font-size: var(--wp--custom--text--body-plus); }
	.izzy-hero2--duo .izzy-duo__addr { display: none; }
	.izzy-hero2--duo .izzy-duo__cap .izzy-status { margin: 4px 0 0 !important; }
	.izzy-hero2--duo .izzy-duo__cap .izzy-open { padding: 3px 9px; font-size: var(--wp--preset--font-size--xs); }
}

/* ---------- audit fixes ---------- */
/* focus on dark grounds (footer, plum bands): a pale ring, plum would be 1.4:1 */
.izzy-footer a:focus-visible, .izzy-footer button:focus-visible, .is-style-izzy-band a:focus-visible, .izzy-offer a:focus-visible, .izzy-sv button:focus-visible { outline-color: var(--wp--preset--color--on-dark); }
/* header: the menu button never shrinks (large text), the logo gives way instead */
/* burger mode with large text: the logo gives way, the menu button never does */
@media (max-width: 1199px) {
	.izzy-header__inner > .izzy-logo { flex-shrink: 1; min-width: 0; overflow: hidden; }
	.izzy-header__inner > .wp-block-navigation { flex-shrink: 0; }
	.izzy-header .wp-block-navigation__responsive-container-open { flex-shrink: 0; }
}
/* touch targets: secondary links get a 44px hit area on touch screens without changing the layout */
@media (pointer: coarse), (max-width: 782px) {
	.izzy-crumbs a, .izzy-lang a, .izzy-contact--list .izzy-contact__item, .wp-block-query-pagination a, a.page-numbers, .izzy-arrow-link a, .izzy-thero__eyebrow a, .izzy-search-results .wp-block-post-title a, main .wp-block-post-title a { position: relative; }
	.izzy-crumbs a::before, .izzy-lang a::before, .izzy-contact--list .izzy-contact__item::before, .wp-block-query-pagination a::before, a.page-numbers::before, .izzy-arrow-link a::before, .izzy-thero__eyebrow a::before, main .wp-block-post-title a::before { content: ""; position: absolute; left: 50%; top: 50%; width: max(100%, 44px); height: 44px; transform: translate(-50%, -50%); }
	.izzy-contact--list .izzy-contact__item { min-height: 44px; }
	.wp-block-query-pagination a, a.page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; }
	.izzy-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }
}
.izzy-marquee__pause { width: 44px; height: 44px; }
.izzy-marquee__pause::after { display: none; }
/* desktop submenu chevrons: a 24px target (WCAG 2.5.8) */
.izzy-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle { min-width: 24px; min-height: 24px; display: inline-grid; place-items: center; }
/* gift-cards tile: the illustration's cards sit right of centre, clear of the title; keep them in frame on narrow (squarer) tiles */
.izzy-cat--gift img { object-position: 78% 30%; }
/* Izzy Spa hero (hammam with the wooden bucket): keep the bucket in frame when phones crop the portrait photo to a strip */
.single-izzy_location.izzy-loc--spa .izzy-hero2__img img { object-position: 50% 80%; }
