/*
Theme Name: Constructo Child Theme
Theme URI: https://anpsthemes.com/constructo-landing-page/
Description: 48HOME — dark + gold restyle on top of Constructo
Author: 48HOME
Template: constructo
Version: 1.2.4
*/

/* =========================================================
   48HOME design tokens
   ========================================================= */
:root {
    --bg-dark:        #0F1A18;
    --bg-darker:      #000000;
    --bg-panel:       #161F1D;
    --brand-gold:     #C9A574;
    --brand-gold-2:   #D8B683;
    --brand-gold-deep:#8C6A3C;
    --callout-khaki:  #C9B07B;
    --text-on-dark:   #F5F1E8;
    --text-muted:     #B7B2A6;
    --rule:           rgba(201,165,116,.25);
    --radius:         4px;
    --shadow:         0 8px 30px rgba(0,0,0,.35);
    --font-display:   "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-body:      "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* =========================================================
   Base typography
   ========================================================= */
body,
body.page,
body.single,
body.home,
body.archive {
    font-family: var(--font-body);
    color: var(--text-on-dark);
    background: var(--bg-dark);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.entry-title,
.widget-title,
.section-title,
.vc_custom_heading,
.wpb_text_column h1,
.wpb_text_column h2,
.wpb_text_column h3,
.wpb_text_column h4,
.wpb_text_column h5 {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: .04em;
    color: var(--text-on-dark);
}

h1, .h1 { letter-spacing: .06em; text-transform: uppercase; }
h2, .h2 { letter-spacing: .08em; text-transform: uppercase; }
h3, .h3 { letter-spacing: .06em; text-transform: uppercase; }

/* Two-tone heading helper:  <h2 class="h-split">White <span class="accent">gold</span></h2> */
.h-split .accent,
.heading-accent,
strong.gold,
.text-gold {
    color: var(--brand-gold) !important;
}

p, li, td, th, blockquote {
    color: var(--text-on-dark);
    font-family: var(--font-body);
}

a {
    color: var(--brand-gold);
    transition: color .2s ease;
}
a:hover, a:focus {
    color: var(--brand-gold-2);
}

hr {
    border: 0;
    border-top: 1px solid var(--rule);
}

/* =========================================================
   Layout surfaces
   ========================================================= */
body,
.site-wrap,
.site-wrapper,
#main-wrapper,
.main-content,
.page-content,
.entry-content,
.vc_row,
.vc_section {
    background-color: var(--bg-dark);
}

/* Page-builder rows that explicitly set white/light backgrounds — soften them */
.vc_row[style*="background-color: #ffffff"],
.vc_row[style*="background-color: #fff"],
.vc_row[style*="background: #ffffff"],
.vc_row[style*="background: #fff"] {
    background-color: var(--bg-panel) !important;
}

.wpb_text_column,
.wpb_content_element {
    color: var(--text-on-dark);
}

/* Cards / boxed elements */
.box,
.feature-box,
.service-box,
.team-member,
.pricing-table,
.widget {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    color: var(--text-on-dark);
}

/* =========================================================
   Logo swap — replace Constructo's <img> src with our SVG
   without patching the parent theme. `content: url(...)` on
   <img> is supported in all current evergreen browsers.
   ========================================================= */
.logo-desktop,
.logo-mobile,
.logo-sticky,
.logo a img,
a img.logo-desktop,
a img.logo-mobile,
a img.logo-sticky {
    content: url("images/logo.svg?v=2");
    width: auto !important;
    height: 240px !important;
    max-height: 240px !important;
    max-width: 420px !important;
    object-fit: contain;
}
.logo-mobile { height: 110px !important; max-height: 110px !important; max-width: 200px !important; }
.logo-sticky { height: 130px !important; max-height: 130px !important; max-width: 230px !important; }

/* =========================================================
   Header / nav
   ========================================================= */
.site-header,
#site-header,
.header,
.top-header,
.main-header,
.header-wrap,
.top-bar {
    background: var(--bg-darker) !important;
    border-bottom: 1px solid var(--rule);
    color: var(--text-on-dark) !important;
}
.top-bar a,
.top-bar i,
.top-bar .fa,
.top-bar span,
.top-bar p {
    color: var(--text-on-dark) !important;
}
.top-bar a:hover,
.top-bar .fa:hover {
    color: var(--brand-gold) !important;
}

.site-header a,
.main-navigation a,
.menu a,
#site-navigation a,
.nav-menu a {
    color: var(--text-on-dark);
    font-family: var(--font-display);
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-size: 12px;
}

.site-header a:hover,
.main-navigation a:hover,
.menu a:hover,
.nav-menu a:hover,
.current-menu-item > a,
.current_page_item > a {
    color: var(--brand-gold) !important;
}

/* Sub-menu / dropdowns */
.sub-menu,
.children {
    background: var(--bg-panel) !important;
    border: 1px solid var(--rule);
}

/* =========================================================
   Buttons
   ========================================================= */
.btn,
.button,
button:not(.fa):not(.navbar-toggle):not(.top-bar-close):not(.cky-btn):not([class*="cky-"]):not(.slick-arrow):not(.owl-prev):not(.owl-next),
input[type="submit"],
input[type="button"],
.wpcf7 input[type="submit"],
.vc_btn3,
.vc_btn3.vc_btn3-style-flat,
a.vc_general.vc_btn3 {
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
    font-size: 13px !important;
    padding: 14px 26px !important;
    border-radius: var(--radius) !important;
    border: 0 !important;
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
    transition: background .2s ease, color .2s ease, transform .2s ease !important;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

/* Hide the top-bar collapse chevron — not used in this design. */
.top-bar-close,
button.top-bar-close {
    display: none !important;
}

/* Icon-only buttons in the header (search toggle, mobile nav-bars,
   top-bar close chevron). They aren't CTAs and must keep their FA icon. */
.site-search-toggle button,
.site-search-toggle button.fa,
button.fa.fa-search,
button.top-bar-close,
button.navbar-toggle {
    background: transparent !important;
    color: var(--brand-gold) !important;
    padding: 0 !important;
    border: 0 !important;
    font-family: "FontAwesome", "Font Awesome 5 Free", sans-serif !important;
    font-size: 18px !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    width: 41px;
    height: 41px;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius) !important;
    transition: color .2s ease, background .2s ease !important;
}
/* Search: always visible icon button */
.site-search-toggle button,
button.fa.fa-search {
    display: inline-flex !important;
}
/* Navbar toggle (hamburger): visible only at mobile widths.
   Don't force display here — leave Bootstrap's media query intact. */
button.navbar-toggle {
    display: inline-flex;
}
@media (min-width: 768px) {
    button.navbar-toggle { display: none !important; }
}

.site-search-toggle button:hover,
button.fa.fa-search:hover,
button.top-bar-close:hover,
button.navbar-toggle:hover {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
}
/* Inner FA <i> inside top-bar-close also needs FA font + gold */
button.top-bar-close .fa,
button.top-bar-close i {
    color: inherit !important;
    font-family: "FontAwesome", "Font Awesome 5 Free", sans-serif !important;
}

/* sr-only label must remain visually hidden so the FA icon glyph shows */
.site-search-toggle .sr-only,
button.fa .sr-only,
button.top-bar-close .sr-only,
button.navbar-toggle .sr-only {
    position: absolute !important;
    width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.btn:hover,
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.vc_btn3:hover {
    background: var(--brand-gold-2) !important;
    color: #1a1a1a !important;
}

/* Ghost / outline */
.btn-ghost,
.btn.btn-outline,
.button.outline,
.vc_btn3.vc_btn3-style-outline {
    background: transparent !important;
    color: var(--brand-gold) !important;
    border: 1.5px solid var(--brand-gold) !important;
}
.btn-ghost:hover,
.btn.btn-outline:hover,
.vc_btn3.vc_btn3-style-outline:hover {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
}

/* =========================================================
   Lists — chevron bullets for inside .entry-content
   (opt-in via class to avoid styling menus / unrelated lists)
   ========================================================= */
.chev-list,
.entry-content ul.chev-list,
.wpb_text_column ul.chev-list {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5em;
}
.chev-list li {
    position: relative;
    padding-left: 36px;
    margin-bottom: 12px;
    font-weight: 600;
    font-size: 17px;
    line-height: 1.4;
    color: var(--text-on-dark);
}
.chev-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 22px;
    height: 22px;
    background: var(--brand-gold);
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='11' fill='none' stroke='black' stroke-width='2'/><path d='M10 8l5 4-5 4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center/contain;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='11' fill='none' stroke='black' stroke-width='2'/><path d='M10 8l5 4-5 4' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat center/contain;
}

/* =========================================================
   Eyebrow / small-caps label
   ========================================================= */
.eyebrow {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--brand-gold);
    margin-bottom: 14px;
}

/* =========================================================
   Homepage sections (post 787) — keyed off `el_class` on vc_row
   ========================================================= */
.home-hero {
    padding: 0 !important;
    background: var(--bg-darker);
}
.home-hero .vc_column-inner { padding: 0 !important; }
.home-hero .home-hero-body {
    padding: 96px 56px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: linear-gradient(180deg, #0a1413, var(--bg-dark));
    min-height: 520px;
    justify-content: center;
}
.home-hero .home-hero-photo,
.home-hero .vc_col-sm-6.home-hero-photo {
    min-height: 360px;
    background-image: url("https://48home.pl/wp-content/uploads/2026/05/hero-house-2025.jpg") !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
}
.home-hero .callout {
    background: var(--callout-khaki);
    color: #1a1a1a;
    padding: 28px 36px;
    max-width: 560px;
    border-radius: var(--radius);
    font-family: var(--font-display);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: clamp(28px, 3.4vw, 42px);
    line-height: 1.15;
    box-shadow: var(--shadow);
}
.home-hero .price-line {
    color: var(--text-muted);
    max-width: 520px;
    font-size: 15px;
}
.home-hero .price-line strong {
    display: block;
    color: var(--brand-gold);
    font-size: 22px;
    margin-bottom: 6px;
    letter-spacing: .04em;
}
.home-hero .cta-row {
    display: flex;
    gap: 14px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.home-why,
.home-offer,
.home-cta {
    padding-top: 96px !important;
    padding-bottom: 96px !important;
}
.home-offer {
    background: var(--bg-darker);
}
.home-cta {
    background: #0a1413;
    text-align: center;
}
.home-cta h1, .home-cta h2 { text-align: center; }

/* feature grid as a structural class so it survives editor re-saves */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 40px;
}
@media (max-width: 900px) {
    .feature-grid { grid-template-columns: 1fr; }
    .home-hero .home-hero-body { padding: 64px 28px; }
}
.feature {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.feature .icon {
    width: 60px; height: 60px;
    display: grid;
    place-items: center;
    color: var(--brand-gold);
    border: 1.5px solid var(--brand-gold);
    border-radius: 50%;
}
.feature .title {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 14px;
    color: #fff;
}
.feature .sub {
    color: var(--brand-gold);
    font-weight: 800;
    font-size: 22px;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-top: -6px;
}
.feature p {
    color: var(--text-muted);
    font-size: 14px;
    margin: 0;
    line-height: 1.6;
}

/* =========================================================
   Realisations 3-tile grid (replaces empty portfolio slider)
   ========================================================= */
.realizacje-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-top: 32px;
}
@media (max-width: 900px) {
    .realizacje-grid { grid-template-columns: 1fr; }
}
.realizacje-tile {
    display: block;
    aspect-ratio: 4/5;
    overflow: hidden;
    border-radius: var(--radius);
    border: 1px solid var(--rule);
    position: relative;
    background: var(--bg-panel);
}
.realizacje-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s ease, filter .3s ease;
    filter: brightness(.85);
}
.realizacje-tile:hover img {
    transform: scale(1.04);
    filter: brightness(1);
}
.realizacje-tile::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.5));
    pointer-events: none;
}

/* =========================================================
   Hero callout (offset khaki panel) — generic / reusable
   ========================================================= */
.hero-48 {
    position: relative;
    background: linear-gradient(180deg, #0a1413, var(--bg-dark) 70%);
    border-radius: var(--radius);
    padding: 64px 56px;
    overflow: hidden;
    border: 1px solid var(--rule);
}
.hero-48 .callout {
    background: var(--callout-khaki);
    color: #1a1a1a;
    padding: 28px 36px;
    max-width: 640px;
    border-radius: var(--radius);
    font-family: var(--font-display);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: clamp(24px, 3vw, 38px);
    line-height: 1.15;
    box-shadow: var(--shadow);
}

/* =========================================================
   Forms
   ========================================================= */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="password"],
textarea,
select,
.wpcf7 input,
.wpcf7 textarea {
    background: var(--bg-panel) !important;
    border: 1px solid var(--rule) !important;
    color: var(--text-on-dark) !important;
    border-radius: var(--radius) !important;
    padding: 12px 14px !important;
    font-family: var(--font-body) !important;
}
input::placeholder,
textarea::placeholder {
    color: var(--text-muted) !important;
}
input:focus,
textarea:focus,
select:focus {
    outline: 0;
    border-color: var(--brand-gold) !important;
    box-shadow: 0 0 0 2px rgba(201, 165, 116, .25);
}

/* =========================================================
   Footer
   ========================================================= */
.site-footer,
#site-footer,
.footer,
.main-footer,
.footer-wrap,
.bottom-bar {
    background: var(--bg-darker) !important;
    color: var(--text-muted);
    border-top: 1px solid var(--rule);
}
.site-footer a,
.footer a,
.bottom-bar a {
    color: var(--brand-gold);
}
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.footer h3,
.footer h4,
.footer .widget-title {
    color: var(--text-on-dark);
}

/* Footer contact icons (Constructo / Font Awesome based) */
.footer .fa,
.bottom-bar .fa,
.site-footer .fa {
    color: var(--brand-gold);
}

/* =========================================================
   Selection / scrollbar
   ========================================================= */
::selection { background: var(--brand-gold); color: #1a1a1a; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-darker); }
::-webkit-scrollbar-thumb { background: var(--brand-gold-deep); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--brand-gold); }

/* =========================================================
   Page heading / breadcrumb bar
   (rendered by anps_get_page_heading — `<div class="page-heading">`)
   ========================================================= */
.page-heading,
.page-header,
.paralax-header > .page-heading {
    background-color: var(--bg-darker) !important;
    background-blend-mode: multiply;
    border-bottom: 1px solid var(--rule);
    padding: 64px 0 56px !important;
    color: var(--text-on-dark);
    position: relative;
}
.page-heading::after,
.page-header::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -1px; height: 2px;
    background: linear-gradient(90deg, transparent, var(--brand-gold), transparent);
    opacity: .5;
}
.page-heading h1,
.page-header h1,
.page-heading .entry-title {
    color: var(--text-on-dark) !important;
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

ul.breadcrumbs,
.breadcrumbs {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
ul.breadcrumbs li,
.breadcrumbs li {
    display: inline-block;
    color: var(--text-muted);
}
ul.breadcrumbs a,
.breadcrumbs a {
    color: var(--brand-gold);
    text-decoration: none;
}
ul.breadcrumbs a:hover,
.breadcrumbs a:hover {
    color: var(--brand-gold-2);
}
ul.breadcrumbs li + li::before,
.breadcrumbs li + li::before {
    content: "›";
    color: var(--brand-gold);
    margin: 0 10px;
    opacity: .7;
}

/* =========================================================
   Sidebar / widgets (Constructo + WPBakery widgetised columns)
   ========================================================= */
.sidebar,
.wpb_widgetised_column,
.widget {
    color: var(--text-on-dark);
}
.widget-title,
.sidebar .widget-title,
.wpb_widgetised_column .widget-title,
.footer .widget-title {
    font-family: var(--font-display);
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--text-on-dark);
    border-bottom: 1px solid var(--rule);
    padding-bottom: 12px;
    margin-bottom: 18px;
    position: relative;
}
.widget-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: -1px;
    width: 40px; height: 2px;
    background: var(--brand-gold);
}
.widget a,
.sidebar a {
    color: var(--text-on-dark);
}
.widget a:hover,
.sidebar a:hover {
    color: var(--brand-gold);
}
.widget ul,
.sidebar ul {
    list-style: none;
    padding: 0;
}
.widget li,
.sidebar li {
    border-bottom: 1px solid var(--rule);
    padding: 10px 0;
}
.widget li:last-child {
    border-bottom: 0;
}

/* anps custom widgets (used in footer / prefooter) */
.widget_anpstext,
.widget_anpsdownload,
.widget_anpssocial {
    color: var(--text-muted);
}
.widget_anpstext .fa,
.widget_anpsdownload .fa,
.widget_anpssocial a,
.widget_anpssocial .fa {
    color: var(--brand-gold);
}
.widget_anpssocial a:hover {
    color: var(--brand-gold-2);
}
.widget_anpsdownload {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    padding: 18px;
    border-radius: var(--radius);
}

/* =========================================================
   Footer prefooter / copyright bar
   ========================================================= */
.site-footer .prefooter {
    background: var(--bg-darker);
    border-bottom: 1px solid var(--rule);
    padding: 56px 0;
}
.site-footer .copyright-footer,
.copyright-footer {
    background: #000;
    color: var(--text-muted);
    font-size: 12px;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: 18px 0;
    border-top: 1px solid var(--rule);
}
.copyright-footer a {
    color: var(--brand-gold);
}

/* =========================================================
   Blog / archive cards
   ========================================================= */
.post,
article.post,
article.hentry,
.blog-grid article,
.blog-masonry article {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 24px;
    margin-bottom: 28px;
    color: var(--text-on-dark);
}
article .entry-title,
article h2.entry-title a {
    color: var(--text-on-dark);
}
article .entry-title a:hover {
    color: var(--brand-gold);
}
.entry-meta,
.posted-on,
.byline,
.cat-links,
.tags-author {
    color: var(--text-muted);
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.entry-meta a,
.tags-author a {
    color: var(--brand-gold);
}
.read-more,
a.more-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--brand-gold);
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-size: 12px;
    text-decoration: none;
}
.read-more::after,
a.more-link::after {
    content: "→";
    transition: transform .2s ease;
}
.read-more:hover::after,
a.more-link:hover::after {
    transform: translateX(4px);
}

/* Pagination */
.pagination,
.page-numbers,
.nav-links {
    margin: 32px 0;
}
.pagination a,
.pagination span,
.page-numbers li a,
.page-numbers li span,
.nav-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px; height: 38px;
    padding: 0 12px;
    margin: 0 3px;
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    color: var(--text-on-dark);
    font-weight: 700;
    text-decoration: none;
    transition: .2s ease;
}
.pagination .current,
.page-numbers li .current,
.pagination a:hover,
.nav-links a:hover {
    background: var(--brand-gold);
    color: #1a1a1a;
    border-color: var(--brand-gold);
}

/* =========================================================
   Comments
   ========================================================= */
#comments,
.comments-area {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 28px;
    margin-top: 32px;
}
#comments .comments-title,
.comments-area h2 {
    border-bottom: 1px solid var(--rule);
    padding-bottom: 14px;
    margin-bottom: 20px;
}
.comment-list .comment {
    border-bottom: 1px solid var(--rule);
    padding: 18px 0;
}
.comment-author,
.comment-meta {
    color: var(--text-muted);
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.comment-author a {
    color: var(--brand-gold);
}

/* =========================================================
   Tables
   ========================================================= */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background: var(--bg-panel);
    border: 1px solid var(--rule);
}
table th {
    background: var(--bg-darker);
    color: var(--brand-gold);
    text-transform: uppercase;
    letter-spacing: .1em;
    font-size: 12px;
    padding: 14px 16px;
    text-align: left;
    border-bottom: 1px solid var(--rule);
}
table td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--rule);
    color: var(--text-on-dark);
}
table tr:last-child td {
    border-bottom: 0;
}

/* =========================================================
   Scroll-to-top button (#scrolltop in footer.php)
   ========================================================= */
#scrolltop,
.scrollup {
    background: var(--brand-gold) !important;
    border: 0 !important;
    box-shadow: var(--shadow);
}
#scrolltop a,
#scrolltop a:hover {
    color: #1a1a1a !important;
}
#scrolltop:hover {
    background: var(--brand-gold-2) !important;
}

/* =========================================================
   Site search overlay
   ========================================================= */
.site-search {
    background: rgba(15, 26, 24, .96) !important;
    color: var(--text-on-dark);
}
.site-search input[type="search"],
.site-search input[type="text"] {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 2px solid var(--brand-gold) !important;
    color: var(--text-on-dark) !important;
    font-size: 22px !important;
    border-radius: 0 !important;
    padding: 14px 0 !important;
}
.site-search .cancel,
.site-search .submit {
    color: var(--brand-gold) !important;
}

/* =========================================================
   WPBakery icon boxes / feature boxes (vc_icon_element / info-box)
   ========================================================= */
.vc_icon_element,
.vc_icon_element-icon,
.vc_general.vc_icon_element {
    color: var(--brand-gold) !important;
}
.vc_icon_element.vc_icon_element-have-style .vc_icon_element-inner {
    border-color: var(--brand-gold) !important;
    background: transparent !important;
    color: var(--brand-gold) !important;
}
.wpb_text_column .wpb_wrapper > h2,
.wpb_text_column .wpb_wrapper > h3,
.wpb_text_column .wpb_wrapper > h4 {
    color: var(--text-on-dark);
}

/* WPBakery row separators */
.vc_row-has-fill,
.vc_row[class*="vc_row-has-fill"] {
    background-color: var(--bg-dark);
}

/* =========================================================
   Construction icons (theme's custom icon font)
   ========================================================= */
[class^="construction-icons-"],
[class*=" construction-icons-"] {
    color: var(--brand-gold);
}

/* =========================================================
   Blockquotes / pull-quotes
   ========================================================= */
blockquote {
    border-left: 3px solid var(--brand-gold);
    padding: 14px 24px;
    margin: 24px 0;
    background: var(--bg-panel);
    color: var(--text-on-dark);
    font-style: italic;
}

/* =========================================================
   WooCommerce (informational site, but plugin still loaded)
   Defensive minimum so shop pages don't render broken.
   ========================================================= */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: var(--bg-panel);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 20px;
}
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--brand-gold) !important;
    font-weight: 800;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
    text-transform: uppercase;
    letter-spacing: .14em;
    font-weight: 700;
    padding: 12px 22px;
    border-radius: var(--radius);
}
.woocommerce a.button:hover {
    background: var(--brand-gold-2) !important;
}
.woocommerce-message,
.woocommerce-info {
    background: var(--bg-panel) !important;
    border-top-color: var(--brand-gold) !important;
    color: var(--text-on-dark) !important;
}

/* =========================================================
   CookieYes consent banner (.cky-*) — match brand identity
   ========================================================= */
.cky-consent-bar,
.cky-modal,
.cky-modal-open .cky-modal,
.cky-prefrence-center,
.cky-preference-center {
    background: var(--bg-darker) !important;
    color: var(--text-on-dark) !important;
    border-top: 2px solid var(--brand-gold) !important;
    font-family: var(--font-body) !important;
    box-shadow: 0 -8px 30px rgba(0, 0, 0, .5) !important;
}
.cky-consent-bar *,
.cky-modal *,
.cky-prefrence-center *,
.cky-preference-center * {
    color: var(--text-on-dark) !important;
}
.cky-title,
.cky-notice-des,
.cky-notice-des p,
.cky-preference-title {
    color: var(--text-on-dark) !important;
    font-family: var(--font-body) !important;
}
.cky-consent-bar a,
.cky-modal a {
    color: var(--brand-gold) !important;
    text-decoration: underline;
}

/* Buttons (Customize / Reject / Accept) */
.cky-btn,
.cky-btn-customize,
.cky-btn-reject,
.cky-btn-accept {
    font-family: var(--font-display) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .14em !important;
    font-size: 12px !important;
    border-radius: var(--radius) !important;
    padding: 12px 22px !important;
    border: 1.5px solid transparent !important;
    transition: .2s ease !important;
    cursor: pointer;
}

/* "Dostosuj" / "Odrzuć" → ghost */
.cky-btn-customize,
.cky-btn-reject {
    background: transparent !important;
    color: var(--brand-gold) !important;
    border-color: var(--brand-gold) !important;
}
.cky-btn-customize:hover,
.cky-btn-reject:hover {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
}

/* "Akceptuj wszystkie" → solid gold (primary) */
.cky-btn-accept {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
    border-color: var(--brand-gold) !important;
}
.cky-btn-accept:hover {
    background: var(--brand-gold-2) !important;
    border-color: var(--brand-gold-2) !important;
    color: #1a1a1a !important;
}

/* Preferences modal panels / list */
.cky-modal-content,
.cky-preference-content-wrapper,
.cky-prefrence-body,
.cky-accordion,
.cky-accordion-wrapper,
.cky-accordion-header,
.cky-accordion-body {
    background: var(--bg-panel) !important;
    border-color: var(--rule) !important;
}
.cky-modal-header {
    background: var(--bg-darker) !important;
    border-bottom: 1px solid var(--rule) !important;
}

/* Toggle switches */
.cky-switch input + label,
.cky-accordion-chevron::before {
    color: var(--brand-gold) !important;
}
.cky-switch input:checked + label {
    background: var(--brand-gold) !important;
}

/* Floating re-open button (lower-left shield) */
.cky-revisit-bottom-left,
.cky-revisit-bottom-right,
.cky-btn-revisit-wrapper {
    background: var(--brand-gold) !important;
    color: #1a1a1a !important;
}
.cky-btn-revisit-wrapper svg,
.cky-btn-revisit-wrapper path {
    fill: #1a1a1a !important;
    color: #1a1a1a !important;
}

/* =========================================================
   CF7 form messages
   ========================================================= */
.wpcf7 form .wpcf7-response-output {
    border-color: var(--brand-gold) !important;
    color: var(--text-on-dark);
}
.wpcf7-not-valid-tip {
    color: #ff8b8b !important;
}

/* =========================================================
   Utility
   ========================================================= */
.text-gold      { color: var(--brand-gold) !important; }
.text-muted-48  { color: var(--text-muted) !important; }
.bg-dark-48     { background: var(--bg-dark) !important; }
.bg-panel-48    { background: var(--bg-panel) !important; }
.bg-darker-48   { background: var(--bg-darker) !important; }
.divider-gold   { height: 2px; background: var(--brand-gold); width: 60px; border: 0; margin: 16px 0; }
