/*
Theme Name: Divi Child
Theme URI: https://lionstack.hu
Description: Divi child theme a Rezideo fejlesztéshez. Egyedi CSS ide kerül.
Author: Codefusion Kft.
Template: Divi
Version: 1.0.0
*/

/* =========================================================================
   Global typography: restore normal bottom padding on the last paragraph.
   Divi core (style.min.css) zeroes it via
   p:not(.has-background):last-of-type { padding-bottom: 0 }.
   Desktop only; on mobile the Divi default (no padding) stays.
   ========================================================================= */
@media (min-width: 763px) {
    p:not(.has-background):last-of-type {
        padding-bottom: 1em;
    }
}

/* =========================================================================
   Rezideo — Plot list table (per the /teleklista/ design)
   Colors from the site's green palette.
   ========================================================================= */
.rezideo-telek {
    --rez-head: #1b756a;      /* header green */
    --rez-row: #0f574e;       /* row green */
    --rez-hover: #17796d;     /* row hover (lighter) */
    --rez-sep: rgba(255, 255, 255, .08);
    --rez-text: #ffffff;
    --rez-link: #1b756a;
    --rez-link-active: #0f574e;
    margin: 8px 0;
}

.rezideo-telek__table-wrap {
    border-radius: 7px;
    overflow: hidden;
}

.rezideo-telek__table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 15px;
    line-height: 1.4;
}

.rezideo-telek__table thead th {
    background: #116E66;
    color: var(--rez-text);
    font-weight: 700;
    text-align: left;
    padding: 20px 30px;
    white-space: nowrap;
}

.rezideo-telek__table thead th:first-child {
    border-top-left-radius: 7px;
}

.rezideo-telek__table thead th:last-child {
    border-top-right-radius: 7px;
}

.rezideo-telek__table tbody td {
    background: var(--rez-row);
    color: var(--rez-text);
    padding: 22px 30px;
    border-top: 1px solid var(--rez-sep);
    vertical-align: middle;
    /* Lines may wrap, but only at spaces: mid-word breaking (inherited from
       the Divi text defaults) is unreadable in the table. */
    word-break: normal;
    overflow-wrap: normal;
    -webkit-hyphens: none;
    hyphens: none;
}

/* Striped rows */
.rezideo-telek__table tbody tr:nth-child(odd) td {
    background: #0B5952;
}

.rezideo-telek__table tbody tr:nth-child(even) td {
    background: #0A524C;
}

.rezideo-telek__table tbody tr:hover td {
    background: var(--rez-hover);
}

.rezideo-telek__name {
    font-weight: 600;
}

.rezideo-telek__status {
    display: inline-block;
}

/* Pager */
.rezideo-telek__pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding: 4px 6px;
    font-weight: 600;
}

.rezideo-telek__pager-side {
    flex: 1 1 0;
}

.rezideo-telek__pager-side--right {
    text-align: right;
}

.rezideo-telek__pager-nums {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
}

.rezideo-telek__pager-prev,
.rezideo-telek__pager-next {
    color: var(--rez-link);
    text-decoration: none;
    font-weight: 700;
    transition: opacity .15s ease;
}

.rezideo-telek__pager-prev:hover,
.rezideo-telek__pager-next:hover {
    opacity: .7;
}

.rezideo-telek__pager-num {
    color: var(--rez-link);
    text-decoration: none;
    min-width: 20px;
    text-align: center;
    transition: opacity .15s ease;
}

.rezideo-telek__pager-num:hover {
    opacity: .7;
}

.rezideo-telek__pager-num.is-active {
    color: var(--rez-link-active);
    font-weight: 700;
}

.rezideo-telek-empty {
    padding: 32px;
    text-align: center;
    color: #666;
    font-style: italic;
}

/* List: link + "Megnézem" (view) button + clickable row */
.rezideo-telek__table tr.is-clickable {
    cursor: pointer;
}
.rezideo-telek__link {
    color: #fff;
    text-decoration: none;
}
.rezideo-telek__link:hover {
    text-decoration: underline;
}
.rezideo-telek__view {
    display: inline-block;
    margin-left: 14px;
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    opacity: .85;
}
.rezideo-telek__view:hover {
    opacity: 1;
}

/* =========================================================================
   Plot detail page (per the /telek/{slug}/ design)
   ========================================================================= */
.rezideo-telek-detail {
    --rez-head: #1b756a;
    --rez-row: #0f574e;
    --rez-area: #17796d;
    width: 1493px;
    max-width: 100%;
    margin: 8px auto;
    color: #fff;
}
.rezideo-telek-detail__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    background: var(--rez-row);
    border-radius: 10px 10px 72px 10px;
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(0, 0, 0, .16);
}
.rezideo-telek-detail__card.is-single {
    grid-template-columns: 1fr;
}
.rezideo-telek-detail__info {
    padding: 44px 48px;
}
.rezideo-telek-detail__eyebrow {
    font-family: 'Crimson Text', serif;
    text-transform: uppercase;
    letter-spacing: .18em;
    font-size: 12px;
    opacity: .6;
    margin-bottom: 6px;
}
.rezideo-telek-detail__title {
    font-family: 'Crimson Text', serif;
    color: #fff;
    font-size: 30px;
    font-weight: 400;
    margin: 0 0 22px;
    line-height: 1.2;
}
.rezideo-telek-detail__area {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--rez-area);
    padding: 11px 20px;
    border-radius: 3px;
    margin-bottom: 24px;
    font-size: 15px;
}
.rezideo-telek-detail__area-icon {
    opacity: .8;
}
.rezideo-telek-detail__specs {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    font-size: 15px;
    line-height: 1.9;
}

/* Divi (.et_pb_text_inner ul/li) re-adds bullets and padding with higher
   specificity — override both the list and its items explicitly. */
.rezideo-telek-detail .rezideo-telek-detail__specs,
.rezideo-telek-detail .rezideo-telek-detail__specs li {
    list-style-type: none;
    list-style: none;
    padding-left: 0;
}
.rezideo-telek-detail__specs strong {
    font-weight: 700;
}
.rezideo-telek-detail__note,
.rezideo-telek-detail__desc {
    font-size: 14px;
    opacity: .88;
    border-top: 1px solid rgba(255, 255, 255, .15);
    padding-top: 14px;
    margin-top: 6px;
}
.rezideo-telek-detail__note {
    font-style: italic;
}
.rezideo-telek-detail__gallery-label {
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, .15);
    font-weight: 600;
}
.rezideo-telek-detail__media {
    display: flex;
    flex-direction: column;
}
.rezideo-telek-detail__main-image {
    flex: 1 1 auto;
    min-height: 320px;
}
.rezideo-telek-detail__main-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.rezideo-telek-detail__thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    padding: 18px;
}
.rezideo-telek-detail__thumbs img {
    width: 100%;
    height: 90px;
    object-fit: cover;
    border-radius: 6px;
    display: block;
}

/* Responsive: the table is scrollable on small screens */
@media (max-width: 782px) {
    .rezideo-telek__table-wrap {
        overflow-x: auto;
    }
    .rezideo-telek__table {
        min-width: 560px;
        font-size: 14px;
        /* Auto layout: columns size to their content, so no word is ever
           forced to break mid-word in the narrow fixed-width columns. */
        table-layout: auto;
        /* Sticky cells lose their edge with collapsed borders, so the
           mobile table switches to separate borders (visually identical,
           the row separator is a td border-top). */
        border-collapse: separate;
        border-spacing: 0;
    }
    .rezideo-telek__table thead th,
    .rezideo-telek__table tbody td {
        padding: 12px 14px;
    }

    /* Horizontal scroll affordance: the first column (plot name) stays
       pinned while the rest slides under it. The .has-scroll-* classes are
       toggled by rezideo-telek.js based on the scroll position. */
    .rezideo-telek__table thead th:first-child,
    .rezideo-telek__table tbody td:first-child {
        position: sticky;
        left: 0;
        z-index: 2;
    }
    .rezideo-telek__table thead th:first-child {
        z-index: 3;
    }
    .rezideo-telek__table-wrap.has-scroll-left thead th:first-child,
    .rezideo-telek__table-wrap.has-scroll-left tbody td:first-child {
        box-shadow: 4px 0 8px -5px rgba(0, 0, 0, .18);
    }

    /* Right edge fade while more columns are off-screen */
    .rezideo-telek__table-wrap.has-scroll-right {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
    }

    /* The native scrollbar is hidden (mobile browsers render it overlay-only
       or not at all); a custom track injected by rezideo-telek.js shows the
       position instead. */
    .rezideo-telek__table-wrap {
        scrollbar-width: none;
    }
    .rezideo-telek__table-wrap::-webkit-scrollbar {
        display: none;
    }

    /* The vlk_tabla tables (Vállalkozóknak, Lokáció) get the same mobile
       treatment as the plot list. Their base styles live inline in the
       page's Divi code module and load after this sheet, hence the
       .vlk_tabla_wrap prefix to outrank them. */
    .vlk_tabla_wrap .vlk_tabla {
        min-width: 560px;
        font-size: 14px;
        border-collapse: separate;
        border-spacing: 0;
    }
    .vlk_tabla_wrap .vlk_tabla thead th,
    .vlk_tabla_wrap .vlk_tabla tbody td {
        padding: 12px 14px;
        word-break: normal;
        overflow-wrap: normal;
        -webkit-hyphens: none;
        hyphens: none;
    }
    .vlk_tabla_wrap.has-scroll-right {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
        mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent);
    }
    .vlk_tabla_wrap {
        scrollbar-width: none;
    }
    .vlk_tabla_wrap::-webkit-scrollbar {
        display: none;
    }

    /* The plot list spans the full page width on mobile (page 62), the
       default Divi row gutter wastes too much of a narrow screen. */
    .page-id-62 .et_pb_row:has(.rezideo-telek) {
        width: 100%;
        max-width: 100%;
    }
    .rezideo-telek__pager {
        flex-wrap: wrap;
        justify-content: center;
    }
    .rezideo-telek__pager-side {
        flex-basis: auto;
    }
    .rezideo-telek-detail__card {
        grid-template-columns: 1fr;
    }
    .rezideo-telek-detail__info {
        padding: 28px 24px;
    }
    .rezideo-telek-detail__main-image {
        min-height: 220px;
    }
}

/* ==========================================================================
   MIB-style list elements (AJAX pager, result count, sorting, spinner)
   — the pager markup follows the MIB pagination structure (ul.pagination/
   .page-item/.page-link data-page), the look keeps the existing green design.
   ========================================================================== */
.rezideo-telek__pager .pagination {
    display: flex;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 14px;
    font-weight: 600;
}

.rezideo-telek__pager .page-item {
    margin: 0;
}

.rezideo-telek__pager .page-link {
    color: var(--rez-link);
    text-decoration: none;
    min-width: 20px;
    text-align: center;
    display: inline-block;
    cursor: pointer;
    transition: opacity .15s ease;
}

.rezideo-telek__pager .page-link:hover {
    opacity: .7;
}

.rezideo-telek__pager .page-item.active .page-link {
    color: var(--rez-link-active);
    font-weight: 700;
    cursor: default;
}

.rezideo-telek__pager .page-item.disabled {
    pointer-events: none;
    opacity: .45;
}

.rezideo-telek__pager .page-item-prev {
    margin-right: auto;
}

.rezideo-telek__pager .page-item-next {
    margin-left: auto;
}

.rezideo-telek__pager .page-item-prev .page-link,
.rezideo-telek__pager .page-item-next .page-link {
    font-weight: 700;
}

.rezideo-telek__count {
    margin: 0 0 8px;
    font-weight: 600;
}

.rezideo-telek__sort {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
}

.rezideo-telek__sort select {
    padding: 6px 10px;
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #fff;
}

.rezideo-spinner {
    display: none;
    width: 28px;
    height: 28px;
    border: 3px solid rgba(15, 87, 78, .25);
    border-top-color: #0f574e;
    border-radius: 50%;
    animation: rezideo-spin .8s linear infinite;
    margin: 8px auto;
}

@keyframes rezideo-spin {
    to { transform: rotate(360deg); }
}

.rezideo-spinner .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

@media (max-width: 700px) {
    .rezideo-telek__pager .pagination {
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
    }

    /* Prev/next: arrow only on mobile. The label and the arrow entity are
       plain text inside the same link, so the text is collapsed with
       font-size:0 and the arrow is re-drawn as a pseudo element. */
    .rezideo-telek__pager .page-item-prev .page-link,
    .rezideo-telek__pager .page-item-next .page-link {
        font-size: 0;
    }
    .rezideo-telek__pager .page-item-prev .page-link::before {
        content: "\2190";
        font-size: 16px;
        line-height: 1;
    }
    .rezideo-telek__pager .page-item-next .page-link::after {
        content: "\2192";
        font-size: 16px;
        line-height: 1;
    }
}

/* Area row + downloadable datasheet link (plot detail page) */
.rezideo-telek-detail__area-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 12px;
    margin-bottom: 24px;
}

/* Both pills stay on one line and never break their label text */
.rezideo-telek-detail__area-row .rezideo-telek-detail__area,
.rezideo-telek-detail__area-row .rezideo-telek-detail__datasheet {
    white-space: nowrap;
    flex: 0 0 auto;
}

@media (max-width: 480px) {
    /* Very narrow screens: stack the pills instead of overflowing */
    .rezideo-telek-detail__area-row {
        flex-wrap: wrap;
    }
}

.rezideo-telek-detail__area-row .rezideo-telek-detail__area {
    margin-bottom: 0;
}

/* Shape follows the design SVG: small top-left corner, full-height sweep on
   the top-right, tiny bottom-right corner, 15px bottom-left corner. */
.rezideo-telek-detail__datasheet {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 31px;
    padding: 0 26px 0 18px;
    border: none;
    border-radius: 3px 29px 1px 15px;
    background: #FFFCEE;
    color: #0D635B;
    text-decoration: none;
    font-size: 16px;
    font-weight: 600;
    transition: filter .15s ease;
}

.rezideo-telek-detail__datasheet:hover {
    filter: brightness(.96);
    color: #0D635B;
}

.rezideo-telek-detail__datasheet-icon {
    display: inline-flex;
    align-items: center;
}

/* The area highlight bar shares the cream background of the design */
.rezideo-telek-detail__area-row .rezideo-telek-detail__area {
    background: #FFFCEE;
    color: #0D635B;
    height: 31px;
    padding: 0 18px;
    font-size: 16px;
}

.rezideo-telek-detail__area-row .rezideo-telek-detail__area-icon {
    display: inline-flex;
    align-items: center;
    opacity: 1;
}

/* The plot detail card is 1493px wide — the containing Divi row must not cap
   it at the default 1080px. Scoped with :has() so only the row holding the
   detail card is widened (the list view on the same page is unaffected). */
.et_pb_row:has(.rezideo-telek-detail) {
    width: 100%;
    max-width: 1493px;
}

/* Pager alignment: prev pinned left, page numbers exactly centered, next
   pinned right. The ul must be full width (inside the flex nav it would
   otherwise shrink to content width and the side boxes could not flex). */
.rezideo-telek__pager .pagination {
    width: 100%;
    justify-content: center;
}

.rezideo-telek__pager .page-item-prev,
.rezideo-telek__pager .page-item-next {
    flex: 1 1 0;
    min-width: 0;
    white-space: nowrap;
}

.rezideo-telek__pager .page-item-prev {
    text-align: left;
    margin-right: 0;
}

.rezideo-telek__pager .page-item-next {
    text-align: right;
    margin-left: 0;
}

/* Contact form below the plot detail card */
.rezideo-telek-detail__contact {
    margin-top: 48px;
}

/* Contact form on the plot detail pages — same styling as the Kapcsolat page
   (scoped to the detail embed; the Kapcsolat page carries its own copy in a
   Divi code module). */
.rezideo-telek-detail__contact input.text,
.rezideo-telek-detail__contact input.title,
.rezideo-telek-detail__contact input[type=email],
.rezideo-telek-detail__contact input[type=password],
.rezideo-telek-detail__contact input[type=tel],
.rezideo-telek-detail__contact input[type=text],
.rezideo-telek-detail__contact select {
    background-color: #0d635b;
    border: 0;
    border-radius: 10px 60px 10px 10px;
    color: #fbf8e7 !important;
    padding: 15px !important;
}

.rezideo-telek-detail__contact textarea {
    background-color: #0d635b;
    border: 0;
    border-radius: 10px 10px 60px 10px;
    color: #fbf8e7;
    padding: 25px !important;
}

.rezideo-telek-detail__contact input::-webkit-input-placeholder,
.rezideo-telek-detail__contact textarea::-webkit-input-placeholder {
    color: #fbf8e7;
    opacity: 0.6;
}

.rezideo-telek-detail__contact input:focus,
.rezideo-telek-detail__contact textarea:focus {
    color: #fbf8e7;
}

.rezideo-telek-detail__contact .gform_title {
    display: none;
}

.rezideo-telek-detail__contact #gform_submit_button_1 {
    background-color: #0D635B;
    color: #fbf8e7;
    border: none;
    padding: 15px 40px;
    border-radius: 78px 237px;
    font-size: 21px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
    font-family: "Crimson Text";
}

.rezideo-telek-detail__contact #gform_submit_button_1::before {
    content: "";
    background-color: red;
    width: 55px;
    height: 10px;
    display: flex;
    position: absolute;
}

.rezideo-telek-detail__contact .gform_footer.before {
    justify-content: right;
}

.rezideo-telek-detail__contact .gform_confirmation_message_1.gform_confirmation_message {
    font-size: clamp(22px, 3.89vw, 27px) !important;
    font-family: 'Crimson Text', Georgia, "Times New Roman", serif;
    color: #0d635b !important;
}

/* Submit hover: the row-hover green of the table, eased */
.rezideo-telek-detail__contact #gform_submit_button_1 {
    transition: background-color .15s ease;
}

.rezideo-telek-detail__contact #gform_submit_button_1:hover {
    background-color: #17796d;
}

/* ==========================================================================
   Table scroll controls, injected by rezideo-telek.js: chevron buttons that
   scroll the table and a slim position track under it. Everything is driven
   by the .has-scroll-* / .is-scrollable classes, so nothing shows when the
   table fits the screen (desktop).
   ========================================================================== */
.rezideo-telek__scrollbox {
    position: relative;
}

.rezideo-telek__scroll-btn {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(11, 89, 82, .88);
    color: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .22);
    cursor: pointer;
}

.rezideo-telek__scroll-btn--left {
    left: 8px;
}

.rezideo-telek__scroll-btn--right {
    right: 8px;
}

.rezideo-telek__table-wrap.has-scroll-left ~ .rezideo-telek__scroll-btn--left,
.rezideo-telek__table-wrap.has-scroll-right ~ .rezideo-telek__scroll-btn--right,
.vlk_tabla_wrap.has-scroll-left ~ .rezideo-telek__scroll-btn--left,
.vlk_tabla_wrap.has-scroll-right ~ .rezideo-telek__scroll-btn--right {
    display: flex;
}

.rezideo-telek__scroll-track {
    display: none;
    height: 4px;
    margin-top: 8px;
    border-radius: 2px;
    background: rgba(11, 89, 82, .15);
    overflow: hidden;
}

.rezideo-telek__scrollbox.is-scrollable .rezideo-telek__scroll-track {
    display: block;
}

.rezideo-telek__scroll-thumb {
    height: 100%;
    border-radius: 2px;
    background: rgba(11, 89, 82, .6);
}

/* ==========================================================================
   Section paddings on mobile: the fixed 70/110px desktop top-bottom paddings
   of the content sections waste too much of a small screen, so every one of
   them is halved. Page-scoped; the indexes follow the section classes the
   Divi builder generates per page (they shift if sections are added or
   removed on a page, re-check then).
   ========================================================================== */
@media (max-width: 762px) {
    /* Rows carry no own vertical padding on mobile, the section paddings
       above set the rhythm. Rows with an explicit Divi padding attribute
       keep it (their per-row rule is more specific). */
    .et_pb_column .et_pb_row_inner,
    .et_pb_row {
        padding: 0px;
    }

    /* 70px sections: Lokáció (1244), Vállalkozóknak (1215), A projektről (1275) */
    .page-id-1244 .et_pb_section_1.et_pb_section,
    .page-id-1244 .et_pb_section_2.et_pb_section,
    .page-id-1244 .et_pb_section_3.et_pb_section,
    .page-id-1215 .et_pb_section_1.et_pb_section,
    .page-id-1215 .et_pb_section_2.et_pb_section,
    .page-id-1215 .et_pb_section_3.et_pb_section,
    .page-id-1215 .et_pb_section_4.et_pb_section,
    .page-id-1215 .et_pb_section_5.et_pb_section,
    .page-id-1215 .et_pb_section_7.et_pb_section,
    .page-id-1215 .et_pb_section_8.et_pb_section,
    .page-id-1275 .et_pb_section_1.et_pb_section,
    .page-id-1275 .et_pb_section_2.et_pb_section,
    .page-id-1275 .et_pb_section_4.et_pb_section,
    .page-id-1275 .et_pb_section_5.et_pb_section {
        padding-top: 35px;
        padding-bottom: 35px;
    }

    /* 110px sections */
    .page-id-1244 .et_pb_section_4.et_pb_section,
    .page-id-1215 .et_pb_section_6.et_pb_section,
    .page-id-1275 .et_pb_section_3.et_pb_section {
        padding-top: 55px;
        padding-bottom: 55px;
    }

    /* Vállalkozóknak CTA: 40px top, 80px bottom */
    .page-id-1215 .et_pb_section_9.et_pb_section {
        padding-top: 20px;
        padding-bottom: 40px;
    }

    /* Teleklista (62) content section: 40px */
    .page-id-62 .et_pb_section_1.et_pb_section {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    /* Home (76) Infrastruktúra: 80px bottom */
    .page-id-76 .et_pb_section_7.et_pb_section {
        padding-bottom: 40px;
    }

    /* Legal pages: 100px and 96px bottom */
    .page-id-68 .et_pb_section_1.et_pb_section,
    .page-id-70 .et_pb_section_1.et_pb_section {
        padding-bottom: 50px;
    }
    .page-id-72 .et_pb_section_1.et_pb_section {
        padding-bottom: 48px;
    }
}

/* ==========================================================================
   Hero on mobile: cap the section at 650px. Subpages set 664px, the home
   page 872px, both inline in the page's Divi code module; the subpage Divi
   section also carries a fixed height/max-height, hence the :has() override.
   The background image renders as cover, so in the 650px box the picture is
   exactly 650px tall and fits the hero.
   ========================================================================== */
@media (max-width: 762px) {
    .et_pb_section:has(.hero-szekcio) {
        height: auto !important;
        max-height: 650px !important;
    }

    .hero-szekcio {
        height: 650px !important;
    }

    /* Background holder: .hero_hatter on subpages (fixed 2288px background
       width), .hero-hatter on the home page (fixed 872px height). */
    .hero_hatter,
    .hero-hatter {
        height: 650px !important;
        background-size: cover !important;
    }

    /* Plot list and plot detail (both served by page 62): a lower hero
       leaves more room for the table and the detail card. */
    .page-id-62 .et_pb_section:has(.hero-szekcio) {
        max-height: 350px !important;
    }

    .page-id-62 .hero-szekcio,
    .page-id-62 .hero_hatter {
        height: 350px !important;
    }
}

/* =========================================================================
   Form fields: uniform 15px corner radius on mobile. !important because the
   Kapcsolat page carries an inline copy of the field styling in a Divi code
   module (loads after this sheet) and the detail-page contact block uses
   higher-specificity selectors.
   ========================================================================= */
@media (max-width: 762px) {
    input.text,
    input.title,
    input[type=email],
    input[type=password],
    input[type=tel],
    input[type=text],
    select {
        border-radius: 15px !important;
    }
}

/* =========================================================================
   Lion Cookie consent card, restyled to the site design (green card, cream
   text, Crimson Text heading), floating centered above the page bottom.
   #116E66 is the card green, one shade lighter than the #0d635b section
   background. The plugin stylesheet loads in the footer (after this sheet),
   so every selector is prefixed with the #cookie-popup id to outrank it.
   ========================================================================= */
#cookie-popup.cookie-popup {
    background-color: #116E66;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
    min-height: 0;
    padding: 26px 32px;
    left: 50%;
    transform: translateX(-50%);
    bottom: 24px;
    width: min(92%, 1080px);
    min-width: 0;
    max-width: none;
    border-radius: 15px;
}
#cookie-popup.cookie-popup .cookie-content {
    max-width: none;
    margin: 0 auto;
    gap: 28px;
}
/* No logo is configured: drop the empty left flex slot */
#cookie-popup.cookie-popup .cookie-left:not(:has(img)) {
    display: none;
}
#cookie-popup.cookie-popup .site-uses-cookie {
    font-family: 'Crimson Text', Georgia, serif;
    color: #FBF8E7;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    padding-bottom: 0;
    margin-bottom: 8px;
}
#cookie-popup.cookie-popup .cookie-use-info {
    font-family: 'Inter', Helvetica, Arial, sans-serif;
    font-weight: 300;
    font-size: 13px;
    line-height: 1.5;
    color: #FBF8E7;
    opacity: .85;
    text-align: left;
    padding-bottom: 0;
    margin-top: 6px;
}
#cookie-popup.cookie-popup .cookie-btn {
    background-color: #FBF8E7;
    color: #0D635B;
    font-family: 'Inter', Helvetica, Arial, sans-serif;
    font-weight: 600;
    font-size: 16px;
    border-radius: 15px;
    padding: 16px 20px;
    transition: background-color .3s ease, color .3s ease;
}
#cookie-popup.cookie-popup .cookie-btn:hover {
    background-color: #17796d;
    color: #FBF8E7;
}
#cookie-popup.cookie-popup .cookie-details-btn {
    /* Secondary button: translucent cream pill on the green card. The
       !importants outrank the plugin's own !important transparent/0 rules. */
    background-color: rgba(251, 248, 231, .16) !important;
    color: #FBF8E7;
    font-weight: 500;
    font-size: 14px;
    text-decoration: none;
    width: auto;
    border-radius: 15px;
    padding: 12px 18px !important;
    margin-top: 14px;
}
#cookie-popup.cookie-popup .cookie-details-btn:hover {
    color: #FBF8E7;
    background-color: rgba(251, 248, 231, .28) !important;
}
@media (max-width: 1024px) {
    #cookie-popup.cookie-popup {
        padding: 20px;
        width: 94%;
        bottom: 12px;
    }
    #cookie-popup.cookie-popup .cookie-content {
        gap: 16px;
    }
    #cookie-popup.cookie-popup .cookie-btn {
        width: 100%;
        max-width: 320px;
    }
}

/* Details modal: keep the plugin's white dialog, only the accents follow
   the site palette. */
.cookie-details-popup .cookie-btn,
#cookie-details-popup .cookie-btn {
    background-color: #0D635B;
    color: #FBF8E7;
    border-radius: 15px;
}
.cookie-details-popup input[type=checkbox],
#cookie-details-popup input[type=checkbox] {
    accent-color: #0D635B;
}
