/* ==========================================================================
   PLS pages: content pages, core blocks, Full width + Editorial templates, 404.
   Tokens and utilities come from base.css. No shadows, no radii, hairlines only.
   ========================================================================== */

/* Shell -------------------------------------------------------------------- */
.page-head { padding-block: var(--s-10) var(--s-6); text-align: center; }
.page-title { margin: 0; text-align: center; overflow-wrap: anywhere; }
.page-body { padding-bottom: var(--s-16); }
@media (min-width: 990px) {
	.page-head { padding-block: var(--s-16) var(--s-10); }
	.page-body { padding-bottom: var(--s-24); }
}
.page-links { display: flex; gap: var(--s-3); margin-top: var(--s-8); }

/* Reading column: 680px, centred. Wide blocks break out to 1120px. */
.page-content { line-height: 1.7; }
.page-content.prose { max-width: none; }
.page-content.prose > *,
.page-content--editorial > *:not(.alignfull) { max-width: var(--text-max); margin-inline: auto; }
.page-content.prose > .wp-block-columns,
.page-content.prose > .wp-block-gallery,
.page-content.prose > .wp-block-media-text,
.page-content.prose > .alignwide,
.page-content.prose > .wp-block-cover,
.page-content--editorial > .wp-block-columns,
.page-content--editorial > .wp-block-gallery,
.page-content--editorial > .wp-block-media-text,
.page-content--editorial > .alignwide { max-width: 1120px; }
.page-content--woo { max-width: 1200px; margin-inline: auto; line-height: var(--lh); }
.page-content--full > *:not(.alignfull) { max-width: var(--content-max); margin-inline: auto; padding-inline: var(--gutter); }
.page-content--full > .alignfull { max-width: none; width: 100%; padding-inline: 0; }
.page-content--full > * + *,
.page-content--editorial > * + * { margin-top: var(--s-4); }

/* Block typography (also inside .prose from base.css) ------------------------ */
.page-content h2 { font-size: var(--fs-l); letter-spacing: .06em; text-transform: uppercase; font-weight: var(--fw-regular); line-height: 1.3; margin-top: 2.2em; }
.page-content h3 { font-size: var(--fs-m); letter-spacing: var(--tracking-ui); text-transform: uppercase; font-weight: var(--fw-medium); line-height: 1.3; margin-top: 1.8em; }
.page-content h4, .page-content h5, .page-content h6 { font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase; font-weight: var(--fw-medium); margin-top: 1.6em; }
.page-content > h2:first-child, .page-content > h3:first-child { margin-top: 0; }
.page-content p, .page-content li { overflow-wrap: break-word; }
.page-content strong { font-weight: var(--fw-medium); }
.page-content code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; background: var(--c-cream); padding: 0 var(--s-1); overflow-wrap: anywhere; }
.page-content li + li { margin-top: var(--s-1); }
.page-content .has-text-align-center, .page-content .has-text-align-center * { text-align: center; }
.page-content .has-text-align-right { text-align: right; }
.page-content .has-text-align-center .wp-block-button__link { text-align: center; }
.page-content .alignleft { float: left; margin: 0 var(--s-6) var(--s-4) 0; max-width: 50%; }
.page-content .alignright { float: right; margin: 0 0 var(--s-4) var(--s-6); max-width: 50%; }
.page-content .aligncenter { margin-inline: auto; }

/* Images, captions ---------------------------------------------------------- */
.page-content .wp-block-image img { width: 100%; height: auto; }
.page-content .wp-block-image.is-resized img { width: auto; max-width: 100%; }
.page-content figcaption { margin-top: var(--s-2); font-size: var(--fs-xs); letter-spacing: .02em; color: var(--c-muted); text-align: center; }

/* Columns: stacked on mobile, side by side from 782px (matches core's stacking point) */
.page-content .wp-block-columns { display: flex; flex-direction: column; gap: var(--s-8); margin-block: var(--s-8); }
.page-content .wp-block-column { min-width: 0; flex: 1 1 auto; }
.page-content .wp-block-column > * + * { margin-top: var(--s-4); }
@media (min-width: 782px) {
	.page-content .wp-block-columns { flex-direction: row; flex-wrap: nowrap !important; gap: var(--s-10); align-items: flex-start; }
	.page-content .wp-block-columns.are-vertically-aligned-center, .page-content .wp-block-column.is-vertically-aligned-center { align-self: center; }
	.page-content .wp-block-column { flex: 1 1 0 !important; }
	.page-content .wp-block-column[style*="flex-basis"] { flex-grow: 0 !important; }
}
.page-content .wp-block-columns .wp-block-column > .wp-block-heading:first-child { margin-top: 0; }
/* Centred column = card (store list on Contact) */
.page-content .wp-block-column:has(> .has-text-align-center) { border: 1px solid var(--c-line); padding: var(--s-6) var(--s-4); }
.page-content .wp-block-column:has(> .has-text-align-center) > * + * { margin-top: var(--s-2); }
.page-content .wp-block-column:has(> .has-text-align-center) > .wp-block-heading { margin-top: 0; }

/* Media & text */
.page-content .wp-block-media-text { display: grid; grid-template-columns: 1fr; gap: var(--s-6); align-items: center; margin-block: var(--s-8); }
.page-content .wp-block-media-text__media { margin: 0; }
.page-content .wp-block-media-text__media img { width: 100%; height: auto; }
.page-content .wp-block-media-text__content { min-width: 0; }
.page-content .wp-block-media-text__content > * + * { margin-top: var(--s-4); }
@media (min-width: 782px) {
	.page-content .wp-block-media-text { grid-template-columns: 1fr 1fr; gap: var(--s-16); }
	.page-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__media { order: 2; }
}

/* Gallery */
.page-content .wp-block-gallery.has-nested-images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--grid-gap); margin-block: var(--s-8); }
.page-content .wp-block-gallery .wp-block-image { width: auto !important; margin: 0 !important; }
.page-content .wp-block-gallery .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
@media (min-width: 750px) {
	.page-content .wp-block-gallery.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.page-content .wp-block-gallery.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Buttons */
.page-content .wp-block-buttons { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-block: var(--s-6); }
.page-content .wp-block-buttons.is-content-justification-center, .page-content .has-text-align-center + .wp-block-buttons { justify-content: center; }
.page-content .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--s-6);
	background: var(--c-ink); color: #fff; border: 1px solid var(--c-ink); border-radius: 0;
	font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase; font-weight: var(--fw-medium); text-decoration: none;
}
.page-content .wp-block-button__link:hover { background: var(--c-ink-2); color: #fff; text-decoration: none; }
.page-content .is-style-outline .wp-block-button__link { background: transparent; color: var(--c-ink); }
.page-content .is-style-outline .wp-block-button__link:hover { background: var(--c-ink); color: #fff; }

/* Details (FAQ) */
.page-content .wp-block-details { border-bottom: 1px solid var(--c-line); }
.page-content > .wp-block-details:first-child,
.page-content > :not(.wp-block-details) + .wp-block-details { border-top: 1px solid var(--c-line); }
.page-content > .wp-block-details + .wp-block-details { margin-top: 0; }
.page-content .wp-block-details > summary {
	list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: var(--s-4);
	min-height: 44px; padding-block: var(--s-4); font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase;
}
.page-content .wp-block-details > summary::-webkit-details-marker { display: none; }
.page-content .wp-block-details > summary::after { content: "+"; font-size: 16px; font-weight: var(--fw-light); flex: none; }
.page-content .wp-block-details[open] > summary::after { content: "\2212"; }
.page-content .wp-block-details > :not(summary) { margin: 0 0 var(--s-4); }
.page-content .wp-block-details > :last-child { margin-bottom: var(--s-5); }

/* Table (cookie list, size charts) */
.page-content .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-block: var(--s-6); }
.page-content .wp-block-table table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: var(--fs-s); }
.page-content .wp-block-table th, .page-content .wp-block-table td { padding: var(--s-3) var(--s-4) var(--s-3) 0; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.page-content .wp-block-table th { font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase; font-weight: var(--fw-medium); border-bottom-color: var(--c-line-strong); }
.page-content .wp-block-table figcaption { text-align: left; }

/* Quote, pullquote, separator */
.page-content .wp-block-quote { margin: var(--s-8) auto; padding: 0 0 0 var(--s-5); border-left: 1px solid var(--c-ink); font-size: var(--fs-l); font-weight: var(--fw-light); }
.page-content .wp-block-quote cite { display: block; margin-top: var(--s-3); font-style: normal; font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase; color: var(--c-muted); }
.page-content .wp-block-pullquote { margin-block: var(--s-10); padding: var(--s-8) 0; border-block: 1px solid var(--c-line); text-align: center; font-size: var(--fs-xl); font-weight: var(--fw-light); }
.page-content .wp-block-pullquote blockquote { margin: 0; padding: 0; border: 0; }
.page-content .wp-block-separator { border: 0; border-top: 1px solid var(--c-line); margin-block: var(--s-10); }

/* Embeds and raw HTML (maps, video) */
.page-content iframe { display: block; width: 100%; max-width: 100%; border: 0; }
.page-content .wp-block-html iframe { min-height: 320px; }
.page-content .wp-block-embed__wrapper { position: relative; }
.page-content .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 56.25%; }
.page-content .wp-has-aspect-ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.page-content .wp-block-file { display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; }
.page-content .wp-block-file a:not(.wp-block-file__button) { text-decoration: underline; text-underline-offset: 3px; }

/* Contact Form 7 (Contact page) */
.page-content .wpcf7-form p { margin: 0 0 var(--s-4); }
.page-content .wpcf7-form-control-wrap { display: block; }
.page-content .wpcf7-form textarea { min-height: 140px; resize: vertical; }
.page-content .wpcf7-submit { width: auto; }
.page-content .wpcf7-not-valid-tip { display: block; margin-top: var(--s-1); font-size: var(--fs-xs); color: var(--c-error); }
.page-content .wpcf7 form .wpcf7-response-output { margin: var(--s-4) 0 0; padding: var(--s-3) var(--s-4); border: 0; border-left: 2px solid var(--c-ink); background: var(--c-cream); font-size: var(--fs-s); }
.page-content .wpcf7 form.invalid .wpcf7-response-output, .page-content .wpcf7 form.failed .wpcf7-response-output { border-left-color: var(--c-error); }
.page-content .wpcf7 form.sent .wpcf7-response-output { border-left-color: var(--c-success); }
.page-content .wpcf7-spinner { display: none; }

/* Editorial template -------------------------------------------------------- */
.editorial__lead { margin: 0; background: var(--c-cream); }
.editorial__img { width: 100%; height: 56vw; max-height: 720px; min-height: 260px; object-fit: cover; }
@media (min-width: 990px) { .editorial__img { height: 42vw; } }
.editorial__head { padding-block: var(--s-8) var(--s-6); text-align: center; }
@media (min-width: 990px) { .editorial__head { padding-block: var(--s-12) var(--s-8); } }
.editorial__body { padding-inline: var(--gutter); padding-bottom: var(--s-16); }
@media (min-width: 990px) { .editorial__body { padding-bottom: var(--s-24); } }
/* Intro paragraph */
.editorial__body > p:first-of-type { font-size: var(--fs-xl); line-height: 1.5; font-weight: var(--fw-light); letter-spacing: .01em; text-align: center; margin-bottom: var(--s-8); }
@media (min-width: 990px) { .editorial__body > p:first-of-type { font-size: 24px; margin-bottom: var(--s-12); } }
/* Text/image rows */
.editorial__body .wp-block-columns, .editorial__body .wp-block-media-text { margin-block: var(--s-10); align-items: center; }
@media (min-width: 990px) { .editorial__body .wp-block-columns, .editorial__body .wp-block-media-text { margin-block: var(--s-16); } }
.editorial__body .wp-block-column .wp-block-image img { aspect-ratio: 4 / 5; object-fit: cover; }
.editorial__body .wp-block-column > p:not([class*="has-text-align"]) { max-width: 46ch; }
.editorial__body .wp-block-column > .wp-block-heading { margin-top: 0; }

/* Editorial building blocks (CSS classes set on core blocks; About / Sustainability) */
.editorial__body .pls-eyebrow { margin: 0; font-size: var(--fs-xs); letter-spacing: .18em; text-transform: uppercase; color: var(--c-muted); }
.editorial__body .pls-eyebrow + .wp-block-heading { margin-top: var(--s-2); }
.editorial__body .wp-block-column > h2.wp-block-heading,
.editorial__body .pls-statement h2.wp-block-heading {
	font-size: var(--fs-xxl); font-weight: var(--fw-light); letter-spacing: .01em; text-transform: none; line-height: 1.2;
}
.editorial__body .wp-block-column > h2.wp-block-heading + * { margin-top: var(--s-6); }
/* Feature list: hairline-separated title + one line */
/* Classic themes wrap Group contents in .wp-block-group__inner-container: style both shapes. */
.editorial__body .pls-features { margin-top: var(--s-8); max-width: 46ch; }
.editorial__body .pls-features,
.editorial__body .pls-features > .wp-block-group__inner-container { display: grid; gap: 0; }
.editorial__body .pls-features .pls-feature { margin-top: 0; }
.editorial__body .pls-feature { border-top: 1px solid var(--c-line); padding-block: var(--s-3); }
.editorial__body .pls-feature > *, .editorial__body .pls-feature > .wp-block-group__inner-container > * { margin: 0; }
.editorial__body .pls-feature h3 { font-size: var(--fs-l); font-weight: var(--fw-regular); letter-spacing: .01em; text-transform: none; }
.editorial__body .pls-feature p { margin-top: 2px; color: var(--c-muted); }
@media (min-width: 750px) {
	.editorial__body .pls-features--2 { max-width: none; }
	.editorial__body .pls-features--2:not(:has(> .wp-block-group__inner-container)),
	.editorial__body .pls-features--2 > .wp-block-group__inner-container { grid-template-columns: 1fr 1fr; column-gap: var(--s-8); }
}
/* Pull line under a text block */
.editorial__body .pls-pull { font-size: var(--fs-xl); font-weight: var(--fw-light); letter-spacing: .01em; line-height: 1.4; border-top: 1px solid var(--c-line); padding-top: var(--s-4); margin-top: var(--s-8); }
/* Key figures: stay 3-up on phones */
.editorial__body .wp-block-columns.pls-stats { flex-direction: row; gap: var(--s-4); margin-block: var(--s-8); text-align: center; }
.editorial__body .pls-stats .wp-block-column > * { margin: 0; }
.editorial__body .pls-stats .wp-block-column > * + * { margin-top: var(--s-1); }
.editorial__body .pls-stat__num { font-size: var(--fs-xxl); font-weight: var(--fw-light); letter-spacing: .02em; line-height: 1.1; }
.editorial__body .pls-stat__label { font-size: var(--fs-xs); letter-spacing: var(--tracking-ui); text-transform: uppercase; color: var(--c-muted); }
/* Small print under a button ("Already a stockist? Log in") */
.editorial__body .pls-note { font-size: var(--fs-s); color: var(--c-muted); }
.editorial__body .wp-block-buttons + .pls-note { margin-top: calc(-1 * var(--s-3)); }
.editorial__body .pls-note a { color: var(--c-ink); text-decoration: underline; text-underline-offset: 3px; }
/* Numbered steps (Wholesale "How it works"): hairline-topped columns */
.editorial__body .pls-steps { border-top: 1px solid var(--c-line); padding-top: var(--s-8); margin-top: var(--s-10); }
.editorial__body .pls-steps .pls-eyebrow { text-align: center; }
.editorial__body .pls-steps .wp-block-columns { margin-block: var(--s-6) 0; gap: var(--s-6); align-items: flex-start; }
.editorial__body .pls-steps .wp-block-column > * { margin: 0; }
.editorial__body .pls-steps .wp-block-column > * + * { margin-top: var(--s-2); }
.editorial__body .pls-step__num { font-size: var(--fs-xxl); font-weight: var(--fw-light); line-height: 1; color: var(--c-muted); }
.editorial__body .pls-steps h3 { font-size: var(--fs-l); font-weight: var(--fw-regular); letter-spacing: .01em; text-transform: none; }
.editorial__body .pls-steps .wp-block-column p:not([class]) { color: var(--c-ink-2); max-width: 32ch; }
@media (min-width: 990px) {
	.editorial__body .pls-steps { padding-top: var(--s-12); margin-top: var(--s-16); }
	.editorial__body .pls-steps .wp-block-columns { gap: var(--s-12); }
}

/* Statement band: full-bleed cream panel, centred text */
.editorial__body .pls-statement {
	margin-inline: calc(-1 * var(--gutter)); margin-block: var(--s-10); padding: var(--s-16) var(--gutter);
	background: var(--c-cream); text-align: center;
}
.editorial__body .pls-statement > *,
.editorial__body .pls-statement > .wp-block-group__inner-container > * { max-width: 760px; margin-inline: auto; }
.editorial__body .pls-statement > .wp-block-group__inner-container { max-width: none; }
.editorial__body .pls-statement > * + *,
.editorial__body .pls-statement > .wp-block-group__inner-container > * + * { margin-top: var(--s-6); }
.editorial__body .pls-statement .pls-eyebrow + * { margin-top: var(--s-4); }
.editorial__body .pls-statement .pls-statement__quote { font-size: var(--fs-xxl); font-weight: var(--fw-light); letter-spacing: .01em; line-height: 1.35; }
.editorial__body .pls-statement p:not([class]) { max-width: 60ch; }
.editorial__body .pls-statement .pls-statement__values { font-size: var(--fs-xs); letter-spacing: .18em; text-transform: uppercase; color: var(--c-muted); }
.editorial__body > .pls-statement:last-child { margin-bottom: calc(-1 * var(--s-16)); }
@media (min-width: 990px) {
	.editorial__body .pls-statement { margin-block: var(--s-16); padding-block: var(--s-24); }
	.editorial__body > .pls-statement:last-child { margin-bottom: calc(-1 * var(--s-24)); }
}

/* 404 ---------------------------------------------------------------------- */
.not-found { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--s-4); padding-block: var(--s-16) var(--s-24); min-height: 60vh; justify-content: center; }
.not-found__code { margin: 0; }
.not-found__text { max-width: 44ch; color: var(--c-ink-2); }
.not-found__search { display: flex; width: 100%; max-width: 420px; margin-block: var(--s-4); }
.not-found__search input[type="search"] { flex: 1; min-width: 0; border-right: 0; }
.not-found__search .btn { flex: none; }

/* reCAPTCHA: floating badge hidden (visibility, never display:none); its notice sits under each form. */
.grecaptcha-badge { visibility: hidden; }
.recaptcha-note { margin-top: var(--s-4); color: var(--c-muted); font-size: var(--fs-xs); line-height: 1.5; }
.recaptcha-note a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
