@tailwind base;
@tailwind components;
@tailwind utilities;
/* ===== FONT FACE ===== */
/* Avenir Regular */

/* @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap"); */
@font-face {
    font-family: "Avenir";
    src: url("/fonts/avenir/AvenirLTProBook.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: "AvenirHeader";
    src: url("/fonts/avenir/AvenirLTProHeavy.otf") format("opentype");
    font-weight: normal;
    font-style: normal;
}
html,
body {
    /* font-family: "Avenir", "Helvetica Neue", Helvetica, Arial, sans-serif; */
    font-family: "Avenir";
    margin: 0;
    padding: 0;
    line-height: 1.6;
    overflow-x: hidden;

    /* Better readability */
}
h1,
h2,
h3,
h4,
h5.h6 {
    font-family: "AvenirHeader";
}
.font-semibold {
    font-weight: 500 !important;
}
/* Avenir Bold (if needed) */

/* @font-face {
    font-family: "Avenir";
    src: url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap")
            format("woff2"),
        url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap")
            format("woff");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
} */
/* ===== BASE STYLES ===== */

p,
.table td {
    color: #666666;
    font-size: 1.25rem;
    /* 20px → rem for scalability */
    margin: 0 0 1rem 0;
    /* Consistent spacing */
}

.logo {
    height: 8.9375rem;
    /* 143px → rem */
    width: 8.9375rem;
    max-width: 100%;
    /* Prevents overflow on mobile */
}
/* ===== HERO CAROUSEL ===== */

#heroCarousel .overlay {
    background: rgba(0, 0, 0, 0.5);
    /* Modern rgba syntax */
}

#heroCarousel h1 {
    font-size: clamp(1.5rem, 4vw, 3.75rem);
    /* Responsive scaling */
    line-height: 1.2;
}
/* ===== SERVICE CARDS ===== */

.service-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    /* Smooth hover */
}
/* ===== BROWSER-SPECIFIC FIXES ===== */
/* Safari/iOS smooth scrolling */

@supports (-webkit-touch-callout: none) {
    html {
        -webkit-overflow-scrolling: touch;
    }
}
/* Firefox focus styles */

button,
a {
    scroll-margin-top: 1rem;
    /* Prevents header overlap */
}
/* Edge/IE11 fallbacks */

@media all and (-ms-high-contrast: none) {
    .logo {
        height: 143px;
        width: 143px;
    }
}

.dropdown-item.active {
    background: #18372143 !important;
}
/* Ensure proper alignment of text and icon */

.nav-link.inline-flex {
    display: inline-flex;
    align-items: center;
}
/* Remove any default margins */

.dropdown-menu.mt-0 {
    margin-top: 0 !important;
}
/* Precise positioning of dropdown */

.relative > .dropdown-menu {
    left: 0;
    right: auto;
    transform: none;
}

.container {
    width: 100%;
    max-width: 1200px;
    padding: 0 1rem;
    /* overflow-x: hidden; */
}

@media (max-width: 768px) {
    .container {
        padding: 0 1rem;
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1280px !important;
    }
}

.footer-logo {
    height: 78px;
}

.font-bold {
    font-weight: 500 !important;
    font-family: "AvenirHeader";
}

.container {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    /* Optional: Add horizontal padding */
    padding-right: 1rem;
}

.shadow,
.shadow-xl,
.shadow-md,
.shadow-lg,
.shadow-sm {
    box-shadow: 1px 3px 10px 0px #cdd1cf !important;
}

/* breadcrumb style */
.breadcrumbs {
    display: flex;
    gap: 10px;
    align-items: center;
}
.breadcrumbs span:not(.not-link) {
    font-size: 20px;
    height: 100%;
    padding-bottom: 2px;
}
/* Primary Button */

.btn-primary {
    background-color: #137ac0;
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    /* same as Tailwind's rounded-md */
    font-weight: 500;
}
/* h2 Styling */

h2 {
    font-family: "AvenirHeader";
    font-weight: 500;
    font-size: 40px;
    line-height: 100%;
    letter-spacing: -0.011em;
    /* -1.1% converted to em */
    text-align: center;
    vertical-align: middle;
    color: #000000;
}
/* h4 Styling */

h4 {
    font-family: "AvenirHeader";
    font-weight: 500;
    font-size: 13px;
    line-height: 150%;
    letter-spacing: -0.011em;
    color: #137ac0;
}
/* Custom dropdown on hover - only for desktop */

/* list font styles */
ul li {
    font-size: 20px;
}
ul.list-outside {
    padding-left: 40px;
}
ul.list-outside li {
    margin-bottom: 15px;
}

@media (min-width: 992px) {
    .dropdown:hover .dropdown-menu {
        display: block;
    }
    .dropdown-menu {
        margin-top: 0;
    }
}
/* Mobile menu styles */

.mobile-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.mobile-menu.open {
    max-height: 1000px;
}
/* Ensure dropdowns are visible on mobile when toggled */

.dropdown-menu {
    display: none;
}

.dropdown-menu.show {
    display: block;
}

.footer-bg {
    background-image: url("/assets/img/footer-bg.png");
    /* Adjust the path as needed */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* Group 400 */
/* Document Hub Page */

.btn-filter {
    background-color: #d9d9d9;
    color: #000000;
    font-weight: 800;
    font-size: 1rem;
    height: 41px;
    min-width: 130px;
    border-radius: 0px !important;
    border: none !important;
}

.btn-filter.active {
    background-color: #ffe067;
    color: #000000;
}

.btn-filter:hover{
    background-color: #ffe067 !important;
}

.document-title {
    font-family: "AvenirHeader";
    font-weight: 500;
    font-size: 1.5rem;
    /* 24px based on 16px root */
    line-height: 1;
    /* Unitless for better inheritance */
    letter-spacing: -0.011em;
    /* More reliable than % */
    vertical-align: middle;
    font-synthesis: none;
    /* Prevents fake bolding */
    text-rendering: optimizeLegibility;
}

.sidebar-title {
    font-family: "AvenirHeader";
    font-weight: 500;
    font-size: 1.375rem;
    /* 22px relative to root */
    line-height: 1.5;
    /* Unitless for better inheritance */
    letter-spacing: -0.011em;
    /* More consistent than % across browsers */
    vertical-align: middle;
    /* Optional enhancements */
    font-synthesis: none;
    /* Prevents fake bold/italic */
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
/* End Document Hub Page */
/* Vacancies Page */

#vacancies p {
    font-size: 20px;
    color: #666666 !important;
}
/* End Vacancies Page */
/* Header */

header {
    .container {
        max-width: 100% !important;
        display: flex;
        flex-direction: column;
        .row.top {
            flex: 1;
        }
        .row.bottom {
            flex: 2;
        }
    }
    /* Dropdown toggle arrows for buttons and links */
    [data-bs-toggle="dropdown"]::after {
        content: url("/assets/img/chevron-down.png");
        margin-left: 0.5rem;
        vertical-align: middle;
    }
    /* Remove default bootstrap dropdown arrow */
    .dropdown-toggle::after {
        border: none;
        vertical-align: initial;
    }
    .nav {
        a,
        button.nav-link {
            color: #d8d8d8 !important;
            font-weight: 300;
            background: transparent;
            border: none;
            padding: 0;
            cursor: pointer;
            padding-right: 12px;
            font-size: 1.25rem;
            display: inline-flex;
            align-items: center;
            &:hover,
            &:focus,
            &:active {
                color: #ffffff !important;
                outline: none;
            }
        }
    }
    .nav .active {
        color: #ffffff !important;
    }
    a.dropdown-item.rate-payers-disable-hover:hover {
        background-color: transparent !important;
    }
    a.dropdown-item.municipal-services-disable-hover:hover {
        background-color: transparent !important;
    }
    a.dropdown-item.rate-payers-disable-hover:hover {
        background-color: transparent !important;
    }
    /* Nested dropdown - hidden by default */
    .dropdown-menu .dropdown.dropend .dropdown-menu {
        display: none;
        position: absolute;
        top: 0;
        left: 98%;
        margin-top: 0;
        /* reset any default margin */
        border-radius: 0;
    }
    /* Show nested dropdown on hover */
    .dropdown-menu .dropdown.dropend:hover > .dropdown-menu {
        display: block;
    }
    /* Dropdown menu styling */
    .dropdown-menu {
        background-color: #14987e;
        border: none;
        border-radius: 0;
        position: absolute;
        top: 70px;
        min-width: 12rem;
        .dropdown-item {
            font-size: 1.125rem;
            color: #d8d8d8;
            &:hover,
            &:focus {
                background-color: #0f7862;
                color: #ffffff;
            }
        }
        /* Left arrow for nested dropdown toggles */
        [data-bs-toggle="dropdown"]::after {
            content: url("/assets/img/chevron-left.png");
            margin-left: 0.5rem;
            vertical-align: middle;
        }
        .dropdown-toggle::after {
            border: none;
            vertical-align: sub;
        }
        a {
            font-size: 1.125rem;
            color: #d8d8d8;
            &:hover,
            &:focus {
                color: #ffffff;
            }
        }
        /* Nested dropdown menu positioning */
        .dropdown-menu {
            position: absolute;
            top: 33%;
            left: 100%;
        }
    }
    /* Mobile menu overrides */
    div#mobile-menu {
        .dropdown-menu,
        .dropdown-menu .dropdown-menu {
            position: static !important;
            transform: none !important;
            box-shadow: none !important;
            background-color: transparent !important;
            border: none !important;
        }
        a {
            font-size: 1.125rem;
        }
    }
}

@media screen and (max-width: 1023px) {
    header {
        .row.top,
        .row.bottom {
            display: none;
        }
    }
}
/* End of Header */
/* Footer */

footer {
    .bg-cover {
        background-color: #080712;
    }
    h3.text-2xl {
        font-size: 1.375rem;
    }
    .contact-info__details {
        color: #cdd1cf;
    }
}
/* End of Footer */
/* Modal */

[x-cloak] {
    display: none !important;
}
/* Vacancies Page | Document Hub */

#rate-payers h5,
#town-planning h5,
#procurement h5,
#document-hub h5,
#vacancies h5 {
    color: #137ac0;
    text-transform: uppercase;
    font-size: 14px;
}

#rate-payers h2,
#town-planning h2,
#procurement h2,
#document-hub h2,
#vacancies h2 {
    font-size: 40px;
    font-weight: 500;
    text-align: left;
    margin: 10px 0;
}
/* End Vacancies Page */
/* services card */

.service-card {
    box-shadow: 1px 3px 10px 0px #cdd1cf !important;
}

#services .service-card {
    height: 290px;
}

#our-people .service-icon,
#services .service-icon {
    width: 7.4375rem !important;
}

.service-icon {
    width: 10.4375rem;
}

#town-planning .service-icon {
    width: 10.4375rem !important;
}
/* end services card */
/* have any question */

#have-any-question-box {
    background: linear-gradient(0deg, #d9d9d9, #d9d9d9),
        linear-gradient(0deg, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3));
}
/* end have any question */
/* Table Styling */

.custom-border {
    border-bottom: 1px solid #babfc7;
}

thead tr th {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 1.1rem;
    line-height: 100%;
    letter-spacing: 0;
    text-transform: uppercase;
}

tbody {
    font-family: "Poppins", sans-serif;
    font-weight: 500;
    font-size: 1.125rem;
    line-height: 100%;
    letter-spacing: 0;
}
/* Remove the default table row borders */

.year-group tr:not(.year-separator) {
    border-bottom: none;
}
/* Style for the year separator */

.year-separator td {
    border-bottom: 1px solid #e5e7eb;
    /* gray-200 */
    height: 1rem;
    /* h-4 */
    padding: 0;
}
/* Ensure the last year doesn't have a bottom border */

.year-group:last-child .year-separator {
    display: none;
}
/* Add subtle border between documents in same year */

.year-group tr:not(:last-child) {
    border-bottom: 1px solid #f3f4f6;
    /* gray-100 */
}
/* End Table */
/* Form */

.form-control {
    border-radius: 0px;
    /* Layout */
    height: 3.75rem;
    /* 60px → 3.75rem (assuming 16px base) */
    /* Background */
    background-color: #f4f4f4;
    /* Text Styles */
    font-family: "Avenir";
    font-weight: 350;
    font-size: 1.125rem;
    /* 18px → 1.125rem (18/16) */
    line-height: 150%;
    /* or 1.5 (unitless) */
    letter-spacing: -0.011em;
    /* -1.1% → em (relative to font size) */
    vertical-align: middle;
}

#suggestion-box textarea {
    height: 133px !important;
}

#suggestion-box button {
    height: 3.5625rem;
    /* 57px → 3.5625rem */
    border-radius: 0px;
    width: 14rem;
    /* 224px → 14rem (exact) */
}

#verification_result {
    height: 3.625rem;
    /* 58px → 3.625rem (58/16) */
    width: 18.8125rem;
    /* 301px → 18.8125rem */
}
/* Contact Us Page styling */

.contact-form {
    padding: 2rem 1.5rem;
}

.contact-form h3,
.contact-details h3 {
    font-size: 22px;
    font-weight: 500;
}

.contact-form p,
.contact-details p {
    margin: 15px 0 30px;
}

.contact-form form input,
.contact-form form textarea {
    background: #f4f4f4;
    border-color: #f4f4f4;
    border-radius: 0;
    padding: 10px 20px;
    font-size: 14px;
}

.contact-form form .btn-primary {
    border-radius: 0;
    border-color: #137ac0;
    padding: 15px 25px;
    font-size: 12px;
    font-weight: 500;
}

.contact-details h3 {
    color: #0c3b74;
}

.contact-details h4 {
    color: #0c3b74;
    font-weight: 500;
    font-size: 20px;
}

.contact-form form .btn-primary svg {
    padding-left: 8px;
    border-left: 1px solid #ffffff;
    width: 25px;
}

@media (max-width: 767px) {
    .contact-form p,
    .contact-details p {
        font-size: 18px;
    }
    .contact-details {
        padding: 20px 15px !important;
    }
}

@media (min-width: 768px) {
    .contact-form {
        padding: 4rem 5rem;
    }
    .contact-form h3,
    .contact-details h3 {
        font-size: 28px;
    }
}
/* about us page styles */

#our-vision #our-services-charter p {
    text-align: left;
}

#team h5,
#our-vision h5,
#yzerfontein h5,
.news h5,
.our-team h5 {
    color: #137ac0;
    font-size: 14px;
}

#team h2,
#our-vision h2,
#yzerfontein h2,
.our-team button.accordion-button,
#municipal h2 {
    font-size: 40px;
    margin: 15px 0;
    font-weight: 500;
}

#our-vision .col-md-7 h2 {
    text-align: left;
}

#our-vision h4 {
    font-size: 30px;
    color: #ffffff;
}

#our-vision .vision {
    background: #27b297;
}

#our-vision .mission {
    background: #137ac0;
}

#our-vision .mission p,
#our-vision .vision p {
    color: #ffffff;
    margin: 10px 0;
}

ul.content li {
    padding-left: 30px;
    position: relative;
}

ul.content li:before {
    content: "";
    width: 17px;
    border-top: 3px solid #ffffff;
    display: block;
    position: absolute;
    left: 0;
    top: 13px;
}

#our-vision .mission,
#our-vision .vision {
    padding: 20px 30px;
}

.icon-row img {
    width: 70%;
    margin: auto;
}

#our-vision .icon-row {
    justify-content: space-evenly;
}

#our-vision .icon-row div {
    padding: 0;
}

#our-vision .icon-row div p {
    color: #000000;
}

@media (max-width: 767px) {
    #our-vision #our-services-charter > .row {
        flex-direction: column-reverse;
    }
    #our-vision h2,
    .our-team button.accordion-button,
    #municipal h2 {
        font-size: 22px;
    }
    #our-vision p {
        font-size: 18px;
    }
    #our-vision h4 {
        font-size: 20px;
    }
    #our-vision .mission p,
    #our-vision .vision p {
        margin: 5px 0;
    }
    .icon-row img {
        width: 50%;
    }
}
/* news styles update */

.news p {
    color: #666666;
    font-size: 20px;
    margin: 20px 0;
}

.news h3 {
    font-size: 24px;
    padding: 10px 0 20px;
}

.news h3 {
    font-size: 24px;
    padding: 15px 0 25px;
    position: relative;
}

.news h3:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    height: 2px;
    width: 20%;
    background: linear-gradient(to right, #ffe067 20%, #cdd1cf 20%);
}

.news a {
    background: #ffe067;
    border-radius: 0;
    border-color: #ffe067;
}

.news h5 {
    text-align: center;
}
/* our team styles */

.our-team .text-muted {
    padding-bottom: 54px;
}

.collapse.show {
    visibility: visible;
}

.our-team button.accordion-button {
    background: none;
    color: #000000;
    border-bottom: 1px solid #babfc7;
    padding-bottom: 25px;
    display: block;
    text-align: center;
    box-shadow: none;
}

.team-member {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    height: 100%;
    transition: transform 0.3s ease;
}

.our-team .accordion-item {
    border: 0;
}

.our-team .accordion-body {
    padding-bottom: 25px;
}

.our-team
    .accordion-item:not(:first-child)
    button.accordion-button:not(.collapsed) {
    padding-top: 30px;
}

.our-team button.accordion-button:not(.collapsed) {
    border-bottom: none;
    box-shadow: none;
    padding: 12px 30px;
}

.our-team button.accordion-button:after {
    content: "";
    background-image: url("/assets/svg/Plus circle.svg");
    background-size: contain;
    width: 28px;
    height: 100%;
    right: 0;
    top: 0;
    bottom: 0;
    background-position: center;
    position: absolute;
}

.our-team button.accordion-button:not(.collapsed):after {
    background-image: url("/assets/svg/Minus circle.svg");
}

.team-member:hover {
    transform: scale(1.01);
}

.team-member img {
    width: 100%;
    display: block;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.4s ease;
}

.team-info {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    color: white;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 30px;
    background: rgba(0, 0, 0, 0.3);
    transition: background 0.4s ease, justify-content 0.4s ease;
}

.team-member:hover .team-info {
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
}

.team-info .name {
    font-weight: 500;
    font-size: 24px;
    transition: color 0.3s ease;
}

.team-info .title {
    font-size: 16px;
    transition: color 0.3s ease;
}

.member-contact {
    margin-top: 25px;
    padding-top: 25px;
    border-top: 1px solid #ffffff;
    display: none;
    transition: display 0.4s ease;
    pointer-events: none;
}

.team-member:hover .member-contact {
    display: block;
    pointer-events: auto;
}

@media (max-width: 768px) {
    .our-team .accordion-body p {
        font-size: 18px;
    }
}

@media (min-width: 768px) {
    .team-member.exec {
        width: 30%;
        margin: auto;
    }
}
/* Document Hub */

.document-title {
    font-family: "AvenirHeader";
    font-weight: 500;
    font-size: 24px;
    line-height: 100%;
    letter-spacing: -1.1%;
    vertical-align: middle;
    color: #111827;
    margin-bottom: 0.5rem;
}
/* Services pages Styling */

#services.municipal h2,
#services.municipal p {
    text-align: left;
    max-width: unset;
}

#services.municipal .service-icon {
    width: 25%;
}

.sticky-sidebar {
    position: sticky;
    top: 1rem;
}

.sticky-sidebar .icon-box svg {
    width: 24px;
    height: 24px;
    margin-right: 0.5rem;
}

.sticky-sidebar .card-link {
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid #babfc7;
    margin: 0 0 5px;
    gap: 10px;
}

#municipal .card-link:hover {
    color: #007bff;
}

#have-any-question-box {
    background-image: url(/assets/img/page-header.png);
    background-size: cover;
    background-position: center;
    color: white;
}

.contact-card svg {
    width: 18px;
    height: 18px;
    margin-right: 0.5rem;
}

.contact-card a {
    color: #fff;
    text-decoration: underline;
}

#municipal ul {
    list-style-type: disc;
    padding-left: 25px;
    font-size: 20px;
    color: #666666;
}

#municipal .card-body {
    padding: 20px 30px;
    font-size: 20px;
}

#municipal .card {
    border-radius: 0;
    border: none;
    box-shadow: 1px 3px 10px #cdd1cf;
}

.contact-card p {
    color: #ffffff;
}

#municipal .card-body .card-title {
    margin-bottom: 25px;
    font-weight: 500;
}

.contact-card h6 {
    font-size: 20px;
}

#municipal ol {
    color: #666666;
    font-size: 20px;
}

#municipal .col-lg-8 img {
    max-height: 55vh;
    width: 100%;
    object-fit: cover;
    object-position: center;
}

#municipalityAccordion .accordion-item {
    border: 0;
}

#municipalityAccordion .accordion-item button.accordion-button {
    background: unset;
}

#municipalityAccordion .accordion-item button.accordion-button {
    background: unset;
    color: #000000;
    font-size: 20px;
    box-shadow: none;
}

#municipalityAccordion .accordion-item .accordion-body {
    padding: 0 0 20px;
    color: #666666;
    font-size: 20px;
}

#municipalityAccordion .accordion-item button.accordion-button {
    background: unset;
    color: #000000;
    font-size: 20px;
    box-shadow: none;
    padding: 0 0 20px;
    border-bottom: 1px solid #babfc7;
    border-radius: 0;
}

#municipalityAccordion .accordion-item button.accordion-button:not(.collapsed) {
    border: 0;
}

#municipalityAccordion .accordion-item .collapse {
    border-bottom: 1px solid #babfc7;
}

#municipalityAccordion {
    padding: 25px 38px 20px;
    border: 1px solid #babfc7;
}

#municipalityAccordion .accordion-button:not(.collapsed)::after {
    background-image: url("/assets/svg/Minus circle grey.svg");
}

#municipalityAccordion .accordion-button::after {
    background-image: url("/assets/svg/Plus circle grey.svg");
}

#municipalityAccordion table tr td {
    color: #666666;
    border: 0;
    font-size: 20px;
}

@media (max-width: 767px) {
    #municipal .card-body {
        font-size: 18px;
        padding: 20px;
    }
    .contact-card {
        padding: 20px;
    }
    .contact-card h6,
    .contact-card p,
    #municipal ol,
    #municipalityAccordion table tr td {
        font-size: 18px;
    }
}
/* rate payers */

#rate-payers p {
    font-family: Avenir;
    font-weight: 350;
    font-size: 20px;
    line-height: 1.5;
    letter-spacing: -0.011em;
    color: #666666;
}
/* town planning */

#town-planning li a {
    color: #1877f2;
    transition: color 0.3s ease;
    text-decoration: underline;
}

.disk-list li {
    font-family: "Avenir";
    font-weight: 350;
    font-size: 1.25rem;
    /* 20px */
    line-height: 1.5;
    /* 150% */
    letter-spacing: -0.011em;
    /* -1.1% */
    color: #1877f2;
}

#town-planning li a:hover {
    color: #5a8ed2;
}
/* List Animation */

.scale-up-hover {
    transition: transform 0.3s ease;
    display: block;
}

.scale-up-hover:hover {
    transform: scale(1.01);
    /* Very slight increase */
}
/* Read More Animation */

/* .read-more {
    /* Normal state: Hidden and off-screen to the left */
/* opacity: 0; /* Makes it completely invisible */
/* transform: translateX(-20px); Starts it 20px to the left of its final position */
/* transition: opacity 0.3s ease-out, transform 0.3s ease-out; Smooth animation for both */

/* Essential for it to occupy space and be hoverable when invisible */
/* display: inline-block; Or 'block' depending on your layout need */
*/
    /* You might want to give it some padding or a min-width/min-height
       in its default state so there's a tangible area for the mouse to hover over. */
    /* Example: */
    /* padding: 5px 10px; */
    /* background-color: transparent; */
    /* color: transparent; */
/* } */

/* .read-more:hover { */
    /* Hover state: Appear and float into place */
    /* opacity: 1; Makes it fully visible */
    /* transform: translateX(0); Moves it to its natural position */

    /* Add any other hover styles you want, e.g., text color, background */
    /* Example: */
    /* color: #BABFC7; */ /* If you want the text itself to be this color on hover */
/* } */
pagination styling */

nav.pagination-next {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #666666;
    gap: 25px;
    font-size: 16px;
}

nav.pagination-next .page-number {
    height: 32px;
    width: 32px;
    background: #27b297;
    color: #ffffff;
    border-radius: 8px;
    text-align: center;
    line-height: 32px;
}

nav.pagination-next a,
nav.pagination-next a.page-number {
    color: #000000;
    background: none;
    text-transform: none;
}

@media (min-width: 768px) {
    nav.pagination-next {
        font-size: 20px;
    }
}

.events h3::after {
    display: none;
}

.custom-shadow {
    box-shadow: 1px 3px 10px 0px #cdd1cf !important;
}

.calendar-cta {
    border-radius: 100px;
    border: 1px solid #1877f2;
}
/* Mobile-specific adjustments (optional) */

@media (max-width: 768px) {
    .logo {
        height: 6rem;
        /* Smaller size for mobile */
        width: 6rem;
        /* Adjust proportionally */
    }
}
/* Extra small devices (e.g., iPhone SE) */

@media (max-width: 480px) {
    .logo {
        height: 4.5rem;
        /* Even smaller for tiny screens */
        width: 4.5rem;
    }
}

/* menu fix */
header .row.bottom > ul {
    row-gap: 0;
}
header li.nav-item {
    padding: 20px 0;
}
header li.nav-item:hover a.nav-link svg,
li.dropdown.dropend.group.relative:hover svg {
    transform: rotateZ(180deg);
}
li.dropdown.dropend.group.relative svg.ml-2 {
    margin-left: auto;
}

/* CSS for the "Numbers and Email" section */

/* Styles for the Town Names (e.g., Malmesbury, Darling) */
/* Targets h6 elements within this specific contact block */
.contact-details > div > div > div:nth-of-type(3) h6 {
    font-size: 1.125rem; /* text-lg - makes it bigger */
    font-weight: 700; /* Adjusted to font-bold to give more prominence */
    margin-top: 1.5rem; /* mt-6 from your HTML, provides spacing */
    margin-bottom: 0.25rem; /* mb-1 from your HTML */
    color: #4b5563; /* text-gray-700 (assuming it should still be grey) */
}

/* Styles for all List Items (both Universal and Town-Specific) */
/* Targets all li elements within ul tags in this specific contact block */
.contact-details > div > div > div:nth-of-type(3) ul li {
    font-size: 1.125rem; /* text-lg - makes it bigger */
    color: #666666; /* text-gray-700 (assuming it should still be grey) */
    /* Other list-item specific styles like list-style-type, margin-left, etc., are handled by the ul parent or default browser styles if not explicitly overridden here */
}

/* Specific styles for links within these list items to ensure they also inherit the larger size */
.contact-details > div > div > div:nth-of-type(3) ul li a {
    font-size: 1.125rem; /* Ensures links within list items are also larger */
    /* Other link styles (color, hover) would be defined separately or inherited from existing Tailwind classes */
}

/* You might want to adjust the general paragraph text size if you want these to be bigger *relative* to the general text.
   For example, if you want general paragraph text to be smaller than the new h6 and li: */
/*
.contact-details > div > div > div:nth-of-type(3) p {
    font-size: 0.875rem; // text-sm
}
*/

/* swiper styles */
/* swiper styles */
.swiper-controls .swiper-button-next,
.swiper-controls .swiper-button-prev {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    left: unset;
    right: unset;
    color: #ffffff;
    background: #d9d9d9cc;
    width: 40px; /* Changed from 60px to 40px */
    height: 40px; /* Changed from 60px to 40px */
    border-radius: 50%;
    text-align: center;
}
.swiper-controls .swiper-button-next:after,
.swiper-controls .swiper-button-prev:after {
    font-size: 18px;
    font-weight: 900;
}
.swiper-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    margin-top: 50px;
}

/* Municipal Services text */
.truncate-on-mobile {
    display: -webkit-box;
    -webkit-line-clamp: 4; /* Number of lines to show before truncating */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis; /* For browsers that don't support -webkit-line-clamp */
}

/* ===== Terms and conditions ===== */
section[id="terms-conditions"] {
    h2 {
        text-transform: uppercase;
        font-size: 1.5rem;
        margin-bottom: 1em;
    }

    h3 {
        font-size: 1.25rem;
    }

    > div + div {
        margin-top: 2em;
    }

    ul {
        padding-left: 3rem;
        margin-top: 1rem;
    }

    a[href^="mailto"],
    a[href^="tel"],
    a[href^="http"],
    a[href^="www"] {
        text-decoration: underline !important;
    }
}
