/* Frosa & Loer: extras that theme.json can't express. */

/* Wordmark */
.frosa-brand { display: inline-flex; align-items: center; gap: 0.7rem; text-decoration: none; color: var(--wp--preset--color--teal-dark); }
.frosa-brand:hover { color: var(--wp--preset--color--teal-dark); }
.frosa-brand .frosa-mark { flex: none; }
.frosa-brand__name { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.375rem; letter-spacing: 0.07em; text-transform: uppercase; line-height: 1; padding-top: 0.2em; white-space: nowrap; }
.frosa-brand__name .amp { font-weight: 400; }

/* Header */
.frosa-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.frosa-header .wp-block-navigation a:hover { color: var(--wp--preset--color--teal-dark); text-decoration: underline; text-underline-offset: 0.45em; text-decoration-thickness: 1px; }
.frosa-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--base); padding: 2rem 1.5rem; }
.frosa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.4rem; font-size: 1.05rem; }
.frosa-announce { font-family: var(--wp--preset--font-family--heading); letter-spacing: 0.14em; text-transform: uppercase; }

/* Eyebrow paragraph style */
.is-style-eyebrow { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--x-small) !important; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--wp--preset--color--orange); margin-bottom: 0.25rem; }
.has-teal-dark-background-color .is-style-eyebrow, .has-ink-background-color .is-style-eyebrow { color: var(--wp--preset--color--pink); }

/* Outline button */
.wp-block-button.is-style-frosa-outline .wp-block-button__link { background: transparent; color: var(--wp--preset--color--teal-dark); box-shadow: inset 0 0 0 1.5px currentColor; }
.wp-block-button.is-style-frosa-outline .wp-block-button__link:hover { background: var(--wp--preset--color--teal-dark); color: var(--wp--preset--color--white); box-shadow: none; }
.has-teal-dark-background-color .wp-block-button.is-style-frosa-outline .wp-block-button__link { color: var(--wp--preset--color--white); }
.has-teal-dark-background-color .wp-block-button.is-style-frosa-outline .wp-block-button__link:hover { background: var(--wp--preset--color--white); color: var(--wp--preset--color--teal-dark); }

/* Photos */
.is-style-soft img, .is-style-soft .wp-block-cover__image-background { border-radius: 14px; }
.wp-block-image.is-style-soft { overflow: hidden; border-radius: 14px; }
.wp-block-cover.is-style-soft, .frosa-tile.wp-block-cover { border-radius: 14px; overflow: hidden; }

/* Collection tiles */
.frosa-tile { transition: transform .35s ease; }
.frosa-tile .wp-block-cover__image-background { transition: transform .8s ease; }
.frosa-tile:hover .wp-block-cover__image-background { transform: scale(1.04); }
.frosa-tile a { color: inherit; text-decoration: none; }
.frosa-tile a::after { content: ""; position: absolute; inset: 0; z-index: 2; }

/* Hero */
.frosa-hero h1 { letter-spacing: 0; }
.frosa-hero .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }

/* Wave line divider */
.frosa-wave { display: block; width: 120px; height: 14px; margin: 0 auto; color: var(--wp--preset--color--orange); }

/* Products */
.wc-block-product-template .wp-block-post-title a, .wc-block-grid__product-title { text-decoration: none; }
.wc-block-product-template .wc-block-components-product-image img, .wc-block-components-product-image img { border-radius: 12px; aspect-ratio: 1; object-fit: cover; }
.wc-block-components-product-sale-badge { font-family: var(--wp--preset--font-family--heading); border-radius: 999px; }

/* Reviews strip */
.frosa-stars { color: var(--wp--preset--color--orange); letter-spacing: 0.2em; font-size: 1.1rem; }

/* FAQ */
.wp-block-details summary { font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--teal-dark); cursor: pointer; list-style: none; position: relative; padding-right: 2rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 0.25rem; top: -0.1em; font-size: 1.5rem; color: var(--wp--preset--color--orange); font-weight: 400; }
.wp-block-details[open] summary::after { content: "\2212"; }
.wp-block-details > :not(summary) { margin-top: 0.75rem; }

/* Footer */
.frosa-footer a { text-decoration: none; }
.frosa-footer a:hover { text-decoration: underline; }
.frosa-footer .frosa-brand, .frosa-footer .frosa-brand:hover { color: var(--wp--preset--color--white); }
.frosa-footer .wp-block-navigation a { text-transform: none; letter-spacing: 0; font-family: var(--wp--preset--font-family--body); font-size: var(--wp--preset--font-size--small); }

/* Focus */
:where(a, button, summary, input, select, textarea):focus-visible { outline: 2px solid var(--wp--preset--color--sky); outline-offset: 3px; }

@media (max-width: 781px) {
	.frosa-brand__name { font-size: 1.125rem; }
	.frosa-hero .wp-block-image img { aspect-ratio: 4 / 4.2; }
}
@media (prefers-reduced-motion: reduce) {
	.frosa-tile .wp-block-cover__image-background, .frosa-tile { transition: none; }
}

/* Dark bands: headings and text follow the band colour */
:is(.has-teal-dark-background-color, .has-ink-background-color) :is(h1, h2, h3, h4, h5) { color: var(--wp--preset--color--white); }
.has-teal-dark-background-color .frosa-wave { color: var(--wp--preset--color--orange); }

/* Sections sit edge to edge: no gaps between header, page and footer */
.wp-site-blocks > * + * { margin-block-start: 0; }

/* Quote credit */
.wp-block-quote cite { display: block; margin-top: 0.75rem; font-family: var(--wp--preset--font-family--heading); font-style: normal; font-size: var(--wp--preset--font-size--x-small); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--teal); }
.wp-block-quote cite::before { content: "— "; }

/* Portfolio: even square tiles */
.frosa-gallery.wp-block-gallery .wp-block-image img { aspect-ratio: 1; object-fit: cover; height: auto; }
.frosa-gallery.wp-block-gallery .wp-block-image { border-radius: 14px; overflow: hidden; }

/* ===== Review fixes 2026-11-12 ===== */

/* Contrast: orange is decorative only; text uses the darker copper (5:1+ on shell and sand). */
.is-style-eyebrow { color: var(--wp--preset--color--copper-text); }
.frosa-stars { color: var(--wp--preset--color--copper-text); }
.wp-block-details summary::after { color: var(--wp--preset--color--copper-text); }
.wp-block-quote cite { color: var(--wp--preset--color--teal-dark); }
:where(a, button, summary, input, select, textarea):focus-visible { outline-color: var(--wp--preset--color--teal-dark); }
.wc-block-mini-cart__badge { background: var(--wp--preset--color--teal-dark) !important; color: #fff !important; }

/* Headings: balanced wrapping, and more space above than below in running text. */
h1, h2, h3, h4 { text-wrap: balance; }
.wp-block-post-content > :is(h2, h3):not(:first-child) { margin-top: var(--wp--preset--spacing--50); }
.wp-block-post-content > :is(h2, h3) + * { margin-top: 0.75rem; }

/* Collection tiles: darker scrim at the bottom so text reads on any photo. */
.frosa-tile .wp-block-cover__background { background: linear-gradient(to top, rgba(20, 40, 37, .82) 0%, rgba(20, 40, 37, .45) 45%, rgba(20, 40, 37, .08) 100%) !important; opacity: 1 !important; }
.frosa-tile .is-style-eyebrow { color: var(--wp--preset--color--sand); }
.frosa-tile .wp-block-cover__inner-container { width: 100%; }

/* Quotes sit on the content edge. */
.wp-block-quote { margin-inline: 0; }

/* Portfolio captions: stronger scrim. */
.frosa-gallery.wp-block-gallery .wp-block-image figcaption { background: linear-gradient(0deg, rgba(20, 40, 37, .78), rgba(20, 40, 37, 0)); padding-top: 2.5rem; font-size: 0.875rem; }

/* Forms: match the brand instead of browser defaults. */
:where(.woocommerce, .wp-site-blocks) :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], input[type=search], select, textarea):not(.wc-block-components-text-input input):not(.wc-blocks-components-select__select) {
	font: inherit; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--ink); background: var(--wp--preset--color--white);
	border: 1px solid #C9C2AE; border-radius: 10px; padding: 0.65rem 0.9rem; min-height: 46px; box-sizing: border-box;
}
:where(.woocommerce, .wp-site-blocks) select:not(.wc-blocks-components-select__select) { padding-right: 2.25rem; appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23287062' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 0.9rem center; }
#review_form :is(p.comment-form-author, p.comment-form-email, p.comment-form-comment) label { display: block; margin-bottom: 0.3rem; font-size: var(--wp--preset--font-size--small); }
#review_form :is(input[type=text], input[type=email], textarea) { width: 100%; }
input[type=checkbox], input[type=radio] { accent-color: var(--wp--preset--color--teal-dark); }

/* WooCommerce templates */
.wc-block-breadcrumbs { color: var(--wp--preset--color--muted); }
.frosa-shop-main .wp-block-query-title { margin-bottom: var(--wp--preset--spacing--40); }
.frosa-sortbar { margin-bottom: var(--wp--preset--spacing--40); font-size: var(--wp--preset--font-size--small); align-items: center; }
.frosa-sortbar .woocommerce-ordering { margin: 0; }

/* Product cards: one style everywhere, prices and buttons line up. */
.frosa-cards > li, .wc-block-product-template > li.wc-block-product { display: flex; flex-direction: column; }
.frosa-cards .frosa-card-title { margin: 1rem 0 0.25rem; line-height: 1.3; min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.frosa-cards .frosa-card-price { margin: 0 0 0.9rem; color: var(--wp--preset--color--teal-dark); }
.frosa-cards .frosa-card-button { margin-top: auto; }
.frosa-cards .wp-block-button__link, .frosa-cards .wc-block-components-product-button__button { white-space: nowrap; }
@media (max-width: 600px) {
	.frosa-cards .wp-block-button__link, .frosa-cards .wc-block-components-product-button__button { padding: 0.75rem 1rem; font-size: 0.75rem; letter-spacing: 0.1em; }
	.frosa-cards .frosa-card-title { font-size: 1rem; }
}

/* Single product */
.frosa-product .woocommerce-product-gallery { margin-bottom: 0; }
.frosa-product .woocommerce-product-gallery .flex-viewport, .frosa-product .woocommerce-product-gallery__image img { border-radius: 14px; }
.frosa-product .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image img { aspect-ratio: 1; object-fit: cover; }
.frosa-product .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, 1fr); gap: 0.6rem; margin-top: 0.75rem !important; }
.frosa-product .flex-control-thumbs li { width: auto !important; margin: 0 !important; float: none !important; }
.frosa-product .flex-control-thumbs img { border-radius: 8px; aspect-ratio: 1; object-fit: cover; }
.frosa-product-summary > * + * { margin-top: 1rem; }
.frosa-product-summary .wp-block-post-title { margin-top: 0; }
.frosa-product-summary form.cart { padding-left: 0 !important; }
.frosa-product-summary form.cart .quantity:has(input[type=hidden]) { display: none; }
.frosa-product-summary table.variations th, .frosa-product-summary table.variations td { padding: 0 0 0.5rem; text-align: left; vertical-align: middle; }
.frosa-product-summary table.variations th label { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--small); letter-spacing: 0.08em; text-transform: uppercase; margin-right: 1rem; white-space: nowrap; }
.frosa-product-summary .reset_variations { font-size: var(--wp--preset--font-size--x-small); margin-left: 0.75rem; }
.frosa-product-meta { gap: 0.25rem; color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--line); padding-top: 1rem; }
.frosa-product-details .woocommerce-Tabs-panel { max-width: 720px; }
.frosa-product-details .woocommerce-Tabs-panel > h2:first-child { display: none; }
.frosa-product-details ul.tabs { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; }
.frosa-related .wp-block-heading { margin-bottom: var(--wp--preset--spacing--40); }

/* Notices */
.wc-block-components-notice-banner { border-radius: 12px; border: 1px solid var(--wp--preset--color--line) !important; background: var(--wp--preset--color--sand) !important; color: var(--wp--preset--color--ink) !important; }
.wc-block-components-notice-banner > svg { background: var(--wp--preset--color--teal-dark) !important; fill: #fff !important; }
.wc-block-components-notice-banner.is-error > svg { background: #B3261E !important; }

/* Tablet (600-1023px): hamburger menu, 2x2 footer, stacked product page. */
@media (min-width: 600px) and (max-width: 1023px) {
	.frosa-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.frosa-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
@media (max-width: 1023px) {
	.frosa-footer .wp-block-columns { flex-wrap: wrap !important; }
	.frosa-footer .wp-block-columns > .wp-block-column { flex-basis: calc(33.333% - 2rem) !important; flex-grow: 1; }
	.frosa-footer .wp-block-columns > .wp-block-column:first-child { flex-basis: 100% !important; }
	.frosa-product { flex-wrap: wrap !important; }
	.frosa-product > .wp-block-column { flex-basis: 100% !important; }
}
.frosa-footer :is(h2, h6, a) { overflow-wrap: normal; word-break: normal; }

/* Phone menu overlay */
.frosa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 2rem; }
.frosa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 0.25rem !important; }
.frosa-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; padding: 0.6rem 0 !important; min-height: 44px; }

/* Current page in the menu */
.frosa-header .wp-block-navigation .current-menu-item > a, .frosa-header .wp-block-navigation a[aria-current="page"] { color: var(--wp--preset--color--teal-dark); text-decoration: underline; text-underline-offset: 0.45em; text-decoration-thickness: 1px; }

/* Footer headings (h2 styled small) */
.frosa-footer .frosa-footer-heading { font-size: var(--wp--preset--font-size--small); text-transform: uppercase; letter-spacing: 0.12em; color: var(--wp--preset--color--pink); margin-top: 0; }

/* Gallery fills its column (WooCommerce caps it at 48%). */
.frosa-product .woocommerce-product-gallery, .frosa-product .wp-block-woocommerce-product-image-gallery .images { width: 100% !important; float: none !important; }
/* Selects: no clipped text. */
:where(.woocommerce, .wp-site-blocks) select:not(.wc-blocks-components-select__select) { line-height: 1.3; height: auto; padding-top: 0.7rem; padding-bottom: 0.7rem; }
/* Product tabs stay a row on phones. */
.frosa-product-details ul.tabs.wc-tabs { display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: 0.25rem 1.25rem; padding: 0 !important; border: 0 !important; }
.frosa-product-details ul.tabs.wc-tabs li { width: auto !important; border: 0 !important; margin: 0 !important; padding: 0 !important; }
.frosa-product-details ul.tabs.wc-tabs li a { padding: 0.5rem 0 !important; border: 0 !important; }
.frosa-product-details ul.tabs.wc-tabs li.active a { box-shadow: inset 0 -2px 0 var(--wp--preset--color--teal-dark); }

@media (max-width: 599px) {
	.frosa-footer .wp-block-columns > .wp-block-column:not(:first-child) { flex-basis: calc(50% - 1rem) !important; }
}
.frosa-cards .wc-block-components-product-button .wc-block-components-product-button__button { white-space: nowrap !important; }
@media (max-width: 600px) {
	.frosa-cards .wc-block-components-product-button .wc-block-components-product-button__button { padding: 0.7rem 0.9rem !important; font-size: 0.6875rem !important; letter-spacing: 0.08em !important; }
}
.frosa-product .wp-block-woocommerce-product-image-gallery { max-width: none !important; width: 100% !important; }

/* Express checkout box only shows when a wallet (e.g. Apple Pay) actually rendered a button. */
.wp-block-woocommerce-checkout-express-payment-block:not(:has(iframe, button)) { display: none; }

/* Variation swatches */
.frosa-swatches-select { position: absolute !important; width: 1px !important; height: 1px !important; opacity: 0; pointer-events: none; }
.frosa-product-summary table.variations, .frosa-product-summary table.variations tbody, .frosa-product-summary table.variations tr, .frosa-product-summary table.variations th, .frosa-product-summary table.variations td { display: block; width: 100%; }
.frosa-product-summary table.variations th label { display: block; margin: 0 0 0.6rem; }
.frosa-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 0.6rem; max-width: 560px; }
.frosa-swatch { display: flex; flex-direction: column; gap: 0.4rem; padding: 0.4rem 0.4rem 0.55rem; background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--line); border-radius: 12px; cursor: pointer; text-align: center; font: inherit; color: var(--wp--preset--color--ink); transition: border-color .15s, box-shadow .15s, transform .15s; }
.frosa-swatch img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; display: block; }
.frosa-swatch__text { font-size: 0.8125rem; line-height: 1.25; }
.frosa-swatch__letter { display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 0.6875rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--copper-text); margin-bottom: 0.1rem; }
.frosa-swatch:hover { border-color: var(--wp--preset--color--teal); transform: translateY(-1px); }
.frosa-swatch.is-selected { border-color: var(--wp--preset--color--teal-dark); box-shadow: 0 0 0 2px var(--wp--preset--color--teal-dark); }
.frosa-swatch.is-sold { opacity: 0.45; cursor: not-allowed; }
.frosa-swatch.is-sold .frosa-swatch__text::after { content: " · Sold"; }
.frosa-product-summary .reset_variations { display: inline-block; margin: 0.6rem 0 0; }
.frosa-product-summary .woocommerce-variation-price { display: none; }
.frosa-product-summary .woocommerce-variation-availability p.stock { margin: 0.25rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--teal-dark); }
.frosa-product-summary .single_add_to_cart_button { margin-top: 0.5rem; }
/* Swatches can't push the form wider than the column. */
form.variations_form table.variations { min-width: 0; max-width: 100%; }
.frosa-swatches { max-width: min(560px, 100%); }
@media (max-width: 600px) { .frosa-swatches { grid-template-columns: repeat(3, 1fr); } }
.frosa-product .woocommerce-product-gallery { overflow: hidden; }
.frosa-product-summary table.variations :is(th, td) { box-sizing: border-box; max-width: 100%; }

/* Contact form */
.frosa-form p { margin: 0 0 1.1rem; }
.frosa-form label { display: block; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--x-small); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--teal-dark); margin-bottom: 0.4rem; }
.frosa-form .wpcf7-form-control-wrap { display: block; }
.frosa-form :is(input[type=text], input[type=email], select, textarea) { width: 100%; }
.frosa-form textarea { min-height: 9rem; resize: vertical; }
.frosa-form .wpcf7-submit { background: var(--wp--preset--color--teal-dark); color: #fff; border: 0; border-radius: 999px; padding: 0.95rem 2rem 0.8rem; font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; }
.frosa-form .wpcf7-submit:hover { background: var(--wp--preset--color--ink); }
.wpcf7 .wpcf7-not-valid-tip { color: #B3261E; font-size: var(--wp--preset--font-size--x-small); margin-top: 0.3rem; }
.wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: 0.9rem 1.1rem; border-radius: 12px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--sand); font-size: var(--wp--preset--font-size--small); }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--wp--preset--color--teal); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: #B3261E; }
.wpcf7-spinner { margin: 0 0 0 0.75rem; }
@media (max-width: 600px) { .frosa-hide-phone { display: none; } }

/* Free-delivery nudge */
.frosa-freedel { margin: 0 0 1rem; padding: 0.85rem 1rem 0.95rem; border-radius: 12px; background: var(--wp--preset--color--sand); border: 1px solid var(--wp--preset--color--line); }
.frosa-freedel__text { margin: 0 0 0.55rem; font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
.frosa-freedel__text strong { color: var(--wp--preset--color--teal-dark); }
.frosa-freedel__bar { height: 6px; border-radius: 999px; background: #E2DCCB; overflow: hidden; }
.frosa-freedel__bar span { display: block; height: 100%; border-radius: 999px; background: var(--wp--preset--color--teal-dark); transition: width .4s ease; }
.frosa-freedel.is-done { background: #E5F0EE; border-color: #BFD8D4; }
.wc-block-mini-cart__footer .frosa-freedel { margin: 0 0 1rem; }

/* Notices: the link sits neatly at the end, and no heavy focus ring when WooCommerce focuses the notice. */
.wc-block-components-notice-banner:focus, .wc-block-components-notice-banner:focus-visible { outline: none; }
.wc-block-components-notice-banner { align-items: center; }
.wc-block-components-notice-banner__content { display: block; }
.wc-block-components-notice-banner__content a.wc-forward, .wc-block-components-notice-banner__content .button.wc-forward {
	float: none !important; margin: 0.6rem 0 0 !important; display: table; width: auto;
	padding: 0.55rem 1.1rem 0.45rem !important; border-radius: 999px; border: 1.5px solid var(--wp--preset--color--teal-dark) !important;
	background: transparent !important; color: var(--wp--preset--color--teal-dark) !important; text-decoration: none !important;
	font-family: var(--wp--preset--font-family--heading); font-size: 0.75rem !important; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.2; opacity: 1 !important;
}
.wc-block-components-notice-banner__content a.wc-forward:hover { background: var(--wp--preset--color--teal-dark) !important; color: #fff !important; }
.frosa-header .wc-block-mini-cart { visibility: visible !important; }
