/* Compact, configuration-driven home-page sections. */
body>main>.hero{min-height:560px;padding-block:54px}
.hero-carousel{position:relative;isolation:isolate;display:block!important;overflow:hidden;padding:0!important;min-height:clamp(500px,62vw,680px)!important;background:#0c3732!important;color:#fff}
.hero-slides,.hero-slide{position:absolute;inset:0;width:100%;height:100%}
.hero-slide{object-fit:cover;opacity:0;transform:scale(1.025);transition:opacity .9s ease,transform 6.5s linear}
.hero-slide.active{opacity:1;transform:scale(1.08)}
.hero-carousel:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(5,35,31,.68) 0%,rgba(5,35,31,.43) 43%,rgba(5,35,31,.08) 76%,transparent 100%)}
.hero-carousel .hero-slides{z-index:-2}
.hero-carousel .hero-copy{position:relative;z-index:1;width:min(760px,74%);padding:clamp(52px,7vw,92px) 7vw}
.hero-carousel h1{color:#fff;margin:12px 0 24px;text-shadow:0 2px 22px rgba(0,0,0,.24)}
.hero-carousel h1 em{color:#f2c36e}
.hero-carousel .eyebrow{color:#f2c36e}
.hero-carousel .lede{color:#fff;max-width:690px}
.hero-carousel .metrics{margin-top:34px;max-width:590px;color:#fff}
.hero-carousel-controls{position:absolute;z-index:3;inset:50% 18px auto;transform:translateY(-50%);display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.hero-carousel-controls>button{width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(3,39,34,.38);color:#fff;font-size:20px;cursor:pointer}
.hero-carousel-controls>button{pointer-events:auto}.hero-dots{position:absolute;left:50%;top:224px;transform:translateX(-50%);display:flex;gap:8px;pointer-events:auto}.hero-dots button{width:9px;height:9px;padding:0;border:1px solid #fff;border-radius:50%;background:transparent;cursor:pointer}.hero-dots button.active{background:#f2b64f;border-color:#f2b64f}
body>main>.section{padding:36px 4vw}
body>main>.section .heading{margin-bottom:22px}
body>main>.section+.section{margin-top:0}
#categories,#suppliers{align-self:stretch;min-height:100%}
.split .event-list article{padding:12px 0;gap:14px}
.split .event-list article b{line-height:1.25}
.split .event-list article span{line-height:1.3;margin-top:3px}
.dynamic-home-section{padding:clamp(22px,3vw,44px)}
.dynamic-home-section .product-grid{gap:18px}
.dynamic-home-section article{border:1px solid #cbdad5;padding:18px;min-width:0}
.dynamic-home-section article img{display:block;width:100%;max-height:420px;object-fit:cover;margin-bottom:14px}
.dynamic-home-section.display-carousel .product-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth}
.dynamic-home-section.display-carousel article{flex:0 0 min(82vw,760px);scroll-snap-align:start}

/* Products use the same grid contract as the other CMS sections. */
#categories .product-grid{padding:0;gap:16px}
#categories .product-grid article{min-width:0;border:1px solid var(--line);padding:16px;background:#fff;display:flex;flex-direction:column}
#categories .product-grid article>a:first-child{display:block;overflow:hidden;margin-bottom:12px;aspect-ratio:16/10;height:auto;max-height:210px;background:#e4eeeb}
#categories .product-image,#categories .product-grid article>a:first-child img{display:block;width:100%;height:100%;aspect-ratio:auto;max-height:none;object-fit:cover;object-position:center}
#categories .product-grid article>a:first-child .product-art{width:100%;height:100%;min-height:0}
#categories .product-grid h3{overflow-wrap:anywhere}
#categories .product-summary{margin-bottom:0}

#suppliers .supplier-grid{display:grid;grid-template-columns:repeat(var(--section-item-columns,1),minmax(0,1fr));gap:16px}
#suppliers .supplier-grid article{border:1px solid var(--line);padding:16px;background:#fff;display:grid;grid-template-columns:minmax(0,180px) 1fr;gap:18px;align-items:center}
#suppliers .supplier-image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
#suppliers .supplier-grid small{color:var(--green);font-weight:800;letter-spacing:.06em}
#suppliers .supplier-grid h3{font:700 24px Georgia,serif;margin:6px 0}
#suppliers .supplier-grid p{margin:4px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
@media(max-width:700px){#suppliers .supplier-grid article{grid-template-columns:1fr}}

/* Ported section-rendering contract: the saved display mode and visibility
   switches change generated markup and layout, not merely the editor preview. */
.section.display-list{padding-block:22px}
.section.display-list .heading{margin-bottom:10px}
.section.display-list .heading h2{font-size:clamp(28px,3vw,42px);line-height:1.05;margin:0}
.section.display-list .product-grid,.section.display-list .supplier-grid,.section.display-list .event-list,.section.display-list .opportunity-grid,.section.display-list .travel-cards{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
.section.display-list article{display:block!important;border:0!important;border-bottom:1px solid var(--line)!important;padding:10px 0!important;min-height:0!important;background:transparent!important}
.section.display-list article h3{font:700 20px/1.25 Arial,sans-serif!important;margin:3px 0!important}
.section.display-list article p{margin:3px 0!important;line-height:1.35!important}
.section.display-list article time{display:inline-block;color:#687d78;font-size:14px;margin-right:10px}
.section.without-thumbnail article>a:first-child:has(.product-art),.section.without-thumbnail article>a:first-child:has(img){display:none!important}

/* The final call-to-action should close the page lightly, not appear as a
   near-black empty panel. Important is intentional because block colours are
   generated after linked styles from the administrator's saved theme. */
body>main>.partner{background:linear-gradient(135deg,#edf5f1 0%,#f8f2e7 100%)!important;color:#102b2b!important;padding:48px 8vw!important;border-top:1px solid var(--line);border-bottom:4px solid var(--gold)}
body>main>.partner .eyebrow{color:var(--green)!important}
body>main>.partner h2{font-size:clamp(34px,4vw,58px);margin:6px 0 12px}
body>main>.partner p{color:#49635f!important;margin:12px auto 22px}
body>main>.partner .primary{background:var(--gold)!important;color:#102b2b!important}

@media(max-width:570px){body>main>.hero{min-height:500px!important}.hero-carousel .hero-copy{width:100%;padding:54px 24px 90px}.hero-carousel:after{background:rgba(5,35,31,.72)}.hero-carousel .metrics{grid-template-columns:auto auto auto auto}.hero-carousel-controls{right:22px;bottom:20px}body>main>.section{padding:28px 22px}body>main>.section .heading>div{min-width:0;max-width:100%}body>main>.section .heading h2,body>main>.section .heading .eyebrow{max-width:100%;overflow-wrap:anywhere;word-break:normal}body>main>.partner{padding:34px 22px!important}}

/* Hero is a configurable 9/12 content block with a 3/12 paid-feature rail. */
body>main>.hero-carousel{grid-column:span var(--hero-cols,9)!important;min-height:510px!important;height:510px}
.hero-carousel .hero-slide{display:block;margin:0;padding:0;border:0;background:#0b342f}
.hero-carousel .hero-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-carousel .hero-slide .hero-copy{position:absolute;z-index:2;left:0;bottom:0;width:min(720px,78%);padding:42px 5vw 48px;background:linear-gradient(90deg,rgba(4,35,31,.82),rgba(4,35,31,.48) 72%,transparent)}
.hero-carousel .hero-slide h1{color:#fff!important;font-size:clamp(38px,4.2vw,68px);line-height:1.02;margin:8px 0 14px;letter-spacing:-.035em}
.hero-carousel .hero-slide .lede{color:#fff!important;font-size:18px;line-height:1.55;margin:0}
.hero-carousel .hero-slide .eyebrow{color:#f2c36e!important;margin:0}
.featured-rail{grid-column:span 3;order:11;min-width:0;height:510px;padding:18px 24px;background:#f4eee1;border-left:1px solid var(--line);overflow:hidden}
.featured-rail-heading{padding-bottom:12px;border-bottom:1px solid var(--line)}
.featured-rail h2{font-size:clamp(25px,2.1vw,36px);margin:3px 0}.featured-rail .eyebrow{margin:0}
.featured-rail-list article{height:116px;padding:10px 0;border-bottom:1px solid var(--line);box-sizing:border-box;overflow:hidden}
.featured-rail-list small{color:var(--green);font-weight:800}.featured-rail-list h3{font:700 17px/1.18 Georgia,serif;margin:2px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.featured-rail-list h3 a{color:var(--ink)}.featured-rail-list p{font-size:12px;line-height:1.25;color:#5b706b;margin:3px 0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
@media(max-width:900px){body>main>.hero-carousel{grid-column:span 12!important;height:auto;min-height:0!important;background:#fff!important;color:var(--ink)}.hero-carousel .hero-slides{position:relative;height:auto}.hero-carousel .hero-slide{position:relative;height:auto;display:none;opacity:1;transform:none;background:#fff}.hero-carousel .hero-slide.active{display:block;transform:none}.hero-carousel .hero-slide>img{position:relative;display:block;width:100%;height:auto;aspect-ratio:16/8;object-fit:cover;filter:none}.hero-carousel .hero-slide .hero-copy{position:relative;left:auto;bottom:auto;width:100%;padding:24px 28px 34px;background:#fff}.hero-carousel .hero-slide h1,.hero-carousel .hero-slide .lede{color:var(--ink)!important;text-shadow:none}.hero-carousel .hero-slide .eyebrow{color:var(--green)!important}.hero-carousel:after{display:none}.featured-rail{grid-column:span 12!important;height:auto;display:grid!important;grid-template-columns:180px 1fr;gap:22px;padding:22px 28px}.featured-rail-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.featured-rail-list article{padding:0;border-bottom:0}.hero-carousel-controls{inset:25% 12px auto}.hero-dots{top:auto;bottom:-190px}}
@media(max-width:570px){.hero-carousel .hero-slide>img{aspect-ratio:16/10}.hero-carousel .hero-slide .hero-copy{padding:18px 20px 24px}.hero-carousel .hero-slide h1{font-size:32px;margin-bottom:0}.hero-carousel .hero-slide .lede{display:none}.hero-carousel-controls{inset:29% 10px auto}.hero-dots{display:none}.featured-rail{display:block;padding:22px}.featured-rail-list{grid-template-columns:1fr}.featured-rail-list article{padding:12px 0;border-bottom:1px solid var(--line)}}
/* Keep promotional photography vivid while preserving enough contrast for light copy. */
.hero-slide > img { filter: brightness(1.08) saturate(1.04); }
@media (max-width:900px){.hero-dots{display:none!important}}
