/* ----------------------------------------------------------------
   1. FONT DECLARATIONS
-----------------------------------------------------------------*/
@font-face {
    font-family: 'Everett Thin';
    src: url('../fonts/Everett/Everett-Thin-web.woff2') format('woff2');
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Everett Regular';
    src: url('../fonts/Everett/Everett-Regular-web.woff2') format('woff2');
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Everett';
    src: url('../fonts/Everett/Everett-Thin-web.woff2') format('woff2');
    font-style: normal;
	font-weight:100;
    font-display: swap;
}
@font-face {
    font-family: 'Everett';
    src: url('../fonts/Everett/Everett-Regular-web.woff2') format('woff2');
    font-style: normal;
	font-weight:500;
    font-display: swap;
}
@font-face {
    font-family: 'Everett';
    src: url('../fonts/Everett/Everett-Bold-web.woff2') format('woff2');
    font-style: normal;
	font-weight:800;
    font-display: swap;
}
/* ----------------------------------------------------------------
   2. VARIABLE DEFINITIONS
-----------------------------------------------------------------*/
:root {
    --dark-green: #0F423A;
    --primary-green: #2DCA84;
    --light-green: #F4FEED;
    --accent-blue: #71E3EA;
    --white: #FFFFFF;
	--link-color: #19764C;
}

/* ----------------------------------------------------------------
   3. GLOBAL BASE STYLES & ACCESSIBILITY
-----------------------------------------------------------------*/
html, body {
    width: 100%;
	position: relative;
    font-family: 'Everett Regular', sans-serif; 
    color: var(--dark-green);
    margin: 0;
	font-size:20px;
}

html {
    scroll-behavior: auto !important;
}

/* Add extra scroll-margin to your sections as a fallback */
section[id] {
    scroll-margin-top: 120px;
}

body, p, li, a, span { 
    font-weight: normal; 
}

#main ul  {
	margin-bottom: 1.5rem;
}

#main ul li {
	line-height: 1.8rem;
}

#main .standard-text-section ul li ul {
    margin-bottom: 0rem;
}

h1, h2, h3, h4, h5, h6, .display-4, .display-5, .display-6 {
    font-family: 'Everett', sans-serif;
}
h1, h2{
	font-weight:100;
}
h2{
	font-size:2.6em;
}

h3{
	font-size:1.5em;

}
h4{
	font-size:1.3em;
}
a {
	text-underline-offset: 3px;
	color: var(--link-color);
}
a:hover {
	font-weight: bold;
}
h2.h3{
	font-size: 1.5em;
font-family: 'Everett', sans-serif;
}
#main .text-danger{color:var(--dark-green)!important;}
/* Focus States for Keyboard Navigation */
a:focus-visible, 
button:focus-visible, 
.owl-prev:focus-visible, 
.owl-next:focus-visible {
    outline: 3px solid var(--primary-green) !important;
    outline-offset: 2px;
}

/* Skip Link */
.skip-link {
    position: absolute;
    top: -100px;
    left: 20px;
    background: var(--primary-green);
    color: var(--dark-green);
    padding: 10px 20px;
    z-index: 9999;
    text-decoration: none;
    font-weight: bold;
    transition: top 0.3s ease;
}
.skip-link:focus { top: 10px; }

/* Standard Screen Reader Only class */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ----------------------------------------------------------------
   4. UTILITIES & BACKGROUNDS
-----------------------------------------------------------------*/
.bg-white { background-color: var(--white) !important; }
.bg-lichen { background-color: var(--light-green) !important; }
.bg-land { background-color: var(--dark-green) !important; }
.bg-sky { background-color: var(--accent-blue) !important; }

.text-dark-green { color: var(--dark-green) !important; }
.text-green { color: var(--dark-green) !important; } 
.text-white { color: var(--white) !important; }

.container-fluid.px-5 {
    max-width: 1700px;
    margin: 0 auto;
}

.btn-pdf::after {
   /*  display: none !important; */ /* Hide the standard right arrow */
}

/* 2. Inject the PDF Icon on the LEFT */
.btn-pdf::before {
    content: '\f1c1'; /* Font Awesome PDF Icon Unicode */
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    margin-right: 12px;
    font-size: 1.1em;
    color: #000; /* Use your bright green for the icon so it pops */
}

/* 3. Hover Effect */
.btn-pdf:hover::before {
    transition: transform 0.2s ease;
	color: #FFF;
}


/* ----------------------------------------------------------------
   5. HEADER & NAVIGATION
-----------------------------------------------------------------*/
.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    transition: transform 0.4s ease-in-out; /* Smooth transition */
    background: #fff;
    width: 100%;
}
.site-header:not(.scrolled) {
    box-shadow: none !important;
}
header.sticky-top {
    position: sticky;
    top: 0;
    z-index: 1030; /* Ensure it stays above hero content and sliders */
    background: #fff; /* Ensure it's opaque so content doesn't bleed through */
}
.admin-bar .sticky-top {
    top: 32px !important;
}

.header-nav-list {
    display: flex;
    gap: 20px !important; /* This creates the space between the <li> items */
    margin: 0 auto; 
}
.top-bar {
    background-color: var(--dark-green);
    color: var(--white);
    height: 60px;
    display: flex;
    align-items: center;
    transition: opacity 0.3s ease;
}
.site-header.scrolled {
    transform: translateY(-60px); /* Must match the top-bar height exactly */
    box-shadow: 0 4px 10px rgba(0,0,0,0.1); /* Optional: add shadow on scroll */
    height: 90px !important;
}

/* Optional: Fade out the top bar content for a cleaner look */
.site-header.scrolled .top-bar {
    opacity: 0;
}
.site-header.scrolled .navbar {

}
.top-bar a { 
    color: var(--white) !important; 
    text-decoration: none; 
    font-size: 18px; 
	line-height: 34px;
}

.top-bar a:hover { 
    text-decoration: underline; 
}
.top-bar .contact-info span { color: var(--white); }

.navbar { 
    border-bottom: 1px solid #f0f0f0;  
    background-color: var(--white);
    position: relative;
}

.navbar .navbar-brand {
	padding-top: 0px;
	padding-bottom: 0px;
}

.navbar .header-logo { height: 90px; }

/* Bridge the Gap Fix: Prevents menu disappearing during transition */
.navbar-nav .menu-item-has-children {
    position: relative;
    padding-bottom: 20px; 
    margin-bottom: -20px;
}

.navbar-nav .menu-item > a {
    color: var(--dark-green) !important;
    font-size: 18px;
    font-weight: 500;
    text-decoration: none;
    position: relative;
    padding-bottom: 8px;
    text-transform: uppercase;
    padding: 10px 15px !important; 
	white-space: nowrap;
}

/* Animated Green Underline */
.navbar-nav .menu-item > a::before {
    content: "";
    position: absolute;
    width: 0; height: 2px; bottom: 0; left: 0;
    background-color: var(--primary-green);
    visibility: hidden;
    transition: all 0.3s ease-in-out;
}

.navbar-nav .menu-item > a:hover::before,
.navbar-nav .current-menu-item > a::before {
    visibility: visible;
    width: 100%;
}

.navbar-nav .plan-your-visit.current-menu-item .sub-menu a::before {
	visibility: hidden;
}
.navbar-nav .plan-your-visit.current-menu-item .sub-menu a:hover::before {
	visibility: visible;
}


/* Font Awesome 7 Caret */
.menu-item-has-children > a::after {
    content: "\f107";
    font-family: "Font Awesome 7 Free";
    font-weight: 900;
    margin-left: 10px;
    font-size: 12px;
    transition: transform 0.3s;
}

.menu-item-has-children:hover > a::after { transform: none; }

/* Sub-Menu (Dropdown) Styling */
.navbar-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    min-width: 260px;
    padding: 0px 0 0;
    margin-top: 0px;
    list-style: none;
    box-shadow: 0px 8px 24px rgba(0,0,0,0.12);
    /* border-top: 3px solid var(--primary-green);*/
    display: none;
    z-index: 1000;
	transition: all 0.2s ease;
}

.sub-menu li a {
    padding: 12px 30px !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    display: block !important;
    color: var(--dark-green) !important;
    transition: all 0.2s ease;
    text-transform: none;
}

.sub-menu li a:hover {
   /* color: var(--primary-green) !important;*/
    padding-left: 35px !important;
}

/* --- Breadcrumb Styling (Lough Boora) --- */

.breadcrumb-nav-wrapper {
    width: 100%;
    position: relative;
    z-index: 10;
}

.breadcrumbs {
    font-family: 'Everett', sans-serif; /* Standard clean look from screenshot */
    font-size: 16px;
    font-weight: 400;
    color: #333;
}

/* Styling the links inside bcn_display */
.breadcrumbs a {
    color: #666;
    text-decoration: none;
    transition: color 0.3s ease;
}

.breadcrumbs a:hover {
    color: #0F423A; /* Brand Green on hover */
}

/* Bold the current page (last item) */
.breadcrumbs span[property="itemListElement"]:last-child span {
    font-weight: 700;
    color: #0F423A;
}

/* Separator styling (usually the > character) */
.breadcrumbs .separator {
    margin: 0 8px;
    color: #999;
}

.bcn-sep::before {
    content: "\f054"; /* This is the Chevron Right Unicode */
    font-family: "Font Awesome 7 Free"; /* Change to "Font Awesome 7 Pro" if using Pro */
    font-weight: 900;
    font-size: 11px;
    color: var(--dark-green);
    display: inline-block;
	margin-left: 5px;
	margin-right: 5px;
}


/* ----------------------------------------------------------------
   6. BUTTONS & ARROWS
-----------------------------------------------------------------*/
.btn {
    width: auto !important;
    display: inline-flex !important;
    white-space: nowrap;
	font-weight: 800;
	font-size: 0.9rem;
}
.btn-primary-green, .btn-dark-green {
    display: inline-flex !important;
    width: auto !important;
    padding: 20px 27px !important;
    border-radius: 0 !important;
    font-weight: 700;
    text-decoration: none;
    align-items: center;
    justify-content: center;
    transition: 0.3s;
	text-transform: uppercase;
}

.btn-primary-green { 
    background-color: var(--primary-green) !important; 
    color: var(--dark-green) !important; 
}
.btn-primary-green:hover { 
    background-color: var(--dark-green) !important; 
    color: var(--white) !important; 
}

/* Land Background Hover Fix */
.bg-land .btn-primary-green:hover {
    outline: 1px solid var(--white);
    outline-offset: -1px;
}

.btn-dark-green { 
    background-color: var(--dark-green) !important; 
    color: var(--white) !important; 
    border: 1px solid var(--white) !important;
}
.btn-dark-green:hover { 
    background-color: var(--primary-green) !important; 
    color: var(--dark-green) !important; 
}



/* Arrows */
.btn-primary-green::after, .btn-dark-green::after {
    content: '';
    display: inline-block;
    width: 27px;
    height: 20px;
    margin-left: 15px;
    background-size: contain;
}

.btn-primary-green::after { background: url('/wp-content/uploads/2026/03/black-arrow.svg') no-repeat center; }
.btn-primary-green:hover::after { 
    background: url('/wp-content/uploads/2026/03/green-arrow.svg') no-repeat center;
    filter: brightness(0) invert(1);    
}

.btn-dark-green::after { 
    filter: brightness(0) invert(1); 
    background: url('/wp-content/uploads/2026/03/green-arrow.svg') no-repeat center;
}
.btn-dark-green:hover::after {
    background: url('/wp-content/uploads/2026/03/black-arrow.svg') no-repeat center;
    filter: unset;
}

/* ----------------------------------------------------------------
   7. BLOCKS, CARDS & EQUAL HEIGHTS
-----------------------------------------------------------------*/
section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

.section-padding {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}


/* ----------------------------------------------------------------
   CARD SLIDER (BLOCK 16) - FINAL STYLES
-----------------------------------------------------------------*/

/* 1. Layout & Equal Heights */
.card-slider .owl-item {
    display: flex;
}

.card-slider .item {
    display: flex;
    flex-direction: column;
    width: 100%;
    /* Creates a safe zone for the hover halo to prevent clipping */
    padding: 35px 20px !important; 
}

/* 2. Card Inherited Styling */
.card-slider .custom-grid-card { 
    display: flex !important;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: none;
    box-shadow: 0px 0px 20px rgba(29, 135, 87, 0.15);
    transition: box-shadow 0.4s ease, transform 0.3s ease;
    position: relative;
    z-index: 1;
    text-decoration: none !important;
}

.card-slider .custom-grid-card:hover {
    box-shadow: 0px 0px 35px rgba(29, 135, 87, 0.3) !important;
    z-index: 999 !important;
    transform: translateY(-2px);
}

/* 3. Image Scaling */
.card-slider .card-img-wrapper img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 0px 0px 0 0;
}

/* 4. Content Area & Centering (Fix for 3rd Card) */
.card-slider .card-content-area {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    align-items: center !important; /* Horizontal Centering */
    justify-content: center;       /* Vertical Centering */
    text-align: center;
    padding: 1.5rem 1rem !important;
    width: 100%;
}

.card-slider .card-text-group {
    width: 100%;
    margin-bottom: 0;
}

.card-slider .card-title {
    font-family: 'Everett', sans-serif;
    font-size: 32px;
    color: #0F423A;
    margin-bottom: 20px !important;
    line-height: 1.2;
}

.card-slider .card-description {
    font-family: 'Everett', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    color: #0F423A;
    opacity: 0.8;
    margin-bottom: 0;
    min-height: 60px; 
    word-wrap: break-word;
	-webkit-line-clamp: 4;
}

.card-slider .btn-primary-green {
    margin-top: 25px !important;
}

.owl-carousel .owl-item .card-icon-wrapper img {
    width: 80px;
    height: auto;
}
.card-slider .owl-stage {
    display: flex !important;
}
.card-slider .owl-item {
    display: flex !important;
    flex: 1 0 auto;
}

.card-slider .item {
    display: flex;
    width: 100%;
}

/* 5. Owl Carousel Stage Fix (Removes Pinching) */
.card-slider.owl-carousel .owl-stage-outer {
    /* Stage must be allowed to fill the container width */
    max-width: none !important; 
    margin: 0 !important;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    margin-top: -40px !important;
    margin-bottom: -40px !important;
    overflow: hidden; 
}

/* 6. Navigation Arrows - Positioning & Center Fix */
.card-slider.owl-theme .owl-nav {
    position: absolute;
    top: 50% !important; /* Centers arrows vertically against the card height */
    left: 50%;
    transform: translate(-50%, -50%);
    /* Pushes arrows outside the cards (width of container + gap) */
    width: calc(100% + 140px); 
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    z-index: 1001; 
    margin-top: 0 !important;
}

.card-slider.owl-theme .owl-nav [class*='owl-'] {
    pointer-events: auto;
    width: 50px;
    height: 50px;
    background: #fff !important;
    border: 1px solid var(--dark-green) !important;
    color: var(--dark-green) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    padding: 0 !important;
    margin: 0 !important;
}

.card-slider.owl-theme .owl-nav [class*='owl-']:hover {
    background: var(--primary-green) !important;
    border-color: var(--primary-green) !important;
    color: var(--white) !important;
}

.card-slider.owl-theme .owl-nav i {
    font-size: 18px;
}

/* 7. Pagination Dots */
.owl-theme .owl-dots { 
    /*display: block !important; */
    margin-top: 20px; 
	display: none !important;
    visibility: hidden !important;
}




/* Event Date Badge */
.date-badge {
    position: absolute;
    top: 0; right: 0;
    background: var(--accent-blue);
    color: var(--dark-green);
    padding: 10px 15px;
    text-align: center;
    font-weight: bold;
    z-index: 10;
    line-height: 1.2;
}
.date-badge span { font-size: 16px; display: block; font-weight: 600; text-transform: uppercase; }

.featured-experiences .card {
    /* Smooth transition for the glow */
    transition: box-shadow 0.4s ease, border-color 0.4s ease;
    border: 1px solid transparent; /* Prevents layout shifting */
    position: relative;
    z-index: 1;
	border-radius:0;
}

.featured-experiences .card:hover {
    /* Bring the hovered card to the front of the grid stack */
    z-index: 5 !important;

    /* Obvious All-Around Glow (Halo) */
    /* X=0, Y=0, Blur=35px, Spread=5px */
    box-shadow: 0 0 35px 5px rgba(0, 0, 0, 0.15) !important;
}

/* Specific Highlight for the Dark (bg-land) cards */
/* We use a lighter shadow or a branded tint so it shows against the dark green */
.featured-experiences .card.bg-land:hover {
    box-shadow: 0 0 35px 8px rgba(0, 0, 0, 0.3) !important;
    border-color: rgba(255, 255, 255, 0.2);
}

/* Ensure the grid column doesn't clip the shadow */
.featured-experiences .row {
    /* Gives the shadows at the very top and bottom of the section room to breathe */
    padding: 20px 0;
    margin-top: -20px;
    margin-bottom: -20px;
}

.featured-experiences .card-img-wrapper img,
.featured-experiences .card-img-top {
    /* Set a lower height or use aspect-ratio for a true landscape look */
    max-height: 350px; 
    width: 100%;
    object-fit: cover;
	border-radius:0;
}



/* --- Events Block: All-Around Hover Highlight --- */

.events-section .event-card {
    display: block; /* Essential since the card is an <a> tag */
    text-decoration: none;
    transition: box-shadow 0.4s ease-in-out;
    background: #fff;
    border-radius: 0px; /* Matches your card design */
    position: relative;
    z-index: 1;
    overflow: visible; /* Allows the shadow to escape the card boundaries */
}

.events-section .event-card:hover {
    /* Set X and Y to 0 for a perfectly centered "Halo" */
    /* 30px Blur, 5px Spread */
    box-shadow: 0 0 30px 5px rgba(0, 0, 0, 0.12) !important;
    
    /* Forces this card to the front of the 3-column stack */
    z-index: 10 !important;
}


/* Optional: Slight color shift on the event title */
.events-section .event-card:hover h3 {
    color: #0f423a; /* Your primary green */
    transition: color 0.3s ease;
}

/* --- Education Spotlight: Uniform Hover Highlight --- */

.education-section .row {
    /* Smooth transition for the shadow */
    transition: box-shadow 0.4s ease, transform 0.4s ease;
    background: #fff; /* Ensure there is a background to cast the shadow from */
    position: relative;
    z-index: 1;
    border-radius: 0px; /* Optional: adds a slight curve to the corners */
    overflow: visible; /* Required for the shadow to be seen */
}

.education-section .row:hover {
    /* Set X and Y to 0 for a perfectly centered "Halo" */
    /* 35px Blur, 5px Spread */
    box-shadow: 0 0 35px 5px rgba(0, 0, 0, 0.12) !important;
    
    /* Bring the hovered row to the front of the vertical stack */
    z-index: 10 !important;
}

/* Ensure the image remains sharp and fills its half of the highlighted row */
.education-section .row img {
    border-top-left-radius: 0px;
    border-bottom-left-radius: 0px;
    transition: opacity 0.3s ease;
}

/* If the layout is swapped (reversed), flip the border radius */
.education-section .row.flex-row-reverse img {
    border-radius: 0 0px 0px 0;
}

/* --- Featured Experiences Button Fix --- */
.featured-experiences .card .btn {
    width: auto !important; /* Forces the button to fit the text rather than card width */
    min-width: 220px;
    display: inline-flex !important;
    align-self: flex-start; /* Ensures it stays left-aligned in the flex column */
}

/* --- Events Card Body Fix --- */
/* Forces the card background to remain white regardless of section background */
.events-section .event-card {
    background-color: #ffffff !important;
}

.events-section .event-card .card-body {
    background-color: #ffffff !important;
    color: var(--dark-green) !important;
}

.events-section .event-card h3 {
    color: var(--dark-green) !important;
}

.event-card p{
	font-size:.9em;
}
.event-card img {
	max-height: 250px;
}

/* Ensure cards in the carousel have equal height */
#events-carousel .owl-item {
    display: flex;
}

#events-carousel .item {
    width: 100%;
    display: flex;
    padding: 10px 30px; /* Slight padding for the shadow to breathe */
}

#events-carousel .event-card {
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

#events-carousel .event-card:hover {
    box-shadow: 0 10px 20px rgba(0,0,0,0.1) !important;
}

/* Fix for the card body to push content to top but stay flexed */
#events-carousel .card-body {
    flex-grow: 1;
}

.events-section .owl-carousel .owl-stage-outer {
    max-width: none !important; 
    margin: 0 !important;
    padding: 40px 10px !important; /* Extra room for hover shadows */
    margin-top: -40px !important;
    margin-bottom: -40px !important;
    overflow: hidden; 
}

/* 2. Floating Navigation Arrows (Mirroring Slider Block) */
.events-section .owl-theme .owl-nav {
    position: absolute;
    top: 50% !important;
    left: 50%;
    transform: translate(-50%, -50%);
    /* Pushes arrows to the sides of the container */
    width: calc(100% + 100px); 
    display: flex;
    justify-content: space-between;
    pointer-events: none;
    z-index: 1001; 
    margin-top: 0 !important;
}

/* 3. Arrow Button Styles */
.events-section .owl-theme .owl-nav [class*='owl-'] {
    pointer-events: auto;
    width: 50px;
    height: 50px;
    background: #fff !important;
    border: 1px solid var(--dark-green) !important;
    color: var(--dark-green) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.events-section .owl-theme .owl-nav [class*='owl-']:hover {
    background: var(--primary-green) !important;
    border-color: var(--primary-green) !important;
    color: #fff !important;
}

/* --- Education Block Image Consistency --- */
.education-section .row {
    display: flex; /* Ensures column heights match for alignment */
    overflow: hidden;
}

.education-section img {
    height: 100%;
    min-height: 450px;
    object-fit: cover;
}


.contact-info span{
	font-size:18px;
}


.logo-grid-wrapper {
    gap: 30px 40px; /* Vertical and horizontal spacing */
}
.social-proof .container {
	max-width: 1200px;
}
.social-proof-logos { 
    /* Increased dimensions for a larger visual footprint */
    min-width: 240px; 
    height: 100px;
    padding: 15px 25px;
    background: #fff;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.08) !important;
    transition: all 0.4s ease;
    
    /* Center the images inside the box */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0px; /* Matches your card style */
}

.social-proof-logos:hover {
    box-shadow: 0 0 30px 5px rgba(0, 0, 0, 0.12) !important;
    z-index: 10 !important;
    transform: translateY(-2px); /* Subtle lift */
}

.social-proof-logos img {
    /* Increased max-height from 60px to 80px */
    max-height: 80px !important; 
    width: auto !important;
    max-width: 100% !important;
    object-fit: contain !important;
    transition: opacity 0.3s ease;
}

@media (max-width: 767px) {
    .social-proof-logos {
        min-width: 160px;
        height: 80px;
        padding: 10px;
    }
    .social-proof-logos img {
        max-height: 55px !important;
    }
}

/* Hero Section */
.hero-section p.text-green{font-size:1.1em;}
.hero-section {
    min-height: 870px;
    display: flex;
    align-items: center;
    padding:100px 0;
    background-size: cover;
    background-position: center;
}

.hero-content {
    background-color: rgba(255, 255, 255, 0.9) !important;
    max-width: 1123px;
    border-radius: 0 !important;
	width: 90% !important;
	padding: 35px 60px 42px 60px;
}

.hero-content h1{
	line-height:1.1em;
	font-weight:300;
}

/* --- Secondary Hero Styles --- */
.secondary-hero {
    height: 600px;
    background-size: cover;
    background-position: center;
    position: relative;
    padding-bottom: 60px; /* Positions the white box near the bottom */
}

.secondary-hero-box {
    width: 100%;
    max-width: 1123px;
    height: 130px;
    background: rgba(255, 255, 255, 0.86); /* 0.86 opacity from specs */
    backdrop-filter: blur(5px); /* Optional: adds a nice glass effect */
}

.secondary-hero-box h1 {
    font-family: 'Everett', sans-serif;
    font-weight: 300;
    font-size: 52px;
    line-height: 1.11;
    color: #0F423A; /* Brand Green */
    text-align: center;
}

/* Mobile Adjustments */
@media (max-width: 991px) {
	body p{font-size:18px;}
	h3.h2{font-size:1.3rem;}
	h3{font-size:1.1rem;}
	#main ul li{font-size:18px;}
	.h5, h5{font-size:1.05rem;}
	.nav-tabs .nav-link{
		font-size:22px;
	}
    .secondary-hero {
        height: 250px; /* Shorter for mobile screens */
        padding-bottom: 30px;
    }
    
    .secondary-hero-box {
        height: auto;
        padding: 20px;
        width: 90%;
    }
    
    .secondary-hero-box h1 {
        font-size: 32px;
    }
	
	.date-badge span{
		font-size:14px;
	}
}


/* --- Intro Text Block: Layered Greens --- */

.intro-text-section {
    width: 100%;
    /* The global background color class (.bg-land, etc.) will apply here */
}

.intro-text-wrapper {
    max-width: 1257px;
    width: 100%;
    min-height: 162px;
    
    /* Hardcoded Branding */
    background-color: #0F423A; 
    border-bottom: 6px solid #14D28E; /* The bright green accent line */
    
    /* Layout */
    display: block;
    align-items: center;
    justify-content: center;
    padding: 40px 60px;
    margin: 0 auto;
}

.intro-text-wrapper p {
    font-family: 'Everett', sans-serif;
    font-weight: 500;
    font-size: 28px;
    line-height: 1.6; /* 160% */
    text-align: center;
    color: rgba(255, 255, 255, 0.8); /* 0.8 opacity per specs */
    margin: 0px 0px 20px 0px;
}
.intro-text-wrapper a {
	color: rgba(255, 255, 255, 0.8)
}

.intro-text-wrapper a:hover {
	color: #fff;
}


/* Responsive Adjustments */
@media (max-width: 1200px) {
    .intro-text-wrapper {
        max-width: 95%;
        padding: 30px;
    }
}

@media (max-width: 768px) {
    .intro-text-wrapper p {
        font-size: 20px;
        line-height: 1.4;
    }
    .intro-text-wrapper {
        min-height: auto;
    }
}


/* --- Standard Text Block: Long Form Typography --- */

section.standard-text-section {
	padding-top: 20px !important;
	padding-bottom: 20px !important;
}
.standard-text-section .wysiwyg-content {
}

.standard-text-section .wysiwyg-content h2 {
    font-size: 32px;
    font-weight: 500;
	margin-top: 30px;
}

.standard-text-section .wysiwyg-content h3 {
    font-size: 28px;
    font-weight: 500;
	margin-top: 20px;
}

.standard-text-section .wysiwyg-content p {
    margin-bottom: 15px;
}

/* List Styling for Policies */
.standard-text-section .wysiwyg-content ul, 
.standard-text-section .wysiwyg-content ol {
    margin-bottom: 15px;
    padding-left: 15px;
}

.standard-text-section .wysiwyg-content li {
    margin-bottom: 5px;
    position: relative;
}

/* Matching your existing breadcrumb/list chevron style if needed */
.standard-text-section .wysiwyg-content ul li::marker {
    color: var(--dark-green);
    font-size: 24px;
}

/* Links within legal text */
.standard-text-section .wysiwyg-content a {
}

.standard-text-section .wysiwyg-content a:hover {
}

/* --- Card Grid Refinement --- */

.custom-grid-card {
    background: #FFFFFF;
    border-radius: 0px;
    height: 100%; /* Ensures all cards in a row are same height */
    display: flex;
    flex-direction: column;
    transition: all 0.4s ease;
    
    /* Figma Spec Base Shadow (Green Tint) */
    box-shadow: 0px 0px 20px rgba(29, 135, 87, 0.15);
    border: none;
}

.custom-grid-card:hover {
    /* More pronounced "Halo" on hover */
    box-shadow: 0px 0px 35px rgba(29, 135, 87, 0.3) !important;
   // transform: translateY(-2px); /* Very slight lift for better feedback */
}

/* --- Content Styling --- */

.card-title {
    font-family: 'Everett', sans-serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.5;
    color: #0F423A;
    margin-bottom: 0px;
}

.card-description {
    font-family: 'Everett', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #0F423A;
    opacity: 0.8;
    min-height: 87px;
	display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card-description.compact-desc {
    min-height: 0; 
    padding-bottom: 0;
}



/* --- Icon & Image --- */

.card-img-wrapper img {
    width: 100%;
    height: 300px; /* Increased to match visual weight */
    object-fit: cover;
}

.card-icon-wrapper {
    width: 112px;
    height: 112px;
    background: #c3e9d6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
	margin-bottom: 20px;
}

.card-icon-wrapper.has-image {
    margin-top: -112px; /* Half of height to sit perfectly on the line */
    position: relative;
    z-index: 2;
}
.card-icon-wrapper:not(.has-image) {
    margin-bottom: 15px;
    width: 90px; /* Slightly smaller for compact look */
    height: 90px;
}

.card-slider .card-icon-wrapper.has-image {
	margin-top: -85px;
}
.other-things-to-do .card-slider .card-icon-wrapper.has-image, .other-photo-galleries .card-slider .card-icon-wrapper.has-image {
	margin-top: -112px;
}

.card-icon-wrapper img {
    width: 80px;
    height: auto;
}

.card-content-area {
    padding: 2.5rem 1.5rem !important;
}
.col-lg-3 .card-content-area {
	padding: 0.5rem 0.7rem !important; 
}
.col-lg-3 .card-title {
	margin-bottom: 0px;
}
.col-lg-3 .card-img-wrapper img {
	height: 230px;
}

.card-text-group {
    margin-bottom: 0; /* Removes the mb-4 gap */
}

/* Specific tightening for cards with no image/button */
.custom-grid-card:not(:has(.card-img-wrapper)):not(:has(.btn)) .card-content-area {
    padding: 1.5rem 1.5rem !important;
}

.other-things-to-do .card-content-area {
	padding: 1.5rem 1rem !important;; 
}

.other-things-to-do .card-description {
	min-height: 0;
}

.other-things-to-do .card-title {
	font-size: 28px;
}
.other-things-to-do .btn-primary-green::after, .other-things-to-do .btn-dark-green::after {
	width: 16px;
	height: 15px;
	margin-left: 5px;
}

.other-things-to-do .btn-primary-green, .other-things-to-do .btn-dark-green {
	font-size: 0.8rem;
}

/* --- Intro Text with Image Styles --- */

.intro-image-section {
    width: 100%;
}

/* Image container ensuring it fills space without gaps */
.intro-side-image img {
    height: 100%;
    min-height: 500px; /* Ensures a consistent look */
    object-fit: cover;
    display: block;
}

/* The "floating" text box look */
.intro-text-box-wrapper {
    padding: 40px; /* Creates the overlap space */
}

.intro-text-inner-box {
    padding: 50px 60px;
    height: auto;
    display: flex;
    align-items: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border-bottom: 6px solid #14D28E; /* Accent line stays consistent */
    transition: all 0.3s ease;
}
.intro-text-wrapper .btn {
	margin-top: 20px;
}

/* Land (Dark Green) Box State */
.intro-text-inner-box.bg-land {
    background-color: #0F423A !important;
}

.text-white-80 {
    color: rgba(255, 255, 255, 0.8) !important;
}

/* Air (White) Box State */
.intro-text-inner-box.bg-white {
    background-color: #FFFFFF !important;
}

.text-green {
    color: #0F423A !important;
}

.intro-text-inner-box div {
    font-family: 'Everett', sans-serif;
    font-weight: 500;
    font-size: 24px; /* Slightly smaller than full-width to account for split */
    line-height: 1.6;
    margin: 0;
    text-align: left; /* Aligns better in split layout */
}

/* Handles the "Swap" overlap direction */
.flex-row-reverse .intro-text-box-wrapper {
    margin-right: -100px;
    margin-left: 0;
    z-index: 2;
	position: relative;
}

.flex-row .intro-text-box-wrapper {
    margin-left: -100px;
    margin-right: 0;
    z-index: 2;
}

/* Mobile Fixes */
@media (max-width: 991px) {
	.flex-row .intro-text-box-wrapper {
        margin-left: -80px;
        position: relative;
        z-index: 2;
    }
    .flex-row-reverse .intro-text-box-wrapper {
        margin-right: -80px;
        position: relative;
        z-index: 2;
    }	
    .intro-text-box-wrapper {
        margin: 0 !important;
        padding: 20px;
    }
    .intro-text-inner-box {
        padding: 40px 25px;
        text-align: center;
    }
    .intro-text-inner-box p {
        font-size: 18px;
       /* text-align: center;*/
    }
    .intro-side-image img {
        min-height: 300px;
    }
}


/* --- Accordion Block: Final Polish --- */

.accordion-wrapper {
    max-width: 1302px;
    width: 100%;
}

.accordion-item {
    background: #FFFFFF;
    margin-bottom: 20px;
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.05);
    /* Keeps the green border on the LEFT through expansion */
    border-left: 6px solid #14D28E; 
    overflow: hidden;
    transition: box-shadow 0.3s ease;
}

/* Add a slight glow when open to delineate from others */
.accordion-item[open] {
    box-shadow: 0px 10px 25px rgba(15, 66, 58, 0.1);
}

.accordion-header {
    height: 73px;
    padding: 0 30px;
    cursor: pointer;
    list-style: none;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: border-bottom 0.3s ease;
}

/* The Delineator: Border appears when open to separate title from content */
.accordion-item[open] .accordion-header {
    border-bottom: 1px solid rgba(15, 66, 58, 0.1);
}

.accordion-header::-webkit-details-marker { display: none; }

.accordion-title {
    font-family: 'Everett', sans-serif;
    font-weight: 500;
    font-size: 30px;
    color: #0F423A;
}

/* Your requested icon width */
.accordion-icon {
    width: 50px;
    height: auto;
    object-fit: contain;
}

/* --- Toggle Animation --- */
.accordion-toggle-icon {
    position: relative;
    width: 20px;
    height: 20px;
}

.toggle-symbol {
    position: relative;
    display: block;
    width: 20px;
    height: 2px;
    background-color: #0F423A;
    top: 50%;
}

.toggle-symbol::before {
    content: '';
    position: absolute;
    width: 2px;
    height: 20px;
    background-color: #0F423A;
    left: 9px;
    top: -9px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.accordion-item[open] .toggle-symbol::before {
    transform: rotate(90deg);
    opacity: 0;
}

/* --- Slide Animation Grid --- */
.accordion-content-grid {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-out;
}

.accordion-item[open] .accordion-content-grid {
    grid-template-rows: 1fr;
}

.accordion-overflow-hidden {
    overflow: hidden;
}

/* --- Accordion WYSIWYG: Image Handling --- */

.wysiwyg-content img.alignright {
    float: right;
    margin: 0 0 20px 30px; /* Space on left and bottom */
    max-width: 40%; /* Prevents the image from swallowing the text */
    height: auto;
}

.wysiwyg-content .wp-caption.alignright {
    float: right;
    margin: 0 0 20px 30px; /* Space on left and bottom */
    max-width: 40%; /* Prevents the image from swallowing the text */
    height: auto;
}
.wysiwyg-content .wp-caption-text {
	text-align: center;
	color: var(--link-color);
	text-decoration: underline;
    text-underline-offset: 3px;
	cursor:pointer;
}
.wysiwyg-content .wp-caption-text:hover {
	font-weight: bold;
	color: var(--link-color);
}
.wysiwyg-content .wp-caption-text:focus {
	border: 1px solid var(--link-color);
}
.wysiwyg-content .wp-caption-text::after{
    content: "\f424";
    font-family: "Font Awesome 7 Free"; 
	font-size:16px;
    font-weight: 900; 
    display: inline-block;
    -webkit-font-smoothing: antialiased;
	color: var(--link-color);
	margin-left: 7px;
}

/* 1. Make the image link act as the "base" */
.wp-caption {
	position: relative;
}
.wp-caption a {
    display: block;
}

/* 2. Use a pseudo-element on the link to cover the caption area */
.wp-caption a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 10;
}

/* 3. Ensure the caption looks like a link on hover */
.wp-caption:hover .wp-caption-text {
    color: var(--primary-green);
    text-decoration: underline;
}

.wp-caption-text {
    position: relative;
    z-index: 1; /* Keep text below the "hit area" so the link click registers */
}

.wysiwyg-content img.alignleft {
    float: left;
    margin: 0 30px 20px 0; /* Space on right and bottom */
    max-width: 40%;
    height: auto;
}

.wysiwyg-content img.aligncenter {
    display: block;
    margin: 20px auto;
    max-width: 100%;
    height: auto;
}

/* Clearfix: Essential to prevent the next accordion item 
   from overlapping if the text is shorter than the image */
.wysiwyg-content::after {
    content: "";
    display: table;
    clear: both;
}

/* Mobile Adjustments */
@media (max-width: 767px) {
    .wysiwyg-content img.alignright,
    .wysiwyg-content img.alignleft {
        float: none; /* Stack images on mobile */
        display: block;
        margin: 0 auto 20px auto;
        max-width: 100%;
    }
}

/* Responsive */
@media (max-width: 991px) {
    .accordion-header {
        height: auto;
        padding: 20px;
    }
    .accordion-title {
        font-size: 22px;
    }
    .accordion-icon {
        width: 40px;
    }
}


/* --- Interactive Tabs: Full-Width & Grey Style --- */

.custom-tabs-wrapper {
    max-width: 1302px;
    margin: 0 auto;
}

.nav-tabs {
    display: flex !important;
    width: 100%;
    margin-bottom: 0;
    flex-wrap: nowrap; /* Forces them to stay in a row */
}

.nav-tabs .nav-item {
    flex: 1 1 0; /* Forces all tabs to be the exact same width */
    min-width: 0;
}

.nav-tabs .nav-link {
    width: 100%;
    height: 80px;
    background: #F4F4F4; /* The light grey for unselected tabs */
    border: none !important;
    border-radius: 0;
    font-family: 'Everett', sans-serif;
    font-weight: 500;
    font-size: 24px;
    color: #0F423A;
    padding: 0 15px;
    transition: all 0.3s ease;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Selected Tab Style */
.nav-tabs .nav-link.active {
    background: #0F423A !important;
    color: #FFFFFF !important;
    font-weight: 700;
}

/* Tab Icon Handling */
.nav-tabs .nav-link .tab-icon {
    width: 40px;
    height: auto;
    object-fit: contain;
}

.nav-tabs .nav-link.active .tab-icon {
    filter: brightness(0) invert(1); /* Turns icon white when active */
}

/* Active Notch */
.nav-tabs .nav-link.active::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #0F423A;
    z-index: 10;
}

/* Content Area - Matches Accordion */
.tab-content-container {
    background: #FFFFFF;
    border-left: 6px solid #14D28E; 
    box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.05);
    position: relative;
    z-index: 1;
}

/* Mobile Adjustment */
@media (max-width: 991px) {
    .nav-tabs {
        flex-direction: column;
        flex-wrap: wrap;
    }
    .nav-tabs .nav-link {
        height: auto;
        padding: 20px;
        justify-content: flex-start !important;
    }
    .nav-tabs .nav-link.active::after {
        display: none;
    }
}


/* Container and General Reset */
.boora-contact-form {
    max-width: 800px;
    margin: 0 auto;
    text-align: left;
    font-family: inherit;
    color: #333;
}

/* Row Layouts */
.boora-contact-form .field-row {
    display: flex;
    gap: 20px;
    margin-bottom: 0px;
}

.boora-contact-form .field-row .field-group {
    flex: 1;
}

/* Force text left for labels and groups */
.boora-contact-form .field-group {
    margin-bottom: 35px;
    text-align: left;
}

.boora-contact-form label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    font-size: 18px;
    text-align: left;
}

#main .wpcf7-not-valid-tip{color:#CC2E2E!important;}

.boora-contact-form .participant-row input, .boora-contact-form .wpcf7-datepicker {
    width: 140px !important;
}

/* Input & Textarea Styling */
.boora-contact-form input[type="text"],
.boora-contact-form input[type="email"],
.boora-contact-form input[type="tel"],
.boora-contact-form textarea,
.boora-contact-form input.wpcf7-date {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 2px;
    box-sizing: border-box;
    background-color: #fff;
    font-size: 15px;
}

/* Checkbox Styling */
.boora-contact-form .wpcf7-list-item {
    display: block;
    margin: 5px 0;
}

.boora-contact-form .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    font-weight: normal;
    cursor: pointer;
}

.boora-contact-form .wpcf7-list-item input {
    margin-right: 10px;
    width: auto !important; /* Overrides any global 100% width on inputs */
}
.boora-contact-form .wpcf7-list-item label {
    display: inline-flex;
    align-items: center;
    font-weight: normal;
    cursor: pointer;
    line-height: 1.2;
    margin-bottom: 10px; /* Space between options */
}


/* Fix for the GDPR acceptance label specifically */
.boora-contact-form span.wpcf7-list-item-label {
    font-size: 18px;
    display: inline-block;
}
.boora-contact-form .wpcf7-list-item input[type="checkbox"],
.boora-contact-form input[name="acceptance-gdpr"] {
    width: 24px !important; /* Set explicit width */
    height: 24px !important; /* Set explicit height */
    margin-right: 12px;
    cursor: pointer;
    /* Optional: Improves rendering on some browsers */
    transform: scale(1.1); 
    accent-color: #0F423A; /* Matches the Lough Boora dark green */
}

.wpcf7-not-valid-tip {
    color: #dc3545; /* Standard red error colour */
    font-size: 18px;
	font-weight: bold;
    margin-top: 5px;
    display: block;
}
 
.gdpr-wrapper {
    display: flex !important;
    flex-direction: row !important; /* Keep box and text side-by-side */
    flex-wrap: wrap !important;     /* Allow error message to wrap below */
    align-items: flex-start;
    margin-bottom: 10px;
}

/* Ensure the text doesn't take up 100% width and push the box */
.gdpr-text {
    order: 2 !important;
    flex: 1 !important;
    font-size: 18px !important;
    line-height: 1.4 !important;
    margin: 0 !important;
}

.gdpr-wrapper .wpcf7-form-control-wrap {
    display: flex !important;
    flex-direction: column !important; /* Stack error under checkbox */
    order: 1 !important;
    flex: 0 0 36px !important; /* Maintain the alignment with the text */
}

/* Force the checkbox to the left and keep its 24px size */
.gdpr-wrapper .wpcf7-form-control {
    order: 1 !important;
    margin-right: 15px !important;
    flex: 0 0 24px !important;
    width: 24px !important;
    height: 24px !important;
}


/* Position error message correctly below the row */
.gdpr-wrapper .wpcf7-not-valid-tip {
    position: absolute !important; /* Take it out of the flex-item width calculation */
    width: 500px !important;       /* Give it enough room to span under the text */
    margin-top: 55px !important;   /* Push it below the checkbox level */
    left: 0 !important;
    white-space: nowrap !important; /* Prevent it from vertical stacking */
    display: block !important;
}


.gdpr-wrapper .wpcf7-not-valid input[type="checkbox"] {
    outline: 2px solid #CC2E2E !important; /* Ensures visibility on all browsers */
    outline-offset: 0px;
    box-shadow: 0 0 5px rgba(204, 46, 46, 0.5); /* Subtle glow to highlight the box */

}
.boora-contact-form input.wpcf7-not-valid-tip + .wpcf7-form-control,
.boora-contact-form input.wpcf7-form-control.wpcf7-not-valid {
    border: 2px solid #CC2E2E !important;
    background-color: #fff8f8; /* Very light red tint to make the field pop */
    transition: border-color 0.2s ease-in-out;
}

/* Ensure the focus state also remains red when the user clicks back in */
.boora-contact-form input.wpcf7-form-control.wpcf7-not-valid:focus {
    border-color: #CC2E2E !important;
    box-shadow: 0 0 5px rgba(204, 46, 46, 0.3) !important;
    outline: none;
}

/* Optional: Transition for a smoother effect */
.gdpr-wrapper input[type="checkbox"] {
    transition: outline 0.2s ease-in-out, border-color 0.2s ease-in-out;
}
/* Ensure the acceptance wrapper doesn't hide the message */
span.wpcf7-form-control-wrap {
    display: block;
}

/* Other Labels for text areas */
.boora-contact-form .sub-label {
    margin-top: 10px;
    font-weight: 600;
}

/* Submit Button Styling */
.boora-contact-form .submit-wrap {
    text-align: left;
    margin-top: 25px;
}

.boora-contact-form input[type="submit"] {
    background-color: #e0e0e0;
    border: 1px solid #999;
    padding: 8px 30px;
    cursor: pointer;
    text-transform: uppercase;
    font-weight: bold;
    color: #333;
    transition: all 0.2s ease;
}

.boora-contact-form .submit-wrap:hover input[type="submit"], .boora-contact-form .submit-wrap input[type="submit"]:hover {
    color: #fff !important; 
}
 
/* 1. Style the wrapper to look like the button */
.boora-contact-form .submit-wrap.btn-primary-green {
    display: inline-flex;
    align-items: center;
    position: relative;
    cursor: pointer;
    background-color: #2ecc71; /* Use the specific Lough Boora green hex */
    padding: 0; /* Remove padding here so the input handles the hit area */
    border: none;
}

/* 2. Make the actual CF7 input transparent and sized to the wrapper */
.boora-contact-form .submit-wrap input[type="submit"] {
    background: transparent !important;
    border: none !important;
    color: #000; /* Or whatever the text color is */
    padding: 0px; /* Extra right padding to make room for arrow */
    text-transform: uppercase;
    font-weight: bold;
    cursor: pointer;
    width: auto;
}

/* 3. The Arrow Fix (Applied to the DIV instead of the INPUT) */
.boora-contact-form .submit-wrap.btn-primary-green::after {
    content: '';
    display: inline-block;
    position: absolute;
    right: 20px;
    width: 27px;
    height: 20px;
    background: url('/wp-content/uploads/2026/03/black-arrow.svg') no-repeat center;
    background-size: contain;
    pointer-events: none; /* Let clicks pass through to the input */
}
legend{font-size:1rem;font-weight:bold;}
/* Responsive Handling for Mobile */
@media (max-width: 768px) {
    .boora-contact-form .field-row {
        flex-direction: column;
        gap: 0;
    }

    .boora-contact-form .participant-row input {
        width: 100% !important;
    }
	.gdpr-wrapper .wpcf7-not-valid-tip	{
		margin-top: 80px;
	}
}

/* --- Accessible Header Search --- */

#header-search-bar {
    position: absolute;
    width: 100%;
    left: 0;
    top: 100%; /* Sits directly flush against the bottom of the top-bar */
    z-index: 1000;
    border-bottom: 3px solid var(--primary-green);
}

#header-search-bar .form-control {
    border-radius: 0;
    border: 1px solid #ced4da;
    padding: 12px 1rem;
    font-family: 'Everett', sans-serif;
}

#header-search-bar .form-control {
    height: 50px;
    border-radius: 4px; /* Optional: matches your card rounded corners */
}

#header-search-bar .btn-primary-green {
    height: 50px;
    display: flex;
    align-items: center;
    white-space: nowrap;
}

#header-search-bar .form-control:focus {
    border-color: var(--primary-green);
    box-shadow: 0 0 0 0.25 cold-res(var(--primary-green), 0.25);
}

.btn-search-trigger {
    cursor: pointer;
    transition: color 0.3s ease, transform 0.2s ease;
    font-size: 1rem;
}

.btn-search-trigger:hover {
    color: var(--primary-green) !important;
}

.btn-search-trigger:focus-visible {
    outline: 2px solid var(--primary-green);
    outline-offset: 4px;
}

/* Bootstrap helper if not already in your build */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ----------------------------------------------------------------
   9. FOOTER
-----------------------------------------------------------------*/
footer .app p{margin-bottom:3px;}
footer .app img{margin-bottom:20px;}
footer .app div{margin-left:28px;}
footer .btn-primary-green{max-width:98%;}
.site-footer {
    background-color: var(--dark-green) !important;
    padding: 80px 0 40px !important;
}

.footer-heading {
    border-left: 3px solid var(--primary-green);
    padding-left: 15px;
    margin-bottom: 25px;
    font-size: 24px;
    color: var(--white);
    line-height: 1;
	font-weight:500;
}

.site-footer a {
	color: var(--white);
}

.site-footer .d-flex { align-items: flex-start !important; }

.footer-links {
    list-style: none;
    padding: 0;
}

.footer-links li {
    position: relative;
    padding-left: 20px;
    line-height: 32px;
}

.footer-links li::before {
    content: "•";
    color: var(--primary-green);
    position: absolute;
    left: 0;
}

.footer-links a {
    color: var(--white);
    text-decoration: none;
    font-size: 18px;
}

footer p{
	font-size:.9em;
}


.footer-links a:hover { 
	text-decoration: underline; 
}

.social-links a i { 
	color: var(--white); 
	font-size: 32px !important; 
}

.brightness-0b { filter: brightness(0) invert(1); }


/* --- Search Results Styling --- */

.search-result-card {
    transition: all 0.3s ease;
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid rgba(0,0,0,0.05);
}

.search-result-card:hover {
    box-shadow: 0 15px 30px rgba(0,0,0,0.1) !important;
}

.result-img-wrapper {
    height: 210px;
    width: 100%;
    overflow: hidden;
    background-color: #e9ecef; /* Placeholder color while loading */
}

.result-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Forces the panoramic heroes to crop into a card shape */
    object-position: center;
}


/* Custom Pagination UI */
.pagination-wrapper .nav-links {
    display: flex;
    gap: 8px;
    align-items: center;
}

.pagination-wrapper .page-numbers {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--dark-green);
    text-decoration: none !important;
    border-radius: 0;
    font-weight: 600;
    transition: all 0.2s ease;
    border: 1px solid #eee;
}

.pagination-wrapper .page-numbers:hover {
    background: var(--lichen);
    border-color: var(--primary-green);
}

.pagination-wrapper .page-numbers.current {
    background: var(--primary-green);
    color: var(--dark-green);
    border-color: var(--primary-green);
}

/* Secondary Search Box Styling */
#search-results .form-control {
    border: 1px solid #ddd;
}

#search-results .form-control:focus {
    border-color: var(--primary-green);
    box-shadow: none;
}

.search-result-card p.small {
    /* Standardizes the height of the description area */
    display: -webkit-box;
    -webkit-line-clamp: 4; /* Keeps it to 4 lines to match your slider preference */
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 6em; /* Reserves space even if the description is short */
    line-height: 1.5;
}

.search-error-msg {
    font-weight: 600;
    font-size: 0.85rem;
    padding-top: 4px;
}

/* Highlight the input border when invalid */
.form-control.is-invalid {
    border-color: #dc3545 !important;
    background-image: none; /* Remove default browser icons if necessary */
}

/* Ensure the form wraps correctly to show error below input */
.search-form {
    align-items: flex-start !important;
}

#cff .cff-post-desc, #cff .cff-text {
   font-size: 18px !important;
}
.cff-post-text {
	padding: 0px 8px !important;
}
#cff .cff-date, #cff .cff-more, #cff .cff-less {
   font-size: 16px !important;
}
#cff .cff-date, #cff .cff-expand {
   margin-left: 10px !important;	
}

#cff .cff-load-more {
    float: none !important;      /* Remove the plugin's left float */
    display: table !important;   /* Allows margin: auto to work on an anchor tag */
    margin: 20px auto !important; /* Centers horizontally and adds vertical spacing */
    clear: both; 
    width: auto !important;      /* Prevents it from stretching to full width */
}


/* Existing hover logic + new focus logic */
.navbar-nav .menu-item-has-children:hover > .sub-menu,
.navbar-nav .menu-item-has-children.focus > .sub-menu {
    visibility: visible;
    opacity: 1;
    display: block; /* Or whatever layout you use */
}

/* Ensure the FontAwesome arrow also rotates on focus */
.menu-item-has-children.focus > a::after {
    transform: rotate(180deg);
}

.hero-section, 
.secondary-hero {
    background-image: var(--bg-desktop);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

@media (max-width: 767px) {
    .hero-section, 
    .secondary-hero {
        /* Automatically swaps to mobile if --bg-mobile is defined in the style attribute */
        background-image: var(--bg-mobile);
    }
}

/* 2. Make the Card a Flex Container */
.other-photo-galleries .card-slider .custom-grid-card {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    height: 100%; /* Stretch to fill .item */
    background: #fff;
    transition: all 0.3s ease;
}

/* 3. Content Area Logic */
.other-photo-galleries .card-slider .card-content-area {
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Pushes the area to fill remaining space */
    padding: 1.5rem 1.5rem 0px 1.5rem !important
}
/* 4. Description & Title Spacing */
.other-photo-galleries .card-slider .card-text-group {
    flex-grow: 1; /* This pushes the button (mt-auto) to the bottom */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centers text vertically if it's short */
}

.other-photo-galleries .card-slider .card-description {
    min-height: 3em; /* Ensures space for at least 2 lines of text */
    margin-bottom: 0px;
    line-height: 1.5;
}

/* 5. Button Positioning */
.other-photo-galleries .card-slider .mt-auto {
    margin-top: auto !important; /* Final safety to anchor button at bottom */
}

.other-things-to-do .owl-carousel .owl-item .card-icon-wrapper img {
    width: 80px;
    height: auto;
}
.other-things-to-do .card-slider .owl-stage {
    display: flex !important;
}
.other-things-to-do .card-slider .owl-item {
    display: flex !important;
    flex: 1 0 auto;
}

.other-things-to-do .card-slider .item {
    display: flex;
    width: 100%;
}
/* 2. Make the Card a Flex Container */
.other-things-to-do .card-slider .custom-grid-card {
    display: flex !important;
    flex-direction: column;
    width: 100%;
    height: 100%; /* Stretch to fill .item */
    background: #fff;
    transition: all 0.3s ease;
}

/* 3. Content Area Logic */
.other-things-to-do .card-slider .card-content-area {
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Pushes the area to fill remaining space */
    padding: 2.5rem 1.5rem 1.5rem 1.5rem !important;
}
/* 4. Description & Title Spacing */
.other-things-to-do .card-slider .card-text-group {
    flex-grow: 1; /* This pushes the button (mt-auto) to the bottom */
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centers text vertically if it's short */
}

.other-things-to-do .card-slider .card-description {
    min-height: 3em; /* Ensures space for at least 2 lines of text */
    margin-bottom: 0px;
    line-height: 1.5;
}

/* 5. Button Positioning */
.other-things-to-do .card-slider .mt-auto {
    margin-top: auto !important; /* Final safety to anchor button at bottom */
}

/* ----------------------------------------------------------------
   10. MOBILE STYLES
-----------------------------------------------------------------*/
@media (min-width: 992px) {
    .site-header.scrolled .navbar {
        /* Parameters: Offset-X | Offset-Y | Blur | Spread | Color
           A 15% opacity black (0.15) provides a professional, "obvious" look.
        */
        box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.15) !important;
        
        /* Optional: Add a very faint bottom border to sharpen the edge */
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        
        /* Ensure the transition for the shadow is smooth */
        transition: transform 0.4s ease, height 0.4s ease, box-shadow 0.3s ease;
    }    
    .navbar-nav .menu-item-has-children:hover > .sub-menu, .navbar-nav .sub-menu:hover { 
        display: block; 
        opacity: 1; 
        visibility: visible; 
    }
	.featured-experiences{
	    background: linear-gradient(to bottom, #0F423A 0%, #0F423A 60%, #fff 40%, #fff 100%);
    }  
	.top-links {
        gap: 1.5rem !important; /* Slightly reduce gap to save space */
        white-space: nowrap;    /* Prevents the text inside links from wrapping */
    }

    /* Ensure the container uses more of the available width */
    .top-bar .container-fluid {
        max-width: 100%;
        padding-left: 2rem !important;
        padding-right: 2rem !important;
    }
}

/* Fix the top-bar height and alignment on small mobile */
@media (max-width: 575px) {
    .top-bar .contact-info {
        font-size: 14px;
        padding: 5px 0;
    }
    /* Ensure the search icon is large enough to tap */
    #mobile-search-toggle {
        padding: 10px !important;
        font-size: 1.1rem;
    }
}

/* Ensure the hamburger shows consistently at mid-resolutions */
@media (max-width: 1199px) {
    .navbar-expand-xl .navbar-toggler {
        display: block !important;
    }
    .navbar-expand-xl .navbar-collapse {
        display: none !important;
    }
    .navbar-expand-xl .navbar-collapse.show {
        display: block !important;
    }
}
/* --- 1. Desktop Nav Scaling (992px to 1400px) --- */
@media (min-width: 1150px) and (max-width: 1450px) {
    .header-logo { height: 50px !important; }
    .header-nav-list { gap: 0.25rem !important; } /* Minimal gap to fit all items */
    .navbar-nav .menu-item > a { 
        font-size: 16px !important; 
        padding-left: 5px !important; 
        padding-right: 5px !important; 
    }
    .nav-book-btn { 
        padding: 8px 12px !important; 
        font-size: 11px !important; 
    }
}

@media (min-width: 992px) and (max-width: 1150px) {
    .header-logo { height: 50px !important; }
    .header-nav-list { gap: 0.25rem !important; } /* Minimal gap to fit all items */
    .navbar-nav .menu-item > a { 
        font-size: 14px !important; 
        padding-left: 5px !important; 
        padding-right: 5px !important; 
    }
    .nav-book-btn { 
        padding: 8px 12px !important; 
        font-size: 11px !important; 
    }
}

/* --- 2. Tablet & Mobile Navigation (Below 992px) --- */
@media (max-width: 991px) {
	
    .admin-bar .site-header22 {
        top: 46px !important;
    }    
    .site-header.scrolled {
        transform: translateY(-78px);
    }
	#main .card-slider .item{padding:0px!important;}
	.featured-experiences{background-color:#0F423A;}
	section .btn-primary-green, .btn-dark-green{font-size:.8em;padding:15px!important;}
	h2{font-size:1.8em;}
	
    .top-bar { height: auto !important; padding: 8px 0; }

    #header-search-bar {
        top: 100%; /* Positions it right under the sticky header */
        padding: 15px 20px;
        background-color: #fff;
        border-bottom: 2px solid var(--primary-green);
    }

    #header-search-bar .container {
        padding: 0;
    }

    #header-search-bar .form-control {
        font-size: 16px; /* Prevents iOS from auto-zooming on focus */
        height: 45px;
    }

    #header-search-bar .btn-primary-green {
        height: 45px;
        padding: 0 15px;
    }

    .top-bar .container-fluid {
        flex-wrap: nowrap !important; /* Forces items to stay on one line */
    }

    .contact-info {
        width: auto !important; /* Allow it to shrink to fit */
        flex-grow: 1;
    }

    .contact-info .d-flex {
        gap: 10px !important; /* Tighten gap between phone/email on mobile */
    }

    #mobile-search-toggle {
        margin-left: auto; /* Pushes the icon to the far right */
        padding-left: 10px;
    }
	
	.top-bar .container-fluid {
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        flex-wrap: nowrap !important; /* Prevents wrapping regardless of content */
        padding: 5px 15px !important;
    }

    /* 2. Prevent the contact-info div from taking up the whole width */
    .top-bar .contact-info {
        flex-direction: row !important;
        width: auto !important;
        flex-grow: 0 !important;
        text-align: left !important;
        margin: 0 !important;
        gap: 15px !important;
    }

    /* 3. Ensure the nested div (with phone/email) also stays in a row */
    .top-bar .contact-info > div.d-flex {
        flex-direction: row !important;
        gap: 15px !important;
        width: auto !important;
    }

    /* 4. Center the Search Toggle in the group */
    #mobile-search-toggle {
        margin: 0 0 0 5px !important;
        padding: 5px !important;
        display: flex !important;
        align-items: center;
		font-size: 1rem;
    }
    /* Prevent the "What's On" text from wrapping on desktop/tablet */
    .top-links a {
        white-space: nowrap !important;
    }	

    .navbar { min-height: 70px !important; }
    .header-logo { height: 60px !important; }
	.navbar-nav .menu-item > a::before{display:none;}
    .navbar-toggler {
        font-size: .8em;
        background: var(--dark-green);
        padding: 6px 10px;
        border-radius: 0;
    }
	.navbar-nav .menu-item{line-height:36px;}
    .navbar-nav .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    background: var(--white);
    box-shadow:none;
    border-top: 0px solid var(--primary-green);
}
	.navbar-toggler-icon{
		background:url('/wp-content/uploads/2026/03/hamburger.svg');
	}
    .navbar-toggler:focus {
        box-shadow: none;
    }
	
    .navbar-collapse {
        background: #fff;
        border-top: 2px solid var(--primary-green);
        margin-top: 10px;
        padding: 10px 20px 30px !important;
    }

	.nav-tabs .nav-link{font-size:22px;}
    .mobile-nav-list .menu-item > a {
        padding: 0 !important;
        font-size: 18px !important;
        border: none !important;
        text-transform: uppercase;
    }

    .mobile-nav-list .current-menu-item > a {
        font-weight: bold !important;
        color: var(--primary-green) !important;
    }   

    /* Dropdown Accordion Logic */
    .mobile-nav-list .sub-menu {
        position: static !important;
        display: none; 
        padding: 0 0 10px 20px !important;
        background: transparent !important;
        opacity: 1 !important;
        overflow: hidden;
        visibility: visible !important;        
    }
    
    .mobile-nav-list .menu-item-has-children > a {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
    }    

    .menu-item-has-children > a::after {
        content: "\f107"; 
        font-family: "Font Awesome 7 Free"; 
        font-weight: 900;
        font-size: 22px; /* Increased size */
        margin-left: 15px;
        transition: transform 0.5s ease; /* Gradual rotation match */
        display: inline-block;
        line-height: 1; /* Prevents icon height from adding extra padding */
    }

    .menu-item-has-children.active-dropdown > a::after { 
        transform: rotate(180deg); 
    }   

    .mobile-nav-cta {
        border-top: 1px solid rgba(0, 0, 0, 0.1); /* Subtle separator */
        padding-top: 20px;
        margin-top: 10px;
    }

    .mobile-nav-cta .btn {
        font-size: 16px;
        text-transform: uppercase;
        font-weight: bold;
        letter-spacing: 1px;
        border-radius: 0; /* Match your design style */
        display: flex;
        justify-content: center;
        align-items: center;
    }
    
    /* Ensure the drawer is scrollable if the menu is long */
    .navbar-collapse {
        max-height: 90vh;
        overflow-y: auto;
    }

    /* Block Padding Consistency (Reduced for Mobile) */
    section { padding: 40px 0 !important; }
    
	.breadcrumb-nav-wrapper	{
		padding-bottom: 0px !important;
	}
	.hero-section {
        align-items: flex-start !important; /* Move box toward the top */
        padding-top: 40px !important;
        min-height: 500px !important;
    }
    .hero-content {
        margin-top: 0 !important;
        padding: 25px !important;
		width: 100% !important;
    }
	
	.card-slider .card-title {
		font-size: 24px;
	}

	
    /* Carousel Fix: Force Dots, Hide Arrows */
    .owl-nav { display: none !important; }
    .owl-dots { display: block !important; }
}
@media (max-width: 767px) {
	.section-padding {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
        padding-left: 0px !important;
        padding-right: 0px !important;
    }
	.testimonials.section-padding {
        padding-left: 15px !important;
        padding-right: 15px !important;	
	}		
}

/* --- 3. Small Phones (Below 576px) --- */
@media (max-width: 576px) {
    .hero-content .d-flex { flex-direction: column !important; gap: 10px !important; }
    .hero-content .btn { width: 100% !important; display: flex !important;}
    
    h1.display-4 { font-size: 2.2rem !important; }
    h2.display-5 { font-size: 1.8rem !important; }
	
	.top-bar .contact-info {
        flex-direction: column; /* Stack phone and email to prevent wrap/overlap */
        gap: 5px !important;
        text-align: center;
        width: 100%;
    }
    .top-bar {
        height: auto !important;
        padding: 10px 0;
    }
    .top-bar .container-fluid {
        justify-content: center !important;
    }	
}
/*===========gallery===============*/
#bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled, #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled:hover, #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 a.disabled:focus, #bwg_container1_0 #bwg_container2_0 .tablenav-pages_0 input.bwg_current_page{color:#000!important;}
/*============Reviews=============*/
/* Force dots to be at least 24px and remove the shrinking scale */
.rpi .rpi-dots .rpi-dot {
   transform: none !important;
    flex: 0 0 24px !important; /* Prevents them from squishing in a tight flex row */
}

/* Ensure the active dot doesn't shrink either */
.rpi .rpi-dots .rpi-dot.active {
   transform: none !important;
    width: 24px !important;
    height: 24px !important;
    opacity: 1 !important;
}

/* Ensure the container doesn't cut off the larger dots */
.rpi .rpi-dots {
    padding: 10px 0 !important;
    overflow-y: visible !important;
    align-items: center;
}
.rpi .rpi-dots .rpi-dot.s1,
.rpi .rpi-dots .rpi-dot.s2,
.rpi .rpi-dots .rpi-dot.s3,
.rpi .rpi-dots .rpi-dot.s4,
.rpi .rpi-dots .rpi-dot.s5 {
    transform: none !important;
    width: 24px !important;
    height: 24px !important;
    opacity: 0.4 !important; /* Keep them subtle if they aren't active */
}
textarea[name="_wpcf7_recaptcha_response"] {
    display: block !important;
    width: 0 !important;
    height: 0 !important;
    opacity: 0 !important;
    position: absolute !important;
    z-index: -1 !important;
}