@import url("https://cdn.jsdelivr.net/npm/flatpickr@4.6.13/dist/flatpickr.min.css");

/* Dr Kat Mac Industry – brand palette */
:root {
    --ink:#133349;
    --navy:#133349;
    --gold:#B48B58;
    --green:#D9D9A5;
    --green-light:#EFEFD7;
    --muted:#133349;
    --accent:var(--gold);
    --paper:#ffffff;
    --soft:var(--green);
    --line:rgba(19,51,73,.20);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body.drkat-site { margin:0; font:400 16px/1.7 'DM Sans',sans-serif; color:var(--ink); background:var(--paper); }
a { color:var(--ink); }
a:hover { color:var(--accent); }
img { max-width:100%; height:auto; }
h1,h2,h3 { line-height:1.2; font-weight:600; margin:0 0 .75em; }
h1 { font-size:clamp(1.8rem,3vw,2.6rem); }
h2 { font-size:clamp(1.45rem,2.4vw,2rem); }
h3 { font-size:clamp(1.18rem,1.8vw,1.5rem); }
p { margin:0 0 1.25em; }
.skip-link { position:absolute; left:15px; top:-70px; padding:9px 15px; z-index:1000; background:#fff; }
.skip-link:focus { top:10px; }
/* Header: genuine fixed-centre three-column grid, independent of Bootstrap navbar expansion. */
.site-header { position:relative; z-index:100; background:#fff; border-bottom:1px solid var(--line); }
.site-header-inner { max-width:1680px; margin:auto; padding:0 clamp(18px,2vw,36px); }
.site-navigation.navbar { display:block; width:100%; padding:0; margin:0; }
.site-navigation #main-navigation.navigation-row {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 210px minmax(0,1fr);
    gap:24px;
    align-items:center;
    width:100%; min-height:136px;
}
.site-navigation .navigation-side {
    display:flex; flex-direction:row; align-items:center;
    justify-content:space-between;
    flex-wrap:nowrap; gap:8px;
    width:100%; min-width:0; padding:0; margin:0;
}
.site-navigation .navigation-side .nav-item { flex:0 0 auto; }
.site-navigation .navigation-side .nav-link {
    color:var(--ink); font-size:clamp(.83rem,.96vw,1rem);
    font-weight:700; letter-spacing:0; padding:12px 0; white-space:nowrap;
}
.site-navigation .navigation-side .nav-link:hover,
.site-navigation .navigation-side .nav-link.active { color:var(--accent); }
.site-navigation .navigation-brand {
    display:flex; align-items:center; justify-content:center;
    width:210px; min-width:0; margin:0 auto; text-align:center;
}
.site-navigation .navigation-brand img {
    display:block; max-width:210px; width:auto; height:auto;
    max-height:120px; object-fit:contain; margin:0 auto;
}
.site-navigation .navigation-brand span { font-size:1.5rem; font-style:italic; }
.navigation-mobile-bar { display:none; }
.mobile-home-link { display:none; }
/* Bootstrap keeps navbar dropdowns in normal flow unless navbar-expand-* is used.
   This custom desktop grid needs them positioned over the page banner instead. */
@media (min-width:1251px) {
    .site-navigation .navigation-side .nav-item.dropdown { position:relative; }
    .site-navigation .navigation-side .dropdown-menu {
        position:absolute !important;
        top:100%;
        left:0;
        right:auto;
        z-index:1100;
    }
}
.site-navigation .navigation-side .dropdown-menu {
    min-width:245px; margin-top:0; padding:8px 0;
    border:1px solid var(--line); border-radius:0;
    box-shadow:0 12px 28px rgba(0,0,0,.08);
}
.site-navigation .navigation-side .dropdown-item { white-space:normal; font-size:.9rem; padding:9px 18px; }
.site-navigation .navigation-side .dropdown-item:hover,
.site-navigation .navigation-side .dropdown-item.active { background:var(--soft); color:var(--ink); }
@media(min-width:1251px) and (hover:hover) and (pointer:fine) {
    .site-navigation .navigation-side .dropdown:hover>.dropdown-menu,
    .site-navigation .navigation-side .dropdown:focus-within>.dropdown-menu { display:block; }
}
/* Keep full navigation on ordinary laptops; tighten spacing before collapsing. */
@media (min-width:1251px) and (max-width:1450px) {
    .site-navigation #main-navigation.navigation-row {
        grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);
        gap:12px;
    }
    .site-navigation .navigation-brand { width:180px; }
    .site-navigation .navigation-brand img { max-width:180px; }
    .site-navigation .navigation-side { gap:5px; }
    .site-navigation .navigation-side .nav-link { font-size:clamp(.78rem,.93vw,.9rem); }
}
/* Collapse on narrower laptops, before menu items collide with the logo. */
@media(max-width:1250px) {
    .site-navigation .navigation-mobile-bar {
        display:flex; position:relative; align-items:center; justify-content:center;
        width:100%; min-height:100px;
    }
    .site-navigation .mobile-brand {
        display:flex; align-items:center; justify-content:center;
        color:var(--ink); font-size:1.2rem; font-weight:600;
    }
    .site-navigation .mobile-brand img {
        display:block; width:auto; max-width:190px; max-height:86px; object-fit:contain;
    }
    .site-navigation .navbar-toggler {
        display:flex; align-items:center; justify-content:center;
        position:absolute; right:0; top:50%; transform:translateY(-50%);
        width:46px; height:42px; padding:9px;
        background:#EFEFD7; border:1px solid #B48B58; border-radius:8px;
        color:#133349; box-shadow:none;
        transition:background-color .2s ease, border-color .2s ease;
    }
    .site-navigation .navbar-toggler:hover,
    .site-navigation .navbar-toggler[aria-expanded="true"] {
        background:#D9D9A5; border-color:#B48B58;
    }
    .site-navigation .navbar-toggler:focus-visible {
        outline:2px solid #B48B58; outline-offset:3px; box-shadow:none;
    }
    .site-navigation .navbar-toggler-icon {
        display:block; width:23px; height:20px;
        background-image:linear-gradient(#133349,#133349),linear-gradient(#133349,#133349),linear-gradient(#133349,#133349);
        background-size:100% 1px; background-position:center 3px,center 10px,center 17px;
        background-repeat:no-repeat;
    }
    .site-navigation #main-navigation.navigation-row {
        display:none !important; width:100%; min-height:0; padding:8px 0 22px;
    }
    .site-navigation #main-navigation.navigation-row.show,
    .site-navigation #main-navigation.navigation-row.collapsing { display:block !important; }
    .site-navigation .navigation-side {
        display:flex; flex-direction:column; align-items:stretch; gap:0;
    }
    .site-navigation .navigation-side .nav-item { width:100%; }
    .site-navigation .navigation-side .nav-link {
        display:block; font-size:.96rem; padding:12px 10px;
        border-bottom:1px solid var(--line);
    }
    .site-navigation .navigation-brand { display:none; }
    .site-navigation .navigation-side .dropdown-menu {
        position:static !important; transform:none !important;
        box-shadow:none; border:0; padding-left:15px;
    }
    .site-navigation .navigation-side .dropdown-item { padding:9px 12px; }
}
/* Pages and common Bootstrap form controls */
.interior_main { min-height:55vh; padding:clamp(45px,6vw,90px) 16px; }
.interior_body_content { max-width:1200px; }
.interior_body_content p,.interior_body_content li { line-height:1.75; }
.interior_body_content a:not(.btn) { text-underline-offset:3px; }
.plain_page_row { --bs-gutter-x:clamp(25px,4vw,65px); --bs-gutter-y:30px; }
#plain_page_photos img { display:block; width:100%; height:auto; border-radius:6px; margin-bottom:20px; }
.form-input-container { margin-bottom:16px; }
.form-label { display:block; margin-bottom:6px; font-weight:600; }
.form-control:focus,.form-select:focus { border-color:var(--accent); box-shadow:0 0 0 .2rem rgba(180,139,88,.20); }
/* Consistent primary buttons across the site: same design as home-btn-gold. */
.btn-primary, .home-btn-gold {
    --bs-btn-bg:var(--gold);
    --bs-btn-border-color:var(--gold);
    --bs-btn-color:var(--navy);
    --bs-btn-hover-bg:#fff;
    --bs-btn-hover-border-color:var(--navy);
    --bs-btn-hover-color:var(--navy);
    --bs-btn-active-bg:var(--gold);
    --bs-btn-active-border-color:var(--navy);
    --bs-btn-active-color:var(--navy);
    display:inline-block;
    padding:11px 25px;
    border:2px solid var(--gold);
    border-radius:5px;
    background:var(--gold);
    color:var(--navy);
    font-weight:700;
    text-decoration:none;
    line-height:1.5;
    transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.btn-primary:hover, .home-btn-gold:hover,
.btn-primary:focus-visible, .home-btn-gold:focus-visible {
    background:#fff;
    border-color:var(--navy);
    color:var(--navy);
    text-decoration:none;
}
.btn-primary:focus-visible, .home-btn-gold:focus-visible {
    outline:2px solid var(--navy);
    outline-offset:2px;
}
/* Simple footer */
/* Footer: business introduction, three service groups and contact details. */
.site-footer { background:var(--soft); border-top:1px solid var(--line); padding:55px 0 22px; }
.footer-inner { display:grid; grid-template-columns:minmax(145px,1fr) minmax(0,3.4fr) minmax(165px,1.1fr); gap:clamp(25px,3vw,55px); align-items:start; }
.footer-intro strong { display:block; font-size:1.08rem; }
.footer-intro p { color:var(--muted); margin:12px 0 0; font-size:.92rem; }
.footer-menu-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(15px,2vw,35px); }
.footer-menu-section h2,.footer-contact h2 { margin:0 0 17px; font-family:inherit; font-size:.93rem; line-height:1.35; font-weight:700; }
.footer-menu-section h2 a { text-decoration:none; }
.footer-menu-section ul { margin:0; padding:0; list-style:none; }
.footer-menu-section li { margin:0 0 8px; }
.footer-menu-section li a,.footer-contact>a { display:block; color:var(--muted); font-size:.87rem; line-height:1.5; text-decoration:none; overflow-wrap:anywhere; }
.footer-menu-section a:hover,.footer-contact a:hover,.footer-bottom a:hover { color:var(--accent); }
.footer-contact>a { margin-bottom:11px; }
.footer-bottom { border-top:1px solid var(--line); padding-top:20px; margin-top:35px; display:flex; justify-content:space-between; gap:15px; flex-wrap:wrap; font-size:.8rem; color:var(--muted); }
.footer-bottom a { color:inherit; }
.footer-separator { margin:0 7px; }
@media(max-width:1100px) { .footer-inner { grid-template-columns:1fr 3fr; } .footer-contact { grid-column:2; } }
@media(max-width:700px) { .footer-inner { grid-template-columns:1fr; } .footer-menu-columns { grid-template-columns:repeat(2,minmax(0,1fr)); } .footer-contact { grid-column:auto; } }
@media(max-width:420px) { .footer-menu-columns { grid-template-columns:1fr; } }

/* Full-width page photo from pages.photo; hidden when a page has no banner. */
.page-banner {
    position: relative;
    width: 100%;
    overflow: hidden;
    background:var(--soft);
}
.page-banner img {
    display: block;
    width: 100%;
    height: clamp(230px, 27vw, 450px);
    object-fit: cover;
    object-position: center;
}
@media (max-width: 767.98px) {
    .page-banner img { height: 220px; }
}

/* Page name overlaid at the bottom-left of the banner */
.page-banner-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(to top, rgba(0,0,0,.60) 0%, rgba(0,0,0,.10) 58%, transparent 100%);
    pointer-events: none;
}
.page-banner-caption {
    width: 100%;
    max-width: 1200px;
    padding: 0 16px clamp(22px, 4vw, 55px);
}
.page-banner-caption h1 {
    color: #fff;
    font-size: clamp(1.9rem, 3.2vw, 2.9rem);
    font-weight: 600;
    line-height: 1.12;
    margin: 0;
    text-shadow: 0 2px 12px rgba(0,0,0,.2);
}
@media (max-width: 767.98px) {
    .page-banner-caption { padding-bottom: 23px; }
}

/* Footer logo */
.footer-logo { display:inline-block; width:100%; max-width:230px; text-decoration:none; }
.footer-logo img { display:block; width:100%; height:auto; max-height:125px; object-fit:contain; object-position:left center; }
.footer-logo span { display:block; font-size:1.1rem; font-weight:700; }

/* Brand-consistent focus and interactive states */
a:focus-visible, button:focus-visible, .nav-link:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.btn-primary:focus-visible { box-shadow:0 0 0 .2rem rgba(180,139,88,.25); }

/* Testimonials – responsive cards for the existing .row > .testimonial markup */
.interior_body_content .row:has(> .testimonial) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    margin: 38px 0 0;
}

.interior_body_content .row > .testimonial {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 68px 32px 28px;
    background: #fff;
    color: var(--navy);
    border: 1px solid var(--line);
    border-top: 4px solid var(--gold);
    border-radius: 10px;
    box-shadow: 0 8px 28px rgba(19, 51, 73, .08);
    font-size: 1.02rem;
    line-height: 1.8;
}

/* Reliable quotation mark even if the Font Awesome icon is not loaded. */
.interior_body_content .testimonial::before {
    content: '\201C';
    position: absolute;
    top: 12px;
    left: 29px;
    color: var(--gold);
    font-family: Georgia, serif;
    font-size: 5.1rem;
    line-height: 1;
}

.interior_body_content .testimonial > i.fa-quote-left {
    display: none;
}

.interior_body_content .testimonial .signature {
    margin: auto 0 0;
    padding-top: 24px;
    color: var(--navy);
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.5;
}

.interior_body_content .testimonial .signature::before {
    content: '';
    display: block;
    width: 48px;
    height: 2px;
    margin-bottom: 15px;
    background: var(--gold);
}

@media (max-width: 767.98px) {
    .interior_body_content .row:has(> .testimonial) {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 28px;
    }
    .interior_body_content .row > .testimonial {
        padding: 64px 24px 25px;
        font-size: 1rem;
    }
    .interior_body_content .testimonial::before { left: 22px; }
}

/* Resources: chronological listing with category tags */
.resources-index { margin-top: 1.5rem; }
.resources-list-item { padding: 32px 0; border-bottom: 1px solid var(--line); }
.resources-list-item:first-child { padding-top: 8px; }
.resources-list-item:last-child { border-bottom: 0; }
.resources-list-photo img { width:100%; aspect-ratio: 16/10; object-fit:cover; border-radius:8px; display:block; }
.resources-list-description h2 { font-size:clamp(1.3rem,2.1vw,1.75rem); margin:12px 0 8px; }
.resources-list-description h2 a { text-decoration:none; color:var(--navy); }
.resources-list-description h2 a:hover { color:var(--gold); }
.resources-list-date { font-size:.88rem; margin-bottom:10px; opacity:.8; }
.resources-list-content { margin-bottom:12px; }
.resources-read-more { font-weight:700; color:var(--navy); text-decoration:none; }
.resources-read-more:hover { color:var(--gold); }
.resource-type-tag { display:inline-block; padding:5px 12px; border-radius:20px; font-size:.78rem; font-weight:700; letter-spacing:.015em; text-decoration:none!important; border:1px solid transparent; transition:filter .15s ease, transform .15s ease; }
.resource-type-tag:hover { filter:brightness(.91); transform:translateY(-1px); }
.resource-type-tag:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
.resource-type-tag.tag-language { background:var(--navy); color:#fff; }
.resource-type-tag.tag-links { background:var(--green); color:var(--navy); }
.resource-type-tag.tag-publications { background:var(--gold); color:#000; }
.resource-type-tag.tag-downloads { background:#fff; border-color:var(--navy); color:var(--navy); }
.resource-type-tag.tag-creative { background:var(--navy); border-color:var(--gold); color:var(--gold); }
.resource-type-tag.tag-default { background:var(--green); color:var(--navy); }
@media(max-width:767.98px) { .resources-list-item { padding:24px 0; } }

/* Align resource category tag to the right of the article title */
.resources-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px 20px;
    margin: 0 0 8px;
}
.resources-list-description .resources-title-row h2 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}
.resources-title-row .resource-type-tag {
    flex: 0 0 auto;
    white-space: nowrap;
    margin-top: 5px;
}
@media (max-width: 575.98px) {
    .resources-title-row { flex-wrap: wrap; }
    .resources-list-description .resources-title-row h2 { flex-basis: 100%; }
    .resources-title-row .resource-type-tag { margin-top: 0; }
}


/* Individual resource article: readable, centred editorial layout */
.interior_body_content .resources_item {
    margin: 0 auto;
    padding: 0;
    width: 100%;
}
.interior_body_content .resources_item .resources_description {
    padding: 0 12px;
}
.interior_body_content .resources_item .resources_description h1 {
    font-size: clamp(1.8rem, 2.8vw, 2.55rem);
    line-height: 1.16;
    letter-spacing: -.025em;
    color: var(--navy);
    margin: 0 0 14px;
    font-weight: 700;
    overflow-wrap: break-word;
}
.interior_body_content .resources_item .resources_date {
    font-size: .92rem;
    font-weight: 600;
    color: var(--navy);
    opacity: .76;
    margin: 0 0 26px;
    padding-left: 14px;
    border-left: 3px solid var(--gold);
}
.interior_body_content .resources_item .resources_hero_photo {
    margin: 0 0 clamp(26px, 4vw, 42px);
}
.interior_body_content .resources_item .resources_hero_photo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 510px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 10px;
}
.interior_body_content .resources_item .resources_content {
    font-size: 1.055rem;
    line-height: 1.85;
    color: var(--navy);
}
.interior_body_content .resources_item .resources_content p {
    line-height: inherit;
    margin: 0 0 1.45em;
}
.interior_body_content .resources_item .resources_content h2 {
    font-size: clamp(1.25rem, 1.9vw, 1.55rem);
    line-height: 1.3;
    color: var(--navy);
    margin: 1.8em 0 .6em;
    font-weight: 700;
}
.interior_body_content .resources_item .resources_content h3 {
    font-size: clamp(1.1rem, 1.5vw, 1.3rem);
    margin: 1.6em 0 .6em;
    color: var(--navy);
}
.interior_body_content .resources_item .resources_content > p:first-child:has(em) {
    padding: 12px 16px;
    margin: 0 0 27px;
    background: var(--green);
    border-left: 3px solid var(--gold);
    border-radius: 0 6px 6px 0;
    font-size: .9rem;
    line-height: 1.6;
}
.interior_body_content .resources_item .resources_content > p:first-child:has(em) em {
    font-style: normal;
}
.interior_body_content .resources_item .resources_content a {
    color: var(--navy);
    text-decoration-color: var(--gold);
    text-underline-offset: 4px;
}
.interior_body_content .resources_item .resources_content a:hover { color: var(--gold); }
.interior_body_content .resources_item .resources_content ul,
.interior_body_content .resources_item .resources_content ol { padding-left: 1.4em; margin-bottom: 1.5em; }
.interior_body_content .resources_item .resources_photos img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 0 0 22px;
}
@media (max-width: 767.98px) {
    .interior_body_content .resources_item .resources_description { padding: 0; }
    .interior_body_content .resources_item .resources_hero_photo img { aspect-ratio: 4 / 3; }
    .interior_body_content .resources_item .resources_content { font-size: 1rem; line-height: 1.75; }
    .interior_body_content .resources_item .resources_content h2 { margin-top: 1.55em; }
}

/* Dr Kat Mac Industry contact page */
.contact-page { width:100%; }
.contact-page-row { --bs-gutter-x:clamp(28px,5vw,78px); --bs-gutter-y:36px; }
.contact-page-intro { padding-top:8px; }
.contact-page-intro > h1:first-child,
.contact-page-intro > h2:first-child { margin-bottom:22px; }
.contact-page-intro > p { max-width:720px; }
.contact-page-details { margin:26px 0 32px; }
.contact-page-details p { margin-bottom:12px; }
.contact-page-details a { color:var(--navy); font-weight:600; }
.contact-page-quote { max-width:660px; border-left:4px solid var(--gold); padding:18px 24px; background:var(--green-light); margin-top:35px; }
.contact-page-quote h2 { font-size:clamp(1.3rem,2vw,1.6rem); margin:0 0 12px; }
.contact-page-quote p { margin-bottom:16px; }
.contact-page-quote .btn:not(.home-btn-outline) { border:2px solid var(--gold); border-radius:5px; color:var(--navy); background:var(--gold); font-weight:700; }
.contact-page-quote .btn:not(.home-btn-outline):hover { background:#fff; border-color:var(--navy); color:var(--navy); }
.contact-enquiry-card { padding:clamp(24px,3vw,42px); background:var(--green-light); border:1px solid var(--line); box-shadow:0 16px 40px rgba(0,0,0,.07); }
.contact-enquiry-card h2 { margin:0 0 10px; }
.contact-enquiry-card > p { font-size:.95rem; margin-bottom:25px; }
.contact-enquiry-card label { font-weight:600; font-size:.9rem; }
.contact-enquiry-card input:not([type="hidden"]):not([type="submit"]),
.contact-enquiry-card textarea,
.contact-enquiry-card select { width:100%; max-width:100%; background:#fff; border:1px solid rgba(19,51,73,.3); border-radius:4px; }
.contact-enquiry-card input:focus,
.contact-enquiry-card textarea:focus { border-color:var(--gold); outline-color:var(--gold); }
.contact-enquiry-card textarea { min-height:140px; }
.contact-enquiry-card .form-input-container { margin-bottom:17px; }
.contact-enquiry-card .contact-turnstile { margin:20px 0 12px; }
.contact-enquiry-card .btn-primary { padding:11px 25px; border-radius:5px; font-weight:700; }
.contact-form-status:not(:empty) { margin:10px 0; font-size:.9rem; color:var(--navy); font-weight:600; }
@media(max-width:991.98px) { .contact-page-quote { margin-top:24px; } }


/* ==========================================================
   Performances: events index and event detail pages
   Dr Kat Mac Industry palette: navy, gold and soft green
   ========================================================== */

/* Upcoming events list to the left of FullCalendar */
.interior_body_content .current_events_list,
.interior_body_content .past_events_list { min-width:0; }
.interior_body_content .current_events_list > h2 {
    font-size:clamp(1.2rem,1.75vw,1.45rem);
    color:var(--navy);
    border-bottom:2px solid var(--gold);
    padding:0 0 12px;
    margin:0 0 18px;
}
.interior_body_content .current_events_list > ul,
.interior_body_content .past_events_list > ul {
    list-style:none;
    margin:0 0 27px;
    padding:0;
}
.interior_body_content .current_events_list > ul > li {
    background:#fff;
    border:1px solid rgba(19,51,73,.16);
    border-left:4px solid var(--gold);
    border-radius:6px;
    padding:16px 18px;
    margin-bottom:12px;
    box-shadow:0 4px 16px rgba(0,0,0,.04);
    line-height:1.6;
}
.interior_body_content .current_events_list > ul > li a {
    display:block;
    font-weight:700;
    line-height:1.35;
    text-decoration:none;
    margin-bottom:6px;
    color:var(--navy);
}
.interior_body_content .current_events_list > ul > li a:hover { color:var(--gold); }
.interior_body_content .current_events_list .events_dates {
    color:var(--navy);
    font-size:.86rem;
    font-weight:600;
}

/* Calendar container and FullCalendar controls */
.interior_body_content #calendar {
    background:#fff;
    border:1px solid rgba(19,51,73,.17);
    border-radius:8px;
    padding:clamp(12px,2vw,24px);
    box-shadow:0 10px 30px rgba(0,0,0,.045);
    margin-bottom:36px;
    --fc-border-color:rgba(19,51,73,.18);
    --fc-today-bg-color:rgba(217,217,165,.36);
    --fc-neutral-bg-color:rgba(217,217,165,.25);
    --fc-page-bg-color:#fff;
    --fc-button-bg-color:#133349;
    --fc-button-border-color:#133349;
    --fc-button-hover-bg-color:#B48B58;
    --fc-button-hover-border-color:#B48B58;
    --fc-button-active-bg-color:#133349;
    --fc-button-active-border-color:#133349;
    --fc-event-bg-color:#133349;
    --fc-event-border-color:#133349;
    --fc-event-text-color:#fff;
}
.interior_body_content #calendar .fc-toolbar-title {
    color:var(--navy);
    font-size:clamp(1.15rem,1.7vw,1.5rem);
    font-weight:700;
}
.interior_body_content #calendar .fc-button {
    border-radius:4px;
    box-shadow:none;
    font-weight:600;
    text-transform:capitalize;
}
.interior_body_content #calendar .fc-button:focus-visible {
    outline:2px solid var(--gold);
    outline-offset:2px;
}
.interior_body_content #calendar .fc-col-header-cell {
    background:var(--green);
}
.interior_body_content #calendar .fc-col-header-cell-cushion,
.interior_body_content #calendar .fc-daygrid-day-number {
    color:var(--navy);
    text-decoration:none;
}
.interior_body_content #calendar .fc-daygrid-event,
.interior_body_content #calendar .fc-event.general_event {
    background:var(--navy);
    border-color:var(--navy);
    color:#fff;
    border-radius:3px;
    padding:2px 4px;
    font-size:.8rem;
}
.interior_body_content #calendar .fc-event:hover { background:var(--gold); border-color:var(--gold); color:#000; }
.interior_body_content #calendar .fc-day-today { background:rgba(217,217,165,.36)!important; }

/* Past events displayed beneath the main events/calendar row */
.interior_body_content .past_events_list { margin-top:clamp(18px,3vw,42px); }
.interior_body_content .past_events_list > h3 {
    font-size:clamp(1.4rem,2vw,1.7rem);
    border-bottom:2px solid var(--gold);
    padding-bottom:14px;
    margin:0 0 26px;
}
.interior_body_content .past_events_list > h2 {
    font-size:clamp(1.1rem,1.6vw,1.35rem);
    margin:24px 0 12px;
}
.interior_body_content .past_events_list > ul > li {
    border-bottom:1px solid rgba(19,51,73,.16);
    padding:11px 0;
    line-height:1.6;
}
.interior_body_content .past_events_list > ul > li a { font-weight:600; color:var(--navy); text-decoration:none; }
.interior_body_content .past_events_list > ul > li a:hover { color:var(--gold); }
.interior_body_content .past_events_list .events_dates { font-size:.9rem; color:var(--navy); }

/* Individual event details page */
.interior_body_content .events_item { margin:0 auto; max-width:1200px; }
.interior_body_content .events_item > .row { --bs-gutter-x:clamp(24px,4vw,55px); --bs-gutter-y:28px; }
.interior_body_content .events_item > .row > .events_description > h1 {
    color:var(--navy);
    margin:0 0 16px;
    line-height:1.25;
}
.interior_body_content .events_item > .row > .events_description > .events_dates {
    display:inline-block;
    background:var(--green);
    border-left:4px solid var(--gold);
    border-radius:0 5px 5px 0;
    padding:10px 17px;
    font-size:.98rem;
    font-weight:700;
    color:var(--navy);
    margin-bottom:28px;
}
.interior_body_content .events_item .events_description .events_description {
    font-size:1.02rem;
    line-height:1.8;
}
.interior_body_content .events_item .events_description .events_description p { margin:0 0 1.3em; }
.interior_body_content .events_item .events_description .events_description h2,
.interior_body_content .events_item .events_description .events_description h3 {
    color:var(--navy);
    margin-top:1.6em;
}
.interior_body_content .events_item .events_description .events_description ul:empty { display:none; }
.interior_body_content .events_item .events_photos img {
    display:block;
    width:100%;
    height:auto;
    border-radius:8px;
    margin-bottom:20px;
    box-shadow:0 9px 24px rgba(0,0,0,.08);
}
.interior_body_content .events_item a { text-decoration-color:var(--gold); text-underline-offset:3px; }
.interior_body_content .events_item a:hover { color:var(--gold); }

@media(max-width:767.98px) {
    .interior_body_content #calendar { padding:10px 5px; }
    .interior_body_content #calendar .fc-toolbar { flex-wrap:wrap; gap:10px; }
    .interior_body_content #calendar .fc-toolbar-title { font-size:1.12rem; }
    .interior_body_content #calendar .fc-button { font-size:.78rem; padding:5px 8px; }
    .interior_body_content #calendar .fc-col-header-cell-cushion { font-size:.75rem; }
    .interior_body_content #calendar .fc-daygrid-day-number { font-size:.8rem; }
    .interior_body_content .events_item > .row > .events_description > .events_dates { margin-bottom:19px; }
}


/* WordSwords FAQs – category groups and native expandable answers */
.interior_body_content .admissions_rich_text {
    margin-top:clamp(30px,4vw,52px);
}
.interior_body_content .admissions_rich_text > h2 {
    color:var(--navy);
    margin:0 0 24px;
    padding-bottom:13px;
    border-bottom:2px solid var(--gold);
}
.interior_body_content .admissions_qa_list {
    display:grid;
    gap:clamp(26px,4vw,42px);
}
.interior_body_content .admissions_qa_group {
    margin:0;
    min-width:0;
}
.interior_body_content .admissions_qa_heading {
    color:var(--navy);
    font-weight:700;
    margin:0 0 14px;
    padding:12px 0 10px 14px;
    border-left:4px solid var(--gold);
    border-top:1px solid var(--gold);
    border-bottom:none;
}
.interior_body_content .admissions_qa_item {
    border:1px solid rgba(19,51,73,.22);
    border-radius:7px;
    background:#fff;
    overflow:hidden;
    margin-bottom:10px;
}
.interior_body_content .admissions_qa_item summary {
    position:relative;
    display:block;
    list-style:none;
    cursor:pointer;
    color:var(--navy);
    font-weight:700;
    line-height:1.5;
    padding:17px 54px 17px 19px;
    transition:background-color .18s ease;
}
.interior_body_content .admissions_qa_item summary::-webkit-details-marker { display:none; }
.interior_body_content .admissions_qa_item summary::after {
    content:'+';
    position:absolute;
    right:19px;
    top:50%;
    transform:translateY(-50%);
    width:27px;
    height:27px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--green);
    color:var(--navy);
    font-size:1.3rem;
    font-weight:500;
    line-height:1;
}
.interior_body_content .admissions_qa_item summary:hover,
.interior_body_content .admissions_qa_item[open] > summary {
    background:var(--green);
}
.interior_body_content .admissions_qa_item[open] > summary::after {
    content:'−';
    background:var(--navy);
    color:#fff;
}
.interior_body_content .admissions_qa_item summary:focus-visible {
    outline:3px solid var(--gold);
    outline-offset:-3px;
}
.interior_body_content .admissions_qa_answer {
    border-top:1px solid rgba(19,51,73,.16);
    padding:19px 22px 21px;
    color:var(--navy);
    line-height:1.75;
}
.interior_body_content .admissions_qa_answer p:last-child { margin-bottom:0; }
.interior_body_content .admissions_qa_answer a {
    color:var(--navy);
    text-decoration-color:var(--gold);
    text-decoration-thickness:2px;
    text-underline-offset:3px;
}
.interior_body_content .admissions_qa_answer a:hover { color:var(--gold); }
@media(max-width:575.98px) {
    .interior_body_content .admissions_qa_item summary { padding:14px 49px 14px 14px; }
    .interior_body_content .admissions_qa_item summary::after { right:12px; }
    .interior_body_content .admissions_qa_answer { padding:15px 16px 18px; }
}

/* WordSwords Rates & Quotes – two-stage calculator and enquiry */
.interior_body_content .quote-enquiry {
    max-width:980px;
    margin-inline:auto;
    padding-top:0 !important;
    padding-bottom:0 !important;
}
.quote-enquiry .rates_quotes_intro {
    max-width:850px;
    margin:0 0 28px;
    line-height:1.75;
}
.quote-enquiry .rates_quotes_intro h2,
.quote-enquiry .rates_quotes_intro h3 {
    color:var(--navy);
    margin:30px 0 12px;
    font-weight:700;
}
.quote-enquiry .rates_quotes_intro h2:first-child,
.quote-enquiry .rates_quotes_intro h3:first-child { margin-top:0; }
.quote-enquiry .rates_quotes_intro p { margin-bottom:14px; }
.quote-enquiry .rates_quotes_intro a,
.quote-enquiry .form-check-label a {
    color:var(--navy);
    text-decoration-color:var(--gold);
    text-decoration-thickness:2px;
    text-underline-offset:3px;
}
.quote-enquiry > p {
    padding:15px 20px;
    border-left:4px solid var(--gold);
    background:var(--green);
    border-radius:0 7px 7px 0;
    margin-bottom:28px;
}
.quote-enquiry #quote_stage_1,
.quote-enquiry #quote_stage_2 {
    background:#fff;
    border:1px solid rgba(19,51,73,.18);
    border-top:5px solid var(--gold);
    border-radius:10px;
    padding:clamp(22px,3vw,40px);
    box-shadow:0 8px 26px rgba(19,51,73,.07);
    margin-bottom:28px;
}
.quote-enquiry #quote_stage_2 { border-top-color:var(--navy); }
.quote-enquiry #quote_stage_1 h2,
.quote-enquiry #quote_stage_2 h2 {
    color:var(--navy);
    font-size:clamp(1.35rem,2.4vw,1.8rem);
    font-weight:700;
    padding-bottom:15px;
    margin:0 0 24px;
    border-bottom:1px solid rgba(19,51,73,.18);
}
.quote-enquiry .form-input-container { margin-bottom:20px; }
.quote-enquiry .form-label,
.quote-enquiry .form-check-label { color:var(--navy); font-weight:600; }
.quote-enquiry .form-label { margin-bottom:8px; }
.quote-enquiry .form-control,
.quote-enquiry .form-select {
    width:100%;
    min-height:47px;
    padding:10px 14px;
    background:#fff;
    color:var(--navy);
    border:1px solid rgba(19,51,73,.3);
    border-radius:6px;
    font:inherit;
}
.quote-enquiry textarea.form-control { min-height:150px; resize:vertical; }
.quote-enquiry .form-control:focus,
.quote-enquiry .form-select:focus {
    border-color:var(--gold);
    outline:0;
    box-shadow:0 0 0 .2rem rgba(180,139,88,.20);
}
.quote-enquiry .form-check-input { border-color:var(--navy); }
.quote-enquiry .form-check-input:checked {
    background-color:var(--navy);
    border-color:var(--navy);
}
/* Quote page: match the Contact enquiry buttons without stretching. */
.quote-enquiry #quote_get_estimate,
.quote-enquiry #quote_continue,
.quote-enquiry #quote_submit {
    display:inline-block;
    width:auto;
    max-width:100%;
    flex:none;
    align-self:flex-start;
    text-align:center;
    white-space:normal;
}
/* Quote form buttons use the same gold primary treatment. */
.quote-enquiry .btn-primary {
    --bs-btn-bg:var(--gold);
    --bs-btn-border-color:var(--gold);
    --bs-btn-color:var(--navy);
    --bs-btn-hover-bg:#fff;
    --bs-btn-hover-border-color:var(--navy);
    --bs-btn-hover-color:var(--navy);
    padding:11px 25px;
    border:2px solid var(--gold);
    border-radius:5px;
    background:var(--gold);
    color:var(--navy);
    font-weight:700;
    min-height:47px;
    transition:background-color .2s ease,border-color .2s ease;
}
.quote-enquiry .btn-primary:hover,
.quote-enquiry .btn-primary:focus-visible {
    background:#fff;
    border-color:var(--navy);
    color:var(--navy);
}
.quote-enquiry #quote_estimate {
    padding:18px 20px;
    border:1px solid rgba(19,51,73,.25);
    border-left:5px solid var(--gold);
    border-radius:6px;
    background:var(--green);
    color:var(--navy);
    font-weight:600;
    line-height:1.6;
    margin:18px 0;
}
.quote-enquiry #quote_disclaimer,
.quote-enquiry #quote_stage_2 > .small {
    color:var(--navy);
    font-size:.9rem;
    line-height:1.6;
}
.quote-enquiry #quote_turnstile { max-width:100%; overflow:hidden; }
/* Respect the native hidden attribute when steps and conditional fields toggle. */
.quote-enquiry [hidden] { display:none !important; }
@media(max-width:575.98px) {
    .interior_body_content .quote-enquiry { padding-inline:0 !important; }
    .quote-enquiry #quote_stage_1,
    .quote-enquiry #quote_stage_2 { padding:20px 16px; }
    .quote-enquiry .btn-primary { width:auto; max-width:100%; }
    .quote-enquiry > p { padding:13px 15px; }
}


/* Upcoming performances in the footer */
.footer-upcoming { margin-top:34px; padding-top:28px; border-top:1px solid var(--line); }
.footer-upcoming-header { display:flex; align-items:center; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-bottom:16px; }
.footer-upcoming-header h2 { font-size:1.15rem; line-height:1.4; font-weight:700; color:var(--navy); margin:0; }
.footer-upcoming-all { color:var(--navy); font-weight:700; font-size:.9rem; text-decoration:underline; text-underline-offset:3px; }
.footer-upcoming-all:hover { color:var(--gold); }
.footer-upcoming-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.footer-upcoming-item { display:flex; flex-direction:column; gap:7px; position:relative; min-height:110px; background:#fff; border-left:4px solid var(--gold); padding:15px 40px 15px 18px; text-decoration:none; color:var(--navy); border-radius:5px; transition:box-shadow .2s ease, transform .2s ease; }
.footer-upcoming-item:hover { color:var(--navy); box-shadow:0 6px 20px rgba(19,51,73,.14); transform:translateY(-2px); }
.footer-upcoming-date { font-size:.82rem; font-weight:700; color:var(--navy); }
.footer-upcoming-name { font-weight:700; font-size:.96rem; line-height:1.45; }
.footer-upcoming-arrow { position:absolute; right:14px; bottom:12px; font-size:1.25rem; color:var(--gold); }
.footer-upcoming-empty { margin:0; font-size:.92rem; }
@media(max-width:767.98px) { .footer-upcoming-list { grid-template-columns:1fr; } .footer-upcoming-item { min-height:0; } }

/* Upcoming performances integrated into the Performances footer menu column */
.footer-performance-links { margin-top:0; }
.footer-performance-links .footer-performance-date { display:block; color:var(--ink); font-size:.78rem; font-weight:700; }
.footer-performance-links .footer-performance-name { display:block; }
.footer-performance-links .footer-performance-empty { color:var(--ink); font-size:.87rem; line-height:1.5; }


/* Dr Kat Mac Industry homepage */
.drkat-home {color:var(--navy);}
.home-slideshow {position:relative;overflow:hidden;background:var(--navy);}
.home-slideshow .carousel-item {position:relative;height:clamp(340px,39vw,610px);}
.home-slideshow .carousel-item > img {display:block;width:100%;height:100%;object-fit:cover;}
.home-slide-shade {position:absolute;inset:0;background:linear-gradient(to top,rgba(19,51,73,.88) 0%,rgba(19,51,73,.48) 42%,transparent 82%);}
.home-slide-caption {position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:2;color:#fff;}
.home-slide-caption h1,.home-slide-caption h2 {max-width:740px;color:#fff;font-size:clamp(2rem,3.5vw,3.35rem);line-height:1.15;margin:0 0 15px;text-shadow:0 2px 10px rgba(0,0,0,.2);}
.home-slide-caption p {max-width:650px;color:#fff;font-size:clamp(1rem,1.5vw,1.24rem);line-height:1.6;margin-bottom:22px;text-shadow:0 2px 8px rgba(0,0,0,.25);}
/* .home-btn-gold shares the global primary button styling above. */
.home-welcome {padding-top:clamp(40px,5vw,75px);padding-bottom:clamp(40px,5vw,75px);}
.home-welcome > :first-child:not(.alert) {margin-top:0;}
.home-welcome h1,.home-welcome h2 {color:var(--navy);}
.home-welcome p {line-height:1.8;}
.home-feature-section {position:relative;isolation:isolate;padding:clamp(50px,6vw,90px) 0;background-color:var(--green);background-position:center;background-repeat:no-repeat;background-size:cover;background-attachment:fixed;}
.home-feature-section::before {content:"";position:absolute;inset:0;z-index:-1;background:rgba(217,217,165,.77);}
.home-feature-section > .container {position:relative;}
.home-section-heading {margin-bottom:30px;}
.home-section-heading h2 {font-size:clamp(1.65rem,2.4vw,2.25rem);color:var(--navy);margin-bottom:10px;}
.home-section-heading p {margin:0;color:var(--navy);}
.home-feature-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch;}
.home-feature-card {display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:clamp(25px,3vw,38px);background:#fff;border-top:5px solid var(--gold);border-radius:6px;box-shadow:0 8px 24px rgba(19,51,73,.07);}
.home-feature-card:nth-child(2) {border-top-color:var(--navy);}
.home-feature-performance {border-top-color:var(--gold);}
.home-feature-label {font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--navy);margin-bottom:14px;}
.home-feature-card h3 {font-size:clamp(1.3rem,1.8vw,1.65rem);line-height:1.3;color:var(--navy);margin:0 0 15px;}
.home-feature-card p {line-height:1.65;color:var(--navy);margin:0 0 22px;}
.home-feature-card .home-performance-date {font-weight:700;color:var(--navy);margin-bottom:10px;}
.home-feature-link {margin-top:auto;color:var(--navy);font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:4px;}
.home-feature-link:hover {color:#000;}
.home-testimonials {padding:clamp(50px,6vw,90px) 0;background:#fff;}
.home-testimonial-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.home-testimonial-card {display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--green);border-top:4px solid var(--gold);border-radius:6px;padding:27px;margin:0;}
.home-quote-mark {color:var(--gold);font-size:3.5rem;line-height:.8;font-family:Georgia,serif;margin-bottom:15px;}
.home-testimonial-card p {flex:1;line-height:1.75;margin:0 0 20px;color:var(--navy);}
.home-testimonial-card footer {border-top:1px solid var(--green);padding-top:14px;font-weight:700;font-size:.9rem;color:var(--navy);}
.home-testimonials-all {margin:25px 0 0;}
.home-testimonials-all a {color:var(--navy);font-weight:700;text-underline-offset:4px;}
.home-connect {background:var(--navy);color:#fff;padding:clamp(50px,6vw,85px) 0;}
.home-connect-inner {display:flex;justify-content:space-between;align-items:center;gap:30px;}
.home-connect h2 {color:#fff;font-size:clamp(1.8rem,2.5vw,2.45rem);margin-bottom:14px;}
.home-connect p {color:#fff;max-width:670px;line-height:1.7;margin:0;}
.home-connect-actions {display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0;}
.home-btn-outline {display:inline-block;background:transparent;border:2px solid #fff;color:#fff;padding:11px 25px;font-weight:700;border-radius:5px;}
.home-btn-outline:hover {background:#fff;color:var(--navy);}
@media(max-width:991.98px) {
 .home-feature-grid,.home-testimonial-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
 .home-connect-inner {align-items:flex-start;flex-direction:column;}
}
@media(max-width:767.98px) {
 .home-feature-grid,.home-testimonial-grid {grid-template-columns:1fr;}
 .home-slideshow .carousel-item {height:420px;}
 .home-slide-caption {bottom:20px;}
 .home-feature-section {background-attachment:scroll;}
 .home-slide-shade {background:linear-gradient(to top,rgba(19,51,73,.9) 0%,rgba(19,51,73,.5) 55%,transparent 100%);}
 .home-slide-caption h1,.home-slide-caption h2 {font-size:2rem;}
 .home-connect-actions {width:100%;}
}
@media(prefers-reduced-motion:reduce) {.home-slideshow .carousel-item {transition:none!important;}}

/* Home CMS content: separately styled AI statement */
.home-welcome .home-ai-statement {
    margin: clamp(34px, 5vw, 60px) 0 0;
    padding: clamp(24px, 3.5vw, 42px);
    background: var(--green-light);
    border-left: 5px solid var(--gold);
    border-radius: 6px;
    color: var(--navy);
}
.home-welcome .home-ai-statement h2,
.home-welcome .home-ai-statement h3 {
    color: var(--navy);
    margin: 0 0 14px;
}
.home-welcome .home-ai-statement p {
    max-width: 900px;
    margin: 0 0 14px;
    line-height: 1.75;
}
.home-welcome .home-ai-statement > :last-child { margin-bottom: 0; }
@media (max-width: 767.98px) {
    .home-welcome .home-ai-statement { padding: 22px; }
}


/* Rates & Quotes: branded Flatpickr date field and calendar.
   The original date field keeps working if the optional picker fails to load. */
.quote-enquiry #preferred_return_date,
.quote-enquiry .drkat-date-display {
    width: 100%;
    min-height: 49px;
    border: 1px solid rgba(19,51,73,.30);
    border-radius: 6px;
    background: #fff;
    color: var(--navy);
    padding: 10px 48px 10px 14px;
    font: inherit;
    cursor: pointer;
    color-scheme: light;
}
.quote-enquiry .drkat-date-display {
    /* Calendar symbol is part of the input rather than the browser picker chrome. */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23133349' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 15px center;
    background-size: 21px 21px;
}
.quote-enquiry #preferred_return_date:focus,
.quote-enquiry .drkat-date-display:focus {
    border-color: var(--gold);
    outline: none;
    box-shadow: 0 0 0 .2rem rgba(180,139,88,.20);
}
/* Flatpickr is appended to the document body, so do not scope its popup under .quote-enquiry. */
.flatpickr-calendar {
    width: 322px;
    max-width: calc(100vw - 24px);
    padding: 10px;
    border: 1px solid rgba(19,51,73,.22);
    border-top: 4px solid var(--gold);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 16px 35px rgba(19,51,73,.18);
    font-family: 'DM Sans',sans-serif;
    font-size: 14px;
    color: var(--navy);
}
.flatpickr-calendar::before,.flatpickr-calendar::after { display:none; }
.flatpickr-months { background: var(--green-light); border-radius: 6px 6px 0 0; }
.flatpickr-months .flatpickr-month { height: 44px; color: var(--navy); }
.flatpickr-current-month { padding-top: 8px; font-size: 1rem; font-weight: 700; }
.flatpickr-current-month .cur-month,.flatpickr-current-month input.cur-year { color: var(--navy); font-weight:700; }
.flatpickr-current-month .numInputWrapper span.arrowUp::after { border-bottom-color:var(--navy); }
.flatpickr-current-month .numInputWrapper span.arrowDown::after { border-top-color:var(--navy); }
.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month {
    display:flex; align-items:center; padding:12px; height:44px; color:var(--navy); fill:var(--navy);
}
.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg { width:14px; height:14px; }
.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg { fill: var(--gold); }
.flatpickr-weekdays { background: var(--green-light); }
span.flatpickr-weekday { background: transparent; color: var(--navy); font-size:.8rem; font-weight:700; }
.flatpickr-innerContainer,.flatpickr-rContainer,.flatpickr-days,.dayContainer { width:100%; min-width:0; max-width:100%; }
.flatpickr-day { max-width:none; color:var(--navy); border-radius:6px; }
.flatpickr-day:hover,.flatpickr-day:focus,.flatpickr-day.inRange { background:var(--green-light); border-color:var(--green-light); color:var(--navy); }
.flatpickr-day.today { border-color:var(--gold); font-weight:700; }
.flatpickr-day.today:hover { background:var(--green-light); border-color:var(--gold); color:var(--navy); }
.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.selected:focus {
    background:var(--navy); border-color:var(--navy); color:#fff; font-weight:700;
}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay { color:rgba(19,51,73,.45); }
.flatpickr-day.flatpickr-disabled { color:rgba(19,51,73,.25); }
@media (max-width: 575.98px) {
    .flatpickr-calendar { padding:8px; }
    .quote-enquiry .drkat-date-display { font-size:16px; }
}

/* Professional profile links in the footer contact column */
.footer-social-links { display:flex; flex-direction:column; gap:10px; margin-top:19px; padding-top:16px; border-top:1px solid var(--line); }
.footer-contact .footer-social-links a { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.87rem; line-height:1.5; text-decoration:none; }
.footer-contact .footer-social-links a:hover { color:var(--accent); }
.footer-social-links .fa-linkedin { width:22px; font-size:21px; text-align:center; }
.footer-researchgate-icon { display:inline-flex; align-items:baseline; justify-content:center; width:22px; font-family:Arial,sans-serif; font-size:18px; font-weight:700; line-height:1; letter-spacing:-2px; }
.footer-researchgate-icon span { font-size:12px; }

.footer-contact .footer-social-links h2 { margin:0 0 3px; font-size:.93rem; line-height:1.35; font-weight:700; }
