/* One area map shared by layout selection, color sample and website. */
body.layout-sidebar{--cv-menu-width:190px}
/* Modern and Classic span the viewport rather than the shared 1300px page frame. */
.layout-modern .web-shell,.layout-classic .web-shell{width:100%;max-width:none;margin:0;padding:0}
.layout-diagram.sidebar{--cv-menu-width:45px}
.layout-classic,.layout-rounded,.layout-diagram.classic,.layout-diagram.rounded{
 --cv-columns:minmax(0,3fr) minmax(0,1fr);
 --cv-areas:"menu menu" "hero hero" "main aside" "categories aside" "booking aside" "footer footer";
}
.layout-modern,.layout-diagram.modern{
 --cv-columns:minmax(0,1fr);
 --cv-areas:"menu" "hero" "main" "categories" "booking" "footer";
}
.layout-sidebar,.layout-diagram.sidebar{
 --cv-columns:var(--cv-menu-width,45px) minmax(0,3fr) minmax(0,1fr);
 --cv-areas:"menu hero hero" "menu main aside" "menu categories aside" "menu booking aside" "menu footer footer";
}
.layout-diagram,.color-preview .color-layout{
 grid-template-columns:var(--cv-columns);
 grid-template-areas:var(--cv-areas);
 grid-template-rows:24px 35px 76px 26px 26px 25px;
}
.layout-diagram.sidebar{grid-template-rows:35px 76px 26px 26px 25px}
.color-preview .color-layout{grid-template-rows:38px 100px 130px 36px 36px 55px}
.color-preview .color-layout.sidebar{grid-template-columns:var(--cv-columns);grid-template-rows:100px 130px 36px 36px 55px}
.layout-diagram>.d-menu{grid-area:menu}
.layout-diagram>.d-hero{grid-area:hero}
.layout-diagram>.d-main{grid-area:main}
.layout-diagram>.d-aside{grid-area:aside}
.layout-diagram>.d-category{grid-area:categories}
.layout-diagram>.d-booking{grid-area:booking}
.layout-diagram>.d-footer{grid-area:footer}
.web-shell,.layout-sidebar .web-shell{
 --cv-menu-width:190px;
 display:grid;grid-template-columns:var(--cv-columns);grid-template-areas:var(--cv-areas);
 grid-template-rows:auto;gap:0;
}
.web-content,.web-columns,.layout-sidebar .web-columns,.layout-modern .web-columns,.web-columns>main{display:contents}
.web-menu{grid-area:menu;min-width:0}
.hero{grid-area:hero;min-width:0}
.main-content{grid-area:main}
.categories{grid-area:categories}
.booking{grid-area:booking;margin:0}
.web-aside{grid-area:aside;min-width:0}
.web-footer{grid-area:footer;min-width:0}
.web-menu{overflow-wrap:anywhere}
.web-menu select{width:100%;min-width:0}
.web-shell .hero,.layout-sidebar .web-shell .hero{padding:28px 30px;text-align:center;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:8px}
.web-shell .hero h1{font-size:clamp(24px,3vw,36px);font-weight:600;letter-spacing:0;margin:0;color:var(--hero-text)}
.web-shell .hero .site-slogan{font-size:16px;letter-spacing:0;margin:0;line-height:1.5;color:var(--hero-subtitle)}
.main-content,.categories,.booking{background:var(--main-bg);color:var(--main-text);min-width:0;padding:30px}
.main-content:empty{padding:0}
.layout-rounded .web-shell{gap:20px;padding:20px}
/* Rounded content cards follow their own content height, not adjacent grid areas. */
.layout-rounded .main-content,.layout-rounded .web-aside,.layout-rounded .categories,.layout-rounded .booking{align-self:start}
.layout-rounded .main-content:empty,.layout-rounded .web-aside:empty{display:none}
.layout-rounded .main-content,.layout-rounded .categories,.layout-rounded .booking,.layout-rounded .hero,.layout-rounded .web-footer{border-radius:24px}
@media(max-width:800px){
 .web-shell,.layout-sidebar .web-shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"menu" "hero" "main" "categories" "booking" "aside" "footer";width:100%}
 .layout-modern .web-shell{grid-template-areas:"menu" "hero" "main" "categories" "booking" "footer"}
 .main-content,.categories,.booking{padding:20px}
 .layout-rounded .web-shell{padding:12px;gap:12px}
}
.web-shell .hero{position:relative;overflow:hidden;isolation:isolate}
.web-shell .hero>.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.web-shell .hero:has(.hero-photo){min-height:clamp(220px,28vw,380px);align-items:center}
.web-shell .hero:has(.hero-photo)>:not(img){background:transparent;border-radius:4px;padding:5px 12px;max-width:100%;overflow-wrap:anywhere}

.layout-diagram.booking-in-aside.classic,.layout-diagram.booking-in-aside.rounded{
 --cv-areas:"menu menu" "hero hero" "main aside" "categories booking" "categories booking" "footer footer";
}
.layout-diagram.booking-in-aside.sidebar{
 --cv-areas:"menu hero hero" "menu main aside" "menu categories booking" "menu categories booking" "menu footer footer";
}
.layout-diagram.booking-in-aside .d-booking{min-width:0;overflow-wrap:anywhere}
.web-shell .booking-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 24px;border:0;border-radius:10px;background:var(--cta-bg,#4d736d);color:var(--cta-text,#fff);font-weight:600;text-decoration:none;font-size:16px;align-self:start}.booking-cta:hover{filter:brightness(.93)}.booking-cta:focus-visible{outline:3px solid currentColor;outline-offset:3px}.web-aside>.booking-cta,.web-footer>.booking-cta{margin-bottom:20px}
@media(min-width:801px){body:not(.layout-sidebar) .web-menu .booking-cta{margin-left:auto;flex-shrink:0}}

/* Four footer areas, aligned to the main content with room for outer actions. */
.web-footer.footer-four{display:grid;grid-template-columns:var(--footer-left,160px) minmax(0,1fr) minmax(0,1fr) var(--footer-right,160px);gap:0;width:100%;padding:0;border-radius:0;margin:0}
.footer-four .footer-area{min-width:0;padding:24px 18px;overflow-wrap:anywhere}
.footer-four h2{font-size:17px;margin:0 0 14px}
.footer-four p{margin:8px 0;line-height:1.6}
.footer-four .footer-area-1{padding-left:0;align-self:stretch;display:flex;align-items:flex-start}
.footer-four .footer-banner{max-width:100%;align-self:flex-start}
.footer-four .footer-banner .content-block{padding:12px}
.footer-four .footer-area-4{display:flex;justify-content:center;align-items:flex-start}
.footer-four .booking-cta{display:inline-flex;padding:12px 20px;border-radius:10px;background:var(--cta-bg,#4d736d);color:var(--cta-text,#fff);text-decoration:none;font-weight:600}
@media(max-width:800px){.web-footer.footer-four{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-four .footer-area-1{grid-column:1/-1}.footer-four .footer-area-4{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:480px){.web-footer.footer-four{grid-template-columns:minmax(0,1fr)}}
.web-footer.footer-four{font-size:13px}.footer-four h2{font-size:15px}.footer-four .footer-banner h2{font-size:15px}.footer-four .booking-cta{font-size:14px}
.web-footer.footer-four{font-size:12px}.footer-four h2{font-size:14px;font-weight:700;margin-bottom:12px}.footer-contact-name{display:block;margin-bottom:5px}.footer-contact-table{width:100%;border-collapse:collapse;font:inherit;line-height:1.55}.footer-contact-table th,.footer-contact-table td{text-align:left;vertical-align:top;padding:3px 0;border:0}.footer-contact-table th{width:1%;white-space:nowrap;font-weight:700;padding-right:12px}.footer-contact-table td{overflow-wrap:anywhere}
@media(min-width:801px){.layout-sidebar .web-menu>.menu-footer-banner{margin-top:auto;width:100%}.layout-sidebar .menu-footer-banner .content-block{padding:12px;overflow-wrap:anywhere}.layout-sidebar .menu-footer-banner h2{font-size:15px}}@media(max-width:800px){.web-menu>.menu-footer-banner{order:6;flex-basis:100%;width:100%}.web-menu.menu-ready:not(.menu-open)>.menu-footer-banner{display:none}}
.top-banner .top-banner-line{white-space:nowrap;overflow-x:auto;margin:0;font-size:14px;line-height:1.5;font-weight:400}.top-banner-line strong{font-weight:700}.web-footer.footer-four .footer-banner{margin:0;max-width:100%;min-width:0;box-sizing:border-box}.footer-four .footer-banner .content-block{max-width:100%;overflow-wrap:anywhere}
.footer-four .footer-area-1{padding:24px 18px;justify-content:center}.web-footer.footer-four .footer-area-1 .footer-banner{margin:0;max-width:100%}
.footer-four .footer-area-2,.footer-four .footer-area-3{margin:18px 8px;padding:16px;border:0;border-radius:0;background:transparent;box-shadow:none;align-self:stretch}
.category-grid article,.pitch-results article{border:0;box-shadow:none}

.web-footer.footer-four{border-top:1px solid var(--main-line)}

.campiverse-credit{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:2px 16px;width:100%;padding:5px 16px;background:#333;color:#f5f5f5;border-top:1px solid var(--main-line);font-size:11px;line-height:1.4;text-align:center}.campiverse-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}.campiverse-credit>span:first-child{white-space:nowrap}

.footer-four .setup-icon{display:inline-block;width:14px;height:14px;vertical-align:-3px;margin-right:5px;flex-shrink:0;stroke:currentColor}.footer-four h2 .setup-icon{width:17px;height:17px;vertical-align:-3px}

.categories{background:var(--category-bg,var(--main-bg));color:var(--category-text,var(--main-text))}
