.elementor-kit-4{--e-global-color-primary:#1F5C8B;--e-global-color-secondary:#37424A;--e-global-color-text:#5F6B73;--e-global-color-accent:#0F6E99;--e-global-color-ec1b4221:#F4F8FA;--e-global-color-95eb24e6:#FFFFFF;--e-global-color-32f49de1:#4C9A5E;--e-global-color-c295a65d:#E4EAEE;--e-global-color-c559891b:#16456B;--e-global-color-gppaleblue:#CAE3E8;--e-global-typography-primary-font-family:"Poppins";--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.2em;--e-global-typography-primary-letter-spacing:-0.01em;--e-global-typography-secondary-font-family:"Poppins";--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.35em;--e-global-typography-secondary-letter-spacing:-0.005em;--e-global-typography-text-font-family:"Open Sans";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Poppins";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.3em;--e-global-typography-0d0b8d30-font-family:"Poppins";--e-global-typography-0d0b8d30-font-size:13px;--e-global-typography-0d0b8d30-font-weight:600;--e-global-typography-0d0b8d30-text-transform:uppercase;--e-global-typography-0d0b8d30-line-height:1.4em;--e-global-typography-0d0b8d30-letter-spacing:0.18em;--e-global-typography-6d785fe1-font-family:"Open Sans";--e-global-typography-6d785fe1-font-size:13.5px;--e-global-typography-6d785fe1-font-weight:400;--e-global-typography-6d785fe1-text-transform:none;--e-global-typography-6d785fe1-line-height:1.6em;--e-global-typography-6d785fe1-letter-spacing:0em;--e-global-typography-92d8b5f4-font-family:"Poppins";--e-global-typography-92d8b5f4-font-size:14px;--e-global-typography-92d8b5f4-font-weight:600;--e-global-typography-92d8b5f4-text-transform:uppercase;--e-global-typography-92d8b5f4-line-height:1em;--e-global-typography-92d8b5f4-letter-spacing:0.06em;--e-global-typography-bfae8c60-font-family:"Poppins";--e-global-typography-bfae8c60-font-size:18px;--e-global-typography-bfae8c60-font-weight:600;--e-global-typography-bfae8c60-line-height:1.35em;--e-global-typography-bfae8c60-letter-spacing:0em;--e-global-typography-1d3b6f71-font-family:"Poppins";--e-global-typography-1d3b6f71-font-size:clamp(2.2rem, 4.2vw, 3.625rem);--e-global-typography-1d3b6f71-font-weight:700;--e-global-typography-1d3b6f71-line-height:1.15em;--e-global-typography-1d3b6f71-letter-spacing:-0.012em;background-color:#FFFFFF;color:#5F6B73;font-family:"Open Sans", Sans-serif;font-size:16px;font-weight:400;line-height:1.65em;}.elementor-kit-4 button,.elementor-kit-4 input[type="button"],.elementor-kit-4 input[type="submit"],.elementor-kit-4 .elementor-button{background-color:#0F6E99;font-family:"Poppins", Sans-serif;font-size:14px;font-weight:600;text-transform:uppercase;line-height:1em;letter-spacing:0.06em;color:#FFFFFF;border-radius:8px 8px 8px 8px;padding:16px 30px 16px 30px;}.elementor-kit-4 button:hover,.elementor-kit-4 button:focus,.elementor-kit-4 input[type="button"]:hover,.elementor-kit-4 input[type="button"]:focus,.elementor-kit-4 input[type="submit"]:hover,.elementor-kit-4 input[type="submit"]:focus,.elementor-kit-4 .elementor-button:hover,.elementor-kit-4 .elementor-button:focus{background-color:#0C5A7D;color:#FFFFFF;border-radius:8px 8px 8px 8px;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-kit-4 p{margin-block-end:1em;}.elementor-kit-4 a{color:#1F5C8B;}.elementor-kit-4 a:hover{color:#0F6E99;}.elementor-kit-4 h1{color:#1F5C8B;font-family:"Poppins", Sans-serif;font-size:clamp(2.2rem, 4.2vw, 3.625rem);font-weight:700;line-height:1.15em;letter-spacing:-0.012em;}.elementor-kit-4 h2{color:#1F5C8B;font-family:"Poppins", Sans-serif;font-size:clamp(1.9rem, 2.8vw, 2.5rem);font-weight:700;line-height:1.2em;letter-spacing:-0.01em;}.elementor-kit-4 h3{color:#1F5C8B;font-family:"Poppins", Sans-serif;font-size:22px;font-weight:600;line-height:1.3em;letter-spacing:0em;}.elementor-kit-4 h4{color:#1F5C8B;font-family:"Poppins", Sans-serif;font-size:18px;font-weight:600;line-height:1.35em;}.elementor-kit-4 h5{color:#37424A;font-family:"Poppins", Sans-serif;font-size:16px;font-weight:600;line-height:1.4em;}.elementor-kit-4 h6{color:#0F6E99;font-family:"Poppins", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.4em;letter-spacing:0.18em;}.elementor-kit-4 img{border-radius:16px 16px 16px 16px;}.elementor-kit-4 img:hover{border-radius:16px 16px 16px 16px;}.elementor-kit-4 label{color:#5F6B73;}.elementor-kit-4 input:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea,.elementor-kit-4 .elementor-field-textual{color:#37424A;background-color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#E4EAEE;border-radius:8px 8px 8px 8px;padding:14px 16px 14px 16px;}.elementor-kit-4 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-4 textarea:focus,.elementor-kit-4 .elementor-field-textual:focus{border-radius:8px 8px 8px 8px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Hello Elementor resets the heading widget's font-size, so the kit's h1-h6 scale
   never reaches .elementor-heading-title. Re-apply it here so headings inherit the
   scale by default and per-widget typography still overrides it. */
.elementor-widget-heading h1.elementor-heading-title{font-size:clamp(2.2rem,4.2vw,3.625rem);line-height:1.15em}
.elementor-widget-heading h2.elementor-heading-title{font-size:clamp(1.9rem,2.8vw,2.5rem);line-height:1.2em}
.elementor-widget-heading h3.elementor-heading-title{font-size:22px;line-height:1.3em}
.elementor-widget-heading h4.elementor-heading-title{font-size:18px;line-height:1.35em}
.elementor-widget-heading h5.elementor-heading-title{font-size:16px;line-height:1.4em}
.elementor-widget-heading h6.elementor-heading-title{font-size:13px;line-height:1.4em}

/* Sticky Header Effects makes the header transparent on EVERY page, which leaves
   the white nav invisible on any page that has no dark hero behind it. Every hero
   container carries the class .gp-hero; a page without one gets a solid header.
   Add .gp-hero to the hero container of any new page and this keeps working. */
body:not(:has(.gp-hero)) .she-header-transparent-yes{background-color:#1F5C8B !important;position:relative !important}
/* The sticky header is position:fixed and takes no space, which is right when it
   sits over a hero. Without one, give the space back so content is not underneath. */
body:not(:has(.gp-hero)) .elementor-location-header::before{content:'';display:block;height:84px}
@media(max-width:767px){body:not(:has(.gp-hero)) .elementor-location-header::before{height:80px}}

/* Links on dark grounds. The kit link colour is Marine #1F5C8B, which is the
   footer's own background, so footer links rendered at 1:1 contrast — invisible.
   Scope light link colours to the footer and the off-canvas popup. */
.elementor-location-footer a:not(.elementor-button):not(.elementor-item),
.elementor-location-popup a:not(.elementor-button):not(.elementor-item){color:#CAE3E8}
.elementor-location-footer a:not(.elementor-button):not(.elementor-item):hover,
.elementor-location-footer a:not(.elementor-button):not(.elementor-item):focus-visible,
.elementor-location-popup a:not(.elementor-button):not(.elementor-item):hover,
.elementor-location-popup a:not(.elementor-button):not(.elementor-item):focus-visible{color:#FFFFFF;text-decoration:underline}

/* The transparent header sits over hero photography, where a bright patch of sky
   drops white 14px nav text to ~3.1:1. Give the at-rest transparent header its own
   top-down scrim, taller than the bar so it fades out instead of ending on an edge.
   Sticky Header Effects drops .she-header-transparent-yes once scrolled past 60px,
   at which point the solid Marine background takes over and this rule stops applying. */
/* NOTE: do NOT set position on .she-header-transparent-yes — the plugin sets it to
   absolute and the width fix (left/right/width:100%) depends on that. Overriding it
   to relative collapses the header and wraps the nav onto two lines. The absolute
   header is already a containing block, so ::after anchors to it as-is. */
body:has(.gp-hero) .she-header-transparent-yes::after{content:'';position:absolute;left:0;right:0;top:0;height:200px;background:linear-gradient(to bottom,rgba(11,30,41,.66) 0%,rgba(11,30,41,.34) 45%,rgba(11,30,41,0) 100%);pointer-events:none;z-index:-1}

/* Hero legibility over photography. The flat 48-60% overlay dulls the whole photo
   and still left the 13px eyebrow and 17px hero copy at 2.5-4.4:1 against the
   brightest pixels (sky, sunlit grass). Add a centred vignette that darkens only
   the band the copy sits in, so corners and sky stay bright. Measured requirement
   was 28% extra with white hero copy; .34 centre gives headroom.
   .gp-hero--photo is only on heroes that actually have a background image — the six
   flat Marine placeholder heroes must not get a dark blob in the middle. */
.gp-hero--photo{position:relative}
.gp-hero--photo::after{content:none}
/* No overlays on heroes (Brian, 2026-10-06). Legibility comes from a soft text shadow on the copy instead of darkening the photo. */
.gp-hero--photo .elementor-heading-title,.gp-hero--photo p,.gp-hero--photo .elementor-widget-text-editor{text-shadow:0 1px 3px rgba(8,22,32,.45),0 2px 18px rgba(8,22,32,.40)}

/* Client-copy prose blocks (2026-09-30): lists, labels and links inside .gp-prose text editors */
.gp-prose p{margin:0 0 1em}
.gp-prose p:last-child{margin-bottom:0}
.gp-prose .gp-lbl{font-family:Poppins,sans-serif;font-weight:600;font-size:15px;color:#1F5C8B;margin:1.4em 0 .5em}
.gp-prose ul.gp-ticks{list-style:none;padding:0;margin:0 0 1.2em;columns:2;column-gap:32px}
.gp-card .gp-prose ul.gp-ticks{columns:1}
.gp-prose ul.gp-ticks li{position:relative;padding-left:26px;margin:0 0 8px;break-inside:avoid}
.gp-prose ul.gp-ticks li::before{content:'';position:absolute;left:2px;top:.5em;width:11px;height:6px;border-left:2px solid #1F5C8B;border-bottom:2px solid #1F5C8B;transform:rotate(-45deg)}
.gp-prose a{color:#1F5C8B;text-decoration:underline;text-underline-offset:2px}
.gp-prose .gp-more a{font-family:Poppins,sans-serif;font-weight:600;font-size:15px}
@media(max-width:767px){.gp-prose ul.gp-ticks{columns:1}}

/* Smaller hero copy (eyebrow, subhead) needs a tighter, darker halo than the H1 to survive pale cladding and sky. */
.gp-hero--photo p,.gp-hero--photo .elementor-widget-text-editor,.gp-hero--photo .elementor-widget-heading:not(:has(h1)) .elementor-heading-title{text-shadow:0 1px 2px rgba(8,22,32,.7),0 0 10px rgba(8,22,32,.55),0 0 24px rgba(8,22,32,.35)}

/* Mobile gutters: an extra 10px left and right on every top-level container (page sections, header, footer, popup), added on top of each container's own padding. */
@media(max-width:767px){.elementor > .e-con{--padding-inline-start:calc(var(--padding-left) + 10px);--padding-inline-end:calc(var(--padding-right) + 10px)}}

/* Gallery filter: the active tab. Elementor marks it .elementor-item-active (the widget CSS targeted a class that never appears). */
.elementor-widget-gallery .elementor-gallery-title.elementor-item-active{background:#1F5C8B!important;color:#FFFFFF!important}
.elementor-widget-gallery .elementor-gallery-title:not(.elementor-item-active):hover{background:#F4F8FA!important;color:#1F5C8B!important}
/* CampManager widgets (mu-plugin gp-campmanager.php). Colours come from the widget options; this block sets type, the card, tabs and arrows. */
.gp-cm-search-wrap{width:100%;max-width:1100px;margin:0 auto;background:#FFFFFF;border-radius:16px;box-shadow:0 18px 40px rgba(22,69,107,.18);padding:16px;box-sizing:border-box;min-height:82px}
.gp-cm-search-wrap [id^="widget-container-search"] *{font-family:'Open Sans',system-ui,sans-serif}
.gp-cm-search-wrap .widget-select,.gp-cm-search-wrap .widget-input,.gp-cm-search-wrap .widget-date{border-radius:8px!important;border:1px solid #E4EAEE!important;color:#37424A!important;font-size:15px!important}
.gp-cm-search-wrap .widget-btn{font-family:'Poppins',system-ui,sans-serif!important;font-weight:600!important;letter-spacing:.06em;text-transform:uppercase;line-height:50px!important}
.gp-cm-cal{background:#FFFFFF;border:1px solid #E4EAEE;border-radius:16px;box-shadow:0 6px 20px rgba(31,92,139,.07);padding:24px 24px 18px;box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto}
.gp-cm-tabs{display:flex;justify-content:center;gap:4px;width:max-content;max-width:100%;margin:0 auto 18px;background:#F4F8FA;border:1px solid #E4EAEE;border-radius:12px;padding:5px}
.gp-cm-tabs button{border:0;border-radius:8px;min-height:44px;padding:0 20px;background:transparent;color:#37424A;font-family:'Poppins',system-ui,sans-serif;font-weight:600;font-size:15px;cursor:pointer}
.gp-cm-tabs button[aria-selected="true"]{background:#1F5C8B;color:#FFFFFF}
.gp-cm-cal .widget-slide-title h3{font-family:'Poppins',system-ui,sans-serif!important;font-weight:600!important;font-size:18px!important;color:#37424A!important}
.gp-cm-cal .widget-slide-header span{font-family:'Open Sans',system-ui,sans-serif!important;font-weight:700!important;font-size:12px!important;color:#6E7A82!important}
.gp-cm-cal .widget-slide-body .day h3{font-family:'Open Sans',system-ui,sans-serif!important;font-weight:600!important}
.gp-cm-cal .widget-slide-body .booked h3{text-decoration:line-through}
.gp-cm-cal .widget-left,.gp-cm-cal .widget-right{background:#1F5C8B;border-radius:50%;width:40px;height:40px;padding:0!important;margin:8px;display:flex;align-items:center;justify-content:center}
.gp-cm-cal .widget-left img,.gp-cm-cal .widget-right img{width:16px!important}
.gp-cm-cal .widget-left.disabled,.gp-cm-cal .widget-right.disabled{background:#B8C2C9;opacity:1}
.widget-popup-box,.widget-popup-box *{font-family:'Open Sans',system-ui,sans-serif}
.widget-popup-header h3,.widget-popup-form-col h3{font-family:'Poppins',system-ui,sans-serif!important;color:#1F5C8B!important}
@media(max-width:767px){.gp-cm-cal{padding:16px 10px 12px}.gp-cm-tabs{width:100%}.gp-cm-tabs button{flex:1 1 0;padding:0 10px;font-size:14px}}
/* CampManager: undo the kit's global button padding/caps inside the widgets (it doubled the search button height) */
.gp-cm-search-wrap button,.gp-cm-cal button,.widget-popup-box button{padding:0!important;text-transform:none!important;letter-spacing:normal!important;line-height:normal!important}
.gp-cm-search-wrap .widget-btn{padding:0 28px!important;height:50px!important;line-height:50px!important;text-transform:uppercase!important;letter-spacing:.06em!important}
.gp-cm-tabs button{padding:0 20px!important;background:transparent!important;color:#37424A!important}
.gp-cm-tabs button[aria-selected="true"]{background:#1F5C8B!important;color:#FFFFFF!important}
.widget-popup-box .widget-btn{padding:0 24px!important;text-transform:uppercase!important;letter-spacing:.06em!important;line-height:48px!important}
/* CampManager search: one row on desktop (accommodation | dates | guests | button) */
@media(min-width:1025px){.gp-cm-search-wrap [id^="widget-container-search"]{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr) minmax(0,1fr) 230px!important}}/* End custom CSS */