/* Linden & Spring — site-wide components: header, search, mobile nav, footer, product card. */

/* Wordmark */
.ms-wordmark { font-family: var(--font-display); font-weight: 600; font-size: 27px; letter-spacing: -.025em; line-height: 1; white-space: nowrap; color: var(--color-ink); }
.ms-wordmark__amp { font-weight: 400; color: var(--color-maple); margin: 0 .1em; }
.ms-wordmark--dark { font-size: 28px; color: var(--color-on-dark); }
.ms-wordmark--dark .ms-wordmark__amp { color: var(--color-maple-light); }

/* Header */
.ms-header { position: relative; z-index: 50; background: var(--color-stone); border-bottom: 1px solid var(--color-line); }
.ms-ann { background: var(--color-pine); color: var(--color-on-dark); font-size: 13px; font-weight: 500; letter-spacing: .01em; }
.ms-ann__inner { display: flex; justify-content: space-between; align-items: center; gap: 6px 24px; padding-top: 9px; padding-bottom: 9px; }
.ms-ann__inner span, .ms-ann__inner a { white-space: nowrap; }
.ms-ann__inner a { color: var(--color-on-dark); }
.ms-ann__rest { display: flex; gap: 24px; }
.ms-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 32px; min-height: 72px; padding-top: 10px; padding-bottom: 10px; }
.ms-header__brand, .ms-header__icons { display: flex; align-items: center; gap: 2px; }
.ms-logo { display: flex; align-items: baseline; text-decoration: none; color: var(--color-ink); }
.ms-logo__img { display: block; height: 28px; width: auto; }
.ms-icon-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: var(--color-ink); text-decoration: none; }
.ms-header__menu { display: none; margin-left: -10px; }
.ms-header__cart { margin-right: -10px; }
.ms-cart-count { position: absolute; top: 5px; right: 3px; display: flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--color-pine); color: #fff; font-size: 11px; font-weight: 700; line-height: 1; }
.ms-nav { display: flex; flex: 1 1 auto; flex-wrap: wrap; justify-content: center; gap: 4px 26px; font-size: 15px; font-weight: 500; }
.ms-nav__link { padding: 10px 0; color: var(--color-ink); text-decoration: none; }
.ms-nav__link.is-accent { color: var(--color-pine); }
.ms-nav__link[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px; }
@media (max-width: 1240px) { .ms-nav-x { display: none !important; } }
@media (max-width: 1100px) { .ms-ann-x { display: none !important; } }
@media (max-width: 1080px) { .ms-nav { gap: 4px 16px; font-size: 14px; } }
@media (max-width: 1000px) { .ms-nav-x2 { display: none !important; } }
@media (max-width: 900px) {
	.ms-nav, .ms-header__account, .ms-ann__rest { display: none !important; }
	.ms-header__menu { display: inline-flex; }
	.ms-header__bar { column-gap: 8px; }
}
@media (max-width: 360px) {
	.ms-header .ms-wordmark { font-size: 24px; }
	.ms-ann__inner span, .ms-ann__inner a { white-space: normal; }
}

/* Search panel */
.ms-search { border-top: 1px solid var(--color-line); background: #fff; }
.ms-search__inner { display: flex; flex-direction: column; gap: 14px; padding-top: 20px; padding-bottom: 24px; }
.ms-search__form { display: flex; align-items: center; gap: 10px; height: 56px; padding: 0 4px 0 18px; border: 1px solid var(--color-ink); border-radius: 28px; }
.ms-search__form:focus-within { outline: 2px solid var(--color-pine); outline-offset: 3px; }
.ms-search__form input[type=search] { flex: 1; min-width: 0; height: 100%; border: 0; outline: none; font-size: 17px; background: transparent; color: var(--color-ink); }
.ms-search__form input[type=search]:focus-visible { outline: none; box-shadow: none; }
.ms-search__form input[type=search]::-webkit-search-cancel-button { -webkit-appearance: none; }
.ms-search__popular { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; }
.ms-search__popular .ms-muted { margin-right: 4px; }
.ms-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--color-field-line); border-radius: 18px; text-decoration: none; font-weight: 500; }
@media (pointer: coarse) { .ms-chip { min-height: 44px; } }

/* Mobile nav */
.ms-mobile-nav { border-top: 1px solid var(--color-line); background: var(--color-stone); }
.ms-mobile-nav__inner { display: flex; flex-direction: column; padding-top: 4px; padding-bottom: 24px; }
.ms-mobile-nav__link { display: flex; align-items: center; justify-content: space-between; min-height: 56px; border-bottom: 1px solid var(--color-line); text-decoration: none; font-family: var(--font-display); font-weight: 500; font-size: 22px; letter-spacing: -.01em; color: var(--color-ink); }
.ms-mobile-nav__link.is-accent { color: var(--color-pine); }
.ms-mobile-nav__more { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; padding-top: 16px; font-size: 15px; font-weight: 500; }
.ms-mobile-nav__more a { padding: 10px 0; text-decoration: none; }
.ms-mobile-nav__note { margin-top: 12px; padding: 14px 16px; background: var(--color-linen); border-radius: var(--radius-tile); font-size: 14px; line-height: 1.5; }
@media (min-width: 901px) { .ms-mobile-nav { display: none !important; } }

/* Footer */
.ms-footer { background: var(--color-forest); color: var(--color-on-dark); }
.ms-footer a:focus-visible, .ms-footer button:focus-visible, .ms-footer input:focus-visible { outline: 2px solid var(--color-on-dark); outline-offset: 2px; box-shadow: none; }
.ms-footer__nl { border-bottom: 1px solid var(--color-footer-line); }
.ms-footer__nl-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 32px 64px; padding-top: 56px; padding-bottom: 56px; }
.ms-footer__nl-copy { display: flex; flex-direction: column; gap: 12px; flex: 1 1 420px; max-width: 600px; }
.ms-footer__nl-title { font-size: 36px; line-height: 1.1; letter-spacing: -.02em; }
.ms-footer__nl-text { font-size: 16px; line-height: 1.55; color: var(--color-footer-muted); }
.ms-footer__nl-text a, .ms-footer__nl-consent a { color: var(--color-on-dark); }
.ms-footer__nl-form { display: flex; flex-direction: column; gap: 10px; flex: 1 1 380px; max-width: 520px; }
.ms-footer__nl-label { font-size: 13px; font-weight: 600; color: var(--color-footer-muted); }
.ms-footer__nl-row { display: flex; flex-wrap: wrap; gap: 8px; }
.ms-footer__nl-row input { flex: 1 1 220px; min-width: 0; height: 52px; padding: 0 20px; border: 1px solid var(--color-footer-head); border-radius: var(--radius-field); background: var(--color-footer-field); color: var(--color-on-dark); font-size: 16px; }
.ms-footer__nl-row input::placeholder { color: var(--color-footer-muted); }
.ms-footer__nl-row input[aria-invalid="true"] { border-color: #F2B8AC; box-shadow: 0 0 0 1px #F2B8AC; }
.ms-footer__nl-msg { font-size: 14px; font-weight: 600; }
.ms-footer__nl-msg:empty { display: none; }
.ms-footer__nl-consent { font-size: 12px; line-height: 1.5; color: var(--color-footer-muted); }
.ms-footer__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 40px; padding-top: 56px; padding-bottom: 40px; }
.ms-footer__brand { display: flex; flex-direction: column; gap: 16px; }
.ms-footer__logo { text-decoration: none; }
.ms-footer__blurb { font-size: 15px; line-height: 1.55; color: var(--color-footer-muted); }
.ms-footer__social { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 14px; font-weight: 600; }
.ms-footer__social a { color: var(--color-on-dark); }
.ms-footer__col { display: flex; flex-direction: column; gap: 12px; font-size: 15px; }
.ms-footer__head { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--color-footer-head); }
.ms-footer__links { display: flex; flex-direction: column; gap: 12px; }
.ms-footer__links a { color: var(--color-on-dark); text-decoration: none; }
.ms-footer__links a:hover { text-decoration: underline; }
.ms-footer__toggle { display: none; }
.ms-footer__contact { display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.5; }
.ms-footer__contact a { color: var(--color-on-dark); }
.ms-footer__muted { color: var(--color-footer-muted); }
.ms-footer__bottom { border-top: 1px solid var(--color-footer-line); }
.ms-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding-top: 20px; padding-bottom: 20px; font-size: 13px; color: var(--color-footer-muted); }
.ms-footer__marks { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; }
.ms-footer__marks li { padding: 4px 8px; border: 1px solid #4A5850; border-radius: 4px; font-size: 11px; font-weight: 700; letter-spacing: .04em; color: #D7DDD8; }
.ms-footer__legal { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.ms-footer__legal a { color: var(--color-footer-muted); }
.ms-footer__choices { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 640px) {
	.ms-footer__grid { gap: 0; }
	.ms-footer__brand { margin: 0 0 28px; }
	.ms-footer__contact { margin: 28px 0 0; }
	.ms-footer__col .ms-footer__head { display: none; }
	.ms-footer__col { gap: 0; }
	.ms-footer__toggle { display: flex; width: 100%; justify-content: space-between; align-items: center; min-height: 52px; padding: 0; border: 0; border-bottom: 1px solid var(--color-footer-line); background: transparent; color: var(--color-on-dark); font-size: 15px; font-weight: 700; }
	.ms-footer__toggle-sign { font-size: 20px; font-weight: 400; }
	.ms-footer__links { display: none; }
	.ms-footer__links.is-open { display: flex; gap: 0; padding: 8px 0 16px; }
	.ms-footer__links a { padding: 10px 0; }
	.ms-footer__legal a { display: inline-flex; align-items: center; min-height: 32px; }
}

/* Product card */
.ms-card { display: flex; flex-direction: column; gap: 14px; width: 100%; min-width: 0; color: var(--color-ink); }
.ms-card__media { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--color-linen); border-radius: var(--radius-tile); overflow: hidden; text-decoration: none; }
.ms-card__media img { display: block; width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; padding: 7%; }
.ms-card__badge { position: absolute; top: 12px; left: 12px; }
.ms-card__body { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ms-card__cat { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-maple); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-card__title { display: -webkit-box; min-height: 2.5em; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-family: var(--font-display); font-size: 19px; font-weight: 500; letter-spacing: -.01em; line-height: 1.25; color: var(--color-ink); text-decoration: none; }
.ms-card__title:hover { text-decoration: underline; opacity: 1; }
.ms-card__desc { font-size: 14px; color: var(--color-taupe); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-card__rating { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--color-taupe); white-space: nowrap; }
.ms-card__rating .ms-star { color: var(--color-ink); }
.ms-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; margin-top: 4px; }
.ms-price { font-size: 18px; font-weight: 700; }
.ms-price--sale { color: var(--color-clay); }
.ms-price-was { font-size: 14px; color: var(--color-taupe); }
@media (max-width: 640px) { .ms-card__cat { white-space: normal; line-height: 1.3; } }

/* Breadcrumbs */
.ms-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--color-taupe); }
.ms-crumbs a { color: var(--color-taupe); }
.ms-crumbs [aria-current="page"] { color: var(--color-ink); font-weight: 600; }

/* Journal card */
.ms-post-card { display: flex; flex-direction: column; gap: 14px; color: var(--color-ink); text-decoration: none; }
.ms-post-card:hover { opacity: 1; }
.ms-post-card:hover .ms-post-card__title { text-decoration: underline; }
.ms-post-card__img { display: block; aspect-ratio: 3 / 2; border-radius: var(--radius-tile); overflow: hidden; background: var(--color-sand); }
.ms-post-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ms-post-card__img.is-shot { background: var(--color-linen); }
.ms-post-card__img.is-shot img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
.ms-post-card__topic { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--color-maple); }
.ms-post-card__title { font-family: var(--font-display); font-weight: 500; font-size: 23px; letter-spacing: -.015em; line-height: 1.25; }
.ms-post-card__meta { font-size: 14px; color: var(--color-taupe); }

/* Disclosure (FAQ accordions, filter groups) */
details > summary { list-style: none; cursor: pointer; }
details > summary::-webkit-details-marker { display: none; }
.ms-ic::before { content: "+"; font-weight: 400; font-size: 20px; line-height: 1; }
details[open] > summary .ms-ic::before { content: "\2212"; }
.ms-faq { display: flex; flex-direction: column; }
.ms-faq__item { border-bottom: 1px solid #CFC8BD; padding: 20px 0; }
.ms-faq__item summary { display: flex; justify-content: space-between; gap: 12px; font-size: 17px; font-weight: 700; }
.ms-faq__item p { margin-top: 12px; font-size: 15px; line-height: 1.6; color: var(--color-body); }

/* Text button */
.ms-linkbtn { padding: 10px 0; border: 0; background: transparent; color: var(--color-ink); font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* Tables: data-label cells stack into cards at ≤600 (SPEC §4) */
.ms-table-wrap { overflow-x: auto; background: #fff; border-radius: 12px; }
.ms-rtable { width: 100%; min-width: 480px; font-size: 14px; text-align: left; }
.ms-rtable th, .ms-rtable td { padding: 14px 16px; vertical-align: top; }
.ms-rtable thead tr { border-bottom: 1px solid var(--color-line); }
.ms-rtable thead th { font-weight: 700; }
.ms-rtable tbody tr + tr { border-top: 1px solid var(--color-line-soft); }
.ms-rtable tbody th { font-weight: 600; }
@media (max-width: 600px) {
	.ms-rtable { min-width: 0; }
	.ms-rtable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.ms-rtable tr { display: block; padding: 12px 16px; }
	.ms-rtable th, .ms-rtable td { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 5px 0; text-align: right; }
	.ms-rtable tr > :first-child { justify-content: flex-start; text-align: left; font-size: 16px; font-weight: 700; }
	.ms-rtable td::before { content: attr(data-label); flex: none; max-width: 45%; text-align: left; font-weight: 600; color: var(--color-taupe); }
}

/* Generic page shell (pages without a designed template) */
.ms-page-hero { padding-top: 56px; padding-bottom: 32px; }
.ms-prose { max-width: 720px; font-size: 17px; line-height: 1.7; color: var(--color-body); }
.ms-prose > * + * { margin-top: 1em; }
.ms-prose h2 { margin-top: 1.6em; font-size: 32px; line-height: 1.15; color: var(--color-ink); }
.ms-prose h3 { margin-top: 1.4em; font-size: 24px; color: var(--color-ink); }
.ms-prose ul, .ms-prose ol { padding-left: 1.2em; }
.ms-prose a:not(.ms-btn) { color: var(--color-ink); }

/* Order tracker (Order confirmed, My account, order tracking) */
.ms-tracker { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; list-style: none; }
.ms-tracker__step { display: flex; flex-direction: column; gap: 8px; }
.ms-tracker__dot { height: 4px; border-radius: 2px; background: var(--color-line); }
.ms-tracker__step.is-done .ms-tracker__dot, .ms-tracker__step.is-current .ms-tracker__dot { background: var(--color-success); }
.ms-tracker__step strong { font-size: 15px; }
.ms-tracker__step.is-todo strong { color: var(--color-taupe); }
.ms-tracker__sub { font-size: 13px; color: var(--color-taupe); }
@media (max-width: 560px) { .ms-tracker { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; } }

/* Minimal checkout chrome */
.ms-header--min .ms-header__bar { min-height: 64px; }
.ms-header__secure { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--color-taupe); }
.ms-footer-min { border-top: 1px solid var(--color-line); }
.ms-footer-min__inner { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-top: 24px; padding-bottom: 32px; font-size: 13px; }
.ms-footer-min__inner a { color: var(--color-taupe); }

/* Generic narrow content column */
.ms-narrow { max-width: 760px; }
.ms-gap-14 { gap: 14px; }

/* Shared buy components (product page + cart): option fieldsets, delivery radios, quantity stepper, sticky bar */
.ms-opts { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ms-opts legend { margin-bottom: 12px; padding: 0; font-size: 15px; font-weight: 700; }
.ms-opts__current { font-weight: 500; }
.ms-deliv { display: flex; flex-direction: column; border: 1px solid #CFC8BD; border-radius: 12px; overflow: hidden; background: #fff; }
.ms-deliv__opt { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--color-line-soft); cursor: pointer; }
.ms-deliv__opt:last-child { border-bottom: 0; }
.ms-deliv__opt input { width: 20px; height: 20px; margin: 0; flex: 0 0 auto; accent-color: var(--color-pine); }
.ms-deliv__opt.is-unavailable { opacity: .55; cursor: not-allowed; }
.ms-deliv__text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 0; min-width: 0; }
.ms-deliv__name { font-size: 15px; font-weight: 600; }
.ms-deliv__desc { font-size: 13px; color: var(--color-taupe); }
.ms-deliv__opt strong { font-size: 15px; white-space: nowrap; }

.ms-qty { display: flex; align-items: center; height: 56px; border: 1px solid var(--color-ink); border-radius: 28px; background: #fff; }
.ms-qty button { display: flex; align-items: center; justify-content: center; width: 48px; height: 100%; padding: 0; border: 0; background: transparent; color: var(--color-ink); border-radius: 28px; }
.ms-qty input { width: 36px; padding: 0; border: 0; background: transparent; text-align: center; font-size: 17px; font-weight: 700; -moz-appearance: textfield; }
.ms-qty input::-webkit-outer-spin-button, .ms-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* Mobile sticky add-to-cart */
.ms-sticky { display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; align-items: center; gap: 12px; padding: 10px 16px; background: #fff; border-top: 1px solid var(--color-line); box-shadow: 0 -4px 16px rgba(30, 28, 25, .08); transition: transform .2s ease; }
.ms-sticky[data-hidden="1"] { transform: translateY(110%); }
.ms-sticky__text { display: flex; flex-direction: column; flex: 1 1 0; min-width: 0; }
.ms-sticky__variant { font-size: 13px; color: var(--color-taupe); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ms-sticky__variant:empty { display: none; }
.ms-sticky__text strong { font-size: 18px; }
.ms-sticky__btn.ms-btn { min-height: 48px; padding: 0 22px; }
@media (max-width: 900px) { .ms-sticky { display: flex; } }
@media (prefers-reduced-motion: reduce) { .ms-sticky { transition: none; } }

/* Order summary rows (cart, order confirmed, account order detail) */
.ms-sum__title { font-size: 28px; letter-spacing: -.02em; }
.ms-sum__rows { display: flex; flex-direction: column; gap: 12px; font-size: 16px; }
.ms-sum__row { display: flex; justify-content: space-between; gap: 12px; }
.ms-sum__row > span:last-child { text-align: right; }
.ms-sum__row--discount a { margin-right: auto; margin-left: 8px; font-size: 14px; }
.ms-fw-600 { font-weight: 600; }
.ms-nowrap { white-space: nowrap; }
.ms-sum__coupon { display: flex; flex-direction: column; gap: 8px; }
.ms-sum__coupon .ms-label { margin: 0; }
.ms-sum__coupon-row { display: flex; gap: 8px; }
.ms-sum__coupon-row .ms-input { flex: 1 1 0; min-width: 0; min-height: 48px; height: 48px; padding: 0 16px; font-size: 15px; }
.ms-sum__coupon-row .ms-btn { min-height: 48px; padding: 0 20px; font-size: 15px; }
.ms-sum__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 16px; border-top: 1px solid var(--color-line); font-size: 18px; font-weight: 700; }
.ms-sum__amount { font-size: 30px; }
.ms-sum__fin { margin-top: -8px; font-size: 14px; color: var(--color-body); }
.ms-sum__fin .ms-affirm { font-size: 14px; }
.ms-sum__divider { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--color-taupe); }
.ms-sum__divider::before, .ms-sum__divider::after { content: ""; flex: 1; height: 1px; background: var(--color-line); }
.ms-sum__trust { padding-top: 16px; border-top: 1px solid var(--color-line); gap: 10px; color: var(--color-body); }

/* Accordion (FAQ: product, studio, help center) */
.ms-acc { display: flex; flex-direction: column; }
.ms-acc__item { border-bottom: 1px solid #CFC8BD; }
.ms-acc__h { margin: 0; font-family: var(--font-body); }
.ms-acc__btn { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; border: 0; background: transparent; color: var(--color-ink); text-align: left; font-size: 18px; font-weight: 600; }
.ms-acc__sign::before { content: "+"; font-size: 24px; font-weight: 400; }
.ms-acc__btn[aria-expanded="true"] .ms-acc__sign::before { content: "\2212"; }
.ms-acc__panel p { margin: 0 0 22px; max-width: 720px; font-size: 16px; line-height: 1.6; color: var(--color-body); }

/* Forms (studio quote, tracking, account, review) */
.ms-formrow { display: flex; flex-direction: column; min-width: 0; }
.ms-formrow .ms-label .ms-muted { font-weight: 500; }
.ms-opt { display: flex; align-items: center; gap: 10px; min-height: 28px; cursor: pointer; }
.ms-opt input { width: 18px; height: 18px; margin: 0; accent-color: var(--color-pine); flex: 0 0 auto; }
.ms-file { font-size: 15px; padding: 10px 0; }
.ms-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ms-error-summary[hidden] { display: none; }
.ms-error-summary h2, .ms-error-summary h3 { margin: 0; font-family: var(--font-body); font-size: 16px; font-weight: 700; }
.ms-table-wrap--line { border: 1px solid var(--color-line); }
.ms-split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ms-split--faq { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); align-items: start; gap: 56px; }
.ms-split--quote { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: 56px; }
@media (max-width: 1024px) { .ms-split--faq, .ms-split--quote, .ms-split--even { grid-template-columns: minmax(0, 1fr); gap: 28px; } }

.ms-post-card__excerpt { font-size: 15px; line-height: 1.55; color: var(--color-body); }

/* White panels (account, review, sign in) */
.ms-panel { display: flex; flex-direction: column; gap: 20px; min-width: 0; padding: 28px; border-radius: var(--radius-card); background: #fff; }
.ms-panel--line { background: transparent; border: 1px solid var(--color-line); }
@media (max-width: 640px) { .ms-panel { padding: 20px; } }
.ms-req { color: var(--color-clay); }
.ms-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.ms-fieldset > legend { margin-bottom: 10px; padding: 0; }
.ms-radios { display: flex; flex-direction: column; gap: 8px; font-size: 16px; }
.ms-radio { display: flex; align-items: center; gap: 10px; min-height: 32px; cursor: pointer; }
.ms-radio input { width: 20px; height: 20px; margin: 0; accent-color: var(--color-pine); flex: 0 0 auto; }
.ms-drop { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 12px 16px; border: 1px dashed var(--color-field-line); border-radius: 12px; background: #fff; font-size: 15px; text-align: center; cursor: pointer; }
.ms-drop:focus-within { outline: 2px solid var(--color-pine); outline-offset: 2px; }
.ms-drop:hover { border-color: var(--color-ink); }
.ms-drop--sm { min-height: 64px; }
.ms-tag-inline { display: inline-block; padding: 2px 8px; border-radius: 4px; background: var(--color-linen); color: var(--color-body); font-size: 12px; font-weight: 600; }
.ms-stars { display: inline-flex; gap: 2px; color: var(--color-ink); vertical-align: -2px; }
.ms-stars .is-off { color: var(--color-field-line); }
.ms-pill--sm { min-height: 36px; padding: 0 14px; font-size: 14px; border-color: var(--color-field-line); }
.ms-pill--sm[aria-pressed="true"] { border-color: var(--color-ink); }
.ms-status { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 13px; font-size: 13px; font-weight: 600; white-space: nowrap; background: var(--color-linen); color: var(--color-body); }
.ms-status--ok { background: #E3EFE6; color: #1F5133; }
.ms-status--info { background: #E6ECE8; color: var(--color-pine); }
.ms-status--warn { background: var(--color-placeholder-bg); color: var(--color-placeholder-text); }
.ms-status--bad { background: var(--color-clay-bg); color: var(--color-clay); }
.ms-switch { position: relative; flex: 0 0 auto; width: 52px; height: 30px; border: 0; border-radius: 15px; background: var(--color-field-line); cursor: pointer; transition: background .15s; }
.ms-switch__knob { position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; transition: transform .15s; }
.ms-switch[aria-checked="true"] { background: var(--color-pine); }
.ms-switch[aria-checked="true"] .ms-switch__knob { transform: translateX(22px); }
.ms-switch[aria-disabled="true"] { cursor: not-allowed; opacity: .8; }
@media (prefers-reduced-motion: reduce) { .ms-switch, .ms-switch__knob { transition: none; } }

/* Cookie banner + choices dialog */
.ms-noscroll { overflow: hidden; }
.ms-cbar { position: fixed; z-index: 60; left: 24px; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 20px; max-width: 1120px; margin: 0 auto; padding: 22px 26px; border-radius: var(--radius-card); background: #fff; box-shadow: 0 8px 30px rgba(30, 28, 25, .12); }
.ms-cbar[hidden], .ms-cdlg[hidden] { display: none; }
.ms-cbar__text { display: flex; flex-direction: column; gap: 6px; flex: 1 1 0; min-width: 0; }
.ms-cbar__h { font-family: var(--font-body); font-size: 17px; font-weight: 700; letter-spacing: 0; }
.ms-cbar__text p { font-size: 15px; line-height: 1.55; color: var(--color-body); }
.ms-cbar__text a { font-weight: 600; color: var(--color-ink); }
.ms-cbar__gpc { color: #1F5133; font-weight: 600; }
.ms-cbar__btns { display: flex; flex-wrap: wrap; gap: 10px; flex: 0 0 auto; }
@media (max-width: 760px) {
	.ms-cbar { left: 12px; right: 12px; bottom: 12px; flex-direction: column; align-items: stretch; padding: 18px; gap: 14px; }
	.ms-cbar__btns .ms-btn { flex: 1 1 auto; }
}
.ms-cdlg { position: fixed; z-index: 70; inset: 0; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(30, 28, 25, .45); }
.ms-cdlg__box { display: flex; flex-direction: column; gap: 6px; width: 100%; max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; padding: 26px 28px; border-radius: var(--radius-card); background: #fff; }
.ms-cdlg__box:focus { outline: none; }
.ms-cdlg__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ms-cdlg__head .ms-h3 { font-size: 26px; }
.ms-cdlg__x { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; color: var(--color-ink); }
.ms-cdlg__row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--color-line-soft); }
.ms-cdlg__row > span { display: flex; flex-direction: column; gap: 3px; font-size: 16px; }
.ms-cdlg__row > span > span { font-size: 14px; line-height: 1.5; color: var(--color-taupe); }
.ms-cdlg__btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 16px; }
@media (max-width: 640px) { .ms-cdlg__box { padding: 20px; } .ms-cdlg__btns .ms-btn { flex: 1 1 auto; } }
