/*
Theme Name: Hestbech Fotografi
Description: Billedfokuseret blok-tema til Hestbech Fotografi. Stille, redaktionelt udtryk: store billeder, fin skrift og meget luft. Redigeres i WordPress' almindelige editor.
Version: 6.2.0
Requires at least: 6.4
Requires PHP: 7.4
Author: Thenum ApS
Text Domain: hestbech
*/

/* ---------- Skrifter (selvhostet): Inter Tight, variabel 400-700, kun latin ---------- */
@font-face { font-family: "Inter Tight"; font-weight: 400 700; font-style: normal; font-display: swap; src: url("assets/fonts/inter-tight.woff2") format("woff2"); }
/* Reserve med samme mål som Inter Tight, så teksten ikke springer, når skriften er hentet (mål beregnet, skal kontrolleres) */
@font-face { font-family: "IT Fallback"; src: local("Arial"); size-adjust: 98%; ascent-override: 99%; descent-override: 24.6%; line-gap-override: 0%; }

/* ---------- Grundværdier ---------- */
:root {
	--wall: #EFEDE8;        /* papir: lys, varm, ikke hvid */
	--wall-2: #E6E3DC;
	--ink: #1C1B19;
	--ink-2: #5A5853;       /* grå tekst: min. 6,07:1 mod væggen */
	--line: #D6D2C8;        /* kun dekoration (1,29:1) */
	--line-strong: #7F7B73; /* kanter, der skal ses (formularer): 3,6:1 */
	--orange: #E15325;      /* logoets orange: kun logo og dekoration (3,3:1 mod væggen) */
	--orange-t: #B93C16;    /* orange tekst, links, knapper og sidefod: hvid tekst 5,64:1 */
	--orange-d: #B93C16;
	--sans: "Inter Tight", "IT Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
	--serif: var(--sans);
	--gutter: clamp(1rem, 3vw, 2.25rem);

	/* Typografisk skala (375 / 768 / 1440 / 1920) */
	--t-slogan: clamp(2.25rem, .75rem + 5vw, 6rem);
	--t-h1: clamp(2.25rem, 1rem + 4.2vw, 5rem);
	--t-h2: clamp(1.75rem, 1.2rem + 2.2vw, 3rem);
	--t-h3: clamp(1.25rem, 1.05rem + .8vw, 1.75rem);
	--t-row: clamp(1.5rem, 1.1rem + 1.2vw, 2.25rem);
	--t-body: clamp(1.0625rem, 1rem + .2vw, 1.1875rem);
	--t-quote: clamp(1.25rem, 1rem + .9vw, 1.75rem);
	--t-price: clamp(1.125rem, 1rem + .5vw, 1.375rem);
	--t-nav: clamp(.875rem, .8rem + .2vw, 1rem);
	--t-btn: clamp(.8125rem, .78rem + .1vw, .875rem);
	--t-label: clamp(.8125rem, .78rem + .1vw, .8125rem); /* min. 13 px (tilgængelighed) */
	--t-form: clamp(.9375rem, .9rem + .1vw, 1rem);
	--caps: var(--t-label);
}

html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { -webkit-font-smoothing: antialiased; font-family: var(--sans); font-size: var(--t-body); line-height: 1.6; font-weight: 400; background: var(--wall); color: var(--ink); }
img { height: auto; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
a { text-underline-offset: .22em; text-decoration-thickness: 1px; }

@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; }

/* ---------- Overskrifter: Inter Tight 500, stram afstand ---------- */
h1, h2, h3, h4, .wp-block-post-title { font-family: var(--sans); font-weight: 500; line-height: 1.1; letter-spacing: -.025em; text-wrap: balance; }
h1, .wp-block-post-title { font-size: var(--t-h1); line-height: 1.05; letter-spacing: -.03em; margin: 0 0 .5em; }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); line-height: 1.2; letter-spacing: -.015em; }
h4 { font-size: 1.125rem; }

/* ---------- Topbjælke: logo til venstre, flad menu til højre, én knap yderst ---------- */
.hb-header { position: relative; z-index: 30; padding: .9rem var(--gutter); gap: 2rem; background: var(--wall); align-items: center; }
.hb-header .wp-block-image { margin: 0; }
.hb-header .wp-block-image img { width: clamp(120px, 11vw, 150px) !important; display: block; }
.hb-header > .hb-nav, .hb-header > .hb-menu-btn { margin: 0; }
.hb-nav { display: flex; align-items: center; gap: clamp(1.4rem, 2.6vw, 2.75rem); font-size: var(--t-nav); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.hb-nav ul { display: flex; align-items: center; gap: clamp(1.4rem, 2.6vw, 2.75rem); list-style: none; margin: 0; padding: 0; }
.hb-nav a, .hb-menu a { color: var(--ink); text-decoration: none; }
.hb-nav ul a { display: inline-flex; align-items: center; min-height: 44px; background: linear-gradient(var(--ink), var(--ink)) 0 calc(100% - 9px) / 0 1px no-repeat; transition: background-size .35s cubic-bezier(.2, .8, .2, 1); }
.hb-nav ul a:hover { background-size: 100% 1px; }
.hb-nav ul a.is-current, .hb-nav ul a.is-ancestor { background: linear-gradient(var(--orange), var(--orange)) 0 calc(100% - 9px) / 100% 2px no-repeat; }
/* Den ene udfyldte knap: hvid på #B93C16 (5,64:1) */
.hb-cta { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 1.5rem; background: var(--orange-t); color: #fff !important; font-size: var(--t-btn); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; transition: background .25s; }
.hb-cta:hover { background: var(--ink); }
.hb-menu-btn, .hb-menu { display: none; }
/* Mobil: "Menu"-knap og fuldskærmsmenu */
@media (max-width: 899px) {
	.hb-nav { display: none; }
	.hb-menu-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 1.25rem; background: transparent; border: 1px solid var(--ink); color: var(--ink); font: 600 var(--t-btn) var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
	.hb-menu[open] { box-sizing: border-box; display: flex; flex-direction: column; position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; padding: 1rem var(--gutter) 1.5rem; border: 0; background: var(--wall); color: var(--ink); overflow-y: auto; z-index: 100; }
	.hb-menu-close { align-self: flex-end; min-height: 48px; padding: 0 1.25rem; background: transparent; border: 1px solid var(--ink); color: var(--ink); font: 600 var(--t-btn) var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
	.hb-menu nav { flex: 1; margin-top: 1rem; }
	.hb-menu ul { list-style: none; margin: 0; padding: 0; }
	.hb-menu nav > ul > li { border-top: 1px solid var(--line-strong); }
	.hb-menu nav > ul > li > a { display: flex; align-items: center; min-height: 64px; font-size: 2rem; font-weight: 500; letter-spacing: -.02em; }
	.hb-menu nav > ul > li > a.is-current, .hb-menu nav > ul > li > a.is-ancestor { text-decoration: underline; text-decoration-color: var(--orange); text-decoration-thickness: 2px; text-underline-offset: .25em; }
	.hb-menu li ul { padding: 0 0 .75rem 1rem; }
	.hb-menu li ul a { display: flex; align-items: center; min-height: 44px; font-size: 1.125rem; font-weight: 400; }
	.hb-menu .hb-cta { width: 100%; margin-top: 1rem; }
}
.hb-menu::backdrop { background: rgba(28, 27, 25, .5); }
/* Skip-link: synlig ved tastaturfokus */
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 200; padding: .9rem 1.25rem; background: var(--ink); color: #fff !important; font-weight: 600; text-decoration: none; }
.skip-link:focus { top: 1rem; }

/* ---------- Forsiden: ét stort billede (16:9), skarpt fra første indlæsning ---------- */
.hb-hero { position: relative; width: calc(100% - 2 * var(--gutter)); max-width: none; margin: 0 auto; }
.hb-hero .wp-block-gallery.has-nested-images { display: block; position: relative; margin: 0; padding: 0; aspect-ratio: 16 / 9; max-height: max(22rem, calc(100svh - 12.75rem)); width: 100%; overflow: hidden; background: var(--wall-2); }
.hb-hero .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; flex: none; opacity: 0; z-index: 0; transition: opacity 1.2s cubic-bezier(.22, .61, .36, 1); }
.hb-hero .wp-block-gallery.has-nested-images figure.wp-block-image:first-child:not(#individual-image) { opacity: 1; }
.hb-hero .wp-block-gallery.has-nested-images figure.wp-block-image.is-prev:not(#individual-image) { opacity: 1; z-index: 1; transition: none; }
.hb-hero .wp-block-gallery.has-nested-images figure.wp-block-image.is-active:not(#individual-image) { opacity: 1; z-index: 2; }
.hb-hero .wp-block-gallery.has-nested-images figure.wp-block-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; display: block; }
/* Uskarp-til-skarp (kun fra billede 2, kun hvor scriptet slår den til) */
.hb-hero.has-focus-pull figure.wp-block-image.is-active img { animation: hb-focus 1.2s cubic-bezier(.22, .61, .36, 1) both; }
@keyframes hb-focus { from { filter: blur(14px); } to { filter: blur(0); } }
@media (max-width: 899px) { .hb-hero .wp-block-gallery.has-nested-images { aspect-ratio: 3 / 4; max-height: none; } }
/* Bjælken under billedet: seks hårlinjer og pauseknappen (ikke oven på billedet) */
.hb-hero__bar { display: flex; align-items: center; justify-content: flex-end; gap: 1.25rem; min-height: 56px; }
.hb-hero__dots { display: flex; gap: 8px; }
.hb-hero__dots i { display: block; width: 24px; height: 2px; background: var(--line-strong); }
.hb-hero__dots i.is-on { background: var(--orange); }
.hb-hero-pause { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid var(--ink); border-radius: 50%; cursor: pointer; color: var(--ink); }
.hb-hero-pause::before { content: ""; width: 10px; height: 14px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; box-sizing: border-box; }
.hb-hero-pause.is-paused::before { width: 0; height: 0; border: 0; border-left: 12px solid currentColor; border-top: 8px solid transparent; border-bottom: 8px solid transparent; margin-left: 4px; }

/* ---------- Afsnit: meget luft ---------- */
.hb-section { padding: clamp(3.5rem, 8vw, 8rem) var(--gutter); }
.hb-section.hb-alt { background: var(--wall-2); }

/* Sloganet: sidens eneste store typografi, to linjer i spalte 1-8; hans indledning i spalte 10-12, i flugt med sidste linje */
.hb-section:has(> .hb-slogan) { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(.75rem, 2vw, 2rem); row-gap: 1.5rem; align-items: end; max-width: none; margin-inline: 0; }
.hb-section:has(> .hb-slogan) > * { margin: 0 !important; max-width: none !important; text-align: left; }
.hb-slogan { grid-column: 1 / 10; font-size: var(--t-slogan); font-weight: 500; line-height: 1; letter-spacing: -.035em; text-wrap: balance; }
.hb-slogan + p { grid-column: 10 / 13; font-size: var(--t-body); line-height: 1.6; color: var(--ink-2); padding-bottom: .35rem; }
@media (max-width: 899px) { .hb-slogan, .hb-slogan + p { grid-column: 1 / -1; } }

/* Anmeldelser og de tre rækker følger samme ramme som resten (ikke indrykket af WordPress bredde-grænse) */
.hb-section:has(> .hb-svar) > *, .hb-section:has(> .hb-quotes) > *, .hb-section:has(> .alignwide) > * { max-width: none !important; margin-inline: 0 !important; }

/* De tre svar: tre hele rækker, spørgsmål (H2) til venstre, svar og handling til højre. Svaret er altid synligt. */
.hb-rows { padding-top: 0; }
.hb-svar { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(.75rem, 2vw, 2rem); align-items: start; padding: clamp(1.5rem, 3vw, 2.5rem) 0; min-height: 96px; border-top: 1px solid var(--line-strong); }
.hb-svar:last-child { border-bottom: 1px solid var(--line-strong); }
.hb-svar > :is(h2, h3) { grid-column: 1 / 7; margin: 0; font-size: var(--t-row); line-height: 1.15; letter-spacing: -.02em; }
.hb-svar__body { grid-column: 8 / 13; }
.hb-svar__body > * { margin: 0 0 1rem !important; max-width: 36rem; }
.hb-svar__body > *:last-child { margin-bottom: 0 !important; }
.hb-svar__body p { color: var(--ink-2); font-size: var(--t-body); }
.hb-svar__body a:not(.wp-element-button) { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; font-size: var(--t-body); font-weight: 500; }
.hb-svar__body a:not(.wp-element-button):hover { color: var(--orange-t); }
.hb-svar__body .wp-block-buttons { margin-top: .5rem !important; gap: .75rem; }
@media (max-width: 899px) { .hb-svar > :is(h2, h3), .hb-svar__body { grid-column: 1 / -1; } .hb-svar > :is(h2, h3) { margin-bottom: .75rem; } }

.hb-studio { max-width: 60rem; margin: clamp(2rem, 5vw, 4rem) 0 0; }

/* Priserne er slået til eller fra: vis enten henvisningen til siden Priser eller Kristians egen sætning; skjul alt andet, der peger på Priser */
body.hb-no-priser .hb-pris-on { display: none; }
body:not(.hb-no-priser) .hb-pris-off { display: none; }
body.hb-no-priser p:has(> a[href^="/priser"]) { display: none; }

/* Knapper: orange #B93C16, hvid tekst, små versaler */
.wp-element-button, .wp-block-button__link { font-family: var(--sans); font-weight: 600; font-size: var(--t-btn); letter-spacing: .14em; text-transform: uppercase; padding: 1rem 2rem; min-height: 48px; border-radius: 0; background: var(--orange-t); color: #fff; transition: background .25s; }
.wp-element-button:hover, .wp-block-button__link:hover { background: var(--ink); color: #fff; }

/* ---------- Billeder: rene, uden ramme ---------- */
.wp-block-image img { display: block; width: 100%; }
.wp-block-image.is-style-tape { max-width: 34rem; margin-inline: auto; }
.hb-portrait { max-width: 30rem; margin: 0; }
.hb-portrait img { aspect-ratio: auto; }
.hb-section .wp-block-columns:has(.hb-portrait) { gap: clamp(2rem, 7vw, 8rem); align-items: center; }
.hb-section .wp-block-columns:has(.hb-portrait) p { font-family: var(--serif); font-size: clamp(1.3rem, 1.8vw, 1.55rem); line-height: 1.45; font-weight: 400; letter-spacing: -.01em; max-width: 32rem; }

/* Kategorierne: fire lige billeder, fin billedtekst under */
.hb-tiles { gap: clamp(1rem, 2vw, 2rem) !important; }
.hb-tiles figure.wp-block-image { margin: 0 0 1rem; overflow: hidden; }
.hb-tiles img { aspect-ratio: 3 / 4; object-fit: cover; transition: transform 1.1s cubic-bezier(.2, .7, .2, 1); }
.hb-tiles figure.wp-block-image:hover img { transform: scale(1.035); }
.hb-tiles h2 { margin: 0; font-family: var(--sans); font-weight: 600; font-size: var(--caps); letter-spacing: .12em; text-transform: uppercase; line-height: 1.5; }
.hb-tiles h2 a { text-decoration: none; color: var(--ink); }
.hb-tiles h2 a:hover { color: var(--orange-t); }
.hb-tiles p { margin: .5rem 0 0; font-size: .95rem; line-height: 1.55; color: var(--ink-2); }

/* Aktuelt: fine rækker der folder ud */
.hb-eyebrow { font-family: var(--serif); font-weight: 500; font-size: clamp(1.8rem, 3.2vw, 2.6rem); line-height: 1.1; color: var(--ink); margin: 0 0 1.4rem; }
.wp-block-details { border-top: 1px solid var(--line); padding: 0; }
.wp-block-details:last-of-type { border-bottom: 1px solid var(--line); }
.wp-block-details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.2rem 0; font-family: var(--serif); font-weight: 500; font-size: clamp(1.3rem, 2vw, 1.65rem); line-height: 1.15; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; font-family: var(--sans); font-size: 1.6rem; font-weight: 200; line-height: 1; color: var(--ink); transition: transform .3s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { padding-bottom: .6rem; color: var(--ink-2); }

/* Anmeldelser: to citater side om side */
.hb-quotes { gap: clamp(1.5rem, 4vw, 4rem) !important; }
.hb-quotes blockquote { margin: 0; padding: 0; border: 0; }
.hb-quotes blockquote p { font-size: var(--t-quote); font-weight: 400; line-height: 1.38; letter-spacing: -.015em; color: var(--ink); max-width: 40ch; }
.hb-quotes cite { display: block; font-style: normal; font-family: var(--sans); font-weight: 600; font-size: var(--t-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); margin-top: 1rem; }

/* ---------- Galleri: billeder i rækker uden beskæring (bredder sættes af hb.js ud fra hvert billedes format) ---------- */
.wp-block-gallery.has-nested-images.hb-gallery { display: flex; flex-wrap: wrap; gap: clamp(.5rem, 1vw, .875rem); margin: 2rem 0 0; padding: 0; }
.wp-block-gallery.has-nested-images.hb-gallery::after { content: ""; flex-grow: 100000; }
.wp-block-gallery.has-nested-images.hb-gallery figure.wp-block-image:not(#individual-image) { margin: 0; width: auto; flex: 1 1 14rem; overflow: hidden; }
.hb-gallery figure.wp-block-image a { display: block; }
.hb-gallery figure.wp-block-image img { display: block; width: 100%; height: auto; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.hb-gallery figure.wp-block-image:hover img { transform: scale(1.02); }

/* Lightbox: rolig og lys, ingen zoom. Forrige/næste, tastatur og swipe. */
.hb-lightbox { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--wall); color: var(--ink); }
.hb-lightbox[open] { display: grid; grid-template-rows: minmax(0, 1fr) auto; }
.hb-lightbox::backdrop { background: var(--wall); }
.hb-lightbox__stage { display: flex; align-items: center; justify-content: center; min-height: 0; padding: 4.5rem var(--gutter) 0; }
.hb-lightbox__stage img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.hb-lightbox__bar { display: flex; align-items: center; justify-content: center; gap: 1.5rem; padding: 1rem var(--gutter) 1.25rem; }
.hb-lightbox__count { min-width: 6ch; text-align: center; font-size: var(--t-label); font-weight: 600; letter-spacing: .12em; }
.hb-lightbox button { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 0 1rem; background: transparent; color: var(--ink); border: 1px solid var(--ink); font: 600 var(--t-btn) var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.hb-lightbox button:hover { background: var(--ink); color: var(--wall); }
.hb-lightbox button svg { width: 20px; height: 20px; }
.hb-lightbox__close { position: absolute; top: 1rem; right: var(--gutter); }

/* ---------- Billedrækken på forsiden: fem billeder i naturligt format, uden beskæring ---------- */
.hb-art { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(.75rem, 2vw, 2rem); row-gap: clamp(3rem, 8vw, 8rem); padding: clamp(3rem, 7vw, 7rem) var(--gutter); }
.hb-art > * { margin: 0 !important; }
.hb-art figure { position: relative; }
.hb-art a { display: block; overflow: hidden; }
.hb-art img { display: block; width: 100%; height: auto; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.hb-art figure:hover img { transform: scale(1.02); }
.hb-art figcaption { margin-top: .75rem; font-size: var(--t-label); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink); text-align: left; }
.hb-art-1 { grid-column: 2 / 6; }                       /* Portræt, stående */
.hb-art-2 { grid-column: 6 / 13; align-self: end; }     /* Øjeblikke, bund i flugt med Portræt */
.hb-art-3 { grid-column: 3 / 13; }                      /* Erhverv, bred */
.hb-art-4 { grid-column: 1 / 8; }                       /* Bryllup & event */
.hb-art-5 { grid-column: 9 / 13; align-self: end; }     /* Kristian */
@media (max-width: 899px) {
	.hb-art { grid-template-columns: repeat(6, minmax(0, 1fr)); row-gap: 2.5rem; }
	.hb-art-1 { grid-column: 1 / 5; } .hb-art-2 { grid-column: 2 / 7; align-self: start; }
	.hb-art-3, .hb-art-4 { grid-column: 1 / -1; } .hb-art-5 { grid-column: 3 / 7; align-self: start; }
}
/* Billederne får et fokustræk (uskarp til skarp) ved scroll. De er altid synlige. Kun hvor browseren kan, og ikke ved reduceret bevægelse. */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.hb-art figure img { animation: hb-art-focus linear both; animation-timeline: view(); animation-range: entry 0% entry 60%; }
	}
}
@keyframes hb-art-focus { from { filter: blur(8px); } to { filter: blur(0); } }

/* ---------- Underside ---------- */
/* Alt på undersiderne flugter til venstre ved samme kant (overskrift, tekst, gallerier, sektioner); tekstspalten er 46 rem bred */
main.hb-page { padding-inline: var(--gutter); }
.hb-page .wp-block-post-title { margin-left: 0 !important; margin-right: auto !important; }
.hb-page .wp-block-post-content > :where(:not(.alignfull):not(.alignwide)),
.hb-page .wp-block-post-content.is-layout-constrained > :where(:not(.alignfull):not(.alignwide)) { margin-left: 0 !important; margin-right: auto !important; }
.hb-page .alignwide { max-width: none !important; margin-inline: 0 !important; }
.hb-page .wp-block-post-content > .alignfull { margin-inline: calc(-1 * var(--gutter)) !important; max-width: none !important; width: auto !important; }
.hb-page h2 { margin-top: 3rem; } .hb-page h3 { margin-top: 2rem; }
.hb-page .hb-svar > :is(h2, h3), .hb-page .hb-section > h2:first-child { margin-top: 0; }

/* Priser */
.hb-price { display: flex; justify-content: space-between; align-items: baseline; gap: 2rem; border-bottom: 1px solid var(--line); padding-block: 1.2rem; }
.hb-price > * { margin: 0; }
.hb-price strong { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; line-height: 1.2; }
.hb-price .hb-amount { white-space: nowrap; font-family: var(--serif); font-weight: 500; font-size: clamp(1.4rem, 2.3vw, 1.8rem); color: var(--ink); }
.wp-block-table.hb-table table { border-collapse: collapse; width: 100%; }
.wp-block-table.hb-table td { border: 0; border-bottom: 1px solid var(--line); padding: .75rem 0; }
.wp-block-table.hb-table td:last-child { text-align: right; white-space: nowrap; font-family: var(--serif); font-size: 1.25rem; }
.hb-callout { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); padding: 1.3rem 0; }

/* ---------- Kontaktformular: kun nedre streg ---------- */
.hb-form { display: grid; gap: 1.6rem; max-width: 42rem; }
.hb-form .hb-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; }
@media (max-width: 600px) { .hb-form .hb-row { grid-template-columns: 1fr; } }
.hb-form label { display: grid; gap: .3rem; font-size: var(--caps); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); }
.hb-form input, .hb-form textarea { font-family: var(--sans); font-size: 1.05rem; font-weight: 400; letter-spacing: 0; text-transform: none; padding: .7rem 0; border: 0; border-bottom: 1px solid var(--line-strong); background: transparent; border-radius: 0; color: var(--ink); }
.hb-form textarea { border: 1px solid var(--line-strong); padding: .8rem; min-height: 9rem; }
.hb-form input:focus, .hb-form textarea:focus { outline: none; border-color: var(--orange-d); box-shadow: 0 1px 0 var(--orange-d); }
.hb-form button { justify-self: start; font-family: var(--sans); font-weight: 600; font-size: var(--caps); letter-spacing: .12em; text-transform: uppercase; padding: 1.05rem 3rem; border: 0; background: var(--ink); color: var(--wall); cursor: pointer; transition: background .25s; }
.hb-form button:hover { background: var(--orange-d); color: #fff; }
.hb-hp { position: absolute; left: -9999px; }
.hb-fejl { color: #8A1C00; font-size: var(--t-form); font-weight: 600; letter-spacing: 0; text-transform: none; }
.hb-form [aria-invalid="true"] { border-color: #8A1C00 !important; }
.hb-msg:focus { outline: 2px solid var(--ink); outline-offset: 4px; }
.hb-msg { padding: 1.2rem 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); max-width: 42rem; }
.hb-msg.hb-err { border-color: #b00020; }

/* ---------- Footer: logoets orange er sidens ene farveflade ---------- */
.hb-footer { background: var(--orange-t); color: #fff; padding-block: clamp(3.5rem, 7vw, 6rem); }
.hb-footer a { color: #fff; }
.hb-footer .wp-block-image img { width: clamp(180px, 18vw, 260px) !important; }
.hb-footer p { margin: .25rem 0; font-size: 1rem; }

/* ---------- Lille hjørneportræt, der åbner en kort "Om mig" (native <dialog>) ---------- */
.hb-om { display: none; }
.editor-styles-wrapper .hb-om { display: block; }
.hb-om-btn { position: fixed; left: 1rem; bottom: 1rem; z-index: 50; width: 56px; height: 56px; padding: 0; border: 2px solid var(--wall); border-radius: 50%; overflow: hidden; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .25); background: var(--wall-2); transition: opacity .25s; }
.hb-om-btn img { width: 100%; height: 100%; object-fit: cover; object-position: 20% 40%; display: block; }
.hb-om-btn.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.hb-om-dialog { width: min(34rem, calc(100% - 2rem)); max-height: calc(100% - 2rem); margin: auto; padding: 0; border: 0; background: var(--wall); color: var(--ink); overflow: auto; }
.hb-om-dialog::backdrop { background: rgba(28, 27, 25, .6); }
.hb-om__card { padding: 1.5rem; position: relative; }
.hb-om__card img { width: 100%; height: auto; }
.hb-om__close { position: absolute; top: .5rem; right: .5rem; z-index: 2; width: 44px; height: 44px; font-size: 1.75rem; line-height: 1; background: var(--wall); color: var(--ink); border: 0; cursor: pointer; }
@media (max-width: 781px) { .hb-om-btn { left: .75rem; bottom: .75rem; } }

/* ---------- Ro for dem, der har bedt om det ---------- */
@media (prefers-reduced-motion: reduce) {
	* { transition-duration: .01ms !important; scroll-behavior: auto !important; }
	@view-transition { navigation: none; }
}
.hb-privat { font-size: 0.9rem; color: var(--grey, #5A5853); margin: 0 0 1rem; max-width: 42rem; }
.hb-privat a { color: inherit; text-decoration: underline; }
