/* LieveMichels modern public theme — v1.3.0. Self-contained, no Bootstrap dependency.
   Classic v1.2 remains in application/views/site and is selectable in site_theme.php. */
:root {
  --lm-ink: #333435; --lm-muted: #74706b; --lm-wine: #8a352c;
  --lm-wine-dark: #68271f; --lm-gold: #d8a96a; --lm-cream: #fbf8f4;
  --lm-sand: #f4eee6; --lm-line: #e9ded2; --lm-white: #fff;
  --lm-serif: 'Bree Serif', Georgia, serif;
  --lm-sans: 'Nunito Sans', 'Segoe UI', Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body.lm-modern { margin: 0; background: var(--lm-cream); color: var(--lm-ink); font: 400 17px/1.75 var(--lm-sans); -webkit-font-smoothing: antialiased; }
.lm-modern img, .lm-modern video, .lm-modern iframe { max-width: 100%; }
.lm-modern img { height: auto; }
.lm-modern a { color: var(--lm-wine); text-decoration: none; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.lm-modern a:hover { color: var(--lm-wine-dark); }
.lm-modern :focus-visible { outline: 3px solid var(--lm-gold); outline-offset: 4px; }
.lm-modern button, .lm-modern input, .lm-modern textarea { font: inherit; }
.lm-modern h1, .lm-modern h2, .lm-modern h3, .lm-modern h4, .lm-modern h5, .lm-modern h6 { font-family: var(--lm-serif); font-weight: 400; line-height: 1.2; letter-spacing: -.025em; }
.lm-modern h2 { font-size: clamp(30px, 3.2vw, 48px); }
.lm-wrap { max-width: 1192px; margin: 0 auto; padding: 0 28px; }
.lm-skip { position: fixed; top: -90px; left: 14px; z-index: 9999; padding: 12px 20px; background: #fff; color: #222; box-shadow: 0 4px 20px #0002; }
.lm-skip:focus { top: 10px; }
.lm-eyebrow { display: inline-flex; align-items: center; gap: 12px; color: var(--lm-wine); font-size: 12px; font-weight: 800; line-height: 1.4; letter-spacing: .2em; text-transform: uppercase; }
.lm-eyebrow-line { width: 26px; height: 1px; background: currentColor; display: inline-block; }

/* Navigation: no third-party JS or CSS frameworks. */
.lm-header { position: sticky; top: 0; z-index: 900; background: rgb(251 248 244 / 96%); border-bottom: 1px solid var(--lm-line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.lm-header-inner { max-width: 1420px; margin: auto; min-height: 92px; padding: 0 38px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.lm-brand { flex: 0 0 auto; display: flex; flex-direction: column; gap: 3px; color: var(--lm-ink) !important; white-space: nowrap; }
.lm-brand-name { font-family: var(--lm-serif); font-size: clamp(21px, 2vw, 28px); line-height: 1.1; letter-spacing: -.04em; }
.lm-brand-name em { color: var(--lm-wine); font-style: normal; }
.lm-brand-subtitle { font-size: 10px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--lm-muted); }
.lm-navigation { margin-left: auto; }
.lm-menu, .lm-menu ul { list-style: none; margin: 0; padding: 0; }
.lm-menu { display: flex; align-items: center; gap: 3px; }
.lm-menu > li { position: relative; }
.lm-menu > li > a { display: inline-flex; align-items: center; gap: 7px; color: #41403f; padding: 14px 12px; border-radius: 8px; font-size: 14px; font-weight: 800; white-space: nowrap; }
.lm-menu > li > a:hover, .lm-menu > li.open > a, .lm-menu > li > a:focus-visible { background: #f3e9df; color: var(--lm-wine); }
.lm-menu > li > a.lm-nav-contact { background: var(--lm-wine); color: white; padding: 12px 19px; margin-left: 5px; border-radius: 100px; }
.lm-menu > li > a.lm-nav-contact:hover { background: var(--lm-wine-dark); color: #fff; }
.lm-chevron { height: 7px; width: 7px; border-bottom: 1.7px solid; border-right: 1.7px solid; transform: rotate(45deg) translateY(-2px); transition: transform .2s ease; margin: 0 2px 0 4px; }
.lm-menu > li.open .lm-chevron { transform: rotate(225deg) translate(-1px,-1px); }
.lm-menu .dropdown-menu { display: none; position: absolute; left: 0; top: calc(100% - 2px); z-index: 30; width: max-content; min-width: 255px; max-width: min(380px, 90vw); border: 1px solid var(--lm-line); background: #fff; box-shadow: 0 14px 50px #2a201a21; border-radius: 14px; padding: 10px; }
.lm-menu .dropdown-menu > li > a { display: block; white-space: normal; color: var(--lm-ink); padding: 11px 15px; line-height: 1.35; font-size: 14px; font-weight: 700; border-radius: 8px; }
.lm-menu .dropdown-menu > li:first-child > a { color: var(--lm-wine); border-bottom: 1px solid var(--lm-line); border-radius: 0; margin-bottom: 6px; }
.lm-menu .dropdown-menu > li > a:hover, .lm-menu .dropdown-menu > li > a:focus-visible { color: var(--lm-wine); background: var(--lm-cream); }
.lm-menu li.open > .dropdown-menu { display: block; }
.lm-menu-toggle { display: none; border: 1px solid var(--lm-line); background: transparent; border-radius: 10px; padding: 10px 12px; align-items: center; gap: 12px; cursor: pointer; color: var(--lm-ink); }
.lm-menu-toggle-icon { display: flex; flex-direction: column; width: 21px; gap: 5px; }
.lm-menu-toggle-icon span { height: 2px; width: 100%; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.lm-menu-toggle-label { font-size: 13px; font-weight: 800; }
.lm-menu-toggle[aria-expanded="true"] .lm-menu-toggle-icon span:first-child { transform: translateY(7px) rotate(45deg); }
.lm-menu-toggle[aria-expanded="true"] .lm-menu-toggle-icon span:nth-child(2) { opacity: 0; }
.lm-menu-toggle[aria-expanded="true"] .lm-menu-toggle-icon span:last-child { transform: translateY(-7px) rotate(-45deg); }

/* Hero: retains the original sunrise image and the established wine/gold palette. */
.lm-hero { min-height: clamp(550px, 64vw, 690px); position: relative; background-color: #9d664a; background-image: linear-gradient(95deg, rgb(25 25 25 / 73%) 0%, rgb(28 29 30 / 53%) 39%, rgb(40 27 16 / 13%) 100%), url('/images/bannerbg.jpg'); background-position: center, center 56%; background-size: cover, cover; background-repeat: no-repeat; display: flex; align-items: center; }
.lm-hero-inner { width: 100%; max-width: 1192px; margin: 0 auto; padding: 85px 28px 105px; }
.lm-hero-copy { max-width: 670px; }
.lm-hero-eyebrow { color: #f3d4aa; }
.lm-hero h1 { margin: 22px 0 21px; color: white; font-size: clamp(45px, 5vw, 75px); line-height: 1.11; letter-spacing: -.04em; text-wrap: balance; }
.lm-hero h1 em { font-style: normal; color: #f3d4a9; }
.lm-hero-copy > p { color: #fffcf4; font-size: clamp(18px, 1.8vw, 22px); max-width: 550px; line-height: 1.65; margin: 0; }
.lm-hero-actions { margin-top: 36px; display: flex; flex-wrap: wrap; align-items: center; gap: 15px; }
.lm-button { border: 0; display: inline-flex; justify-content: center; align-items: center; gap: 17px; border-radius: 50px; padding: 14px 22px; font: 800 14px/1.4 var(--lm-sans); cursor: pointer; min-height: 51px; text-align: center; }
.lm-button-primary, .lm-button-primary:visited { background: var(--lm-wine); color: white !important; }
.lm-hero .lm-button-primary { background: #fff; color: var(--lm-wine) !important; }
.lm-button-primary:hover { background: var(--lm-wine-dark); color: white !important; transform: translateY(-1px); }
.lm-hero .lm-button-primary:hover { background: #f8e4cd; color: var(--lm-wine-dark) !important; }
.lm-button-glass { color: white !important; background: rgb(255 255 255 / 11%); border: 1px solid rgb(255 255 255 / 65%); }
.lm-button-glass:hover { background: #fff; color: var(--lm-wine) !important; }
.lm-hero-bottom-line { position: absolute; left: 50%; bottom: 29px; width: 1px; height: 38px; background: rgb(255 255 255 / 65%); }

/* Welcome and offering */
.lm-introduction { padding: 94px 0; background: #fff; }
.lm-introduction-grid { display: grid; grid-template-columns: 0.83fr 1.17fr; gap: clamp(35px, 8vw, 125px); }
.lm-introduction h2 { margin: 20px 0; font-size: clamp(35px, 4vw, 56px); max-width: 370px; }
.lm-introduction h2 em { font-style: normal; color: var(--lm-wine); }
.lm-introduction-side { color: var(--lm-muted); margin-top: 35px; font-size: 14px; font-weight: 700; }
.lm-introduction-text { padding-top: 4px; font-size: 18px; color: #4e4a45; }
.lm-introduction-text p { margin: 0 0 13px; }
.lm-introduction-text p:empty { display: none; }
.lm-offer-section { padding: 91px 0 106px; background: var(--lm-sand); }
.lm-section-intro { text-align: center; max-width: 650px; margin: 0 auto 46px; }
.lm-section-intro h2 { margin: 14px 0; }
.lm-section-intro h2 em { color: var(--lm-wine); font-style: normal; }
.lm-section-intro p { color: var(--lm-muted); margin: 0; }
.lm-offer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 19px; }
.lm-offer-card { min-height: 280px; background: white; padding: 32px; border-radius: 18px; border: 1px solid #f0e7dd; display: flex; flex-direction: column; align-items: flex-start; position: relative; color: var(--lm-ink) !important; box-shadow: 0 9px 35px #7c60520c; }
.lm-offer-card:hover, .lm-offer-card:focus-visible { transform: translateY(-5px); box-shadow: 0 16px 45px #7c605224; border-color: #dfc9ba; }
.lm-offer-index { color: var(--lm-wine); text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 800; }
.lm-offer-title { display: block; margin: 41px 0 8px; font: 400 27px/1.2 var(--lm-serif); }
.lm-offer-description { font-size: 15px; line-height: 1.6; color: #77716d; padding-right: 25px; }
.lm-offer-arrow { position: absolute; right: 26px; bottom: 24px; width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: var(--lm-cream); color: var(--lm-wine); }

/* All subpages, latest news, agenda */
.lm-inner-hero { padding: 91px 0 77px; background: var(--lm-sand) url('/images/innerpg-bkg.png') center / cover no-repeat; border-bottom: 1px solid var(--lm-line); }
.lm-inner-hero h1 { margin: 15px 0 0; max-width: 930px; font-size: clamp(38px, 4.5vw, 64px); overflow-wrap: anywhere; }
.lm-page-section { padding: 83px 0 112px; background: var(--lm-cream); min-height: 420px; }
.lm-content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: clamp(40px, 6vw, 85px); align-items: start; }
.lm-main-column { min-width: 0; }
.lm-section-heading { margin: 0 0 30px; }
.lm-section-heading h2 { margin: 9px 0 0; }
.lm-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 21px; }
.Actueel-para { background: #fff; border: 1px solid #eee4db; border-radius: 16px; min-width: 0; padding: 25px; display: flex; flex-direction: column; overflow-wrap: anywhere; box-shadow: 0 5px 26px rgb(50 36 20 / 3%); }
.Actueel-para h3 { font: 400 23px/1.27 var(--lm-serif); margin: 2px 0 17px; color: #3e3936; }
.Actueel-para p { margin: 0 0 14px; font-size: 15px; line-height: 1.7; }
.Actueel-para img { max-width: 100% !important; height: auto !important; border-radius: 10px; margin: 0 0 12px !important; float: none !important; }
.Actueel-para .btn { align-self: flex-start; margin-top: auto; padding: 9px 0 0; color: var(--lm-wine); text-transform: none; font-size: 13px; font-weight: 800; letter-spacing: .06em; border: 0; background: transparent; }
.Actueel-para .btn::after { content: ' →'; font-size: 18px; }
.Actueel-para .btn:hover { color: var(--lm-wine-dark); }
.lm-text-link { display: inline-flex; align-items: center; gap: 14px; margin-top: 32px; font-size: 14px; font-weight: 800; border-bottom: 1px solid var(--lm-wine); padding-bottom: 4px; }
.lm-detail-content { font-size: 17px; }
.lm-intro-paragraph { font-size: 19px; margin: 0 0 30px; color: #66615c; }
.lm-rich { min-width: 0; line-height: 1.8; overflow-wrap: anywhere; }
.lm-rich h1, .lm-rich h2 { margin: 28px 0 18px; font-size: 31px; }
.lm-rich h3 { margin: 29px 0 15px; font-size: 26px; }
.lm-rich p { margin: 0 0 19px; }
.lm-rich img { max-width: 100% !important; height: auto !important; border-radius: 11px; }
.lm-rich iframe { max-width: 100% !important; }
.lm-rich table { display: block; overflow-x: auto; max-width: 100%; border-collapse: collapse; }
.lm-rich td, .lm-rich th { padding: 8px; }
.lm-rich a { text-decoration: underline; text-underline-offset: 3px; }
.lm-rich ul, .lm-rich ol { padding-left: 26px; }
.lm-rich .Actueel-para { margin-bottom: 21px; }
.lm-detail-content > .Actueel-para { margin-bottom: 21px; }
.lm-detail-content .Actueel-para h3 { margin-top: 0; }

/* Sidebar agenda, reused by every page */
.lm-sidebar { min-width: 0; }
.lm-agenda-card { border-top: 3px solid var(--lm-wine); padding: 27px 0 34px; }
.lm-aside-eyebrow { text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: var(--lm-wine); }
.lm-agenda-card h2 { font-size: 31px; margin: 9px 0 22px; }
.lm-agenda-list { margin: 0; padding: 0; list-style: none; }
.lm-agenda-list li { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: start; gap: 3px 12px; padding: 15px 0; border-bottom: 1px solid var(--lm-line); font-size: 14px; line-height: 1.55; }
.lm-agenda-list li > .date { font-size: 12px; color: var(--lm-wine); font-weight: 800; white-space: nowrap; padding-top: 3px; }
.lm-agenda-list li > span:not(.date) { overflow-wrap: anywhere; }
.lm-agenda-list li > span > a { color: #3e3e3e; font-weight: 700; }
.lm-agenda-list li > span > a:hover { color: var(--lm-wine); }
.lm-agenda-list li .agenda-btn, .lm-agenda-list li .volzet-btn { grid-column: 2; justify-self: start; font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; border-radius: 50px; padding: 4px 11px; margin-top: 7px; }
.lm-agenda-list li .agenda-btn { background: #f5e5dc; color: var(--lm-wine); }
.lm-agenda-list li .agenda-btn:hover { background: var(--lm-wine); color: #fff; }
.lm-agenda-list li .volzet-btn { background: #ece9e4; color: #756d65; }
.lm-agenda-empty { color: var(--lm-muted); font-size: 15px; }
.lm-sidebar-link { display: inline-flex; gap: 12px; align-items: center; margin-top: 24px; font-size: 13px; font-weight: 800; }
.lm-agenda-full { background: #fff; border-radius: 14px; padding: 7px 24px; border: 1px solid var(--lm-line); }
.lm-agenda-full li { grid-template-columns: 55px minmax(0, 1fr); padding: 21px 0; font-size: 17px; }
.lm-agenda-full li:last-child { border-bottom: 0; }
.lm-agenda-full li .date { font-size: 15px; }
.lm-help-card { margin-top: 32px; background: #efe4da; padding: 28px; border-radius: 14px; }
.lm-help-icon { color: var(--lm-wine); font-size: 26px; }
.lm-help-card h3 { font-size: 24px; margin: 13px 0; }
.lm-help-card p { color: #675c56; font-size: 14px; line-height: 1.65; margin: 0 0 19px; }
.lm-help-link { font-weight: 800; font-size: 13px; }

/* Forms */
.lm-form-card { padding: clamp(25px, 4vw, 44px); border: 1px solid var(--lm-line); border-radius: 18px; background: #fff; box-shadow: 0 7px 35px #4a362013; }
.lm-form-card h2 { font-size: 32px; margin: 0 0 12px; }
.lm-form-card > p { color: var(--lm-muted); margin: 0 0 24px; }
.lm-form { display: flex; flex-direction: column; gap: 22px; }
.lm-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.lm-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.lm-field label { font-size: 13px; font-weight: 800; }
.lm-field .form-control { width: 100%; padding: 13px 15px; border: 1px solid #d9cec3; border-radius: 9px; background: #fefcf9; outline: none; font-size: 15px; min-height: 49px; color: var(--lm-ink); }
.lm-field textarea.form-control { resize: vertical; min-height: 148px; }
.lm-field .form-control:focus { border-color: var(--lm-wine); box-shadow: 0 0 0 3px rgb(138 53 44 / 11%); }
.lm-form .lm-button { align-self: flex-start; }
.lm-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.lm-contact-info { padding: 35px 3px; }
.lm-contact-info h2 { font-size: 26px; margin: 0 0 18px; }
.lm-contact-info p { margin: 0 0 15px; }
.lm-modern .alert { padding: 13px 16px; margin-bottom: 21px; border-radius: 8px; font-size: 14px; }
.lm-modern .alert-success { color: #255341; background: #e6f5ea; }
.lm-modern .alert-danger { color: #702b26; background: #fae7e4; }

/* Footer */
.lm-footer { background: #272d2c; color: #e9e6df; padding: 61px 0 24px; }
.lm-footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 60px; padding-bottom: 55px; }
.lm-footer-identity { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; }
.lm-footer-brand { font: 400 27px/1.3 var(--lm-serif); color: white; }
.lm-footer-brand em { font-style: normal; color: #edc08f; }
.lm-footer-identity > span:nth-child(2) { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .2em; color: #ccc2b6; }
.lm-footer-identity p { font-size: 14px; margin: 19px 0 0; color: #bdbeb9; }
.lm-footer-links { display: flex; flex-direction: column; gap: 9px; }
.lm-footer-links > span { color: #edc08f; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 9px; }
.lm-footer a { color: #e0ddd8; font-size: 14px; }
.lm-footer a:hover { color: #edc08f; }
.lm-footer-bottom { border-top: 1px solid #ffffff24; padding-top: 21px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #aab0ad; font-size: 12px; }
.lm-footer-bottom > div { display: flex; gap: 22px; }
.lm-footer-bottom a { color: #b9c0bb; font-size: 12px; }

@media (min-width: 901px) {
  .lm-menu > li.dropdown:hover > .dropdown-menu { display: block; }
}
@media (max-width: 1120px) {
  .lm-header-inner { padding: 0 25px; }
  .lm-menu > li > a { padding: 12px 9px; font-size: 13px; }
  .lm-brand-name { font-size: 23px; }
}
@media (max-width: 900px) {
  .lm-header-inner { min-height: 76px; padding: 0 24px; flex-wrap: wrap; gap: 0; }
  .lm-brand-name { font-size: 24px; }
  .lm-menu-toggle { display: inline-flex; margin-left: auto; }
  .lm-navigation { display: none; width: 100%; flex: 0 0 100%; margin: 0; padding: 12px 0 22px; border-top: 1px solid var(--lm-line); max-height: calc(100dvh - 77px); overflow-y: auto; }
  .lm-navigation.in { display: block; }
  .lm-menu { display: flex; flex-direction: column; align-items: stretch; gap: 1px; }
  .lm-menu > li > a { display: flex; padding: 12px 14px; font-size: 15px; }
  .lm-menu > li > a.lm-nav-contact { margin: 10px 0 0; display: inline-flex; }
  .lm-menu .dropdown-menu { position: static; width: 100%; max-width: 100%; min-width: 0; box-shadow: none; border: 0; padding: 0 0 6px 16px; background: transparent; }
  .lm-menu .dropdown-menu > li > a { font-size: 14px; }
  .lm-menu .dropdown-menu > li:first-child > a { border-bottom-color: var(--lm-line); }
  .lm-content-grid { grid-template-columns: minmax(0, 1fr) 270px; gap: 32px; }
  .lm-offer-card { padding: 24px; }
  .lm-offer-title { font-size: 23px; }
}
@media (max-width: 720px) {
  html { scroll-padding-top: 75px; }
  .lm-wrap { padding-left: 20px; padding-right: 20px; }
  .lm-hero { min-height: 590px; background-position: 58% 50%; }
  .lm-hero-inner { padding: 75px 22px; }
  .lm-hero h1 { font-size: clamp(43px, 9vw, 59px); }
  .lm-hero-copy > p { font-size: 18px; }
  .lm-hero-actions { gap: 10px; }
  .lm-introduction { padding: 65px 0; }
  .lm-introduction-grid { grid-template-columns: 1fr; gap: 19px; }
  .lm-introduction-side { margin-top: 14px; }
  .lm-offer-section { padding: 68px 0 78px; }
  .lm-offer-grid { grid-template-columns: 1fr; gap: 13px; }
  .lm-offer-card { min-height: 180px; padding: 25px; }
  .lm-offer-title { margin-top: 25px; }
  .lm-page-section { padding: 60px 0 80px; }
  .lm-content-grid { grid-template-columns: 1fr; gap: 53px; }
  .lm-card-grid { grid-template-columns: 1fr; }
  .lm-inner-hero { padding: 68px 0 59px; }
  .lm-sidebar { border-top: 1px solid var(--lm-line); padding-top: 25px; }
  .lm-footer-top { grid-template-columns: 1fr 1fr; gap: 33px; }
  .lm-footer-identity { grid-column: span 2; }
  .lm-footer-bottom { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 470px) {
  .lm-header-inner { padding: 0 17px; }
  .lm-brand-name { font-size: 20px; }
  .lm-brand-subtitle { font-size: 9px; letter-spacing: .14em; }
  .lm-menu-toggle { padding: 9px; gap: 9px; }
  .lm-hero { min-height: 620px; }
  .lm-hero-actions { align-items: stretch; flex-direction: column; max-width: 275px; }
  .lm-hero-actions .lm-button { justify-content: space-between; }
  .lm-form-row { grid-template-columns: 1fr; }
  .lm-form-card { padding: 25px 18px; }
  .lm-footer-top { grid-template-columns: 1fr; }
  .lm-footer-identity { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .lm-modern *, .lm-modern *::before, .lm-modern *::after { transition: none !important; animation: none !important; }
}
