/* Policy library: readable documents, quiet navigation and matching illustrated covers. */
.lgr-policy-header { padding: 2rem 0 2.5rem; background: var(--lgr-sand); border-bottom: 1px solid #e3dece; }
.lgr-policy-header__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, 1fr); gap: 3rem; align-items: center; }
.lgr-policy-header h1 { margin: .5rem 0 1rem; font-size: clamp(2rem, 3.6vw, 3.1rem); line-height: 1.12; overflow-wrap: anywhere; }
.lgr-policy-eyebrow { margin: 0; color: var(--lgr-green); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.lgr-policy-intro { margin: 0; max-width: 58ch; color: #43564b; font-size: 1.08rem; line-height: 1.65; }
.lgr-policy-cover { margin: 0; overflow: hidden; border-radius: 18px; }
.lgr-policy-cover__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.lgr-policy-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 2rem; align-items: start; margin-top: 2.5rem; }
.lgr-policy-sidebar { position: sticky; top: 7rem; min-width: 0; }
.lgr-policy-back { display: block; margin-bottom: 1rem; font-weight: 700; color: var(--lgr-green); text-decoration: none; line-height: 1.5; }
.lgr-policy-toc { padding: 1.1rem; border: 1px solid #d8e0d5; border-radius: 12px; background: #fff; }
.lgr-policy-toc h2 { font-size: 1rem; margin: 0 0 .9rem; }
.lgr-policy-toc__list { list-style: none; margin: 0; padding: 0; max-height: calc(100vh - 14rem); overflow-y: auto; scrollbar-width: thin; }
.lgr-policy-toc__list li { margin: 0; padding: 0; }
.lgr-policy-toc__list a { display: block; padding: .45rem .3rem; font-size: .87rem; line-height: 1.45; color: #40574a; text-decoration: none; overflow-wrap: anywhere; }
.lgr-policy-toc__list a:hover, .lgr-policy-back:hover { color: var(--lgr-green-dark); text-decoration: underline; }
.lgr-policy-toc--mobile { display: none; }
.lgr-policy-document { min-width: 0; padding: 2.25rem 2.5rem; background: #fff; border: 1px solid #e1e5dc; border-radius: 16px; color: #263a30; }
.lgr-policy-document .entry-content { font-size: 1rem; line-height: 1.85; overflow-wrap: break-word; }
.lgr-policy-document .entry-content > :first-child { margin-top: 0; }
.lgr-policy-document p { margin: 0 0 1.25rem; }
.lgr-policy-document ul, .lgr-policy-document ol { padding-left: 1.4rem; margin: 1rem 0 1.5rem; }
.lgr-policy-document li { margin: .65rem 0; padding-left: .15rem; }
.lgr-policy-document li::marker { color: var(--lgr-green); font-weight: 700; }
.lgr-policy-document h2 { margin: 2.5rem 0 1.1rem; padding-top: 1.25rem; border-top: 1px solid #dce4d7; font-size: clamp(1.25rem, 2.3vw, 1.55rem); line-height: 1.4; scroll-margin-top: 7rem; }
.lgr-policy-document h3, .lgr-policy-document h4 { margin: 1.8rem 0 .85rem; font-size: 1.1rem; line-height: 1.5; scroll-margin-top: 7rem; }
.lgr-policy-document blockquote, .lgr-policy-note { margin: 0 0 1.5rem; padding: 1.1rem 1.25rem; border-left: 4px solid var(--lgr-green); border-radius: 0 10px 10px 0; background: #f1f5ed; color: #304c3b; }
.lgr-policy-document img { max-width: 100%; height: auto; }
.lgr-policy-document table { display: block; max-width: 100%; overflow-x: auto; }
.lgr-policy-document .wp-block-separator { margin: 2rem 0; border: 0; border-top: 1px solid #e1e5dc; }
.lgr-policy-document .wp-block-heading strong { font-weight: 750; }
.lgr-policy-top { margin: 2rem 0 0 !important; padding-top: 1rem; border-top: 1px solid #e1e5dc; font-size: .9rem; }
.lgr-policy-help-wrap { margin-top: 2rem; margin-bottom: 3rem; }
.lgr-policy-help { padding: 1.6rem 2rem; background: var(--lgr-green-soft); border: 1px solid #d6e0d0; border-radius: 14px; }
.lgr-policy-help h2 { margin: 0 0 .7rem; font-size: 1.4rem; line-height: 1.35; }
.lgr-policy-help p { max-width: 75ch; margin: 0 0 1rem; }
.lgr-policy-actions { display: flex; gap: 1.25rem; align-items: center; flex-wrap: wrap; }
.lgr-policy-actions > a { font-weight: 700; }
.lgr-policy-library { padding-top: 2.5rem; padding-bottom: 3rem; }
.lgr-policy-library > section > h2 { margin: 0 0 1.25rem; font-size: 1.65rem; }
.lgr-policy-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.3rem; }
.lgr-policy-card { min-width: 0; border: 1px solid #dde3d7; border-radius: 16px; overflow: hidden; background: #fff; }
.lgr-policy-card__image { display: block; line-height: 0; }
.lgr-policy-card-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.lgr-policy-card__body { padding: 1.25rem; }
.lgr-policy-card h3 { margin: 0 0 .7rem; font-size: 1.25rem; line-height: 1.35; }
.lgr-policy-card h3 a { color: var(--lgr-green-dark); text-decoration: none; }
.lgr-policy-card h3 a:hover { text-decoration: underline; }
.lgr-policy-card p { margin: 0 0 1rem; color: #506057; font-size: .95rem; line-height: 1.65; }
.lgr-policy-card__label { font-weight: 750; font-size: .9rem; color: #8b4524; }
.lgr-policy-suppliers { margin: 2.5rem 0; padding-top: 1.5rem; border-top: 1px solid #d9dfd1; }
.lgr-policy-suppliers .lgr-policy-card { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(0, 2fr); grid-column: 1 / -1; }
.lgr-policy-suppliers .lgr-policy-card__image, .lgr-policy-suppliers .lgr-policy-card-image { height: 100%; }
.lgr-policy-suppliers .lgr-policy-card-image { min-height: 210px; }
.lgr-policy-page a:focus-visible, .lgr-policy-page summary:focus-visible { outline: 3px solid #2c654b; outline-offset: 3px; }
@media (max-width: 1000px) {
 .lgr-policy-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .lgr-policy-layout { grid-template-columns: 210px minmax(0, 1fr); gap: 1.25rem; }
 .lgr-policy-document { padding: 1.75rem; }
}
@media (max-width: 800px) {
 .lgr-policy-header { padding: 1.5rem 0 2rem; }
 .lgr-policy-header__grid { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
 .lgr-policy-cover__image { max-height: 230px; }
 .lgr-policy-layout { display: block; margin-top: 1.5rem; }
 .lgr-policy-sidebar { position: static; margin-bottom: 1.25rem; }
 .lgr-policy-toc--desktop { display: none; }
 .lgr-policy-toc--mobile { display: block; }
 .lgr-policy-toc summary { cursor: pointer; font-weight: 750; padding: .2rem 0; }
 .lgr-policy-toc__list { max-height: 45vh; margin-top: .75rem; }
 .lgr-policy-document { padding: 1.5rem; }
 .lgr-policy-document .entry-content { line-height: 1.8; }
 .lgr-policy-document h2, .lgr-policy-document h3 { scroll-margin-top: 6rem; }
 .lgr-policy-help { padding: 1.4rem; }
}
@media (max-width: 600px) {
 .lgr-policy-card-grid { grid-template-columns: minmax(0, 1fr); }
 .lgr-policy-suppliers .lgr-policy-card { display: block; }
 .lgr-policy-suppliers .lgr-policy-card-image { height: auto; min-height: 0; }
 .lgr-policy-document { padding: 1.2rem; }
 .lgr-policy-header h1 { font-size: 2rem; }
}
@media print {
 .lgr-policy-page .lgr-topbar, .lgr-policy-page .lgr-site-header, .lgr-policy-page .lgr-reservation,
 .lgr-policy-page .lgr-policy-sidebar, .lgr-policy-page .lgr-policy-cover, .lgr-policy-page .lgr-policy-help-wrap,
 .lgr-policy-page .lgr-policy-help, .lgr-policy-page .lgr-bottom-banner, .lgr-policy-page .lgr-footer,
 .lgr-policy-page [id^="chat-"], .lgr-policy-page .lgr-policy-top { display: none !important; }
 .lgr-policy-page .lgr-policy-header { padding: 0; background: #fff; border: 0; }
 .lgr-policy-page .lgr-policy-header__grid, .lgr-policy-page .lgr-policy-layout { display: block; }
 .lgr-policy-page .lgr-wrap { width: 100%; max-width: none; margin: 0; }
 .lgr-policy-page .lgr-policy-document { border: 0; padding: 0; font-size: 10pt; }
 .lgr-policy-page .lgr-policy-document h2, .lgr-policy-page .lgr-policy-document h3 { break-after: avoid; }
 .lgr-policy-page .lgr-policy-document p, .lgr-policy-page .lgr-policy-document li { orphans: 3; widows: 3; }
}
