:root {
  --ll-navy: #1a2a3a;
  --ll-oxide: #8b4217;
  --ll-paper: #f3efdf;
  --ll-rule: #d2c4a9;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--ll-navy); background: var(--ll-paper); font: 16px/1.75 "Merriweather", Georgia, serif; }
a { color: var(--ll-oxide); text-underline-offset: .16em; }
img, svg { max-width: 100%; height: auto; }
a:focus-visible, button:focus-visible { outline: 2px solid #a54f18; outline-offset: 4px; }
.aligncenter { display: block; margin-inline: auto; }
.masthead { background: var(--ll-navy); color: var(--ll-paper); border-bottom: 4px solid #b85c1a; }
.masthead a { color: var(--ll-paper); }
.masthead-inner, .content-area, .footer-widgets { width: min(100% - 3rem, 1170px); margin-inline: auto; }
.masthead-inner { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand-link { display: flex; align-items: center; gap: .8rem; text-decoration: none; font: 700 1.35rem/1.25 "Playfair Display", Georgia, serif; }
.brand-link svg { flex: none; width: 57px; }
.primary-nav ul { display: flex; gap: .95rem; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.primary-nav a { text-decoration: none; }
.hamburger-toggle, .nav-close, .nav-overlay { display: none; }
.site-content { padding-block: 2rem 3rem; }
.layout-with-sidebar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .34fr); align-items: start; gap: 1.6rem; }
.trail-crumbs, .entry-meta-bar { color: #5b5a55; font-size: .86rem; }
.trail-crumbs { margin-bottom: .85rem; }
.doc-sheet, .sidebar-column .widget-block { border: 1px solid var(--ll-rule); background: #fffdf4; padding: clamp(1rem, 3vw, 2.2rem); }
.doc-sheet { border-top: 3px double #b85c1a; }
.entry-title, .entry-body h2, .widget-block-title { font-family: "Playfair Display", Georgia, serif; line-height: 1.22; }
.entry-title { font-size: clamp(1.75rem, 3.65vw, 3rem); margin: 0 0 .75rem; }
.featured-image-wrap { margin-block: 1.15rem; }
.entry-body { overflow-wrap: anywhere; }
.entry-body table { display: block; max-width: 100%; overflow: auto; border-collapse: collapse; }
.entry-body th, .entry-body td { border: 1px solid var(--ll-rule); padding: .45rem; }
.site-footer { color: var(--ll-paper); background: var(--ll-navy); border-top: 3px solid #b85c1a; padding-top: 2rem; }
.site-footer a { color: #f4c38f; }
.footer-widgets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.65rem; }
.footer-bottom { border-top: 1px solid #54616b; text-align: center; padding: 1rem; margin-top: 1rem; }
@media (max-width: 800px) {
  .masthead-inner, .content-area, .footer-widgets { width: calc(100% - 1.75rem); }
  .masthead-inner { min-height: 68px; gap: .5rem; }
  .hamburger-toggle { display: block; color: var(--ll-paper); background: transparent; border: 1px solid #b58e61; padding: .55rem; }
  .hamburger-toggle::before { content: "☰"; font: 1.25rem/1 sans-serif; }
  .primary-nav { display: none; position: fixed; inset: 0 0 0 auto; z-index: 4; width: min(21rem, 92%); overflow: auto; padding: 1.25rem; background: var(--ll-navy); }
  .primary-nav.is-open { display: block; }
  .nav-close { display: block; margin: 0 0 1rem auto; color: var(--ll-paper); background: transparent; border: 1px solid #b58e61; }
  .primary-nav ul { flex-direction: column; }
  body.ll-menu-open .nav-overlay { display: block; position: fixed; inset: 0; z-index: 3; background: #0009; }
  .layout-with-sidebar, .footer-widgets { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
.ll-slider-wrap { position: relative; background: var(--ll-navy); color: var(--ll-paper); padding: clamp(1rem, 4vw, 2.1rem); border-bottom: 3px solid #b85c1a; }
.ll-slide { padding-inline: 2.1rem; }
.ll-slide[hidden] { display: none; }
.ll-slide-tag { color: #f2bd84; font-size: .85rem; letter-spacing: .07em; }
.ll-slide-body { font: 700 clamp(1.3rem, 3vw, 2rem)/1.45 "Playfair Display", Georgia, serif; }
.ll-slide-caption { font-size: .85rem; }
.ll-arrow, .ll-dots button { color: var(--ll-paper); border: 1px solid #e0b287; background: transparent; cursor: pointer; }
.ll-arrow { position: absolute; top: 42%; padding: .25rem .5rem; }
.ll-arrow-prev { left: .55rem; }
.ll-arrow-next { right: .55rem; }
.ll-arrow-prev::before { content: "‹"; }
.ll-arrow-next::before { content: "›"; }
.ll-dots { display: flex; justify-content: center; gap: .55rem; padding-top: .8rem; }
.ll-dots button { border-radius: 50%; width: 12px; height: 12px; padding: 0; }
.ll-dots button[aria-current="true"] { background: #f2bd84; }
.ll-timeline, .thematic-section { margin-block: 1.65rem; padding: clamp(1rem, 3vw, 1.8rem); background: #fffdf4; border: 1px solid var(--ll-rule); }
.ll-tl-list { padding-left: 1.2rem; }
.ll-tl-item { margin-block: .55rem; }
.ll-tl-year { font-weight: bold; color: var(--ll-oxide); }
.thematic-section h1, .thematic-section h2, .ll-timeline h2, .layout-wide > h2 { font-family: "Playfair Display", Georgia, serif; line-height: 1.25; margin-top: 0; }
.posts-listing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.posts-listing article { border: 1px solid var(--ll-rule); background: #fffdf4; min-width: 0; }
.card-body { padding: 1rem; }
.card-thumbnail img { display: block; width: 100%; }
.card-body .entry-title { font-size: 1.25rem; }
.archive-pagination { text-align: center; margin-block: 1.5rem; }
@media (max-width: 800px) { .posts-listing { grid-template-columns: minmax(0, 1fr); } }

.brand-title, .brand-tagline { display: block; }
.brand-tagline { margin-top: .15rem; font: 400 .82rem/1.35 "Merriweather", Georgia, serif; }
.ll-arrow::before { content: none; }
.ll-arrow svg { display: block; }
