/* ==========================================================================
   Layout: container, header & navigation, sections, grids, footer
   ========================================================================== */

.tdr-container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--gutter);
}
.tdr-narrow { max-width: 760px; }
.tdr-main { display: block; }

/* ---------- Header ---------- */
.tdr-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(248, 244, 236, 0.96);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	backdrop-filter: saturate(140%) blur(8px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.2s, box-shadow 0.2s;
}
.tdr-header.is-scrolled { border-bottom-color: var(--color-border); box-shadow: 0 6px 18px -16px rgba(58, 42, 30, 0.5); }
.admin-bar .tdr-header { top: 46px; }
.tdr-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: var(--header-h);
}
.tdr-logo { display: inline-flex; flex: none; align-items: center; }
.tdr-logo__img { width: auto; height: 46px; }

.tdr-nav-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-right: -8px;
	border: 0;
	border-radius: var(--radius);
	background: transparent;
	color: var(--color-heading);
}
.tdr-nav-toggle:hover { background: var(--color-bg-alt); }
.tdr-nav-toggle__close { display: none; }
.is-nav-open .tdr-nav-toggle__open { display: none; }
.is-nav-open .tdr-nav-toggle__close { display: block; }

html.tdr-nav-locked { overflow: hidden; }

/* Mobile panel */
.tdr-nav-panel {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	max-height: calc(100vh - var(--header-h));
	max-height: calc(100dvh - var(--header-h));
	overflow-y: auto;
	padding: 8px var(--gutter) 28px;
	background: var(--color-bg);
	border-top: 1px solid var(--color-border);
	box-shadow: 0 24px 40px -24px rgba(58, 42, 30, 0.35);
}
.is-nav-open .tdr-nav-panel { display: block; animation: tdr-drop 0.22s var(--ease); }
@keyframes tdr-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

.tdr-menu > li { position: relative; display: flex; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--color-border); }
.tdr-menu a {
	display: block;
	flex: 1;
	padding: 15px 2px;
	color: var(--color-heading);
	font-size: 1.125rem;
	font-weight: 500;
	text-decoration: none;
}
.tdr-menu .current-menu-item > a,
.tdr-menu .current-menu-ancestor > a,
.tdr-menu .current_page_item > a { color: var(--color-primary); }
.tdr-submenu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 0;
	background: none;
	color: var(--color-text-muted);
	border-radius: var(--radius);
}
.tdr-submenu-toggle .tdr-icon { transition: transform 0.2s; }
.tdr-submenu-toggle[aria-expanded="true"] .tdr-icon { transform: rotate(180deg); }
.tdr-menu .sub-menu { display: none; flex-basis: 100%; padding: 0 0 10px 14px; list-style: none; margin: 0; }
.tdr-menu .sub-menu.is-open { display: block; }
.tdr-menu .sub-menu a { padding: 10px 2px; font-size: 1rem; color: var(--color-text); }

.tdr-header__cta { width: 100%; margin-top: 22px; }
.tdr-nav-panel__contact { display: grid; gap: 10px; margin-top: 22px; font-size: var(--fs-small); }
.tdr-nav-panel__contact a { display: inline-flex; gap: 10px; align-items: center; color: var(--color-text); text-decoration: none; }

/* ---------- Sections ---------- */
.tdr-section { padding-block: var(--section-y); }
.tdr-section--tight { padding-block: clamp(36px, 2rem + 2vw, 64px) var(--section-y); }
.tdr-section--alt { background: var(--color-bg-alt); }
.tdr-section + .tdr-section:not(.tdr-section--alt) { padding-top: calc(var(--section-y) * 0.6); }

.tdr-section-head { display: grid; gap: 14px; margin-bottom: clamp(28px, 1.5rem + 1.5vw, 44px); }
.tdr-section-head .tdr-section-title { margin: 0; }
.tdr-section-title { font-size: var(--fs-h2); }
.tdr-section-head__intro { color: var(--color-text-muted); font-size: var(--fs-small); line-height: 1.7; margin: 0; max-width: 46ch; }
.tdr-section-head__link { justify-self: start; }

/* ---------- Grids ---------- */
.tdr-grid-3, .tdr-grid-2, .tdr-grid-portrait, .tdpm-grid { display: grid; gap: 22px; grid-template-columns: minmax(0, 1fr); }
.tdr-parents-row { display: grid; gap: 22px; }

/* ---------- Page header ---------- */
.tdr-page-header { padding-block: clamp(28px, 1.5rem + 2vw, 56px) clamp(8px, 0.5rem + 1vw, 20px); }
.tdr-page-title { font-size: var(--fs-page-title); margin: 0 0 0.35em; }
.tdr-page-intro { max-width: 62ch; font-size: 1.125rem; color: var(--color-text-muted); }
.tdr-breadcrumbs { margin-bottom: 18px; font-size: var(--fs-xs); color: var(--color-text-muted); }
.tdr-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.tdr-breadcrumbs li:not(:last-child)::after { content: "/"; margin-left: 6px; color: var(--color-border-strong); }
.tdr-breadcrumbs a { color: var(--color-text-muted); text-decoration: none; }
.tdr-breadcrumbs a:hover { color: var(--color-primary); text-decoration: underline; }
.tdr-breadcrumbs [aria-current] { color: var(--color-text); }

/* ---------- Footer ---------- */
.tdr-footer {
	background: var(--color-footer);
	color: var(--color-footer-text);
	padding-block: 56px 28px;
	font-size: var(--fs-small);
}
.tdr-footer a { color: var(--color-footer-text); text-decoration: none; }
.tdr-footer a:hover { color: #fff; text-decoration: underline; }
.tdr-footer__grid { display: grid; gap: 32px; }
.tdr-logo--footer .tdr-logo__img { height: 60px; }
.tdr-footer__desc { margin: 0; font-size: 1rem; line-height: 1.7; color: var(--color-footer-text); }
.tdr-footer__menu { display: grid; gap: 8px; }
.tdr-footer__contact { display: grid; gap: 18px; }
.tdr-footer__contact li { display: flex; gap: 14px; align-items: flex-start; }
.tdr-footer__contact .tdr-icon { flex: none; margin-top: 2px; color: var(--color-footer-text); }
.tdr-footer__contact li > span { display: flex; flex-direction: column; }
.tdr-footer__label { color: var(--color-footer-muted); font-size: var(--fs-xs); }
.tdr-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 24px;
	justify-content: space-between;
	align-items: center;
	margin-top: 44px;
	padding-top: 22px;
	border-top: 1px solid rgba(232, 226, 210, 0.16);
	color: var(--color-footer-muted);
	font-size: var(--fs-xs);
}
.tdr-footer__bottom p { margin: 0; }
.tdr-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 0; }
.tdr-footer__legal li + li::before { content: "|"; margin: 0 12px; color: rgba(232, 226, 210, 0.3); }
.tdr-footer__legal a { color: var(--color-footer-muted); }
