/* ================================================
   UDAT Core - Frontend Base Styles
   These are the default styles for rendered pages.
   Sites can override via Site CSS in the database.
   This file is also loaded inside the WYSIWYG editor
   so the preview matches the live site.
   ================================================ */

/* ==== DESIGN TOKENS (managed via Settings > Design) ==== */
:root {
    /* Body */
    --ucf-body-bg: #ece1cb;
    --ucf-body-padding: 0;
    --ucf-body-margin: 0;

    /* Layout */
    --ucf-max-width: 1200px;
    --ucf-super-max-width: 1600px;
    --ucf-content-padding: 20px;
    --ucf-section-spacing: 0px;
    --ucf-row-gap: 24px;

    /* Typography */
    --ucf-font: 'PT Serif', serif;
    --ucf-font-heading: 'Really Big Shoe NF W01 Regular';
    --ucf-font-size: 16px;
    --ucf-font-size-sm: 14px;
    --ucf-font-size-lg: 18px;
    --ucf-line-height: 1.7;
    --ucf-h1-size: 2.25em;
    --ucf-h2-size: 1.75em;
    --ucf-h3-size: 1.35em;
    --ucf-h4-size: 1.15em;
    --ucf-heading-weight: 700;

    /* Colours */
    --ucf-text: #47341a;
    --ucf-text-light: #744316;
    --ucf-link: #744316;
    --ucf-link-hover: #744316;
    --ucf-bg: #c1b5a9;
    --ucf-bg-alt: #b4a48b;
    --ucf-border: #2b1500;
    --ucf-success: #10b981;
    --ucf-warning: #f59e0b;
    --ucf-danger: #ef4444;
    --ucf-accent: #744316;

    /* Buttons */
    --ucf-btn-bg: #47341a;
    --ucf-btn-color: #ffffff;
    --ucf-btn-secondary-bg: #c1b5a9;
    --ucf-btn-secondary-color: var(--ucf-link);
    --ucf-btn-radius: 0px;
    --ucf-btn-padding: 12px 28px;
    --ucf-btn-font-size: 0.95em;
    --ucf-btn-font-weight: 600;

    /* Cards */
    --ucf-card-radius: 8px;
    --ucf-card-shadow: 0 1px 3px rgba(0,0,0,0.1);
    --ucf-card-border: 1px solid var(--ucf-border);
    --ucf-card-padding: 16px;

    /* Radius */
    --ucf-radius: 6px;
    --ucf-radius-lg: 12px;
    --ucf-radius-full: 9999px;

    /* Navigation */
    --ucf-nav-bg: #2b1500;
    --ucf-nav-color: rgba(255,255,255,0.85);
    --ucf-nav-hover: #ffffff;
    --ucf-nav-active-color: var(--ucf-nav-hover);
    --ucf-nav-hover-bg: rgba(255,255,255,0.08);
    --ucf-nav-logo-padding: 0;
    --ucf-nav-font-size: 0.95em;
    --ucf-footer-bg: #1a202c;
    --ucf-footer-color: rgba(255,255,255,0.7);

    /* Forms */
    --ucf-input-radius: 6px;
    --ucf-input-border: 1px solid var(--ucf-border);
    --ucf-input-padding: 10px 14px;
    --ucf-input-focus: 0 0 0 3px rgba(13,110,110,0.1);

}
/* ==== END DESIGN TOKENS ==== */

/* Base */

body
{
background-color: #f3ead6;
padding: 0px;
margin: 0px;
}

h1, h2, h3, h4, h5, h6
{
font-family: 'Really Big Shoe NF W01 Regular';
text-align: center;
}


.uc-frontend {
    font-family: var(--ucf-font);
    color: var(--ucf-text);
    line-height: 1.7;
    font-size: 16px;
    background: var(--ucf-body-bg, #ffffff);
    padding: var(--ucf-body-padding, 0);
    margin: var(--ucf-body-margin, 0);
}

/* Content container — enables @container queries for responsive blocks.
   In the viewer this targets <body><main>; in the editor #editorCanvas
   is set directly in wysiwyg-editor.css so preview widths trigger queries. */
body > main {
    container-type: inline-size;
}

.uc-frontend * { box-sizing: border-box; }

.uc-frontend a { color: var(--ucf-link); text-decoration: none; }
.uc-frontend a:hover { text-decoration: underline; }
.uc-frontend img { max-width: 100%; height: auto; }
.uc-frontend .uc-image img { width: 100%; display: block; }
.uc-slider-text-bg { padding: 20px 30px; border-radius: var(--ucf-radius); display: inline-block; }
.uc-frontend h1, .uc-frontend h2, .uc-frontend h3, .uc-frontend h4 { margin: 0 0 0.5em; line-height: 1.3; font-weight: 700; }
.uc-frontend h1 { font-size: 2.25em; }
.uc-frontend h2 { font-size: 1.75em; }
.uc-frontend h3 { font-size: 1.35em; }
.uc-frontend h4 { font-size: 1.15em; }
.uc-frontend p { margin: 0 0 1em; }
.uc-frontend ul, .uc-frontend ol { margin: 0 0 1em 1.5em; }

/* ============================================================
   Navigation — all 8 styles
   Note: navs live outside <main> so use @media not @container
   ============================================================ */

/* ---- Shared base ---- */
.ucf-nav {
    --nav-bg:          var(--ucf-nav-bg, #1a202c);
    --nav-color:       var(--ucf-nav-color, rgba(255,255,255,0.85));
    --nav-hover-bg:    rgba(255,255,255,0.08);
    --nav-hover-color: #fff;
    --nav-active-color:#fff;
    --nav-active-line: rgba(255,255,255,0.08);;
    --nav-dropdown-bg: var(--ucf-nav-bg, #1a202c);
    --nav-height:      56px;
    font-size: 0.95em;
    font-weight: 500;
    position: relative;
    z-index: 200;
    font-family: 'Really Big Shoe NF W01 Regular';
}
.ucf-nav ul { list-style: none; margin: 0; padding: 0; }
.ucf-nav a {
    color: var(--nav-color);
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
    display: flex;
    align-items: center;
    gap: 6px;
}
.ucf-nav a:hover { color: var(--nav-hover-color); text-decoration: none; }
.ucf-nav .ucf-nav-icon { font-size: 18px; flex-shrink: 0; }
.ucf-nav li.active > a { color: var(--nav-active-color); }
/* Heading item (non-link label) */
.ucf-nav .ucf-nav-heading {
    padding: 6px 16px 4px;
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.4);
    pointer-events: none;
}
/* Separator item */
.ucf-nav .ucf-nav-sep {
    height: 1px;
    background: rgba(255,255,255,0.12);
    margin: 6px 12px;
}
/* Hamburger toggle button (shared by multiple styles) */
.ucf-nav-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    color: var(--nav-color);
    line-height: 1;
}
.ucf-nav-toggle .material-symbols-outlined { font-size: 26px; }
/* Close button inside drawers/overlay */
.ucf-nav-close {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--nav-color);
    padding: 8px;
    line-height: 1;
    display: flex;
    align-items: center;
}
.ucf-nav-close .material-symbols-outlined { font-size: 26px; }

/* ----------------------------------------------------------------
   1. HORIZONTAL — top bar, dropdowns on hover, hamburger on mobile
   ---------------------------------------------------------------- */

.ucf-nav-horizontal .ucf-nav-inner > ul {
    justify-content: center;
}


.ucf-nav-horizontal {
    background: var(--nav-bg);
    padding: 0 20px;
}
.ucf-nav-horizontal .ucf-nav-inner {
    display: flex;
    align-items: center;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    position: relative;
}
.ucf-nav-horizontal .ucf-nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-right: 24px;
    text-decoration: none;
    color: var(--nav-color);
    font-weight: 700;
    font-size: 1.1em;
    white-space: nowrap;
    flex-shrink: 0;
}
.ucf-nav-horizontal .ucf-nav-logo img { height: 36px; width: auto; }
.ucf-nav-horizontal > .ucf-nav-inner > ul {
    display: flex;
    align-items: center;
justify-items: center;
    flex: 1;
}
.ucf-nav-horizontal > .ucf-nav-inner > ul > li { position: relative; }
.ucf-nav-horizontal > .ucf-nav-inner > ul > li > a {
    padding: 0 18px;
    height: var(--nav-height);
    white-space: nowrap;
}
.ucf-nav-horizontal > .ucf-nav-inner > ul > li > a:hover { background: var(--nav-hover-bg); }
.ucf-nav-horizontal > .ucf-nav-inner > ul > li.active > a {
    border-bottom: 3px solid var(--nav-active-line);
}
/* Dropdown arrow */
.ucf-nav-horizontal .ucf-nav-arrow {
    font-size: 14px;
    margin-left: 2px;
    transition: transform 0.2s;
    opacity: 0.7;
}
.ucf-nav-horizontal li:hover > a .ucf-nav-arrow { transform: rotate(180deg); }
/* Dropdown */
.ucf-nav-horizontal .ucf-nav-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 200px;
    background: var(--nav-dropdown-bg);
    border-radius: 0 0 6px 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 0.18s, transform 0.18s;
    z-index: 100;
}
.ucf-nav-horizontal li:hover > .ucf-nav-dropdown,
.ucf-nav-horizontal li:focus-within > .ucf-nav-dropdown {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.ucf-nav-horizontal .ucf-nav-dropdown a {
    padding: 10px 16px;
    white-space: nowrap;
}
.ucf-nav-horizontal .ucf-nav-dropdown a:hover { background: var(--nav-hover-bg); }
/* Mobile — hamburger */
@media (max-width: 767px) {
    .ucf-nav-horizontal .ucf-nav-toggle { display: flex; margin-left: auto; }
    .ucf-nav-horizontal > .ucf-nav-inner > ul {
        display: none;
        flex-direction: column;
        position: absolute;
        top: var(--nav-height);
        left: -20px; right: -20px;
        background: var(--nav-bg);
        padding: 8px 0;
        box-shadow: 0 8px 24px rgba(0,0,0,0.3);
        z-index: 100;
    }
    .ucf-nav-horizontal > .ucf-nav-inner > ul[data-open] { display: flex; }
    .ucf-nav-horizontal > .ucf-nav-inner > ul > li > a {
        height: auto;
        padding: 12px 20px;
        border-bottom: 1px solid rgba(255,255,255,0.07);
    }
    .ucf-nav-horizontal .ucf-nav-dropdown {
        position: static;
        opacity: 1;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        background: rgba(0,0,0,0.15);
        border-radius: 0;
    }
    .ucf-nav-horizontal .ucf-nav-dropdown a { padding: 10px 36px; }
    .ucf-nav-horizontal > .ucf-nav-inner > ul > li.active > a { border-bottom: 1px solid rgba(255,255,255,0.07); border-left: 3px solid var(--nav-active-line); }
}

/* ----------------------------------------------------------------
   2. HAMBURGER — always a toggle, never horizontal
   ---------------------------------------------------------------- */
.ucf-nav-hamburger {
    background: var(--nav-bg);
    padding: 0 20px;
}
.ucf-nav-hamburger .ucf-nav-inner {
    display: flex;
    align-items: center;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    height: var(--nav-height);
}
.ucf-nav-hamburger .ucf-nav-logo {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--nav-color);
    font-weight: 700;
    font-size: 1.1em;
    text-decoration: none;
}
.ucf-nav-hamburger .ucf-nav-logo img { height: 36px; width: auto; }
.ucf-nav-hamburger .ucf-nav-toggle { display: flex; }
.ucf-nav-hamburger .ucf-nav-menu {
    display: none;
    flex-direction: column;
    position: absolute;
    top: var(--nav-height);
    left: 0; right: 0;
    background: var(--nav-bg);
    padding: 8px 0;
    box-shadow: 0 8px 24px rgba(0,0,0,0.3);
    z-index: 100;
}
.ucf-nav-hamburger .ucf-nav-menu[data-open] { display: flex; }
.ucf-nav-hamburger .ucf-nav-menu > li > a {
    padding: 12px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
}
.ucf-nav-hamburger .ucf-nav-menu > li > a:hover { background: var(--nav-hover-bg); }
.ucf-nav-hamburger .ucf-nav-menu .ucf-nav-dropdown { background: rgba(0,0,0,0.15); }
.ucf-nav-hamburger .ucf-nav-menu .ucf-nav-dropdown a { padding: 10px 36px; }
.ucf-nav-hamburger .ucf-nav-menu li.active > a { border-left: 3px solid var(--nav-active-line); }

/* ----------------------------------------------------------------
   3. BREADCRUMB
   ---------------------------------------------------------------- */
.ucf-nav-breadcrumb {
    padding: 10px 20px;
}
.ucf-nav-breadcrumb ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    font-size: 0.875em;
}
.ucf-nav-breadcrumb li {
    display: flex;
    align-items: center;
}
.ucf-nav-breadcrumb li + li::before {
    content: '/';
    padding: 0 8px;
    color: var(--ucf-text-light, rgba(0,0,0,0.35));
}
.ucf-nav-breadcrumb a {
    color: var(--ucf-link, #38b2ac);
    padding: 2px 0;
}
.ucf-nav-breadcrumb li[aria-current] a,
.ucf-nav-breadcrumb li[aria-current] span {
    color: var(--ucf-text, #333);
    pointer-events: none;
    font-weight: 500;
}

/* ----------------------------------------------------------------
   4. LIST — footer/sidebar link list
   ---------------------------------------------------------------- */
.ucf-nav-list {
    padding: 4px 0;
}
.ucf-nav-list .ucf-nav-heading {
    padding: 8px 0 4px;
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ucf-text-muted, #666);
    font-weight: 600;
}
.ucf-nav-list a {
    padding: 5px 0;
    color: var(--ucf-text, #333);
    font-size: 0.9em;
    display: flex;
    align-items: center;
    gap: 6px;
}
.ucf-nav-list a:hover { color: var(--ucf-link, #38b2ac); }
.ucf-nav-list li.active > a { color: var(--ucf-link, #38b2ac); font-weight: 600; }
.ucf-nav-list .ucf-nav-sep { background: var(--ucf-border, #e2e8f0); margin: 6px 0; }

/* ----------------------------------------------------------------
   5. VERTICAL — sidebar nav with expand/collapse sub-items
   ---------------------------------------------------------------- */
.ucf-nav-vertical {
    background: var(--nav-bg);
    padding: 8px 0;
    border-radius: 6px;
}
.ucf-nav-vertical > ul > li > a {
    padding: 10px 16px;
    justify-content: space-between;
}
.ucf-nav-vertical > ul > li > a:hover { background: var(--nav-hover-bg); }
.ucf-nav-vertical li.active > a { color: var(--nav-active-color); background: var(--nav-hover-bg); border-left: 3px solid var(--nav-active-line); }
.ucf-nav-vertical .ucf-nav-expand {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--nav-color);
    opacity: 0.6;
    padding: 0;
    line-height: 1;
    transition: transform 0.2s;
    flex-shrink: 0;
}
.ucf-nav-vertical .ucf-nav-expand .material-symbols-outlined { font-size: 18px; }
.ucf-nav-vertical li[data-open] > .ucf-nav-expand { transform: rotate(180deg); }
.ucf-nav-vertical .ucf-nav-sub {
    display: none;
    background: rgba(0,0,0,0.12);
}
.ucf-nav-vertical li[data-open] > .ucf-nav-sub { display: block; }
.ucf-nav-vertical .ucf-nav-sub a { padding: 8px 16px 8px 32px; font-size: 0.9em; }
.ucf-nav-vertical .ucf-nav-sub a:hover { background: var(--nav-hover-bg); }
.ucf-nav-vertical .ucf-nav-heading { padding: 10px 16px 4px; }
.ucf-nav-vertical .ucf-nav-sep { margin: 6px 12px; }

/* ----------------------------------------------------------------
   6. POPOUT — slide-in drawer from the side
   ---------------------------------------------------------------- */
.ucf-nav-popout {
    background: var(--nav-bg);
    padding: 0 20px;
}
.ucf-nav-popout .ucf-nav-inner {
    display: flex;
    align-items: center;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    height: var(--nav-height);
}
.ucf-nav-popout .ucf-nav-logo {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--nav-color);
    font-weight: 700;
    font-size: 1.1em;
    text-decoration: none;
}
.ucf-nav-popout .ucf-nav-logo img { height: 36px; width: auto; }
.ucf-nav-popout .ucf-nav-toggle { display: flex; }
.ucf-nav-popout-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 299;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s;
}
.ucf-nav-popout[data-open] .ucf-nav-popout-backdrop {
    opacity: 1;
    pointer-events: auto;
}
.ucf-nav-popout-drawer {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 280px;
    background: var(--nav-bg);
    z-index: 300;
    transform: translateX(-100%);
    transition: transform 0.28s cubic-bezier(.4,0,.2,1);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
}
.ucf-nav-popout[data-open] .ucf-nav-popout-drawer { transform: translateX(0); }
.ucf-nav-popout-drawer .ucf-nav-drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    flex-shrink: 0;
}
.ucf-nav-popout-drawer .ucf-nav-drawer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--nav-color);
    font-weight: 700;
    text-decoration: none;
}
.ucf-nav-popout-drawer .ucf-nav-drawer-logo img { height: 30px; width: auto; }
.ucf-nav-popout-drawer ul { padding: 8px 0; }
.ucf-nav-popout-drawer > ul > li > a { padding: 12px 20px; }
.ucf-nav-popout-drawer a:hover { background: var(--nav-hover-bg); }
.ucf-nav-popout-drawer li.active > a { border-left: 3px solid var(--nav-active-line); color: var(--nav-active-color); }
.ucf-nav-popout-drawer .ucf-nav-sub { background: rgba(0,0,0,0.15); }
.ucf-nav-popout-drawer .ucf-nav-sub a { padding: 10px 20px 10px 36px; font-size: 0.9em; }
.ucf-nav-popout-drawer .ucf-nav-heading { padding: 10px 20px 4px; }
.ucf-nav-popout-drawer .ucf-nav-sep { margin: 6px 12px; }

/* ----------------------------------------------------------------
   7. MEGAMENU — full-width dropdown panel with columns
   ---------------------------------------------------------------- */
.ucf-nav-megamenu {
    background: var(--nav-bg);
    padding: 0 20px;
    position: relative;
}
.ucf-nav-megamenu .ucf-nav-inner {
    display: flex;
    align-items: center;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
}
.ucf-nav-megamenu .ucf-nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-right: 24px;
    color: var(--nav-color);
    font-weight: 700;
    font-size: 1.1em;
    text-decoration: none;
    flex-shrink: 0;
}
.ucf-nav-megamenu .ucf-nav-logo img { height: 36px; width: auto; }
.ucf-nav-megamenu > .ucf-nav-inner > ul {
    display: flex;
    align-items: stretch;
    flex: 1;
}
.ucf-nav-megamenu > .ucf-nav-inner > ul > li { position: static; }
.ucf-nav-megamenu > .ucf-nav-inner > ul > li > a {
    padding: 0 18px;
    height: var(--nav-height);
    white-space: nowrap;
}
.ucf-nav-megamenu > .ucf-nav-inner > ul > li > a:hover { background: var(--nav-hover-bg); }
.ucf-nav-megamenu > .ucf-nav-inner > ul > li.active > a { border-bottom: 3px solid var(--nav-active-line); }
.ucf-nav-megamenu .ucf-nav-arrow { font-size: 14px; margin-left: 2px; opacity: 0.7; transition: transform 0.2s; }
.ucf-nav-megamenu li:hover > a .ucf-nav-arrow { transform: rotate(180deg); }
/* Mega panel */
.ucf-nav-mega-panel {
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--nav-dropdown-bg);
    padding: 24px 20px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 0.18s, transform 0.18s;
    z-index: 100;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 24px;
}
.ucf-nav-megamenu li:hover > .ucf-nav-mega-panel,
.ucf-nav-megamenu li:focus-within > .ucf-nav-mega-panel {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.ucf-nav-mega-col > .ucf-nav-col-heading {
    font-size: 0.75em;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.4);
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    margin-bottom: 8px;
}
.ucf-nav-mega-col a { padding: 7px 0; font-size: 0.9em; }
.ucf-nav-mega-col a:hover { color: #fff; }
/* Mobile — hamburger for megamenu */
@media (max-width: 767px) {
    .ucf-nav-megamenu .ucf-nav-toggle { display: flex; margin-left: auto; }
    .ucf-nav-megamenu > .ucf-nav-inner > ul {
        display: none;
        flex-direction: column;
        position: fixed;
        top: 0; left: 0; right: 0; bottom: 0;
        background: var(--nav-bg);
        overflow-y: auto;
        padding: 60px 0 20px;
        z-index: 100;
    }
    .ucf-nav-megamenu > .ucf-nav-inner > ul[data-open] { display: flex; }
    .ucf-nav-megamenu > .ucf-nav-inner > ul > li > a { height: auto; padding: 12px 20px; border-bottom: 1px solid rgba(255,255,255,0.07); }
    .ucf-nav-mega-panel { position: static; opacity: 1; pointer-events: auto; transform: none; box-shadow: none; grid-template-columns: 1fr; padding: 0 0 0 20px; background: rgba(0,0,0,0.15); gap: 0; }
    .ucf-nav-mega-col > .ucf-nav-col-heading { padding: 8px 16px 4px; border: none; margin: 0; }
    .ucf-nav-mega-col a { padding: 8px 16px; }
}

/* ----------------------------------------------------------------
   8. OVERLAY — full-screen takeover menu
   ---------------------------------------------------------------- */
.ucf-nav-overlay {
    background: var(--nav-bg);
    padding: 0 20px;
}
.ucf-nav-overlay .ucf-nav-inner {
    display: flex;
    align-items: center;
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    height: var(--nav-height);
}
.ucf-nav-overlay .ucf-nav-logo {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--nav-color);
    font-weight: 700;
    font-size: 1.1em;
    text-decoration: none;
}
.ucf-nav-overlay .ucf-nav-logo img { height: 36px; width: auto; }
.ucf-nav-overlay .ucf-nav-toggle { display: flex; }
.ucf-nav-overlay-screen {
    position: fixed;
    inset: 0;
    background: rgba(15,20,30,0.96);
    z-index: 400;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
}
.ucf-nav-overlay[data-open] .ucf-nav-overlay-screen {
    opacity: 1;
    pointer-events: auto;
}
.ucf-nav-overlay-screen .ucf-nav-close {
    position: absolute;
    top: 20px;
    right: 20px;
    color: rgba(255,255,255,0.7);
    font-size: 2em;
}
.ucf-nav-overlay-screen ul {
    text-align: center;
    padding: 0;
}
.ucf-nav-overlay-screen > ul > li > a {
    font-size: clamp(1.5em, 4vw, 2.5em);
    font-weight: 700;
    padding: 10px 20px;
    color: rgba(255,255,255,0.85);
    letter-spacing: -0.01em;
}
.ucf-nav-overlay-screen > ul > li > a:hover { color: #fff; }
.ucf-nav-overlay-screen > ul > li.active > a { color: var(--nav-active-line); }
.ucf-nav-overlay-screen .ucf-nav-sub { padding: 4px 0 12px; }
.ucf-nav-overlay-screen .ucf-nav-sub a {
    font-size: 1em;
    padding: 5px 20px;
    color: rgba(255,255,255,0.55);
}
.ucf-nav-overlay-screen .ucf-nav-sub a:hover { color: rgba(255,255,255,0.9); }
.ucf-nav-overlay-screen .ucf-nav-heading { color: rgba(255,255,255,0.3); font-size: 0.7em; }
.ucf-nav-overlay-screen .ucf-nav-sep { background: rgba(255,255,255,0.15); margin: 10px auto; width: 60px; }

/* Legacy class aliases for templates using uc-nav-primary / uc-nav-footer */
.uc-nav-primary { background: var(--ucf-nav-bg, #1a202c); padding: 0 20px; }
.uc-nav-primary ul { list-style:none;margin:0;padding:0;display:flex;align-items:center;max-width:var(--ucf-max-width);margin-left:auto;margin-right:auto; }
.uc-nav-primary li { position:relative; }
.uc-nav-primary a { display:block;padding:16px 18px;color:var(--ucf-nav-color,rgba(255,255,255,.85));text-decoration:none;font-size:.95em;font-weight:500;transition:color .15s,background .15s;white-space:nowrap; }
.uc-nav-primary a:hover { color:#fff;background:rgba(255,255,255,.08);text-decoration:none; }
.uc-nav-primary li.active > a { color:#fff;border-bottom:3px solid var(--ucf-link); }
.uc-nav-footer { padding:20px;background:var(--ucf-footer-bg,#1a202c); }
.uc-nav-footer ul { list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;max-width:var(--ucf-max-width);margin-left:auto;margin-right:auto; }
.uc-nav-footer a { color:var(--ucf-nav-color,rgba(255,255,255,.7));font-size:.9em;text-decoration:none;transition:color .15s; }
.uc-nav-footer a:hover { color:#fff;text-decoration:none; }
@media (max-width: 767px) {
    .uc-nav-primary ul { flex-direction:column;gap:0; }
    .uc-nav-primary a { padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08); }
    .uc-nav-primary li.active > a { border-bottom:1px solid rgba(255,255,255,.08);border-left:3px solid var(--ucf-link); }
}

/* Block wrapper */
.uc-block {
    padding: 24px 0;
}

/* Heading */
.uc-block.uc-heading {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}

/* Rich Text */
.uc-block.uc-richtext {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}

/* Image */
.uc-block.uc-image {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-block.uc-image img {
    width: 100%;
    display: block;
}
.uc-block.uc-image figcaption {
    font-size: 0.9em;
    color: var(--ucf-text-light);
    margin-top: 8px;
}

/* Hero */
.uc-block.uc-hero {
    min-height: 420px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 80px 24px;
    position: relative;
}
.uc-block.uc-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
}
.uc-hero-content { position: relative; z-index: 1; max-width: 800px; }
.uc-hero-content h1 { font-size: 2.8em; margin-bottom: 12px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.uc-hero-content p { font-size: 1.2em; opacity: 0.95; }
.uc-hero-btn {
    display: inline-block;
    padding: 14px 36px;
    background: #fff;
    color: var(--ucf-text);

    font-weight: 600;
    font-size: 1em;
    margin-top: 20px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.uc-hero-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,0.2); text-decoration: none; }

/* Hero Image */
.uc-block.uc-hero-image {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-hero-image-above {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 24px;
}
.uc-hero-image-above .uc-hero-image-img img { max-width: 900px; border-radius: 8px; margin: 0 auto; }
.uc-hero-image-above .uc-hero-image-text { max-width: 680px; }
.uc-hero-image-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
}
.uc-hero-image-col-img img { border-radius: 8px; }
.uc-hero-image-col-text h1, .uc-hero-image-col-text h2,
.uc-hero-image-col-text h3, .uc-hero-image-col-text h4,
.uc-hero-image-col-text h5, .uc-hero-image-col-text h6 { margin-top: 0; }
.uc-hero-image-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.uc-hero-image--above .uc-hero-image-btns { justify-content: center; }
@container (max-width: 767px) {
    .uc-hero-image-cols { grid-template-columns: 1fr; }
    .uc-hero-image--right .uc-hero-image-col-img { order: -1; }
}

/* Gallery */
.uc-block.uc-gallery {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
    display: grid;
    gap: 16px;
}
.uc-gallery-cols-1 { grid-template-columns: 1fr; }
.uc-gallery-cols-2 { grid-template-columns: repeat(2, 1fr); }
.uc-gallery-cols-3 { grid-template-columns: repeat(3, 1fr); }
.uc-gallery-cols-4 { grid-template-columns: repeat(4, 1fr); }
.uc-gallery-cols-5 { grid-template-columns: repeat(5, 1fr); }
.uc-gallery-cols-6 { grid-template-columns: repeat(6, 1fr); }
.uc-gallery-item { overflow: hidden; border-radius: 8px; display: flex; flex-direction: column; }
.uc-gallery-item a { display: block; }
.uc-gallery-item img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 1; display: block; transition: transform 0.3s; }
.uc-gallery-item:hover img { transform: scale(1.05); }
.uc-gallery-title { font-size: 0.95em; font-weight: 600; padding: 8px 0 2px; }
.uc-gallery-caption { font-size: 0.85em; color: var(--ucf-text-light); padding: 4px 0 0; }
.uc-gallery-btn {
    display: inline-block;
    margin-top: 8px;
    padding: 6px 16px;
    font-size: 0.85em;
    font-weight: 500;
    background: var(--ucf-btn-bg);
    color: var(--ucf-btn-color);
    border-radius: 4px;
    text-decoration: none;
    transition: opacity 0.2s;
}
.uc-gallery-btn:hover { opacity: 0.85; text-decoration: none; }

/* Gallery — Masonry layout */
.uc-gallery.uc-gallery-masonry { align-items: start; }
.uc-gallery.uc-gallery-masonry .uc-gallery-item img { aspect-ratio: auto; height: auto; }

/* Gallery — Carousel layout */
.uc-gallery.uc-gallery-carousel {
    display: flex;
    overflow: hidden;
    gap: 16px;
    position: relative;
}
.uc-gallery.uc-gallery-carousel .uc-gallery-item {
    flex: 0 0 auto;
    scroll-snap-align: start;
}
.uc-gallery.uc-gallery-carousel .uc-gallery-item img { aspect-ratio: 4/3; }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-1 .uc-gallery-item { width: 100%; }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-2 .uc-gallery-item { width: calc((100% - 16px) / 2); }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-3 .uc-gallery-item { width: calc((100% - 32px) / 3); }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-4 .uc-gallery-item { width: calc((100% - 48px) / 4); }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-5 .uc-gallery-item { width: calc((100% - 64px) / 5); }
.uc-gallery.uc-gallery-carousel.uc-gallery-cols-6 .uc-gallery-item { width: calc((100% - 80px) / 6); }

/* Gallery — Lightbox layout (grid base, cursor indicates clickable) */
.uc-gallery.uc-gallery-lightbox .uc-gallery-item { cursor: pointer; }
.uc-gallery.uc-gallery-lightbox .uc-gallery-item a { cursor: pointer; }

/* Gallery — Carousel nav buttons */
.uc-gallery-carousel-nav {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 12px 0 0;
}
.uc-gallery-carousel-prev,
.uc-gallery-carousel-next {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid var(--ucf-border);
    background: var(--ucf-bg);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, border-color 0.2s;
}
.uc-gallery-carousel-prev:hover,
.uc-gallery-carousel-next:hover {
    background: var(--ucf-link);
    color: #fff;
    border-color: var(--ucf-link);
}
.uc-gallery-carousel-dots { display: flex; align-items: center; gap: 8px; }
.uc-gallery-carousel-dot {
    width: 10px; height: 10px; border-radius: 50%;
    border: none; padding: 0; cursor: pointer;
    background: var(--ucf-border);
    transition: background 0.2s, transform 0.2s;
}
.uc-gallery-carousel-dot.active { background: var(--ucf-link); transform: scale(1.3); }
.uc-gallery-carousel-dot:hover { background: var(--ucf-link); }

/* Alert Bar */
.uc-alert-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    font-size: 0.9em;
    font-weight: 500;
    position: relative;
    overflow: hidden;
}
.uc-alert-bar .uc-alert-link {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    color: inherit;
    text-decoration: none;
}
.uc-alert-bar .uc-alert-link:hover { opacity: 0.85; text-decoration: none; }
.uc-alert-label {
    display: inline-flex;
    align-items: center;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 3px 10px;
    border-radius: 3px;
    background: rgba(0,0,0,0.2);
    white-space: nowrap;
    flex-shrink: 0;
}
.uc-alert-message { flex: 1; overflow: hidden; }
.uc-alert-close {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 4px;
    opacity: 0.7;
    flex-shrink: 0;
    display: flex;
    align-items: center;
}
.uc-alert-close:hover { opacity: 1; }
.uc-alert-close .material-symbols-outlined { font-size: 18px; }
.uc-alert-warning { background: #f59e0b; color: #451a03; }
.uc-alert-danger  { background: #ef4444; color: #fff; }
.uc-alert-info    { background: #3b82f6; color: #fff; }
.uc-alert-success { background: #10b981; color: #fff; }
.uc-alert-dark    { background: #1e293b; color: #e2e8f0; }
.uc-alert-warning .uc-alert-label { background: rgba(0,0,0,0.15); }
.uc-alert-danger  .uc-alert-label { background: rgba(0,0,0,0.2); }
.uc-alert-info    .uc-alert-label { background: rgba(0,0,0,0.15); }
.uc-alert-success .uc-alert-label { background: rgba(0,0,0,0.15); }
.uc-alert-dark    .uc-alert-label { background: rgba(255,255,255,0.1); }
.uc-alert-scroll .uc-alert-message { overflow: hidden; white-space: nowrap; }
.uc-alert-scroll .uc-alert-scroll-text {
    display: inline-block;
    animation: uc-alert-marquee 15s linear infinite;
    padding-left: 100%;
}
@keyframes uc-alert-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}
.uc-alert-pulse { animation: uc-alert-pulse 2s ease-in-out infinite; }
@keyframes uc-alert-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}
.uc-alert-flash .uc-alert-label { animation: uc-alert-flash 1.5s ease-in-out infinite; }
@keyframes uc-alert-flash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* Accordion */
.uc-accordion { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-accordion-item { border: 1px solid var(--ucf-border); border-radius: 6px; margin-bottom: 8px; overflow: hidden; }
.uc-accordion-header { padding: 14px 18px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: space-between; list-style: none; background: var(--ucf-bg); transition: background 0.15s; }
.uc-accordion-header:hover { background: rgba(0,0,0,0.02); }
.uc-accordion-header::-webkit-details-marker { display: none; }
.uc-accordion-icon { font-size: 20px; transition: transform 0.2s; }
details[open] > .uc-accordion-header .uc-accordion-icon { transform: rotate(180deg); }
.uc-accordion-body { padding: 0 18px 16px; line-height: 1.7; }

/* Tabs */
.uc-tabs { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-tabs-nav { display: flex; gap: 0; border-bottom: 2px solid var(--ucf-border); margin-bottom: 16px; }
.uc-tab-btn { padding: 10px 18px; font-weight: 600; font-size: 0.95em; background: none; border: none; border-bottom: 2px solid transparent; margin-bottom: -2px; cursor: pointer; color: var(--ucf-text-light); transition: color 0.15s, border-color 0.15s; }
.uc-tab-btn:hover { color: var(--ucf-text); }
.uc-tab-btn.uc-tab-active { color: var(--ucf-link); border-bottom-color: var(--ucf-link); }
.uc-tab-panel { display: none; line-height: 1.7; }
.uc-tab-panel.uc-tab-active { display: block; }

/* Testimonial */
.uc-testimonial { max-width: var(--ucf-max-width); margin: 0 auto; padding: 24px 20px; }
.uc-testimonial-rating { color: #f59e0b; font-size: 1.2em; margin-bottom: 8px; }
.uc-testimonial-quote { margin: 0; font-style: italic; font-size: 1.1em; line-height: 1.7; }
.uc-testimonial-author { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.uc-testimonial-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.uc-testimonial-role { font-size: 0.85em; color: var(--ucf-text-light); }

/* Table */
.uc-table { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; overflow-x: auto; }
.uc-table table { width: 100%; border-collapse: collapse; font-size: 0.95em; }
.uc-table th { text-align: left; padding: 10px 14px; font-weight: 600; background: rgba(0,0,0,0.03); }
.uc-table td { padding: 10px 14px; }
.uc-table-bordered th, .uc-table-bordered td { border: 1px solid var(--ucf-border); }
.uc-table-striped tbody tr:nth-child(even) { background: rgba(0,0,0,0.02); }

/* Icon Box */
.uc-icon-box { max-width: var(--ucf-max-width); margin: 0 auto; padding: 24px 20px; display: grid; gap: 24px; }
.uc-icon-box-cols-1 { grid-template-columns: 1fr; }
.uc-icon-box-cols-2 { grid-template-columns: repeat(2, 1fr); }
.uc-icon-box-cols-3 { grid-template-columns: repeat(3, 1fr); }
.uc-icon-box-cols-4 { grid-template-columns: repeat(4, 1fr); }
.uc-icon-box-top .uc-icon-box-item { text-align: center; }
.uc-icon-box-left .uc-icon-box-item { display: flex; gap: 16px; align-items: flex-start; }
.uc-icon-box-icon { font-size: 40px; color: var(--ucf-link); }
.uc-icon-box-content h3 { margin: 8px 0 4px; font-size: 1.1em; }
.uc-icon-box-content p { margin: 0; color: var(--ucf-text-light); font-size: 0.9em; }

/* Stats / Counter */
.uc-stats { max-width: var(--ucf-max-width); margin: 0 auto; padding: 32px 20px; display: flex; justify-content: center; gap: 40px; flex-wrap: wrap; text-align: center; }
.uc-stat-item { min-width: 120px; }
.uc-stat-icon { font-size: 32px; color: var(--ucf-link); display: block; margin-bottom: 8px; }
.uc-stat-value { font-size: 2.5em; font-weight: 700; line-height: 1; }
.uc-stat-label { font-size: 0.9em; color: var(--ucf-text-light); margin-top: 4px; }

/* Timeline */
.uc-timeline { max-width: var(--ucf-max-width); margin: 0 auto; padding: 24px 20px; position: relative; padding-left: 40px; }
.uc-timeline::before { content: ""; position: absolute; left: 28px; top: 0; bottom: 0; width: 2px; background: var(--ucf-border); }
.uc-timeline-item { position: relative; padding-bottom: 24px; }
.uc-timeline-marker { position: absolute; left: -20px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--ucf-link); border: 2px solid var(--ucf-bg); }
.uc-timeline-date { font-size: 0.85em; font-weight: 600; color: var(--ucf-link); margin-bottom: 4px; }
.uc-timeline-content h3 { margin: 0 0 4px; font-size: 1.1em; }
.uc-timeline-content p { margin: 0; color: var(--ucf-text-light); }

/* Audio */
.uc-audio { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-audio-caption { font-size: 0.85em; color: var(--ucf-text-light); margin-top: 8px; }

/* Map */
.uc-map { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }

/* Social Embed */
.uc-social-embed { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }

/* Before / After */
.uc-before-after { max-width: var(--ucf-max-width); margin: 0 auto; }
.uc-ba-label { position: absolute; top: 12px; padding: 4px 10px; font-size: 0.8em; font-weight: 600; background: rgba(0,0,0,0.6); color: #fff; border-radius: 4px; pointer-events: none; }
.uc-ba-label-before { left: 12px; }
.uc-ba-label-after { right: 12px; }

/* Logo Grid */
.uc-logo-grid { max-width: var(--ucf-max-width); margin: 0 auto; padding: 24px 20px; display: grid; gap: 24px; align-items: center; justify-items: center; }
.uc-logo-grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.uc-logo-grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.uc-logo-grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
.uc-logo-grid-cols-5 { grid-template-columns: repeat(5, 1fr); }
.uc-logo-grid-cols-6 { grid-template-columns: repeat(6, 1fr); }
.uc-logo-grid-item img { max-height: 60px; width: auto; object-fit: contain; transition: filter 0.3s, opacity 0.3s; }
.uc-logo-grid-grayscale .uc-logo-grid-item img { filter: grayscale(100%); opacity: 0.6; }
.uc-logo-grid-grayscale .uc-logo-grid-item img:hover { filter: none; opacity: 1; }

/* Spacer / Divider */
.uc-spacer { display: flex; align-items: center; }
.uc-spacer hr { width: 100%; }

/* CTA Banner */
.uc-cta-banner { padding: 48px 30px; text-align: center; }
.uc-cta-heading { margin: 0 0 8px; font-size: 1.75em; }
.uc-cta-subtext { margin: 0 0 20px; opacity: 0.9; font-size: 1.1em; }
.uc-cta-btn { font-size: 1em; padding: 12px 28px; }

/* Card */
.uc-card { border: 1px solid var(--ucf-border); border-radius: 8px; overflow: hidden; max-width: 400px; }
.uc-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.uc-card-body { padding: 16px; }
.uc-card-body h3 { margin: 0 0 8px; }
.uc-card-body p { margin: 0 0 12px; color: var(--ucf-text-light); font-size: 0.9em; }

/* Countdown */
.uc-countdown { text-align: center; padding: 32px 20px; }
.uc-countdown-grid { display: flex; justify-content: center; gap: 24px; }
.uc-countdown-unit { min-width: 80px; }
.uc-countdown-num { font-size: 2.5em; font-weight: 700; display: block; line-height: 1; }
.uc-countdown-label { font-size: 0.85em; color: var(--ucf-text-light); margin-top: 4px; display: block; }
.uc-countdown-ended { font-size: 1.2em; color: var(--ucf-text-light); padding: 20px; }

/* Form */
.uc-form { max-width: var(--ucf-max-width); margin: 0 auto; padding: 24px 20px; }
.uc-form-field { margin-bottom: 16px; }
.uc-form-field label { display: block; font-weight: 500; margin-bottom: 4px; font-size: 0.95em; }
.uc-form-input { width: 100%; padding: 10px 14px; border: 1px solid var(--ucf-border); border-radius: 6px; font-size: 1em; font-family: inherit; }
.uc-form-input:focus { outline: none; border-color: var(--ucf-link); box-shadow: 0 0 0 3px rgba(13,110,110,0.1); }
.uc-form-checkbox { display: flex; align-items: center; gap: 8px; cursor: pointer; }

/* Search */
.uc-search { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-search-wrapper { display: flex; align-items: center; gap: 10px; border: 1px solid var(--ucf-border); border-radius: 8px; padding: 8px 14px; background: var(--ucf-bg); }
.uc-search-wrapper .material-symbols-outlined { font-size: 22px; color: var(--ucf-text-light); }
.uc-search-input { flex: 1; border: none; outline: none; font-size: 1em; font-family: inherit; background: transparent; }

/* Events */
.uc-events { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-events-list .uc-event-item { padding: 16px 0; border-bottom: 1px solid var(--ucf-border); }
.uc-events-list .uc-event-item:last-child { border-bottom: none; }
.uc-events-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.uc-events-cards .uc-event-item { border: 1px solid var(--ucf-border); border-radius: 8px; overflow: hidden; }
.uc-events-cards .uc-event-image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.uc-events-cards .uc-event-content { padding: 16px; }
.uc-event-date { font-size: 0.85em; color: var(--ucf-link); font-weight: 500; margin-bottom: 4px; }
.uc-event-title { margin: 0 0 4px; font-size: 1.15em; }
.uc-event-title a { color: inherit; text-decoration: none; }
.uc-event-title a:hover { color: var(--ucf-link); }
.uc-event-location { font-size: 0.85em; color: var(--ucf-text-light); margin-bottom: 4px; }
.uc-event-desc { margin: 6px 0 0; font-size: 0.9em; color: var(--ucf-text-light); }
.uc-event-category { display: inline-block; font-size: 0.75em; font-weight: 600; padding: 2px 8px; border-radius: 3px; background: var(--ucf-link); color: #fff; margin-top: 8px; }

/* File Download */
.uc-file-download { max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-file-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--ucf-border);
    border-radius: 8px;
    margin-bottom: 8px;
    text-decoration: none;
    color: var(--ucf-text);
    transition: border-color 0.15s, box-shadow 0.15s;
}
.uc-file-item:hover { border-color: var(--ucf-link); box-shadow: 0 2px 8px rgba(0,0,0,0.06); text-decoration: none; }
.uc-file-icon { font-size: 28px; color: var(--ucf-link); flex-shrink: 0; }
.uc-file-info { flex: 1; min-width: 0; }
.uc-file-name { font-weight: 600; font-size: 0.95em; }
.uc-file-desc { font-size: 0.85em; color: var(--ucf-text-light); margin-top: 2px; }
.uc-file-ext {
    font-size: 0.7em;
    font-weight: 700;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 4px;
    background: var(--ucf-link);
    color: #fff;
    flex-shrink: 0;
}
.uc-file-dl-icon { font-size: 22px; color: var(--ucf-text-light); flex-shrink: 0; }
.uc-file-item:hover .uc-file-dl-icon { color: var(--ucf-link); }

/* News - shared */
.uc-news-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 0.85em; color: var(--ucf-text-light); margin-top: 4px; }
.uc-news-author::before { content: ''; }
.uc-news-category-pill {
    display: inline-block;
    padding: 2px 10px;
    font-size: 0.8em;
    font-weight: 500;
    background: var(--ucf-link);
    color: #fff;
    border-radius: 20px;
    text-decoration: none;
}

/* News - Basic List */
.uc-block.uc-news-basic {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-news-basic-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ucf-border);
}
.uc-news-basic-item:last-child { border-bottom: none; }
.uc-news-basic-item a { flex: 1; font-weight: 500; color: var(--ucf-text); text-decoration: none; }
.uc-news-basic-item a:hover { color: var(--ucf-link); }
.uc-news-basic-item time { font-size: 0.85em; color: var(--ucf-text-light); white-space: nowrap; }

/* News - Featured List */
.uc-block.uc-news-featured {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-news-featured-item {
    display: flex;
    gap: 24px;
    padding: 24px 0;
    border-bottom: 1px solid var(--ucf-border);
}
.uc-news-featured-item:last-child { border-bottom: none; }
.uc-news-featured-image { flex-shrink: 0; width: 240px; }
.uc-news-featured-image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.uc-news-featured-content { flex: 1; }
.uc-news-featured-content h3 { font-size: 1.25em; margin-bottom: 6px; }
.uc-news-featured-content h3 a { color: inherit; text-decoration: none; }
.uc-news-featured-content h3 a:hover { color: var(--ucf-link); }
.uc-news-featured-content p { margin-top: 10px; color: var(--ucf-text-light); line-height: 1.6; }

/* News - Cards */
.uc-block.uc-news-cards {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
    display: grid;
    gap: 24px;
}
.uc-news-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.uc-news-card-image { width: 100%; }
.uc-news-card-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.uc-news-card-body { padding: 16px 0; flex: 1; }
.uc-news-card-body h3 { font-size: 1.1em; margin: 8px 0 6px; }
.uc-news-card-body h3 a { color: inherit; text-decoration: none; }
.uc-news-card-body h3 a:hover { color: var(--ucf-link); }

/* News — multi-column adjustments */
.uc-news-basic[class*="uc-news-grid"] .uc-news-basic-item { border-bottom: none; border: 1px solid var(--ucf-border); border-radius: 6px; padding: 14px 16px; }
.uc-news-featured[class*="uc-news-grid"] .uc-news-featured-item { flex-direction: column; border-bottom: none; border: 1px solid var(--ucf-border); border-radius: 6px; padding: 0; overflow: hidden; }
.uc-news-featured[class*="uc-news-grid"] .uc-news-featured-image { width: 100%; }
.uc-news-featured[class*="uc-news-grid"] .uc-news-featured-image img { height: 180px; }
.uc-news-featured[class*="uc-news-grid"] .uc-news-featured-content { padding: 16px; }

@container (max-width: 767px) {
    .uc-news-featured-item { flex-direction: column; }
    .uc-news-featured-image { width: 100%; }
}

/* News Article */
.uc-block.uc-news-article {
    max-width: 800px;
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-article-body { margin-top: 16px; }
.uc-article-body img { border-radius: 8px; margin: 16px 0; }

/* Rows & Columns */
.uc-block.uc-row {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
}
.uc-block.uc-row.uc-row-single {
    max-width: none;
    margin: 0;
    padding: 0;
}
.uc-row-single-inner {
    /* No constraints — child blocks handle their own max-width and padding */
}
.uc-block.uc-row .uc-column > .uc-block {
    padding-left: 0;
    padding-right: 0;
}
/* Legacy column classes */
.uc-block.uc-columns {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
    display: grid;
    gap: 24px;
}
.uc-columns-2 { grid-template-columns: repeat(2, 1fr); }
.uc-columns-3 { grid-template-columns: repeat(3, 1fr); }
.uc-columns-4 { grid-template-columns: repeat(4, 1fr); }

/* Video */
.uc-block.uc-video {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}
.uc-video-wrapper {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;

}
.uc-video-wrapper iframe, .uc-video-wrapper video {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
}

/* HTML block */
.uc-block.uc-html {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 24px 20px;
}

/* Slider */
.uc-block.uc-slider {
    padding: 0;
}
.uc-block.uc-slider.uc-slider--contained {
    max-width: var(--ucf-max-width);
    margin: 0 auto;
}
.uc-slider-viewport {
    position: relative;
    overflow: hidden;
}
.uc-slider-track {
    display: grid;
}
.uc-slider-slide {
    grid-area: 1 / 1;
    position: relative;
    min-height: 460px;
    opacity: 0;
    transition: opacity 0.55s ease;
    pointer-events: none;
}
.uc-slider-slide.uc-slide-active {
    opacity: 1;
    pointer-events: auto;
}
.uc-slider-figure {
    position: absolute;
    inset: 0;
    margin: 0;
    padding: 0;
}
.uc-slider-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.uc-slider-figure figcaption {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
}
.uc-slider-content {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    padding: 48px;
    z-index: 1;
    background: linear-gradient(to bottom, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.45) 100%);
    color: #fff;
}
/* Horizontal alignment */
.uc-slider-tx-left  { align-items: flex-start; text-align: left; }
.uc-slider-tx-centre { align-items: center; text-align: center; }
.uc-slider-tx-right { align-items: flex-end; text-align: right; }
/* Vertical alignment */
.uc-slider-ty-top    { justify-content: flex-start; }
.uc-slider-ty-middle { justify-content: center; }
.uc-slider-ty-bottom { justify-content: flex-end; }
.uc-slider-heading { color: #fff; margin-bottom: 12px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.uc-slider-subtext { font-size: 1.1em; opacity: 0.92; margin-bottom: 0; max-width: 640px; }
.uc-slider-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.uc-slider-tx-centre .uc-slider-btns { justify-content: center; }
.uc-slider-tx-right  .uc-slider-btns { justify-content: flex-end; }
/* Controls */
.uc-slider-prev,
.uc-slider-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255,255,255,0.18);
    backdrop-filter: blur(4px);
    border: none;
    color: #fff;
    width: 44px; height: 44px;
    border-radius: 50%;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: background 0.2s;
    display: flex; align-items: center; justify-content: center;
}
.uc-slider-prev { left: 16px; }
.uc-slider-next { right: 16px; }
.uc-slider-prev:hover, .uc-slider-next:hover { background: rgba(255,255,255,0.35); }
/* Dots */
.uc-slider-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    padding: 12px 0;
    background: transparent;
}
.uc-block.uc-slider.uc-slider--full_width .uc-slider-dots {
    position: absolute;
    bottom: 12px;
    left: 0; right: 0;
}
.uc-block.uc-slider.uc-slider--full_width {
    position: relative;
}
.uc-slider-dots button {
    width: 10px; height: 10px;
    border-radius: 50%;
    border: 2px solid rgba(255,255,255,0.7);
    background: transparent;
    cursor: pointer;
    padding: 0;
    transition: background 0.2s, border-color 0.2s;
}
.uc-block.uc-slider.uc-slider--contained .uc-slider-dots button {
    border-color: var(--ucf-text-light);
}
.uc-slider-dots button.uc-dot-active,
.uc-slider-dots button:hover { background: #fff; border-color: #fff; }
.uc-block.uc-slider.uc-slider--contained .uc-slider-dots button.uc-dot-active,
.uc-block.uc-slider.uc-slider--contained .uc-slider-dots button:hover {
    background: var(--ucf-link); border-color: var(--ucf-link);
}
/* Slide animation — transforms managed by JS, CSS provides transition */
[data-animation="slide"] .uc-slider-slide {
    opacity: 1;
    transition: transform 0.5s ease;
}
/* Zoom animation */
[data-animation="zoom"] .uc-slider-slide.uc-slide-zoom {
    animation: uc-slider-zoom-in 0.6s ease both;
}
@keyframes uc-slider-zoom-in {
    from { transform: scale(1.06); opacity: 0; }
    to   { transform: scale(1);    opacity: 1; }
}
@container (max-width: 767px) {
    .uc-slider-content { padding: 28px 20px; }
    .uc-slider-slide { min-height: 300px; }
    .uc-slider-prev, .uc-slider-next { width: 36px; height: 36px; font-size: 18px; }
}

/* Buttons (frontend content — use ucf-btn prefix to avoid clash with admin uc-btn) */
.ucf-btn {
    display: inline-block;
    padding: 12px 28px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.95em;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    transition: opacity 0.2s, transform 0.15s, box-shadow 0.15s;
    line-height: 1.4;
}
.ucf-btn:hover { opacity: 0.88; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); text-decoration: none; }
.ucf-btn-primary {
    background: var(--ucf-btn-bg);
    color: var(--ucf-btn-color);
    border-color: var(--ucf-btn-bg);
}
.ucf-btn-secondary {
    background: var(--ucf-btn-secondary-bg);
    color: var(--ucf-btn-secondary-color);
    border-color: var(--ucf-btn-secondary-color);
}
.ucf-btn-secondary:hover { background: var(--ucf-btn-secondary-color); color: var(--ucf-btn-color); }

/* Empty block placeholder */
.uc-block-empty {
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ucf-text-light);
    border: 2px dashed var(--ucf-border);

    font-size: 14px;
}

/* Responsive visibility */
@media (min-width: 1025px) { .uc-hide-desktop { display: none !important; } }
@media (min-width: 769px) and (max-width: 1024px) { .uc-hide-tablet { display: none !important; } }
@media (max-width: 768px) {
    .uc-hide-mobile { display: none !important; }
}
@container (max-width: 767px) {
    .uc-block.uc-gallery:not(.uc-gallery-carousel) { grid-template-columns: repeat(2, 1fr) !important; }
    .uc-gallery.uc-gallery-carousel .uc-gallery-item { width: 80vw; }
    .uc-columns-2, .uc-columns-3, .uc-columns-4 { grid-template-columns: 1fr !important; }
    .uc-news-item { flex-direction: column; }
    .uc-news-image { width: 100%; }
    .uc-hero-content h1 { font-size: 2em; }
}
/* ==== ADDITIONAL ===== */

.profklogo
{z-index: 101;
    position: relative;
    height: 260px !important;
    width: auto !important;
}

/* ==== CLASS LIBRARY ==== */
/* secondaryrow */
.secondaryrow
{
background-color: #E2CFAE;
}

/* thirdrow */
.thirdrow
{
background-color: #E2CFAE;
background-size: cover;
background-image: url('https://www.devsite.spectramedia.co.uk/profk/mapbg.png');
}

/* ==== END CLASS LIBRARY ==== */

/* ===BEGIN-OVERRIDES=== */


/* Button block */
.uc-buttons { max-width: var(--ucf-max-width); margin: 0 auto; padding: var(--ucf-card-padding) var(--ucf-content-padding); display: flex; flex-wrap: wrap; gap: 12px; }
.uc-buttons-center { justify-content: center; }
.uc-buttons-right { justify-content: flex-end; }
.ucf-btn-ghost { background: transparent; color: var(--ucf-btn-bg); border-color: transparent; }
.ucf-btn-ghost:hover { background: rgba(0,0,0,0.05); }
.ucf-btn-sm { padding: 8px 16px; font-size: 0.85em; }
.ucf-btn-lg { padding: 16px 36px; font-size: 1.1em; }
/* Utility - text alignment */
/* Utility classes and animations — moved to core.css (shared across all sites) */


/* ==== UC ENHANCEMENTS 2026-04-20 ==== */
/* Events — Carousel layout. Uses shared .uc-carousel-* rules already on the site. */
.uc-events.uc-events-carousel { position: relative; overflow: hidden; max-width: var(--ucf-max-width); margin: 0 auto; padding: 16px 20px; }
.uc-events-carousel .uc-carousel-track { display: flex; transition: transform 0.4s ease; }
.uc-events-carousel .uc-carousel-item { min-width: calc(100% / var(--uc-cards-per-view, 1)); box-sizing: border-box; padding: 0 8px; flex-shrink: 0; border: 1px solid var(--ucf-border); border-radius: var(--ucf-radius-lg, 8px); overflow: hidden; background: var(--ucf-bg); }
.uc-events-carousel .uc-carousel-item > .uc-event-image img { width: 100%; height: 180px; object-fit: cover; display: block; }
.uc-events-carousel .uc-carousel-item > .uc-event-content { padding: 16px; }
.uc-events-carousel .uc-carousel-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; background: var(--ucf-bg); border: 1px solid var(--ucf-border); border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.1); transition: background .15s, color .15s; }
.uc-events-carousel .uc-carousel-arrow:hover { background: var(--ucf-link); color: #fff; border-color: var(--ucf-link); }
.uc-events-carousel .uc-carousel-prev { left: 4px; }
.uc-events-carousel .uc-carousel-next { right: 4px; }
.uc-events-carousel .uc-carousel-dots { display: flex; justify-content: center; gap: 8px; margin-top: 12px; }
.uc-events-carousel .uc-carousel-dot { width: 10px; height: 10px; border-radius: 50%; border: none; background: var(--ucf-border); cursor: pointer; padding: 0; transition: background 0.2s; }
.uc-events-carousel .uc-carousel-dot.active { background: var(--ucf-link); }
@container (max-width: 600px) { .uc-events-carousel .uc-carousel-item { min-width: 100% !important; } }

/* Card — Full background image with overlay */
.uc-card.uc-card-fullbg { position: relative; min-height: 280px; background-size: cover; background-position: center; border-radius: var(--ucf-radius-lg, 8px); overflow: hidden; border: none; color: #fff; max-width: 400px; }
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; background: linear-gradient(to top, rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.1) 60%, rgba(0,0,0,0) 100%); }
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay h3 { margin: 0 0 8px; color: #fff; text-shadow: 0 2px 6px rgba(0,0,0,0.5); }
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay p { margin: 0 0 14px; color: rgba(255,255,255,0.95); font-size: 0.95em; text-shadow: 0 1px 3px rgba(0,0,0,0.5); }
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay .ucf-btn { align-self: flex-start; }
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay a:not(.ucf-btn) { color: #fff; text-decoration: underline; }

/* Hover effects — applied to outer block wrapper as .uc-hover-{name} */
.uc-block-outer[class*="uc-hover-"] { transition: transform .3s ease, box-shadow .3s ease, filter .3s ease, border-color .3s ease; will-change: transform; }
.uc-block-outer[class*="uc-hover-"] img { transition: transform .4s ease, filter .4s ease; }
.uc-hover-lift:hover { transform: translateY(-6px); box-shadow: 0 14px 28px rgba(0,0,0,0.14), 0 8px 10px rgba(0,0,0,0.08); }
.uc-hover-zoom:hover img { transform: scale(1.06); }
.uc-hover-shadow:hover { box-shadow: 0 12px 30px rgba(0,0,0,0.18); }
.uc-hover-border { outline: 2px solid transparent; outline-offset: 2px; }
.uc-hover-border:hover { outline-color: var(--ucf-link); }
.uc-hover-tilt:hover { transform: perspective(1000px) rotateX(3deg) rotateY(-3deg) translateZ(4px); }
.uc-hover-darken:hover img { filter: brightness(0.7); }
.uc-hover-grayscale img { filter: grayscale(1); }
.uc-hover-grayscale:hover img { filter: grayscale(0); }
.uc-hover-glow:hover { box-shadow: 0 0 0 3px rgba(13,110,110,0.18), 0 0 30px rgba(13,110,110,0.35); }
@media (prefers-reduced-motion: reduce) {
    .uc-block-outer[class*="uc-hover-"], .uc-block-outer[class*="uc-hover-"] img { transition: none; }
    .uc-hover-lift:hover, .uc-hover-tilt:hover, .uc-hover-zoom:hover img { transform: none; }
}
/* ==== END UC ENHANCEMENTS 2026-04-20 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-02 ==== */
/* Card full-background: fill container instead of being capped at 400px */
.uc-card.uc-card-fullbg { max-width: none; width: 100%; }
/* Alignment utility classes — applied to block wrappers via content.alignment */
.uc-align-left   { text-align: left; }
.uc-align-center { text-align: center; }
.uc-align-right  { text-align: right; }
.uc-align-justify { text-align: justify; }
/* ==== END UC ENHANCEMENTS 2026-04-20-02 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-03 ==== */
/* Video Hero */
.uc-video-hero {
    position: relative;
    width: 100%;
    min-height: var(--uc-video-hero-height, 70vh);
    overflow: hidden;
    display: flex;
    color: #fff;
    isolation: isolate;
}
.uc-video-hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    background: #111;
}
.uc-video-hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}
.uc-video-hero-content {
    position: relative;
    z-index: 2;
    max-width: var(--ucf-max-width, 1200px);
    width: 100%;
    margin: 0 auto;
    padding: 48px 24px;
    display: flex;
    flex-direction: column;
}
.uc-video-hero-tx-left   .uc-video-hero-content { align-items: flex-start; text-align: left; }
.uc-video-hero-tx-centre .uc-video-hero-content { align-items: center;     text-align: center; }
.uc-video-hero-tx-right  .uc-video-hero-content { align-items: flex-end;   text-align: right; }
.uc-video-hero-ty-top    .uc-video-hero-content { justify-content: flex-start; }
.uc-video-hero-ty-middle .uc-video-hero-content { justify-content: center; }
.uc-video-hero-ty-bottom .uc-video-hero-content { justify-content: flex-end; }
.uc-video-hero-heading { color: #fff; margin: 0 0 12px; text-shadow: 0 2px 8px rgba(0,0,0,0.35); }
.uc-video-hero-subtext { margin: 0 0 20px; max-width: 640px; font-size: 1.1em; opacity: 0.95; text-shadow: 0 1px 6px rgba(0,0,0,0.3); }
.uc-video-hero-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.uc-video-hero-tx-centre .uc-video-hero-btns { justify-content: center; }
.uc-video-hero-tx-right  .uc-video-hero-btns { justify-content: flex-end; }
@media (max-width: 767px) {
    .uc-video-hero--no-mobile-video video.uc-video-hero-media { display: none; }
}

/* Shape dividers for rows */
.uc-row-has-divider { position: relative; overflow: hidden; }
.uc-row-divider {
    position: absolute;
    left: 0;
    width: 100%;
    line-height: 0;
    direction: ltr;
    pointer-events: none;
    z-index: 1;
}
.uc-row-divider--top    { top: 0; }
.uc-row-divider--bottom { bottom: 0; }
.uc-row-divider .uc-divider-svg {
    display: block;
    width: 100%;
    height: 100%;
}
/* ==== END UC ENHANCEMENTS 2026-04-20-03 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-04 ==== */
/* Video hero overlay strength — applied via .uc-vh-overlay-N classes (0..90) */
.uc-video-hero-overlay { background: transparent; }
.uc-vh-overlay-10 .uc-video-hero-overlay { background: rgba(0,0,0,0.10); }
.uc-vh-overlay-20 .uc-video-hero-overlay { background: rgba(0,0,0,0.20); }
.uc-vh-overlay-30 .uc-video-hero-overlay { background: rgba(0,0,0,0.30); }
.uc-vh-overlay-40 .uc-video-hero-overlay { background: rgba(0,0,0,0.40); }
.uc-vh-overlay-50 .uc-video-hero-overlay { background: rgba(0,0,0,0.50); }
.uc-vh-overlay-60 .uc-video-hero-overlay { background: rgba(0,0,0,0.60); }
.uc-vh-overlay-70 .uc-video-hero-overlay { background: rgba(0,0,0,0.70); }
.uc-vh-overlay-80 .uc-video-hero-overlay { background: rgba(0,0,0,0.80); }
.uc-vh-overlay-90 .uc-video-hero-overlay { background: rgba(0,0,0,0.90); }
/* ==== END UC ENHANCEMENTS 2026-04-20-04 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-05 ==== */
/* Hero / Video Hero / Card full-bg — configurable overlay colour + strength.
   Opacity is driven by .uc-*-overlay-N classes (0..90). Colour is supplied
   via the inline --uc-overlay-color CSS var. Uses color-mix() (Chrome 111+,
   Safari 16.2+, Firefox 113+). The legacy .uc-vh-overlay-N / .uc-card-fullbg
   rules from earlier markers still work for blocks that haven't been resaved. */

/* Hero overlay */
.uc-block.uc-hero.uc-hero-overlay-0::before  { background: transparent; }
.uc-block.uc-hero.uc-hero-overlay-10::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 10%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-20::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 20%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-30::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 30%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-40::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 40%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-50::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 50%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-60::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 60%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-70::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 70%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-80::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 80%, transparent); }
.uc-block.uc-hero.uc-hero-overlay-90::before { background: color-mix(in srgb, var(--uc-overlay-color, #000) 90%, transparent); }

/* Video hero overlay — tint with --uc-overlay-color (overrides 20-04 rules when set) */
.uc-vh-overlay-10 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 10%, transparent); }
.uc-vh-overlay-20 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 20%, transparent); }
.uc-vh-overlay-30 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 30%, transparent); }
.uc-vh-overlay-40 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 40%, transparent); }
.uc-vh-overlay-50 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 50%, transparent); }
.uc-vh-overlay-60 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 60%, transparent); }
.uc-vh-overlay-70 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 70%, transparent); }
.uc-vh-overlay-80 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 80%, transparent); }
.uc-vh-overlay-90 .uc-video-hero-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 90%, transparent); }

/* Card full-bg — flat overlay when opacity class is set (overrides the default gradient) */
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-0  .uc-card-fullbg-overlay { background: none; }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-10 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 10%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-20 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 20%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-30 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 30%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-40 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 40%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-50 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 50%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-60 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 60%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-70 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 70%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-80 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 80%, transparent); }
.uc-card.uc-card-fullbg.uc-card-fullbg-overlay-90 .uc-card-fullbg-overlay { background: color-mix(in srgb, var(--uc-overlay-color, #000) 90%, transparent); }

/* Card shape */
.uc-card.uc-card-fullbg.uc-card-shape-square { aspect-ratio: 1 / 1; min-height: 0; }
.uc-card.uc-card-fullbg.uc-card-shape-rectangle { /* default — keep min-height from earlier rule */ }
/* ==== END UC ENHANCEMENTS 2026-04-20-05 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-06 ==== */
/* Image block — sizing by content.display_size.
   Three-class selectors beat the base `.uc-block.uc-image img { width: 100% }`. */
.uc-block.uc-image.uc-image-size-25 img       { width: 25%;  max-width: 100%; }
.uc-block.uc-image.uc-image-size-50 img       { width: 50%;  max-width: 100%; }
.uc-block.uc-image.uc-image-size-75 img       { width: 75%;  max-width: 100%; }
.uc-block.uc-image.uc-image-size-full img     { width: 100%; max-width: 100%; }
.uc-block.uc-image.uc-image-size-original img { width: auto; max-width: 100%; height: auto; }
/* ==== END UC ENHANCEMENTS 2026-04-20-06 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-07 ==== */
/* Image block — left/center/right alignment using margin so block-level <img>
   actually aligns. Specificity (3 classes + element) beats the sizing rules. */
.uc-block.uc-image.uc-align-left img   { margin-left: 0;    margin-right: auto; display: block; }
.uc-block.uc-image.uc-align-center img { margin-left: auto; margin-right: auto; display: block; }
.uc-block.uc-image.uc-align-right img  { margin-left: auto; margin-right: 0;    display: block; }
/* Alignment also applies to the <a> wrapper when the image is a link */
.uc-block.uc-image.uc-align-left  > a { display: block; text-align: left; }
.uc-block.uc-image.uc-align-center > a { display: block; text-align: center; }
.uc-block.uc-image.uc-align-right > a { display: block; text-align: right; }
.uc-block.uc-image.uc-align-left  figcaption { text-align: left; }
.uc-block.uc-image.uc-align-center figcaption { text-align: center; }
.uc-block.uc-image.uc-align-right figcaption { text-align: right; }
/* ==== END UC ENHANCEMENTS 2026-04-20-07 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-08 ==== */
/* Events carousel — card styling with proper gaps + 16:9 image ratio */
.uc-events-carousel .uc-carousel-item {
    padding: 0 10px;
    border: none !important;
    background: transparent !important;
    overflow: visible !important;
    display: flex;
    box-sizing: border-box;
}
.uc-events-carousel .uc-event-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    border: 1px solid var(--ucf-border);
    border-radius: var(--ucf-radius-lg, 8px);
    overflow: hidden;
    background: var(--ucf-bg);
}
.uc-events-carousel .uc-event-card > .uc-event-image {
    aspect-ratio: 16 / 9;
    width: 100%;
    overflow: hidden;
    height: auto;
}
.uc-events-carousel .uc-event-card > .uc-event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.uc-events-carousel .uc-event-card > .uc-event-content {
    padding: 16px;
    flex: 1;
    border: none !important;
    border-radius: 0 !important;
}
.uc-events-carousel .uc-event-card .uc-event-title { margin: 4px 0 6px; }
.uc-events-carousel .uc-event-card .uc-event-date,
.uc-events-carousel .uc-event-card .uc-event-location,
.uc-events-carousel .uc-event-card .uc-event-desc { margin-top: 4px; }

/* Responsive cards-per-view — drives min-width via CSS vars set inline on the track */
@media (max-width: 1024px) {
    .uc-events-carousel .uc-carousel-item {
        min-width: calc(100% / var(--uc-cards-per-view-tablet, var(--uc-cards-per-view, 1))) !important;
    }
}
@media (max-width: 600px) {
    .uc-events-carousel .uc-carousel-item {
        min-width: calc(100% / var(--uc-cards-per-view-mobile, 1)) !important;
        padding: 0 6px;
    }
}

/* Per-item hover for events carousel.
   When the block's outer wrapper has a .uc-hover-* class, disable the wrapper
   level effect (which would fire whenever you hover ANY descendant of the
   carousel) and apply the effect to each .uc-event-card individually. */
.uc-block-outer[class*="uc-hover-"]:has(.uc-events-carousel):hover {
    transform: none;
    box-shadow: none;
    filter: none;
    outline-color: transparent;
}
.uc-block-outer[class*="uc-hover-"]:has(.uc-events-carousel):hover img {
    transform: none;
    filter: inherit;
}
.uc-block-outer[class*="uc-hover-"] .uc-event-card {
    transition: transform .3s ease, box-shadow .3s ease, filter .3s ease, border-color .3s ease;
    will-change: transform;
}
.uc-block-outer[class*="uc-hover-"] .uc-event-card img {
    transition: transform .4s ease, filter .4s ease;
}
.uc-block-outer.uc-hover-lift .uc-event-card:hover   { transform: translateY(-6px); box-shadow: 0 14px 28px rgba(0,0,0,0.14), 0 8px 10px rgba(0,0,0,0.08); }
.uc-block-outer.uc-hover-zoom .uc-event-card:hover img { transform: scale(1.06); }
.uc-block-outer.uc-hover-shadow .uc-event-card:hover { box-shadow: 0 12px 30px rgba(0,0,0,0.18); }
.uc-block-outer.uc-hover-border .uc-event-card { outline: 2px solid transparent; outline-offset: 2px; }
.uc-block-outer.uc-hover-border .uc-event-card:hover { outline-color: var(--ucf-link); }
.uc-block-outer.uc-hover-tilt .uc-event-card:hover { transform: perspective(1000px) rotateX(3deg) rotateY(-3deg) translateZ(4px); }
.uc-block-outer.uc-hover-darken .uc-event-card:hover img { filter: brightness(0.7); }
.uc-block-outer.uc-hover-grayscale .uc-event-card img { filter: grayscale(1); }
.uc-block-outer.uc-hover-grayscale .uc-event-card:hover img { filter: grayscale(0); }
.uc-block-outer.uc-hover-glow .uc-event-card:hover { box-shadow: 0 0 0 3px rgba(13,110,110,0.18), 0 0 30px rgba(13,110,110,0.35); }
@media (prefers-reduced-motion: reduce) {
    .uc-block-outer[class*="uc-hover-"] .uc-event-card,
    .uc-block-outer[class*="uc-hover-"] .uc-event-card img { transition: none; }
    .uc-block-outer.uc-hover-lift .uc-event-card:hover,
    .uc-block-outer.uc-hover-tilt .uc-event-card:hover,
    .uc-block-outer.uc-hover-zoom .uc-event-card:hover img { transform: none; }
}
/* ==== END UC ENHANCEMENTS 2026-04-20-08 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-09 ==== */
/* Events carousel — make cards_per_view actually size each card, even widths,
   consistent image height, centred cover. Each item is an exact fraction of
   the track (explicit flex: 0 0 ...), so all cards are the same width. */
.uc-events-carousel .uc-carousel-track { align-items: stretch; }
.uc-events-carousel .uc-carousel-item {
    flex: 0 0 calc(100% / var(--uc-cards-per-view, 1));
    min-width: 0;
    max-width: none;
}
@media (max-width: 1024px) {
    .uc-events-carousel .uc-carousel-item {
        flex-basis: calc(100% / var(--uc-cards-per-view-tablet, var(--uc-cards-per-view, 1)));
        min-width: 0 !important;
    }
}
@media (max-width: 600px) {
    .uc-events-carousel .uc-carousel-item {
        flex-basis: calc(100% / var(--uc-cards-per-view-mobile, 1));
        min-width: 0 !important;
    }
}
/* Image — 16:9 frame, cover-and-centre regardless of source image ratio */
.uc-events-carousel .uc-event-card > .uc-event-image {
    aspect-ratio: 16 / 9;
    height: auto;
    width: 100%;
    min-height: 0;
    overflow: hidden;
}
.uc-events-carousel .uc-event-card > .uc-event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}
/* Make every card stretch to the tallest in the row, so the track looks even */
.uc-events-carousel .uc-event-card {
    height: 100%;
}
/* ==== END UC ENHANCEMENTS 2026-04-20-09 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-10 ==== */
/* Design tokens — wire newly-added vars into nav, logo, and row width.
   Falls back to the original hardcoded values when the ucf token is unset. */
.ucf-nav {
    --nav-hover-bg:    var(--ucf-nav-hover-bg, rgba(255,255,255,0.08));
    --nav-active-color: var(--ucf-nav-active-color, var(--ucf-nav-hover, #ffffff));
}
.ucf-nav-logo, .ucf-nav-logo-img, .uc-nav-logo, .uc-nav-logo-img,
.ucf-nav .ucf-nav-logo a, .ucf-nav .ucf-nav-logo {
    padding: var(--ucf-nav-logo-padding, 0);
}
/* Hover/active background for primary nav (the simpler horizontal/list nav) */
.uc-nav-primary a:hover,
.uc-nav-primary a.active {
    background: var(--ucf-nav-hover-bg, rgba(255,255,255,0.08));
    color: var(--ucf-nav-hover, #ffffff);
}
/* Active link text colour across nav variants */
.ucf-nav li.active > a,
.ucf-nav a.active {
    color: var(--ucf-nav-active-color, var(--ucf-nav-hover));
}

/* Row wide variant — opt-in via .uc-row-wide on the row block. The inner grid
   container's max-width is overridden, leaving normal rows untouched. */
.uc-row.uc-row-wide > [id^="uc-row-"],
.uc-row-single.uc-row-wide > .uc-row-single-inner {
    max-width: var(--ucf-super-max-width, 1600px) !important;
}
/* ==== END UC ENHANCEMENTS 2026-04-20-10 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-11 ==== */
/* Row wide variant — the OUTER .uc-block.uc-row is itself capped at
   --ucf-max-width, which would constrain anything inside. Override on the
   wide variant so the row genuinely expands to --ucf-super-max-width. */
.uc-block.uc-row.uc-row-wide {
    max-width: var(--ucf-super-max-width, 1600px);
}
/* ==== END UC ENHANCEMENTS 2026-04-20-11 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-12 ==== */
/* Stats — circular icon frame with per-item overrides via inline style.
   Selectors have higher specificity than the shipped .uc-frontend .uc-stat-icon
   rule so the framed look wins without touching the base declaration. */
.uc-stats .uc-stat-icon,
.uc-frontend .uc-stats .uc-stat-icon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--ucf-bg-alt, #f7fafc);
    color: var(--ucf-link, #0d6e6e);
    font-size: 36px !important;
    padding: 14px;
    margin: 0 auto 14px;
    box-sizing: border-box;
    line-height: 1;
}
/* ==== END UC ENHANCEMENTS 2026-04-20-12 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-13 ==== */
/* Card full-bg — hover colour transition. Engaged only when the card carries
   the .uc-card-hover-swap class (emitted by the template when overlay_color_hover
   is set). `!important` is needed because the resting `--uc-overlay-color` is
   set inline on the element and would otherwise beat external rules. */
.uc-card.uc-card-fullbg .uc-card-fullbg-overlay {
    transition: background 0.35s ease;
}
.uc-card.uc-card-fullbg.uc-card-hover-swap:hover {
    --uc-overlay-color: var(--uc-overlay-color-hover) !important;
}
@media (prefers-reduced-motion: reduce) {
    .uc-card.uc-card-fullbg .uc-card-fullbg-overlay { transition: none; }
}
/* ==== END UC ENHANCEMENTS 2026-04-20-13 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-14 ==== */
/* Register --uc-overlay-color as a colour so it interpolates during transitions.
   Without this, browsers cannot animate the var value — the overlay would snap
   from the base colour to the hover colour instantly. */
@property --uc-overlay-color {
    syntax: '<color>';
    inherits: true;
    initial-value: #000000;
}
/* Drive the transition on the card itself so the variable fades, and cascades
   through the color-mix() in the overlay rules for a smooth background fade. */
.uc-card.uc-card-fullbg.uc-card-hover-swap {
    transition: --uc-overlay-color 0.4s ease;
}
.uc-card.uc-card-fullbg.uc-card-hover-swap .uc-card-fullbg-overlay {
    transition: background 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
    .uc-card.uc-card-fullbg.uc-card-hover-swap,
    .uc-card.uc-card-fullbg.uc-card-hover-swap .uc-card-fullbg-overlay { transition: none; }
}
/* ==== END UC ENHANCEMENTS 2026-04-20-14 ==== */


/* ==== UC ENHANCEMENTS 2026-04-20-15 ==== */
/* Events fullview layout — two-column row per event (image left, body right),
   stacked on mobile. */
.uc-events.uc-events-fullview {
    display: flex;
    flex-direction: column;
    gap: var(--ucf-row-gap, 24px);
    max-width: var(--ucf-max-width);
    margin: 0 auto;
    padding: 16px 20px;
}
.uc-events-fullview .uc-event-fullview {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 24px;
    align-items: start;
    padding: 0;
    border: none;
}
.uc-events-fullview .uc-event-fullview-image {
    width: 100%;
    overflow: hidden;
    border-radius: var(--ucf-radius-lg, 8px);
    background: var(--ucf-bg-alt, #f7fafc);
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.uc-events-fullview .uc-event-fullview-image img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.uc-events-fullview .uc-event-fullview-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.uc-events-fullview .uc-event-fullview-content .uc-event-title {
    margin: 0;
    font-size: 1.5em;
}
.uc-events-fullview .uc-event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
    align-items: center;
    color: var(--ucf-text-light, #718096);
    font-size: 0.9em;
}
.uc-events-fullview .uc-event-meta .uc-event-category {
    background: var(--ucf-link, #0d6e6e);
    color: #fff;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.85em;
    font-weight: 500;
}
.uc-events-fullview .uc-event-full-details {
    margin-top: 4px;
    line-height: 1.6;
}
.uc-events-fullview .uc-event-full-details p { margin: 0 0 0.75em; }
.uc-events-fullview .uc-event-full-details p:last-child { margin-bottom: 0; }
.uc-events-fullview .uc-event-full-details ul,
.uc-events-fullview .uc-event-full-details ol { padding-left: 1.4em; margin: 0 0 0.75em; }
.uc-events-fullview .uc-event-full-details img { max-width: 100%; height: auto; border-radius: var(--ucf-radius, 6px); }
@media (max-width: 768px) {
    .uc-events-fullview .uc-event-fullview {
        grid-template-columns: 1fr;
    }
    /* Mobile: let the image show at its natural height. The desktop sets
       min-height for the empty-image placeholder background; reset that and
       drop any aspect-ratio so the image isn't cropped. */
    .uc-events-fullview .uc-event-fullview-image {
        min-height: 0;
        aspect-ratio: auto;
        background: transparent;
    }
    .uc-events-fullview .uc-event-fullview-image img {
        object-fit: contain;
        height: auto;
    }
}
/* ==== END UC ENHANCEMENTS 2026-04-20-15 ==== */

/* ==== UC BOOKING WIDGET CSS BACKFILL 2026-04-20 ==== */
/* Booking Widget */
.uc-booking-widget { max-width: var(--ucf-max-width); margin: 0 auto; padding: var(--ucf-row-gap) var(--ucf-content-padding); }
.uc-bw-heading { margin: 0 0 16px; }
.uc-bw-step { margin-bottom: 24px; }
.uc-bw-step h3 { font-size: 1.1em; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--ucf-border); }

/* Calendar */
.uc-bw-cal-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.uc-bw-cal-nav button { background: none; border: 1px solid var(--ucf-border); border-radius: 4px; padding: 4px 12px; font-size: 18px; cursor: pointer; }
.uc-bw-cal-nav span { font-weight: 600; }
.uc-bw-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.uc-bw-cal-head { font-size: 12px; font-weight: 600; color: var(--ucf-text-light); padding: 6px; }
.uc-bw-cal-empty { padding: 10px; }
.uc-bw-cal-avail { padding: 10px; cursor: pointer; border-radius: var(--ucf-radius); font-weight: 600; background: color-mix(in srgb, var(--ucf-success, #10b981) 18%, var(--ucf-bg)); color: var(--ucf-success, #10b981); transition: background 0.15s; }
.uc-bw-cal-avail:hover { background: color-mix(in srgb, var(--ucf-success, #10b981) 32%, var(--ucf-bg)); }
.uc-bw-cal-unavail { padding: 10px; color: var(--ucf-text-light); opacity: 0.4; }
.uc-bw-cal-past { padding: 10px; color: var(--ucf-text-light); opacity: 0.3; }

/* Date list / dropdown */
.uc-bw-date-list { display: flex; flex-wrap: wrap; gap: 6px; }
.uc-bw-date-item { padding: 8px 16px; border: 1px solid var(--ucf-border); border-radius: var(--ucf-radius); background: var(--ucf-bg); cursor: pointer; font-size: 14px; transition: all 0.15s; }
.uc-bw-date-item:hover { border-color: var(--ucf-link); background: #f0fdfa; }
.uc-bw-date-select { width: 100%; padding: 12px; border: 1px solid var(--ucf-border); border-radius: var(--ucf-radius); font-size: 1em; }

/* Date picker style */
.uc-bw-datepicker { max-width: 320px; }
.uc-bw-datepicker-label { display: block; font-weight: 600; margin-bottom: 8px; font-size: 0.95em; }
.uc-bw-datepicker-input { width: 100%; padding: 14px 16px; border: 2px solid var(--ucf-border); border-radius: var(--ucf-card-radius); font-size: 1.1em; font-family: inherit; cursor: pointer; transition: border-color 0.15s; }
.uc-bw-datepicker-input:hover { border-color: var(--ucf-link); }
.uc-bw-datepicker-input:focus { outline: none; border-color: var(--ucf-link); box-shadow: var(--ucf-input-focus); }
.uc-bw-datepicker-hint { font-size: 0.85em; color: var(--ucf-text-light); margin-top: 6px; }

/* Event groups */
.uc-bw-event-group { margin-bottom: 20px; }
.uc-bw-event-heading { font-weight: 700; font-size: 1.1em; padding: 8px 12px; margin-bottom: 10px; border-radius: 4px; }
.uc-bw-no-slots { padding: 8px 12px; color: var(--ucf-text-light); font-size: 14px; font-style: italic; }

/* Slots */
.uc-bw-slot-list { display: flex; flex-wrap: wrap; gap: 8px; }
.uc-bw-slot-item { padding: 10px 18px; border: 2px solid var(--ucf-border); border-radius: var(--ucf-card-radius); background: var(--ucf-bg); color: var(--ucf-text); cursor: pointer; transition: all 0.15s; text-align: center; font-size: 14px; font-weight: 600; }
.uc-bw-slot-item:hover, .uc-bw-slot-item.selected { border-color: var(--ucf-link); box-shadow: 0 2px 8px rgba(0,0,0,0.08); }
.uc-bw-slot-item.selected { background: color-mix(in srgb, var(--ucf-link) 12%, var(--ucf-bg)); color: var(--ucf-link); }

/* Tickets */
.uc-bw-ticket-item { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--ucf-border); }
.uc-bw-ticket-info { flex: 1; }
.uc-bw-ticket-info strong { display: block; }
.uc-bw-ticket-desc { font-size: 12px; color: var(--ucf-text-light); margin-top: 2px; }
.uc-bw-ticket-price { font-weight: 700; font-size: 1.1em; min-width: 60px; text-align: right; }
.uc-bw-ticket-add { padding: 8px 12px !important; }

/* Cart */
.uc-bw-cart-items { background: rgba(0,0,0,0.02); border-radius: var(--ucf-card-radius); padding: 16px; margin-top: 16px; }
.uc-bw-cart-items h4 { margin: 0 0 8px; }
.uc-bw-cart-items table { width: 100%; border-collapse: collapse; }
.uc-bw-cart-items td { padding: 6px 8px; border-bottom: 1px solid var(--ucf-border); font-size: 14px; }
.uc-bw-remove { background: none; border: none; color: var(--uc-danger, #dc2626); cursor: pointer; font-size: 18px; }
.uc-bw-discount { font-size: 13px; color: #22c55e; margin-top: 8px; }
.uc-bw-subtotal { font-size: 1.2em; margin-top: 8px; text-align: right; }

/* Details form */
.uc-bw-form input { display: block; width: 100%; padding: 10px 12px; border: 1px solid var(--ucf-border); border-radius: var(--ucf-radius); font-size: 1em; margin-bottom: 8px; }
.uc-bw-promo { display: flex; gap: 8px; }
.uc-bw-promo input { margin: 0; }
.uc-bw-timer { font-size: 13px; color: var(--ucf-text-light); margin: 12px 0; }
.uc-bw-total { font-size: 1.3em; font-weight: 700; margin: 8px 0 16px; }
.uc-bw-pay-btn { width: 100%; padding: 14px !important; font-size: 1.1em !important; }
/* ==== END UC BOOKING WIDGET CSS BACKFILL 2026-04-20 ==== */

/* ==== UC DIRECTORY CSS BACKFILL 2026-04-20 ==== */
/* Base directory styles */
.uc-directory-list { max-width: var(--ucf-max-width); margin: 0 auto; padding: var(--ucf-card-padding) var(--ucf-content-padding); }
.uc-dir-grid { display: grid; grid-template-columns: repeat(var(--uc-dir-cols, 3), 1fr); gap: var(--ucf-row-gap); }
@container (max-width: 768px) { .uc-dir-grid { grid-template-columns: repeat(2, 1fr); } }
@container (max-width: 480px) { .uc-dir-grid { grid-template-columns: 1fr; } }
.uc-dir-item { border: 1px solid var(--ucf-border); border-radius: var(--ucf-radius-lg); overflow: hidden; background: var(--ucf-bg); transition: box-shadow 0.2s; }
.uc-dir-item:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.uc-dir-image img { width: 100%; height: 200px; object-fit: cover; display: block; }
.uc-dir-content { padding: 16px; }
.uc-dir-name { margin: 0 0 6px; font-size: 1.15em; }
.uc-dir-category { display: inline-block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--ucf-link); background: color-mix(in srgb, var(--ucf-link) 12%, var(--ucf-bg)); padding: 2px 8px; border-radius: 4px; margin-bottom: 8px; }
.uc-dir-desc { font-size: 0.9em; color: var(--ucf-text-light); margin-bottom: 10px; line-height: 1.5; }
.uc-dir-desc p { margin: 0 0 6px; }
.uc-dir-meta { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ucf-text-light); margin-bottom: 4px; }
.uc-dir-meta .material-symbols-outlined { font-size: 16px; color: var(--ucf-link); flex-shrink: 0; }
.uc-dir-meta a { color: var(--ucf-text); }
.uc-dir-socials { display: flex; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--ucf-border); }
.uc-dir-social { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--ucf-border); color: var(--ucf-text); transition: all 0.15s; text-decoration: none; }
.uc-dir-social:hover { background: var(--ucf-link); color: #fff; text-decoration: none; }
.uc-dir-social .material-symbols-outlined { font-size: 18px; }
.uc-dir-social svg { width: 18px; height: 18px; }
.uc-dir-map { margin-top: 10px; }
/* Directory List layout — fullview style */
.uc-dir-list .uc-dir-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
    gap: 24px;
    align-items: start;
    margin-bottom: var(--ucf-row-gap, 24px);
    border: none;
    border-radius: 0;
    background: transparent;
    overflow: visible;
}
.uc-dir-list .uc-dir-item:hover { box-shadow: none; }
.uc-dir-list .uc-dir-image {
    width: 100%;
    overflow: hidden;
    border-radius: var(--ucf-radius-lg, 8px);
    background: var(--ucf-bg-alt, #f7fafc);
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.uc-dir-list .uc-dir-image img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}
.uc-dir-list .uc-dir-content { padding: 0; }
@media (max-width: 768px) {
    .uc-dir-list .uc-dir-item { grid-template-columns: 1fr; gap: 16px; }
    .uc-dir-list .uc-dir-image { min-height: 0; aspect-ratio: auto; background: transparent; }
    .uc-dir-list .uc-dir-image img { object-fit: contain; height: auto; }
}
/* ==== END UC DIRECTORY CSS BACKFILL 2026-04-20 ==== */
