/* ============================================================
   Manoir Breton v2 — granit & ardoise
   One family (Spectral). One accent (sang-de-bœuf). One bold element (the plan).
   ============================================================ */

:root {
	--chaux:   #f3f2ee;
	--ardoise: #2f3a44;
	--granit:  #8d8a86;
	--lichen:  #7c8b5a;
	--sang:    #7a2e2e;
	--mer:     #d8dfe3;
	--wall:    #4b535b;
	--measure: 44rem;
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

body {
	background: var(--chaux);
	color: var(--ardoise);
	font-feature-settings: "kern", "liga", "onum", "pnum";
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}
a { color: var(--lichen); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }
a:hover { color: var(--sang); }
a:focus-visible { outline: 2px solid var(--sang); outline-offset: 3px; }
img { max-width: 100%; height: auto; }

.wp-site-blocks { padding: 0 !important; }

/* --------------------------------------------
   Header — small, left, factual
   -------------------------------------------- */
.site-header {
	display: flex; align-items: baseline; justify-content: space-between; gap: 2rem;
	max-width: 80rem; margin: 0 auto; padding: 1.5rem 1.5rem 0;
}
.site-header .wp-block-site-title { margin: 0; }
.site-header .wp-block-site-title a { color: var(--ardoise) !important; text-decoration: none !important; font-weight: 700; }
.site-header .wp-block-site-title a:hover { color: var(--sang) !important; }
.site-header .site-tagline { margin: 0; color: var(--granit); font-style: italic; font-size: var(--wp--preset--font-size--sm); }
.site-nav { display: flex; gap: 1.25rem; margin: 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--sm); }
.site-nav a { color: var(--ardoise); text-decoration: none; }
.site-nav a:hover { color: var(--sang); text-decoration: underline; }

/* --------------------------------------------
   Front page
   -------------------------------------------- */
.home-intro {
	max-width: 80rem; margin: 3rem auto 1rem; padding: 0 1.5rem;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 4rem; align-items: end;
}
.home-intro h1 { margin: 0; font-size: var(--wp--preset--font-size--xxl); line-height: 1; }
.home-intro p { margin: 0; max-width: 34rem; color: var(--ardoise); font-size: var(--wp--preset--font-size--md); }
@media (max-width: 760px) { .home-intro { grid-template-columns: 1fr; gap: 0.75rem; margin-top: 2rem; } }

/* The plan — the one bold thing */
.manor-map { max-width: 80rem; margin: 1.5rem auto 3rem; padding: 0 1.5rem; }
.manor-map svg { width: 100%; height: auto; display: block; }
.manor-map .wall { fill: none; stroke: var(--wall); stroke-width: 9; stroke-linejoin: miter; }
.manor-map .wall-inner { fill: none; stroke: var(--wall); stroke-width: 3; }
.manor-map .room { fill: var(--chaux); stroke: none; }
.manor-map a:hover .room, .manor-map a:focus .room { fill: var(--mer); }
.manor-map a:focus { outline: none; }
.manor-map a:focus .room { stroke: var(--sang); stroke-width: 3; }
.manor-map .room-name { font-family: Spectral, Georgia, serif; font-weight: 700; font-size: 22px; fill: var(--ardoise); }
.manor-map .room-sub  { font-family: Spectral, Georgia, serif; font-style: italic; font-size: 13px; fill: var(--granit); }
.manor-map .room-n    { font-family: Spectral, Georgia, serif; font-size: 13px; fill: var(--ardoise); font-variant-numeric: tabular-nums; }
.manor-map .hall-name { font-size: 30px; }
.manor-map .path { fill: none; stroke: var(--granit); stroke-width: 2; stroke-dasharray: 2 6; stroke-linecap: round; }
.manor-map .legend { font-family: Spectral, Georgia, serif; font-size: 12px; fill: var(--granit); font-style: italic; }
.manor-map a { text-decoration: none; }
@media (max-width: 600px) {
	.manor-map .room-name { font-size: 26px; }
	.manor-map .room-sub { font-size: 16px; }
	.manor-map .room-n { font-size: 16px; }
}

/* --------------------------------------------
   Chronology (home strip, index, archives)
   Date in a left gutter = structure that informs.
   -------------------------------------------- */
.chrono { max-width: 80rem; margin: 0 auto 4rem; padding: 0 1.5rem; }
.chrono h2 { margin: 0 0 1.25rem; font-size: var(--wp--preset--font-size--lg); font-weight: 700; }
.chrono .wp-block-post-template {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 3rem; align-items: start;
}
.chrono .wp-block-post-template > * { margin: 0 !important; }
@media (max-width: 1000px) { .chrono .wp-block-post-template { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 640px)  { .chrono .wp-block-post-template { grid-template-columns: 1fr; gap: 1.5rem; } }

.entry { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0 1rem; align-items: baseline; }
.entry > * { margin: 0 !important; }
.entry .entry-date { grid-column: 1; grid-row: 1; color: var(--granit); font-size: var(--wp--preset--font-size--xs); font-variant-numeric: tabular-nums; white-space: nowrap; padding-top: 0.35em; }
.entry .entry-title { grid-column: 2; grid-row: 1; font-size: var(--wp--preset--font-size--lg); font-weight: 500; line-height: 1.2; }
.entry .entry-title a { color: var(--ardoise); text-decoration: none; }
.entry .entry-title a:hover { color: var(--sang); text-decoration: underline; }
.entry .entry-excerpt { grid-column: 2; grid-row: 2; margin-top: 0.4rem !important; color: var(--ardoise); font-size: var(--wp--preset--font-size--sm); line-height: 1.5;
	display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.entry .entry-excerpt a { color: var(--lichen); }
.entry .entry-thumb { grid-column: 2; grid-row: 3; margin-top: 0.75rem !important; }
.entry .entry-thumb img { display: block; width: 100%; max-height: 14rem; object-fit: cover; background: var(--mer); }
@media (max-width: 640px) {
	.entry { grid-template-columns: 1fr; }
	.entry .entry-date, .entry .entry-title, .entry .entry-excerpt, .entry .entry-thumb { grid-column: 1; }
	.entry .entry-date { grid-row: 1; } .entry .entry-title { grid-row: 2; } .entry .entry-excerpt { grid-row: 3; } .entry .entry-thumb { grid-row: 4; }
}

/* Archive (single column, longer list) */
.archive-list .wp-block-post-template { grid-template-columns: minmax(0, 1fr); max-width: 60rem; gap: 1.75rem; }
.archive-list .entry { grid-template-columns: 7rem minmax(0, 1fr) 11rem; }
.archive-list .entry .entry-thumb { grid-column: 3; grid-row: 1 / span 2; margin-top: 0 !important; }
.archive-list .entry .entry-thumb img { max-height: 7rem; }
@media (max-width: 760px) {
	.archive-list .entry { grid-template-columns: 6.5rem minmax(0,1fr); }
	.archive-list .entry .entry-thumb { grid-column: 2; grid-row: 3; margin-top: 0.75rem !important; }
}

/* Room / archive header */
.room-head { max-width: 80rem; margin: 3rem auto 2rem; padding: 0 1.5rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 4rem; align-items: end; }
.room-head h1 { margin: 0; font-size: var(--wp--preset--font-size--xxl); line-height: 1; }
.room-head .wp-block-term-description { margin: 0; color: var(--ardoise); max-width: 34rem; }
.room-head .wp-block-term-description p { margin: 0; }
@media (max-width: 760px) { .room-head { grid-template-columns: 1fr; } }

/* Pagination */
.wp-block-query-pagination { max-width: 60rem; margin: 2.5rem auto 0; padding: 0 1.5rem; font-size: var(--wp--preset--font-size--sm); gap: 1rem; }
.wp-block-query-pagination a { color: var(--ardoise); text-decoration: none; }
.wp-block-query-pagination a:hover { color: var(--sang); text-decoration: underline; }
.wp-block-query-pagination .page-numbers.current { color: var(--sang); font-weight: 700; }

/* --------------------------------------------
   Single post / page
   -------------------------------------------- */
.post-wrap { max-width: var(--measure); margin: 3rem auto 4rem; padding: 0 1.5rem; }
.post-wrap .wp-block-post-title { margin: 0 0 0.5rem; text-align: left; max-width: none; }
.post-wrap .post-line { display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; color: var(--granit); font-size: var(--wp--preset--font-size--sm); margin: 0 0 2.25rem; }
.post-wrap .post-line > * { margin: 0 !important; }
.post-wrap .post-line a { color: var(--granit); text-decoration: none; }
.post-wrap .post-line a:hover { color: var(--sang); text-decoration: underline; }
.post-wrap .wp-block-post-featured-image { margin: 0 0 2rem; }
.post-wrap .wp-block-post-featured-image img { display: block; width: 100%; background: var(--mer); }
.post-wrap .wp-block-post-content { font-size: var(--wp--preset--font-size--md); line-height: 1.68; }
.post-wrap .wp-block-post-content > * { max-width: none; }
.post-wrap .wp-block-post-content p { margin: 0 0 1.1em; }
.post-wrap .wp-block-post-content h2, .post-wrap .wp-block-post-content h3 { margin: 2.2em 0 0.6em; }
.post-wrap .wp-block-post-content img { display: block; margin: 1.5rem auto; background: var(--mer); }
.post-wrap .wp-block-post-content iframe { max-width: 100%; }
.post-wrap .wp-block-post-content blockquote { margin: 1.5rem 0; }
.post-wrap .post-tags { margin: 2.5rem 0 0; color: var(--granit); font-size: var(--wp--preset--font-size--sm); }
.post-wrap .post-tags a { color: var(--granit); }
.post-wrap .post-tags a:hover { color: var(--sang); }
.post-wrap .post-nav { display: flex; justify-content: space-between; gap: 2rem; margin: 3rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--mer); font-size: var(--wp--preset--font-size--sm); }
.post-wrap .post-nav a { color: var(--ardoise); text-decoration: none; }
.post-wrap .post-nav a:hover { color: var(--sang); text-decoration: underline; }
.post-wrap .post-nav .wp-block-post-navigation-link { margin: 0; }
@media (max-width: 640px) { .post-wrap .post-nav { flex-direction: column; } }

/* Comments: a quieter column, dated, unadorned */
.wp-block-comments { margin: 3rem 0 0; padding-top: 1.25rem; border-top: 1px solid var(--mer); }
.wp-block-comments-title { font-size: var(--wp--preset--font-size--lg); font-weight: 700; margin: 0 0 1rem; }
.wp-block-comment-template { list-style: none; padding: 0; margin: 0; }
.wp-block-comment-template > li { margin: 0 0 1.25rem; padding: 0 0 1.25rem; border-bottom: 1px solid var(--mer); }
.wp-block-comment-template > li:last-child { border-bottom: none; }
.wp-block-comment-author-name { font-weight: 500; }
.wp-block-comment-date { color: var(--granit); font-size: var(--wp--preset--font-size--xs); }
.wp-block-comment-content { font-size: var(--wp--preset--font-size--sm); }
.wp-block-comment-content p { margin: 0.25rem 0 0; }

/* Album pages: quiet grid */
.post-wrap .wp-block-gallery { gap: 0.75rem; }
.post-wrap .wp-block-gallery figcaption { color: var(--granit); font-size: var(--wp--preset--font-size--xs); font-style: italic; }

/* --------------------------------------------
   Latitude — the outbuilding: photo grid
   -------------------------------------------- */
.latitude-grid .wp-block-post-template {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem 1.25rem;
}
.latitude-grid .wp-block-post-template > * { margin: 0 !important; }
.lat-cell { display: block; }
.lat-cell > * { margin: 0 !important; }
.lat-cell .wp-block-post-featured-image { aspect-ratio: 1; background: var(--mer); overflow: hidden; }
.lat-cell .wp-block-post-featured-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lat-cell .lat-date { margin-top: 0.5rem !important; color: var(--granit); font-size: var(--wp--preset--font-size--xs); font-variant-numeric: tabular-nums; }
.lat-cell .lat-title { font-size: var(--wp--preset--font-size--sm); font-weight: 500; line-height: 1.25; }
.lat-cell .lat-title a { color: var(--ardoise); text-decoration: none; }
.lat-cell .lat-title a:hover { color: var(--sang); text-decoration: underline; }
@media (max-width: 1000px) { .latitude-grid .wp-block-post-template { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 640px)  { .latitude-grid .wp-block-post-template { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0.75rem; } }

/* --------------------------------------------
   Footer
   -------------------------------------------- */
.site-footer { max-width: 80rem; margin: 2rem auto 0; padding: 1.5rem 1.5rem 2.5rem; border-top: 1px solid var(--mer); color: var(--granit); font-size: var(--wp--preset--font-size--sm); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--granit); }
.site-footer a:hover { color: var(--sang); }

/* 404 */
.notfound { max-width: var(--measure); margin: 4rem auto; padding: 0 1.5rem; }
.notfound h1 { margin: 0 0 0.5rem; }
