/* Louves: what theme.json cannot express (public site and editor). Colours and fonts come from
   the theme.json presets, so changing them there changes them here. */

::selection { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }

/* --- Header: the Wix menu, inactive links in grey, the current page in black ------------------- */
/* Set on the item: core navigation styles make the link inherit its colour. */
.louves-header .wp-block-navigation-item { color: var(--wp--preset--color--muted); transition: color .2s; }
.louves-header .wp-block-navigation-item:hover,
.louves-header .wp-block-navigation-item.current-menu-item { color: var(--wp--preset--color--contrast); }
/* Mobile menu: full screen, large display type. */
.wp-block-navigation__responsive-container.is-menu-open { padding: clamp(1rem, 3.5vw, 3.125rem); }
/* Left-aligned, although the header menu is justified right (items-justified-right). */
.louves-header .is-menu-open .wp-block-navigation__container.items-justified-right,
.louves-header .is-menu-open .items-justified-right .wp-block-navigation-item { align-items: flex-start; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.75rem, 8vw, 3rem);
	font-weight: 900;
	letter-spacing: -.02em;
	text-transform: uppercase;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1rem; }

/* --- Reading column: aligned on the left edge of the wide area (titles, galleries), not centred.
   Core centres constrained content with auto margins (!important), hence the !important here. --- */
main .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)) {
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
	margin-right: auto !important;
}

/* --- Page titles: room before the content ------------------------------------------------------ */
main > .wp-block-post-title,
main > .wp-block-query-title { margin-bottom: var(--wp--preset--spacing--50); }
main > h1.wp-block-post-title { font-size: clamp(2.25rem, 5vw, 4rem); }

/* --- Text ------------------------------------------------------------------------------------- */
strong, b { font-weight: 600; }
.wp-block-post-content a:where(:not(.wp-element-button)) { text-decoration-thickness: 1px; text-underline-offset: .2em; }
.wp-block-list li + li { margin-top: .35em; }
mark { background: #fff3a8; color: inherit; }

/* --- FAQ (details) ------------------------------------------------------------------------------ */
.wp-block-details + .wp-block-details { margin-top: 0; }
.wp-block-details:first-of-type { border-top: 1px solid var(--wp--preset--color--line); }
.wp-block-details summary {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-weight: 500;
	cursor: pointer;
	list-style: none;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-weight: 300; transition: transform .3s var(--wp--custom--transition); }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { margin-top: .75rem; }

/* --- Request form (Contact Form 7) ------------------------------------------------------------- */
.wpcf7 form p { margin: 0 0 1.25rem; }
.wpcf7 label { display: block; font-size: var(--wp--preset--font-size--small); font-weight: 500; letter-spacing: .02em; }
.wpcf7 input:where([type="text"], [type="email"], [type="tel"], [type="number"], [type="date"], [type="url"]),
.wpcf7 select,
.wpcf7 textarea {
	box-sizing: border-box;
	width: 100%;
	margin-top: .4rem;
	padding: .8rem .9rem;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: 300 var(--wp--preset--font-size--medium) / 1.4 var(--wp--preset--font-family--body);
}
.wpcf7 textarea { min-height: 9rem; resize: vertical; }
.wpcf7 :is(input, select, textarea):focus { outline: 2px solid var(--wp--preset--color--contrast); outline-offset: 0; border-color: var(--wp--preset--color--contrast); }
.wpcf7 input[type="file"] { margin-top: .4rem; font-size: var(--wp--preset--font-size--small); }
.wpcf7 input[type="file"]::file-selector-button {
	margin-right: .75rem;
	padding: .5rem .9rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	cursor: pointer;
}
/* Radio group: its question is a plain paragraph (a label cannot hold several inputs). */
.wpcf7 form p:has(.wpcf7-radio) { font-size: var(--wp--preset--font-size--small); font-weight: 500; letter-spacing: .02em; }
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin-top: .5rem; }
.wpcf7 .wpcf7-radio label { display: inline-flex; gap: .45rem; align-items: center; font-size: var(--wp--preset--font-size--medium); font-weight: 300; letter-spacing: 0; }
.wpcf7 input[type="radio"] { width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--wp--preset--color--contrast); }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: .6rem; align-items: flex-start; font-weight: 300; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 input[type="checkbox"] { width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: var(--wp--preset--color--contrast); }
.wpcf7 .wpcf7-submit {
	padding: .9rem 1.75rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font: 500 var(--wp--preset--font-size--small) / 1 var(--wp--preset--font-family--body);
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
}
.wpcf7 .wpcf7-submit:hover { background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast); }
.wpcf7 .wpcf7-not-valid-tip { margin-top: .3rem; font-size: var(--wp--preset--font-size--small); color: #b3261e; }
.wpcf7 form .wpcf7-response-output { margin: 1.5rem 0 0; padding: 1rem; border: 1px solid currentColor; }

/* --- Search ------------------------------------------------------------------------------------- */
.wp-block-search__input { border: 1px solid var(--wp--preset--color--line); border-radius: 0; padding: .8rem .9rem; }
.wp-block-search__button { margin-left: .5rem; }

/* --- Folio Sync: project pages and galleries in the Louves type ------------------------------- */
.louves-project .wp-block-post-title { margin-bottom: var(--wp--preset--spacing--50); }
.louves-project .wp-block-post-content > .wp-block-image { margin-block: var(--wp--preset--spacing--40); }
.folio-project-details { border-color: var(--wp--preset--color--contrast); }
.folio-project-details dt { color: var(--wp--preset--color--muted); opacity: 1; }
.folio-project-nav a > span, .folio-project-others span { color: var(--wp--preset--color--muted); opacity: 1; }
.folio-project-nav a { font-family: var(--wp--preset--font-family--display); font-weight: 900; font-size: var(--wp--preset--font-size--large); line-height: 1.1; }
/* No arrows in links (Laurent, 2026-10-08): Folio Sync's previous / next arrows are left out. */
.folio-project-nav__prev span::before, .folio-project-nav__next span::after { content: none; }
.folio-project-nav a > span { font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: .75rem; }
.folio-project-others strong { font-weight: 500; }

/* --- Map --------------------------------------------------------------------------------------- */
/* Black and white map tiles; the markers keep their colour. */
.leaflet-tile-pane { filter: grayscale(1) contrast(1.05); }
