/*
Theme Name: Strandviks semesterboende
Theme URI: https://villastrandvik.se/
Author: Bagoly
Description: Tema för Strandviks semesterboende, uthyrning av lägenheter. Vitt, guld och silver, skrivstil i namnet. Startsidan byggs av mönster och ändras i blockredigeraren, lägenheterna läggs till under Lägenheter och kontaktuppgifterna under Inställningar → Strandviks. Inga externa anrop och inga kakor.
Version: 1.3.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: strandvik
*/

:root {
	--sb-white: #fff;
	--sb-pearl: var(--wp--preset--color--pearl, #fcfbf8);
	--sb-mist: var(--wp--preset--color--mist, #f3f4f3);
	--sb-line: var(--wp--preset--color--silver-line, #e6e8ea);
	--sb-silver: var(--wp--preset--color--silver, #c0c4c8);
	--sb-gold: var(--wp--preset--color--gold, #b8975a);
	--sb-gold-light: var(--wp--preset--color--gold-light, #d9c49b);
	--sb-gold-deep: #9a7a44; /* large display text only (3.9:1 on white) */
	--sb-gold-text: var(--wp--preset--color--gold-text, #7d6235); /* small text (5.7:1 on white) */
	--sb-ink: var(--wp--preset--color--ink, #2a2926);
	--sb-muted: var(--wp--preset--color--muted, #5f5d58);
	--sb-night: var(--wp--preset--color--night, #15171b);
	--sb-script: var(--wp--preset--font-family--great-vibes);
	--sb-serif: var(--wp--preset--font-family--cormorant);
	--sb-sans: var(--wp--preset--font-family--jost);
	--sb-header-h: 88px;
	--sb-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--sb-ornament: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 140 14'%3E%3Cg fill='none' stroke='%23b8975a' stroke-width='1'%3E%3Cpath d='M0 7h54M86 7h54'/%3E%3Cpath d='M70 1.5 75.5 7 70 12.5 64.5 7z'/%3E%3C/g%3E%3Cg fill='%23b8975a'%3E%3Ccircle cx='59.5' cy='7' r='1.3'/%3E%3Ccircle cx='80.5' cy='7' r='1.3'/%3E%3C/g%3E%3C/svg%3E");
	--sb-curl-l: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14' fill='none' stroke='%23b8975a' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M0 9.5h8c4 0 7-1.2 8.6-3.4 1.4-2-.1-4.4-2.3-3.6-2.3.8-1.6 4.4 1.5 6 2 1 4.8 1 8.2 1'/%3E%3C/svg%3E");
	--sb-curl-r: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 14' fill='none' stroke='%23b8975a' stroke-width='1' stroke-linecap='round'%3E%3Cpath d='M24 9.5h-8c-4 0-7-1.2-8.6-3.4-1.4-2 .1-4.4 2.3-3.6 2.3.8 1.6 4.4-1.5 6-2 1-4.8 1-8.2 1'/%3E%3C/svg%3E");
	--sb-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23b8975a' stroke-width='1.3'%3E%3Ccircle cx='10' cy='10' r='8.6'/%3E%3Cpath d='m6.2 10.3 2.5 2.5 5.2-5.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

html {
	scroll-behavior: smooth;
	/* Anchors land below the sticky header (and the admin bar when logged in). */
	scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--sb-header-h) + 12px);
}
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
::selection { background: rgba(217, 196, 155, 0.55); color: var(--sb-ink); }
:focus-visible { outline: 2px solid var(--sb-gold-text); outline-offset: 3px; }

/* Never hyphenate, never break a word in a heading: sizes are set so the longest Swedish words fit at 390 px. */
p, li, dd, dt, figcaption { hyphens: manual; -webkit-hyphens: manual; overflow-wrap: break-word; }
h1, h2, h3, h4, h5, h6, .sb-logo, .sb-script, .sb-footer-name, .sb-signature, .sb-script-sub {
	hyphens: manual;
	-webkit-hyphens: manual;
	word-break: normal;
	overflow-wrap: normal;
	text-wrap: balance;
}

/* Header, main and footer sit flush; the start page sections run edge to edge. */
body .wp-site-blocks > * { margin-block-start: 0; }
body .wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
body .wp-site-blocks > main { flex: 1 0 auto; }
.sb-front .wp-block-post-content > .alignfull { margin-block-start: 0; margin-block-end: 0; }

/* ---------- Header ---------- */
.sb-site-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	background: rgba(255, 255, 255, 0.97);
	border-bottom: 1px solid var(--sb-line);
}
.sb-nav { min-height: var(--sb-header-h); align-items: center; gap: 24px; }
.wp-block-group.sb-nav > * { margin: 0; }
.sb-logo {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	padding: 4px 2px 2px;
	color: var(--sb-gold-deep);
	text-decoration: none;
	white-space: nowrap;
}
.sb-logo-name {
	font-family: var(--sb-script);
	font-size: 2.9rem;
	font-weight: 400;
	line-height: 0.95;
}
.sb-logo-sub {
	margin-top: 2px;
	padding-left: 0.46em;
	font-family: var(--sb-sans);
	font-size: 0.62rem;
	font-weight: 500;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--sb-ink);
}
.sb-logo:hover .sb-logo-name, .sb-logo:focus-visible .sb-logo-name { color: var(--sb-gold-text); }

.sb-menu .wp-block-navigation__container { gap: clamp(18px, 2.4vw, 36px); align-items: center; }
.sb-menu .wp-block-navigation-item__content {
	position: relative;
	color: var(--sb-ink);
	text-decoration: none;
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 6px 0;
}
.sb-menu .wp-block-navigation-item:not(.sb-nav-cta):not(.sb-nav-lang-menu) > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0.18em;
	bottom: 0;
	height: 1px;
	background: var(--sb-gold);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--sb-ease);
}
.sb-menu .wp-block-navigation-item__content:hover::after,
.sb-menu .wp-block-navigation-item__content:focus-visible::after { transform: scaleX(1); }
.sb-menu .wp-block-navigation-item__content:hover { color: var(--sb-gold-text); }
.sb-menu .sb-nav-cta > .wp-block-navigation-item__content {
	border: 1px solid var(--sb-gold);
	padding: 11px 20px 11px calc(20px + 0.18em);
	transition: background 0.3s, color 0.3s;
}
.sb-menu .sb-nav-cta.has-child > .wp-block-navigation-item__content { padding-right: 34px; }
.sb-menu .sb-nav-cta.has-child .wp-block-navigation__submenu-icon {
	position: absolute;
	right: 14px;
	top: 50%;
	margin: 0;
	transform: translateY(-50%);
	pointer-events: none;
}
.sb-menu .sb-nav-cta.has-child { position: relative; }
.sb-menu .sb-nav-book .wp-block-navigation__submenu-container {
	min-width: 230px;
	padding: 10px 0;
	background: #fff;
	border: 1px solid var(--sb-line) !important;
	border-top-color: var(--sb-gold) !important;
	box-shadow: 0 18px 40px rgba(42, 41, 38, 0.08);
	left: auto !important;
	right: 0;
}
.sb-menu .sb-nav-book .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 10px 20px;
	font-size: 0.74rem;
	white-space: nowrap;
}

/* Header row: the name left, the menu centred in the space between, language over "Boka" on the right. */
.wp-block-group.sb-nav { gap: 2.5rem; padding-block: 9px; }
.sb-menu-main .wp-block-navigation__container { gap: clamp(18px, 1.7vw, 30px); }
.wp-block-group.sb-nav > .sb-menu-main { margin-inline: auto; }
.wp-block-group.sb-header-side { gap: 0.75rem; align-items: center; }
.wp-block-group.sb-header-side > * { margin: 0; }
/* "Boka": filled in deep gold with white text (4.9:1), a little deeper on hover. */
.sb-menu-book .sb-nav-cta > .wp-block-navigation-item__content {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	height: 44px;
	padding: 0 22px 0 calc(22px + 0.18em);
	background: #8a6d3b;
	border: 1px solid #8a6d3b;
	color: #fff;
}
.sb-menu-book .sb-nav-cta > .wp-block-navigation-item__content:hover,
.sb-menu-book .sb-nav-cta > .wp-block-navigation-item__content:focus-visible,
.sb-menu-book .sb-nav-cta > .wp-block-navigation-item__content[aria-expanded="true"] { background: #76592c; border-color: #76592c; color: #fff; }
.sb-menu-book .sb-nav-cta .wp-block-navigation__submenu-icon { color: #fff; }
.sb-menu-book .sb-nav-cta.has-child > .wp-block-navigation-item__content { padding-right: 36px; }
/* The language box: same height, thin silver border, gold only on hover and focus. */
.sb-lang-menu { position: relative; }
.sb-lang-menu summary {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 44px;
	padding: 0 13px 0 calc(15px + 0.18em);
	list-style: none;
	cursor: pointer;
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sb-ink);
	background: #fff;
	border: 1px solid #c9cdd1;
	transition: border-color 0.25s;
	user-select: none;
}
.sb-lang-menu summary::-webkit-details-marker { display: none; }
.sb-lang-menu summary:hover,
.sb-lang-menu summary:focus-visible,
.sb-lang-menu[open] summary { border-color: var(--sb-gold); }
.sb-lang-menu summary:focus-visible { outline: 2px solid var(--sb-gold-text); outline-offset: 3px; }
.sb-lang-chevron { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; stroke-linejoin: round; transition: transform 0.25s var(--sb-ease); }
.sb-lang-menu[open] .sb-lang-chevron { transform: rotate(180deg); }
.sb-lang-list {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	z-index: 60;
	min-width: 176px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: #fff;
	border: 1px solid var(--sb-line);
	border-radius: 4px;
	box-shadow: 0 16px 40px rgba(42, 41, 38, 0.1);
}
.sb-lang-list li { margin: 0; }
.sb-lang-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 9px 20px;
	font-family: var(--sb-serif);
	font-size: 1.12rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--sb-ink);
	text-decoration: none;
}
.sb-lang-list a:hover, .sb-lang-list a:focus-visible { background: #f8f4ec; color: var(--sb-gold-text); outline: none; }
.sb-lang-list a.is-current { color: var(--sb-gold-text); }
.sb-lang-list a.is-current::after {
	content: "";
	width: 12px;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23b8975a' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m2 6.4 2.6 2.6L10 3.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (min-width: 1240px) {
	.sb-menu-main .sb-nav-lang-menu, .sb-menu-main .sb-nav-book-mobile { display: none !important; }
}
@media (max-width: 1239px) {
	.wp-block-group.sb-header-side { display: none; }
	.wp-block-group.sb-nav { gap: 16px; }
	.wp-block-group.sb-nav > .sb-menu-main { margin-inline: auto 0; }
}
/* In the phone menu: the language (current one, then the others) and "Boka" under the links. */
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-lang-menu {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--sb-line);
	min-width: 200px;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-lang-menu > .wp-block-navigation-item__content {
	font-family: var(--sb-sans);
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
	padding: 4px 0;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-lang-menu .wp-block-navigation__submenu-container {
	padding: 4px 0 0;
	gap: 0;
	align-items: center;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-lang-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 3px 0;
	font-size: 1.15rem;
	color: var(--sb-muted);
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-lang-menu .wp-block-navigation__submenu-icon { display: none; }

/* Footer: the language names as a quiet row of text links. */
.sb-footer-langs ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 0; margin: 26px 0 0; padding: 0; list-style: none; }
.sb-footer-langs li { display: flex; align-items: center; margin: 0; }
.sb-footer-langs li + li::before { content: ""; width: 3px; height: 3px; margin: 0 14px; border-radius: 50%; background: var(--sb-silver); }
.sb-footer-langs a {
	padding: 3px 0 3px 0.2em;
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sb-muted);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}
.sb-footer-langs a:hover, .sb-footer-langs a:focus-visible { color: var(--sb-gold-text); }
.sb-footer-langs a.is-current { color: var(--sb-ink); border-bottom-color: var(--sb-gold); }
.sb-menu .sb-nav-cta > .wp-block-navigation-item__content:hover { background: #f7f1e6; color: var(--sb-ink); }
.sb-menu .wp-block-navigation__responsive-container-open,
.sb-menu .wp-block-navigation__responsive-container-close { color: var(--sb-ink); }
.sb-menu .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }

/* The overlay menu (phones and narrow tablets). */
.sb-menu .wp-block-navigation__responsive-container.is-menu-open {
	padding: 28px clamp(20px, 6vw, 48px);
	background: #fff;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 72px;
	align-items: center;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 6px;
	align-items: center;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: center; }
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--sb-serif);
	font-size: 1.9rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	text-transform: none;
	padding: 8px 0;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-cta > .wp-block-navigation-item__content {
	margin-top: 18px;
	padding: 12px 34px;
	font-family: var(--sb-sans);
	font-size: 0.82rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-book .wp-block-navigation__submenu-icon { display: none; }
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-book .wp-block-navigation__submenu-container {
	min-width: 0;
	padding: 6px 0 0;
	border: 0 !important;
	box-shadow: none;
	align-items: center;
}
.sb-menu .wp-block-navigation__responsive-container.is-menu-open .sb-nav-book .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--sb-sans);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	padding: 8px 0;
}
/* The menu does not fit beside the name and the two controls below 1180 px (German is the longest): overlay menu. */
@media (min-width: 600px) and (max-width: 1239px) {
	.sb-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.sb-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background 0.3s, color 0.3s, border-color 0.3s; }
.wp-block-button__link { padding-left: calc(30px + 0.18em); }
.is-style-outline > .wp-block-button__link,
.wp-block-button__link.is-style-outline {
	background: transparent;
	border: 1px solid var(--sb-gold);
	color: var(--sb-ink);
	padding: 15px 30px 15px calc(30px + 0.18em);
}
.is-style-outline > .wp-block-button__link:hover,
.is-style-outline > .wp-block-button__link:focus { background: #f7f1e6; color: var(--sb-ink); border-color: var(--sb-gold); }

/* ---------- Top image ---------- */
.wp-block-cover.sb-hero {
	min-height: clamp(560px, calc(100svh - var(--sb-header-h)), 1040px);
	padding: clamp(40px, 6vw, 96px) clamp(16px, 4vw, 32px);
	align-items: center;
	color: #fff;
}
.sb-hero .wp-block-cover__background {
	opacity: 1 !important;
	background: linear-gradient(90deg, rgba(14, 15, 18, 0.8) 0%, rgba(14, 15, 18, 0.58) 34%, rgba(14, 15, 18, 0.16) 66%, rgba(14, 15, 18, 0.06) 100%) !important;
}
.sb-hero .wp-block-cover__inner-container { width: 100%; }
.wp-block-group.sb-hero-inner { max-width: 1120px; }
.wp-block-group.sb-hero-inner > * { margin-block: 0; max-width: 34rem; }
.sb-hero-label {
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--sb-gold-light);
}
.sb-hero h1.sb-hero-title {
	margin-top: 0;
	padding-left: 0.04em;
	font-family: var(--sb-script);
	font-size: var(--wp--preset--font-size--script);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: 0;
	color: #fff;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.28);
}
.sb-hero .sb-hero-sub {
	margin-top: 0.2em;
	padding-left: 0.3em;
	font-size: clamp(0.8rem, 0.7rem + 0.45vw, 1.05rem);
	font-weight: 400;
	letter-spacing: 0.56em;
	text-transform: uppercase;
	color: var(--sb-gold-light);
}
.sb-hero .sb-hero-lead {
	position: relative;
	margin-top: 30px;
	padding-top: 26px;
	font-family: var(--sb-serif);
	font-style: italic;
	font-size: clamp(1.3rem, 1.12rem + 0.8vw, 1.75rem);
	line-height: 1.38;
	color: rgba(255, 255, 255, 0.93);
	max-width: 27rem;
}
.sb-hero-lead::before {
	content: "";
	position: absolute;
	top: 0;
	left: 2px;
	width: 140px;
	height: 14px;
	background: var(--sb-ornament) left center / contain no-repeat;
}
.wp-block-buttons.sb-hero-buttons { margin-top: 36px; gap: 14px; }
.sb-hero .is-style-outline > .wp-block-button__link { border-color: var(--sb-gold-light); color: #fff; }
.sb-hero .is-style-outline > .wp-block-button__link:hover,
.sb-hero .is-style-outline > .wp-block-button__link:focus { background: rgba(217, 196, 155, 0.16); color: #fff; }

/* ---------- Sections ---------- */
.sb-section { padding-top: clamp(84px, 10vw, 140px); padding-bottom: clamp(84px, 10vw, 140px); }
.sb-welcome, .sb-house, .sb-gallery-section, .sb-contact { background: var(--sb-white); }
.sb-apartments, .sb-area, .sb-know { background: var(--sb-mist); }

.wp-block-group.sb-intro { margin-bottom: clamp(44px, 6vw, 72px); text-align: center; }
.wp-block-group.sb-intro > * { margin-block: 0; }
.sb-label {
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.wp-block-group.sb-intro > .sb-label + .wp-block-heading { margin-top: 16px; }
.sb-section h2.wp-block-heading { font-weight: 500; }
.wp-block-separator.is-style-sb-ornament {
	width: 140px;
	max-width: 100%;
	height: 14px;
	margin: 26px auto 28px;
	border: 0 !important;
	background: var(--sb-ornament) center / contain no-repeat;
	opacity: 1;
}
.wp-block-separator.is-style-sb-ornament.sb-ornament-start { margin-left: 0; background-position: left center; }
.sb-lead {
	text-wrap: balance;
	font-family: var(--sb-serif);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 400;
	line-height: 1.5;
	color: #3b3935;
}
.sb-welcome .sb-lead + p { color: var(--sb-muted); }
.sb-section h2.sb-script-heading {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.28em;
	font-family: var(--sb-script);
	font-size: clamp(3.6rem, 2.4rem + 4.6vw, 6.4rem);
	font-weight: 400;
	line-height: 1.05;
	color: var(--sb-gold-deep);
}
.sb-script-heading::before,
.sb-script-heading::after {
	content: "";
	flex: 1 1 0;
	max-width: 230px;
	height: 18px;
	transform: translateY(0.1em);
	background-repeat: no-repeat;
}
.sb-script-heading::before {
	background-image: var(--sb-curl-l), linear-gradient(90deg, rgba(184, 151, 90, 0), var(--sb-gold));
	background-position: right center, left 12px;
	background-size: 32px 18px, calc(100% - 29px) 1px;
}
.sb-script-heading::after {
	background-image: var(--sb-curl-r), linear-gradient(270deg, rgba(184, 151, 90, 0), var(--sb-gold));
	background-position: left center, right 12px;
	background-size: 32px 18px, calc(100% - 29px) 1px;
}
.wp-block-group.sb-welcome > p.sb-script-sub {
	margin-top: 0.1em;
	font-family: var(--sb-script);
	font-size: clamp(1.8rem, 1.45rem + 1.6vw, 2.9rem);
	line-height: 1.15;
	color: var(--sb-gold-deep);
}
.wp-block-group.sb-welcome > p.sb-tagline {
	margin-top: 26px;
	padding-left: 0.42em;
	font-size: 0.76rem;
	font-weight: 400;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--sb-ink);
}
.wp-block-group.sb-welcome > p.sb-tagline + .sb-lead { margin-top: 34px; padding-top: 34px; border-top: 1px solid var(--sb-line); }
.wp-block-group.sb-welcome > p.sb-signature {
	margin-top: 26px;
	font-family: var(--sb-script);
	font-size: clamp(2rem, 1.7rem + 1.2vw, 2.6rem);
	line-height: 1.2;
	color: var(--sb-gold-deep);
}
.wp-block-group.sb-welcome > * { margin-block: 0; }
.wp-block-group.sb-welcome > * + p { margin-top: 1.1rem; }
.sb-script {
	font-family: var(--sb-script);
	font-size: clamp(3.4rem, 2.5rem + 3.4vw, 5.4rem);
	line-height: 1.05;
	color: var(--sb-gold-deep);
}
.wp-block-group.sb-welcome > .sb-script + h2 { margin-top: 4px; }

/* ---------- Apartment cards ---------- */
.sb-cards.wp-block-post-template { gap: clamp(20px, 2.6vw, 32px); }
.sb-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--sb-white);
	border: 1px solid var(--sb-line);
	transition: box-shadow 0.5s var(--sb-ease), border-color 0.5s;
}
.sb-card:hover { box-shadow: 0 22px 50px rgba(42, 41, 38, 0.08); border-color: #d9dcdf; }
.wp-block-group.sb-card > * { margin: 0; }
.sb-card-image { overflow: hidden; background: var(--sb-mist); }
.sb-card-image a { display: block; height: 100%; }
.sb-card-image img { display: block; width: 100%; transition: transform 1.2s var(--sb-ease); }
.sb-card:hover .sb-card-image img { transform: scale(1.035); }
.wp-block-group.sb-card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: clamp(26px, 3vw, 40px);
}
.wp-block-group.sb-card-body > * { margin: 0; }
.wp-block-group.sb-card-body > * + * { margin-top: 14px; }
.sb-card-title { font-size: clamp(1.75rem, 1.5rem + 0.9vw, 2.2rem); font-weight: 500; }
.sb-card-title a { text-decoration: none; }
.sb-card-title a:hover { color: var(--sb-gold-text); }
.sb-card-text, .sb-card-text p { color: var(--sb-muted); margin: 0; }
.wp-block-read-more.sb-more,
.sb-card-body > .wp-block-read-more {
	align-self: flex-start;
	margin-top: auto;
	padding: 22px 0 4px;
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
	text-decoration: none;
	background: linear-gradient(var(--sb-gold), var(--sb-gold)) left bottom / 100% 1px no-repeat;
	transition: color 0.3s, background-size 0.4s var(--sb-ease);
}
.wp-block-read-more.sb-more:hover { color: var(--sb-ink); background-size: 40% 1px; }
.wp-block-group.sb-card-body > .sb-facts + .wp-block-read-more { margin-top: auto; }

/* Only one apartment so far: one wide card with the photo beside the text. */
@media (min-width: 782px) {
	.sb-cards.wp-block-post-template:has(> li:only-child) { display: block; max-width: 1040px; margin-inline: auto; }
	.sb-cards > li:only-child .sb-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); min-height: 460px; }
	.sb-cards > li:only-child .sb-card-image { height: 100%; aspect-ratio: auto !important; }
	.sb-cards > li:only-child .sb-card-image img { height: 100% !important; aspect-ratio: auto !important; object-fit: cover; }
	.sb-cards > li:only-child .wp-block-group.sb-card-body { justify-content: center; padding: clamp(36px, 4.5vw, 64px); }
	.sb-cards > li:only-child .wp-block-read-more { margin-top: 18px; }
}
.sb-empty { color: var(--sb-muted); font-family: var(--sb-serif); font-style: italic; font-size: 1.4rem; }

/* Facts: shown only when filled in. */
.sb-facts {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	margin: 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--sb-line);
}
.wp-block-group.sb-card-body > .sb-facts { margin-top: 22px; }
.sb-facts li { display: flex; flex-direction: column; margin: 0; line-height: 1.3; }
.sb-fact-label {
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sb-muted);
}
.sb-fact-value { font-family: var(--sb-serif); font-size: 1.3rem; font-weight: 600; color: var(--sb-ink); }

/* ---------- House and garden ---------- */
.wp-block-group.sb-house-photos {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: clamp(14px, 2vw, 24px);
	max-width: 1240px;
}
.wp-block-group.sb-house-photos > * { margin: 0; }
.sb-house-photos .wp-block-image img {
	display: block;
	width: 100%;
	height: clamp(320px, 36vw, 500px);
	object-fit: cover;
}
.sb-house-photos .wp-block-image figcaption,
.wp-block-image figcaption.wp-element-caption {
	margin: 14px 0 0;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	text-align: left;
	color: var(--sb-muted);
}
.sb-house-photos .wp-block-image figcaption::before {
	content: "";
	display: inline-block;
	width: 26px;
	height: 1px;
	margin-right: 12px;
	vertical-align: middle;
	background: var(--sb-gold);
}

/* ---------- Galleries (start page and apartment pages): a calm grid, last row centred ---------- */
body .wp-block-gallery.has-nested-images {
	--sb-gap: clamp(10px, 1.6vw, 20px);
	--wp--style--unstable-gallery-gap: var(--sb-gap);
	gap: var(--sb-gap) !important;
	justify-content: center;
}
body .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	flex-grow: 0;
	width: calc((100% - 2 * var(--sb-gap)) / 3);
	margin: 0;
	overflow: hidden;
	background: var(--sb-line);
}
body .wp-block-gallery.has-nested-images.columns-2 figure.wp-block-image:not(#individual-image) { width: calc((100% - var(--sb-gap)) / 2); }
body .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) { width: calc((100% - 3 * var(--sb-gap)) / 4); }
body .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { aspect-ratio: 4 / 5; }
body .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--sb-ease);
}
body .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: scale(1.03); }

/* The enlarged photo: the whole picture, not the gallery's 4:5 crop, about 92 % of the screen, clear of the arrows. */
.wp-lightbox-overlay .lightbox-image-container {
	width: min(92vw, calc(100vw - 32px)) !important;
	height: calc(100svh - 150px) !important;
}
@media (min-width: 961px) {
	.wp-lightbox-overlay .lightbox-image-container { width: calc(100vw - 180px) !important; height: 92vh !important; }
}
.wp-lightbox-overlay .wp-block-image img {
	min-width: 0 !important;
	min-height: 0 !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
}
@media not (prefers-reduced-motion) {
	.wp-lightbox-overlay.zoom.active .lightbox-image-container { animation: sb-lightbox-in 0.35s ease both; }
	.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation: sb-lightbox-out 0.3s ease both; }
}
@keyframes sb-lightbox-in { from { opacity: 0; transform: translate(-50%, -48.5%); } to { opacity: 1; transform: translate(-50%, -50%); } }
@keyframes sb-lightbox-out { from { opacity: 1; transform: translate(-50%, -50%); } to { opacity: 0; transform: translate(-50%, -48.5%); } }

/* ---------- Good to know ---------- */
.wp-block-group.sb-know-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: clamp(20px, 2.6vw, 32px);
	max-width: 1040px;
	margin-inline: auto;
}
.wp-block-group.sb-know-grid > * { margin: 0; }
.sb-panel {
	background: var(--sb-white);
	border: 1px solid var(--sb-line);
	border-top: 1px solid var(--sb-gold);
	padding: clamp(28px, 4vw, 52px);
}
.sb-panel > * { margin-block: 0; }
.sb-panel h3 { font-size: clamp(1.6rem, 1.4rem + 0.7vw, 2rem); font-weight: 500; }
.sb-panel > h3 + * { margin-top: 26px; }
.sb-checklist {
	list-style: none;
	margin: 0;
	padding: 0;
}
.sb-checklist li {
	position: relative;
	margin: 0;
	padding: 13px 0 13px 36px;
	border-bottom: 1px solid var(--sb-line);
}
.sb-checklist li:last-child { border-bottom: 0; }
.sb-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: calc(13px + 0.86em - 10px);
	width: 20px;
	height: 20px;
	background: var(--sb-check) center / contain no-repeat;
}
@media (min-width: 782px) {
	.sb-know .sb-checklist, .sb-apartment-content .sb-checklist { columns: 2; column-gap: 48px; }
	.sb-know .sb-checklist li, .sb-apartment-content .sb-checklist li { break-inside: avoid; border-bottom: 0; border-top: 1px solid var(--sb-line); }
	.sb-practical dl { columns: 2; column-gap: 56px; }
}
.sb-practical dl { margin-inline: 0; margin-bottom: 0; }
.sb-practical-item { break-inside: avoid; padding: 0 0 26px; }
.sb-practical-item:last-child { padding-bottom: 0; }
.sb-practical dt {
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.sb-practical dd { margin: 6px 0 0; }

/* ---------- Contact ---------- */
.sb-contact-details { text-align: center; }
.sb-hosts {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin: 0 0 clamp(28px, 4vw, 40px);
}
.sb-hosts-label {
	padding-left: 0.3em;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.sb-hosts-names {
	font-family: var(--sb-script);
	font-size: clamp(2.3rem, 1.9rem + 1.6vw, 3.2rem);
	line-height: 1.25;
	color: var(--sb-gold-deep);
}
.sb-contact-list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(14px, 2vw, 24px);
	margin: 0;
	padding: 0;
}
.sb-contact-item {
	position: relative;
	flex: 1 1 260px;
	max-width: 380px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 34px 28px 30px;
	background: var(--sb-white);
	border: 1px solid var(--sb-line);
	border-top-color: var(--sb-gold);
}
.sb-contact-item::before {
	content: "";
	width: 26px;
	height: 26px;
	margin-bottom: 8px;
	background: center / contain no-repeat;
}
.sb-contact-item.sb-ic-phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.sb-contact-item.sb-ic-mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='1'/%3E%3Cpath d='m22 6-10 7L2 6'/%3E%3C/svg%3E"); }
.sb-contact-label {
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.sb-contact-item a {
	font-family: var(--sb-serif);
	font-size: clamp(1.35rem, 1.2rem + 0.5vw, 1.6rem);
	font-weight: 500;
	color: var(--sb-ink);
	text-decoration: none;
	word-break: break-word;
}
.sb-contact-item a::after { content: ""; position: absolute; inset: 0; }
.sb-contact-item:has(a:hover) { border-color: var(--sb-gold); }
.sb-contact-item a:hover { color: var(--sb-gold-text); }
.sb-directions { max-width: 560px; margin: clamp(32px, 4vw, 48px) auto 0; }
.sb-directions h3.sb-directions-title {
	margin: 0 0 8px;
	font-family: var(--sb-sans);
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.sb-directions p { margin: 0; }
.sb-contact-soon {
	margin: 0;
	font-family: var(--sb-serif);
	font-style: italic;
	font-size: clamp(1.4rem, 1.25rem + 0.6vw, 1.75rem);
	color: var(--sb-muted);
}

/* ---------- Footer ---------- */
.sb-site-footer { background: var(--sb-white); border-top: 1px solid var(--sb-line); }
.wp-block-group.sb-footer { padding-top: 60px; padding-bottom: 18px; text-align: center; }
.wp-block-group.sb-footer > * { margin-block: 0; }
.sb-footer-name {
	font-family: var(--sb-script);
	font-size: 3.1rem;
	line-height: 1.1;
	color: var(--sb-gold-deep);
}
.sb-footer .sb-footer-sub {
	padding-left: 0.42em;
	font-size: 0.62rem;
	font-weight: 500;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--sb-ink);
}
.sb-footer .sb-footer-line {
	margin-top: 22px;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sb-muted);
}
.sb-footer .sb-footer-copy { margin-top: 28px; font-size: 0.85rem; color: var(--sb-muted); }
.sb-credit {
	margin: 0;
	padding: 0 16px 22px;
	text-align: center;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	color: #6f6d68;
}
.sb-credit a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--sb-silver); }
.sb-credit a:hover { color: var(--sb-gold-text); border-color: var(--sb-gold); }

/* ---------- Subpages and the apartment page ---------- */
.sb-main { padding-top: clamp(28px, 4vw, 52px); padding-bottom: clamp(84px, 10vw, 130px); }
.sb-main > .wp-block-post-title { margin-top: 24px; }
.sb-back { margin: 0; }
.sb-back a {
	font-size: 0.74rem;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
	text-decoration: none;
}
.sb-back a::before { content: "←"; display: inline-block; margin-right: 10px; letter-spacing: 0; transition: transform 0.3s var(--sb-ease); }
.sb-back a:hover { color: var(--sb-ink); }
.sb-back a:hover::before { transform: translateX(-4px); }

.wp-block-group.sb-apartment-top {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: clamp(32px, 5.5vw, 80px);
	align-items: center;
	margin-top: clamp(24px, 3vw, 40px);
}
.wp-block-group.sb-apartment-top > * { margin: 0; }
.sb-apartment-photo { margin: 0; background: var(--sb-mist); }
.sb-apartment-photo img { display: block; width: 100%; object-fit: cover; }
.wp-block-group.sb-apartment-intro > * { margin-block: 0; }
.wp-block-group.sb-apartment-intro > .sb-label + * { margin-top: 14px; }
.sb-apartment-intro .wp-block-separator.is-style-sb-ornament { margin: 24px 0 24px; }
.sb-apartment-lead p, p.sb-apartment-lead {
	margin: 0;
	font-family: var(--sb-serif);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	color: #3b3935;
}
.sb-apartment-intro .sb-facts { margin-top: 26px; padding-top: 18px; gap: 14px 34px; }
.sb-apartment-intro .sb-fact-value { font-size: 1.5rem; }
.sb-apartment-intro .wp-block-buttons { margin-top: 32px; }
.sb-apartment-intro .wp-block-buttons:not(:has(.wp-block-button)) { display: none; }
.wp-block-post-content.sb-apartment-content { margin-top: clamp(64px, 8vw, 110px); }
.sb-apartment-content h2.wp-block-heading {
	margin-top: clamp(48px, 6vw, 72px);
	font-size: clamp(1.9rem, 1.6rem + 1.1vw, 2.5rem);
}
.sb-apartment-content > h2.wp-block-heading:first-child { margin-top: 0; }
.sb-apartment-content > h2.wp-block-heading + .sb-checklist { margin-top: 22px; }
.wp-block-group.sb-ask {
	margin-top: clamp(64px, 8vw, 110px);
	padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 48px);
	background: var(--sb-mist);
	border-top: 1px solid var(--sb-gold);
}
.wp-block-group.sb-ask > * { margin-block: 0; }
.wp-block-group.sb-ask > * + * { margin-top: 16px; }
.sb-ask .wp-block-buttons { margin-top: 28px !important; }
.sb-ask-title { font-size: clamp(1.9rem, 1.6rem + 1.1vw, 2.5rem); }
.sb-main > .sb-back:last-child { margin-top: 48px; text-align: center; }
.sb-single-image { margin-block: 28px; }

/* Two apartments: two cards, centred. */
.sb-cards.wp-block-post-template:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 940px; margin-inline: auto; }
@media (max-width: 781px) {
	.sb-cards.wp-block-post-template:has(> li:nth-child(2):last-child) { grid-template-columns: minmax(0, 1fr); }
}

/* "Kommer snart": a soft white-to-silver surface with a thin gold frame, instead of a missing photo. */
.wp-block-post-featured-image.sb-placeholder {
	display: flex;
	margin: 0;
	background: linear-gradient(155deg, #ffffff 0%, #f4f5f5 55%, #e6e8ea 100%);
	box-shadow: inset 0 0 0 12px #fff, inset 0 0 0 13px var(--sb-gold);
}
.sb-placeholder > a, .sb-placeholder > .sb-placeholder-text { flex: 1; display: flex; align-items: center; justify-content: center; text-decoration: none; }
.sb-placeholder-text {
	font-family: var(--sb-script);
	font-size: clamp(2.4rem, 1.9rem + 1.8vw, 3.4rem);
	line-height: 1.2;
	color: var(--sb-gold-deep);
	text-align: center;
	padding: 0 24px;
}
.sb-cards > li:only-child .sb-placeholder { min-height: 100%; }

/* Equipment: the first items on the card, the whole list on the unit's page. */
.wp-block-group.sb-card-body > .sb-card-equipment { margin-top: 18px; }
.sb-card-equipment .sb-checklist li { padding: 7px 0 7px 30px; font-size: 0.94rem; border-bottom: 0; }
.sb-card-equipment .sb-checklist li::before { top: calc(7px + 0.8em - 8px); width: 16px; height: 16px; }
.sb-equipment-more {
	display: inline-block;
	margin-top: 6px;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
	text-decoration: none;
	border-bottom: 1px solid var(--sb-line);
}
.sb-equipment-more:hover { color: var(--sb-ink); border-color: var(--sb-gold); }
.sb-equipment-list h2.wp-block-heading { margin: 0 0 22px; font-size: clamp(1.9rem, 1.6rem + 1.1vw, 2.5rem); }
@media (min-width: 782px) {
	.sb-equipment-list .sb-checklist { columns: 2; column-gap: 48px; }
	.sb-equipment-list .sb-checklist li { break-inside: avoid; border-bottom: 0; border-top: 1px solid var(--sb-line); }
}
.wp-block-group.sb-apartment-more > .sb-equipment-list { margin-top: clamp(48px, 6vw, 72px); }
.wp-block-group.sb-house-unit .sb-intro { margin-bottom: clamp(36px, 5vw, 56px); }

/* ---------- Booking buttons ---------- */
.wp-block-buttons.sb-book-buttons { gap: 10px 12px; }
.wp-block-group.sb-card-body > .sb-book-buttons { margin-top: 22px; }
.sb-card-body .sb-book-buttons .wp-block-button__link { padding: 12px 18px 12px calc(18px + 0.18em); font-size: 0.72rem; }
.sb-apartment-intro .sb-book-buttons { margin-top: 30px; }
.sb-apartment-intro .sb-book-buttons + .sb-apartment-buttons { margin-top: 12px; }
.sb-apartment-intro .sb-apartment-buttons { margin-top: 32px; }

/* House amenities (EV charging) under the apartment list. */
.sb-panel > p.sb-panel-label {
	margin-top: 30px;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
}
.sb-panel > p.sb-panel-label + .sb-checklist { margin-top: 6px; }
.sb-checklist li.sb-ev::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23b8975a' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='8.6'/%3E%3Cpath d='M10.9 5.2 7.4 10.6h2.9l-1.1 4.2 3.5-5.4H9.8z'/%3E%3C/svg%3E"); }

.wp-block-group.sb-apartment-more > * { margin-block: 0; }
.sb-apartment-photos h2.wp-block-heading { margin: clamp(48px, 6vw, 72px) 0 1.2rem; font-size: clamp(1.9rem, 1.6rem + 1.1vw, 2.5rem); }

/* Området: the district as label, the "Nära till" list in two columns, short blocks with a fine icon each. */
.sb-label.sb-place::before {
	content: "";
	display: inline-block;
	width: 13px;
	height: 13px;
	margin: 0 8px 2px 0;
	vertical-align: middle;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237d6235' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6.5-8 12-8 12s-8-5.5-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.wp-block-group.sb-intro > p.sb-map-link { margin-top: 18px; }
.sb-map-link a {
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sb-gold-text);
	text-decoration: none;
	border-bottom: 1px solid var(--sb-gold);
	padding-bottom: 3px;
}
.sb-map-link a:hover { color: var(--sb-ink); }
/* Availability calendar on the unit pages (inc/tillganglighet.php; off until it is turned on). Booked nights are
   hatched and struck through, not only coloured; months stack on phones and sit side by side on wider screens. */
.sb-cal { margin-top: clamp(48px, 6vw, 72px); }
.sb-cal > h2 { margin-bottom: 12px; }
.sb-cal-example {
	display: inline-block;
	margin: 0 0 14px;
	padding: 6px 12px;
	border: 1px dashed var(--sb-gold-text);
	border-radius: 3px;
	background: #fbf6ec;
	color: var(--sb-gold-text);
	font-size: 0.85rem;
	font-weight: 500;
}
.sb-cal-note { max-width: 46rem; margin: 0 0 24px; }
.sb-cal-months { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 28px 36px; }
.sb-cal-month { width: 100%; border-collapse: collapse; table-layout: fixed; font-variant-numeric: tabular-nums; }
.sb-cal-month caption { caption-side: top; padding: 0 0 8px; text-align: left; font-family: var(--sb-serif); font-size: 1.3rem; font-weight: 600; color: var(--sb-ink); }
.sb-cal-month th { padding: 4px 0 6px; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--sb-gold-text); }
.sb-cal-month th abbr { text-decoration: none; }
.sb-cal-month td { height: 2.5rem; padding: 0; border: 1px solid var(--sb-line); text-align: center; font-size: 0.95rem; color: var(--sb-ink); background: #fff; }
.sb-cal-month td.is-empty { border-color: transparent; background: transparent; }
.sb-cal-month td.is-past { color: #6b6a66; background: var(--sb-mist); }
.sb-cal-month td.is-booked,
.sb-cal-swatch.is-booked {
	background: repeating-linear-gradient(135deg, #e3d3b2 0 3px, #fbf7ef 3px 8px);
	text-decoration: line-through;
	text-decoration-thickness: 2px;
	text-decoration-color: var(--sb-gold-text);
}
.sb-cal-month td.is-checkout,
.sb-cal-swatch.is-checkout {
	background:
		linear-gradient(to bottom right, transparent 50%, #fff 50%),
		repeating-linear-gradient(135deg, #e3d3b2 0 3px, #fbf7ef 3px 8px);
}
.sb-cal-month td.is-today { outline: 2px solid var(--sb-gold-text); outline-offset: -2px; font-weight: 700; }
.sb-cal-legend { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 22px 0 0; padding: 0; list-style: none; font-size: 0.92rem; }
.sb-cal-legend li { display: flex; align-items: center; gap: 10px; }
.sb-cal-swatch { width: 1.6rem; height: 1.6rem; border: 1px solid var(--sb-gold-text); background: #fff; }
.sb-cal .sb-book-buttons { margin-top: 28px; }

/* The hosts' area map under Området: as wide as the list below it, and it opens large in the lightbox. */
.wp-block-group.sb-area-map { max-width: 1040px; margin: clamp(32px, 4vw, 48px) auto clamp(40px, 5vw, 64px); }
.sb-area-map .wp-block-image { margin: 0; }
.sb-area-map .wp-block-image img { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 16px 40px rgba(42, 41, 38, 0.1); }
.sb-area-map .wp-block-image figcaption.wp-element-caption { text-align: center; }
.wp-block-group.sb-near { max-width: 1040px; margin-inline: auto; }
.sb-near-list { list-style: none; margin: 0; padding: 0; columns: 2 300px; column-gap: 56px; }
.sb-near-list li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 18px;
	break-inside: avoid;
	padding: 12px 0;
	border-top: 1px solid var(--sb-line);
}
.sb-near-dist {
	flex: none;
	font-family: var(--sb-serif);
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--sb-gold-text);
	white-space: nowrap;
}
.wp-block-group.sb-area-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
	gap: clamp(36px, 4.5vw, 56px) clamp(28px, 4vw, 56px);
	max-width: 1040px;
	margin: clamp(48px, 6vw, 80px) auto 0;
}
.wp-block-group.sb-area-item > * { margin-block: 0; }
.wp-block-group.sb-area-item > h3 + * { margin-top: 10px; }
.sb-area-item::before {
	content: "";
	display: block;
	width: 34px;
	height: 34px;
	margin-bottom: 14px;
	background: center / contain no-repeat;
}
.sb-area-item h3 { font-size: clamp(1.45rem, 1.3rem + 0.5vw, 1.7rem); font-weight: 500; }
.sb-area-item p { color: #3f3d39; }
/* "Hit kommer ni" closes the grid across its full width, centred under a thin line. */
.wp-block-group.sb-area-grid > .sb-area-resa {
	grid-column: 1 / -1;
	justify-self: center;
	max-width: 760px;
	padding-top: clamp(32px, 4vw, 48px);
	border-top: 1px solid var(--sb-line);
	text-align: center;
}
.sb-area-item.sb-area-resa::before { margin-inline: auto; }
.sb-area-item.sb-area-stig::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 27c4-1 6-4 6-7s3-5 7-5 6-2 6-5-2-4-5-5'/%3E%3Cpath d='M9 7v6M6.5 9.5 9 7l2.5 2.5'/%3E%3Ccircle cx='24' cy='25' r='1.6'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-strand::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 24c2.5 0 2.5-2 5-2s2.5 2 5 2 2.5-2 5-2 2.5 2 5 2 2.5-2 4-2'/%3E%3Cpath d='M4 28c2.5 0 2.5-2 5-2s2.5 2 5 2 2.5-2 5-2 2.5 2 5 2 2.5-2 4-2'/%3E%3Ccircle cx='22' cy='10' r='4'/%3E%3Cpath d='M22 2.5v1.5M22 16v1.5M14.5 10H16M28 10h1.5'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-golf::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 26V5l10 4-10 4'/%3E%3Cellipse cx='14' cy='26.5' rx='9' ry='2'/%3E%3Ccircle cx='22' cy='22' r='1.4'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-natur::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 4 9 15h4l-5 8h16l-5-8h4z'/%3E%3Cpath d='M16 23v5'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-stad::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 28h24M6 28V14l5-4 5 4v14M16 28V9l5-5 5 5v19'/%3E%3Cpath d='M9 18h4M9 22h4M19 13h4M19 17h4M19 21h4'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-utflykt::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='16' cy='16' r='11'/%3E%3Cpath d='m20.5 11.5-3 6-6 3 3-6z'/%3E%3C/svg%3E"); }
.sb-area-item.sb-area-resa::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='%23b8975a' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='4' width='16' height='19' rx='4'/%3E%3Cpath d='M8 15h16M12 19.5h.01M20 19.5h.01M11 23l-3 5M21 23l3 5M10 26h12'/%3E%3C/svg%3E"); }

/* ---------- Editor ---------- */
.sb-editor-note {
	padding: 16px 18px;
	border: 1px dashed var(--sb-gold);
	background: #fbf8f1;
	font-family: var(--sb-sans);
	font-size: 0.9rem;
	color: var(--sb-ink);
}

/* ---------- Motion ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; }
	.sb-card:hover .sb-card-image img, body .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: none; }
}

/* ---------- Narrow screens ---------- */
@media (max-width: 781px) {
	:root { --sb-header-h: 71px; }
	.sb-logo-name { font-size: 2rem; }
	.sb-logo-sub { font-size: 0.5rem; letter-spacing: 0.38em; }
	.sb-script-heading::before, .sb-script-heading::after { max-width: 64px; }
	.wp-block-cover.sb-hero { align-items: flex-end; padding-bottom: 44px; min-height: calc(100svh - var(--sb-header-h)); }
	.sb-hero .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(14, 15, 18, 0.86) 0%, rgba(14, 15, 18, 0.62) 38%, rgba(14, 15, 18, 0.12) 72%, rgba(14, 15, 18, 0.04) 100%) !important;
	}
	.wp-block-buttons.sb-hero-buttons { margin-top: 28px; }
	.wp-block-group.sb-house-photos { grid-template-columns: minmax(0, 1fr); }
	.sb-house-photos .sb-photo-wide img { height: auto; aspect-ratio: 16 / 10; }
	.sb-house-photos .sb-photo-narrow img { height: auto; aspect-ratio: 4 / 5; }
	.wp-block-group.sb-know-grid { grid-template-columns: minmax(0, 1fr); }
	.wp-block-group.sb-apartment-top { grid-template-columns: minmax(0, 1fr); }
	body .wp-block-gallery.has-nested-images:not(.columns-1) figure.wp-block-image:not(#individual-image) { width: calc((100% - var(--sb-gap)) / 2); }
}
@media (max-width: 420px) {
	.wp-block-buttons.sb-hero-buttons { flex-direction: column; align-items: stretch; }
	.wp-block-buttons.sb-hero-buttons .wp-block-button { width: 100%; }
	.wp-block-buttons.sb-hero-buttons .wp-block-button__link { display: block; width: 100%; text-align: center; box-sizing: border-box; }
}
