/* ==========================================================================
   Content pages: page header, reading layout, policy TOC, About/Contact
   components, FAQ (core Details block), contact form, 404.
   ========================================================================== */

/* Page header + reading column --------------------------------------- */
.ce-content-page #content,
.ce-content-page .page-wrapper {
	padding-top: 0;
}

.ce-page-header {
	border-bottom: 1px solid var(--ce-border);
	margin-bottom: var(--ce-space-8);
	padding-block: clamp(32px, 5vw, 64px) var(--ce-space-6);
}

.ce-page-header__title {
	font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem);
	font-weight: 500;
	margin: 0;
}

.ce-page-header__meta {
	color: var(--ce-muted);
	font-size: var(--ce-fs-small);
	margin: var(--ce-space-3) 0 0;
}

.ce-content-page .entry-content,
.ce-content-page .page-inner {
	font-size: 1.0625rem;
	line-height: 1.7;
}

.ce-content-page .entry-content > p,
.ce-content-page .entry-content > ul,
.ce-content-page .entry-content > ol,
.ce-content-page .page-inner > p,
.ce-content-page .page-inner > ul,
.ce-content-page .page-inner > ol {
	max-width: 72ch;
}

/* Policies: TOC sidebar + body --------------------------------------- */
.ce-legal {
	align-items: start;
	display: grid;
	gap: clamp(24px, 4vw, 64px);
	grid-template-columns: minmax(200px, 260px) minmax(0, 72ch);
	padding-bottom: var(--ce-space-16);
}

.ce-toc {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	padding: var(--ce-space-4) var(--ce-space-4) var(--ce-space-3);
	position: sticky;
	top: 96px;
}

.ce-toc__title {
	color: var(--ce-forest-dark);
	font-family: var(--ce-font-serif);
	font-size: 1.125rem;
	font-weight: 600;
	margin: 0 0 var(--ce-space-2);
}

.ce-toc__list {
	counter-reset: ce-toc;
	font-size: .9375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ce-toc__list li {
	counter-increment: ce-toc;
	margin: 0;
}

.ce-toc__list a {
	color: var(--ce-charcoal);
	display: flex;
	gap: var(--ce-space-2);
	line-height: 1.35;
	padding-block: var(--ce-space-2);
	text-decoration: none;
}

.ce-toc__list a::before {
	color: var(--ce-terracotta-ink);
	content: counter(ce-toc) ".";
	flex: 0 0 1.5em;
	font-weight: 700;
}

.ce-toc__list a:hover { color: var(--ce-forest); text-decoration: underline; }

.ce-legal__body h2,
.ce-legal__body h4 {
	font-size: 1.5rem;
	margin: var(--ce-space-12) 0 var(--ce-space-3);
	scroll-margin-top: 96px;
}

.ce-legal__body h2:first-child,
.ce-legal__body h4:first-child { margin-top: 0; }

.ce-legal__body h6 {
	color: var(--ce-muted);
	font-family: var(--ce-font-sans);
	font-size: .8125rem;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ce-legal__body ul,
.ce-legal__body ol {
	margin-left: var(--ce-space-6);
}

.ce-legal__body li { margin-bottom: var(--ce-space-2); }

.ce-legal__body strong { color: var(--ce-charcoal); }

/* About: steps -------------------------------------------------------- */
.ce-steps {
	counter-reset: ce-step;
	display: grid;
	gap: var(--ce-space-6);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	list-style: none;
	margin: 0 0 var(--ce-space-12);
	padding: 0;
}

.ce-steps__item {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	counter-increment: ce-step;
	margin: 0;
	padding: var(--ce-space-6);
}

.ce-steps__item::before {
	color: var(--ce-terracotta-ink);
	content: "0" counter(ce-step);
	display: block;
	font-family: var(--ce-font-serif);
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: var(--ce-space-3);
}

.ce-steps__title {
	font-size: 1.25rem;
	margin: 0 0 var(--ce-space-2);
}

.ce-steps__text {
	color: var(--ce-muted);
	font-size: .9375rem;
	margin: 0;
}

.ce-lead {
	color: var(--ce-charcoal);
	font-size: clamp(1.125rem, 1rem + .5vw, 1.375rem);
	line-height: 1.6;
	max-width: 62ch;
}

/* Contact ------------------------------------------------------------- */
.ce-contact-cards {
	display: grid;
	gap: var(--ce-space-4);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
	list-style: none;
	margin: 0 0 var(--ce-space-12);
	padding: 0;
}

.ce-contact-card {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	margin: 0;
	padding: var(--ce-space-6);
}

.ce-contact-card__label {
	color: var(--ce-terracotta-ink);
	display: block;
	font-size: var(--ce-fs-eyebrow);
	font-weight: 600;
	letter-spacing: .12em;
	margin-bottom: var(--ce-space-2);
	text-transform: uppercase;
}

.ce-contact-card__value {
	color: var(--ce-forest-dark);
	font-family: var(--ce-font-serif);
	font-size: 1.25rem;
	font-weight: 600;
	overflow-wrap: anywhere;
}

.ce-contact-card__value--text {
	font-family: var(--ce-font-sans);
	font-size: 1rem;
	font-weight: 500;
}

.ce-contact-layout {
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	margin-bottom: var(--ce-space-16);
}

.ce-contact-layout iframe {
	aspect-ratio: 4 / 3;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	height: auto;
	width: 100%;
}

/* Contact Form 7 */
.wpcf7 form {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	padding: var(--ce-space-6);
}

.wpcf7 label {
	display: block;
	margin-bottom: var(--ce-space-4);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
	margin-top: var(--ce-space-1);
	width: 100%;
}

.wpcf7 input[type="submit"] {
	background-color: var(--ce-forest);
	border-color: var(--ce-forest);
	color: var(--ce-on-dark);
	min-height: 48px;
}

.wpcf7-not-valid-tip {
	color: var(--ce-error);
	font-size: var(--ce-fs-small);
}

.wpcf7 form .wpcf7-response-output {
	border-radius: var(--ce-radius-sm);
	margin: var(--ce-space-4) 0 0;
	padding: var(--ce-space-3) var(--ce-space-4);
}

/* FAQ: core Details block -------------------------------------------- */
.wp-block-details {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	margin: 0 0 var(--ce-space-3);
	max-width: 80ch;
	padding: 0;
}

.wp-block-details summary {
	align-items: center;
	color: var(--ce-forest-dark);
	cursor: pointer;
	display: flex;
	font-family: var(--ce-font-serif);
	font-size: 1.125rem;
	font-weight: 600;
	gap: var(--ce-space-4);
	justify-content: space-between;
	list-style: none;
	min-height: 56px;
	padding: var(--ce-space-3) var(--ce-space-6);
}

.wp-block-details summary::-webkit-details-marker { display: none; }

.wp-block-details summary::after {
	border-bottom: 2px solid var(--ce-forest);
	border-right: 2px solid var(--ce-forest);
	content: "";
	flex: 0 0 auto;
	height: 9px;
	transform: rotate(45deg);
	transition: transform var(--ce-dur-menu) var(--ce-ease);
	width: 9px;
}

.wp-block-details[open] summary::after { transform: rotate(-135deg); }

.wp-block-details > :not(summary) {
	color: var(--ce-charcoal);
	margin: 0;
	padding: 0 var(--ce-space-6) var(--ce-space-6);
}

.ce-faq-group {
	font-size: var(--ce-fs-h3);
	margin: var(--ce-space-12) 0 var(--ce-space-4);
}

/* 404 ------------------------------------------------------------------ */
.ce-404 {
	padding-block: clamp(48px, 8vw, 112px);
}

.ce-404__inner {
	margin-inline: auto;
	max-width: 720px;
	padding-inline: var(--ce-gutter);
	text-align: center;
}

.ce-404__title {
	font-size: var(--ce-fs-h1);
	font-weight: 500;
	margin: var(--ce-space-3) 0 var(--ce-space-4);
}

.ce-404__text {
	color: var(--ce-muted);
	font-size: 1.125rem;
	margin-bottom: var(--ce-space-6);
}

.ce-404__search {
	margin: 0 auto var(--ce-space-8);
	max-width: 520px;
}

.ce-404 .ce-chip-list { justify-content: center; }

.ce-404__search form,
.ce-404__search .searchform {
	display: flex;
}

.ce-404__search input[type="search"] {
	border-radius: 999px 0 0 999px;
	flex: 1 1 auto;
	margin: 0;
	padding-inline: var(--ce-space-6);
}

.ce-404__search button[type="submit"],
.ce-404__search .button {
	background-color: var(--ce-forest);
	border: 1px solid var(--ce-forest);
	border-radius: 0 999px 999px 0;
	color: var(--ce-on-dark);
	margin: 0;
	min-height: var(--ce-control-height);
	min-width: 56px;
	padding: 0 var(--ce-space-4);
}

/* Responsive ----------------------------------------------------------- */
@media (max-width: 849px) {
	.ce-legal { grid-template-columns: 1fr; }
	.ce-toc { position: static; }
	.ce-contact-layout { grid-template-columns: 1fr; }
}

@media (max-width: 549px) {
	.ce-page-header__title { font-size: 2.25rem; }
	.wp-block-details summary { padding-inline: var(--ce-space-4); }
	.wp-block-details > :not(summary) { padding-inline: var(--ce-space-4); }
}

/* ==========================================================================
   Editorial page components (About / Contact redesign)
   ========================================================================== */

/* Page intro band (holds the H1) */
.ce-intro {
	background:
		radial-gradient(90% 120% at 100% 0%, rgba(197, 163, 106, .14), transparent 60%),
		var(--ce-ivory);
	border-bottom: 1px solid var(--ce-border);
	padding-block: clamp(32px, 4.5vw, 64px) clamp(24px, 3vw, 40px);
}

.ce-intro + .ce-home-band { padding-top: clamp(24px, 3vw, 40px); }

.ce-intro__inner {
	margin-inline: auto;
	max-width: var(--ce-container);
	padding-inline: var(--ce-gutter);
}

.ce-intro__title {
	font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.25rem);
	font-weight: 500;
	letter-spacing: -.02em;
	margin: var(--ce-space-3) 0 var(--ce-space-4);
	max-width: 18ch;
}

.ce-intro__text {
	color: var(--ce-muted);
	font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
	margin: 0 0 var(--ce-space-6);
	max-width: 56ch;
}

.ce-intro__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-3);
}

.ce-intro__actions .button { margin: 0; }

/* Split: text beside a real product image */
.ce-split {
	align-items: center;
	display: grid;
	gap: clamp(32px, 5vw, 80px);
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
}

.ce-split--reverse .ce-split__media { order: -1; }
.ce-split--text-only { grid-template-columns: minmax(0, 72ch); }

.ce-split__title {
	font-size: var(--ce-fs-h2);
	margin: var(--ce-space-2) 0 var(--ce-space-6);
}

.ce-split__text p {
	color: var(--ce-charcoal);
	font-size: 1.0625rem;
	line-height: 1.75;
	max-width: 60ch;
}

.ce-split__text p:first-child {
	font-family: var(--ce-font-serif);
	font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem);
	line-height: 1.5;
}

.ce-split__media {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-lg);
	box-shadow: var(--ce-shadow);
	display: block;
	overflow: hidden;
	position: relative;
	text-decoration: none;
}

.ce-split__media img {
	aspect-ratio: 4 / 5;
	object-fit: contain;
	padding: var(--ce-space-8);
	transition: transform 500ms var(--ce-ease);
	width: 100%;
}

.ce-split__media:hover img { transform: scale(1.03); }

.ce-split__caption {
	background-color: rgba(255, 253, 249, .94);
	border-top: 1px solid var(--ce-border);
	bottom: 0;
	color: var(--ce-muted);
	font-size: var(--ce-fs-small);
	left: 0;
	padding: var(--ce-space-3) var(--ce-space-4);
	position: absolute;
	right: 0;
}

/* Steps as plain cards (no numbers): "Made for" */
.ce-steps--cards .ce-steps__item::before {
	background-color: var(--ce-brass);
	content: "";
	height: 2px;
	margin-bottom: var(--ce-space-4);
	width: 32px;
}

/* Contact cards: icons + no mid-word email breaks */
.ce-contact-cards {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
}

.ce-contact-card {
	align-content: start;
	display: grid;
	gap: var(--ce-space-1);
	transition: border-color var(--ce-dur-fast) var(--ce-ease), box-shadow var(--ce-dur-fast) var(--ce-ease);
}

.ce-contact-card:has(a:hover) {
	border-color: var(--ce-forest);
	box-shadow: var(--ce-shadow);
}

.ce-contact-card .ce-icon {
	background-color: var(--ce-ivory);
	border-radius: 50%;
	box-sizing: content-box;
	color: var(--ce-forest);
	margin-bottom: var(--ce-space-3);
	padding: 10px;
}

.ce-contact-card__value {
	font-size: 1.125rem;
	overflow-wrap: break-word;
	word-break: normal;
}

a.ce-contact-card__value[href^="mailto:"] {
	font-size: 1rem;
}

/* Contact: form + aside */
.ce-contact-grid {
	align-items: start;
	display: grid;
	gap: clamp(24px, 4vw, 56px);
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
}

.ce-contact-grid h2 {
	font-size: var(--ce-fs-h3);
	margin: 0 0 var(--ce-space-4);
}

.ce-contact-aside {
	display: grid;
	gap: var(--ce-space-6);
}

.ce-contact-aside iframe {
	aspect-ratio: 4 / 3;
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-md);
	height: auto;
	width: 100%;
}

.ce-contact-aside .wp-block-details { margin-bottom: var(--ce-space-2); }

.ce-contact-aside a:not(.button) {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: .2em;
}

.ce-contact-aside .wp-block-details summary {
	font-size: 1rem;
	min-height: 48px;
	padding: var(--ce-space-2) var(--ce-space-4);
}

.ce-contact-aside .wp-block-details > :not(summary) {
	font-size: .9375rem;
	padding: 0 var(--ce-space-4) var(--ce-space-4);
}

.wpcf7 textarea {
	min-height: 160px;
	resize: vertical;
}

.wpcf7 input[type="submit"] {
	min-width: 180px;
}

/* Closing CTA band */
.ce-cta-band {
	background-color: var(--ce-paper);
	border: 1px solid var(--ce-border);
	border-radius: var(--ce-radius-lg);
	display: grid;
	gap: var(--ce-space-6);
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	padding: clamp(24px, 4vw, 48px);
}

.ce-cta-band h2 {
	font-size: var(--ce-fs-h3);
	margin: 0 0 var(--ce-space-2);
}

.ce-cta-band p { color: var(--ce-muted); margin: 0; }

.ce-cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--ce-space-3);
}

.ce-cta-band__actions .button { margin: 0; }

.ce-home-band:last-child { padding-bottom: clamp(48px, 7vw, 88px); }

@media (max-width: 849px) {
	.ce-split,
	.ce-contact-grid,
	.ce-cta-band { grid-template-columns: 1fr; }
	.ce-split__media { max-width: 480px; }
}

@media (max-width: 549px) {
	.ce-intro__actions .button,
	.ce-cta-band__actions .button { flex: 1 1 100%; }
}
