.ladl-offer-mascot { height: 9rem; margin: 0; pointer-events: none; position: absolute; right: max(0px, calc((100vw - 1200px) / 2 - 1rem)); top: 1.5rem; width: 9rem; }

.ladl-offer-mascot img { display: block; height: 100%; object-fit: contain; width: 100%; }

.ladl-offer-breadcrumb { align-items: center; color: rgba(247, 240, 229, .85); display: flex; flex-wrap: nowrap; font-size: .8125rem; gap: .25rem .75rem; letter-spacing: .16em; line-height: 1.2; margin: 0; text-transform: uppercase; }

.ladl-offer-breadcrumb a { color: inherit; text-decoration: none; }

.ladl-offer-breadcrumb a:hover { text-decoration: underline; }

.ladl-offer-body { align-items: start; display: grid; gap: 2.5rem; grid-template-columns: minmax(0, 1fr) 20rem; margin: 0 auto; max-width: 1200px; overflow: visible; padding: var(--ladl-section-y) 1.25rem; }

.ladl-offer-copy { grid-column: 1; grid-row: 1; margin-block-start: 0; max-width: none; min-width: 0; width: 100%; }

.ladl-offer-body > .ladl-offer-copy,
.ladl-offer-body > .ladl-offer-facts { margin-block-start: 0; }

.ladl-offer-copy > .wp-block-post-content { font-size: 1.0625rem; line-height: 1.65; margin-block: 0; max-width: none; width: 100%; }

.ladl-offer-copy > .wp-block-post-content > :first-child { margin-block-start: 0; }

.ladl-offer-copy h2 { font-size: var(--wp--preset--font-size--section); line-height: 1.15; margin-top: 2.5rem; }

.ladl-offer-copy .wp-block-post-content > h3 { font-size: var(--wp--preset--font-size--sous-titre); }

.ladl-offer-facts {
  align-self: start;
  background: #fff;
  border: 1px solid var(--ladl-border);
  border-radius: 1rem;
  box-sizing: border-box;
  grid-column: 2;
  grid-row: 1;
  max-height: calc(100dvh - var(--ladl-admin-bar) - var(--ladl-header-h) - 1rem);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 1.25rem 1.5rem;
  position: sticky;
  top: calc(var(--ladl-admin-bar) + var(--ladl-header-h) + .5rem);
  z-index: 4;
}

.ladl-offer-facts .ladl-offer-facts-title { align-items: center; color: var(--ladl-english); display: flex; font-family: var(--wp--preset--font-family--source-sans-3); font-size: .8125rem; font-weight: 600; gap: .5rem; letter-spacing: .16em; line-height: 1.2; margin: 0 0 1.25rem; text-transform: uppercase; }

.ladl-offer-facts .ladl-offer-facts-title::before { background: var(--wp--preset--color--or); content: ''; display: block; flex: 0 0 1.25rem; height: 1rem; mask: url('../../icons/bowler-hat.svg') center / contain no-repeat; }

.ladl-offer-facts p { font-size: .875rem; line-height: 1.5; }

.ladl-offer-facts dl { margin: 0; }

.ladl-offer-facts dl > div { padding: .5rem 0; }

.ladl-offer-facts dl > div + div { border-top: 1px solid var(--ladl-border); }

.ladl-offer-facts dt { color: #65594d; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.ladl-offer-facts dd { font-size: .9375rem; margin: .3rem 0 0; }

.ladl-offer-facts-missing dd { color: #65594d; }

.ladl-offer-mentions {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 1200px;
  padding: 0 1.25rem var(--ladl-section-y);
}

.ladl-offer-mentions h2 {
  color: var(--ladl-brown);
  font-size: var(--wp--preset--font-size--section);
  line-height: 1.15;
  margin: 0 0 1.5rem;
}

/* Same card as the city page address card: white, 1px border, 1rem radius. */
.ladl-offer-mentions-grid { align-items: stretch; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); }

.ladl-offer-mentions-card { background: #fff; border: 1px solid var(--ladl-border); border-radius: 1rem; box-sizing: border-box; padding: 1.5rem; }

.ladl-offer-mentions-card h3 { color: var(--ladl-english); font-size: 1.25rem; line-height: 1.3; margin: 0 0 .5rem; }

.ladl-offer-mentions dl { margin: 0; }

.ladl-offer-mentions dl > div { padding: .75rem 0; }

.ladl-offer-mentions dl > div + div { border-top: 1px solid var(--ladl-border); }

.ladl-offer-mentions dt { color: #65594d; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

.ladl-offer-mentions dd { font-size: 1rem; line-height: 1.55; margin: .3rem 0 0; }

.ladl-offer-mentions-missing dd { color: #65594d; }

.ladl-offer-mentions-note { color: #65594d; font-size: .9375rem; line-height: 1.55; margin: 1.25rem 0 0; max-width: 48rem; }

@media (min-width: 768px) {
  .ladl-offer-mentions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ladl-offer-facts-badges { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 1rem 0 0; padding: 0; }

.ladl-offer-facts-badges li { background: color-mix(in oklab, var(--ladl-sand) 55%, var(--ladl-ivory)); border-radius: 999px; color: var(--ladl-english); font-size: .75rem; font-weight: 700; padding: .375rem .75rem; }

.ladl-offer-facts .wp-block-buttons,
.ladl-offer-facts-actions {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin-block-start: 1.5rem;
  width: 100%;
}

.ladl-offer-facts .wp-block-button,
.ladl-offer-facts .wp-block-button__link {
  width: 100%;
}

.ladl-offer-facts .wp-block-button__link { font-size: .9375rem; }

.ladl-offer-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.25rem; max-width: 1200px; margin: 1.5rem auto 0; }

.ladl-offer-card { background: var(--ladl-ivory); border: 1px solid var(--ladl-border); border-radius: 1.25rem; padding: 1.5rem; position: relative; transition: border-color .18s cubic-bezier(.2, .8, .2, 1); }

.ladl-offer-card:hover { border-color: var(--ladl-canard); }

.ladl-offer-card:has(h3 a:focus-visible) { outline: 2px solid var(--ladl-english); outline-offset: 3px; }

.ladl-offer-card > p:not([class]) { -webkit-box-orient: vertical; -webkit-line-clamp: 3; display: -webkit-box; line-clamp: 3; margin: 0; overflow: hidden; }

.ladl-offer-card h3 { font-size: 1.375rem; line-height: 1.25; margin: .5rem 0 .75rem; }

.ladl-offer-card h3 a { color: var(--ladl-english); text-decoration: none; }

/* The whole card is the link target; the title link carries the name and the focus. */
.ladl-offer-card h3 a::after { content: ''; inset: 0; position: absolute; }

.ladl-offer-card h3 a:focus-visible { outline: none; }

.ladl-offer-card:hover h3 a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }

@media (prefers-reduced-motion: reduce) {
  .ladl-offer-card { transition: none; }
}

.ladl-offer-card-kind { color: var(--ladl-english); font-size: .75rem; font-weight: 700; letter-spacing: .08em; margin: 0; text-transform: uppercase; }

.ladl-offer-card-preview { color: var(--ladl-brown); font-size: .875rem; font-weight: 700; }

@media (min-width: 1024px) {
.ladl-offer-mascot { height: 11rem; width: 11rem; }
.ladl-offer-body { gap: 3.5rem; }
}

@media (min-width: 1280px) {
.ladl-offer-mascot { height: 13rem; right: .5rem; width: 13rem; }
}

@media (min-width: 768px) {
.ladl-offer-body { padding: var(--ladl-section-y) 2rem; }
.ladl-offer-mentions { padding-inline: 2rem; }
}

@media (max-width: 1023px) {
.ladl-offer-body { display: flex; flex-direction: column; }
/* In a single column the sticky panel would ride over the offer text for the whole scroll. */
.ladl-offer-facts { max-height: none; overflow: visible; position: static; width: 100%; }
.ladl-offer-copy { min-width: 0; width: 100%; }
}

@media (min-width: 1024px) and (max-width: 1279px) {
.ladl-offer-facts { max-height: calc(100dvh - var(--ladl-admin-bar) - var(--ladl-header-h) - 5.5rem); }
}

@media (max-width: 600px) {
.ladl-offer-mascot { display: none; }
.ladl-offer-breadcrumb { flex-wrap: wrap; }
.ladl-offer-breadcrumb [aria-current="page"] { flex-basis: 100%; }
.ladl-offer-body { gap: 2rem; padding: var(--ladl-section-y) 1.25rem; }
}

/* City pages (page-centre template) reuse the offer hero; their body is one wide column. */
.ladl-centre-body { box-sizing: border-box; margin: 0 auto; max-width: 1200px; padding: var(--ladl-section-y) 1.25rem; width: 100%; }

.ladl-centre-body > .wp-block-post-content { font-size: 1.0625rem; line-height: 1.65; margin-block: 0; max-width: none; }

.ladl-centre-intro { font-size: 1.25rem; line-height: 1.55; margin-block: 0; max-width: 48rem; }

.ladl-centre-section { margin-block-start: 3rem; }

.ladl-centre-section > h2 { font-size: var(--wp--preset--font-size--section); line-height: 1.15; margin: 0 0 1.5rem; }

.ladl-centre-infos { align-items: start; display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }

.ladl-centre-infos > .ladl-centre-card { background: #fff; border: 1px solid var(--ladl-border); border-radius: 1rem; box-sizing: border-box; margin-block-start: 0; padding: 1.5rem; }

.ladl-centre-card > h3 { color: var(--ladl-english); font-size: 1.25rem; line-height: 1.3; margin: 0; }

.ladl-centre-card > h3 + p { margin-block: .5rem 0; }

.ladl-centre-card > p + h3 { margin-block-start: 1.5rem; }

.ladl-centre-infos > .ladl-centre-map { border-radius: 1rem; margin-block-start: 0; min-height: 16rem; overflow: hidden; }

.ladl-centre-map > * { margin-block: 0; }

.ladl-centre-map:empty { display: none; }

/* Empty sections are not rendered (ladl_skip_empty_centre_section); an empty intro is hidden. */
body:not(.editor-styles-wrapper) .ladl-centre-intro:empty { display: none; }

@media (min-width: 768px) {
  .ladl-centre-infos:has(> .ladl-centre-map) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
