/********** Template CSS **********/
:root {
    --primary: #FD5D14;
    --secondary: #FDBE33;
    --light: #F4F6F8;
    --dark: #040F28;
}

html,
body {
    overflow-x: hidden;
}

.topbar-item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.topbar-item span,
.topbar-item a {
    white-space: nowrap;
}

.opening-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.25rem;
    margin-left: .35rem;
    padding: .16rem .42rem;
    font-size: .68rem;
    line-height: 1.15;
    vertical-align: middle;
}

.opening-badge-open {
    color: #fff;
    background: #198754;
}

.opening-badge-closed {
    color: #777;
    background: #eef0f2;
    border: 1px solid #d9dde1;
}

.opening-badge-special {
    color: #fff;
    background: #dc3545;
}

.opening-copy {
    min-width: 0;
}

.opening-detail {
    display: block;
    min-height: 1.35em;
    color: #777;
    font-size: .95em;
    white-space: nowrap;
}

.opening-detail-countdown {
    color: #6c757d;
    font-weight: 600;
}

.opening-detail-special {
    overflow: hidden;
    max-width: 16rem;
    color: #b02a37;
    font-weight: 600;
    text-overflow: ellipsis;
}

.opening-detail-notice {
    overflow: hidden;
    max-width: 16rem;
    color: #6c757d;
    font-weight: 600;
    text-overflow: ellipsis;
}

@media (max-width: 1399.98px) {
    .topbar {
        font-size: .82rem;
    }

    .topbar-item > .d-inline-flex > i {
        margin-right: .65rem !important;
        font-size: 1.75rem !important;
    }

    .topbar-item h6 {
        font-size: .8rem;
    }
}

.pt-6 {
    padding-top: 90px;
}

.pb-6 {
    padding-bottom: 90px;
}

.py-6 {
    padding-top: 90px;
    padding-bottom: 90px;
}

.btn {
    position: relative;
    font-weight: 600;
    text-transform: uppercase;
    transition: .5s;
}

.btn::after {
    position: absolute;
    content: "";
    width: 0;
    height: 5px;
    bottom: -1px;
    left: 50%;
    background: var(--primary);
    transition: .5s;
}

.btn.btn-primary::after {
    background: var(--dark);
}

.btn:hover::after,
.btn.active::after {
    width: 50%;
    left: 25%;
}

.btn-primary {
    color: #FFFFFF;
}

.btn-square {
    width: 36px;
    height: 36px;
}

.btn-sm-square {
    width: 28px;
    height: 28px;
}

.btn-lg-square {
    width: 46px;
    height: 46px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
    padding-left: 0;
    padding-right: 0;
    text-align: center;
}

.back-to-top {
    position: fixed;
    display: none;
    left: 50%;
    bottom: 0;
    margin-left: -22px;
    border-radius: 0;
    z-index: 99;
}

.bg-dark-radial {
    background-image: -webkit-repeating-radial-gradient(center center, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) 1px, transparent 1px, transparent 100%);
    background-image: -moz-repeating-radial-gradient(center center, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) 1px, transparent 1px, transparent 100%);
    background-image: -ms-repeating-radial-gradient(center center, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) 1px, transparent 1px, transparent 100%);
    background-image: -o-repeating-radial-gradient(center center, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) 1px, transparent 1px, transparent 100%);
    background-image: repeating-radial-gradient(center center, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.3) 1px, transparent 1px, transparent 100%);
    background-size: 3px 3px;
}

.bg-light-radial {
    background-image: -webkit-repeating-radial-gradient(center center, rgba(256, 256, 256, 0.2), rgba(256, 256, 256, 0.2) 1px, transparent 1px, transparent 100%);
    background-image: -moz-repeating-radial-gradient(center center, rgba(256, 256, 256, 0.2), rgba(256, 256, 256, 0.2) 1px, transparent 1px, transparent 100%);
    background-image: -ms-repeating-radial-gradient(center center, rgba(256, 256, 256, 0.2), rgba(256, 256, 256, 0.2) 1px, transparent 1px, transparent 100%);
    background-image: -o-repeating-radial-gradient(center center, rgba(256, 256, 256, 0.2), rgba(256, 256, 256, 0.2) 1px, transparent 1px, transparent 100%);
    background-image: repeating-radial-gradient(center center, rgba(256, 256, 256, 0.2), rgba(256, 256, 256, 0.2) 1px, transparent 1px, transparent 100%);
    background-size: 3px 3px;
}

.navbar-dark .navbar-nav .nav-link {
    position: relative;
    padding: 35px 15px;
    font-size: 18px;
    text-transform: uppercase;
    color: var(--light);
    outline: none;
    transition: .5s;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link.active {
    color: var(--primary);
}

@media (max-width: 991.98px) {
    .navbar-dark .navbar-nav .nav-link  {
        margin-left: 0;
        padding: 10px 0;
    }
}

.carousel-caption {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(4, 15, 40, .7);
    z-index: 1;
}

#header-carousel .carousel-item > img {
    height: auto;
    aspect-ratio: 16 / 7.5;
    object-fit: cover;
}

#header-carousel .hero-content {
    width: min(100%, 950px);
}

@media (max-width: 576px) {
    #header-carousel .carousel-item > img {
        height: 620px;
        aspect-ratio: auto;
        object-position: center;
    }

    .carousel-caption h4 {
        font-size: 18px;
        font-weight: 500 !important;
    }

    .carousel-caption h1,
    .carousel-caption h2 {
        font-size: 30px;
        font-weight: 600 !important;
    }

    #header-carousel .carousel-caption i {
        font-size: 2.5rem;
        margin-bottom: 1rem !important;
    }
}

.page-header {
    height: 300px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: linear-gradient(rgba(4, 15, 40, .7), rgba(4, 15, 40, .7)), url(../img/epitoanyagok-csaladi-haz-epiteshez.webp) center center no-repeat;
    background-size: cover;
}

.service-item .service-icon {
    margin-top: -50px;
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100px;
}

.service-item .service-icon i {
    transition: .2s;
}

.service-item:hover .service-icon i {
    font-size: 60px;
}

.portfolio-item {
    margin-bottom: 60px;
}

.portfolio-title {
    position: absolute;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 120px;
    padding: 0 30px;
    right: 30px;
    left: 30px;
    bottom: -60px;
    background: #FFFFFF;
    z-index: 3;
}

.portfolio-btn {
    position: absolute;
    display: inline-block;
    top: 50%;
    left: 50%;
    margin-top: -60px;
    margin-left: -60px;
    font-size: 120px;
    line-height: 0;
    transition: .1s;
    transition-delay: .3s;
    z-index: 2;
    opacity: 0;
}

.portfolio-item:hover .portfolio-btn {
    opacity: 1;
}

.portfolio-box::before,
.portfolio-box::after {
    position: absolute;
    content: "";
    width: 0;
    height: 100%;
    top: 0;
    transition: .5s;
    z-index: 1;
    background: rgba(4, 15, 40, .7);
}

.portfolio-box::before {
    left: 0;
}

.portfolio-box::after {
    right: 0;
}

.portfolio-item:hover .portfolio-box::before {
    left: 0;
    width: 50%;
}

.portfolio-item:hover .portfolio-box::after {
    right: 0;
    width: 50%;
}

@media (min-width: 992px) {
    .testimonial,
    .contact-form {
        margin-left: -90px;
    }
}

.testimonial-feature-image {
    min-height: 520px;
    object-fit: cover;
}

.testimonial-client-image {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

.article-card-image {
    aspect-ratio: 16 / 10;
    object-fit: cover;
}

.about-intro-image-column {
    min-height: 480px;
}

.about-intro-image-wrap {
    min-height: 430px;
}

.about-intro-image {
    object-fit: cover;
}

@media (max-width: 991.98px) {
    .about-intro-image-column {
        min-height: 540px;
        padding-bottom: 0 !important;
    }

    .about-intro-image-wrap {
        min-height: 480px;
    }

    .about-intro-image {
        margin-left: 0 !important;
    }
}

@media (max-width: 575.98px) {
    .about-intro {
        padding: 4rem 1.25rem !important;
    }

    .about-intro-image-column {
        min-height: 390px;
    }

    .about-intro-image-wrap {
        min-height: 340px;
    }
}

/* Security event administration */
.admin-log-page { max-width: 1420px; }
.admin-log-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:28px; }
.admin-log-heading h2 { margin:5px 0 8px; }
.admin-log-heading p { max-width:780px; margin:0; }
.admin-log-summary { display:flex; align-items:center; gap:14px; margin-bottom:22px; padding:20px 24px; color:#fff; background:var(--dark); }
.admin-log-summary > strong { color:var(--primary); font-size:2rem; }
.admin-log-summary > span { color:#c4cad5; }
.admin-log-legend { display:flex; gap:8px; margin-left:auto; }
.role-chip { display:inline-block; padding:5px 9px; font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.role-chip.role-admin { color:#fff; background:var(--primary); }
.role-chip.role-user { color:#164c74; background:#dceefa; }
.admin-log-list { display:grid; gap:12px; }
.admin-log-entry { display:grid; grid-template-columns:190px minmax(220px,.85fr) minmax(280px,1.2fr); align-items:center; gap:22px; padding:20px 22px; background:#fff; border-left:5px solid #aed4ec; box-shadow:0 8px 24px rgba(4,15,40,.065); }
.admin-log-entry.role-border-admin { border-left-color:var(--primary); }
.admin-log-event { display:flex; align-items:center; gap:10px; color:var(--dark); }
.admin-log-event i { display:grid; place-items:center; width:38px; height:38px; color:#fff; background:#6c757d; font-size:1.15rem; }
.admin-log-event.event-success i { background:#198754; }.admin-log-event.event-primary i { background:var(--primary); }.admin-log-event.event-warning i { color:var(--dark); background:var(--secondary); }
.admin-log-user h3 { margin:7px 0 2px; font-size:1.05rem; overflow-wrap:anywhere; }.admin-log-user p { margin:0; font-size:.85rem; overflow-wrap:anywhere; }
.admin-log-meta { display:grid; gap:4px; color:#68758a; font-size:.82rem; }.admin-log-meta time { color:var(--dark); font-weight:700; }.admin-log-meta small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-log-pagination { display:flex; justify-content:center; align-items:center; gap:18px; margin-top:28px; }.admin-log-pagination a,.admin-log-pagination span { padding:11px 16px; background:#f1f3f5; }
@media(max-width:991.98px){.admin-log-entry{grid-template-columns:1fr 1fr}.admin-log-meta{grid-column:1/-1}.admin-log-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:575.98px){.admin-log-entry{grid-template-columns:1fr}.admin-log-meta{grid-column:auto}.admin-log-summary{align-items:flex-start;flex-wrap:wrap}.admin-log-legend{width:100%;margin-left:0}.admin-log-heading .btn{width:100%}.admin-log-pagination{flex-wrap:wrap}}

.admin-slider-page { max-width: 1500px; }
.admin-slider-summary { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; padding: 18px 22px; color: #fff; background: var(--dark); }
.admin-slider-summary > i { color: var(--primary); font-size: 2rem; }
.admin-slider-summary div { display: flex; flex-direction: column; }
.admin-slider-summary strong { font-size: 1.4rem; }
.admin-slider-summary span { color: #bfc5d0; font-size: .85rem; }
.admin-slider-capacity { flex: 1 1 auto; height: 8px; margin-left: 16px; overflow: hidden; background: rgba(255, 255, 255, .15); }
.admin-slider-capacity > span { display: block; height: 100%; background: var(--primary); transition: width .3s ease; }
.admin-slider-layout { display: grid; min-width: 0; grid-template-columns: minmax(340px, 430px) minmax(0, 1fr); align-items: start; gap: 28px; }
.admin-slider-form-card,
.admin-slider-list-card { min-width: 0; padding: 28px; background: var(--light); box-shadow: 0 14px 38px rgba(4, 15, 40, .07); }
.admin-slider-form-card { position: sticky; top: 24px; }
.admin-slider-form-card h3,
.admin-slider-list-card h3 { text-transform: uppercase; }
.admin-slider-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.admin-slider-form-card input,
.admin-slider-form-card select,
.admin-slider-form-card textarea { min-width: 0; max-width: 100%; }
.admin-slider-limit { display: flex; align-items: flex-start; gap: 12px; padding: 18px; color: #664d03; background: #fff3cd; }
.admin-slider-limit i { font-size: 1.4rem; }
.admin-slider-limit p { margin: 0; }
.admin-slide-list { display: grid; gap: 16px; }
.admin-slide-item { display: grid; grid-template-columns: 220px minmax(220px, 1fr) auto; align-items: center; gap: 20px; padding: 16px; background: #fff; border-left: 5px solid #198754; box-shadow: 0 7px 20px rgba(4, 15, 40, .06); }
.admin-slide-item.is-inactive { border-left-color: #adb5bd; opacity: .76; }
.admin-slide-preview { position: relative; overflow: hidden; background: var(--dark); }
.admin-slide-preview img { display: block; width: 100%; aspect-ratio: 16 / 7.5; object-fit: cover; }
.admin-slide-preview span { position: absolute; top: 8px; left: 8px; padding: 4px 8px; color: #fff; background: #6c757d; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.admin-slide-preview span.is-active { background: #198754; }
.admin-slide-copy { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.admin-slide-copy strong { color: var(--dark); font-size: 1.05rem; text-transform: uppercase; }
.admin-slide-copy small { display: -webkit-box; overflow: hidden; color: #6c757d; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.admin-slide-copy span { overflow-wrap: anywhere; color: var(--primary); font-size: .8rem; font-weight: 700; }
.admin-slide-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.admin-slide-actions form { margin: 0; }
.admin-slide-order { display: flex; gap: 4px; }
.admin-slide-actions .btn { white-space: nowrap; }

@media (max-width: 1199.98px) {
    .admin-slider-layout { grid-template-columns: 1fr; }
    .admin-slider-form-card { position: static; }
}

@media (max-width: 767.98px) {
    .admin-slide-item { grid-template-columns: 170px minmax(0, 1fr); }
    .admin-slide-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 575.98px) {
    .admin-slider-summary { align-items: flex-start; flex-wrap: wrap; }
    .admin-slider-capacity { flex-basis: 100%; margin-left: 0; }
    .admin-slider-form-card,
    .admin-slider-list-card { padding: 20px 16px; }
    .admin-slider-form-row { grid-template-columns: 1fr; }
    .admin-slide-item { grid-template-columns: 1fr; }
    .admin-slide-actions { grid-column: auto; }
    .admin-slide-actions > form,
    .admin-slide-actions > form .btn { width: 100%; }
    .admin-slide-order { width: 100%; }
    .admin-slide-order form,
    .admin-slide-order .btn { width: 100%; }
}

.team-card {
    display: flex;
    min-height: 405px;
}

.team-card-main {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
}

.team-card-image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1.08 / 1;
    object-fit: cover;
    object-position: center;
}

.team-card-copy {
    flex: 1 1 auto;
    min-height: 100px;
    padding: 1rem 1.5rem;
}

.team-card-social {
    display: flex;
    flex: 0 0 68px;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    overflow-y: auto;
    scrollbar-width: thin;
}

.team-card-without-social .team-card-main {
    width: 100%;
}

.team-card-social .btn {
    color: var(--dark);
}

.team-card-social .btn:hover,
.team-card-social .btn:focus-visible {
    color: #fff;
}

@media (max-width: 575.98px) {
    .team-grid {
        --bs-gutter-y: 2rem;
    }

    .team-card {
        min-height: 360px;
    }

    .team-card-copy {
        padding: 1rem;
    }

    .team-card-social {
        flex-basis: 58px;
    }
}

.account-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 118px;
    min-height: 96px;
    margin-left: 0;
    color: var(--dark) !important;
    background: var(--secondary);
    padding: 0 !important;
}

.account-nav i {
    font-size: 3.75rem;
    line-height: 1;
}

.account-nav:hover,
.account-nav.active {
    color: #fff !important;
    background: #d99b05;
}

.auth-grid { max-width: 1100px; margin: 0 auto; }
.auth-card { border-top: 6px solid var(--primary); box-shadow: 0 12px 35px rgba(4,15,40,.09); }
.auth-card-login { border-top-color: var(--secondary); }
.auth-card-icon { font-size: 3.25rem; color: var(--primary); margin-bottom: 18px; }
.auth-card-login .auth-card-icon { color: var(--secondary); }
.auth-alert { max-width: 1100px; }
.auth-profile { max-width: 720px; box-shadow: 0 12px 35px rgba(4,15,40,.09); }

@media (max-width: 1399.98px) {
    .account-nav { justify-content: flex-start; min-width: 100%; min-height: 82px; padding-left: 24px !important; }
    .account-nav i { font-size: 3.25rem; }
}

@media (max-width: 767.98px) {
    .auth-section { padding-top: 60px !important; padding-bottom: 60px !important; }
    .auth-card { padding: 28px 22px !important; }
}

@media (max-width: 767.98px) {
    .testimonial-slide {
        margin-right: 0;
        margin-left: 0;
    }

}

@media (min-width: 992px) {
    .footer::after {
        position: absolute;
        content: "";
        width: 1px;
        height: 100%;
        top: 0;
        left: 50%;
        background: var(--primary)
    }
}

.footer-shape::before {
    position: absolute;
    content: "";
    width: 80px;
    height: 100%;
    top: 0;
    left: -40px;
    background: var(--primary);
    transform: skew(40deg);
}

.footer address {
    font-style: normal;
}

.footer a.text-white-50 {
    transition: color .2s ease;
}

.footer a.text-white-50:hover,
.footer a.text-white-50:focus-visible {
    color: var(--primary) !important;
}

.footer-cta {
    min-height: 66px;
}

.footer-cta p {
    line-height: 1.4;
}

@media (max-width: 991.98px) {
    .footer {
        padding-right: 2rem !important;
        padding-left: 2rem !important;
    }

    .footer-shape::before {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .footer {
        padding: 4rem 1.25rem !important;
    }

    .footer-brand .display-4 {
        font-size: calc(1.45rem + 3vw);
    }

    .footer-cta .btn {
        display: block;
        width: 100%;
    }

    footer .px-5 {
        padding-right: 1.25rem !important;
        padding-left: 1.25rem !important;
    }
}

.contact-map-wrap {
    height: 600px;
}

.contact-map {
    display: block;
    border: 0;
}

.contact-card {
    position: relative;
    z-index: 1;
    margin-left: -10%;
    box-shadow: 0 16px 40px rgba(4, 15, 40, .08);
}

.contact-message-section .contact-form {
    margin-left: 0;
    box-shadow: 0 16px 40px rgba(4, 15, 40, .08);
}

.contact-message-copy {
    position: relative;
    z-index: 1;
}

.contact-message-copy h2 .text-primary {
    display: block;
}

.recaptcha-wrap {
    max-width: 100%;
    overflow: hidden;
}

@media (max-width: 359.98px) {
    .recaptcha-wrap .g-recaptcha {
        transform: scale(.84);
        transform-origin: left top;
        margin-bottom: -12px;
    }
}

@media (max-width: 991.98px) {
    .contact-map-wrap {
        height: 480px;
        margin-bottom: 0;
    }

    .contact-card {
        margin: -55px 2rem 0;
    }
}

@media (max-width: 575.98px) {
    .contact-section,
    .quote-section,
    .contact-message-section {
        padding: 4rem 1.25rem !important;
    }

    .contact-map-wrap {
        height: 360px;
    }

    .contact-card {
        margin: -28px .75rem 0;
        padding: 2rem 1.5rem !important;
    }

    .quote-section .contact-form {
        padding: 2rem 1.25rem !important;
    }

    .contact-message-section .contact-form {
        padding: 2rem 1.25rem !important;
    }
}
.required-marker {
    color: #dc3545;
    font-weight: 700;
}

.quote-section input[name="phone"]::placeholder {
    color: rgba(119, 119, 119, 0.38);
    opacity: 1;
}

/* Quote request landing page */
.quote-landing-hero {
    padding: 5rem 0;
    background: linear-gradient(180deg, #fff 0%, #f4f6f8 100%);
}

.quote-hero-panel {
    position: relative;
    min-height: 570px;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(90deg, rgba(4, 15, 40, .98) 0%, rgba(4, 15, 40, .92) 48%, rgba(4, 15, 40, .32) 100%), url('/assets/img/szakituzep-epitoanyag-keszlet.webp') center/cover no-repeat;
    box-shadow: 0 24px 60px rgba(4, 15, 40, .16);
}

.quote-hero-panel::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    width: 180px;
    height: 9px;
    background: var(--primary);
}

.quote-hero-content {
    position: relative;
    z-index: 1;
    width: min(720px, 65%);
    padding: 5rem;
    color: rgba(255, 255, 255, .8);
}

.quote-eyebrow,
.quote-section-kicker {
    display: inline-block;
    margin-bottom: 1rem;
    color: var(--primary);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.quote-hero-content h1 {
    margin-bottom: 1.5rem;
    color: #fff;
    font-size: clamp(2.35rem, 4.4vw, 4.8rem);
    line-height: 1.04;
    text-transform: uppercase;
}

.quote-hero-content h1 span { color: var(--primary); }
.quote-hero-content > p { max-width: 650px; font-size: 1.12rem; line-height: 1.8; }
.quote-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; margin-top: 2rem; }
.quote-phone-link { color: #fff; font-weight: 700; }
.quote-phone-link:hover { color: var(--primary); }

.quote-hero-assurances {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem 1.5rem;
    margin: 2rem 0 0;
    padding: 0;
    list-style: none;
    font-size: .92rem;
}

.quote-hero-assurances i { color: var(--primary); }
.quote-benefits { background: #fff; }

.quote-benefit-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    max-width: 1180px;
    margin: 0 auto;
}

.quote-benefit-card {
    position: relative;
    display: flex;
    gap: 1.5rem;
    min-height: 190px;
    padding: 2.25rem;
    overflow: hidden;
    background: var(--light);
    border-left: 4px solid transparent;
    transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}

.quote-benefit-card::after {
    content: "";
    position: absolute;
    right: -45px;
    bottom: -45px;
    width: 100px;
    height: 100px;
    border: 18px solid rgba(253, 93, 20, .06);
    border-radius: 50%;
}

.quote-benefit-card:hover {
    transform: translateY(-6px);
    border-left-color: var(--primary);
    box-shadow: 0 18px 42px rgba(4, 15, 40, .1);
}

.quote-benefit-icon {
    flex: 0 0 66px;
    width: 66px;
    height: 66px;
    display: grid;
    place-items: center;
    color: #fff;
    background: var(--primary);
    font-size: 1.8rem;
    transition: transform .3s ease;
}

.quote-benefit-card:hover .quote-benefit-icon { transform: rotate(-5deg) scale(1.05); }
.quote-benefit-card h3 { margin-bottom: .75rem; font-size: 1.25rem; text-transform: uppercase; }
.quote-benefit-card p { margin: 0; line-height: 1.7; }

.quote-process {
    position: relative;
    background: var(--dark);
    color: rgba(255, 255, 255, .7);
}

.quote-process::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 7px;
    background: var(--primary);
}

.quote-process > .container-fluid > .row {
    margin-right: 0;
    margin-left: 0;
}

.quote-step-list { display: grid; gap: 1rem; margin: 0; padding-left: calc(var(--bs-gutter-x) / 2); list-style: none; }
.quote-step { display: flex; align-items: center; gap: 1.5rem; padding: 1.5rem 1.75rem; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .08); }
.quote-step > span { color: var(--primary); font-family: "Roboto", sans-serif; font-size: 2rem; font-weight: 700; }
.quote-step h3 { margin-bottom: .25rem; color: #fff; font-size: 1.18rem; text-transform: uppercase; }
.quote-step p { margin: 0; }
.quote-form-card { border-top: 5px solid var(--primary); box-shadow: 0 22px 55px rgba(4, 15, 40, .1); }
.quote-section { scroll-margin-top: 96px; }
.quote-form-reassurance { display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem 2rem; margin-top: 1.5rem; color: #6c757d; font-size: .9rem; }
.quote-form-reassurance i { margin-right: .35rem; color: var(--primary); }

.quote-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .65s ease var(--reveal-delay, 0ms), transform .65s ease var(--reveal-delay, 0ms);
}

.quote-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 991.98px) {
    .quote-hero-panel { min-height: 520px; background-position: 62% center; }
    .quote-hero-content { width: 78%; padding: 3.5rem; }
    .quote-benefit-card { padding: 1.75rem; }
    .quote-step-list { padding-left: calc(var(--bs-gutter-x) / 2); }
}

@media (max-width: 767.98px) {
    .quote-landing-hero { padding: 3rem 0; }
    .quote-landing-hero .px-5,
    .quote-benefits .px-5,
    .quote-process .px-5 { padding-right: 1.5rem !important; padding-left: 1.5rem !important; }
    .quote-hero-panel { min-height: 560px; align-items: flex-end; background: linear-gradient(0deg, rgba(4, 15, 40, .99) 0%, rgba(4, 15, 40, .87) 62%, rgba(4, 15, 40, .38) 100%), url('/assets/img/szakituzep-epitoanyag-keszlet.webp') center/cover no-repeat; }
    .quote-hero-content { width: 100%; padding: 2.5rem; }
    .quote-benefit-grid { grid-template-columns: 1fr; }
    .quote-benefit-card { min-height: 0; }
}

@media (max-width: 575.98px) {
    .quote-landing-hero .px-5,
    .quote-benefits .px-5,
    .quote-process .px-5 { padding-right: 1.25rem !important; padding-left: 1.25rem !important; }
    .quote-hero-panel { min-height: 590px; }
    .quote-hero-content { padding: 2rem 1.5rem; }
    .quote-hero-content h1 { font-size: clamp(2rem, 11vw, 3rem); }
    .quote-hero-content > p { font-size: 1rem; }
    .quote-hero-actions { align-items: stretch; flex-direction: column; }
    .quote-hero-actions .btn { width: 100%; }
    .quote-phone-link { text-align: center; }
    .quote-benefit-card { display: block; padding: 1.5rem; }
    .quote-benefit-icon { margin-bottom: 1.25rem; }
    .quote-step { align-items: flex-start; gap: 1rem; padding: 1.25rem; }
    .quote-step > span { font-size: 1.45rem; }
    .quote-form-reassurance { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .quote-reveal { opacity: 1; transform: none; transition: none; }
    .quote-benefit-card,
    .quote-benefit-icon { transition: none; }
}

.account-dashboard,
.two-factor-card {
    max-width: 960px;
}

.two-factor-card {
    box-shadow: 0 20px 45px rgba(4, 15, 40, 0.1);
}

.two-factor-qr {
    width: min(100%, 320px);
    height: auto;
    background: #fff;
    padding: 12px;
}

.two-factor-secret {
    overflow-wrap: anywhere;
}

.two-factor-code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 1.35rem;
    letter-spacing: 0.08em;
}

.recovery-code-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.recovery-code-grid code {
    display: block;
    padding: 0.8rem;
    background: #fff;
    color: #040f28;
    text-align: center;
    font-size: 1rem;
}

.recovery-print-brand { display: none; }
.recovery-copy-status { min-height: 1.5em; margin: -.25rem 0 .75rem; font-weight: 700; }
.recovery-actions { display: flex; flex-wrap: wrap; gap: .65rem; }

@media print {
    body.printing-recovery-codes { background: #fff !important; }
    body.printing-recovery-codes * { visibility: hidden !important; }
    body.printing-recovery-codes .recovery-code-sheet,
    body.printing-recovery-codes .recovery-code-sheet * { visibility: visible !important; }
    body.printing-recovery-codes .recovery-code-sheet { position: absolute; inset: 0 auto auto 0; width: 100%; max-width: none; padding: 20mm !important; color: #000; background: #fff !important; box-shadow: none; }
    body.printing-recovery-codes .no-print { display: none !important; }
    body.printing-recovery-codes .recovery-print-brand { display: block; margin-bottom: 8mm; font-weight: 700; }
    body.printing-recovery-codes .recovery-code-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4mm; }
    body.printing-recovery-codes .recovery-code-grid code { border: 1px solid #bbb; color: #000; background: #fff; }
}

@media (max-width: 575.98px) {
    .recovery-code-grid {
        grid-template-columns: 1fr;
    }
}

/* Account portal */
.account-portal { max-width: 1480px; }
.account-portal-layout { display: grid; grid-template-columns: 285px minmax(0, 1fr); gap: 32px; align-items: start; }
.account-sidebar { position: sticky; top: 24px; overflow: hidden; background: #fff; border: 1px solid rgba(4, 15, 40, .08); box-shadow: 0 18px 45px rgba(4, 15, 40, .08); }
.account-user-mini { display: flex; align-items: center; gap: 14px; padding: 24px 22px; color: #fff; background: var(--dark); }
.account-user-mini i { flex: 0 0 auto; color: var(--primary); font-size: 2.5rem; line-height: 1; }
.account-user-mini div { min-width: 0; }
.account-user-mini strong, .account-user-mini span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-user-mini strong { font-size: 1rem; text-transform: uppercase; }
.account-user-mini span { margin-top: 3px; color: rgba(255,255,255,.58); font-size: .78rem; }
.account-menu { padding: 14px; }
.account-menu-label { margin: 13px 12px 7px; color: #8b909b; font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-menu-admin { margin-top: 25px; color: var(--primary); }
.account-menu a { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-height: 47px; padding: 10px 12px; color: #4f5561; border-left: 3px solid transparent; text-decoration: none; transition: color .2s ease, background .2s ease, border-color .2s ease, transform .2s ease; }
.account-menu a i { color: #8b909b; font-size: 1.05rem; }
.account-menu a small { padding: 3px 6px; color: #8b909b; background: #f0f1f3; font-size: .61rem; line-height: 1; text-transform: uppercase; }
.account-menu a:hover, .account-menu a:focus-visible, .account-menu a.active { color: var(--dark); background: #f5f6f8; border-left-color: var(--primary); transform: translateX(2px); }
.account-menu a.active i, .account-menu a:hover i { color: var(--primary); }
.account-main { min-width: 0; display: grid; gap: 28px; }
.auth-profile { max-width: none; display: flex; align-items: center; justify-content: space-between; gap: 28px; margin: 0; }
.auth-profile-copy { display: flex; align-items: center; gap: 22px; min-width: 0; }
.auth-profile-copy > i { flex: 0 0 auto; font-size: 4.7rem; line-height: 1; }
.auth-profile-copy h2 { margin: 3px 0 2px; overflow-wrap: anywhere; }
.auth-profile-copy p { margin: 0 0 8px; color: #777; overflow-wrap: anywhere; }
.account-eyebrow { display: block; color: var(--primary); font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.account-stat-grid article { position: relative; min-width: 0; padding: 24px; overflow: hidden; background: #fff; border: 1px solid rgba(4,15,40,.08); box-shadow: 0 10px 28px rgba(4,15,40,.055); }
.account-stat-grid i { position: absolute; top: 18px; right: 20px; color: rgba(255, 94, 20, .16); font-size: 2.6rem; }
.account-stat-grid span, .account-stat-grid strong { display: block; position: relative; }
.account-stat-grid span { margin-bottom: 8px; color: #777; font-size: .8rem; text-transform: uppercase; }
.account-stat-grid strong { color: var(--dark); font-size: 1.15rem; overflow-wrap: anywhere; }
.account-welcome-panel { padding: 30px 34px; background: #f4f5f7; border-left: 5px solid var(--primary); }
.account-welcome-panel h2 { margin: 5px 0 10px; text-transform: uppercase; }
.account-welcome-panel p { max-width: 850px; margin: 0; }
.account-content-card { padding: 38px; background: #fff; border-top: 5px solid var(--primary); box-shadow: 0 18px 45px rgba(4,15,40,.09); }
.account-content-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 28px; margin-bottom: 30px; }
.account-content-heading h1 { margin: 5px 0 8px; color: var(--dark); text-transform: uppercase; }
.account-content-heading p { max-width: 760px; margin: 0; }
.account-content-heading > i { flex: 0 0 auto; color: rgba(255,94,20,.2); font-size: 4.25rem; line-height: 1; }
.account-profile-form { display: grid; gap: 24px; max-width: 820px; }
.account-profile-form .form-control { min-height: 58px; padding: 15px 18px; background: #f4f5f7; border: 1px solid transparent; }
.account-profile-form .form-control:focus { background: #fff; border-color: var(--primary); }
.account-profile-form .form-control[readonly] { color: #727782; cursor: not-allowed; }
.account-profile-form small { display: block; margin-top: 8px; color: #777; }
.form-error { margin: 8px 0 0; color: #b42318; font-size: .88rem; font-weight: 600; }
.account-profile-meta { display: flex; flex-wrap: wrap; gap: 14px 28px; padding: 18px 20px; color: #606671; background: #f4f5f7; }
.account-profile-meta span { display: inline-flex; align-items: center; gap: 8px; }
.account-profile-meta i { color: var(--primary); }
.account-empty-state { padding: 50px 24px; text-align: center; background: #f4f5f7; }
.account-empty-state > i { color: var(--primary); font-size: 4rem; }
.account-empty-state h2 { margin-top: 12px; text-transform: uppercase; }
.account-empty-state p { max-width: 620px; margin: 0 auto 24px; }
.account-quote-list { display: grid; gap: 18px; }
.account-quote-card { overflow: hidden; border: 1px solid #e4e7ec; }
.account-quote-card header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 22px; background: #f4f5f7; }
.account-quote-card header div, .account-quote-card time { display: block; }
.account-quote-number { color: var(--dark); font-weight: 700; text-transform: uppercase; }
.account-quote-card time { margin-top: 3px; color: #777; font-size: .82rem; }
.account-quote-status { flex: 0 0 auto; padding: 7px 10px; color: #fff; background: #6c757d; font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.account-quote-status.is-new { background: var(--primary); }
.account-quote-status.is-progress { background: #0d6efd; }
.account-quote-status.is-closed { background: #198754; }
.account-quote-card > p { margin: 0; padding: 24px 22px; color: var(--dark); white-space: pre-wrap; overflow-wrap: anywhere; }
.account-quote-card footer { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 15px 22px; color: #6d727c; background: #fbfbfc; border-top: 1px solid #edf0f2; font-size: .85rem; }
.account-quote-card footer span, .account-quote-card footer a { display: inline-flex; align-items: center; gap: 7px; color: inherit; overflow-wrap: anywhere; }
.account-quote-card footer i { color: var(--primary); }
.admin-inbox-page { max-width: 1420px; }
.admin-inbox-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
.admin-inbox-heading h1 { margin: 5px 0 8px; text-transform: uppercase; }
.admin-inbox-heading p { max-width: 760px; margin: 0; }
.admin-inbox-summary { display: flex; align-items: center; gap: 18px; margin-bottom: 26px; padding: 22px 26px; color: #fff; background: var(--dark); border-left: 5px solid var(--primary); }
.admin-inbox-summary > i { color: var(--primary); font-size: 2.6rem; }
.admin-inbox-summary strong, .admin-inbox-summary span { display: block; }
.admin-inbox-summary strong { font-size: 1.8rem; line-height: 1; }
.admin-inbox-summary span { margin-top: 5px; color: rgba(255,255,255,.65); font-size: .78rem; text-transform: uppercase; }
.admin-inbox-list, .admin-user-list { display: grid; gap: 18px; }
.admin-inbox-card { overflow: hidden; background: #fff; border: 1px solid #e4e7ec; box-shadow: 0 10px 30px rgba(4,15,40,.065); }
.admin-inbox-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding: 22px 24px; background: #f4f5f7; }
.admin-item-id { color: var(--primary); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.admin-inbox-card h2 { margin: 4px 0 2px; color: var(--dark); font-size: 1.25rem; text-transform: uppercase; }
.admin-inbox-card a { overflow-wrap: anywhere; }
.admin-item-meta { display: grid; justify-items: end; gap: 8px; flex: 0 0 auto; }
.admin-item-meta time { color: #626977; font-size: .82rem; font-weight: 600; }
.admin-delivery { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.admin-delivery.is-sent { color: #146c43; background: #d1e7dd; }
.admin-delivery.is-failed { color: #842029; background: #f8d7da; }
.admin-item-message { padding: 26px 24px; color: var(--dark); white-space: normal; overflow-wrap: anywhere; }
.admin-inbox-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px 24px; background: #fbfbfc; border-top: 1px solid #edf0f2; }
.admin-inbox-card > footer form { display: flex; align-items: center; gap: 10px; }
.admin-inbox-card > footer .form-select { min-width: 205px; min-height: 44px; }
.admin-inbox-card > footer .btn { min-height: 44px; }
.admin-contact-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 5px; }
.admin-contact-links a { display: inline-flex; align-items: center; gap: 6px; }
.admin-user-card { display: grid; grid-template-columns: 70px minmax(230px,1fr) minmax(190px,.7fr) minmax(215px,.8fr); align-items: center; gap: 22px; padding: 22px 24px; background: #fff; border-left: 5px solid #9ba3af; box-shadow: 0 9px 26px rgba(4,15,40,.065); }
.admin-user-card.role-border-admin { border-left-color: var(--primary); }
.admin-user-avatar i { color: var(--primary); font-size: 3.2rem; line-height: 1; }
.admin-user-identity { min-width: 0; }
.admin-user-identity h2 { margin: 7px 0 1px; overflow-wrap: anywhere; font-size: 1.15rem; text-transform: uppercase; }
.admin-user-identity a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-security, .admin-user-dates { display: grid; gap: 9px; }
.admin-user-security span { display: flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 600; }
.admin-user-security .is-positive { color: #198754; }
.admin-user-security .is-muted { color: #858b95; }
.admin-user-dates span { color: #7a808b; font-size: .72rem; text-transform: uppercase; }
.admin-user-dates time, .admin-user-dates strong { display: block; margin-top: 2px; color: var(--dark); font-size: .84rem; font-weight: 700; text-transform: none; }
.admin-security-card { box-shadow: 0 18px 45px rgba(4,15,40,.14); }
.admin-security-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.security-status { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; padding: 8px 11px; color: #d4d8e0; background: rgba(255,255,255,.08); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.security-status.is-enabled { color: #fff; background: #198754; }
.security-disclosure { margin-top: 26px; border: 1px solid rgba(255,255,255,.16); }
.security-disclosure summary { display: flex; align-items: center; justify-content: center; min-height: 58px; padding: 14px 20px; color: #fff; background: var(--primary); font-weight: 700; text-align: center; text-transform: uppercase; cursor: pointer; list-style: none; transition: filter .2s ease; }
.security-disclosure summary::-webkit-details-marker { display: none; }
.security-disclosure summary::after { content: "+"; margin-left: auto; font-size: 1.45rem; font-weight: 400; line-height: 1; }
.security-disclosure[open] summary::after { content: "−"; }
.security-disclosure summary:hover, .security-disclosure summary:focus-visible { filter: brightness(1.08); }
.security-disclosure-body { padding: 25px; background: rgba(255,255,255,.045); }
.security-disclosure-body form { max-width: 680px; }
.security-notice { display: flex; gap: 14px; margin-bottom: 22px; padding: 17px 18px; color: #c9cfdb; background: rgba(255,255,255,.07); border-left: 3px solid var(--primary); }
.security-notice > i { flex: 0 0 auto; color: var(--primary); font-size: 1.35rem; }
.security-notice p { margin: 0; }

@media (max-width: 1199.98px) {
    .account-portal-layout { grid-template-columns: 245px minmax(0, 1fr); gap: 22px; }
    .account-menu a small { display: none; }
    .auth-profile { align-items: flex-start; flex-direction: column; }
    .admin-user-card { grid-template-columns: 65px minmax(220px,1fr) minmax(180px,.8fr); }
    .admin-user-dates { grid-column: 2 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 991.98px) {
    .account-portal-layout { grid-template-columns: 1fr; }
    .account-sidebar { position: static; }
    .account-menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
    .account-menu-label { grid-column: 1 / -1; }
    .account-menu a small { display: inline; }
    .admin-inbox-heading { align-items: flex-start; flex-direction: column; }
    .admin-user-card { grid-template-columns: 60px minmax(0,1fr); }
    .admin-user-security, .admin-user-dates { grid-column: 2; }
}

@media (max-width: 767.98px) {
    .account-stat-grid { grid-template-columns: 1fr; }
    .auth-profile-copy { align-items: flex-start; }
    .auth-profile-copy > i { font-size: 3.5rem; }
    .auth-profile form, .auth-profile .btn { width: 100%; }
    .admin-security-heading { flex-direction: column; }
    .account-content-card { padding: 28px 22px; }
    .account-content-heading { margin-bottom: 24px; }
    .account-content-heading > i { font-size: 3.25rem; }
    .account-quote-card header { align-items: flex-start; flex-direction: column; }
    .admin-inbox-card > header, .admin-inbox-card > footer { align-items: flex-start; flex-direction: column; }
    .admin-item-meta { justify-items: start; }
    .admin-inbox-card > footer form { width: 100%; }
    .admin-inbox-card > footer .form-select { min-width: 0; flex: 1 1 auto; }
}

@media (max-width: 575.98px) {
    .account-menu { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 18px; scroll-snap-type: x proximity; scrollbar-width: thin; }
    .account-menu-label { display: none; }
    .account-menu a { flex: 0 0 188px; border: 1px solid #eceef1; border-left: 3px solid transparent; scroll-snap-align: start; }
    .account-menu a small { display: none; }
    .auth-profile-copy { flex-direction: column; }
    .auth-profile-copy h2 { font-size: 1.65rem; }
    .account-welcome-panel, .security-disclosure-body { padding: 22px 18px; }
    .security-disclosure summary { justify-content: flex-start; text-align: left; }
    .account-content-heading { flex-direction: column-reverse; gap: 14px; }
    .account-content-heading h1 { font-size: 1.75rem; }
    .account-profile-form .btn { width: 100%; }
    .account-quote-card footer { flex-direction: column; }
    .admin-inbox-heading .btn, .admin-inbox-card > footer form, .admin-inbox-card > footer .btn { width: 100%; }
    .admin-inbox-card > footer form { align-items: stretch; flex-direction: column; }
    .admin-user-card { grid-template-columns: 1fr; padding: 20px 18px; }
    .admin-user-security, .admin-user-dates { grid-column: auto; }
    .admin-user-dates { grid-template-columns: 1fr; }
    .admin-user-identity a { white-space: normal; overflow-wrap: anywhere; }
}

.admin-opening-page { max-width: 1420px; }
.admin-opening-grid { display:grid; grid-template-columns:minmax(320px,.8fr) minmax(420px,1.2fr); gap:28px; align-items:start; }
.admin-opening-form-card,.admin-opening-list-card { padding:32px; background:#f4f6f8; box-shadow:0 12px 35px rgba(4,15,40,.08); }
.admin-opening-form-card h3,.admin-opening-list-card h3 { margin:0 0 22px; color:var(--dark); text-transform:uppercase; }
.admin-opening-form-card .form-control { min-height:56px; }
.admin-date-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:22px 0; }
.admin-date-input { position:relative; }
.admin-date-input input { padding-right:48px!important; }
.admin-date-input > i { position:absolute; top:50%; right:18px; z-index:0; color:var(--primary); font-size:1.15rem; pointer-events:none; transform:translateY(-50%); }
.admin-field-error { margin:7px 0 0; color:#b02a37; font-size:.86rem; font-weight:600; }
.admin-opening-list-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.admin-opening-list-heading h3 { margin-bottom:2px; }.admin-opening-list-heading p { margin:0; color:#778196; }
.admin-opening-list-heading > i { color:var(--primary); font-size:2rem; }
.closure-list { display:grid; gap:12px; }
.closure-item { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px; padding:18px; background:#fff; border-left:4px solid var(--primary); }
.closure-item-icon { display:grid; place-items:center; width:44px; height:44px; color:#fff; background:var(--dark); font-size:1.25rem; }
.closure-item-copy { display:grid; min-width:0; }.closure-item-copy strong { color:var(--dark); overflow-wrap:anywhere; }.closure-item-copy span,.closure-item-copy small { color:#778196; }
.closure-item-copy small { margin-top:2px; font-weight:600; }.closure-item.closure-expired { border-left-color:#adb5bd; opacity:.7; }
.closure-item form { margin:0; }.closure-item .btn { width:44px; height:44px; padding:0; }
.admin-opening-empty { padding:50px 20px; color:#778196; background:#fff; text-align:center; }.admin-opening-empty i { display:block; margin-bottom:10px; color:#adb5bd; font-size:2.5rem; }
@media(max-width:991.98px){.admin-opening-grid{grid-template-columns:1fr}.admin-opening-form-card,.admin-opening-list-card{padding:26px}}
@media(max-width:575.98px){.admin-date-grid{grid-template-columns:1fr}.admin-opening-form-card,.admin-opening-list-card{padding:20px 16px}.closure-item{grid-template-columns:auto minmax(0,1fr)}.closure-item form{grid-column:1/-1}.closure-item .btn{width:100%}}

.topbar-opening-link { position:relative; color:inherit; text-decoration:none; transition:background-color .2s ease,box-shadow .2s ease; }
.topbar-opening-link::after { position:absolute; right:13px; bottom:7px; color:var(--primary); font-family:"bootstrap-icons"; font-size:.8rem; content:"\f285"; opacity:0; transition:opacity .2s ease,transform .2s ease; }
.topbar-opening-link:hover,.topbar-opening-link:focus-visible { color:inherit; background:#f7f8fa; box-shadow:inset 0 -3px 0 var(--primary); }
.topbar-opening-link:hover::after,.topbar-opening-link:focus-visible::after { opacity:1; transform:translateX(3px); }
.opening-calendar-page { max-width:1420px; }
.tomorrow-opening-card { display:grid; grid-template-columns:auto minmax(240px,1fr) auto; align-items:center; gap:24px; margin-bottom:42px; padding:28px 34px; color:#fff; background:var(--dark); border-left:7px solid #198754; box-shadow:0 15px 40px rgba(4,15,40,.15); }
.tomorrow-opening-card:not(.tomorrow-open) { border-left-color:#dc3545; }.tomorrow-opening-card.tomorrow-weekend { border-left-color:#7a8495; }
.tomorrow-opening-icon { display:grid; place-items:center; width:68px; height:68px; color:#fff; background:#198754; font-size:2rem; }.tomorrow-opening-card:not(.tomorrow-open) .tomorrow-opening-icon { background:#dc3545; }.tomorrow-opening-card.tomorrow-weekend .tomorrow-opening-icon { background:#6c757d; }
.opening-calendar-eyebrow { color:var(--primary); font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.tomorrow-opening-card h2 { margin:3px 0 0; color:#fff; text-transform:uppercase; }.tomorrow-opening-card p { margin:0; color:#aeb7c7; }
.tomorrow-opening-status { display:grid; min-width:230px; text-align:right; }.tomorrow-opening-status strong { color:#65c18c; font-size:2rem; line-height:1; text-transform:uppercase; }.tomorrow-opening-card:not(.tomorrow-open) .tomorrow-opening-status strong { color:#ff7b87; }.tomorrow-opening-status span { margin-top:7px; color:#d8dde6; }
.opening-calendar-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px; }.opening-calendar-toolbar h2 { margin:4px 0 0; color:var(--dark); text-transform:uppercase; }
.opening-view-switch { display:flex; padding:4px; background:#eef1f4; }.opening-view-switch a { padding:11px 18px; color:#5e6879; font-weight:700; text-decoration:none; }.opening-view-switch a.active { color:#fff; background:var(--dark); }.opening-view-switch i { margin-right:7px; }
.opening-period-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; padding:10px; background:#f4f6f8; }.opening-period-nav a { display:flex; align-items:center; gap:8px; padding:8px 12px; color:var(--dark); font-weight:700; text-decoration:none; }.opening-period-nav a:hover { color:var(--primary); }.opening-today-link { background:#fff; }
.opening-calendar-legend { display:flex; flex-wrap:wrap; gap:12px 22px; margin-bottom:20px; color:#697386; font-size:.86rem; }.opening-calendar-legend span { display:flex; align-items:center; gap:7px; }.opening-calendar-legend i { width:12px; height:12px; }.legend-open { background:#198754; }.legend-holiday { background:#dc3545; }.legend-manual { background:var(--primary); }.legend-weekend { background:#adb5bd; }
.opening-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-top:1px solid #dfe3e8; border-left:1px solid #dfe3e8; }
.opening-weekday-heading { padding:12px 8px; color:#fff; background:var(--dark); border-right:1px solid #23304d; font-size:.78rem; font-weight:700; text-align:center; text-transform:uppercase; }
.opening-day,.opening-day-empty { min-height:178px; padding:16px; background:#fff; border-right:1px solid #dfe3e8; border-bottom:1px solid #dfe3e8; }.opening-day-empty { background:#f6f7f9; }
.opening-day { position:relative; border-top:4px solid #198754; }.opening-day-holiday { border-top-color:#dc3545; background:#fff8f8; }.opening-day-manual { border-top-color:var(--primary); background:#fffaf6; }.opening-day-weekend { border-top-color:#adb5bd; background:#f5f6f7; }
.opening-day.is-today { z-index:1; box-shadow:inset 0 0 0 2px var(--dark); }.opening-day.is-tomorrow { z-index:1; box-shadow:inset 0 0 0 2px var(--primary); }
.opening-day header { display:flex; align-items:center; gap:8px; margin-bottom:17px; }.opening-day header > strong { color:var(--dark); font-size:1.55rem; }.opening-day header em { margin-left:auto; padding:3px 7px; color:#fff; background:var(--primary); font-size:.68rem; font-style:normal; font-weight:700; text-transform:uppercase; }
.opening-mobile-weekday { display:none; }.opening-day-state { display:flex; align-items:center; gap:7px; color:#198754; }.opening-day:not(.opening-day-open) .opening-day-state { color:#c03946; }.opening-day-hours { display:block; margin-top:5px; color:var(--dark); font-weight:700; }.opening-day p { margin:7px 0 0; color:#737e90; font-size:.78rem; line-height:1.35; overflow-wrap:anywhere; }
.opening-calendar-note { display:flex; gap:9px; margin:22px 0 0; color:#737e90; }.opening-calendar-note i { color:var(--primary); }
@media(max-width:991.98px){.tomorrow-opening-card{grid-template-columns:auto 1fr}.tomorrow-opening-status{grid-column:1/-1;min-width:0;padding-top:18px;border-top:1px solid #26324d;text-align:left}.opening-calendar-toolbar{align-items:flex-start;flex-direction:column}.opening-day{min-height:165px;padding:12px}.opening-day p{font-size:.72rem}}
@media(max-width:767.98px){.tomorrow-opening-card{grid-template-columns:1fr;padding:24px 20px}.tomorrow-opening-icon{width:56px;height:56px}.opening-calendar-grid{grid-template-columns:1fr;border:0;gap:10px}.opening-weekday-heading,.opening-day-empty{display:none}.opening-day{display:grid;grid-template-columns:minmax(90px,.65fr) minmax(100px,.75fr) minmax(120px,1fr);align-items:center;gap:12px;min-height:0;padding:15px;border:0;border-left:5px solid #198754}.opening-day-holiday{border-left-color:#dc3545}.opening-day-manual{border-left-color:var(--primary)}.opening-day-weekend{border-left-color:#adb5bd}.opening-day header{margin:0}.opening-mobile-weekday{display:inline;color:#68758a}.opening-day header>strong{font-size:1.15rem}.opening-day-state{justify-self:start}.opening-day-hours{margin:0}.opening-day p{margin:0}.opening-period-nav span{display:none}}
@media(max-width:480px){.opening-view-switch{width:100%}.opening-view-switch a{flex:1;text-align:center}.opening-day{grid-template-columns:1fr 1fr}.opening-day p{grid-column:1/-1}.opening-calendar-legend{display:grid;grid-template-columns:1fr 1fr}.tomorrow-opening-status strong{font-size:1.65rem}}
