/*
Theme Name: LumLux Theme
Theme URI: https://lumlux-art.com/
Author: FDR / LumLux Art
Description: Flexibel, snel en toegankelijk WordPress-thema voor kunst, muziek, fotografie, creative coding en informatieve websites. Compatibel met FDR Studio en FDR Multilingual Page Manager.
Version: 1.0.6
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: lumlux-theme
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --lumlux-content: 920px;
  --lumlux-wide: 1258px;
  --lumlux-header-height: 76px;
  --lumlux-radius: 45px;
  --lumlux-bg: #080808;
  --lumlux-text: #ccccc3;
  --lumlux-accent: #ddddd2;
  --lumlux-accent-contrast: #000000;
  --lumlux-surface-solid: #000000;
  --lumlux-muted: #64645e;
  --lumlux-border: rgba(221,221,210,.18);
  --lumlux-surface: rgba(255,255,255,.035);
  --lumlux-shadow: 0 15px 35px rgba(0,0,0,.28);
  --lumlux-heading-font: Syne, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --lumlux-body-font: Urbanist, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-wrap: break-word; background: var(--lumlux-bg); color: var(--lumlux-text); font-family: var(--lumlux-body-font); line-height: 1.68; -webkit-font-smoothing: antialiased; }
img, video, iframe, object, svg { max-width: 100%; height: auto; }
figure { margin-inline: 0; }
a { color: var(--lumlux-accent); text-underline-offset: .18em; text-decoration-thickness: .08em; }
h1, h2, h3, h4, h5, h6 { font-family: var(--lumlux-heading-font); letter-spacing: -.025em; }
::selection { background: var(--lumlux-accent); color: var(--lumlux-accent-contrast); }
button, input, textarea, select { font: inherit; }
button, [type="button"], [type="submit"] { min-height: 44px; }
input, textarea, select { max-width: 100%; padding: .72rem .85rem; border: 1px solid var(--lumlux-border); border-radius: 7px; background: transparent; color: inherit; }
textarea { width: 100%; }
:focus-visible { outline: 3px solid var(--lumlux-accent); outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed; top: 10px; left: 10px; z-index: 100000; width: auto; height: auto; padding: 12px 16px; clip: auto; background: #fff; color: #111; }

.site-header { position: relative; z-index: 1000; min-height: var(--lumlux-header-height); border-bottom: 1px solid var(--lumlux-border); background: var(--lumlux-bg); }
.site-header.is-sticky { position: sticky; top: 0; }
.admin-bar .site-header.is-sticky { top: 32px; }
.site-header__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); min-height: var(--lumlux-header-height); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-branding { display: flex; align-items: center; min-width: 0; }
.custom-logo-link { display: inline-flex; }
.custom-logo { max-height: 52px; width: auto; }
.site-title { margin: 0; font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 750; letter-spacing: -.02em; }
.site-title a { color: inherit; text-decoration: none; }
.site-description { margin: 2px 0 0; font-size: .84rem; opacity: .72; }
.header-actions { display: flex; align-items: center; gap: 10px; }

.primary-navigation ul { display: flex; align-items: center; gap: clamp(14px, 2vw, 28px); list-style: none; margin: 0; padding: 0; }
.primary-navigation li { position: relative; }
.primary-navigation a { color: inherit; text-decoration: none; font-weight: 650; }
.primary-navigation a:hover, .primary-navigation a:focus-visible, .primary-navigation .current-menu-item > a { text-decoration: underline; }
.primary-navigation .sub-menu { display: none; position: absolute; top: calc(100% + 12px); right: 0; min-width: 220px; padding: 12px; background: var(--lumlux-bg); border: 1px solid var(--lumlux-border); border-radius: var(--lumlux-radius); box-shadow: var(--lumlux-shadow); }
.primary-navigation li:hover > .sub-menu, .primary-navigation li:focus-within > .sub-menu { display: grid; gap: 8px; }
.menu-toggle { display: none; align-items: center; gap: 8px; border: 1px solid currentColor; background: transparent; color: inherit; border-radius: var(--lumlux-radius); padding: 8px 12px; cursor: pointer; }
.menu-toggle__icon, .menu-toggle__icon::before, .menu-toggle__icon::after { width: 20px; height: 2px; background: currentColor; display: block; content: ""; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle__icon { position: relative; }
.menu-toggle__icon::before { position: absolute; transform: translateY(-6px); }
.menu-toggle__icon::after { position: absolute; transform: translateY(6px); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before { transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after { transform: rotate(-45deg); }

.site-main { min-height: 55vh; }
.content-shell { width: min(calc(100% - 40px), var(--lumlux-content)); margin-inline: auto; padding-block: clamp(40px, 7vw, 92px); }
.content-shell--wide { width: min(calc(100% - 40px), var(--lumlux-wide)); }
.archive-header { max-width: 820px; margin-bottom: clamp(32px, 5vw, 60px); }
.entry-header { margin-bottom: clamp(28px, 5vw, 56px); }
.entry-title { margin-top: 0; overflow-wrap: normal; word-break: normal; }
.entry-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; opacity: .72; font-size: .9rem; }
.entry-featured { margin-bottom: clamp(28px, 5vw, 56px); }
.entry-featured img { width: 100%; border-radius: var(--lumlux-radius); }
.entry-content { font-size: clamp(1rem, .97rem + .15vw, 1.08rem); }
.entry-content > * { margin-block: 0 1.35em; }
.entry-content > h2, .entry-content > h3, .entry-content > h4 { margin-top: 1.8em; }
.entry-content > .alignwide { width: min(var(--lumlux-wide), calc(100vw - 40px)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content > .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: .7rem; border: 1px solid var(--lumlux-border); text-align: left; }
.entry-content blockquote { margin-inline: 0; padding-left: 1.2rem; border-left: 4px solid var(--lumlux-accent); }

.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 44px); }
.post-card { display: flex; flex-direction: column; min-width: 0; gap: 14px; padding-bottom: 24px; border-bottom: 1px solid var(--lumlux-border); }
.post-card__image { display: block; overflow: hidden; border-radius: var(--lumlux-radius); background: var(--lumlux-surface); }
.post-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .25s ease; }
.post-card__image:hover img { transform: scale(1.02); }
.post-card h2 { margin: 0; font-size: clamp(1.2rem, 2vw, 1.65rem); }
.post-card h2 a { color: inherit; text-decoration: none; }
.post-card h2 a:hover { text-decoration: underline; }
.post-card__excerpt { margin: 0; opacity: .86; }
.post-card__meta { font-size: .82rem; opacity: .7; }
.pagination { margin-top: 48px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.page-numbers { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; padding: 6px 10px; border: 1px solid var(--lumlux-border); border-radius: 7px; text-decoration: none; }
.page-numbers.current { background: var(--lumlux-text); color: var(--lumlux-bg); }

.site-footer { border-top: 1px solid var(--lumlux-border); background: var(--lumlux-surface); }
.site-footer__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: 44px; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.site-footer__title { margin: 0 0 8px; font-size: 1.05rem; }
.site-footer__text, .site-footer__meta { margin: 6px 0 0; opacity: .72; font-size: .9rem; }
.footer-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 20px; justify-content: flex-end; }
.footer-navigation a { color: inherit; }

/* Plugins blijven eigenaar van hun routes, headers en functionele interface. */
.fdr-mpm-switcher { isolation: isolate; }
body.has-modal-open .fdr-mpm-switcher { visibility: hidden; }
.fdr-studio-app, [class*="fdr-studio"] { max-width: 100%; }

@media (max-width: 900px) {
  .admin-bar .site-header.is-sticky { top: 46px; }
  .menu-toggle { display: inline-flex; }
  .primary-navigation { display: none; position: absolute; inset: 100% 0 auto 0; max-height: calc(100vh - var(--lumlux-header-height)); overflow-y: auto; background: var(--lumlux-bg); border-bottom: 1px solid var(--lumlux-border); box-shadow: 0 14px 30px rgba(0,0,0,.08); }
  .primary-navigation.is-open { display: block; }
  .primary-navigation ul { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: 22px; display: grid; gap: 14px; }
  .primary-navigation .sub-menu { display: grid; position: static; box-shadow: none; border: 0; padding: 8px 0 0 18px; }
  .post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  :root { --lumlux-header-height: 68px; }
  .site-header__inner, .content-shell, .content-shell--wide, .site-footer__inner { width: min(calc(100% - 28px), var(--lumlux-wide)); }
  .custom-logo { max-height: 44px; max-width: 190px; }
  .site-description { display: none; }
  .menu-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .post-grid { grid-template-columns: 1fr; }
  .site-footer__inner { grid-template-columns: 1fr; }
  .footer-navigation ul { justify-content: flex-start; }
  .entry-content > .alignwide { width: calc(100vw - 28px); }
  .entry-content .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .entry-content table { min-width: 560px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}


/* Visuele basis en Gutenberg-elementen */
body.lumlux-font-editorial { --lumlux-heading-font: Georgia, "Times New Roman", serif; }
body.lumlux-font-editorial .entry-title,
body.lumlux-font-editorial .archive-header h1 { font-weight: 500; letter-spacing: -.035em; }
body.lumlux-corners-square { --lumlux-radius: 0px; }
body.lumlux-corners-soft { --lumlux-radius: 45px; }
body.lumlux-corners-round { --lumlux-radius: 24px; }

.entry-title { font-size: clamp(2.1rem, 6vw, 5.4rem); line-height: .98; max-width: 16ch; }
.page .entry-title { max-width: 19ch; }
.entry-content > p:first-child { font-size: clamp(1.05rem, 1rem + .28vw, 1.22rem); }
.entry-content p, .entry-content li { color: color-mix(in srgb, var(--lumlux-text) 91%, transparent); }
.entry-content a:not(.wp-element-button) { text-decoration-thickness: .07em; }
.entry-content figcaption { color: var(--lumlux-muted); font-size: .86rem; line-height: 1.45; }
.entry-content hr { border: 0; border-top: 1px solid var(--lumlux-border); margin-block: clamp(2.5rem, 7vw, 5rem); }

.wp-element-button,
.wp-block-button__link,
button:not(.menu-toggle),
input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 46px;
  padding: .72rem 1.15rem;
  border: 1px solid var(--lumlux-accent);
  border-radius: var(--lumlux-radius);
  background: var(--lumlux-accent);
  color: var(--lumlux-accent-contrast);
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, opacity .18s ease;
}
.wp-element-button:hover,
.wp-block-button__link:hover,
button:not(.menu-toggle):hover,
input[type="submit"]:hover { opacity: .9; transform: translateY(-1px); }
.is-style-outline > .wp-block-button__link { background: transparent; color: var(--lumlux-accent); }

.wp-block-image img,
.wp-block-video video,
.wp-block-cover,
.wp-block-media-text,
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: var(--lumlux-radius); }
.wp-block-cover { overflow: hidden; }
.wp-block-quote { font-family: var(--lumlux-heading-font); font-size: clamp(1.25rem, 3vw, 2rem); line-height: 1.35; }
.wp-block-code, pre { overflow-x: auto; padding: 1rem; border: 1px solid var(--lumlux-border); border-radius: var(--lumlux-radius); background: var(--lumlux-surface-solid); }
.wp-block-group.has-background { padding: clamp(1.25rem, 4vw, 3rem); border-radius: var(--lumlux-radius); }

.post-card { position: relative; }
.post-card > a:first-child { display: block; overflow: hidden; border-radius: var(--lumlux-radius); background: var(--lumlux-surface); }
.post-card .entry-meta { color: var(--lumlux-muted); }
.post-card .entry-title, .post-card h2 { line-height: 1.15; }
.post-card p { margin: 0; }

.site-header { backdrop-filter: saturate(130%) blur(14px); background: color-mix(in srgb, var(--lumlux-bg) 91%, transparent); }
.site-title a, .primary-navigation a { color: var(--lumlux-text); }
.site-footer { background: var(--lumlux-surface); }

@media (max-width: 620px) {
  .entry-title { font-size: clamp(2rem, 13vw, 3.6rem); }
  .content-shell { padding-block: 38px 64px; }
  .entry-header { margin-bottom: 30px; }
}


/* Header en navigatie v0.4.0 */
.header-actions { min-width: 0; }
.header-search-toggle { width: 44px; height: 44px; min-height: 44px; padding: 0; display: inline-grid; place-items: center; border: 1px solid var(--lumlux-border); border-radius: 999px; background: transparent; color: var(--lumlux-text); cursor: pointer; font-size: 1.35rem; }
.header-search-toggle:hover { background: var(--lumlux-surface); }
.header-search-panel { border-top: 1px solid var(--lumlux-border); background: var(--lumlux-bg); }
.header-search-panel__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: 18px; }
.header-search-panel .search-form { display: flex; gap: 10px; }
.header-search-panel .search-field { flex: 1 1 auto; min-width: 0; background: var(--lumlux-surface-solid); }
.header-search-panel .search-submit { flex: 0 0 auto; }
.primary-navigation > ul > li > a { display: inline-flex; align-items: center; min-height: 44px; }
.primary-navigation .menu-item-has-children > a::after { content: "⌄"; margin-left: .35em; font-size: .8em; opacity: .65; }
.lumlux-header-tools { display: flex; align-items: center; gap: 8px; }

@media (max-width: 900px) {
  body.mobile-menu-open { overflow: hidden; }
  .site-header__inner { position: relative; }
  .primary-navigation { top: 100%; }
  .primary-navigation a { display: block; padding-block: 10px; font-size: 1.05rem; }
  .primary-navigation .menu-item-has-children > a::after { float: right; }
  .header-search-panel__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); }
}

@media (max-width: 620px) {
  .header-actions { gap: 6px; }
  .header-search-toggle, .menu-toggle { width: 42px; min-width: 42px; height: 42px; padding-inline: 0; justify-content: center; }
  .header-search-panel__inner { width: min(calc(100% - 28px), var(--lumlux-wide)); }
  .header-search-panel .search-form { display: grid; grid-template-columns: 1fr auto; }
}

/* Flexibele homepage v0.5.0 */
.home-layout { padding-bottom: clamp(56px, 8vw, 110px); }
.home-hero { min-height: clamp(430px, 67vh, 760px); display: grid; align-items: end; border-bottom: 1px solid var(--lumlux-border); background: linear-gradient(135deg, color-mix(in srgb, var(--lumlux-accent) 12%, var(--lumlux-bg)), var(--lumlux-bg) 62%); }
.home-hero__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: clamp(64px, 10vw, 130px); }
.home-hero__copy { max-width: 1000px; }
.home-hero h1 { max-width: 13ch; margin: 0; font-family: var(--lumlux-heading-font); font-size: clamp(3.2rem, 10vw, 8.8rem); line-height: .88; letter-spacing: -.055em; overflow-wrap: normal; word-break: normal; }
.home-hero p { max-width: 720px; margin: clamp(24px, 4vw, 42px) 0 0; color: var(--lumlux-muted); font-size: clamp(1.1rem, 1rem + .65vw, 1.55rem); line-height: 1.5; }
.home-hero__button { margin-top: 30px; }
.home-editor-content { padding-top: clamp(56px, 8vw, 100px); padding-bottom: 0; }
.home-featured, .home-section { padding-top: clamp(64px, 10vw, 120px); padding-bottom: 0; }
.home-section__eyebrow { margin: 0 0 18px; color: var(--lumlux-muted); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.featured-card { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .8fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.featured-card__image { display: block; overflow: hidden; border-radius: var(--lumlux-radius); background: var(--lumlux-surface); }
.featured-card__image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .3s ease; }
.featured-card__image:hover img { transform: scale(1.015); }
.featured-card__content h2 { margin: 0; font-size: clamp(2rem, 4.5vw, 4.6rem); line-height: .98; letter-spacing: -.04em; }
.featured-card__content h2 a { color: inherit; text-decoration: none; }
.featured-card__excerpt { margin-top: 22px; color: var(--lumlux-muted); font-size: clamp(1rem, .96rem + .25vw, 1.18rem); }
.home-section__header { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: clamp(28px, 4vw, 48px); padding-bottom: 18px; border-bottom: 1px solid var(--lumlux-border); }
.home-section__header h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.6rem); line-height: 1; }
.home-text-link { display: inline-flex; gap: .45em; align-items: center; color: var(--lumlux-text); font-weight: 750; text-decoration: none; white-space: nowrap; }
.home-text-link:hover { color: var(--lumlux-accent); }

@media (max-width: 900px) {
  .featured-card { grid-template-columns: 1fr; }
  .featured-card__content { max-width: 720px; }
}

@media (max-width: 620px) {
  .home-hero { min-height: 520px; }
  .home-hero__inner { width: min(calc(100% - 28px), var(--lumlux-wide)); padding-block: 64px; }
  .home-hero h1 { font-size: clamp(3.1rem, 18vw, 5.4rem); }
  .home-featured, .home-section { padding-top: 68px; }
  .home-section__header { align-items: start; flex-direction: column; gap: 14px; }
  .featured-card__content h2 { font-size: clamp(2rem, 12vw, 3.4rem); }
}


/* 0.6.0: artikelen, pagina's, archieven en optionele zijbalk */
.entry-header--single { max-width: 900px; }
.entry-kicker { margin: 0 0 .7rem; color: var(--lumlux-muted); font-size: .82rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.entry-title--single { margin-bottom: .65rem; font-size: clamp(2.15rem, 5vw, 4.8rem); line-height: 1.04; }
.entry-title--page { font-size: clamp(2rem, 4.5vw, 4rem); line-height: 1.08; }
.entry-meta a, .entry-taxonomy a { color: inherit; }
.entry-taxonomy { display: flex; flex-wrap: wrap; gap: .45rem .75rem; margin-top: 1rem; color: var(--lumlux-muted); font-size: .9rem; }
.entry-content > p:first-child { margin-top: 0; }
.entry-content > p { hanging-punctuation: first last; }
.entry-content a:not(.wp-element-button) { overflow-wrap: normal; word-break: normal; }
.entry-content .wp-block-image figcaption, .entry-content .wp-block-gallery figcaption { color: var(--lumlux-muted); font-size: .86rem; }
.entry-content .wp-block-embed, .entry-content .wp-block-video { margin-block: 2rem; }
.entry-content pre { max-width: 100%; overflow-x: auto; padding: 1.1rem; border: 1px solid var(--lumlux-border); border-radius: var(--lumlux-radius); background: var(--lumlux-surface); }
.entry-content code { font-size: .92em; }
.entry-footer { margin-top: clamp(40px, 6vw, 72px); padding-top: 24px; border-top: 1px solid var(--lumlux-border); }
.post-navigation { margin-top: clamp(40px, 7vw, 84px); padding-top: 28px; border-top: 1px solid var(--lumlux-border); }
.post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.post-navigation a { display: block; color: inherit; text-decoration: none; }
.post-navigation a:hover .post-title { text-decoration: underline; }
.post-navigation .nav-subtitle { display: block; color: var(--lumlux-muted); font-size: .78rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.post-navigation .post-title { display: block; margin-top: .3rem; font-family: var(--lumlux-heading-font); font-size: 1.05rem; font-weight: 700; }
.nav-next { text-align: right; }

.content-layout { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: clamp(40px, 7vw, 92px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); gap: clamp(40px, 7vw, 88px); align-items: start; }
.content-layout__main { min-width: 0; }
.content-layout__main > .entry-article { max-width: var(--lumlux-content); }
.widget-area { min-width: 0; }
.widget { margin-bottom: 32px; padding: 22px; border: 1px solid var(--lumlux-border); border-radius: var(--lumlux-radius); background: var(--lumlux-surface-solid); }
.widget-title { margin: 0 0 14px; font-size: 1.05rem; }
.widget ul { margin: 0; padding-left: 1.1rem; }
.widget li + li { margin-top: .45rem; }
.widget a { color: inherit; }

.archive-description { color: var(--lumlux-muted); }
.archive-description > *:last-child { margin-bottom: 0; }
.search-form { display: flex; gap: 8px; }
.search-form label { flex: 1; }
.search-field { width: 100%; }
.search-submit { padding-inline: 1rem; border: 0; border-radius: var(--lumlux-radius); background: var(--lumlux-accent); color: var(--lumlux-accent-contrast); cursor: pointer; }
.no-results { max-width: 720px; }
.no-results .search-form { margin-top: 24px; }
.page-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.page-links > * { min-width: 38px; min-height: 38px; display: inline-grid; place-items: center; border: 1px solid var(--lumlux-border); border-radius: 7px; }

@media (max-width: 900px) {
  .content-layout { grid-template-columns: 1fr; }
  .content-layout__main > .entry-article { max-width: none; }
  .widget-area { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
  .widget { margin: 0; }
}
@media (max-width: 620px) {
  .entry-title--single { font-size: clamp(2rem, 12vw, 3rem); }
  .post-navigation .nav-links { grid-template-columns: 1fr; }
  .nav-next { text-align: left; }
  .widget-area { grid-template-columns: 1fr; }
  .search-form { align-items: stretch; }
  .entry-content .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .entry-content .wp-block-table table { min-width: 620px; }
}

/* 0.7.0 Project and portfolio presentation */
.project-archive { padding-block: clamp(2rem, 5vw, 5rem); }
.archive-hero { margin-bottom: clamp(2rem, 5vw, 4rem); }
.archive-title, .project-title { margin: .2em 0; font-size: clamp(2.4rem, 7vw, 6.5rem); line-height: .98; letter-spacing: -.045em; }
.archive-description, .project-lead { max-width: 760px; font-size: clamp(1.05rem, 2vw, 1.35rem); color: var(--lumlux-muted, #6b7280); }
.project-filters { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.5rem; }
.project-filter { display: inline-flex; padding: .55rem .9rem; border: 1px solid currentColor; border-radius: 999px; text-decoration: none; }
.project-filter:hover, .project-filter:focus-visible, .project-filter.is-active { background: var(--lumlux-accent, #111); color: var(--lumlux-surface, #fff); }
.project-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.5rem); }
.project-card { grid-column: span 6; margin: 0; background: var(--lumlux-surface, #fff); border-radius: var(--lumlux-radius, 12px); overflow: hidden; }
.project-card:nth-child(3n+1) { grid-column: span 7; }
.project-card:nth-child(3n+2) { grid-column: span 5; }
.project-card__media { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: color-mix(in srgb, var(--lumlux-text, #111) 8%, transparent); }
.project-card:nth-child(3n+1) .project-card__media { aspect-ratio: 16 / 10; }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.project-card:hover .project-card__media img { transform: scale(1.025); }
.project-card__placeholder { display:block; width:100%; height:100%; }
.project-card__body { padding: clamp(1rem, 2vw, 1.6rem); }
.project-card__title { margin: .25rem 0 .6rem; font-size: clamp(1.35rem, 2.2vw, 2.15rem); line-height: 1.08; }
.project-card__title a { color: inherit; text-decoration: none; }
.project-card__excerpt p:last-child { margin-bottom: 0; }
.project-hero { padding-top: clamp(2.5rem, 7vw, 7rem); padding-bottom: clamp(1.5rem, 4vw, 3rem); }
.project-cover { margin-bottom: clamp(2rem, 6vw, 5rem); }
.project-cover img { width: 100%; max-height: 82vh; object-fit: cover; border-radius: var(--lumlux-radius, 12px); }
.project-content > .alignwide { width: min(var(--lumlux-wide, 1240px), calc(100vw - 2rem)); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.project-content > .alignfull { width: 100vw; max-width: none; margin-left: 50%; transform: translateX(-50%); }
.project-content .wp-block-embed, .project-content .wp-block-video { margin-block: clamp(2rem, 5vw, 4rem); }
@media (max-width: 760px) {
  .project-card, .project-card:nth-child(3n+1), .project-card:nth-child(3n+2) { grid-column: 1 / -1; }
  .project-card__media, .project-card:nth-child(3n+1) .project-card__media { aspect-ratio: 4 / 3; }
  .project-title, .archive-title { overflow-wrap: normal; word-break: normal; }
}
@media (prefers-reduced-motion: reduce) { .project-card__media img { transition: none; } }


/* 0.8.0 Footer and general site settings */
.site-footer { margin-top: clamp(4rem, 9vw, 9rem); border-top: 1px solid var(--lumlux-border); background: var(--lumlux-footer-bg, var(--lumlux-surface-solid)); color: var(--lumlux-footer-text, var(--lumlux-text)); }
.site-footer a { color: inherit; }
.site-footer__inner { width: min(calc(100% - 40px), var(--lumlux-wide)); margin-inline: auto; padding-block: clamp(2.5rem, 6vw, 5rem); }
.site-footer__top { display: grid; grid-template-columns: minmax(220px, 1.25fr) minmax(0, 2fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.site-footer__brand { max-width: 520px; }
.site-footer__title { margin: 0 0 .8rem; font-family: var(--lumlux-heading-font); font-size: clamp(1.45rem, 2.4vw, 2.2rem); }
.site-footer__text { margin: 0; color: var(--lumlux-footer-muted, var(--lumlux-muted)); }
.site-footer__widgets { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(1.5rem, 4vw, 3rem); }
.site-footer .widget { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.site-footer .widget-title { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; }
.site-footer .widget ul { list-style: none; padding: 0; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; margin-top: clamp(2.5rem, 5vw, 4.5rem); padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, currentColor 16%, transparent); }
.site-footer__meta { margin: 0; color: var(--lumlux-footer-muted, var(--lumlux-muted)); font-size: .9rem; }
.footer-navigation .menu { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem 1.2rem; margin: 0; padding: 0; list-style: none; }
.footer-navigation a { text-decoration: none; }
.footer-navigation a:hover { text-decoration: underline; }
.footer-social { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.35rem; }
.footer-social a { display: inline-flex; align-items: center; min-height: 40px; padding: .55rem .8rem; border: 1px solid currentColor; border-radius: 999px; font-size: .88rem; text-decoration: none; }
.footer-social a:hover, .footer-social a:focus-visible { background: var(--lumlux-accent); border-color: var(--lumlux-accent); color: var(--lumlux-accent-contrast); }
.site-footer--compact .site-footer__top { grid-template-columns: 1fr; }
.site-footer--compact .site-footer__widgets { grid-template-columns: repeat(3, minmax(0,1fr)); }
@media (max-width: 900px) {
  .site-footer__top { grid-template-columns: 1fr; }
  .site-footer__widgets { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .site-footer__inner { width: min(calc(100% - 28px), var(--lumlux-wide)); }
  .site-footer__widgets { grid-template-columns: 1fr; }
  .site-footer__bottom { align-items: flex-start; flex-direction: column; }
  .footer-navigation .menu { justify-content: flex-start; }
}

/* 0.9.0 technical finishing */
img, svg, video, canvas, audio, iframe { max-width: 100%; }
iframe { border: 0; }
.entry-content iframe { width: 100%; }
.entry-content :where(p, li, blockquote) { overflow-wrap: normal; word-break: normal; }
.entry-content pre { max-width: 100%; overflow-x: auto; }
.entry-content input, .entry-content textarea, .entry-content select,
.comments-area input, .comments-area textarea, .comments-area select { max-width: 100%; }
.comments-area { max-width: var(--lumlux-reading-width, 780px); margin: 3rem auto 0; }
.comment-list { list-style: none; padding: 0; display: grid; gap: 1rem; }
.comment-body { padding: 1rem; border: 1px solid var(--lumlux-border); border-radius: var(--lumlux-radius); background: var(--lumlux-surface); }
.comment-meta { font-size: .9rem; color: var(--lumlux-muted); }
.comment-form label { display: block; margin-bottom: .35rem; font-weight: 600; }
.comment-form input:not([type="submit"]), .comment-form textarea { width: 100%; padding: .75rem; border: 1px solid var(--lumlux-border); border-radius: calc(var(--lumlux-radius) * .65); background: var(--lumlux-surface); color: var(--lumlux-text); }
.error-404 { padding-block: clamp(3rem, 8vw, 7rem); }
.error-404 .search-form { margin-block: 1.5rem; }
.lumlux-button { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 1rem; border-radius: var(--lumlux-radius); background: var(--lumlux-accent); color: var(--lumlux-accent-contrast); text-decoration: none; font-weight: 700; }
.site-footer__links { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem 1.25rem; }
.site-footer__privacy { color: inherit; }
@media (max-width: 900px) {
  .primary-navigation[aria-hidden="true"] { visibility: hidden; }
  .primary-navigation.is-open { visibility: visible; }
  .site-footer__links { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* LumLux-Art preset */
body.lumlux-font-lumlux { --lumlux-heading-font: Syne, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --lumlux-body-font: Urbanist, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body.lumlux-font-lumlux h1 { letter-spacing: .08em; font-weight: 500; }
body.lumlux-font-lumlux h2 { text-transform: uppercase; letter-spacing: .045em; font-weight: 500; }
body.lumlux-corners-round { --lumlux-radius: 45px; }
body.lumlux-corners-round .single-entry, body.lumlux-corners-round .page-entry { border-radius: 52px; }


/* 1.0.1 homepage text and legacy block compatibility hotfix */
.home-hero,
.home-hero__inner,
.home-hero__copy,
.home-editor-content,
.home-editor-content .entry-content {
  min-width: 0;
  width: 100%;
}
.home-hero h1,
.home-hero p,
.home-editor-content,
.home-editor-content p,
.home-editor-content h1,
.home-editor-content h2,
.home-editor-content h3,
.home-editor-content h4,
.home-editor-content h5,
.home-editor-content h6,
.entry-content p,
.entry-content li,
.entry-content a {
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  word-break: normal;
  overflow-wrap: break-word;
  white-space: normal;
}
.home-hero h1 {
  max-width: min(13ch, 100%);
}
.home-editor-content .wp-block-columns,
.home-editor-content .kt-row-column-wrap,
.home-editor-content [class*="wp-block-kadence"],
.home-editor-content [class*="kt-inside-inner-col"] {
  min-width: 0;
  max-width: 100%;
}
.home-editor-content .wp-block-column,
.home-editor-content [class*="inner-column"] {
  min-width: 0;
}
@media (max-width: 620px) {
  .home-hero h1 {
    max-width: 100%;
    font-size: clamp(2.45rem, 13vw, 4.3rem);
    line-height: .94;
    letter-spacing: -.035em;
  }
}


/* 1.0.6 Gutenberg dimensions take priority on the homepage. */
.home-editor-content .entry-content p:not(.has-small-font-size):not(.has-medium-font-size):not(.has-large-font-size):not(.has-x-large-font-size):not([style*="font-size"]),
.home-editor-content .entry-content li:not([style*="font-size"]) {
  font-size: var(--lumlux-home-copy-size, 18px);
}
.home-editor-content .wp-block-columns > .wp-block-column {
  min-width: 0;
}
@media (max-width: 781px) {
  .home-editor-content .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
  }
}
