/* ==========================================================================
   Components: buttons, cards, badges, forms, accordion, filters, downloads
   ========================================================================== */

/* ---- Buttons ------------------------------------------------------------- */

.btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 26px;
	font-size: .72rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 500;
	white-space: nowrap;
	border: 1px solid currentColor;
	transition: background-color .2s ease, color .2s ease, opacity .2s ease;
}
.btn svg { width: 14px; height: 14px; transition: transform .2s ease; }
.btn:hover svg { transform: translateX(3px); }

.btn--dark { background: var(--amn-navy); color: var(--amn-on-navy); border-color: var(--amn-navy); }
.btn--dark:hover { background: #1a2246; }

.btn--light { background: var(--amn-on-navy); color: var(--amn-navy); border-color: var(--amn-on-navy); }
.btn--light:hover { opacity: .88; }

/* The fill must be an explicit colour, not currentColor: these rules also
   change `color`, and currentColor resolves to that new value — which made
   the hover state paint the text and the background the same shade. */
.btn--outline { background: transparent; color: inherit; }
.btn--outline:hover,
.btn--outline:focus-visible {
	background: var(--amn-ink);
	color: var(--amn-bg);
	border-color: var(--amn-ink);
}
.amn-theme-dark .btn--outline:hover,
.amn-theme-dark .btn--outline:focus-visible {
	background: var(--amn-on-navy);
	color: var(--amn-navy);
	border-color: var(--amn-on-navy);
}

.btn--text { border: none; padding: 0 0 8px; font-size: .8rem; letter-spacing: .1em; border-bottom: 1px solid currentColor; border-radius: 0; }

/* ---- Status badge --------------------------------------------------------- */

.amn-status { display: inline-flex; align-items: center; gap: 7px; font-size: .68rem; letter-spacing: .1em; font-weight: 500; }
.amn-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; display: inline-block; }
.amn-status--available { color: var(--amn-status-available); }
.amn-status--reserved { color: var(--amn-status-reserved); }
.amn-status--placed { color: var(--amn-status-placed); }

/* ---- Placeholder media ----------------------------------------------------- */

.amn-placeholder {
	width: 100%; aspect-ratio: 4/5;
	display: flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, #1b2140 0%, #3a3f5c 45%, #6b6558 100%);
	color: rgba(255,255,255,.75);
	font-family: var(--font-serif);
	font-size: 1.6rem;
	letter-spacing: .04em;
}
.amn-placeholder--wide { aspect-ratio: 16/10; }
.amn-placeholder--square { aspect-ratio: 1/1; }

/* ---- Cards ------------------------------------------------------------- */

.amn-card { display: block; }
.amn-card__media { overflow: hidden; margin-bottom: 1.1rem; background: var(--amn-bg-alt); }
.amn-card__media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; transition: transform .5s ease; }
.amn-card:hover .amn-card__media img { transform: scale(1.035); }
.amn-card__media--wide img { aspect-ratio: 16/10; }
.amn-card__eyebrow { font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--amn-ink-soft); margin-bottom: .3rem; }
.amn-theme-dark .amn-card__eyebrow { color: var(--amn-on-navy-soft); }
.amn-card h3 { font-size: 1.15rem; margin-bottom: .3rem; }
.amn-card__meta { font-size: .82rem; color: var(--amn-ink-soft); margin-bottom: .5rem; line-height: 1.55; }
.amn-theme-dark .amn-card__meta { color: var(--amn-on-navy-soft); }
.amn-card__link { font-size: .74rem; letter-spacing: .08em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 8px; margin-top: .4rem; }
.amn-card__link svg { width: 13px; height: 13px; }

/* ---- Spatial Crossfade (Exhibitions & Projects, section 21) --------------
   Two real documentation photos, the second layered directly over the
   first and revealed with a slow, controlled fade — never an automatic
   slideshow. Restricted to hover-capable, motion-safe contexts: touch
   devices and prefers-reduced-motion both simply see photo A, static,
   which is why it is written first in markup and never hidden by default. */
.amn-card--crossfade .amn-card__media { position: relative; }
.amn-card--crossfade .amn-card__crossfade-b {
	position: absolute;
	inset: 0;
	opacity: 0;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.amn-card--crossfade .amn-card__crossfade-b { transition: opacity 1.1s ease; }
	.amn-card--crossfade:hover .amn-card__crossfade-b,
	.amn-card--crossfade:focus-within .amn-card__crossfade-b { opacity: 1; }
}

/* ---- Proportion Reveal (Catalog, section 17) ------------------------------
   Calm dimensions overlay: no layout shift (absolutely positioned over the
   image, never pushing content), no image distortion (the reveal never
   touches the img's own object-fit/aspect-ratio), no colour beyond the
   site's own dark/on-navy pairing. Desktop/keyboard: :hover / :focus-within
   on the card. Touch: the dedicated __toggle button below, so the first tap
   still just opens the work rather than being swallowed by the reveal. */
.amn-card--reveal .amn-card__media { position: relative; }
.amn-proportion-reveal {
	position: absolute;
	inset: auto 0 0 0;
	padding: .6rem .8rem;
	background: linear-gradient(0deg, rgba(0,0,53,.82), rgba(0,0,53,0));
	color: var(--amn-on-navy);
	font-size: .72rem;
	letter-spacing: .04em;
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .3s ease, transform .3s ease;
	pointer-events: none;
}
.amn-card--reveal:hover .amn-proportion-reveal,
.amn-card--reveal:focus-within .amn-proportion-reveal,
.amn-card--reveal.is-revealed .amn-proportion-reveal {
	opacity: 1;
	transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
	.amn-proportion-reveal { transition: none; }
}

.amn-proportion-reveal__toggle {
	position: absolute;
	top: .6rem;
	right: .6rem;
	width: 30px;
	height: 30px;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0,0,53,.7);
	color: var(--amn-on-navy);
	border-radius: 50%;
}
/* Touch-only control: fine-pointer devices already get the hover reveal,
   so the button would be redundant chrome sitting on top of every card. */
@media (hover: none), (pointer: coarse) {
	.amn-card--reveal .amn-proportion-reveal__toggle { display: flex; }
}

/* ---- Filters / tabs -------------------------------------------------------- */

.amn-filters {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px;
	padding: 1.4rem 0; border-top: 1px solid var(--amn-line); border-bottom: 1px solid var(--amn-line);
	margin-bottom: 3rem; font-size: .78rem; letter-spacing: .04em;
}
.amn-theme-dark .amn-filters { border-color: var(--amn-line-navy); }
.amn-filters__divider { width: 1px; height: 16px; background: var(--amn-line); }
.amn-filters a { padding-bottom: 3px; opacity: .55; border-bottom: 1px solid transparent; text-transform: capitalize; }
.amn-filters a:hover { opacity: .85; }
.amn-filters a.is-active { opacity: 1; border-bottom-color: currentColor; font-weight: 500; }

/* ---- Accordion ------------------------------------------------------------ */

.amn-accordion__item { border-top: 1px solid var(--amn-line); }
.amn-accordion__item:last-child { border-bottom: 1px solid var(--amn-line); }
.amn-theme-dark .amn-accordion__item,
.amn-theme-dark .amn-accordion__item:last-child { border-color: var(--amn-line-navy); }
.amn-accordion__trigger {
	width: 100%; display: flex; align-items: center; justify-content: space-between;
	padding: 1.1rem 0; text-align: left; font-family: var(--font-serif); font-size: 1.02rem; color: var(--amn-ink);
}
.amn-theme-dark .amn-accordion__trigger { color: var(--amn-on-navy); }
/* Shared +/− mark: the vertical stroke fades out when the owning row is
   open. Used by the accordion and by the Exhibition detail rows. */
.amn-plus { position: relative; width: 14px; height: 14px; flex: none; }
.amn-plus::before,
.amn-plus::after { content: ''; position: absolute; background: currentColor; }
.amn-plus::before { left: 0; top: 50%; width: 100%; height: 1px; transform: translateY(-50%); }
.amn-plus::after { top: 0; left: 50%; width: 1px; height: 100%; transform: translateX(-50%); transition: opacity .2s ease; }
.amn-accordion__trigger .amn-plus { margin-left: 1rem; }
.amn-accordion__item.is-open .amn-plus::after,
.amn-detail-row.is-open .amn-plus::after { opacity: 0; }
.amn-accordion__panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.amn-accordion__panel-inner { padding-bottom: 1.4rem; font-size: .92rem; line-height: 1.7; }

/* ---- Read more ----------------------------------------------------------- */

.amn-readmore__more { display: none; }
.amn-readmore.is-open .amn-readmore__more { display: block; }
.amn-readmore__toggle { margin-top: .4rem; }
.amn-readmore__label-less { display: none; }
.amn-readmore.is-open .amn-readmore__label-more { display: none; }
.amn-readmore.is-open .amn-readmore__label-less { display: inline; }
.amn-readmore__chevron { width: 12px; height: 12px; transition: transform .2s ease; }
.amn-readmore.is-open .amn-readmore__chevron { transform: rotate(180deg); }

/* ---- Forms ------------------------------------------------------------ */

.amn-field { margin-bottom: 1.4rem; }
.amn-field label { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; opacity: .7; }
.amn-field input,
.amn-field textarea,
.amn-field select {
	width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--amn-line);
	padding: .55rem 0; color: inherit;
}
.amn-theme-dark .amn-field input,
.amn-theme-dark .amn-field textarea,
.amn-theme-dark .amn-field select { border-color: var(--amn-line-navy); }
.amn-field input:focus, .amn-field textarea:focus, .amn-field select:focus { outline: none; border-color: currentColor; }
.amn-field textarea { resize: vertical; min-height: 120px; border: 1px solid var(--amn-line); padding: .8rem; }
.amn-theme-dark .amn-field textarea { border-color: var(--amn-line-navy); }
.amn-honeypot { position: absolute; left: -9999px; opacity: 0; }

.amn-field--checkbox label {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: .82rem;
	letter-spacing: normal;
	text-transform: none;
	opacity: 1;
	cursor: pointer;
}
.amn-field--checkbox input[type="checkbox"] { width: auto; flex: none; margin-top: .2rem; }
.amn-field--checkbox a { text-decoration: underline; }

.amn-form-notice { padding: 1rem 1.2rem; margin-bottom: 1.6rem; font-size: .85rem; border: 1px solid currentColor; }
.amn-form-notice--success { color: var(--amn-status-available); }
.amn-form-notice--error { color: var(--amn-status-reserved); }

/* ---- Download / list rows -------------------------------------------------- */

.amn-list-row {
	display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
	padding: 1.1rem 0; border-top: 1px solid var(--amn-line);
}
.amn-list-row:last-child { border-bottom: 1px solid var(--amn-line); }
.amn-theme-dark .amn-list-row,
.amn-theme-dark .amn-list-row:last-child { border-color: var(--amn-line-navy); }
.amn-list-row__title { display: flex; align-items: center; gap: 14px; font-family: var(--font-serif); font-size: 1.02rem; color: var(--amn-ink); }
.amn-theme-dark .amn-list-row__title { color: var(--amn-on-navy); }
.amn-list-row__meta { display: flex; align-items: center; gap: 1.6rem; font-size: .78rem; opacity: .65; white-space: nowrap; }
.amn-list-row__icon { width: 18px; height: 18px; flex: none; opacity: .6; }
.amn-list-row__download { width: 16px; height: 16px; }

/* ---- Numbered feature blocks (Core Theses / Practice) ------------------------ */

.amn-numbered__index { font-family: var(--font-serif); font-size: 1.3rem; color: var(--amn-ink-soft); margin-bottom: .4rem; display: block; }
.amn-theme-dark .amn-numbered__index { color: var(--amn-on-navy-soft); }
.amn-numbered h4 { margin-bottom: .5rem; }
.amn-numbered p { font-size: .88rem; line-height: 1.7; }

.amn-core-theses { display: grid; grid-template-columns: repeat(4, 1fr); }
.amn-core-theses .amn-numbered {
	display: flex;
	gap: 14px;
	padding: 1.6rem clamp(1rem, 2vw, 1.6rem);
	border-right: 1px solid var(--amn-line);
}
.amn-theme-dark .amn-core-theses .amn-numbered { border-color: var(--amn-line-navy); }
.amn-core-theses .amn-numbered:first-child { padding-left: 0; }
.amn-core-theses .amn-numbered:last-child { border-right: none; }
.amn-core-theses .amn-numbered__index { margin-bottom: 0; flex: none; }
@media (max-width: 900px) {
	.amn-core-theses { grid-template-columns: repeat(2, 1fr); }
	.amn-core-theses .amn-numbered:nth-child(2n) { border-right: none; }
}
@media (max-width: 640px) {
	.amn-core-theses { grid-template-columns: 1fr; }
	.amn-core-theses .amn-numbered { border-right: none; border-bottom: 1px solid var(--amn-line); }
	.amn-theme-dark .amn-core-theses .amn-numbered { border-bottom-color: var(--amn-line-navy); }
	.amn-core-theses .amn-numbered:last-child { border-bottom: none; }
}

/* ---- Gallery main image (single artwork / exhibition) ----------------------- */

/* Without these, the image keeps base.css's `max-width:100%; height:auto`
   and so renders at its own intrinsic size inside the frame — leaving
   dead space to the right of it and, where the frame has a fixed
   aspect-ratio (single Exhibition), a growing gap above the thumbnails
   as the viewport widens. Filling the frame is what both templates want.
   On the Product template the frame has no aspect-ratio, so height:100%
   resolves against an auto height and correctly behaves as `auto`. */
.amn-artwork__main { overflow: hidden; background: var(--amn-bg-alt); position: relative; }
.amn-artwork__main img,
.amn-artwork__main .amn-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.amn-artwork__main[data-amn-lens] { cursor: zoom-in; }

/* ---- Material Lens (Artwork Detail, section 19) --------------------------
   Circular magnifier, positioned/sized entirely by main.js. Hidden until
   is-active so it never flashes at a stale 0,0 position before the first
   pointermove; background-image is set once, lazily, on first activation. */
.amn-lens {
	position: absolute;
	width: 220px;
	height: 220px;
	border-radius: 50%;
	pointer-events: none;
	transform: translate(-50%, -50%);
	border: 1px solid rgba(255,255,255,.7);
	box-shadow: 0 0 0 1px rgba(0,0,53,.25), 0 8px 30px rgba(0,0,53,.35);
	background-repeat: no-repeat;
	opacity: 0;
	visibility: hidden;
	transition: opacity .15s ease;
	z-index: 2;
}
.amn-lens.is-active { opacity: 1; visibility: visible; }
@media (max-width: 780px) {
	/* Fine-pointer-only feature (see main.js's matchMedia gate) — this just
	   keeps a stray lens element out of layout on a touch device that
	   somehow still matches hover:hover (some hybrid laptops/tablets). */
	.amn-lens { width: 160px; height: 160px; }
}

/* ---- Gallery thumbnails (single artwork / exhibition) ------------------------ */

/* Five even columns rather than fixed-width flex items, so the row spans
   the media column at the size the design calls for. Fewer than five
   images keep that same size instead of stretching; more than five wrap.
   `flex: 1` still applies where this sits inside .amn-thumbs-row. */
.amn-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; flex: 1; padding-top: 10px;}
.amn-thumbs button {
	width: 100%;
	/* Constant padding so the active border appears without shifting layout. */
	padding: 4px;
	border: 1px solid transparent;
}
/* width:100% (not the intrinsic size) guarantees a true square even when
   the source thumbnail is smaller than the cell. */
.amn-thumbs img { width: 100%; aspect-ratio: 1/1; object-fit: cover; }
.amn-thumbs button.is-active { border-color: var(--amn-ink); }
.amn-theme-dark .amn-thumbs button.is-active { border-color: var(--amn-on-navy); }
@media (max-width: 520px) {
	.amn-thumbs { grid-template-columns: repeat(4, 1fr); }
}
.amn-thumbs span { display: block; font-size: .65rem; text-align: center; margin-top: 6px; letter-spacing: .04em; opacity: .65; }

.amn-artwork__credit { font-size: .72rem; opacity: .55; margin-top: .6rem; text-align: right; }

/* ---- Signature mark (secondary personal mark, section 1) ---------------
   A typographic stand-in rather than a scanned signature image — no
   authentic Marlon Nikolai signature file exists in the project assets
   yet (see the delivery notes). Swap this for a real scanned signature
   whenever Marlon supplies one; nothing else needs to change. */
.amn-signature-mark {
	display: inline-block;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 1.7rem;
	letter-spacing: .02em;
	margin-top: 1.4rem;
	opacity: .82;
}

/* ---- Artwork "Details" close-crop grid (single product) ---------------- */

.amn-artwork-details h2 { margin-bottom: .3rem; }
.amn-detail-thumb { overflow: hidden; background: var(--amn-bg-alt); }
.amn-detail-thumb img { width: 100%; aspect-ratio: 1/1; object-fit: cover; display: block; transition: transform .5s ease; }
.amn-detail-thumb:hover img { transform: scale(1.04); }

.amn-gallery__meta { display: flex; justify-content: space-between; gap: 1rem; margin-top: .8rem; font-size: .8rem; opacity: .6; }
.amn-thumbs-row { display: flex; align-items: center; gap: 1rem; margin-top: 1.2rem; }
.amn-thumbs-arrow {
	flex: none;
	width: 34px;
	height: 34px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.4rem;
	line-height: 1;
	border: 1px solid var(--amn-line);
	opacity: .7;
}
.amn-thumbs-arrow:hover { opacity: 1; }
.amn-theme-dark .amn-thumbs-arrow { border-color: var(--amn-line-navy); }

/* ---- Exhibition detail rows ------------------------------------------------ */

.amn-detail-rows { margin-top: 2rem; border-top: 1px solid var(--amn-line); }
.amn-theme-dark .amn-detail-rows { border-color: var(--amn-line-navy); }
/* Proportional columns, so the row keeps its shape as the container
   widens: a generous label column, the summary held to a readable
   measure, then free space pushing the "+" to the far right. A plain
   `1fr` summary would run the text the whole width of the container. */
.amn-detail-row {
	display: grid;
	grid-template-columns: minmax(150px, 32%) minmax(0, 52ch) 1fr;
	gap: 1.6rem;
	align-items: start;
	padding: 1.4rem 0;
	border-bottom: 1px solid var(--amn-line);
	font-size: .9rem;
}
.amn-theme-dark .amn-detail-row { border-color: var(--amn-line-navy); }
.amn-detail-row__label { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--amn-ink-soft); }
.amn-theme-dark .amn-detail-row__label { color: var(--amn-on-navy-soft); }

.amn-detail-row__summary p:last-child { margin-bottom: 0; }
.amn-detail-row__work { display: block; margin-bottom: .6rem; }
.amn-detail-row__work:last-child { margin-bottom: 0; }

/* The expanded passage lives in the middle column, so it lines up under
   the summary rather than under the label. */
.amn-detail-row__panel { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.amn-detail-row__panel-inner { padding-top: .9rem; }
.amn-detail-row__panel-inner p:last-child { margin-bottom: 0; }

/* Only expandable rows get an interactive mark; the rest keep an empty
   cell so every row's columns still line up. */
.amn-detail-row__mark { text-align: right; opacity: .5; }
.amn-detail-row--expandable { cursor: pointer; }
button.amn-detail-row__mark {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0;
	color: inherit;
	transition: opacity .2s ease;
}
.amn-detail-row--expandable:hover button.amn-detail-row__mark,
button.amn-detail-row__mark:focus-visible { opacity: 1; }
.amn-detail-row.is-open button.amn-detail-row__mark { opacity: 1; }
@media (max-width: 640px) {
	.amn-detail-row { grid-template-columns: 1fr 24px; }
	.amn-detail-row__label { grid-column: 1 / -1; }
}

/* ---- Quote block --------------------------------------------------------- */

.amn-quote { font-family: var(--font-serif); font-size: 2rem; line-height: 1.4; font-style: italic; color: var(--amn-ink); }
.amn-theme-dark .amn-quote { color: var(--amn-on-navy); }
.amn-quote cite { display: block; margin-top: 1rem; font-style: normal; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; opacity: .6; }

.amn-quote__mark { display: block; font-family: var(--font-serif); font-size: 4rem; line-height: 1; color: var(--amn-ink); margin-bottom: .3rem; }
.amn-theme-dark .amn-quote__mark { color: var(--amn-on-navy); }

/* ---- Breadcrumb back link -------------------------------------------------- */

.amn-back { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 1.8rem; opacity: .75; }
.amn-back svg { width: 14px; height: 14px; }
.amn-back:hover { opacity: 1; }

/* ---- Pagination arrows ----------------------------------------------------- */

.amn-pager { display: flex; align-items: center; justify-content: space-between; padding: 1.6rem 0; border-top: 1px solid var(--amn-line); }
.amn-theme-dark .amn-pager { border-color: var(--amn-line-navy); }
.amn-pager a { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; letter-spacing: .07em; text-transform: uppercase; }

/* ---- WooCommerce: add to cart / stock / notices / reviews --------------------- */

/* The add-to-cart form is a block element, so it claimed the whole row and
   pushed the enquiry link beside it onto a second line. The container has to
   be the flex row, not just the form. */
.amn-product-cart { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin: 1.8rem 0; }
.amn-product-cart form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
/* Variable products need the full width for their variations table. */
.amn-product-cart form.variations_form { flex: 1 0 100%; }
/* A unique work is capped at quantity 1, so WooCommerce renders the quantity
   input as type="hidden" — leaving a zero-width .quantity plus the form's gap
   as dead space that indented the Acquire button out of alignment. */
.amn-product-cart .quantity:has(input.qty[type="hidden"]) { display: none; }
.amn-product-cart table.variations { width: 100%; margin-bottom: 1rem; }
.amn-product-cart table.variations td { padding: 0; }
.amn-product-cart table.variations label { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; opacity: .7; }
.amn-product-cart table.variations select {
	width: 100%; max-width: 280px; background: transparent; border: none; border-bottom: 1px solid var(--amn-line);
	padding: .55rem 0; color: inherit; font-size: .92rem;
}
.amn-product-cart .quantity { margin: 0; }
.amn-product-cart .quantity input.qty {
	width: 64px; background: transparent; border: none; border-bottom: 1px solid var(--amn-line);
	padding: .55rem 0; text-align: center; color: inherit; font-size: .95rem;
}
.amn-product-cart .quantity input.qty:focus { outline: none; border-color: currentColor; }
.amn-product-cart .button,
.amn-product-cart .single_add_to_cart_button {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 15px 26px; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
	border: 1px solid var(--amn-navy); background: var(--amn-navy); color: var(--amn-on-navy);
	transition: background-color .2s ease, opacity .2s ease; cursor: pointer;
}
.amn-product-cart .button:hover,
.amn-product-cart .single_add_to_cart_button:hover { background: #1a2246; }
.amn-product-cart .button.disabled,
.amn-product-cart .single_add_to_cart_button.disabled { opacity: .45; cursor: not-allowed; }
/* flex-basis 100%: availability always reads as its own line under the buttons. */
.amn-product-cart p.stock { flex: 1 0 100%; font-size: .78rem; letter-spacing: .04em; opacity: .7; margin: 0; }
.amn-product-cart p.stock.out-of-stock { color: var(--amn-status-placed); }
.amn-product-cart p.stock.available-on-backorder { color: var(--amn-status-reserved); }

.woocommerce-message, .woocommerce-error, .woocommerce-info {
	padding: 1rem 1.2rem; margin: 0 0 1.6rem; font-size: .85rem; border: 1px solid currentColor; list-style: none;
}
.woocommerce-error { color: var(--amn-status-reserved); }

.woocommerce-Reviews .comment-list { list-style: none; margin: 0 0 1.6rem; padding: 0; }
.woocommerce-Reviews .comment-list li { border-top: 1px solid var(--amn-line); padding: 1.1rem 0; }
.woocommerce-Reviews .comment-list li:last-child { border-bottom: 1px solid var(--amn-line); }
.woocommerce-Reviews .star-rating { color: var(--amn-status-reserved); font-size: .85rem; letter-spacing: 2px; }
.woocommerce-Reviews .comment-form label { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .5rem; opacity: .7; }
.woocommerce-Reviews .comment-form input[type="text"],
.woocommerce-Reviews .comment-form input[type="email"],
.woocommerce-Reviews .comment-form textarea {
	width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--amn-line); padding: .55rem 0; color: inherit; margin-bottom: 1.2rem;
}
.woocommerce-Reviews .comment-form textarea { resize: vertical; min-height: 100px; }
.woocommerce-Reviews .comment-form .form-submit input {
	display: inline-flex; align-items: center; gap: 10px; padding: 15px 26px; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 500;
	border: 1px solid var(--amn-navy); background: var(--amn-navy); color: var(--amn-on-navy); cursor: pointer;
}
