/* ==========================================================================
   MLILY theme styles. Colours, fonts and spacing come from theme.json presets.
   ========================================================================== */

:root {
	--mlily-radius-sm: 4px;
	--mlily-radius: 8px;
	--mlily-radius-lg: 16px;
	--mlily-line: var(--wp--preset--color--line, #E1E8F2);
	--mlily-blue: var(--wp--preset--color--blue, #003B95);
	--mlily-blue-75: var(--wp--preset--color--blue-75, #426DA9);
	--mlily-blue-25: var(--wp--preset--color--blue-25, #C8D8EB);
	--mlily-blue-10: var(--wp--preset--color--blue-10, #EEF3FA);
	--mlily-blue-05: var(--wp--preset--color--blue-05, #F6F9FD);
	--mlily-ink: var(--wp--preset--color--ink, #2E3A4B);
	--mlily-muted: var(--wp--preset--color--ink-muted, #5F6B7A);
	--mlily-orange: var(--wp--preset--color--orange, #F8B62D);
	--mlily-shadow: 0 2px 12px rgba(0, 59, 149, .07);
	--mlily-shadow-lift: 0 12px 32px rgba(0, 59, 149, .13);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid var(--mlily-blue-75); outline-offset: 2px; }
::selection { background: var(--mlily-blue-25); color: var(--mlily-blue); }
.wp-site-blocks { display: flex; flex-direction: column; min-height: 100vh; }
.wp-site-blocks > main { flex: 1; }

/* ---------- Text helpers ---------- */
.is-style-eyebrow {
	font-size: .8125rem !important;
	font-weight: 700 !important;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--mlily-blue-75);
	margin-bottom: .5rem !important;
}
.has-blue-background-color .is-style-eyebrow { color: var(--mlily-blue-25); }
.mlily-muted { color: var(--mlily-muted); }
.mlily-lead { font-size: var(--wp--preset--font-size--large); color: var(--mlily-ink); }

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .2s, color .2s, border-color .2s, transform .2s; text-decoration: none; }
.wp-element-button.is-outline,
.is-style-outline > .wp-block-button__link {
	background: transparent !important;
	color: var(--mlily-blue) !important;
	border: 2px solid var(--mlily-blue) !important;
}
.wp-element-button.is-outline:hover,
.is-style-outline > .wp-block-button__link:hover { background: var(--mlily-blue-10) !important; }
.wp-block-button.is-style-light > .wp-block-button__link { background: #fff; color: var(--mlily-blue); border-color: #fff; }

/* ---------- Lists ---------- */
.is-style-checks, .mlily-features, .mlily-cathead__high { list-style: none; padding-left: 0; }
.is-style-checks li, .mlily-features li, .mlily-cathead__high li {
	position: relative;
	padding-left: 2rem;
	margin-bottom: .6rem;
}
.is-style-checks li::before, .mlily-features li::before, .mlily-cathead__high li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
	background: var(--mlily-blue-10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23003B95' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat;
}
.mlily-features { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: .25rem 2rem; }

/* ---------- Groups ---------- */
.is-style-card {
	background: #fff;
	border: 1px solid var(--mlily-line);
	border-radius: var(--mlily-radius-lg);
	padding: clamp(1.25rem, 3vw, 2rem);
	box-shadow: var(--mlily-shadow);
}
.is-style-panel {
	background: var(--mlily-blue-05);
	border-radius: var(--mlily-radius-lg);
	padding: clamp(1.5rem, 4vw, 3rem);
}
.wp-block-image.is-style-square-corners img { border-radius: 0 !important; }

/* ---------- Top bar + header ---------- */
.mlily-topbar {
	background: var(--mlily-blue-10);
	color: var(--mlily-blue);
	font-size: .8125rem;
	font-weight: 600;
}
.mlily-topbar a { color: inherit; text-decoration: none; }
.mlily-topbar a:hover { text-decoration: underline; }
.mlily-topbar p { margin: 0; }

.mlily-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, .96);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--mlily-line);
	transition: box-shadow .2s;
}
.admin-bar .mlily-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .mlily-header { top: 0; } }
.mlily-header.is-scrolled { box-shadow: 0 4px 18px rgba(0, 59, 149, .08); }
.mlily-header .wp-block-site-logo img { width: 112px; height: auto; }
.mlily-logo-link { display: inline-flex; line-height: 0; }
.mlily-logo-link img { width: 112px; height: auto; }
.mlily-header .wp-block-navigation-item__content { padding: .5rem .25rem; position: relative; }
.mlily-header .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: .25rem; right: .25rem; bottom: .1rem; height: 2px;
	background: var(--mlily-blue); transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.mlily-header .wp-block-navigation-item__content:hover::after,
.mlily-header .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.mlily-header .wp-block-navigation-item__content:hover { color: var(--mlily-blue); }
.mlily-header .wp-block-search__button { background: transparent; border: 0; color: var(--mlily-blue); padding: .4rem; }
.mlily-header .wp-block-search__input { border-radius: var(--mlily-radius); }
.mlily-header .wp-block-buttons .wp-block-button__link { padding: .7rem 1.2rem; font-size: .875rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; font-weight: 600; color: var(--mlily-blue); padding: .4rem 0; }
.wp-block-navigation__responsive-container-open { color: var(--mlily-blue); }
@media (max-width: 781px) {
	.mlily-header .mlily-header__cta { display: none; }
}

/* ---------- Hero ---------- */
.mlily-hero { position: relative; overflow: hidden; }
.mlily-hero h1 { font-size: clamp(2.5rem, 1.6rem + 3.6vw, 4.25rem); letter-spacing: -.02em; }
.mlily-hero .wp-block-image img { border-radius: var(--mlily-radius-lg); box-shadow: var(--mlily-shadow-lift); aspect-ratio: 5 / 4; object-fit: cover; width: 100%; }
.mlily-hero__ring { display: block; z-index: 0 !important; max-width: none !important; margin: 0 !important;
	position: absolute; pointer-events: none; border-radius: 50%;
	border: clamp(18px, 3vw, 34px) solid var(--mlily-blue-10);
	width: min(70vw, 760px); aspect-ratio: 1; right: -18%; top: -30%;
}
.mlily-hero > *:not(.mlily-hero__ring) { position: relative; z-index: 1; }

/* ---------- Trust strip ---------- */
.mlily-trust { border-top: 1px solid var(--mlily-line); border-bottom: 1px solid var(--mlily-line); }
.mlily-trust .wp-block-column { display: flex; gap: 1rem; align-items: flex-start; }
.mlily-trust img { width: 52px; height: 52px; flex: 0 0 52px; object-fit: contain; }
.mlily-trust__icon {
	flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%;
	background: var(--mlily-blue-10); color: var(--mlily-blue);
	display: grid; place-items: center; font-weight: 800; font-size: 1rem;
}
.mlily-trust__icon svg { width: 26px; height: 26px; }
.mlily-trust h3 { font-size: 1rem !important; margin: 0 0 .2rem; }
.mlily-trust p { margin: 0; font-size: .875rem; color: var(--mlily-muted); line-height: 1.5; }

/* ---------- Product grid + cards ---------- */
.mlily-grid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); }
.mlily-grid--2 { --cols: 2; }
.mlily-grid--3 { --cols: 3; }
.mlily-grid--4 { --cols: 4; }
@media (max-width: 1080px) { .mlily-grid--4 { --cols: 3; } }
@media (max-width: 820px) { .mlily-grid { --cols: 2 !important; } }
@media (max-width: 480px) { .mlily-grid { --cols: 1 !important; } }

.mlily-card { height: 100%; }
.mlily-card__link {
	display: flex; flex-direction: column; height: 100%;
	background: #fff; border: 1px solid var(--mlily-line); border-radius: var(--mlily-radius-lg);
	overflow: hidden; color: inherit; text-decoration: none;
	transition: box-shadow .25s, transform .25s, border-color .25s;
}
.mlily-card__link:hover { box-shadow: var(--mlily-shadow-lift); transform: translateY(-3px); border-color: var(--mlily-blue-25); }
.mlily-card__media { position: relative; aspect-ratio: 4 / 3; background: var(--mlily-blue-05); overflow: hidden; }
.mlily-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.mlily-card__link:hover .mlily-card__media img { transform: scale(1.04); }
.mlily-card__placeholder { position: absolute; inset: 0; background: linear-gradient(135deg, var(--mlily-blue-05), var(--mlily-blue-10)); }
.mlily-card__body { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.25rem 1.3rem; flex: 1; }
.mlily-card__cat { margin: 0; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mlily-blue-75); }
.mlily-card__title { margin: 0; font-size: 1.125rem !important; font-weight: 700; color: var(--mlily-blue); line-height: 1.3; }
.mlily-card__text { margin: 0; font-size: .875rem; line-height: 1.55; color: var(--mlily-muted); }
.mlily-card__more { margin-top: auto; padding-top: .5rem; font-size: .875rem; font-weight: 700; color: var(--mlily-blue); }
.mlily-badge {
	position: absolute; top: .75rem; left: .75rem; z-index: 1;
	font-size: .6875rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	padding: .3rem .6rem; border-radius: var(--mlily-radius-sm);
	background: #fff; color: var(--mlily-blue); box-shadow: 0 1px 4px rgba(0, 59, 149, .12);
}
.mlily-badge--exclusive { background: var(--mlily-orange); color: var(--mlily-blue); box-shadow: none; }

/* Core query loop styled as product cards (archives) */
.mlily-query .wp-block-post-template { gap: clamp(1rem, 2vw, 1.5rem); }
.mlily-query .wp-block-post {
	display: flex; flex-direction: column;
	background: #fff; border: 1px solid var(--mlily-line); border-radius: var(--mlily-radius-lg); overflow: hidden;
	transition: box-shadow .25s, transform .25s, border-color .25s; position: relative;
}
.mlily-query .wp-block-post:hover { box-shadow: var(--mlily-shadow-lift); transform: translateY(-3px); border-color: var(--mlily-blue-25); }
.mlily-query .wp-block-post-featured-image { margin: 0; aspect-ratio: 4 / 3; background: var(--mlily-blue-05); }
.mlily-query .wp-block-post-featured-image img { border-radius: 0 !important; width: 100%; height: 100% !important; object-fit: cover; }
.mlily-query .mlily-query__body { padding: 1.1rem 1.25rem 1.3rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.mlily-query .wp-block-post-title { font-size: 1.125rem !important; margin: 0; }
.mlily-query .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.mlily-query .wp-block-post-excerpt { font-size: .875rem; color: var(--mlily-muted); margin: 0; }
.mlily-query .wp-block-post-excerpt__excerpt { margin: 0; }
.mlily-query .wp-block-post-terms { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mlily-query .wp-block-post-terms a { color: var(--mlily-blue-75); text-decoration: none; position: relative; z-index: 2; }
.mlily-query .mlily-query__more { margin-top: auto !important; font-size: .875rem; font-weight: 700; color: var(--mlily-blue); }
@media (max-width: 1080px) { .mlily-query .wp-block-post-template.columns-4 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 820px) { .mlily-query .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 480px) { .mlily-query .wp-block-post-template { grid-template-columns: 1fr !important; } }
.wp-block-query-pagination { gap: .5rem; font-weight: 600; }
.wp-block-query-pagination a, .wp-block-query-pagination .current {
	display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem;
	border-radius: var(--mlily-radius); border: 1px solid var(--mlily-line); text-decoration: none;
}
.wp-block-query-pagination .current { background: var(--mlily-blue); color: #fff; border-color: var(--mlily-blue); }

/* ---------- Category tiles ---------- */
.mlily-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 1000px) { .mlily-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .mlily-cats { grid-template-columns: 1fr; } }
.mlily-cat {
	display: flex; flex-direction: column; color: inherit; text-decoration: none;
	border-radius: var(--mlily-radius-lg); overflow: hidden; background: var(--mlily-blue-05);
	transition: box-shadow .25s, transform .25s;
}
.mlily-cat:hover { box-shadow: var(--mlily-shadow-lift); transform: translateY(-3px); }
.mlily-cat__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mlily-blue-10); }
.mlily-cat__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.mlily-cat:hover .mlily-cat__media img { transform: scale(1.05); }
.mlily-cat__body { display: flex; flex-direction: column; gap: .4rem; padding: 1.25rem 1.35rem 1.4rem; flex: 1; }
.mlily-cat__title { font-size: 1.25rem; font-weight: 700; color: var(--mlily-blue); }
.mlily-cat__text { font-size: .875rem; color: var(--mlily-muted); line-height: 1.55; }
.mlily-cat__more { margin-top: auto; padding-top: .4rem; font-size: .875rem; font-weight: 700; color: var(--mlily-blue); }

/* ---------- Category header ---------- */
.mlily-cathead { background: linear-gradient(180deg, var(--mlily-blue-05), #fff); border-bottom: 1px solid var(--mlily-line); margin-top: 0 !important; }
.mlily-cathead__inner {
	max-width: var(--wp--style--global--wide-size, 1240px); margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) var(--wp--style--root--padding-right, 1.5rem);
	display: grid; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center;
}
.mlily-cathead.has-image .mlily-cathead__inner { grid-template-columns: 1.05fr 1fr; }
@media (max-width: 820px) { .mlily-cathead.has-image .mlily-cathead__inner { grid-template-columns: 1fr; } }
.mlily-cathead h1 { margin: 0 0 1rem; }
.mlily-cathead__desc { font-size: var(--wp--preset--font-size--large); max-width: 38rem; margin: 0 0 1.25rem; }
.mlily-cathead__high { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; margin: 0; font-size: .9375rem; font-weight: 500; }
@media (max-width: 520px) { .mlily-cathead__high { grid-template-columns: 1fr; } }
.mlily-cathead__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--mlily-radius-lg); box-shadow: var(--mlily-shadow-lift); }

/* ---------- Single product ---------- */
.mlily-product__media .wp-block-post-featured-image {
	background: var(--mlily-blue-05); border-radius: var(--mlily-radius-lg); overflow: hidden; margin: 0;
	position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px);
}
.mlily-product__media .wp-block-post-featured-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 0 !important; }
.mlily-product__media .wp-block-post-featured-image:not(:has(img)) { aspect-ratio: 1 / 1; }
.mlily-product .wp-block-post-title { font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem); margin-top: .25rem; }
.mlily-product .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--large); color: var(--mlily-ink); }
.mlily-product .wp-block-post-excerpt__excerpt { margin: 0; }
.mlily-breadcrumb { font-size: .8125rem; color: var(--mlily-muted); }
.mlily-breadcrumb a { color: var(--mlily-blue-75); text-decoration: none; font-weight: 600; }

.mlily-specs { display: flex; flex-direction: column; gap: 1.4rem; margin-top: 1.5rem; }
.mlily-specs__label { margin: 0 0 .5rem; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mlily-muted); }
.mlily-chips { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.mlily-chips li {
	padding: .5rem .9rem; border: 1px solid var(--mlily-blue-25); border-radius: var(--mlily-radius-sm);
	font-size: .875rem; font-weight: 600; color: var(--mlily-blue); background: #fff;
}
.mlily-chips--sizes li { padding: .45rem .75rem; }
.mlily-chips small { display: block; font-weight: 500; font-size: .6875rem; color: var(--mlily-muted); }
.mlily-specs__table { margin: 0; border-top: 1px solid var(--mlily-line); }
.mlily-specs__table div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--mlily-line); }
.mlily-specs__table dt { font-weight: 600; color: var(--mlily-muted); font-size: .875rem; }
.mlily-specs__table dd { margin: 0; font-weight: 600; color: var(--mlily-ink); font-size: .9375rem; }
.mlily-specs__exclusive { margin: 0; padding: .75rem 1rem; border-radius: var(--mlily-radius); background: #FEF4DF; color: var(--mlily-ink); font-weight: 600; font-size: .9375rem; border-left: 4px solid var(--mlily-orange); }
.mlily-specs__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.mlily-specs__trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .8125rem; color: var(--mlily-muted); font-weight: 600; }
.mlily-specs__trust li::before { content: "✓ "; color: var(--mlily-blue-75); }

/* ---------- Store finder ---------- */
.mlily-finder__controls { display: flex; gap: .75rem; flex-wrap: wrap; }
.mlily-finder__search {
	flex: 1 1 280px; font: inherit; font-size: 1rem; padding: .9rem 1rem .9rem 2.75rem;
	border: 1px solid var(--mlily-blue-25); border-radius: var(--mlily-radius); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23426DA9' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") 1rem center / 1.1rem no-repeat;
}
.mlily-finder__search:focus { border-color: var(--mlily-blue); outline: 3px solid var(--mlily-blue-10); }
.mlily-finder__states { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0; }
.mlily-finder__states button {
	font: inherit; font-size: .8125rem; font-weight: 700; padding: .45rem .9rem; cursor: pointer;
	border: 1px solid var(--mlily-line); border-radius: var(--mlily-radius-sm); background: #fff; color: var(--mlily-ink);
}
.mlily-finder__states button:hover { border-color: var(--mlily-blue-25); color: var(--mlily-blue); }
.mlily-finder__states button.is-active { background: var(--mlily-blue); border-color: var(--mlily-blue); color: #fff; }
.mlily-finder__count { font-size: .875rem; color: var(--mlily-muted); margin: 0 0 1rem; }
.mlily-finder__list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.mlily-store {
	border: 1px solid var(--mlily-line); border-radius: var(--mlily-radius-lg); padding: 1.25rem 1.35rem; background: #fff;
	display: flex; flex-direction: column; gap: .3rem;
}
.mlily-store__group { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mlily-blue-75); }
.mlily-store__name { font-weight: 700; color: var(--mlily-blue); font-size: 1.0625rem; margin: 0; }
.mlily-store__addr { font-size: .9rem; color: var(--mlily-ink); margin: 0; }
.mlily-store__dist { font-size: .8125rem; font-weight: 700; color: var(--mlily-blue-75); }
.mlily-store__links { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .4rem; font-size: .875rem; font-weight: 600; }
.mlily-store__links a { text-decoration: none; }
.mlily-store__links a:hover { text-decoration: underline; }
.mlily-finder__empty { padding: 1.5rem; border-radius: var(--mlily-radius-lg); background: var(--mlily-blue-05); }
.mlily-finder__more { margin-top: 1.25rem; }

/* ---------- Forms ---------- */
.mlily-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.mlily-field { grid-column: 1 / -1; display: flex; flex-direction: column; gap: .4rem; }
.mlily-field.is-half { grid-column: span 1; }
@media (max-width: 600px) { .mlily-field.is-half { grid-column: 1 / -1; } }
.mlily-field label { font-size: .875rem; font-weight: 600; color: var(--mlily-ink); }
.mlily-field .req { color: var(--mlily-blue-75); }
.mlily-field input:not([type="checkbox"]), .mlily-field select, .mlily-field textarea {
	box-sizing: border-box; max-width: 100%;
	font: inherit; font-size: 1rem; padding: .8rem .95rem; color: var(--mlily-ink);
	border: 1px solid var(--mlily-blue-25); border-radius: var(--mlily-radius); background: #fff; width: 100%;
	transition: border-color .2s, box-shadow .2s;
}
.mlily-field input:focus, .mlily-field select:focus, .mlily-field textarea:focus { outline: none; border-color: var(--mlily-blue); box-shadow: 0 0 0 4px var(--mlily-blue-10); }
.mlily-check { display: flex !important; flex-direction: row; gap: .6rem; align-items: flex-start; font-weight: 500 !important; }
.mlily-check input { width: 1.15rem; height: 1.15rem; margin-top: .15rem; accent-color: var(--mlily-blue); }
.mlily-form__privacy { font-size: .8125rem; color: var(--mlily-muted); margin: 1.25rem 0; }
.mlily-form__submit { cursor: pointer; font-family: inherit; }
.mlily-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.mlily-notice { padding: 1rem 1.25rem; border-radius: var(--mlily-radius); font-weight: 600; margin-bottom: 1.25rem; }
.mlily-notice.is-success { background: var(--mlily-blue-10); color: var(--mlily-blue); border-left: 4px solid var(--mlily-blue); }
.mlily-notice.is-error { background: #FDECEA; color: #8A1C12; border-left: 4px solid #D25D3C; }

/* ---------- FAQ (details) ---------- */
.wp-block-details { margin: 0 !important; }
.wp-block-details summary {
	cursor: pointer; list-style: none; font-weight: 700; color: var(--mlily-blue); font-size: 1.0625rem;
	display: flex; justify-content: space-between; align-items: center; gap: 1rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: ""; flex: 0 0 1.75rem; height: 1.75rem; border-radius: 50%;
	background: var(--mlily-blue-10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 5v10M5 10h10' stroke='%23003B95' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/60% no-repeat;
	transition: transform .25s;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; color: var(--mlily-ink); }

/* ---------- Media + text, story ---------- */
.mlily-rounded-img img { border-radius: var(--mlily-radius-lg); }
.mlily-story .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.mlily-partner { border-radius: var(--mlily-radius-lg); overflow: hidden; background: #fff; border: 1px solid var(--mlily-line); height: 100%; }
.mlily-partner .wp-block-image { margin: 0; }
.mlily-partner .wp-block-image img { border-radius: 0 !important; aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
.mlily-stat { font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.25rem) !important; font-weight: 800 !important; color: var(--mlily-blue); line-height: 1 !important; margin: 0 !important; }

/* ---------- Footer ---------- */
.mlily-footer { background: var(--mlily-blue-05); border-top: 1px solid var(--mlily-line); font-size: .9375rem; }
.mlily-footer h2, .mlily-footer h3 { font-size: .8125rem !important; letter-spacing: .14em; text-transform: uppercase; color: var(--mlily-blue); margin-bottom: 1rem; }
.mlily-footer ul { list-style: none; padding: 0; margin: 0; }
.mlily-footer li { margin-bottom: .55rem; }
.mlily-footer a { color: var(--mlily-ink); text-decoration: none; }
.mlily-footer a:hover { color: var(--mlily-blue); text-decoration: underline; }
.mlily-footer .wp-block-social-links .wp-social-link { background: #fff !important; color: var(--mlily-blue) !important; border: 1px solid var(--mlily-blue-25); }
.mlily-footer .wp-block-social-links .wp-social-link a { color: var(--mlily-blue) !important; }
.mlily-footer__bottom { border-top: 1px solid var(--mlily-line); font-size: .8125rem; color: var(--mlily-muted); }
.mlily-footer__bottom a { color: var(--mlily-muted); }
.mlily-certs img { height: 44px; width: auto; }

/* ---------- CTA band ---------- */
.mlily-cta { position: relative; overflow: hidden; }
.mlily-cta::before {
	content: ""; position: absolute; pointer-events: none; border-radius: 50%;
	border: 28px solid rgba(255, 255, 255, .55); width: 420px; aspect-ratio: 1; right: -120px; top: -180px;
}
.mlily-cta > * { position: relative; }

/* ---------- Misc ---------- */
.wp-block-search__input { border: 1px solid var(--mlily-blue-25); border-radius: var(--mlily-radius); padding: .75rem 1rem; font: inherit; }
.wp-block-search__button { border-radius: var(--mlily-radius) !important; }
.mlily-404 .wp-block-heading { font-size: clamp(3rem, 2rem + 4vw, 5rem); }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 1px solid var(--mlily-line); padding: .7rem .9rem; text-align: left; }
.wp-block-table thead th { background: var(--mlily-blue-05); color: var(--mlily-blue); }
.mlily-anchor-nav a { display: inline-block; padding: .45rem .9rem; border: 1px solid var(--mlily-blue-25); border-radius: var(--mlily-radius-sm); text-decoration: none; font-weight: 600; font-size: .875rem; margin: 0 .35rem .5rem 0; background: #fff; }
.mlily-anchor-nav a:hover { background: var(--mlily-blue-10); }

/* Gentle entrance animation for sections (respects reduced motion) */
@media (prefers-reduced-motion: no-preference) {
	.mlily-reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
	.mlily-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Trust grid, contact list, partner cards ---------- */
.mlily-trust__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem 2rem; max-width: var(--wp--style--global--wide-size, 1240px); margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 1000px) { .mlily-trust__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .mlily-trust__grid { grid-template-columns: 1fr; } }
.mlily-trust__item { display: flex; gap: 1rem; align-items: flex-start; }
.mlily-trust__item h3 { font-size: 1rem !important; margin: 0 0 .2rem; color: var(--mlily-blue); }
.mlily-trust__item p { margin: 0; font-size: .875rem; color: var(--mlily-muted); line-height: 1.5; }
.mlily-contact-list { display: grid; gap: 1.25rem; margin: 1.5rem 0; }
.mlily-contact-list p { color: var(--mlily-ink); font-size: .9375rem; }
.mlily-partner__body { padding: 1.5rem 1.75rem 1.75rem; }
.mlily-partner__body h3 { margin-top: 0; }
.mlily-faq-group { margin-bottom: 2.5rem; }

/* Full-width sections sit flush against each other */
.wp-block-post-content > .alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0 !important; }
main > .wp-block-post-content.is-layout-constrained > .alignfull:first-child { margin-top: 0; }
.mlily-stat { white-space: nowrap; }
@media (max-width: 600px) {
	.mlily-topbar .wp-block-group > p:last-child { display: none; }
	.mlily-hero__ring { width: 120vw; right: -60%; top: -20%; }
	.mlily-header .wp-block-navigation { order: 3; }
}
