/*
Theme Name: Amistosa
Theme URI: https://www.amistosahavanese.ca/
Description: Warm, modern block theme for Amistosa Havanese. Child of Twenty Twenty-Five.
Template: twentytwentyfive
Version: 0.1.0
Requires at least: 6.7
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: amistosa
*/

/* ---------- Base ---------- */
:root {
	--am-radius-sm: var(--wp--custom--radius--sm, 10px);
	--am-radius-md: var(--wp--custom--radius--md, 18px);
	--am-radius-lg: var(--wp--custom--radius--lg, 28px);
	--am-shadow: var(--wp--custom--shadow--card);
	--am-crimson: var(--wp--preset--color--accent-1);
	--am-border: var(--wp--preset--color--border);
}
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--accent-2); }
:where(a) { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
:where(h1, h2, h3) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--am-crimson); outline-offset: 3px; border-radius: 4px; }
img { height: auto; }

/* Eyebrow / kicker text */
.am-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem !important;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--am-crimson);
	margin-bottom: 0.25rem !important;
}
.am-eyebrow::before { content: ""; display: inline-block; width: 1.75rem; height: 2px; background: currentColor; vertical-align: middle; margin-right: 0.6rem; transform: translateY(-2px); }
.has-text-align-center.am-eyebrow::before { display: none; }
.am-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--contrast-2); }
.am-script { font-family: var(--wp--preset--font-family--heading); font-style: italic; font-weight: 500; color: var(--am-crimson); }

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; border: 2px solid currentColor; color: var(--am-crimson);
	padding: calc(0.85em - 2px) calc(1.6em - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--am-crimson); color: #fff; border-color: var(--am-crimson); }
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(156,20,33,.55); }
.am-btn-light > .wp-block-button__link { background: #fff !important; color: var(--wp--preset--color--accent-2) !important; }
.am-btn-light > .wp-block-button__link:hover { background: var(--wp--preset--color--accent-3) !important; }
.am-textlink a { font-weight: 700; text-decoration: none; }
.am-textlink a::after { content: " \2192"; transition: margin .2s; }
.am-textlink a:hover::after { margin-left: .25em; }

/* Rounded media + cards */
.am-rounded img, .am-rounded.wp-block-cover { border-radius: var(--am-radius-lg); }
.am-card {
	background: var(--wp--preset--color--base-2);
	border: 1px solid var(--am-border);
	border-radius: var(--am-radius-md);
	box-shadow: var(--am-shadow);
}
.am-card--flat { box-shadow: none; }

/* ---------- Header ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 100; }
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.am-header {
	/* Solid, not backdrop-filter: a filter would trap the fixed mobile overlay inside the header. */
	background: #fff;
	border-bottom: 1px solid var(--am-border);
	box-shadow: 0 6px 24px -18px rgba(62,50,44,.35);
}
.am-logo { margin: 0 !important; }
.am-logo img { display: block; width: clamp(150px, 16vw, 190px) !important; }

/* Desktop navigation */
.am-nav .wp-block-navigation-item__content { padding: 0.55rem 0.15rem; color: var(--wp--preset--color--contrast); }
.am-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { position: relative; }
.am-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0.2rem; height: 2px; background: var(--am-crimson);
	transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.am-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.am-nav .current-menu-item > .wp-block-navigation-item__content::after,
.am-nav .current-menu-ancestor > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.am-nav .wp-block-navigation-item__content:hover { color: var(--am-crimson); }
.am-nav .wp-block-navigation__submenu-icon { margin-left: 0.3rem; color: var(--wp--preset--color--muted); }

/* Dropdown panels */
.am-nav .wp-block-navigation__submenu-container {
	min-width: 280px !important;
	padding: 0.6rem !important;
	border: 1px solid var(--am-border) !important;
	border-radius: var(--am-radius-md);
	background: #fff !important;
	box-shadow: 0 24px 48px -16px rgba(62,50,44,.28) !important;
	margin-top: 0.35rem;
}
.am-nav:not(.is-menu-open) .wp-block-navigation__container > .has-child > .wp-block-navigation__submenu-container { left: -0.85rem !important; right: auto !important; }
.am-nav .wp-block-navigation__submenu-container::before { content: ""; position: absolute; top: -0.6rem; left: 0; right: 0; height: 0.6rem; } /* hover bridge */
.am-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex; flex-direction: column; gap: 0.1rem;
	padding: 0.65rem 0.85rem !important; border-radius: var(--am-radius-sm);
}
.am-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--accent-3); color: var(--wp--preset--color--accent-2); }
.am-nav .wp-block-navigation-item__label { font-weight: 700; }
.am-nav .wp-block-navigation-item__description {
	display: block; font-size: 0.8125rem; font-weight: 400; line-height: 1.4; color: var(--wp--preset--color--muted);
}
.am-nav > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation-item__description { display: none; }

.am-cta .wp-block-button__link { padding: 0.7em 1.3em; font-size: 0.9rem; white-space: nowrap; }

/* Mobile overlay menu */
.am-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--contrast); }
.am-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	padding: 1.5rem clamp(1.25rem, 6vw, 3rem) 3rem !important;
}
.am-nav .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
	text-align: left;
}
.am-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.am-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.am-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 1rem; }
.am-nav .is-menu-open .wp-block-navigation__container { gap: 0.25rem !important; width: 100%; }
.am-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { border-bottom: 1px solid var(--am-border); padding-bottom: 0.4rem; }
.am-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
.am-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading); font-size: 1.85rem; font-weight: 600; padding: 0.4rem 0 !important;
}
.am-nav .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important; box-shadow: none !important; padding: 0 0 0.75rem 0 !important; margin: 0; background: transparent !important; min-width: 0 !important;
	border-left: 2px solid var(--wp--preset--color--accent-3) !important; padding-left: 1rem !important; border-radius: 0 !important;
}
.am-nav .is-menu-open .wp-block-navigation-item__content:focus-visible { outline-offset: 2px; }
.am-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.35rem 0 !important; }
.am-nav .is-menu-open .wp-block-navigation-item__description { display: none; }

@media (max-width: 781px) {
	.am-cta .wp-block-button__link { padding: 0.6em 1em; font-size: 0.85rem; }
}
@media (max-width: 420px) { .am-cta { display: none; } }

/* ---------- Page hero band (page.html) ---------- */
.am-pagehero { position: relative; overflow: hidden; }
.am-pagehero::after {
	content: ""; position: absolute; right: -8rem; bottom: -14rem; width: 34rem; height: 34rem; border-radius: 50%;
	border: 1px solid rgba(156,20,33,.12); box-shadow: 0 0 0 3rem rgba(156,20,33,.03), 0 0 0 6rem rgba(156,20,33,.02); pointer-events: none;
}

/* Full-width sections sit flush against each other and the footer */
.wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
main.wp-block-group + footer.wp-block-template-part, footer.wp-block-template-part { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ---------- Home ---------- */
.am-hero { position: relative; overflow: hidden; }
.am-hero::before {
	content: ""; position: absolute; width: 46rem; height: 46rem; right: -14rem; top: -12rem; border-radius: 50%;
	background: radial-gradient(circle at center, var(--wp--preset--color--accent-3) 0%, rgba(246,232,228,0) 68%); pointer-events: none;
}
.am-hero > * { position: relative; }
.am-hero__media { position: relative; }
.am-hero__media img { aspect-ratio: 4 / 4.2; object-fit: cover; object-position: 62% 50%; width: 100%; border-radius: 48% 48% var(--am-radius-lg) var(--am-radius-lg); box-shadow: 0 40px 80px -30px rgba(62,50,44,.45); }
.am-badge {
	position: absolute; left: -1.5rem; bottom: 2rem; margin: 0 !important;
	background: #fff; border-radius: var(--am-radius-md); padding: 0.9rem 1.15rem !important;
	box-shadow: var(--am-shadow); border: 1px solid var(--am-border);
	font-size: 0.9rem; line-height: 1.35; max-width: 15rem;
}
.am-badge strong { display: block; font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; color: var(--am-crimson); font-weight: 700; }
@media (max-width: 781px) { .am-badge { left: 0.75rem; bottom: 0.75rem; max-width: 11.5rem; padding: 0.6rem 0.8rem !important; font-size: 0.78rem; } .am-badge strong { font-size: 1.1rem; } .am-hero__media img { border-radius: var(--am-radius-lg); aspect-ratio: 4/3.4; } }

.am-trust { border-top: 1px solid var(--am-border); border-bottom: 1px solid var(--am-border); }
.am-trust p { margin: 0; }
.am-trust a { color: var(--wp--preset--color--contrast-2); text-decoration: none; font-weight: 700; }
.am-trust a:hover { color: var(--am-crimson); }
.am-trust .am-dot { color: var(--wp--preset--color--accent-1); opacity: .5; }

/* Icon chips (CSS-only icons survive content filtering) */
.am-icon { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--wp--preset--color--accent-3); display: grid !important; place-items: center; margin-bottom: 0.25rem !important; }
.am-icon::before { content: ""; width: 1.6rem; height: 1.6rem; background: var(--am-crimson); -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; }
.am-icon--heart { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1-1.1a5.5 5.5 0 0 0-7.8 7.8l1 1.1L12 21l7.8-7.5 1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3Cpath d='M3.5 12h4l2-3 3 6 2-3h6'/%3E%3C/svg%3E"); }
.am-icon--home { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M12 17.5s-3-1.9-3-3.9a1.6 1.6 0 0 1 3-.8 1.6 1.6 0 0 1 3 .8c0 2-3 3.9-3 3.9z'/%3E%3C/svg%3E"); }
.am-icon--ribbon { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='6'/%3E%3Cpath d='M8.5 14 7 22l5-3 5 3-1.5-8'/%3E%3C/svg%3E"); }
.am-icon--mail { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.am-icon--pin { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.am-icon--paw { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cellipse cx='6' cy='10' rx='2' ry='2.6'/%3E%3Cellipse cx='9.6' cy='5.8' rx='2' ry='2.7'/%3E%3Cellipse cx='14.4' cy='5.8' rx='2' ry='2.7'/%3E%3Cellipse cx='18' cy='10' rx='2' ry='2.6'/%3E%3Cpath d='M12 11c-3 0-6 4.2-6 6.6 0 1.6 1.3 2.4 2.7 2.4 1.3 0 2.1-.7 3.3-.7s2 .7 3.3.7c1.4 0 2.7-.8 2.7-2.4C18 15.2 15 11 12 11z'/%3E%3C/svg%3E"); }

.am-feature h3 { font-size: 1.75rem; margin-bottom: 0.25rem; }
.am-feature p { color: var(--wp--preset--color--contrast-2); }

/* News cards (query loop) */
.am-news .wp-block-post { display: flex; }
.am-news .am-card { overflow: hidden; display: flex; flex-direction: column; width: 100%; transition: transform .25s ease, box-shadow .25s ease; }
.am-news .am-card:hover { transform: translateY(-4px); box-shadow: 0 2px 4px rgba(62,50,44,.06), 0 24px 48px -18px rgba(62,50,44,.32); }
.am-news .wp-block-post-featured-image { margin: 0; }
.am-news .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.am-news .wp-block-post-title { font-size: 1.5rem; line-height: 1.2; }
.am-news .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.am-news .wp-block-post-title a:hover { color: var(--am-crimson); }
.am-news .wp-block-post-excerpt__excerpt { color: var(--wp--preset--color--contrast-2); font-size: 0.95rem; }

/* Dog cards */
.am-dogcard { position: relative; overflow: hidden; border-radius: var(--am-radius-lg) !important; }
.am-dogcard img.wp-block-cover__image-background { transition: transform .6s ease; }
.am-dogcard:hover img.wp-block-cover__image-background { transform: scale(1.04); }
.am-dogcard .wp-block-cover__background { background: linear-gradient(180deg, rgba(40,30,26,0) 35%, rgba(40,30,26,.82) 100%) !important; opacity: 1 !important; }
.am-dogcard h3 { color: #fff; }
.am-dogcard p { color: rgba(255,255,255,.88); }
.am-dogcard a { color: #fff; }

/* Steps */
.am-steps { counter-reset: step; }
.am-step { counter-increment: step; position: relative; }
.am-step::before {
	content: counter(step, decimal-leading-zero);
	display: block; font-family: var(--wp--preset--font-family--heading); font-size: 3rem; font-weight: 600; line-height: 1;
	color: var(--am-crimson); opacity: .9; margin-bottom: 0.75rem;
	font-variant-numeric: lining-nums;
}
.am-step h3 { font-size: 1.5rem; }
.am-step p { color: var(--wp--preset--color--contrast-2); font-size: 0.975rem; }

/* CTA band */
.am-ctaband { position: relative; overflow: hidden; }
.am-ctaband::before, .am-ctaband::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.14); pointer-events: none; }
.am-ctaband::before { width: 30rem; height: 30rem; left: -10rem; top: -14rem; }
.am-ctaband::after { width: 22rem; height: 22rem; right: -6rem; bottom: -12rem; }
.am-ctaband > * { position: relative; }

/* ---------- Contact ---------- */
.am-contact-info .am-info-row { gap: 0.9rem; align-items: flex-start; }
.am-contact-info .am-icon { width: 2.75rem; height: 2.75rem; flex-shrink: 0; }
.am-contact-info .am-icon::before { width: 1.3rem; height: 1.3rem; }
.am-contact-info h4 { margin: 0; font-size: 0.8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.am-contact-info p { margin: 0; }
.am-linklist { list-style: none; padding: 0; margin: 0; }
.am-linklist li { border-top: 1px solid var(--am-border); }
.am-linklist li:last-child { border-bottom: 1px solid var(--am-border); }
.am-linklist a { display: flex; justify-content: space-between; padding: 0.75rem 0.15rem; text-decoration: none; font-weight: 700; color: var(--wp--preset--color--contrast); }
.am-linklist a::after { content: "\2192"; color: var(--am-crimson); transition: transform .2s; }
.am-linklist a:hover { color: var(--am-crimson); }
.am-linklist a:hover::after { transform: translateX(4px); }

/* Contact Form 7 */
.am-form .wpcf7 form > p, .am-form .wpcf7-form p { margin: 0 0 1.1rem; }
.am-form .wpcf7-form .wpcf7-recaptcha, .am-form .wpcf7-form .wpcf7-form-control-wrap[data-name="recaptcha"] { margin-bottom: 1.25rem; display: block; }
.am-form .wpcf7-form > input[type=submit], .am-form .wpcf7-submit { margin-top: 0.25rem; }
.am-form .am-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.1rem; }
@media (max-width: 640px) { .am-form .am-form-row { grid-template-columns: 1fr; } }
.am-form label { display: block; font-weight: 700; font-size: 0.9rem; color: var(--wp--preset--color--contrast); margin-bottom: 1.1rem; }
.am-form label .am-opt { font-weight: 400; color: var(--wp--preset--color--muted); }
.am-form .wpcf7-form-control-wrap { display: block; margin-top: 0.4rem; }
.am-form input[type=text], .am-form input[type=email], .am-form input[type=tel], .am-form select, .am-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-weight: 400; color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base); border: 1.5px solid var(--am-border); border-radius: var(--am-radius-sm);
	padding: 0.8rem 0.95rem; transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.am-form select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%239C1421' stroke-width='2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
.am-form textarea { min-height: 9rem; resize: vertical; }
.am-form input:focus, .am-form select:focus, .am-form textarea:focus { outline: none; background: #fff; border-color: var(--am-crimson); box-shadow: 0 0 0 4px rgba(156,20,33,.12); }
.am-form .wpcf7-submit {
	font: inherit; font-weight: 700; cursor: pointer; border: 0; border-radius: 999px; padding: 0.95rem 2rem;
	background: var(--am-crimson); color: #fff; transition: background-color .2s, transform .2s, box-shadow .2s;
}
.am-form .wpcf7-submit:hover { background: var(--wp--preset--color--accent-2); transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(156,20,33,.55); }
.am-form .wpcf7-not-valid-tip { font-size: 0.8125rem; font-weight: 600; margin-top: 0.35rem; color: var(--am-crimson); }
.am-form .wpcf7-not-valid { border-color: var(--am-crimson) !important; }
.am-form .wpcf7 form .wpcf7-response-output { margin: 1rem 0 0; padding: 0.85rem 1rem; border-radius: var(--am-radius-sm); font-size: 0.95rem; }
.am-form .am-form-note { font-size: 0.8125rem; color: var(--wp--preset--color--muted); }
.am-form .wpcf7-spinner { vertical-align: middle; }

/* ---------- Footer ---------- */
.am-footer a { color: var(--wp--preset--color--contrast); text-decoration: none; }
.am-footer a:hover { color: var(--am-crimson); text-decoration: underline; }
.am-footer h4 { font-size: 0.8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--am-crimson); margin-bottom: 0.9rem; }
.am-footer .am-footlinks { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.2rem; font-size: 0.95rem; line-height: 1.6; }
.am-footer .am-footer__bottom { border-top: 1px solid rgba(90,74,66,.18); }
.am-footer .am-footer__bottom p { margin: 0; }

/* ---------- Inner pages ---------- */
.am-pagebody .wp-block-post-content > * + * { margin-block-start: 1.25rem; }
.am-pagebody .wp-block-post-content > p:not([class]) , .am-pagebody .wp-block-post-content > ul:not([class]) { max-width: 72ch; }
.am-pagebody h2.wp-block-heading { margin-top: var(--wp--preset--spacing--50); }
.am-mt { margin-top: var(--wp--preset--spacing--60) !important; }
.am-pad { padding: var(--wp--preset--spacing--40) !important; }
.am-muted { color: var(--wp--preset--color--muted); }
.am-intro { margin-bottom: var(--wp--preset--spacing--30); }
.am-callout { border-radius: var(--am-radius-md); padding: var(--wp--preset--spacing--50) !important; margin-top: var(--wp--preset--spacing--60) !important; }
.am-callout .am-lead { margin-top: 0.25rem; }
.am-grid-2 { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(20rem, 100%), 1fr)); gap: var(--wp--preset--spacing--40) !important; }
.am-grid-2 > .am-card { padding: var(--wp--preset--spacing--40); margin: 0 !important; }
.am-cond h3 { font-size: 1.6rem; margin: 0 0 0.35rem; }
.am-cond p { margin: 0; font-size: 0.975rem; color: var(--wp--preset--color--contrast-2); }
.am-sticky { position: sticky; top: 7rem; padding: var(--wp--preset--spacing--40); }
.am-facts { list-style: none; padding: 0; margin: 0.75rem 0 1rem; }
.am-facts li { padding: 0.6rem 0; border-top: 1px solid var(--am-border); font-size: 0.95rem; }
.am-facts li strong { display: block; font-size: 0.75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--am-crimson); }

/* Jump-to chips */
.am-chips__label { font-size: 0.75rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--muted); margin-bottom: 0.5rem !important; }
.am-chips { list-style: none; padding: 0; margin: 0 0 var(--wp--preset--spacing--50) !important; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.am-chips li { margin: 0; }
.am-chips a {
	display: inline-block; padding: 0.4rem 0.95rem; border-radius: 999px; background: #fff; border: 1px solid var(--am-border);
	font-weight: 700; font-size: 0.9rem; text-decoration: none; color: var(--wp--preset--color--contrast); transition: all .2s;
}
.am-chips a:hover { border-color: var(--am-crimson); color: var(--am-crimson); background: var(--wp--preset--color--accent-3); }

/* Dog + litter profile cards */
.am-dog { padding: var(--wp--preset--spacing--50) !important; margin-top: var(--wp--preset--spacing--40) !important; scroll-margin-top: 7rem; }
.am-dog__head { gap: 1rem 2rem; margin-bottom: var(--wp--preset--spacing--40); }
.am-dog__head > .wp-block-group { flex: 1 1 26rem; }
.am-dog h2 { font-size: clamp(2.25rem, 4vw, 3rem); margin: 0.2rem 0 0.15rem; }
.am-regname { font-family: var(--wp--preset--font-family--heading); font-style: italic; font-size: 1.3rem; line-height: 1.35; color: var(--wp--preset--color--contrast-2); margin: 0 !important; }
.am-regname a { color: var(--am-crimson); }
.am-coowner { font-size: 0.9rem; color: var(--wp--preset--color--muted); margin: 0.5rem 0 0 !important; }
.am-btn-sm .wp-block-button__link { padding: 0.5rem 1rem !important; font-size: 0.85rem; }
.am-dog .wp-block-buttons { gap: 0.5rem; }
.am-section-head { margin-top: var(--wp--preset--spacing--70) !important; padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--am-border); scroll-margin-top: 7rem; }
.am-yearhead { display: flex; align-items: center; gap: 1rem; font-size: clamp(2.5rem, 5vw, 3.5rem) !important; color: var(--am-crimson) !important; margin-top: var(--wp--preset--spacing--60) !important; scroll-margin-top: 7rem; font-variant-numeric: lining-nums; }
.am-yearhead::after { content: ""; flex: 1; height: 1px; background: var(--am-border); }

/* Galleries: fixed grid so a lone last photo never stretches full width */
.wp-block-gallery.am-gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem !important; margin: 0 !important; }
.wp-block-gallery.am-gallery > .wp-block-image { width: auto !important; margin: 0 !important; }
@media (max-width: 600px) {
	.wp-block-gallery.am-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem !important; }
	.wp-block-gallery.am-gallery .wp-block-image figcaption { font-size: 0.72rem !important; padding: 1.5rem 0.5rem 0.45rem !important; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
.wp-block-gallery.am-gallery .wp-block-image { border-radius: var(--am-radius-sm); overflow: hidden; }
.wp-block-gallery.am-gallery.is-cropped .wp-block-image img { aspect-ratio: 1 / 1; object-fit: cover; transition: transform .5s ease; }
.wp-block-gallery.am-gallery .wp-block-image:hover img { transform: scale(1.04); }
.wp-block-gallery.am-gallery .wp-block-image figcaption {
	background: linear-gradient(0deg, rgba(40,30,26,.85) 0%, rgba(40,30,26,.45) 65%, rgba(40,30,26,0) 100%) !important;
	font-size: 0.8rem !important; line-height: 1.35; padding: 2rem 0.75rem 0.6rem !important; text-align: left !important; text-shadow: none;
	max-height: 60% !important;
}

/* FAQ accordion */
.am-faq { background: #fff; border: 1px solid var(--am-border); border-radius: var(--am-radius-md); padding: 0 !important; margin-top: 0.75rem !important; transition: box-shadow .2s; }
.am-faq[open] { box-shadow: var(--am-shadow); }
.am-faq summary {
	list-style: none; cursor: pointer; padding: 1.15rem 3.25rem 1.15rem 1.4rem; position: relative;
	font-family: var(--wp--preset--font-family--heading); font-size: 1.45rem; font-weight: 600; line-height: 1.25; color: var(--wp--preset--color--contrast);
}
.am-faq summary::-webkit-details-marker { display: none; }
.am-faq summary::after {
	content: "+"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); width: 1.9rem; height: 1.9rem; border-radius: 50%;
	display: grid; place-items: center; background: var(--wp--preset--color--accent-3); color: var(--am-crimson); font: 700 1.2rem/1 var(--wp--preset--font-family--body); transition: transform .25s;
}
.am-faq[open] summary::after { content: "–"; }
.am-faq summary:hover { color: var(--am-crimson); }
.am-faq > *:not(summary) { padding: 0 1.4rem; color: var(--wp--preset--color--contrast-2); }
.am-faq > *:last-child { padding-bottom: 1.25rem; }

/* Checklists */
.am-check { list-style: none; padding: 0; margin: 1rem 0 0; display: grid; gap: 0.15rem; }
.am-check li { position: relative; padding: 0.55rem 0 0.55rem 2.1rem; border-bottom: 1px dashed var(--am-border); font-size: 0.975rem; }
.am-check li:last-child { border-bottom: 0; }
.am-check li::before {
	content: ""; position: absolute; left: 0; top: 0.7rem; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--am-crimson);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.4 14.2-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4-7 7z'/%3E%3C/svg%3E") center/contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.4 14.2-4-4 1.4-1.4 2.6 2.6 5.6-5.6 1.4 1.4-7 7z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.am-check--soft li::before { background: var(--wp--preset--color--muted); }
.am-check--soft li { border-bottom-color: rgba(90,74,66,.15); }

/* Tables */
.am-table { overflow-x: auto; border-radius: var(--am-radius-md); border: 1px solid var(--am-border); background: #fff; box-shadow: var(--am-shadow); }
.am-table table { border-collapse: collapse; width: 100%; font-size: 0.925rem; min-width: 640px; }
.am-table th { background: var(--wp--preset--color--contrast); color: #fff; text-align: left; font-size: 0.75rem; letter-spacing: .1em; text-transform: uppercase; padding: 0.85rem 1rem; border: 0; }
.am-table td { padding: 0.8rem 1rem; border: 0; border-top: 1px solid var(--am-border); vertical-align: top; }
.am-table tr:nth-child(even) td { background: var(--wp--preset--color--base); }
.am-table td:first-child { font-weight: 700; color: var(--wp--preset--color--contrast); }
.am-table a { font-weight: 700; text-decoration: none; white-space: nowrap; }

/* Taking-home tips */
.am-tiphead { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--am-border); scroll-margin-top: 7rem; }
.am-pagebody h3.wp-block-heading { font-size: 1.6rem; margin-top: var(--wp--preset--spacing--40); }

/* News */
.am-news .wp-block-post-title { font-size: 1.5rem !important; }
.am-news .wp-block-post-excerpt__more-link { font-weight: 700; text-decoration: none; font-size: 0.9rem; }
.am-news .wp-block-post-excerpt__more-link::after { content: " \2192"; }
.am-news .wp-block-post-featured-image { background: var(--wp--preset--color--accent-4); }
.am-pagination { margin-top: var(--wp--preset--spacing--60) !important; gap: 0.4rem; font-weight: 700; }
.am-pagination a, .am-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.6rem; height: 2.6rem; padding: 0 0.9rem; border-radius: 999px; border: 1px solid var(--am-border); background: #fff; text-decoration: none; color: var(--wp--preset--color--contrast); }
.am-pagination .page-numbers.current { background: var(--am-crimson); border-color: var(--am-crimson); color: #fff; }
.am-pagination a:hover { border-color: var(--am-crimson); color: var(--am-crimson); }
.am-pagination .wp-block-query-pagination-previous, .am-pagination .wp-block-query-pagination-next { display: inline-flex !important; align-items: center; gap: 0.35rem; white-space: nowrap; }
.am-pagination .wp-block-query-pagination-numbers { display: inline-flex; gap: 0.4rem; }

/* Single post */
.am-postmeta { align-items: center; }
.am-postmeta .am-eyebrow, .am-postmeta .wp-block-post-date { margin: 0 !important; }
.am-postmeta .wp-block-post-date::before { content: "·"; margin-right: 0.6rem; color: var(--wp--preset--color--muted); }
.am-postimage { margin-top: calc(-1 * var(--wp--preset--spacing--60)) !important; margin-bottom: var(--wp--preset--spacing--50) !important; }
.am-postimage img { border-radius: var(--am-radius-lg); box-shadow: 0 30px 60px -30px rgba(62,50,44,.45); max-height: 640px; object-fit: cover; width: 100%; }
.am-prose { font-size: 1.075rem; }
.am-prose > * + * { margin-block-start: 1.2rem; }
.am-prose img { border-radius: var(--am-radius-sm); }
.am-prose .wp-block-gallery, .am-prose .gallery { gap: 0.75rem; }
.am-prose strong { color: var(--wp--preset--color--contrast); }
.am-postnav { gap: 1rem; border-top: 1px solid var(--am-border); padding-top: var(--wp--preset--spacing--40); }
.am-postnav .post-navigation-link-previous, .am-postnav .post-navigation-link-next { flex: 1 1 18rem; }
.am-postnav .post-navigation-link-next { text-align: right; }
.am-postnav a { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; font-weight: 600; text-decoration: none; color: var(--wp--preset--color--contrast); }
.am-postnav a:hover { color: var(--am-crimson); }
.am-postnav .wp-block-post-navigation-link__arrow-previous, .am-postnav .wp-block-post-navigation-link__arrow-next { color: var(--am-crimson); }

/* Search */
.am-search { max-width: 34rem; margin: var(--wp--preset--spacing--40) auto 0 !important; }
.am-search--left { margin-left: 0 !important; }
.am-search .wp-block-search__inside-wrapper { background: #fff; border: 1.5px solid var(--am-border); border-radius: 999px; padding: 0.3rem; }
.am-search input { border: 0 !important; background: transparent; padding: 0.6rem 1rem !important; font: inherit; }
.am-search .wp-block-search__button { border-radius: 999px; margin: 0; background: var(--am-crimson); color: #fff; font-weight: 700; padding: 0.6rem 1.3rem; }
.am-searchresult { margin-bottom: 1rem; }
.am-searchresult h2 a { text-decoration: none; color: var(--wp--preset--color--contrast); }

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