/* Shared section structure and controls; individual designs live in paragraph--*.css. */
.oles-section { position: relative; padding-block: var(--section-space); scroll-margin-top: 2rem; }
.oles-section *, .oles-section *::before, .oles-section *::after { box-sizing: border-box; }
.oles-inner { width: min(calc(100% - 2 * var(--page-gutter)), var(--content-width)); margin-inline: auto; }
.oles-intro { max-width: var(--reading-width); margin-inline: auto; text-align: center; }
#main-wrapper .oles-title { font-family: var(--font-heading); font-size: var(--type-heading); line-height: var(--leading-heading); text-transform: uppercase; font-weight: 400; text-wrap: balance; overflow-wrap: anywhere; margin: 0; }
.oles-title strong { font-weight: inherit; color: var(--oles-green); }
.oles-title em { font-style: normal; }
#main-wrapper .oles-title p { margin: 0; }
#main-wrapper .oles-intro > * + * { margin-block-start: var(--space-4); }
.oles-label { font-weight: 700; font-size: var(--type-body); line-height: 1.35; }
.oles-intro .oles-label { display: inline-block; border-bottom: 3px solid var(--oles-green); padding-bottom: var(--space-1); }
.oles-copy { overflow-wrap: anywhere; }
#main-wrapper .oles-copy > :last-child, #main-wrapper .oles-copy .field__item > :last-child { margin-bottom: 0; }
.oles-tone-cream { background: var(--oles-cream); color: var(--oles-ink); }
.oles-tone-brown { background: var(--oles-brown); color: var(--oles-cream); }
.oles-tone-dark { background: var(--oles-dark); color: var(--oles-cream); }
.oles-tone-gold { background: var(--oles-gold); color: var(--oles-ink); }
.oles-tone-brown .oles-title strong, .oles-tone-dark .oles-title strong, .oles-tone-gold .oles-title strong { color: inherit; }
#main-wrapper .oles-tone-brown a:not(.oles-button), #main-wrapper .oles-tone-dark a:not(.oles-button) { color: var(--oles-cream); }
.oles-media img { display: block; width: 100%; height: auto; }
.oles-media .field, .oles-media .field__item, .oles-media article { margin: 0; }
.oles-media .field--type-image { float: none; width: 100%; }
.oles-section > .oles-inner > .oles-intro:not(:empty):not(:last-child) { margin-bottom: var(--space-6); }
.oles-carousel-controls { display: flex; align-items: center; justify-content: center; gap: var(--space-3); margin-top: var(--space-4); }
.oles-carousel-controls button { width: 5rem; min-height: 48px; border: 0; background: transparent; color: var(--oles-green); font-size: 0; }
.oles-carousel-controls button::before { content: ''; display: block; width: 100%; height: 1.5rem; background: currentColor; mask: url('../images/carousel-arrow.svg') center / contain no-repeat; }
.oles-carousel-controls button:first-child::before { transform: rotate(180deg); }
.oles-carousel-controls button:disabled { opacity: .35; }
.oles-carousel-controls span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.oles-section [hidden] { display: none !important; }
.oles-row--section-heading + .oles-row--image-text > .oles-section { padding-top: 0; }
.oles-row:has(> .oles-tone-cream) + .oles-row > .oles-tone-cream { padding-top: 0; }
@media (max-width: 767px) { .oles-section > .oles-inner > .oles-intro:not(:empty):not(:last-child) { margin-bottom: var(--space-4); } }
