/* ==========================================================================
   Responsive enhancements (mobile-first: base styles are for phones)
   600 · 768 · 1024 · 1280
   ========================================================================== */

@media (min-width: 600px) {
	.tdr-grid-3, .tdr-grid-2, .tdr-grid-portrait, .tdpm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tdr-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tdr-facts > div { padding-right: 14px; }

	.tdpm-parent-card--horizontal { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.tdpm-parent-card--horizontal .tdpm-card__media { aspect-ratio: auto; min-height: 250px; height: 100%; }
	.tdpm-parent-card--horizontal .tdpm-card__img { position: absolute; inset: 0; object-position: 50% 28%; }
	.tdpm-parent-card--horizontal .tdpm-card__body { padding: 26px 26px 26px; justify-content: center; }

	.tdr-strip__list { grid-auto-columns: 44%; }
	.tdpm-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tdr-post-card { grid-template-columns: 2fr 3fr; }
	.tdr-post-card__media img { height: 100%; aspect-ratio: auto; }
}

@media (min-width: 768px) {
	:root { --gutter: 32px; --header-h: 80px; }
	.admin-bar .tdr-header { top: 32px; }
	.tdr-logo__img { height: 52px; }

	.tdr-section-head--row, .tdr-section-head--split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: end;
		column-gap: 48px;
	}
	.tdr-section-head--row .tdr-section-head__link { grid-column: 2; justify-self: end; }

	.tdr-hero__media { aspect-ratio: 16 / 10; }

	.tdr-lifestyle { min-height: clamp(380px, 36vw, 520px); align-items: center; }
	.tdr-lifestyle__media::after { background: linear-gradient(to right, rgba(255, 253, 248, 0.88) 0%, rgba(255, 253, 248, 0.6) 30%, rgba(255, 253, 248, 0) 58%); }
	.tdr-lifestyle__img { object-position: 60% 45%; }

	.tdr-upcoming__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; column-gap: 40px; }
	.tdr-upcoming__cta { grid-column: 1 / -1; grid-template-columns: auto 1fr; align-items: center; column-gap: 24px; }

	.tdr-cta-band__inner { grid-template-columns: minmax(0, 1fr) auto; gap: 40px; }
	.tdr-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tdr-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
	/* Desktop navigation */
	.tdr-nav-toggle { display: none; }
	.tdr-nav-panel {
		display: flex !important;
		position: static;
		flex: 1;
		align-items: center;
		justify-content: flex-end;
		gap: clamp(20px, 3vw, 48px);
		max-height: none;
		overflow: visible;
		padding: 0;
		background: none;
		border: 0;
		box-shadow: none;
		animation: none !important;
	}
	.tdr-nav { flex: 1; display: flex; justify-content: center; }
	.tdr-menu { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 40px); }
	.tdr-menu > li { border: 0; flex-wrap: nowrap; }
	.tdr-menu a { padding: 10px 0; font-size: 0.875rem; font-weight: 500; color: var(--color-heading); position: relative; }
	.tdr-menu > li > a::after {
		content: "";
		position: absolute;
		left: 0; right: 0; bottom: 4px;
		height: 1px;
		background: currentColor;
		transform: scaleX(0);
		transform-origin: left;
		transition: transform 0.25s var(--ease);
	}
	.tdr-menu > li > a:hover::after,
	.tdr-menu > .current-menu-item > a::after,
	.tdr-menu > .current-menu-ancestor > a::after,
	.tdr-menu > .current_page_item > a::after { transform: scaleX(1); }
	.tdr-submenu-toggle { width: 28px; height: 28px; margin-left: 2px; }
	.tdr-menu .sub-menu {
		position: absolute;
		top: 100%;
		left: -18px;
		min-width: 220px;
		padding: 10px;
		background: var(--color-card);
		border: 1px solid var(--color-border);
		border-radius: var(--radius);
		box-shadow: var(--shadow-card-hover);
	}
	.tdr-menu li:hover > .sub-menu, .tdr-menu li:focus-within > .sub-menu, .tdr-menu .sub-menu.is-open { display: block; }
	.tdr-menu .sub-menu a { display: block; padding: 10px 12px; border-radius: 6px; font-size: 0.875rem; }
	.tdr-menu .sub-menu a:hover { background: var(--color-bg-alt); }
	.tdr-header__cta { width: auto; margin: 0; min-height: 44px; padding: 10px 20px; font-size: 0.875rem; }
	.tdr-nav-panel__contact { display: none; }

	/* Hero: text left, photo right (40 / 60) */
	.tdr-hero { display: flex; align-items: center; min-height: clamp(540px, 42vw, 680px); }
	.tdr-hero__media { position: absolute; inset: 0 0 0 auto; width: 61%; max-height: none; aspect-ratio: auto; }
	.tdr-hero__media::after {
		inset: 0;
		height: auto;
		background: linear-gradient(to right, var(--color-bg) 0%, rgba(248, 244, 236, 0.9) 8%, rgba(248, 244, 236, 0.45) 22%, rgba(248, 244, 236, 0) 42%);
	}
	.tdr-hero__img { object-position: 68% 50%; }
	.tdr-hero__inner { margin: 0 auto; padding-block: 72px; }
	.tdr-hero__content { max-width: 46%; }
	.tdr-hero__title { font-size: clamp(3rem, 1rem + 3.3vw, 4rem); }

	/* Grids */
	.tdr-grid-3, .tdpm-grid--puppies { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
	.tdr-grid-portrait { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
	.tdr-grid-portrait:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 940px; }
	.tdr-grid-portrait:has(> :only-child) { grid-template-columns: minmax(0, 460px); }
	.tdr-parents-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
	.tdpm-grid--litters.tdr-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.tdr-values__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }

	.tdr-strip { padding-inline: 0; overflow: visible; max-width: calc(var(--container) + 160px + var(--gutter) * 2); margin-inline: auto; }
	.tdr-section-head--row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
	.tdr-section-head--row .tdr-section-head__link { grid-column: 3; padding-bottom: 4px; }
	.tdr-strip__list { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-columns: auto; padding-inline: var(--gutter); gap: 14px; }

	.tdr-upcoming__inner { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr) minmax(0, 0.85fr); column-gap: 48px; padding-block: 0; min-height: 300px; }
	.tdr-upcoming__content { padding-block: 48px; }
	.tdr-upcoming__media { align-self: stretch; aspect-ratio: auto; border-radius: 0; margin-block: 0; }
	.tdr-upcoming__media::before, .tdr-upcoming__media::after {
		content: "";
		position: absolute;
		top: 0; bottom: 0;
		width: 22%;
		z-index: 1;
		pointer-events: none;
	}
	.tdr-upcoming__media::before { left: 0; background: linear-gradient(to right, var(--color-bg-sage), rgba(236, 235, 220, 0)); }
	.tdr-upcoming__media::after { right: 0; background: linear-gradient(to left, var(--color-bg-sage), rgba(236, 235, 220, 0)); }
	.tdr-upcoming__cta { grid-column: auto; grid-template-columns: none; align-self: center; padding-right: 90px; }
	.tdr-upcoming__sprig { display: block; }

	.tdr-profile__top { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; }
	.tdr-profile__top--portrait { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.tdr-profile__top--portrait .tdr-gallery__main { aspect-ratio: 4 / 5; }
	.tdr-profile__summary { position: sticky; top: calc(var(--header-h) + 24px); padding-top: 8px; }
	.tdr-profile__body { grid-template-columns: minmax(0, 1fr); }
	.tdr-notes { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	.tdr-interest__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; }
	.tdr-contact__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 64px; }

	.tdr-footer { padding-block: 64px 28px; }
	.tdr-footer__grid { grid-template-columns: 1.05fr 1.25fr 0.8fr 1.1fr; gap: 0; align-items: start; }
	.tdr-footer__grid > * { padding-inline: 32px; }
	.tdr-footer__grid > :first-child { padding-left: 0; }
	.tdr-footer__grid > :last-child { padding-right: 0; }
	.tdr-footer__grid > * + * { border-left: 1px solid rgba(232, 226, 210, 0.18); }
	.tdr-footer__desc { padding-top: 8px; }
}

@media (min-width: 1280px) {
	:root { --gutter: 56px; }
	.tdr-logo__img { height: 56px; }
	.tdr-hero__content { max-width: 45%; }
}

@media (min-width: 1600px) {
	.tdr-hero { min-height: 700px; }
}

/* Short landscape phones: keep the hero photo from swallowing the screen */
@media (max-width: 1023px) and (orientation: landscape) and (max-height: 520px) {
	.tdr-hero__media { aspect-ratio: 21 / 9; }
}
