/* Soleor M10 — styles that theme.json cannot express. Mobile first. */

:root {
	--soleor-ease: cubic-bezier(0.2, 0, 0, 1);
	--soleor-fast: 180ms;
}

/* ---------- Base ---------- */

html { scroll-padding-top: 5.5rem; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--solar); color: var(--wp--preset--color--ink); }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--solar);
	outline-offset: 3px;
}

.wp-element-button,
.wp-block-button__link { transition: background-color var(--soleor-fast) var(--soleor-ease), color var(--soleor-fast) var(--soleor-ease), border-color var(--soleor-fast) var(--soleor-ease); }

/* Outline buttons: transparent, current text colour. Used for secondary actions. */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: inherit;
	border: 1px solid currentColor;
	padding: calc(0.95rem - 1px) calc(1.6rem - 1px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--ivory);
	border-color: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ink);
}
.has-ivory-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.has-champagne-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover,
.soleor-landing > .wp-block-post-content > .wp-block-group:not(.has-background) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ivory);
}

/* Eyebrow label: the only place with wide tracking. */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-bottom: 0.75rem;
}
.has-ivory-background-color .is-style-eyebrow,
.has-champagne-background-color .is-style-eyebrow,
.soleor-section:not(.has-background) .is-style-eyebrow { color: var(--wp--preset--color--solar-text); }

/* ---------- Header ---------- */

.soleor-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.admin-bar .soleor-header { top: var(--wp-admin--admin-bar--height, 0); }

.soleor-brand .wp-block-site-title { margin: 0; line-height: 1.1; }
.soleor-brand .wp-block-site-title a { text-decoration: none; }
.soleor-brand__sub {
	margin: 0;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--ink-soft);
}

.soleor-header .wp-block-navigation a { text-decoration: none; }
.soleor-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 0.35em; }
.soleor-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { font-size: var(--wp--preset--font-size--xl); font-family: var(--wp--preset--font-family--display); gap: 1.25rem; }
/* Sub-pages in the open menu: smaller and quieter than the main entries, same right edge. */
.soleor-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	font-size: 1.05rem;
	font-family: var(--wp--preset--font-family--body);
	gap: 0.55rem;
	padding: 0.6rem 0 0.2rem !important;
	opacity: 0.82;
}
.soleor-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.15rem 0; }

.soleor-header__cta .wp-block-button__link { padding: 0.7rem 1rem; font-size: 0.84rem; white-space: nowrap; }

/* Language menu ([soleor_languages]): the current code, the list on demand. */
.soleor-langs { position: relative; font-size: 0.8rem; letter-spacing: 0.08em; }
.soleor-langs summary {
	list-style: none;
	cursor: pointer;
	min-width: 44px;
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.3rem;
	color: var(--wp--preset--color--ink);
}
.soleor-langs summary::-webkit-details-marker { display: none; }
.soleor-langs summary::after { content: ""; width: 0.4em; height: 0.4em; border: solid currentColor; border-width: 0 1px 1px 0; transform: translateY(-0.15em) rotate(45deg); }
.soleor-langs ul {
	position: absolute;
	right: 0;
	top: 100%;
	margin: 0;
	padding: 0.4rem 0;
	list-style: none;
	min-width: 11rem;
	background: var(--wp--preset--color--ivory);
	border: 1px solid var(--wp--preset--color--rule);
	border-radius: 4px;
	z-index: 60;
}
.soleor-langs a { display: block; padding: 0.55rem 1rem; text-decoration: none; color: var(--wp--preset--color--ink); }
.soleor-langs a span { letter-spacing: 0; color: var(--wp--preset--color--ink-soft); margin-left: 0.4rem; }
.soleor-langs a:hover,
.soleor-langs a:focus-visible { background: var(--wp--preset--color--champagne); }
.soleor-langs a[aria-current] { font-weight: 600; }

/* Tablets: five menu entries no longer fit on one line, use the menu button (WordPress does it below 600 px only). */
@media (min-width: 600px) and (max-width: 1023px) {
	.soleor-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.soleor-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

@media (max-width: 599px) {
	.soleor-brand__sub { display: none; }
	.soleor-header .wp-block-site-title { font-size: 1rem; }
	.soleor-header__actions { gap: 0.75rem !important; }
}

/* ---------- Landing sections ---------- */

.soleor-landing .wp-block-post-content > * { margin-block-start: 0; }
.soleor-landing .wp-block-post-content > .alignfull + .alignfull { margin-block-start: 0; }

/* Full-bleed covers keep the same side gutter as the header. */
.wp-block-cover.alignfull {
	padding-left: var(--wp--style--root--padding-left, clamp(1rem, 4vw, 2.5rem));
	padding-right: var(--wp--style--root--padding-right, clamp(1rem, 4vw, 2.5rem));
}

/* Cover content aligns with the header grid. */
.wp-block-cover.alignfull > .wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1240px);
	margin-inline: auto;
}
.wp-site-blocks > footer { margin-block-start: 0; }

/* Hero: gradient only where the text sits, so the photo stays clean. */
.soleor-hero .wp-block-cover__background { opacity: 0.15 !important; }
.soleor-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to right, rgb(11 36 64 / 0.62) 0%, rgb(11 36 64 / 0.25) 42%, transparent 62%),
		linear-gradient(to top, rgb(11 36 64 / 0.7) 0%, rgb(11 36 64 / 0.2) 40%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}
.soleor-hero .wp-block-cover__inner-container { z-index: 1; }
.soleor-hero h1 { margin-block: 0.1em 0.15em; font-weight: 420; letter-spacing: -0.03em; line-height: 0.95; font-size: clamp(3.2rem, 8vw, 6rem) !important; white-space: nowrap; }
.soleor-hero__text > p:not(.is-style-eyebrow) { max-width: 34ch; }
.soleor-hero .is-style-eyebrow { color: var(--wp--preset--color--champagne); }

/* Discreet label on computer-generated visuals (honesty about renderings). */
.is-style-rendering { position: relative; }
.wp-block-cover.is-style-rendering::before,
.wp-block-image.is-style-rendering::before,
.wp-block-post-featured-image.is-style-rendering::before {
	content: "Rendering";
	position: absolute;
	right: 0.75rem;
	bottom: 0.6rem;
	z-index: 2;
	font-size: 0.68rem;
	letter-spacing: 0.06em;
	color: rgb(255 255 255 / 0.8);
	pointer-events: none;
}
html[lang^="fr"] .is-style-rendering::before { content: "Visualisation"; }
html[lang^="es"] .is-style-rendering::before { content: "Recreación"; }
html[lang^="de"] .is-style-rendering::before { content: "Visualisierung"; }
html[lang^="nl"] .is-style-rendering::before { content: "Impressie"; }

/* Key figures: separated by rules and spacing, not cards. */
.soleor-figures {
	gap: 0 !important;
	border-top: 1px solid var(--wp--preset--color--rule);
	margin-top: var(--wp--preset--spacing--20);
}
.soleor-figure {
	gap: 0.4rem !important;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20) var(--wp--preset--spacing--30) 0;
	border-bottom: 1px solid var(--wp--preset--color--rule);
}
.soleor-figures { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.soleor-figure__value {
	margin: 0;
	white-space: nowrap;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(2rem, 3.4vw, 3.25rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}
.soleor-figure.is-energy .soleor-figure__value { color: var(--wp--preset--color--solar-text); }
.soleor-figure__label { margin: 0; font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--ink-soft); max-width: 22ch; }
.soleor-figures__foot { margin-top: var(--wp--preset--spacing--20); align-items: baseline; }
.soleor-figures__foot p { margin: 0; }

@media (min-width: 900px) {
	.soleor-figures { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
	.soleor-figure { border-bottom: 0; padding-right: var(--wp--preset--spacing--30); }
	.soleor-figure + .soleor-figure { border-left: 1px solid var(--wp--preset--color--rule); padding-left: var(--wp--preset--spacing--30); }
	.soleor-figures { border-bottom: 1px solid var(--wp--preset--color--rule); }
}

/* Ruled list: hairlines between items instead of bullets. */
ul.is-style-ruled { list-style: none; padding-left: 0; border-top: 1px solid var(--wp--preset--color--rule); }
ul.is-style-ruled > li { padding: 0.7rem 0; border-bottom: 1px solid var(--wp--preset--color--rule); }
.has-ink-background-color ul.is-style-ruled,
.has-ink-background-color ul.is-style-ruled > li { border-color: rgb(250 247 240 / 0.18); }

/* Life aboard: one large photograph, three supporting ones. */
.soleor-aboard { display: grid; gap: var(--wp--preset--spacing--30); margin-top: var(--wp--preset--spacing--40) !important; }
.soleor-aboard .wp-block-image { margin: 0; }
.soleor-aboard .wp-block-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.soleor-aboard .wp-element-caption { margin-top: 0.7rem; max-width: 46ch; }
@media (min-width: 782px) {
	.soleor-aboard { grid-template-columns: repeat(3, 1fr); }
	.soleor-aboard .soleor-aboard__main { grid-column: 1 / -1; }
	.soleor-aboard .soleor-aboard__main img { aspect-ratio: 21 / 9; }
	.soleor-aboard .wp-block-image:not(.soleor-aboard__main) img { aspect-ratio: 4 / 5; }
}

/* Captions on dark backgrounds */
.has-ink-background-color .wp-element-caption,
.wp-block-cover .wp-element-caption { color: rgb(250 247 240 / 0.75); }

/* ---------- Map ---------- */

.soleor-map { width: 100%; height: auto; display: block; }
.soleor-map__island { fill: var(--wp--preset--color--rule); }
.soleor-map__island.is-base { fill: var(--wp--preset--color--ink); }
.soleor-map__label { font: 500 19px var(--wp--preset--font-family--body); fill: var(--wp--preset--color--ink-soft); }
.soleor-map__label.is-base { fill: var(--wp--preset--color--ink); font-weight: 600; }
.soleor-map__pin { fill: var(--wp--preset--color--solar); stroke: var(--wp--preset--color--ivory); stroke-width: 3; }
.soleor-map__pin-label { font: 600 17px var(--wp--preset--font-family--body); fill: var(--wp--preset--color--solar-text); }
@media (max-width: 599px) {
	.soleor-map__label, .soleor-map__pin-label { display: none; }
}

/* ---------- Spec sheet table ---------- */

.wp-block-table.is-style-spec-sheet table { border-collapse: collapse; width: 100%; }
.wp-block-table.is-style-spec-sheet td,
.wp-block-table.is-style-spec-sheet th { border: 0; border-bottom: 1px solid var(--wp--preset--color--rule); padding: 0.85rem 1rem 0.85rem 0; vertical-align: top; text-align: left; }
.wp-block-table.is-style-spec-sheet tr > td:first-child { color: var(--wp--preset--color--ink-soft); width: 44%; }
.wp-block-table.is-style-spec-sheet tr > td:last-child { font-variant-numeric: tabular-nums; }
.wp-block-table.is-style-spec-sheet thead { border: 0; }
.wp-block-table.is-style-spec-sheet thead th { font-size: var(--wp--preset--font-size--xs); letter-spacing: 0.12em; text-transform: uppercase; font-weight: 600; border-bottom: 1px solid var(--wp--preset--color--ink); }
.wp-block-table.is-style-spec-sheet figcaption { text-align: left; }

/* Packs comparison: three columns read side by side, separated by rules. */
.soleor-packs > .wp-block-column { border-top: 2px solid var(--wp--preset--color--ink); padding-top: var(--wp--preset--spacing--20); }
.soleor-packs h3 { margin-top: 0; }
.soleor-packs .soleor-pack__adds { font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--ink-soft); }

/* ---------- Gallery ---------- */

.soleor-gallery-group + .soleor-gallery-group { margin-top: var(--wp--preset--spacing--50) !important; }
.soleor-gallery-group .wp-block-gallery { margin-top: var(--wp--preset--spacing--20); }
.soleor-gallery-group .wp-block-gallery .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; }

/* ---------- Footer ---------- */

.soleor-footer .is-style-eyebrow { color: var(--wp--preset--color--solar); }
.soleor-footer .wp-block-site-title { font-size: 1.35rem; }
.soleor-footer__links { list-style: none; padding: 0; margin: 0; }
.soleor-footer__links li { padding: 0.25rem 0; }
.soleor-footer a { text-decoration: none; }
.soleor-footer a:hover { text-decoration: underline; text-underline-offset: 0.3em; }
.soleor-footer__base { border-top: 1px solid rgb(250 247 240 / 0.18); color: #C9D2DC; }
.soleor-footer__base p { margin: 0; }

/* ---------- Forms (Soleor Core plugin markup) ---------- */

.soleor-form { display: grid; gap: 1.1rem; }
.soleor-form__row { display: grid; gap: 1.1rem; }
@media (min-width: 640px) { .soleor-form__row { grid-template-columns: 1fr 1fr; } }
.soleor-form label,
.soleor-form legend { display: block; font-size: var(--wp--preset--font-size--s); font-weight: 600; margin-bottom: 0.35rem; }
.soleor-form .soleor-form__optional { font-weight: 400; color: var(--wp--preset--color--ink-soft); }
.soleor-form input[type="text"],
.soleor-form input[type="email"],
.soleor-form input[type="tel"],
.soleor-form input[type="date"],
.soleor-form select,
.soleor-form textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem; /* 16px minimum: no zoom on iOS */
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid #B9AE99;
	border-radius: 4px;
	padding: 0.8rem 0.9rem;
	min-height: 48px;
}
.soleor-form textarea { min-height: 7.5rem; resize: vertical; }
.soleor-form input:focus, .soleor-form select:focus, .soleor-form textarea:focus { border-color: var(--wp--preset--color--ink); outline: 2px solid var(--wp--preset--color--solar); outline-offset: 1px; }
.soleor-form fieldset { border: 0; padding: 0; margin: 0; }
.soleor-form .soleor-form__choices { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.soleor-form .soleor-form__choices label { font-weight: 400; display: flex; align-items: center; gap: 0.5rem; min-height: 44px; margin: 0; }
.soleor-form .soleor-form__consent { display: flex; gap: 0.6rem; align-items: flex-start; font-weight: 400; font-size: var(--wp--preset--font-size--s); }
.soleor-form .soleor-form__consent input { margin-top: 0.3rem; width: 1.1rem; height: 1.1rem; flex: none; }
.soleor-form button[type="submit"] { justify-self: start; cursor: pointer; }
.soleor-notice { padding: 1rem 1.25rem; border: 1px solid var(--wp--preset--color--ink); }
.soleor-notice--error { border-color: #9B2C1F; color: #9B2C1F; }
.soleor-notice--admin { border-style: dashed; color: var(--wp--preset--color--ink-soft); font-size: var(--wp--preset--font-size--s); }

.soleor-contact-list { list-style: none; padding: 0; margin: 0; font-size: var(--wp--preset--font-size--s); }
.soleor-contact-list li { padding: 0.25rem 0; }

/* ---------- Floating WhatsApp (Soleor Core plugin) ---------- */

.soleor-whatsapp {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	z-index: 60;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 52px;
	padding: 0 1.1rem 0 0.95rem;
	border-radius: 999px;
	background: #1F7A4D;
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	text-decoration: none;
	box-shadow: 0 6px 20px rgb(11 36 64 / 0.25);
}
.soleor-whatsapp:hover { background: #17603C; color: #fff; }
.soleor-whatsapp svg { width: 22px; height: 22px; flex: none; }
@media (max-width: 599px) {
	.soleor-whatsapp { padding: 0; width: 56px; justify-content: center; }
	.soleor-whatsapp span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}

/* ---------- Charter teaser (Soleor Core plugin) ---------- */

.soleor-charter { position: relative; color: var(--wp--preset--color--ivory); background: var(--wp--preset--color--ink); }
.soleor-charter__inner { display: grid; }
.soleor-charter__media { position: relative; min-height: 18rem; }
.soleor-charter__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.soleor-charter__text { padding: var(--wp--preset--spacing--50) clamp(1rem, 4vw, 2.5rem); max-width: 34rem; }
.soleor-charter__text h2 { margin-top: 0.25rem; }
.soleor-charter a.soleor-charter__link { color: var(--wp--preset--color--solar); font-weight: 600; }
@media (min-width: 900px) {
	.soleor-charter__inner { grid-template-columns: 1.1fr 1fr; align-items: center; }
	.soleor-charter__media { min-height: 30rem; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ---------- Quote, page heads ---------- */

.soleor-quote { margin: 0; padding: 0; }
.soleor-quote p { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--l); line-height: 1.4; font-weight: 400; }
.soleor-quote p::before { content: "“"; display: block; font-size: 3.5rem; line-height: 0.6; color: var(--wp--preset--color--solar-text); margin-bottom: 0.6rem; }
.soleor-quote cite { display: block; margin-top: 1rem; font-style: normal; font-size: var(--wp--preset--font-size--s); color: var(--wp--preset--color--ink-soft); }
.soleor-page-head > .wp-block-heading { max-width: var(--wp--style--global--wide-size) !important; }
.soleor-page-head .wp-block-columns h1 { max-width: 18ch; }
.soleor-spaces > li { padding: 0.95rem 0; }
.soleor-options { columns: 1; }
@media (min-width: 782px) { .soleor-options { columns: 2; column-gap: var(--wp--preset--spacing--40); } .soleor-options > li { break-inside: avoid; } }

/* ---------- Round 2 fixes ---------- */
.soleor-next { border-top: 1px solid var(--wp--preset--color--rule); }
.soleor-footer .wp-block-columns { margin-top: 0; }
@media (max-width: 899px) { .soleor-figures > .soleor-figure:last-child { grid-column: 1 / -1; } }
.soleor-form p { margin: 0; }
@media (max-width: 781px) { .soleor-hide-mobile { display: none !important; } }
.soleor-art { display: contents; }

/* Home hero on phones: the vertical rendering keeps the sky at the top for the text, the boat below. */
@media (max-width: 781px) {
	.soleor-hero:has(.soleor-art) { align-items: flex-start !important; }
	.soleor-hero:has(.soleor-art)::after {
		background: linear-gradient(to bottom, rgb(11 36 64 / 0.72) 0%, rgb(11 36 64 / 0.35) 38%, transparent 58%);
	}
	.soleor-hero:has(.soleor-art) .wp-block-buttons { gap: 0.6rem; }
}

/* Cover background video (see soleor_m10 cover video filter): over the image, under the gradients. */
.wp-block-cover .soleor-cover-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
