/*
 * Membership offers drawn by the plugin: the product-page member block, the
 * plan cards and the account panels. Same tokens, type and CTA as the Bricks
 * membership page, so they read as one system.
 */
:root {
 --lo-ink:#091808; --lo-green:#183322; --lo-cream:#fff7e8; --lo-yellow:#fde739;
 --lo-sage:#dce6b0; --lo-sand:#e8e2d6; --lo-line:#e0d9cb; --lo-muted:#5d6358; --lo-leaf:#405630;
}

/* ---- The site CTA: yellow circle with an arrow, growing into a pill ---- */
.lo-arrow-cta {
 position:relative; isolation:isolate; overflow:hidden;
 display:inline-flex; align-items:center; flex:0 0 auto; align-self:flex-start;
 width:max-content; max-width:100%; min-height:56px; margin:0; padding:0 36px 0 72px;
 border-radius:999px; color:var(--cta-label,var(--lo-ink)); text-decoration:none; white-space:nowrap;
 font:700 16px/1.2 'LO Playfair','Playfair Display',serif; cursor:pointer; transition:color 220ms ease;
}
.lo-arrow-cta::before {
 content:''; position:absolute; inset:0 auto 0 0; z-index:-1; width:56px;
 background:var(--lo-yellow); border-radius:999px; transition:width 520ms cubic-bezier(.2,.9,.2,1);
}
.lo-arrow-cta__icon { position:absolute; left:0; top:0; width:56px; height:100%; display:grid; place-items:center; color:var(--lo-ink); }
.lo-arrow-cta__icon svg { width:20px; height:auto; display:block; transform:translateX(1px); transition:opacity 200ms ease,transform 200ms ease; }
.lo-arrow-cta__text { position:relative; transition:transform 200ms ease; }
body.bricks-is-frontend .lo-arrow-cta:is(:hover,:focus-visible) { color:var(--lo-ink); text-decoration:none; }
.lo-arrow-cta:is(:hover,:focus-visible)::before { width:100%; }
.lo-arrow-cta:is(:hover,:focus-visible) .lo-arrow-cta__icon svg { opacity:0; transform:scale(.5); }
.lo-arrow-cta:is(:hover,:focus-visible) .lo-arrow-cta__text { transform:translateX(-18px); }
.lo-arrow-cta:focus-visible { outline:2px solid var(--lo-ink); outline-offset:5px; }
.lo-on-dark .lo-arrow-cta, .lo-arrow-cta.lo-on-dark { --cta-label:var(--lo-cream); }
.lo-on-dark .lo-arrow-cta:focus-visible { outline-color:var(--lo-yellow); }
@media (max-width:420px) { .lo-arrow-cta { white-space:normal; padding-block:10px; text-align:left; } }

/* Shared small print */
.lo-member-offer__kicker, .lo-plan-card__flag, .lo-account-kicker {
 display:inline-flex; align-items:center; gap:10px; margin:0;
 font:500 11px/1.4 'LO Poppins',sans-serif; letter-spacing:.08em; text-transform:uppercase;
}
:is(.lo-member-offer__kicker,.lo-plan-card__flag,.lo-account-kicker)::before {
 content:''; flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--lo-yellow);
}
.lo-link { color:inherit; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; font-weight:500; }
body.bricks-is-frontend .lo-link:is(:hover,:focus-visible) { color:inherit; text-decoration-thickness:2px; }

/* ---- Product page: member price, and the two options on the Ultimate bundle ---- */
.lo-member-offer, .lo-member-options { container-type:inline-size; width:100%; margin-top:8px; font-family:'LO Poppins',sans-serif; color:var(--lo-ink); }
.lo-member-offer__card, .lo-member-option {
 display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0;
 padding:24px; background:#fff; border:1px solid var(--lo-line); border-radius:12px;
}
.lo-member-offer__price { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin:2px 0 0; }
.lo-member-offer__price strong { font:700 30px/1.15 'LO Playfair',serif; letter-spacing:-.01em; }
.lo-member-offer__price del { font-size:14px; color:var(--lo-muted); text-decoration-thickness:1px; }
.lo-member-offer__price span { font-size:15px; margin-left:-4px; }
.lo-member-offer__copy { margin:0; font-size:14px; line-height:1.65; }
.lo-member-offer__card .lo-arrow-cta, .lo-member-option .lo-arrow-cta { margin-top:10px; }
.lo-member-option .lo-link { margin-top:6px; font-size:14px; }
@container (min-width:560px) {
 .lo-member-offer__card { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:32px; row-gap:8px; }
 .lo-member-offer__card > :not(.lo-arrow-cta) { grid-column:1; }
 .lo-member-offer__card > .lo-arrow-cta { grid-column:2; grid-row:1 / span 3; align-self:center; margin:0; }
}
.lo-member-options__grid { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
@container (min-width:600px) { .lo-member-options__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.lo-member-option--ultimate { background:var(--lo-green); border-color:var(--lo-green); color:var(--lo-cream); --cta-label:var(--lo-cream); }
.lo-member-option--ultimate .lo-member-offer__copy { color:#dce2d5; }
.lo-member-option--ultimate .lo-arrow-cta:focus-visible { outline-color:var(--lo-yellow); }
.lo-member-option__title { margin:0; font:700 24px/1.2 'LO Playfair',serif; }

/* ---- Plan cards ---- */
.lo-plan-grid {
 display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:16px;
 width:100%; font-family:'LO Poppins',sans-serif;
}
.lo-plan-card {
 display:flex; flex-direction:column; align-items:flex-start; gap:16px; min-width:0;
 padding:28px; border-radius:12px; border:1px solid transparent;
}
.lo-plan-card__name { margin:0; font:700 26px/1.2 'LO Playfair',serif; }
.lo-plan-card__price { margin:-6px 0 0; font:700 34px/1.2 'LO Playfair',serif; }
.lo-plan-card__period { font:400 15px/1 'LO Poppins',sans-serif; }
.lo-plan-card__features { display:grid; gap:10px; width:100%; margin:4px 0 0; padding:18px 0 0; list-style:none; border-top:1px solid currentColor; border-top-color:color-mix(in srgb,currentColor 18%,transparent); }
.lo-plan-card__features li { display:grid; grid-template-columns:20px minmax(0,1fr); gap:10px; margin:0; font-size:14px; line-height:1.55; }
.lo-plan-card__features svg { margin-top:1px; }
.lo-plan-card__action { display:flex; flex-direction:column; align-items:flex-start; gap:12px; margin-top:auto; padding-top:8px; }
.lo-plan-card__note { margin:0; font-size:12px; line-height:1.55; opacity:.78; }
.lo-plan-card__manage { font-size:15px; }
/* On cream: a white card, and Ultimate in the membership green. */
.lo-plan-grid--light .lo-plan-card { background:#fff; border-color:var(--lo-line); color:var(--lo-ink); }
.lo-plan-grid--light .lo-plan-card__features svg { color:var(--lo-leaf); }
.lo-plan-grid--light .lo-plan-card.is-featured { background:var(--lo-green); border-color:var(--lo-green); color:var(--lo-cream); --cta-label:var(--lo-cream); }
.lo-plan-grid--light .lo-plan-card.is-featured .lo-plan-card__features svg { color:var(--lo-yellow); }
/* On the green: an outlined card, and Ultimate in cream. */
.lo-plan-grid--dark .lo-plan-card { background:transparent; border-color:#dce6b040; color:var(--lo-cream); --cta-label:var(--lo-cream); }
.lo-plan-grid--dark .lo-plan-card__features svg { color:var(--lo-yellow); }
.lo-plan-grid--dark .lo-plan-card.is-featured { background:var(--lo-cream); border-color:var(--lo-cream); color:var(--lo-ink); --cta-label:var(--lo-ink); }
.lo-plan-grid--dark .lo-plan-card.is-featured .lo-plan-card__features svg { color:var(--lo-leaf); }
.lo-plan-card.is-current { box-shadow:inset 0 0 0 2px var(--lo-yellow); }
:is(.lo-plan-grid--dark .lo-plan-card:not(.is-featured),.lo-plan-grid--light .lo-plan-card.is-featured) .lo-arrow-cta:focus-visible { outline-color:var(--lo-yellow); }

/* ---- Account: membership card, Ultimate upgrade, join ---- */
.lo-account-member, .lo-account-join, .lo-change-plan { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; width:100%; min-width:0; box-sizing:border-box; margin:28px 0 32px; font-family:'LO Poppins',sans-serif; color:var(--lo-ink); }
.lo-account-member h2, .lo-account-join h2, .lo-change-plan h2, .lo-account-upgrade h3 { margin:0; font:700 clamp(30px,3.2vw,44px)/1.1 'LO Playfair',serif; letter-spacing:-.02em; }
:is(.lo-account-join,.lo-account-upgrade,.lo-change-plan) :is(h2,h3) em { color:var(--lo-leaf); }
.lo-account-member__card {
 display:grid; grid-template-columns:minmax(0,1fr); gap:28px; min-width:0; padding:clamp(24px,3vw,40px); border-radius:12px;
 background:var(--lo-green); color:var(--lo-cream); --cta-label:var(--lo-cream);
}
.lo-account-member__head { display:grid; gap:12px; }
.lo-account-member__status { margin:0; color:#dce2d5; font-size:15px; line-height:1.6; }
.lo-account-member__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; border-block:1px solid #dce6b033; }
.lo-account-member__stats > div { display:grid; gap:4px; padding:18px 16px 18px 0; }
.lo-account-member__stats > div + div { padding-left:20px; border-left:1px solid #dce6b033; }
.lo-account-member__stats dt { font-size:12px; line-height:1.4; color:var(--lo-sage); }
.lo-account-member__stats dd { margin:0; font:700 26px/1.2 'LO Playfair',serif; }
.lo-account-member__label { margin:0 0 12px; font-size:13px; color:var(--lo-sage); }
.lo-box-list { display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none; }
.lo-box-list li { display:inline-flex; align-items:center; gap:10px; margin:0; padding:5px 16px 5px 5px; border-radius:999px; background:#ffffff14; font-size:14px; line-height:1.3; }
.lo-box-list__image { flex:0 0 36px; width:36px; height:36px; border-radius:50%; overflow:hidden; background:var(--lo-sand); }
.lo-box-list__image img { width:100%; height:100%; object-fit:cover; display:block; margin:0; }
.lo-account-member__actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 28px; }
.lo-account-member__actions .lo-link { color:var(--lo-cream); }
.lo-account-member__card .lo-arrow-cta:focus-visible { outline-color:var(--lo-yellow); }

.lo-account-upgrade {
 display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:28px 40px; align-items:center;
 padding:clamp(24px,3vw,40px); border-radius:12px; background:var(--lo-sand);
}
.lo-account-upgrade__copy { display:grid; gap:14px; }
.lo-account-upgrade__copy > p:not(.lo-account-kicker) { margin:0; font-size:15px; line-height:1.65; }
.lo-account-upgrade__action { display:grid; gap:12px; justify-items:start; margin-top:6px; }
.lo-box-list--extras li { background:var(--lo-cream); }

.lo-account-join__intro, .lo-change-plan > p:not(.lo-account-kicker) { margin:0 0 8px; font-size:15px; line-height:1.65; }
.lo-change-plan { margin-top:48px; scroll-margin-top:140px; }

@media (max-width:1100px) { .lo-account-upgrade { grid-template-columns:minmax(0,1fr); } }
@media (max-width:640px) {
 .lo-account-member__stats > div { padding:14px 8px 14px 0; }
 .lo-account-member__stats > div + div { padding-left:12px; }
 .lo-account-member__stats dt { font-size:11px; }
 .lo-account-member__stats dd { font-size:20px; }
 .lo-plan-card { padding:24px; }
 .lo-member-offer__card, .lo-member-option { padding:20px; }
}
@media (prefers-reduced-motion:reduce) {
 .lo-arrow-cta, .lo-arrow-cta::before, .lo-arrow-cta__icon svg, .lo-arrow-cta__text { transition:none; }
}

/* ---- Buy once or every month (Subscriptions product plan) ---- */
.lo-purchase-options { min-width:0; margin:0 0 20px; padding:0; border:0; font-family:'LO Poppins',sans-serif; color:var(--lo-ink); }
.lo-purchase-options__legend { display:flex; align-items:center; gap:10px; margin:0 0 12px; padding:0; font:500 11px/1.4 'LO Poppins',sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.lo-purchase-options__legend::before { content:''; flex:0 0 8px; width:8px; height:8px; border-radius:50%; background:var(--lo-yellow); }
.lo-purchase-options__list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.lo-purchase-options__list > li { margin:0; padding:0; list-style:none; }
.lo-purchase-options .lo-purchase-option {
 display:grid; grid-template-columns:20px minmax(0,1fr); align-items:center; gap:6px 12px; height:100%; margin:0; color:var(--lo-ink); font-size:14px;
 padding:16px 18px; border:1px solid var(--lo-line); border-radius:12px; background:#fff; cursor:pointer;
 transition:border-color 160ms ease,box-shadow 160ms ease;
}
.lo-purchase-option:hover { border-color:#b8b09e; }
.lo-purchase-option:has(input:checked) { border-color:var(--lo-ink); box-shadow:inset 0 0 0 1px var(--lo-ink); }
body.bricks-is-frontend .lo-purchase-option input[type=radio] {
 appearance:none; -webkit-appearance:none; display:grid; place-items:center; box-sizing:border-box;
 width:20px; min-width:20px; max-width:20px; height:20px; min-height:20px; padding:0; margin:0; aspect-ratio:1;
 border:1.5px solid var(--lo-ink); border-radius:50%; background:#fff; cursor:pointer;
}
.lo-purchase-option input[type=radio]::after { content:''; width:10px; height:10px; border-radius:50%; background:var(--lo-ink); transform:scale(0); transition:transform 160ms ease; }
.lo-purchase-option input[type=radio]:checked::after { transform:scale(1); }
.lo-purchase-option input[type=radio]:focus-visible { outline:2px solid var(--lo-ink); outline-offset:3px; }
.lo-purchase-option__name { font:700 18px/1.2 'LO Playfair',serif; }
.lo-purchase-option__price { grid-column:2; font:700 24px/1.15 'LO Playfair',serif; white-space:nowrap; }
.lo-purchase-option__price small { font:400 13px/1 'LO Poppins',sans-serif; }
.single-product .brxe-product-price .wcsatt-sub-options { display:none; }
.lo-purchase-option__note { grid-column:2; font-size:12.5px; line-height:1.5; color:var(--lo-muted); }
@media (max-width:560px) { .lo-purchase-options__list { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .lo-purchase-option, .lo-purchase-option input[type=radio]::after { transition:none; } }

/* ---- The wide Ultimate card on the bundle page ---- */
.lo-member-option--wide { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.lo-member-option__body { display:grid; gap:10px; min-width:0; }
.lo-member-option__buy { display:grid; justify-items:start; gap:14px; }
.lo-member-option__buy .lo-arrow-cta { margin:0; }
.lo-member-options__note { margin:10px 0 0; font-size:13px; line-height:1.5; color:var(--lo-muted); }
@container (min-width:600px) {
 .lo-member-option--wide { grid-template-columns:minmax(0,1fr) auto; align-items:end; column-gap:40px; padding:28px; }
 .lo-member-option--wide .lo-member-option__buy { justify-items:end; text-align:right; }
 .lo-member-option--wide .lo-member-offer__price { justify-content:flex-end; }
}

/* ---- My account > Your reviews ---- */
.lo-reviews-area { display:grid; gap:20px; min-width:0; font-family:'LO Poppins',sans-serif; color:var(--lo-ink); }
.lo-reviews-head { display:grid; gap:12px; padding-bottom:24px; border-bottom:1px solid var(--lo-line); }
.lo-reviews-head h2 { margin:0; font:700 clamp(30px,3.2vw,44px)/1.1 'LO Playfair',serif; letter-spacing:-.02em; }
.lo-reviews-head h2 em { color:var(--lo-leaf); }
.lo-reviews-head__intro { margin:0; font-size:15px; line-height:1.65; }
.lo-reviews-head__stats { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 0; padding:0; list-style:none; }
.lo-reviews-head__stats li { margin:0; padding:6px 14px; border-radius:999px; background:#fff; border:1px solid var(--lo-line); font-size:13px; }
.lo-reviews-head__stats strong { font:700 15px/1 'LO Playfair',serif; margin-right:4px; }
.lo-reviews-subhead { margin:12px 0 0; font:700 22px/1.2 'LO Playfair',serif; }
.lo-reviews-empty { margin:0; padding:28px; border-radius:12px; background:#fff; border:1px solid var(--lo-line); }
.lo-review-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:12px; align-items:stretch; }

/* A product waiting for a review: a card that opens into the form, full width. */
.lo-review-form { min-width:0; border:1px solid var(--lo-line); border-radius:12px; background:#fff; transition:border-color 160ms ease,box-shadow 160ms ease; }
.lo-review-form:hover { border-color:#c9c1ae; }
.lo-review-form[open] { grid-column:1 / -1; border-color:var(--lo-ink); box-shadow:0 10px 30px #0918080f; }
.lo-review-form__summary { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:4px 14px; padding:12px; cursor:pointer; list-style:none; border-radius:12px; }
.lo-review-form__summary::-webkit-details-marker { display:none; }
.lo-review-form__summary:focus-visible { outline:2px solid var(--lo-ink); outline-offset:3px; }
.lo-review-form__image { grid-row:1 / span 2; display:block; width:64px; height:64px; border-radius:8px; overflow:hidden; background:var(--lo-sand); }
.lo-review-form__image img { width:100%; height:100%; object-fit:cover; display:block; margin:0; }
.lo-review-form__text { display:grid; gap:4px; min-width:0; }
.lo-review-form__name { font:700 16px/1.25 'LO Playfair',serif; overflow-wrap:anywhere; }
.lo-review-form__date { font-size:12px; color:var(--lo-muted); }
.lo-review-form__cta {
 grid-column:2; justify-self:start; display:inline-flex; align-items:center; min-height:34px; padding:0 14px; border-radius:999px;
 background:var(--lo-yellow); font:600 13px/1 'LO Poppins',sans-serif; transition:background-color 160ms ease;
}
.lo-review-form__summary:hover .lo-review-form__cta { background:#f3d91c; }
.lo-review-form__cta-close, .lo-review-form[open] .lo-review-form__cta-open { display:none; }
.lo-review-form[open] .lo-review-form__cta-close { display:inline; }
.lo-review-form[open] .lo-review-form__cta { background:transparent; border:1px solid var(--lo-line); }
.lo-review-form[open] .lo-review-form__summary { grid-template-columns:72px minmax(0,1fr) auto; gap:16px; padding:16px 20px; border-bottom:1px solid var(--lo-line); border-radius:12px 12px 0 0; }
.lo-review-form[open] .lo-review-form__image { grid-row:auto; width:72px; height:72px; }
.lo-review-form[open] .lo-review-form__cta { grid-column:3; }
.lo-review-form[open] .lo-review-form__name { font-size:20px; }
.lo-review-form__form { display:grid; gap:20px; padding:22px 20px 24px; }
.lo-review-form__rating { margin:0; padding:0; border:0; min-width:0; }
.lo-review-form__rating legend { margin-bottom:8px; padding:0; font-size:13px; font-weight:600; }
.lo-star-input { display:inline-flex; flex-direction:row-reverse; gap:4px; }
.lo-star-input input { position:absolute; opacity:0; width:1px; height:1px; }
body.bricks-is-frontend .lo-star-input label { display:grid; place-items:center; width:44px; height:44px; margin:0; border-radius:8px; font:400 32px/1 Arial,sans-serif; color:#d7ddce; cursor:pointer; transition:color 120ms ease,transform 120ms ease; }
body.bricks-is-frontend .lo-star-input label:hover, body.bricks-is-frontend .lo-star-input label:hover ~ label, body.bricks-is-frontend .lo-star-input input:checked ~ label { color:#e5b900; }
.lo-star-input label:hover { transform:scale(1.08); }
.lo-star-input input:focus-visible + label { outline:2px solid var(--lo-ink); outline-offset:1px; }
.lo-review-form__field { display:grid; gap:8px; margin:0; font-size:13px; font-weight:600; }
body.bricks-is-frontend .lo-review-form textarea {
 width:100%; min-height:130px; padding:14px 16px; border:1px solid #c9c1ae; border-radius:8px; background:var(--lo-cream);
 font:400 15px/1.6 'LO Poppins',sans-serif; color:var(--lo-ink); resize:vertical;
}
.lo-review-form textarea:focus { outline:2px solid var(--lo-ink); outline-offset:1px; border-color:var(--lo-ink); }
.lo-review-form__hint { margin:0; font-size:12.5px; line-height:1.55; color:var(--lo-muted); }
.lo-review-form__form .lo-button { justify-self:start; }

/* Reviews already written. */
.lo-review-card { display:grid; gap:12px; align-content:start; min-width:0; padding:18px; border:1px solid var(--lo-line); border-radius:12px; background:#fff; }
.lo-review-card__head { display:grid; grid-template-columns:48px minmax(0,1fr); gap:12px; align-items:center; }
.lo-review-card__image { display:block; width:48px; height:48px; border-radius:8px; overflow:hidden; background:var(--lo-sand); }
.lo-review-card__image img { width:100%; height:100%; object-fit:cover; display:block; margin:0; }
.lo-review-card__name { display:block; font:700 16px/1.25 'LO Playfair',serif; color:inherit; text-decoration:none; }
.lo-review-card__name:hover { text-decoration:underline; text-underline-offset:3px; }
.lo-review-card__status { display:inline-block; margin-top:4px; padding:2px 10px; border-radius:999px; font-size:11px; font-weight:600; }
.lo-review-card__status.is-published { background:#e3ecd6; color:var(--lo-leaf); }
.lo-review-card__status.is-pending { background:#fff4b8; color:#6b5a00; }
.lo-review-card .lo-stars { color:#e5b900; letter-spacing:2px; }
.lo-review-card__text { margin:0; font-size:14px; line-height:1.65; }
.lo-review-card__date { font-size:12px; color:var(--lo-muted); }
@media (max-width:640px) {
 .lo-review-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
 .lo-review-form[open] .lo-review-form__summary { grid-template-columns:56px minmax(0,1fr); padding:14px; }
 .lo-review-form[open] .lo-review-form__image { width:56px; height:56px; }
 .lo-review-form[open] .lo-review-form__cta { grid-column:2; }
 body.bricks-is-frontend .lo-star-input label { width:40px; height:40px; font-size:30px; }
}
@media (prefers-reduced-motion:reduce) { .lo-review-form, .lo-star-input label, .lo-review-form__cta { transition:none; } }
