/* ACPHARM theme — component styles. Colours and type come from theme.json presets. */

:root {
	--acp-radius-md: 12px;
	--acp-radius-lg: 20px;
	--acp-night: var(--wp--preset--color--night);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--lime);
	outline-offset: 2px;
	border-radius: 4px;
}
.screen-reader-text:focus { clip: auto !important; }

/* ---------- Skip link ---------- */
.acp-skip {
	position: absolute; left: 1rem; top: -4rem; z-index: 1000;
	background: var(--wp--preset--color--white); color: var(--wp--preset--color--ink);
	padding: .75rem 1rem; border-radius: var(--acp-radius-md); font-weight: 700;
}
.acp-skip:focus { top: 1rem; }

/* ---------- Header ---------- */
.acp-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--acp-night); color: var(--wp--preset--color--white);
}
body.admin-bar .acp-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .acp-header { top: 0; } }
.acp-header a { color: inherit; text-decoration: none; }
.acp-header .acp-logo img { height: 36px; width: auto; display: block; }
.acp-header .wp-block-navigation a:hover { color: var(--wp--preset--color--lime); }
.acp-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--acp-night) !important; color: var(--wp--preset--color--white) !important;
}
.acp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.25rem; }
@media (max-width: 599px) { .acp-header .acp-header-ctas .is-style-ghost-light { display: none; } }

/* ---------- Buttons ---------- */
.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
	transition: transform .15s ease, background-color .15s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-lime .wp-block-button__link {
	background: var(--wp--preset--color--lime); color: var(--acp-night);
}
.wp-block-button.is-style-lime .wp-block-button__link:hover { background: #9fe31a; }
.wp-block-button.is-style-ghost-light .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border: 2px solid currentColor; }
.wp-block-button.is-style-ghost-light .wp-block-button__link { color: var(--wp--preset--color--white); border-color: rgba(255,255,255,.45); }
.wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--green-ink); }
.wp-block-buttons.is-small .wp-block-button__link { min-height: 40px; padding: .5rem 1rem; font-size: .8125rem; }

/* ---------- Hero: helix section ---------- */
.wp-block-group.is-style-helix {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--acp-night); color: var(--wp--preset--color--white);
}
.wp-block-group.is-style-helix :where(h1, h2, h3) { color: var(--wp--preset--color--white); }
.wp-block-group.is-style-helix p { color: var(--wp--preset--color--mist); }
.wp-block-group.is-style-helix .acp-accent { color: var(--wp--preset--color--lime); }
.acp-helix-canvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
/* Static fallback so the section still carries the brand pattern without JS. */
.wp-block-group.is-style-helix::before {
	content: ""; position: absolute; inset: 0; z-index: -2;
	background: radial-gradient(ellipse at 78% 30%, rgba(116,116,193,.28), transparent 60%);
}
.acp-hero-photo img { aspect-ratio: 4 / 5; object-fit: cover; box-shadow: var(--wp--preset--shadow--photo); }
@media (max-width: 781px) { .acp-hero-photo img { aspect-ratio: 16 / 10; } }
.acp-facts { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; font-size: .8125rem; }
.acp-facts strong { color: var(--wp--preset--color--white); }

/* ---------- Cards ---------- */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--acp-radius-md);
	overflow: hidden; height: 100%;
	transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.wp-block-group.is-style-card:hover { border-color: var(--wp--preset--color--green); transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--card); }
.wp-block-group.is-style-card > .wp-block-image { margin: 0; }
.wp-block-group.is-style-card > .wp-block-image img { border-radius: 0; aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.wp-block-group.is-style-card .acp-card-body { padding: 1.25rem; }
.acp-more a { font-weight: 700; text-decoration: none; }
.acp-more a::after { content: " →"; }

/* ---------- Numbered steps ---------- */
.wp-block-list.is-style-steps {
	list-style: none; padding: 0; margin: 0; counter-reset: acp-step;
	display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
}
.wp-block-list.is-style-steps > li {
	counter-increment: acp-step; padding-top: 1rem;
	border-top: 2px solid var(--wp--preset--color--green); color: var(--wp--preset--color--charcoal);
}
.wp-block-list.is-style-steps > li::before {
	content: counter(acp-step, decimal-leading-zero); display: block; margin-bottom: .4rem;
	font-family: var(--wp--preset--font-family--mono); font-size: .8125rem; color: var(--wp--preset--color--green-ink);
}
.wp-block-list.is-style-steps > li strong { display: block; color: var(--wp--preset--color--ink); font-size: 1.0625rem; }

/* ---------- Notices ---------- */
.wp-block-group.is-style-notice-info,
.wp-block-group.is-style-notice-action { border-radius: 10px; padding: 1rem 1.25rem; }
.wp-block-group.is-style-notice-info { background: var(--wp--preset--color--tint-violet); color: #2A2560; }
.wp-block-group.is-style-notice-action { background: var(--wp--preset--color--tint-amber); color: #5C4000; }
.wp-block-group.is-style-notice-info :where(h2,h3,h4,p),
.wp-block-group.is-style-notice-action :where(h2,h3,h4,p) { color: inherit; margin: 0; }

/* ---------- FAQ ---------- */
.wp-block-details summary { cursor: pointer; font-weight: 700; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--wp--preset--font-family--mono); color: var(--wp--preset--color--green-ink); }
.wp-block-details[open] summary::after { content: "–"; }

/* ---------- Eyebrow / small labels ---------- */
.acp-eyebrow { font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--periwinkle); }
.is-style-helix .acp-eyebrow, .acp-night .acp-eyebrow { color: var(--wp--preset--color--lime); }

/* ---------- Video ---------- */
.acp-video video { width: 100%; box-shadow: var(--wp--preset--shadow--photo); background: var(--acp-night); }

/* ---------- Footer ---------- */
.acp-footer { background: var(--acp-night); color: #B9B9DA; font-size: .875rem; }
.acp-footer a { color: var(--wp--preset--color--white); text-decoration: none; }
.acp-footer a:hover { text-decoration: underline; }
.acp-footer h2, .acp-footer h3 { color: var(--wp--preset--color--white); font-size: 1rem; }
.acp-footer .acp-logo img { height: 34px; width: auto; }
.acp-footer .acp-legal { border-top: 1px solid rgba(255,255,255,.12); font-size: .8125rem; }

/* ---------- Secure form template ---------- */
.acp-secure-note { display: inline-flex; align-items: center; gap: .4rem; font-size: .8125rem; color: var(--wp--preset--color--mist); }
.acp-secure-note svg { width: 14px; height: 14px; }

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Footer link lists: no bullets */
.acp-footer .wp-block-list { list-style: none; padding-left: 0; margin: 0; display: grid; gap: .35rem; }
/* No gap between the last page band and the footer */
.wp-site-blocks > footer, .wp-site-blocks > main + * { margin-block-start: 0; }
.wp-site-blocks > main > .entry-content > .alignfull:last-child { margin-block-end: 0; }
